using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Entitys.Common; using HH.WMS.Entitys.Entitys; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HH.WMS.DAL.OutStock { public class TN_WM_SORTING_LISTDAL : DapperBaseDAL { #region 分拣单列表 /// /// 分拣单列表 /// /// /// public List GetSortings(string key) { string sql = @"SELECT * FROM TN_WM_SORTING_LIST WHERE CN_S_STATE IN('待分拣','分拣中')"; if (!string.IsNullOrEmpty(key)) sql += " AND CN_S_SORTING_NO LIKE '%" + key.Replace("'", "") + "%' "; return ExecuteQuery(sql); } #endregion #region 批量新增分拣主表 /// /// 批量新增分拣主表 /// /// /// /// /// [Hanhe(lt)] created 2018-10-8 public SqlExecuteResult batchAdd(List list, DbTransaction trans) { string sql = @"INSERT INTO tn_wm_sorting_list (CN_S_DEPARTMENT,CN_S_CREATE_TYPE ,CN_GUID,CN_S_SORTING_NO ,CN_S_ORGAN,CN_S_MODIFY ,CN_S_FROM,CN_S_OP_FROM ,CN_S_MODIFY_BY,CN_S_FROM_NO ,CN_T_MODIFY,CN_S_CREATOR ,CN_T_OPERATE,CN_S_STOCK_CODE ,CN_S_CREATOR_BY,CN_T_CREATE ,CN_S_STOCK_AREA,CN_S_STATUS ,CN_S_STATE,CN_S_DEVICE_TYPE ,CN_S_SEEDING_MODE,CN_S_GROUP,CN_S_ORDER_NO,CN_C_BIG) VALUES (:CN_S_DEPARTMENT,:CN_S_CREATE_TYPE ,:CN_GUID,:CN_S_SORTING_NO ,:CN_S_ORGAN,:CN_S_MODIFY ,:CN_S_FROM,:CN_S_OP_FROM ,:CN_S_MODIFY_BY,:CN_S_FROM_NO ,:CN_T_MODIFY,:CN_S_CREATOR ,:CN_T_OPERATE,:CN_S_STOCK_CODE ,:CN_S_CREATOR_BY,:CN_T_CREATE ,:CN_S_STOCK_AREA,:CN_S_STATUS ,:CN_S_STATE,:CN_S_DEVICE_TYPE ,:CN_S_SEEDING_MODE,:CN_S_GROUP,:CN_S_ORDER_NO,:CN_C_BIG)"; List cmdlist = new List(); foreach (TN_WM_SORTING_LISTEntity mst in list) { DbCommand cmd = DataAccess.GetSqlStringCommand(sql); this.DataAccess.AddInParameter(cmd, "CN_S_DEPARTMENT", ComDbType.STRING, mst.CN_S_DEPARTMENT); this.DataAccess.AddInParameter(cmd, "CN_S_CREATE_TYPE", ComDbType.STRING, mst.CN_S_CREATE_TYPE); this.DataAccess.AddInParameter(cmd, "CN_GUID", ComDbType.STRING, mst.CN_GUID); this.DataAccess.AddInParameter(cmd, "CN_S_SORTING_NO", ComDbType.STRING, mst.CN_S_SORTING_NO); this.DataAccess.AddInParameter(cmd, "CN_S_ORGAN", ComDbType.STRING, mst.CN_S_ORGAN); this.DataAccess.AddInParameter(cmd, "CN_S_FROM", ComDbType.STRING, mst.CN_S_FROM); this.DataAccess.AddInParameter(cmd, "CN_S_OP_FROM", ComDbType.STRING, mst.CN_S_OP_FROM); this.DataAccess.AddInParameter(cmd, "CN_S_FROM_NO", ComDbType.STRING, mst.CN_S_FROM_NO); this.DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", ComDbType.STRING, mst.CN_S_STOCK_CODE); this.DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, mst.CN_S_STOCK_AREA); this.DataAccess.AddInParameter(cmd, "CN_S_MODIFY", ComDbType.STRING, mst.CN_S_MODIFY); this.DataAccess.AddInParameter(cmd, "CN_S_MODIFY_BY", ComDbType.STRING, mst.CN_S_MODIFY_BY); this.DataAccess.AddInParameter(cmd, "CN_T_MODIFY", ComDbType.DATE, mst.CN_T_MODIFY); this.DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, mst.CN_T_OPERATE); this.DataAccess.AddInParameter(cmd, "CN_S_CREATOR", ComDbType.STRING, mst.CN_S_CREATOR); this.DataAccess.AddInParameter(cmd, "CN_S_CREATOR_BY", ComDbType.STRING, mst.CN_S_CREATOR_BY); this.DataAccess.AddInParameter(cmd, "CN_T_CREATE", ComDbType.DATE, mst.CN_T_CREATE); this.DataAccess.AddInParameter(cmd, "CN_S_STATUS", ComDbType.STRING, mst.CN_S_STATUS); this.DataAccess.AddInParameter(cmd, "CN_S_STATE", ComDbType.STRING, mst.CN_S_STATE); this.DataAccess.AddInParameter(cmd, "CN_S_DEVICE_TYPE", ComDbType.STRING, mst.CN_S_DEVICE_TYPE); this.DataAccess.AddInParameter(cmd, "CN_S_SEEDING_MODE", ComDbType.STRING, mst.CN_S_SEEDING_MODE); this.DataAccess.AddInParameter(cmd, "CN_S_GROUP", ComDbType.STRING, mst.CN_S_GROUP); this.DataAccess.AddInParameter(cmd, "CN_S_ORDER_NO", ComDbType.STRING, mst.CN_S_ORDER_NO); this.DataAccess.AddInParameter(cmd, "CN_C_BIG", ComDbType.STRING, mst.CN_C_BIG); cmdlist.Add(cmd); } return ExecuteCommands(cmdlist, trans); } #endregion #region 分拣结果绑定周转箱 /// /// 分拣结果绑定周转箱 /// /// /// /// public OperateResult MergeBox(List sortingResult, IDbTransaction trans) { string sql = @"UPDATE TN_WM_SORTING_RESULT SET CN_S_TURNOVERBOX_CODE=@CN_S_TURNOVERBOX_CODE WHERE CN_GUID=@CN_GUID"; return ExecuteTranSql(sql, sortingResult, trans); } #endregion #region 下降托盘物料关联数量(数量为0删除) /// /// 下降托盘物料关联数量(数量为0删除) /// /// public OperateResult DropTrayItemQty(List trayItemList, TN_WM_B_TRAY_LOCATIONEntity trayLocation, IDbTransaction trans) { string sql = string.Empty; foreach (var trayItem in trayItemList) { if (trayItem.CN_F_QUANTITY == 0) { Log.Info("ConfirmSorting DropTrayItemQty", "删除托盘物料关联主表"); //删除托盘物料关联主表 sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_MST WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItem, trans); Log.Info("ConfirmSorting DropTrayItemQty", "删除托盘物料关联子表"); //删除托盘物料关联子表 sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_DTL WHERE CN_PARENT_GUID=@CN_PARENT_GUID"; ExecuteTranSql(sql, trayItem.TrayItemDtlList, trans); //if (trayLocation != null) //{ //Log.Info("ConfirmSorting DropTrayItemQty", "删除托盘货位关联表"); //删除托盘货位关联表 //sql = @"DELETE FROM TN_WM_B_TRAY_LOCATION WHERE CN_S_TRAY_CODE=@CN_S_TRAY_CODE"; //ExecuteTranSql(sql, trayLocation, trans); //Log.Info("ConfirmSorting DropTrayItemQty", "修改货位贮存状态为空"); //修改货位贮存状态为空 //sql = @"UPDATE TN_WM_B_LOCATION_EXT SET CN_S_USE_STATE='" + Constants.Use_State_Empty + "' WHERE CN_S_LOCATION_CODE=@CN_S_LOCATION_CODE"; //ExecuteTranSql(sql, trayLocation, trans); //} } else { Log.Info("ConfirmSorting DropTrayItemQty", "下降托盘物料关联主表数量,分配量"); //下降托盘物料关联主表数量,分配量 sql = @"UPDATE TN_WM_B_TRAY_ITEM_MST SET CN_F_QUANTITY=@CN_F_QUANTITY,CN_F_INQTY=@CN_F_QUANTITY,CN_F_ALLOC_QTY=@CN_F_ALLOC_QTY WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItem, trans); foreach (var trayItemDtl in trayItem.TrayItemDtlList) { if (trayItemDtl.CN_F_QUANTITY == 0) { Log.Info("ConfirmSorting DropTrayItemQty", "删除托盘物料关联子表"); //删除托盘物料关联子表 sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_DTL WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItemDtl, trans); } else { Log.Info("ConfirmSorting DropTrayItemQty", "下降托盘物料关联子表数量"); //下降托盘物料关联子表数量 sql = @"UPDATE TN_WM_B_TRAY_ITEM_DTL SET CN_F_QUANTITY=@CN_F_QUANTITY,CN_F_PACKING_QTY=@CN_F_PACKING_QTY,CN_S_PACKING_UNIT=@CN_S_PACKING_UNIT WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItemDtl, trans); } } } } return OperateResult.Succeed(); } #endregion #region 清除托盘货位绑定 /// /// 清除托盘货位绑定 /// /// /// /// public OperateResult ClearLocationByTrayCode(TN_WM_B_TRAY_LOCATIONEntity trayLocation, IDbTransaction trans) { //删除托盘货位关联表 string sql = @"DELETE FROM TN_WM_B_TRAY_LOCATION WHERE CN_S_TRAY_CODE=@CN_S_TRAY_CODE"; ExecuteTranSql(sql, trayLocation, trans); Log.Info("ConfirmSorting DropTrayItemQty", "修改货位贮存状态为空"); //修改货位贮存状态为空 sql = @"UPDATE TN_WM_B_LOCATION_EXT SET CN_S_USE_STATE='" + Constants.Use_State_Empty + "' WHERE CN_S_LOCATION_CODE=@CN_S_LOCATION_CODE"; ExecuteTranSql(sql, trayLocation, trans); return OperateResult.Succeed(); } #endregion #region 下降托盘物料关联数量(数量为0删除) /// /// 下降托盘物料关联数量(数量为0删除) /// /// /// /// /// public OperateResult DropTrayItemQtys(List trayItemList, List trayLocations, IDbTransaction trans) { if (trayItemList == null) return OperateResult.Succeed(); string sql = string.Empty; foreach (var trayItem in trayItemList) { if (trayItem.CN_F_QUANTITY == 0) { //删除托盘物料关联主表 sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_MST WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItem, trans); //删除托盘物料关联子表 sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_DTL WHERE CN_PARENT_GUID=@CN_PARENT_GUID"; ExecuteTranSql(sql, trayItem.TrayItemDtlList, trans); if (trayLocations != null) { var currentTrayLocation = trayLocations.Find(x => x.CN_S_TRAY_CODE == trayItem.CN_S_TRAY_CODE); if (currentTrayLocation != null) { //删除托盘货位关联表 sql = @"DELETE FROM TN_WM_B_TRAY_LOCATION WHERE CN_S_TRAY_CODE=@CN_S_TRAY_CODE"; ExecuteTranSql(sql, currentTrayLocation, trans); //修改货位贮存状态为空 sql = @"UPDATE TN_WM_B_LOCATION_EXT SET CN_S_USE_STATE='" + Constants.Use_State_Empty + "' WHERE CN_S_LOCATION_CODE=@CN_S_LOCATION_CODE"; ExecuteTranSql(sql, currentTrayLocation, trans); } } } else { //下降托盘物料关联主表数量,分配量 sql = @"UPDATE TN_WM_B_TRAY_ITEM_MST SET CN_F_QUANTITY=@CN_F_QUANTITY,CN_F_ALLOC_QTY=@CN_F_ALLOC_QTY WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItem, trans); foreach (var trayItemDtl in trayItem.TrayItemDtlList) { if (trayItemDtl.CN_F_QUANTITY == 0) { //删除托盘物料关联子表 sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_DTL WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItemDtl, trans); } else { //下降托盘物料关联子表数量 sql = @"UPDATE TN_WM_B_TRAY_ITEM_DTL SET CN_F_QUANTITY=@CN_F_QUANTITY WHERE CN_GUID=@CN_GUID"; ExecuteTranSql(sql, trayItemDtl, trans); } } } } return OperateResult.Succeed(); } #endregion #region 新增分拣单的主子表 /// /// 新增分拣单的主子表 /// /// /// /// /// [Hanhe(DBS)] created 2018-5-14 public SqlExecuteResult Add(TN_WM_SORTING_DTLEntity entity, DbTransaction trans) { string sql = @"INSERT INTO tn_wm_sorting_dtl (CN_GUID ,CN_S_SORTING_NO ,CN_S_CREATOR ,CN_N_ROW_NO ,CN_S_CREATOR_BY ,CN_S_SERIAL_NO ,CN_T_CREATE ,CN_S_MODIFY ,CN_S_ITEM_CODE ,CN_S_ITEM_NAME ,CN_S_MODIFY_BY ,CN_F_QUANTITY ,CN_T_MODIFY ,CN_S_STATE ,CN_S_MSTGUID,CN_S_LOT_NO,CN_S_OWNER,CN_S_ITEM_STATE,CN_S_MODEL,CN_S_FIGURE_NO,CN_S_MEASURE_UNIT) VALUES (:CN_GUID,:CN_S_SORTING_NO,:CN_S_CREATOR,:CN_N_ROW_NO,:CN_S_CREATOR_BY,:CN_S_SERIAL_NO, :CN_T_CREATE,:CN_S_MODIFY,:CN_S_ITEM_CODE,:CN_S_ITEM_NAME,:CN_S_MODIFY_BY,:CN_F_QUANTITY, :CN_T_MODIFY,:CN_S_STATE,:CN_S_MSTGUID,:CN_S_LOT_NO,:CN_S_OWNER,:CN_S_ITEM_STATE,:CN_S_MODEL,:CN_S_FIGURE_NO,:CN_S_MEASURE_UNIT)"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); this.DataAccess.AddInParameter(cmd, "CN_GUID", ComDbType.STRING, entity.CN_GUID); this.DataAccess.AddInParameter(cmd, "CN_N_ROW_NO", ComDbType.INT, entity.CN_N_ROW_NO); this.DataAccess.AddInParameter(cmd, "CN_S_SERIAL_NO", ComDbType.STRING, entity.CN_S_SERIAL_NO); this.DataAccess.AddInParameter(cmd, "CN_S_SORTING_NO", ComDbType.STRING, entity.CN_S_SORTING_NO); this.DataAccess.AddInParameter(cmd, "CN_S_CREATOR", ComDbType.STRING, entity.CN_S_CREATOR); this.DataAccess.AddInParameter(cmd, "CN_S_CREATOR_BY", ComDbType.STRING, entity.CN_S_CREATOR_BY); this.DataAccess.AddInParameter(cmd, "CN_T_CREATE", ComDbType.DATE, entity.CN_T_CREATE); this.DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", ComDbType.STRING, entity.CN_S_ITEM_CODE); this.DataAccess.AddInParameter(cmd, "CN_S_ITEM_NAME", ComDbType.STRING, entity.CN_S_ITEM_NAME); this.DataAccess.AddInParameter(cmd, "CN_T_MODIFY", ComDbType.DATE, entity.CN_T_MODIFY); this.DataAccess.AddInParameter(cmd, "CN_S_MODIFY_BY", ComDbType.STRING, entity.CN_S_MODIFY_BY); this.DataAccess.AddInParameter(cmd, "CN_S_MODIFY", ComDbType.STRING, entity.CN_S_MODIFY); this.DataAccess.AddInParameter(cmd, "CN_F_QUANTITY", ComDbType.DECIMAL, entity.CN_F_QUANTITY); this.DataAccess.AddInParameter(cmd, "CN_S_STATE", ComDbType.STRING, entity.CN_S_STATE); this.DataAccess.AddInParameter(cmd, "CN_S_MSTGUID", ComDbType.STRING, entity.CN_S_MSTGUID); this.DataAccess.AddInParameter(cmd, "CN_S_LOT_NO", ComDbType.STRING, entity.CN_S_LOT_NO); this.DataAccess.AddInParameter(cmd, "CN_S_OWNER", ComDbType.STRING, entity.CN_S_OWNER); this.DataAccess.AddInParameter(cmd, "CN_S_ITEM_STATE", ComDbType.STRING, entity.CN_S_ITEM_STATE); this.DataAccess.AddInParameter(cmd, "CN_S_MODEL", ComDbType.STRING, entity.CN_S_MODEL); this.DataAccess.AddInParameter(cmd, "CN_S_FIGURE_NO", ComDbType.STRING, entity.CN_S_FIGURE_NO); this.DataAccess.AddInParameter(cmd, "CN_S_MEASURE_UNIT", ComDbType.STRING, entity.CN_S_MEASURE_UNIT); return ExecuteCommand(cmd, trans); } /// /// 批量新增分拣单子表 /// /// /// /// /// [Hanhe(lt)] created 2018-10-8 public SqlExecuteResult batchAdd(List list, DbTransaction trans) { string sql = @"INSERT INTO tn_wm_sorting_dtl (CN_GUID ,CN_S_SORTING_NO ,CN_S_CREATOR ,CN_N_ROW_NO ,CN_S_CREATOR_BY ,CN_S_SERIAL_NO ,CN_T_CREATE ,CN_S_MODIFY ,CN_S_ITEM_CODE ,CN_S_ITEM_NAME ,CN_S_MODIFY_BY ,CN_F_QUANTITY ,CN_T_MODIFY ,CN_S_STATE ,CN_S_MSTGUID,CN_S_LOT_NO,CN_S_OWNER,CN_S_ITEM_STATE,CN_S_MODEL,CN_S_FIGURE_NO,CN_S_MEASURE_UNIT) VALUES (:CN_GUID,:CN_S_SORTING_NO,:CN_S_CREATOR,:CN_N_ROW_NO,:CN_S_CREATOR_BY,:CN_S_SERIAL_NO, :CN_T_CREATE,:CN_S_MODIFY,:CN_S_ITEM_CODE,:CN_S_ITEM_NAME,:CN_S_MODIFY_BY,:CN_F_QUANTITY, :CN_T_MODIFY,:CN_S_STATE,:CN_S_MSTGUID,:CN_S_LOT_NO,:CN_S_OWNER,:CN_S_ITEM_STATE,:CN_S_MODEL,:CN_S_FIGURE_NO,:CN_S_MEASURE_UNIT)"; List cmdlist = new List(); foreach (TN_WM_SORTING_DTLEntity entity in list) { DbCommand cmd = DataAccess.GetSqlStringCommand(sql); this.DataAccess.AddInParameter(cmd, "CN_GUID", ComDbType.STRING, entity.CN_GUID); this.DataAccess.AddInParameter(cmd, "CN_N_ROW_NO", ComDbType.INT, entity.CN_N_ROW_NO); this.DataAccess.AddInParameter(cmd, "CN_S_SERIAL_NO", ComDbType.STRING, entity.CN_S_SERIAL_NO); this.DataAccess.AddInParameter(cmd, "CN_S_SORTING_NO", ComDbType.STRING, entity.CN_S_SORTING_NO); this.DataAccess.AddInParameter(cmd, "CN_S_CREATOR", ComDbType.STRING, entity.CN_S_CREATOR); this.DataAccess.AddInParameter(cmd, "CN_S_CREATOR_BY", ComDbType.STRING, entity.CN_S_CREATOR_BY); this.DataAccess.AddInParameter(cmd, "CN_T_CREATE", ComDbType.DATE, entity.CN_T_CREATE); this.DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", ComDbType.STRING, entity.CN_S_ITEM_CODE); this.DataAccess.AddInParameter(cmd, "CN_S_ITEM_NAME", ComDbType.STRING, entity.CN_S_ITEM_NAME); this.DataAccess.AddInParameter(cmd, "CN_T_MODIFY", ComDbType.DATE, entity.CN_T_MODIFY); this.DataAccess.AddInParameter(cmd, "CN_S_MODIFY_BY", ComDbType.STRING, entity.CN_S_MODIFY_BY); this.DataAccess.AddInParameter(cmd, "CN_S_MODIFY", ComDbType.STRING, entity.CN_S_MODIFY); this.DataAccess.AddInParameter(cmd, "CN_F_QUANTITY", ComDbType.DECIMAL, entity.CN_F_QUANTITY); this.DataAccess.AddInParameter(cmd, "CN_S_STATE", ComDbType.STRING, entity.CN_S_STATE); this.DataAccess.AddInParameter(cmd, "CN_S_MSTGUID", ComDbType.STRING, entity.CN_S_MSTGUID); this.DataAccess.AddInParameter(cmd, "CN_S_LOT_NO", ComDbType.STRING, entity.CN_S_LOT_NO); this.DataAccess.AddInParameter(cmd, "CN_S_OWNER", ComDbType.STRING, entity.CN_S_OWNER); this.DataAccess.AddInParameter(cmd, "CN_S_ITEM_STATE", ComDbType.STRING, entity.CN_S_ITEM_STATE); this.DataAccess.AddInParameter(cmd, "CN_S_MODEL", ComDbType.STRING, entity.CN_S_MODEL); this.DataAccess.AddInParameter(cmd, "CN_S_FIGURE_NO", ComDbType.STRING, entity.CN_S_FIGURE_NO); this.DataAccess.AddInParameter(cmd, "CN_S_MEASURE_UNIT", ComDbType.STRING, entity.CN_S_MEASURE_UNIT); cmdlist.Add(cmd); } return ExecuteCommands(cmdlist, trans); } #endregion #region 批量新增分拣明细 /// /// 批量新增分拣明细 /// /// 集合 /// 事务 /// /// [Hanhe(DBS)] created 2018-3-14 public SqlExecuteResult AddLocation(List entitys, DbTransaction trans) { string sql = @"INSERT INTO TN_WM_SORTING_LOCATION (CN_S_SORTING_NO ,CN_S_DEPARTMENT ,CN_GUID ,CN_S_CREATE_TYPE ,CN_S_MODIFY ,CN_S_FROM ,CN_S_ORGAN ,CN_N_ROW_NO ,CN_S_MODIFY_BY ,CN_T_MODIFY ,CN_S_SERIAL_NO ,CN_S_CREATOR ,CN_S_ITEM_CODE ,CN_S_CREATOR_BY ,CN_S_ITEM_NAME ,CN_T_CREATE ,CN_F_QUANTITY ,CN_S_STATUS ,CN_S_LOCATION_CODE ,CN_S_TRAY_CODE ,CN_S_TRAY_GRID ,CN_S_STATE ,CN_S_SORTING_PERSON ,CN_S_ORDER_NO,CN_S_LOT_NO,CN_S_ITEM_STATE,CN_S_OWNER,CN_S_MODEL,CN_S_FIGURE_NO,CN_S_MEASURE_UNIT) VALUES (:CN_S_SORTING_NO,:CN_S_DEPARTMENT,:CN_GUID,:CN_S_CREATE_TYPE,:CN_S_MODIFY,:CN_S_FROM, :CN_S_ORGAN,:CN_N_ROW_NO,:CN_S_MODIFY_BY,:CN_T_MODIFY,:CN_S_SERIAL_NO,:CN_S_CREATOR, :CN_S_ITEM_CODE,:CN_S_CREATOR_BY,:CN_S_ITEM_NAME,:CN_T_CREATE,:CN_F_QUANTITY, :CN_S_STATUS,:CN_S_LOCATION_CODE,:CN_S_TRAY_CODE,:CN_S_TRAY_GRID,:CN_S_STATE, :CN_S_SORTING_PERSON,:CN_S_ORDER_NO,:CN_S_LOT_NO,:CN_S_ITEM_STATE,:CN_S_OWNER,:CN_S_MODEL,:CN_S_FIGURE_NO,:CN_S_MEASURE_UNIT)"; List cmds = new List(); foreach (TN_WM_SORTING_LOCATIONEntity m in entitys) { DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_GUID", DbType.String, m.CN_GUID); DataAccess.AddInParameter(cmd, "CN_S_SORTING_NO", DbType.String, m.CN_S_SORTING_NO); DataAccess.AddInParameter(cmd, "CN_S_DEPARTMENT", DbType.String, m.CN_S_DEPARTMENT); DataAccess.AddInParameter(cmd, "CN_S_CREATE_TYPE", DbType.String, m.CN_S_CREATE_TYPE); DataAccess.AddInParameter(cmd, "CN_S_MODIFY", DbType.String, m.CN_S_MODIFY); DataAccess.AddInParameter(cmd, "CN_S_FROM", DbType.String, m.CN_S_FROM); DataAccess.AddInParameter(cmd, "CN_S_ORGAN", DbType.String, m.CN_S_ORGAN); DataAccess.AddInParameter(cmd, "CN_N_ROW_NO", DbType.String, m.CN_N_ROW_NO); DataAccess.AddInParameter(cmd, "CN_S_MODIFY_BY", DbType.String, m.CN_S_MODIFY_BY); DataAccess.AddInParameter(cmd, "CN_T_MODIFY", DbType.Date, m.CN_T_MODIFY); DataAccess.AddInParameter(cmd, "CN_S_SERIAL_NO", DbType.String, m.CN_S_SERIAL_NO); DataAccess.AddInParameter(cmd, "CN_S_CREATOR", DbType.String, m.CN_S_CREATOR); DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", DbType.String, m.CN_S_ITEM_CODE); DataAccess.AddInParameter(cmd, "CN_S_CREATOR_BY", DbType.String, m.CN_S_CREATOR_BY); DataAccess.AddInParameter(cmd, "CN_S_ITEM_NAME", DbType.String, m.CN_S_ITEM_NAME); DataAccess.AddInParameter(cmd, "CN_T_CREATE", DbType.Date, m.CN_T_CREATE); DataAccess.AddInParameter(cmd, "CN_F_QUANTITY", DbType.Decimal, m.CN_F_QUANTITY); DataAccess.AddInParameter(cmd, "CN_S_STATUS", DbType.String, m.CN_S_STATUS); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", DbType.String, m.CN_S_LOCATION_CODE); DataAccess.AddInParameter(cmd, "CN_S_TRAY_CODE", DbType.String, m.CN_S_TRAY_CODE); DataAccess.AddInParameter(cmd, "CN_S_TRAY_GRID", DbType.String, m.CN_S_TRAY_GRID); DataAccess.AddInParameter(cmd, "CN_S_STATE", DbType.String, m.CN_S_STATE); DataAccess.AddInParameter(cmd, "CN_S_SORTING_PERSON", DbType.String, m.CN_S_SORTING_PERSON); DataAccess.AddInParameter(cmd, "CN_S_ORDER_NO", DbType.String, m.CN_S_ORDER_NO); DataAccess.AddInParameter(cmd, "CN_S_LOT_NO", DbType.String, m.CN_S_LOT_NO); DataAccess.AddInParameter(cmd, "CN_S_ITEM_STATE", DbType.String, m.CN_S_ITEM_STATE); DataAccess.AddInParameter(cmd, "CN_S_OWNER", DbType.String, m.CN_S_OWNER); DataAccess.AddInParameter(cmd, "CN_S_MODEL", DbType.String, m.CN_S_MODEL); DataAccess.AddInParameter(cmd, "CN_S_FIGURE_NO", DbType.String, m.CN_S_FIGURE_NO); DataAccess.AddInParameter(cmd, "CN_S_MEASURE_UNIT", DbType.String, m.CN_S_MEASURE_UNIT); cmds.Add(cmd); } return ExecuteCommands(cmds, trans); } #endregion #region 获取当前托盘分拣中的分拣单 /// /// 获取当前托盘分拣中的分拣单 /// /// /// public List GetPickSortingByTray(string trayCode) { string sql = @"SELECT * FROM TN_WM_SORTING_LIST WHERE CN_S_SORTING_NO IN( SELECT A.CN_S_SORTING_NO FROM TN_WM_SORTING_LIST A,TN_WM_SORTING_LOCATION B WHERE A.CN_S_SORTING_NO = B.CN_S_SORTING_NO AND A.CN_S_STATE=@CN_S_STATE AND B.CN_S_TRAY_CODE=@CN_S_TRAY_CODE)"; return ExecuteQuery(sql, new { CN_S_STATE = Constants.Sorting_Being, CN_S_TRAY_CODE = trayCode }); } #endregion #region 出库单获取分拣明细 /// /// 出库单获取分拣明细 /// /// /// public List GetTrayLocationByOut(string outNo) { string sql = @"SELECT * FROM TN_WM_SORTING_LOCATION WHERE CN_S_SORTING_NO IN( SELECT CN_S_SORTING_NO FROM TN_WM_SORTING_LIST WHERE CN_S_FROM_NO IN( SELECT CN_S_WAVE_CODE FROM TN_WM_OUT_MST WHERE CN_S_OP_NO=@CN_S_OP_NO))"; return ExecuteQuery(sql, new { CN_S_OP_NO = outNo }); } #endregion } }