using HanHe.Utility.Data;
using HH.Redis.ReisModel;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Check;
using HH.WMS.Entitys.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.OracleClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.DAL.Check
{
public class TN_WM_CHECK_LISTDAL : DapperBaseDAL
{
public DataTable GetGroupDT(string sqlwhere)
{
//CN_S_LOT_NO注释
string sql = "SELECT CN_S_OP_NO,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_MODEL,CN_S_FIGURE_NO,SUM(CN_F_QUANTITY) AS CN_F_QUANTITY,SUM(CN_F_CHECK_QTY) AS CN_F_CHECK_QTY,CN_S_MEASURE_UNIT,'' as CN_S_LOT_NO,SUM(CN_F_CHECK_QTY)-SUM(CN_F_QUANTITY) AS BREAKQUANTITY FROM dbo.tn_wm_check_list WHERE CN_S_ITEM_CODE<>'' {0} GROUP BY CN_S_OP_NO,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_MODEL,CN_S_FIGURE_NO,CN_S_MEASURE_UNIT";
sql = string.Format(sql, sqlwhere);
return ExecuteDataTable(sql, null);
}
///
/// 获取列表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetEntity(string sqlwhere)
{
string sql = "select ROW_NUMBER() OVER (ORDER BY CN_S_OP_NO) AS ROWS,* from TN_WM_CHECK_LIST where {0}";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
//获得列表
DataTable dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
return dt;
}
///
/// 获取列表
///
///
///
/// [HanHe(lt)] CREATED 2018/10/25
public DataTable GetList(string sqlwhere)
{
string sql = "SELECT CN_S_OP_NO,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_LOT_NO,CN_S_MODEL,CN_S_FIGURE_NO,SUM(CN_F_QUANTITY) AS CN_F_QUANTITY,SUM(CN_F_CHECK_QTY) AS CN_F_CHECK_QTY,CN_S_MEASURE_UNIT FROM dbo.tn_wm_check_list where {0} GROUP BY CN_S_OP_NO,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_LOT_NO,CN_S_MODEL,CN_S_FIGURE_NO,CN_S_MEASURE_UNIT";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
//获得列表
DataTable dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
return dt;
}
///
/// 获取分页列表
///
///
///
/// [HanHe(lt)] CREATED 2018/7/3
public DataTable GetDataTableGroup(string sqlWhere, string OrdeBy, int pageSize, int pageIndex)
{
string sql = @"(SELECT CN_S_STOCK_CODE,CN_S_OP_NO,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CAST(SUM(CN_F_QUANTITY) AS INT)AS CN_F_QUANTITY,
CAST(SUM(CN_F_CHECK_QTY) AS INT) AS CN_F_CHECK_QTY FROM dbo.tn_wm_check_list GROUP BY CN_S_OP_NO,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_STOCK_CODE
) as a";
DbCommand cmd = DataAccess.GetStoredProcCommand("prc_query");
this.DataAccess.AddInParameter(cmd, "TableName", ComDbType.CHAR, sql);
this.DataAccess.AddInParameter(cmd, "WhereStr", ComDbType.CHAR, sqlWhere);
this.DataAccess.AddInParameter(cmd, "OrderByStr", ComDbType.CHAR, OrdeBy);
this.DataAccess.AddInParameter(cmd, "PageSize", ComDbType.INT, pageSize);
this.DataAccess.AddInParameter(cmd, "PageIndex", ComDbType.INT, pageIndex);
this.DataAccess.AddOutParameter(cmd, "TotalPage", ComDbType.INT, 4);
this.DataAccess.AddOutParameter(cmd, "TotalRecord", ComDbType.INT, 4);
//如果是oracle 增加特性
if (!string.IsNullOrEmpty(Now_dbType) && Now_dbType.Equals("ORACLE"))
{
//处理游标类型 因DbType无游标类型,游标类型单独处理
ComDbType.AddOrcOutParameter(cmd, "v_cur", OracleType.Cursor);
}
try
{
//获得列表
DataTable dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
//obj.PageCount = Convert.ToInt32(this.DataAccess.GetParameterValue(cmd, "TotalRecord"));
return dt;
}
catch (Exception)
{
throw;
}
}
#region 获取盘点结果查询
///
/// 获取盘点结果查询
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetDataTable(string sqlwhere)
{
string sql = "select * ,(SELECT COUNT(CN_S_UNIQUE_CODE) FROM dbo.TN_WM_B_TRAY_ITEM_DTL WHERE CN_S_UNIQUE_CODE=CN_S_PACK_CODE) AS isexist from TN_WM_CHECK_LIST {0}";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
}
///
/// 获取盘点结果查询
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/21
public List GetCheckList(string sqlwhere)
{
string sql = "select * ,(SELECT COUNT(CN_S_UNIQUE_CODE) FROM dbo.TN_WM_B_TRAY_ITEM_DTL WHERE CN_S_UNIQUE_CODE=CN_S_PACK_CODE) AS isexist from TN_WM_CHECK_LIST {0}";
sql = string.Format(sql, sqlwhere);
return ExecuteQuery(sql, null);
}
///
/// 根据盘点单位获取盘点明细,托盘号、货位号
///
///
/// [HanHe(DBS)] CREATED 2019/3/26
public List GetUnitCheckList(string sqlwhere)
{
string sql = @"SELECT
CN_S_STOCK_AREA
,CN_S_LOCATION_CODE
,CN_S_TRAY_CODE
,CN_S_TRAY_GRID
,CN_S_ITEM_CODE
,CN_S_ITEM_NAME
,CN_S_ITEM_STATE
,CN_S_MODEL
,CN_S_FIGURE_NO
,CN_S_MEASURE_UNIT
,CN_S_ISCHECK
,sum(CN_F_QUANTITY) CN_F_QUANTITY
,sum(CN_F_CHECK_QTY) CN_F_CHECK_QTY
FROM tn_wm_check_list " + sqlwhere + @"
group by CN_S_STOCK_AREA
,CN_S_LOCATION_CODE
,CN_S_TRAY_CODE
,CN_S_TRAY_GRID
,CN_S_ITEM_CODE
,CN_S_ITEM_NAME
,CN_S_ITEM_STATE
,CN_S_MODEL
,CN_S_FIGURE_NO
,CN_S_MEASURE_UNIT
,CN_S_ISCHECK";
return ExecuteQuery(sql, null);
}
///
/// 获取二次盘点盘点结果查询
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/21
public List GetChecklist(string sqlwhere)
{
string sql = @"SELECT CN_S_OP_NO,CN_S_DTL_ROW,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_TRAY_GRID,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_LOT_NO,CN_S_MODEL,CN_S_FIGURE_NO,CN_F_QUANTITY,0.0000 AS CN_F_CHECK_QTY,CN_S_MEASURE_UNIT,CN_S_NOTE,CN_S_ISCHECK,CN_S_ISWIN,CN_S_OPERATOR,CN_T_OPERATE,CN_S_PACK_CODE FROM tn_wm_check_list {0}";
sql = string.Format(sql, sqlwhere);
return ExecuteQuery(sql, null);
}
#endregion
///
/// 批量新增
///
/// 实体类
/// 事务
///
/// [HanHe(lt)] CREATED 2018/8/23
public SqlExecuteResult Addlist(List listentity, DbTransaction trans)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into tn_wm_check_list(");
strSql.Append("CN_S_OP_NO,CN_S_DTL_ROW,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_TRAY_GRID,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_LOT_NO,CN_S_MODEL,CN_S_FIGURE_NO,CN_F_QUANTITY,CN_F_CHECK_QTY,CN_S_MEASURE_UNIT,CN_S_NOTE,CN_S_ISCHECK,CN_S_ISWIN,CN_S_OPERATOR,CN_T_OPERATE,CN_S_PACK_CODE,CN_S_PACKING_UNIT,CN_F_PACKING_QTY,CN_S_PRODUCTION_BATCH,CN_S_CREATOR,CN_S_CREATOR_BY,CN_T_CREATE,CN_S_MODIFY,CN_S_MODIFY_BY,CN_T_MODIFY)");
strSql.Append(" values (");
strSql.Append(":CN_S_OP_NO,:CN_S_DTL_ROW,:CN_S_STOCK_CODE,:CN_S_STOCK_AREA,:CN_S_LOCATION_CODE,:CN_S_TRAY_CODE,:CN_S_TRAY_GRID,:CN_S_ITEM_CODE,:CN_S_ITEM_NAME,:CN_S_ITEM_STATE,:CN_S_OWNER,:CN_S_LOT_NO,:CN_S_MODEL,:CN_S_FIGURE_NO,:CN_F_QUANTITY,:CN_F_CHECK_QTY,:CN_S_MEASURE_UNIT,:CN_S_NOTE,:CN_S_ISCHECK,:CN_S_ISWIN,:CN_S_OPERATOR,:CN_T_OPERATE,:CN_S_PACK_CODE,:CN_S_PACKING_UNIT,:CN_F_PACKING_QTY,:CN_S_PRODUCTION_BATCH,:CN_S_CREATOR,:CN_S_CREATOR_BY,:CN_T_CREATE,:CN_S_MODIFY,:CN_S_MODIFY_BY,:CN_T_MODIFY)");
List listcmd = new List();
int i = 1;
foreach (TN_WM_CHECK_LISTEntity entity in listentity)
{
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
DataAccess.AddInParameter(cmd, "CN_S_OP_NO", ComDbType.STRING, entity.CN_S_OP_NO);
DataAccess.AddInParameter(cmd, "CN_S_DTL_ROW", ComDbType.INT32, i++);
DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", ComDbType.STRING, entity.CN_S_STOCK_CODE);
DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, entity.CN_S_STOCK_AREA);
DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, entity.CN_S_LOCATION_CODE);
DataAccess.AddInParameter(cmd, "CN_S_TRAY_CODE", ComDbType.STRING, entity.CN_S_TRAY_CODE);
DataAccess.AddInParameter(cmd, "CN_S_TRAY_GRID", ComDbType.STRING, entity.CN_S_TRAY_GRID);
DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", ComDbType.STRING, entity.CN_S_ITEM_CODE);
DataAccess.AddInParameter(cmd, "CN_S_ITEM_NAME", ComDbType.STRING, entity.CN_S_ITEM_NAME);
DataAccess.AddInParameter(cmd, "CN_S_ITEM_STATE", ComDbType.STRING, entity.CN_S_ITEM_STATE);
DataAccess.AddInParameter(cmd, "CN_S_OWNER", ComDbType.STRING, entity.CN_S_OWNER);
DataAccess.AddInParameter(cmd, "CN_S_LOT_NO", ComDbType.STRING, entity.CN_S_LOT_NO);
DataAccess.AddInParameter(cmd, "CN_S_MODEL", ComDbType.STRING, entity.CN_S_MODEL);
DataAccess.AddInParameter(cmd, "CN_S_FIGURE_NO", ComDbType.STRING, entity.CN_S_FIGURE_NO);
DataAccess.AddInParameter(cmd, "CN_F_QUANTITY", ComDbType.DECIMAL, entity.CN_F_QUANTITY);
DataAccess.AddInParameter(cmd, "CN_F_CHECK_QTY", ComDbType.DECIMAL, entity.CN_F_CHECK_QTY);
DataAccess.AddInParameter(cmd, "CN_S_MEASURE_UNIT", ComDbType.STRING, entity.CN_S_MEASURE_UNIT);
DataAccess.AddInParameter(cmd, "CN_S_NOTE", ComDbType.STRING, entity.CN_S_NOTE);
DataAccess.AddInParameter(cmd, "CN_S_ISCHECK", ComDbType.CHAR, entity.CN_S_ISCHECK);
DataAccess.AddInParameter(cmd, "CN_S_ISWIN", ComDbType.CHAR, entity.CN_S_ISWIN);
DataAccess.AddInParameter(cmd, "CN_S_OPERATOR", ComDbType.STRING, entity.CN_S_OPERATOR);
DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, entity.CN_T_OPERATE);
DataAccess.AddInParameter(cmd, "CN_S_PACK_CODE", ComDbType.STRING, entity.CN_S_PACK_CODE);
DataAccess.AddInParameter(cmd, "CN_S_PACKING_UNIT", ComDbType.STRING, entity.CN_S_PACKING_UNIT);
DataAccess.AddInParameter(cmd, "CN_F_PACKING_QTY", ComDbType.DECIMAL, entity.CN_F_PACKING_QTY);
DataAccess.AddInParameter(cmd, "CN_S_PRODUCTION_BATCH", ComDbType.STRING, entity.CN_S_PRODUCTION_BATCH);
DataAccess.AddInParameter(cmd, "CN_S_CREATOR", ComDbType.STRING, entity.CN_S_CREATOR);
DataAccess.AddInParameter(cmd, "CN_S_CREATOR_BY", ComDbType.STRING, entity.CN_S_CREATOR_BY);
DataAccess.AddInParameter(cmd, "CN_T_CREATE", ComDbType.DATE, entity.CN_T_CREATE);
DataAccess.AddInParameter(cmd, "CN_S_MODIFY", ComDbType.STRING, entity.CN_S_MODIFY);
DataAccess.AddInParameter(cmd, "CN_S_MODIFY_BY", ComDbType.STRING, entity.CN_S_MODIFY_BY);
DataAccess.AddInParameter(cmd, "CN_T_MODIFY", ComDbType.DATE, entity.CN_T_MODIFY);
listcmd.Add(cmd);
}
return ExecuteCommands(listcmd, trans);
}
///
/// 批量新增
///
/// 实体类
/// 事务
///
/// [HanHe(lt)] CREATED 2018/8/23
public SqlExecuteResult Addlist(List listentity, string CN_S_OPERATOR, DateTime CN_T_OPERATE, DbTransaction trans)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into tn_wm_check_list(");
strSql.Append("CN_S_OP_NO,CN_S_DTL_ROW,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_TRAY_GRID,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_LOT_NO,CN_S_MODEL,CN_S_FIGURE_NO,CN_F_QUANTITY,CN_F_CHECK_QTY,CN_S_MEASURE_UNIT,CN_S_NOTE,CN_S_ISCHECK,CN_S_ISWIN,CN_S_OPERATOR,CN_T_OPERATE,CN_S_PACK_CODE)");
strSql.Append(" values (");
strSql.Append(":CN_S_OP_NO,:CN_S_DTL_ROW,:CN_S_STOCK_CODE,:CN_S_STOCK_AREA,:CN_S_LOCATION_CODE,:CN_S_TRAY_CODE,:CN_S_TRAY_GRID,:CN_S_ITEM_CODE,:CN_S_ITEM_NAME,:CN_S_ITEM_STATE,:CN_S_OWNER,:CN_S_LOT_NO,:CN_S_MODEL,:CN_S_FIGURE_NO,:CN_F_QUANTITY,:CN_F_CHECK_QTY,:CN_S_MEASURE_UNIT,:CN_S_NOTE,:CN_S_ISCHECK,:CN_S_ISWIN,:CN_S_OPERATOR,:CN_T_OPERATE,:CN_S_PACK_CODE)");
List listcmd = new List();
foreach (TN_WM_CHECK_LISTEntity entity in listentity)
{
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
DataAccess.AddInParameter(cmd, "CN_S_OP_NO", ComDbType.STRING, entity.CN_S_OP_NO);
DataAccess.AddInParameter(cmd, "CN_S_DTL_ROW", ComDbType.INT32, entity.CN_S_DTL_ROW);
DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", ComDbType.STRING, entity.CN_S_STOCK_CODE);
DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, entity.CN_S_STOCK_AREA);
DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, entity.CN_S_LOCATION_CODE);
DataAccess.AddInParameter(cmd, "CN_S_TRAY_CODE", ComDbType.STRING, entity.CN_S_TRAY_CODE);
DataAccess.AddInParameter(cmd, "CN_S_TRAY_GRID", ComDbType.STRING, entity.CN_S_TRAY_GRID);
DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", ComDbType.STRING, entity.CN_S_ITEM_CODE);
DataAccess.AddInParameter(cmd, "CN_S_ITEM_NAME", ComDbType.STRING, entity.CN_S_ITEM_NAME);
DataAccess.AddInParameter(cmd, "CN_S_ITEM_STATE", ComDbType.STRING, entity.CN_S_ITEM_STATE);
DataAccess.AddInParameter(cmd, "CN_S_OWNER", ComDbType.STRING, entity.CN_S_OWNER);
DataAccess.AddInParameter(cmd, "CN_S_LOT_NO", ComDbType.STRING, entity.CN_S_LOT_NO);
DataAccess.AddInParameter(cmd, "CN_S_MODEL", ComDbType.STRING, entity.CN_S_MODEL);
DataAccess.AddInParameter(cmd, "CN_S_FIGURE_NO", ComDbType.STRING, entity.CN_S_FIGURE_NO);
DataAccess.AddInParameter(cmd, "CN_F_QUANTITY", ComDbType.DECIMAL, entity.CN_F_QUANTITY);
DataAccess.AddInParameter(cmd, "CN_F_CHECK_QTY", ComDbType.DECIMAL, entity.CN_F_CHECK_QTY);
DataAccess.AddInParameter(cmd, "CN_S_MEASURE_UNIT", ComDbType.STRING, entity.CN_S_MEASURE_UNIT);
DataAccess.AddInParameter(cmd, "CN_S_NOTE", ComDbType.STRING, entity.CN_S_NOTE);
DataAccess.AddInParameter(cmd, "CN_S_ISCHECK", ComDbType.CHAR, entity.CN_S_ISCHECK);
DataAccess.AddInParameter(cmd, "CN_S_ISWIN", ComDbType.CHAR, entity.CN_S_ISWIN);
DataAccess.AddInParameter(cmd, "CN_S_OPERATOR", ComDbType.STRING, CN_S_OPERATOR);
DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, CN_T_OPERATE);
DataAccess.AddInParameter(cmd, "CN_S_PACK_CODE", ComDbType.STRING, entity.CN_S_PACK_CODE);
listcmd.Add(cmd);
}
return ExecuteCommands(listcmd, trans);
}
///
/// 更新
///
/// 实体类
/// 事务
///
/// [HanHe(lt)] CREATED 2018/8/23
public SqlExecuteResult UpdateQTY(List entitylist, DbTransaction trans)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update tn_wm_check_list set "); ;
strSql.Append("CN_F_CHECK_QTY=:CN_F_CHECK_QTY,");
strSql.Append("CN_S_ISCHECK=:CN_S_ISCHECK,");
strSql.Append("CN_S_ISWIN=:CN_S_ISWIN,");
strSql.Append("CN_S_MODIFY=:CN_S_MODIFY,");
strSql.Append("CN_S_MODIFY_BY=:CN_S_MODIFY_BY,");
strSql.Append("CN_T_MODIFY=:CN_T_MODIFY");
strSql.Append(" where CN_S_OP_NO=:CN_S_OP_NO AND CN_S_TRAY_CODE=:CN_S_TRAY_CODE AND CN_S_PACK_CODE=:CN_S_PACK_CODE AND CN_S_ITEM_CODE=:CN_S_ITEM_CODE");
List cmdlist = new List();
foreach (TN_WM_CHECK_LISTEntity entity in entitylist)
{
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
DataAccess.AddInParameter(cmd, "CN_S_OP_NO", ComDbType.STRING, entity.CN_S_OP_NO);
DataAccess.AddInParameter(cmd, "CN_S_TRAY_CODE", ComDbType.STRING, entity.CN_S_TRAY_CODE);
DataAccess.AddInParameter(cmd, "CN_S_PACK_CODE", ComDbType.STRING, entity.CN_S_PACK_CODE);
DataAccess.AddInParameter(cmd, "CN_F_CHECK_QTY", ComDbType.DECIMAL, entity.CN_F_CHECK_QTY);
DataAccess.AddInParameter(cmd, "CN_S_ISCHECK", ComDbType.CHAR, "Y");
DataAccess.AddInParameter(cmd, "CN_S_ISWIN", ComDbType.CHAR, entity.CN_F_QUANTITY < entity.CN_F_CHECK_QTY ? "Y" : "N");
DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", ComDbType.STRING, entity.CN_S_ITEM_CODE);
DataAccess.AddInParameter(cmd, "CN_S_MODIFY", ComDbType.STRING, entity.CN_S_MODIFY);
DataAccess.AddInParameter(cmd, "CN_S_MODIFY_BY", ComDbType.STRING, entity.CN_S_MODIFY_BY);
DataAccess.AddInParameter(cmd, "CN_T_MODIFY", ComDbType.DATE, entity.CN_T_MODIFY);
cmdlist.Add(cmd);
}
return ExecuteCommands(cmdlist, trans);
}
///
/// 根据盘点单托盘编码更新
///
/// 实体类
/// 事务
///
/// [HanHe(lt)] CREATED 2018/8/23
public SqlExecuteResult UpdateByCode(string CN_S_OP_NO, string CN_S_TRAY_CODE, DbTransaction trans)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update tn_wm_check_list set "); ;
strSql.Append("CN_S_ISCHECK=:CN_S_ISCHECK");
strSql.Append(" where CN_S_OP_NO=:CN_S_OP_NO AND CN_S_TRAY_CODE=:CN_S_TRAY_CODE");
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
DataAccess.AddInParameter(cmd, "CN_S_OP_NO", ComDbType.STRING, CN_S_OP_NO);
DataAccess.AddInParameter(cmd, "CN_S_TRAY_CODE", ComDbType.STRING, CN_S_TRAY_CODE);
DataAccess.AddInParameter(cmd, "CN_S_ISCHECK", ComDbType.CHAR, "Y");
return ExecuteCommand(cmd, trans);
}
///
/// 更新(二次盘点)
///
/// 实体类
/// 事务
///
/// [HanHe(lt)] CREATED 2018/8/23
public SqlExecuteResult UpdateByTrayCode(string CN_S_OP_NO, string CN_S_TRAY_CODE, DbTransaction trans)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update tn_wm_check_list set "); ;
strSql.Append("CN_F_CHECK_QTY=0,");
strSql.Append("CN_S_ISCHECK='N',");
strSql.Append("CN_S_ISWIN=''");
strSql.Append(" where CN_S_OP_NO='" + CN_S_OP_NO + "' AND CN_S_TRAY_CODE in ('" + CN_S_TRAY_CODE + "')");
DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString());
return ExecuteCommand(cmd, trans);
}
#region 根据盘点查询托盘与物料表
///
/// 根据盘点查询托盘与物料表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/24
public List GetTrayitemByOpno(string sqlwhere, string type)
{
string sql = "";
if (type == "货位盘点" || type == "自定义盘点")
{
sql = @"SELECT a.CN_S_OP_NO,a.CN_N_ROW_NO AS CN_S_DTL_ROW,d.CN_S_STOCK_CODE,a.CN_S_STOCK_AREA,a.CN_S_LOCATION_CODE,ISNULL(c.CN_S_TRAY_CODE,b.CN_S_TRAY_CODE) AS CN_S_TRAY_CODE,c.CN_S_TRAY_GRID,c.CN_S_ITEM_CODE,c.CN_S_ITEM_NAME,c.CN_S_ITEM_STATE,c.CN_S_OWNER,'' AS CN_S_LOT_NO,c.CN_S_MODEL,c.CN_S_FIGURE_NO,c.CN_F_QUANTITY,0 AS CN_F_CHECK_QTY,a.CN_S_MEASURE_UNIT,D.CN_S_NOTE,'N' AS CN_S_ISCHECK,'' AS CN_S_ISWIN,d.CN_S_CREATOR AS CN_S_OPERATOR,GETDATE() AS CN_T_OPERATE,'' AS CN_S_PACK_CODE,'' AS CN_S_PACKING_UNIT,0 AS CN_F_PACKING_QTY,'' AS CN_S_PRODUCTION_BATCH FROM dbo.tn_wm_check_dtl AS a
LEFT JOIN dbo.tn_wm_b_tray_location AS b ON a.CN_S_LOCATION_CODE=b.CN_S_LOCATION_CODE
--码盘汇总开始
INNER JOIN dbo.TN_WM_B_TRAY_ITEM_MST AS c ON
ISNULL(a.CN_S_ITEM_CODE,'')=ISNULL(c.CN_S_ITEM_CODE,'') AND ISNULL(c.CN_S_ITEM_NAME,'') = ISNULL(a.CN_S_ITEM_NAME,'') AND ISNULL(a.CN_S_ITEM_STATE,'')=ISNULL(c.CN_S_ITEM_STATE,'') AND ISNULL(a.CN_S_OWNER,'')=ISNULL(c.CN_S_OWNER,'') AND ISNULL(a.CN_S_MODEL,'') = ISNULL(c.CN_S_MODEL,'') AND ISNULL(a.CN_S_FIGURE_NO,'')=ISNULL(c.CN_S_FIGURE_NO,'') AND ISNULL(c.CN_S_MEASURE_UNIT,'') = ISNULL(a.CN_S_MEASURE_UNIT,'')
AND ISNULL(c.CN_S_TRAY_CODE,'')=ISNULL(b.CN_S_TRAY_CODE,'')
INNER JOIN dbo.tn_wm_check_mst AS d ON a.CN_S_OP_NO=d.CN_S_OP_NO {0}
UNION ALL --空货位
SELECT a.CN_S_OP_NO,a.CN_N_ROW_NO AS CN_S_DTL_ROW,b.CN_S_STOCK_CODE,a.CN_S_STOCK_AREA,a.CN_S_LOCATION_CODE,ISNULL(d.CN_S_TRAY_CODE,'') AS CN_S_TRAY_CODE,'' as CN_S_TRAY_GRID,'' AS CN_S_ITEM_CODE,'' AS CN_S_ITEM_NAME,'' AS CN_S_ITEM_STATE,'' AS CN_S_OWNER,'' AS CN_S_LOT_NO,'' AS CN_S_MODEL,'' AS CN_S_FIGURE_NO,0 AS CN_F_QUANTITY,0 AS CN_F_CHECK_QTY,a.CN_S_MEASURE_UNIT,b.CN_S_NOTE,'N' AS CN_S_ISCHECK,'' AS CN_S_ISWIN,b.CN_S_CREATOR AS CN_S_OPERATOR,GETDATE() AS CN_T_OPERATE,'' AS CN_S_PACK_CODE,'' AS CN_S_PACKING_UNIT,0 AS CN_F_PACKING_QTY,'' AS CN_S_PRODUCTION_BATCH FROM dbo.tn_wm_check_dtl AS a
INNER JOIN dbo.tn_wm_check_mst AS b ON a.CN_S_OP_NO=b.CN_S_OP_NO
LEFT JOIN dbo.tn_wm_b_location_ext AS c ON c.CN_S_LOCATION_CODE = a.CN_S_LOCATION_CODE
LEFT JOIN dbo.tn_wm_b_tray_location AS d ON d.CN_S_LOCATION_CODE=a.CN_S_LOCATION_CODE {0} AND a.CN_S_ITEM_CODE IS NULL";
}
else
{
sql = @"SELECT a.CN_S_OP_NO,a.CN_N_ROW_NO AS CN_S_DTL_ROW,d.CN_S_STOCK_CODE,a.CN_S_STOCK_AREA,b.CN_S_LOCATION_CODE,ISNULL(c.CN_S_TRAY_CODE,b.CN_S_TRAY_CODE) AS CN_S_TRAY_CODE,c.CN_S_TRAY_GRID,c.CN_S_ITEM_CODE,c.CN_S_ITEM_NAME,c.CN_S_ITEM_STATE,c.CN_S_OWNER,'' AS CN_S_LOT_NO,c.CN_S_MODEL,c.CN_S_FIGURE_NO,c.CN_F_QUANTITY,0 AS CN_F_CHECK_QTY,a.CN_S_MEASURE_UNIT,D.CN_S_NOTE,'N' AS CN_S_ISCHECK,'' AS CN_S_ISWIN,d.CN_S_CREATOR AS CN_S_OPERATOR,GETDATE() AS CN_T_OPERATE,'' AS CN_S_PACK_CODE,'' AS CN_S_PACKING_UNIT,0 AS CN_F_PACKING_QTY,'' AS CN_S_PRODUCTION_BATCH FROM dbo.tn_wm_check_dtl AS a
LEFT JOIN dbo.TN_WM_B_TRAY_ITEM_MST AS c ON
ISNULL(a.CN_S_ITEM_CODE,'')=ISNULL(c.CN_S_ITEM_CODE,'') AND ISNULL(c.CN_S_ITEM_NAME,'') = ISNULL(a.CN_S_ITEM_NAME,'') AND ISNULL(a.CN_S_ITEM_STATE,'')=ISNULL(c.CN_S_ITEM_STATE,'') AND ISNULL(a.CN_S_OWNER,'')=ISNULL(c.CN_S_OWNER,'') AND ISNULL(a.CN_S_MODEL,'') = ISNULL(c.CN_S_MODEL,'') AND ISNULL(a.CN_S_FIGURE_NO,'')=ISNULL(c.CN_S_FIGURE_NO,'') AND ISNULL(c.CN_S_MEASURE_UNIT,'') = ISNULL(a.CN_S_MEASURE_UNIT,'')
INNER JOIN dbo.tn_wm_b_tray_location AS b ON b.CN_S_TRAY_CODE=c.CN_S_TRAY_CODE
INNER JOIN dbo.tn_wm_check_mst AS d ON a.CN_S_OP_NO=d.CN_S_OP_NO {0} ";
//UNION ALL --空托盘
//SELECT a.CN_S_OP_NO,a.CN_N_ROW_NO AS CN_S_DTL_ROW,d.CN_S_STOCK_CODE,a.CN_S_STOCK_AREA,b.CN_S_LOCATION_CODE,b.CN_S_TRAY_CODE,'' as CN_S_TRAY_GRID,'' AS CN_S_ITEM_CODE,'' AS CN_S_ITEM_NAME,'' AS CN_S_ITEM_STATE,'' AS CN_S_OWNER,'' AS CN_S_LOT_NO,'' AS CN_S_MODEL,'' AS CN_S_FIGURE_NO,0 AS CN_F_QUANTITY,0 AS CN_F_CHECK_QTY,a.CN_S_MEASURE_UNIT,D.CN_S_NOTE,'N' AS CN_S_ISCHECK,'' AS CN_S_ISWIN,d.CN_S_CREATOR AS CN_S_OPERATOR,GETDATE() AS CN_T_OPERATE,'' AS CN_S_PACK_CODE,'' AS CN_S_PACKING_UNIT,0 AS CN_F_PACKING_QTY,'' AS CN_S_PRODUCTION_BATCH FROM dbo.tn_wm_check_dtl AS a
//LEFT JOIN (SELECT *,'' AS CN_S_ITEM_CODE FROM tn_wm_b_tray_location WHERE CN_S_TRAY_CODE NOT IN(SELECT CN_S_TRAY_CODE FROM TN_WM_B_TRAY_ITEM_MST)) AS b ON b.CN_S_ITEM_CODE=a.CN_S_ITEM_CODE AND a.CN_S_STOCK_AREA=b.CN_S_STOCK_AREA
//INNER JOIN dbo.tn_wm_check_mst AS d ON a.CN_S_OP_NO=d.CN_S_OP_NO {0}";
}
sql = string.Format(sql, sqlwhere);
return ExecuteQuery(sql, null);
}
#endregion
#region 根据托盘编码获取盘点托盘信息
///
/// 根据托盘编码获取盘点托盘信息
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/27
public DataTable GetTrayCheckByCode(string sqlwhere)
{
string sql = @"SELECT b.CN_S_STOCK_CODE,b.CN_S_STOCK_AREA,b.CN_S_OP_NO,b.CN_S_TRAY_CODE,ISNULL(a.CN_S_TRAY_GRID,'') AS CN_S_TRAY_GRID,ISNULL(a.CN_S_PACKING_CODE,'') AS CN_S_PACKING_CODE,ISNULL(a.CN_S_ITEM_CODE,'') AS CN_S_ITEM_CODE,ISNULL(a.CN_S_ITEM_NAME,'') AS CN_S_ITEM_NAME,ISNULL(a.CN_S_ITEM_STATE,'') AS CN_S_ITEM_STATE,CAST(b.CN_F_QUANTITY AS INT) AS CN_F_QUANTITY,ISNULL(CAST(a.CN_F_PACKING_QTY AS INT),0) AS CN_F_PACKING_QTY,b.CN_S_LOCATION_CODE,ISNULL(CAST(d.CN_F_QUANTITY AS INT),0) AS CN_F_QUANTITY_DTL,ISNULL(c.CN_N_ROW_NUM,0) AS CN_N_ROW_NUM,ISNULL(c.CN_N_COLUMN_NUM,0) AS CN_N_COLUMN_NUM,b.CN_S_LOT_NO,b.CN_S_OWNER FROM tn_wm_check_list AS b
LEFT JOIN .dbo.tn_wm_b_tray_item_rel AS a ON a.CN_S_TRAY_CODE =b.CN_S_TRAY_CODE AND b.CN_S_TRAY_GRID = a.CN_S_TRAY_GRID AND a.CN_S_PACKING_CODE=b.CN_S_PACK_CODE
LEFT JOIN dbo.tn_wm_tray_info AS c ON a.CN_S_TRAY_CODE=c.CN_S_TRAY_CODE
LEFT JOIN (SELECT CN_S_OP_NO,CN_S_TRAY_CODE,SUM(CN_F_QUANTITY) AS CN_F_QUANTITY,CN_S_ITEM_CODE FROM tn_wm_check_list GROUP BY CN_S_OP_NO,CN_S_TRAY_CODE,CN_S_ITEM_CODE) AS d ON b.CN_S_OP_NO=d.CN_S_OP_NO AND d.CN_S_TRAY_CODE = b.CN_S_TRAY_CODE AND d.CN_S_ITEM_CODE = b.CN_S_ITEM_CODE {0}";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
}
#endregion
#region 根据托盘编码获取盘点托盘信息
///
/// 根据托盘编码获取盘点托盘信息
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/27
public DataTable GetTrayItemByCode(string sqlwhere)
{
string sql = @"SELECT a.CN_S_TRAY_CODE,a.CN_S_TRAY_GRID,CN_F_PACKING_QTY,b.CN_S_OP_NO,ISNULL(b.CN_F_QUANTITY,0) AS CN_F_QUANTITY FROM (SELECT CN_S_TRAY_CODE,CN_S_TRAY_GRID,CAST(SUM(CN_F_PACKING_QTY) AS INT) AS CN_F_PACKING_QTY FROM dbo.tn_wm_b_tray_item_rel GROUP BY CN_S_TRAY_CODE,CN_S_TRAY_GRID) AS a LEFT JOIN (SELECT CN_S_TRAY_CODE,CN_S_TRAY_GRID,CAST(SUM(CN_F_QUANTITY) AS INT) AS CN_F_QUANTITY,CN_S_OP_NO FROM dbo.tn_wm_check_list GROUP BY CN_S_TRAY_CODE,CN_S_TRAY_GRID,CN_S_OP_NO) AS b ON a.CN_S_TRAY_CODE=b.CN_S_TRAY_CODE AND b.CN_S_TRAY_GRID = a.CN_S_TRAY_GRID {0}";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
}
#endregion
#region 根据货位获取托盘信息
///
/// 根据托盘编码获取盘点托盘信息
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/27
public DataTable GetTrayByLocationCode(string sqlwhere)
{
string sql = @"SELECT CN_S_OP_NO,CN_S_LOCATION_CODE,a.CN_S_TRAY_CODE,b.CN_N_ROW_NUM,b.CN_N_COLUMN_NUM,b.CN_S_TRAY_TYPE FROM (SELECT CN_S_OP_NO,CN_S_LOCATION_CODE,CN_S_TRAY_CODE FROM dbo.tn_wm_check_list GROUP BY CN_S_OP_NO,CN_S_LOCATION_CODE,CN_S_TRAY_CODE) AS a INNER JOIN dbo.tn_wm_tray_info AS b ON a.CN_S_TRAY_CODE=b.CN_S_TRAY_CODE {0} ";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
}
#endregion
#region 盘点单最大行号
///
/// 盘点单最大行号
///
///
///
/// [HanHe(lt)] CREATED 2018/7/3
public int GetMaxRow(string sqlwhere)
{
string sql = "SELECT ISNULL(MAX(CN_S_DTL_ROW),0) AS CN_S_DTL_ROW FROM dbo.tn_wm_check_list {0} GROUP BY CN_S_OP_NO";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
DataTable dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
return Convert.ToInt32(dt.Rows[0]["CN_S_DTL_ROW"]);
}
#endregion
#region 是否存在已经执行数据
///
/// 是否存在已经执行数据
///
///
///
/// [HanHe(lt)] CREATED 2018/7/3
public DataTable GetExist(string sqlwhere)
{
string sql = "SELECT * FROM dbo.tn_wm_check_mst WHERE CN_S_STATE='执行' {0}";
sql = string.Format(sql, sqlwhere);
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
DataTable dt = DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd);
return dt;
}
#endregion
#region 快速盘点
#region 根据货位获取托盘中物料
///
/// 根据货位获取托盘中物料
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2019/1/2
public DataTable GetTrayitemBylocation(string locationCode)
{
string sql = @"SELECT a.CN_S_STOCK_CODE,a.CN_S_AREA_CODE,a.CN_S_LOCATION_CODE,b.CN_S_TRAY_CODE,c.CN_S_TRAY_GRID,c.CN_S_ITEM_CODE,c.CN_S_ITEM_NAME,c.CN_S_ITEM_STATE,c.CN_S_OWNER,c.CN_S_MODEL,c.CN_S_FIGURE_NO,c.CN_S_MEASURE_UNIT,c.CN_F_QUANTITY,CAST(d.CN_F_PACKING_QTY AS INT) AS CN_F_BOXPACKING_QTY,d.CN_S_PACKING_UNIT AS CN_F_BOXPACKING_UNIT
FROM dbo.tn_wm_b_location_ext AS a
LEFT JOIN dbo.tn_wm_b_tray_location AS b ON a.CN_S_LOCATION_CODE=b.CN_S_LOCATION_CODE
LEFT JOIN dbo.TN_WM_B_TRAY_ITEM_MST AS c ON b.CN_S_TRAY_CODE=c.CN_S_TRAY_CODE
LEFT JOIN (SELECT TOP 1 CN_S_ITEM_CODE,CN_F_PACKING_QTY,CN_S_PACKING_UNIT FROM dbo.TN_WM_B_UNIQUE_BARCODE WHERE CN_S_PARENT_CODE='' GROUP BY CN_S_ITEM_CODE,CN_F_PACKING_QTY,CN_S_PACKING_UNIT) AS d ON c.CN_S_ITEM_CODE=d.CN_S_ITEM_CODE
where a.CN_S_LOCATION_CODE=@CN_S_LOCATION_CODE";
return ExecuteDataTable(sql, new { CN_S_LOCATION_CODE = locationCode });
}
#endregion
#endregion
#region 获取子表明细表最大行号
///
/// 获取子表明细表最大行号
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2019/1/17
public List GetMaxCheckRow()
{
string sql = @"SELECT MAX(b.CN_N_ROW_NO) AS CN_S_DTL_ROW,a.CN_S_OP_NO FROM dbo.tn_wm_check_mst AS a INNER JOIN
dbo.tn_wm_check_dtl AS b ON a.CN_S_OP_NO=b.CN_S_OP_NO WHERE a.CN_S_STATE='执行' AND a.CN_S_TYPE='快速盘点' GROUP BY a.CN_S_OP_NO
UNION ALL
SELECT MAX(b.CN_S_DTL_ROW) AS CN_S_DTL_ROW,a.CN_S_OP_NO FROM dbo.tn_wm_check_mst AS a INNER JOIN
dbo.tn_wm_check_list AS b ON a.CN_S_OP_NO=b.CN_S_OP_NO WHERE a.CN_S_STATE='执行' AND a.CN_S_TYPE='快速盘点' GROUP BY a.CN_S_OP_NO";
return ExecuteQuery(sql, null);
}
#endregion
///
/// 批量新增
///
/// 实体类
/// 事务
///
/// [HanHe(lt)] CREATED 2018/8/23
public OperateResult AddCheckLists(List list, IDbTransaction trans)
{
OperateResult result = new OperateResult();
foreach (TN_WM_CHECK_LISTEntity entity in list)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" IF EXISTS(SELECT * FROM dbo.TN_WM_CHECK_LIST " + entity.sqlWhere + ") ");
strSql.Append("UPDATE TN_WM_CHECK_LIST SET CN_F_CHECK_QTY=@CN_F_CHECK_QTY,CN_S_ISCHECK=@CN_S_ISCHECK,CN_S_ISWIN=@CN_S_ISWIN " + entity.sqlWhere + "");
strSql.Append(" else ");
strSql.Append(" insert into tn_wm_check_list(");
strSql.Append("CN_S_OP_NO,CN_S_DTL_ROW,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_S_TRAY_CODE,CN_S_TRAY_GRID,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_LOT_NO,CN_S_MODEL,CN_S_FIGURE_NO,CN_F_QUANTITY,CN_F_CHECK_QTY,CN_S_MEASURE_UNIT,CN_S_NOTE,CN_S_ISCHECK,CN_S_ISWIN,CN_S_OPERATOR,CN_T_OPERATE,CN_S_PACK_CODE,CN_S_PACKING_UNIT,CN_F_PACKING_QTY,CN_S_PRODUCTION_BATCH,CN_S_CREATOR,CN_S_CREATOR_BY,CN_T_CREATE,CN_S_MODIFY,CN_S_MODIFY_BY,CN_T_MODIFY)");
strSql.Append(" values (");
strSql.Append("@CN_S_OP_NO,@CN_S_DTL_ROW,@CN_S_STOCK_CODE,@CN_S_STOCK_AREA,@CN_S_LOCATION_CODE,@CN_S_TRAY_CODE,@CN_S_TRAY_GRID,@CN_S_ITEM_CODE,@CN_S_ITEM_NAME,@CN_S_ITEM_STATE,@CN_S_OWNER,@CN_S_LOT_NO,@CN_S_MODEL,@CN_S_FIGURE_NO,@CN_F_QUANTITY,@CN_F_CHECK_QTY,@CN_S_MEASURE_UNIT,@CN_S_NOTE,@CN_S_ISCHECK,@CN_S_ISWIN,@CN_S_OPERATOR,@CN_T_OPERATE,@CN_S_PACK_CODE,@CN_S_PACKING_UNIT,@CN_F_PACKING_QTY,@CN_S_PRODUCTION_BATCH,@CN_S_CREATOR,@CN_S_CREATOR_BY,@CN_T_CREATE,@CN_S_MODIFY,@CN_S_MODIFY_BY,@CN_T_MODIFY)");
result = ExecuteTranSql(strSql.ToString(), new
{
CN_S_OP_NO = entity.CN_S_OP_NO,
CN_S_DTL_ROW = entity.CN_S_DTL_ROW,
CN_S_STOCK_CODE = entity.CN_S_STOCK_CODE,
CN_S_STOCK_AREA = entity.CN_S_STOCK_AREA,
CN_S_LOCATION_CODE = entity.CN_S_LOCATION_CODE,
CN_S_TRAY_CODE = entity.CN_S_TRAY_CODE,
CN_S_TRAY_GRID = entity.CN_S_TRAY_GRID,
CN_S_ITEM_CODE = entity.CN_S_ITEM_CODE,
CN_S_ITEM_NAME = entity.CN_S_ITEM_NAME,
CN_S_ITEM_STATE = entity.CN_S_ITEM_STATE,
CN_S_OWNER = entity.CN_S_OWNER,
CN_S_LOT_NO = entity.CN_S_LOT_NO,
CN_S_MODEL = entity.CN_S_MODEL,
CN_S_FIGURE_NO = entity.CN_S_FIGURE_NO,
CN_F_QUANTITY = entity.CN_F_QUANTITY,
CN_F_CHECK_QTY = entity.CN_F_CHECK_QTY,
CN_S_MEASURE_UNIT = entity.CN_S_MEASURE_UNIT,
CN_S_NOTE = entity.CN_S_NOTE,
CN_S_ISCHECK = entity.CN_S_ISCHECK,
CN_S_ISWIN = entity.CN_F_QUANTITY < entity.CN_F_CHECK_QTY ? "Y" : "N",
CN_S_OPERATOR = entity.CN_S_OPERATOR,
CN_T_OPERATE = entity.CN_T_OPERATE,
CN_S_PACK_CODE = entity.CN_S_PACK_CODE,
CN_S_PACKING_UNIT = entity.CN_S_PACKING_UNIT,
CN_F_PACKING_QTY = entity.CN_F_PACKING_QTY,
CN_S_PRODUCTION_BATCH = entity.CN_S_PRODUCTION_BATCH,
CN_S_CREATOR = entity.CN_S_CREATOR,
CN_S_CREATOR_BY = entity.CN_S_CREATOR_BY,
CN_T_CREATE = entity.CN_T_CREATE,
CN_S_MODIFY = entity.CN_S_MODIFY,
CN_S_MODIFY_BY = entity.CN_S_MODIFY_BY,
CN_T_MODIFY = entity.CN_T_MODIFY
}, trans);
if (result.Status == ResultStatus.Error)
return result;
}
return result;
}
#region 删除
///
/// 删除
///
///
///
public OperateResult DeleteCheckLists(string sqlwhere, IDbTransaction trans)
{
string sql = "delete dbo.tn_wm_check_list {0}";
sql = string.Format(sql, sqlwhere);
return ExecuteTranSql(sql, null, trans);
}
#endregion
///
/// 获取列表
///
///
///
/// [HanHe(lt)] CREATED 2018/10/25
public List CheckList(string locationCode)
{
StringBuilder sbStr = new StringBuilder();
sbStr.Append("SELECT * FROM tn_wm_check_list WHERE CN_S_OP_NO!=''");
if (!string.IsNullOrEmpty(locationCode))
{
sbStr.Append(" AND CN_S_LOCATION_CODE='" + locationCode + "' ");
}
return ExecuteQuery(sbStr.ToString());
}
///
/// 更新盘点结果
///
/// 盘亏数据
///
public OperateResult UpdateCheckResult(List planCheck, RedisUserEntity user, IDbTransaction trans)
{
OperateResult or = new OperateResult();
string sql = @"UPDATE TN_WM_CHECK_LIST SET
CN_F_CHECK_QTY=@CN_F_CHECK_QTY,
CN_S_ISCHECK=@CN_S_ISCHECK,
CN_S_ISWIN=@CN_S_ISWIN,
CN_S_MODIFY=@CN_S_MODIFY,
CN_S_MODIFY_BY=@CN_S_MODIFY_BY,
CN_T_MODIFY=@CN_T_MODIFY
where CN_S_LOCATION_CODE=@CN_S_LOCATION_CODE
and CN_S_ITEM_CODE=@CN_S_ITEM_CODE
and CN_S_PACKING_UNIT=@CN_S_PACKING_UNIT
and CN_F_PACKING_QTY=@CN_F_PACKING_QTY";
foreach (TN_WM_CHECK_LISTEntity m in planCheck)
{
or = ExecuteTranSql(sql, new
{
CN_F_CHECK_QTY = m.CN_F_CHECK_QTY,
CN_S_ISCHECK = "Y",
CN_S_ISWIN = "N",
CN_S_MODIFY = user.CN_S_LOGIN,
CN_S_MODIFY_BY = user.CN_S_NAME,
CN_T_MODIFY = m.CN_T_MODIFY,
CN_S_LOCATION_CODE = m.CN_S_LOCATION_CODE,
CN_S_ITEM_CODE = m.CN_S_ITEM_CODE,
CN_S_PACKING_UNIT = m.CN_S_PACKING_UNIT,
CN_F_PACKING_QTY = m.CN_F_PACKING_QTY
}, trans);
if (or.Status != ResultStatus.Success)
return or;
}
return OperateResult.Succeed();
}
}
}