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(); } } }