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
}
}