ldj/Model/wms/data/WmsOutPickPort_Imp.cs

417 lines
21 KiB
C#
Raw Normal View History

2023-05-23 16:13:17 +08:00

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_wmsOutPickPort
///By wm with codesmith.
///on 06/15/2017
/// </summary>
using System;
using System.Data.SqlClient;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class WmsOutPickPort_Imp : WmsOutPickPort_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
WaveRule wr;
base.CmdPrepare(sqlCmd);
WmsOutPickPort mObj = ( WmsOutPickPort)modelObj;
switch (_cust_op_flag)
{
case 99: //query with dic
if (mObj.CmdParameters[0].ToString().Contains("saleOrder ="))
{
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM [v_stockOutBatchPickDetailWithSaleOrder] WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID ";
_strSql += ";SELECT COUNT(*) FROM [v_stockOutBatchPickDetailWithSaleOrder] WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
}
else
{
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM v_stockOutBatchPickDetail WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID ";
_strSql += ";SELECT COUNT(*) FROM v_stockOutBatchPickDetail WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 100: //by name
_strSql = "SELECT * FROM t_wmsOutPickPort WHERE NAME = @NAME";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@NAME", mObj.CmdParameters[0]);
break;
case 200: //by pickorderNo
_strSql = "SELECT * FROM t_wmsOutPickPort WHERE pickOrderNo = @pickOrderNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 300: //get detail by Id
// _strSql = "SELECT * FROM [v_stockOutBatchPickDetail] WHERE ID = @Id";
_strSql = "SELECT * FROM [v_stockOutPort] WHERE ID = @Id";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@Id", mObj.CmdParameters[0]);
break;
case 400: //update state by Id
_strSql = "UPDATE t_wmsOutPickPort SET STATE = @STATE ,operater =@operater,lastmodified = getdate() WHERE ID = @Id";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@Id", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
break;
case 401: //update state by pickOrderDetailId, bulk item validation done
_strSql = "UPDATE t_wmsOutPickPort SET STATE = @STATE ,operater =@operater,lastmodified = getdate()"
+ " , checkby=@operater,checkBy2=@checkBy2,checkTime=getdate(),checkByTime2=getdate()"
+" WHERE pickDetailId = @pickDetailId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickDetailId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@checkBy2", mObj.CmdParameters[3]);
break;
case 410: //update state by stockRecordId
_strSql = "UPDATE t_wmsOutPickPort SET STATE = @STATE ,pickby=@operater,pickTime=getdate(),operater =@operater,lastmodified = getdate() WHERE recordId = @recordId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@recordId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
break;
case 500: //by pickorderNo( or exclude rep pick order)
_strSql = "SELECT COUNT(*) FROM t_wmsOutPickPort WHERE state =@STATE";
_strSql += Convert.ToBoolean(mObj.CmdParameters[2].ToString()) ?
" and volType > 0" //整库货位
: " and volType <= 0"; //零库货位
if (!string.IsNullOrEmpty(mObj.CmdParameters[0].ToString()))
{
_strSql += " and pickOrderNo = @pickOrderNo ";
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
}
else if (!string.IsNullOrEmpty(mObj.CmdParameters[3].ToString()))
{
_strSql += " and waveOrder = @waveOrder ";
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[3]);
}
else
{
_strSql += " and waveOrder is not null ";
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
break;
case 600: // get count for flowno and state
_strSql = "select count(*) from t_wmsOutPickPort where flowNo =@flowNo "
+ " and state !=@status";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@status", (int)enumPickState.);
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
/*
case 700: // 未分配波次的拣货任务
_strSql = "select * from t_wmsOutPickPort a where 1=1 "
+ " and exists(select 1 from t_wmsOutPickRequest where pickOrderNo =a.pickOrderNo and state=@orderState)"
+ " and waveOrder is null and state =@pickState"
+ " order by tranArea,pickOrderNo,voltype,partion,locationid";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderState", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)enumPickState.);
break;
*/
case 700: // 未分配波次的拣货任务
_strSql = "select * from v_stockOutPort port where 1=1 "
+ " and orderState =@orderState "
+ " and waveOrder is null and state =@pickState";
wr = (WaveRule)mObj.CmdParameters[0];
if (wr.lineId > 0)
{
_strSql += " and ( orderType!= @orderType or exists(select 1 from v_tmsLineDetail where custid = port.customerId and lineId =@lineId))";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if (!string.IsNullOrEmpty(wr.owner))
{
_strSql += " and ( orderType!= @orderType or ownercode =@ownerCode ) ";
sqlCmd.Parameters.AddWithValue("@ownerCode", wr.owner);
}
_strSql += " order by priority,tranArea,pickOrderNo,voltype,partion,locationid";
// LogHelper.debug("pick waves ", _strSql);
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderState", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)enumPickState.);
sqlCmd.Parameters.AddWithValue("@orderType", (int)enumOutOrderType.);
break;
case 701: // 未分配波次的拣货任务 4 dps wave
_strSql = "select top(@cnt) * from v_stockOutPort port where recType=1 "
+ " and dpsorder is null and elabId >0 and voltype=0 ";
wr = (WaveRule)mObj.CmdParameters[0];
if (wr.lineId > 0)
{
_strSql += " and ( orderType!= @orderType or exists(select 1 from v_tmsLineDetail where custid = port.customerId and lineId =@lineId))";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if (!string.IsNullOrEmpty(wr.owner))
{
_strSql += " and ( orderType!= @orderType or ownercode =@ownerCode ) ";
sqlCmd.Parameters.AddWithValue("@ownerCode", wr.owner);
}
sqlCmd.Parameters.AddWithValue("@orderType", (int)enumOutOrderType.);
_strSql += " order by pickOrderNo;";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.MAX_CONTROL_DATA_IN_A_WAVE);
break;
case 800: // 根据waveNo 取wave detail 分页数据
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM v_stockOutPort WHERE waveOrder =@waveNo ";
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY jobNo ";
_strSql += ";SELECT COUNT(*) FROM v_stockOutPort WHERE waveOrder =@waveNo ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 801: // 不分页详细数据
_strSql = "select * from t_wmsOutPickPort where waveOrder =@waveNo order by jobNo "
;
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 900: // get wave detail by waveNo
_strSql = "SELECT * FROM [v_stockOutPort] WHERE waveOrder = @waveOrder";
_strSql += " order by volType,part,locationId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
break;
case 910: // get wave detail by waveNo and volType
_strSql = "SELECT * FROM [v_stockOutPort] WHERE waveOrder = @waveOrder and volType =@volType";
_strSql += " order by part,locationId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[1]);
break;
case 920: // get wave detail summary by waveNo and volType = bulk
_strSql = "SELECT * FROM [v_stockOutPortSum] WHERE waveOrder = @waveOrder and volType =@volType ";
_strSql += " order by pickOrderNo,jobNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[1]);
break;
case 1000: //by orderNo
_strSql = "SELECT * FROM v_stockOutPort WHERE jobNo = @jobNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@jobNo", mObj.CmdParameters[0]);
break;
case 1001: //by flowno
_strSql = "SELECT * FROM v_stockOutPort WHERE flowNo = @flowNo and goodsId=@goodsId and isnull(batch,'' )=@batch";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
break;
case 1100: //getFreeTasks
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] a WHERE isnull(takeBy,0) =0 ";
_strSql += " and orderType =@orderType ";
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[4]);
if (Convert.ToBoolean(mObj.CmdParameters[2]))
{
_strSql += " and volType>0 ";
}
_strSql += " and state = " + (int)enumPickState.;
if (Convert.ToInt16(mObj.CmdParameters[0]) > 0)
{
_strSql += " and partion =@partion";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
}
if (Convert.ToInt16(mObj.CmdParameters[1]) > 0)
{
_strSql += " and isnull(lineid,0) = @lineId";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[1]);
}
if (Convert.ToInt32(mObj.CmdParameters[5]) > 0)
{
_strSql += " and exists(select 1 from v_empPartions where partion = a.partion and empId=@empId)";
sqlCmd.Parameters.AddWithValue("@empId", mObj.CmdParameters[5]);
}
_strSql += " order by priority,locationid";
sqlCmd.CommandText = _strSql;
break;
case 1200: //getAssignedTasks by takeby
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] WHERE state = " + (int)enumPickState.;
_strSql += " and takeBy =@takeBy ";
_strSql += " and orderType =@orderType ";
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[4]);
if (Convert.ToBoolean(mObj.CmdParameters[3]))
{
_strSql += " and volType>0 ";
}
/*
_strSql += " and isnull(lineid,0) = @lineId"
+ " and isnull(partion,0) =@partion"
+ " and takeBy =@takeBy"
+ " order by priority desc,locationid";
_strSql += " and isnull(takeBy,0) =@takeby";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[1]);
*/
if (Convert.ToInt16( mObj.CmdParameters[2])>0){
_strSql += " and isnull(lineid,0) = @lineId";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[2]);
}
if (Convert.ToInt16(mObj.CmdParameters[1]) > 0)
{
_strSql += " and partion =@partion";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
_strSql += " order by priority desc,locationid";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@takeBy", mObj.CmdParameters[0]);
break;
case 1300: //get assigned Tasks by pda //for wince use
_strSql = "SELECT [货区], [货位] ,[件],[线路],[数量],[商品] ,[分配人] "
+ " FROM [v_stockOutBatchPickDetail4Wince] WHERE state = " + (int)enumPickState. ;
_strSql += " and orderType =@orderType ";
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[4]);
if (Convert.ToBoolean(mObj.CmdParameters[3]))
{
_strSql += " and volType>0 ";
}
_strSql += " and isnull(takeBy,0) =@takeby";
if(Convert.ToInt16( mObj.CmdParameters[2])>0){
_strSql += " and isnull(lineid,0) = @lineId";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[2]);
}
if (Convert.ToInt16(mObj.CmdParameters[1]) > 0)
{
_strSql += " and partion =@partion";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
_strSql += " order by priority desc,货位";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@takeby", mObj.CmdParameters[0]);
break;
case 1400: //get partion by userid
_strSql = "SELECT distinct [partion] ,[partName] FROM [v_empPartions] ";
_strSql += " where empid =@empId ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@empId", mObj.CmdParameters[0]);
break;
case 1500: //get partion by userid
_strSql = "SELECT * from t_wmsOutPickPort where recordId=@recId ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@recId", mObj.CmdParameters[0]);
break;
case 1600: //update bulkpickstatus by pickOrder ,seeds finished one pickorder
_strSql = " update t_wmsOutPickPort set state =@state "
+", checkby=@checkBy,checktime=getdate(),checkBy2=@checkBy2,checkByTime2=getdate()"
+" where voltype =0 "
+ " and pickOrderNo=@pickorderNo "
;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickorderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@checkBy", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@checkBy2", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[3]);
break;
case 1700: //get partion by userid
_strSql = "SELECT * from [v_repStockOutInTasks] where takeBy =@takeBy ";
_strSql += " and state =@state";
if(Convert.ToInt16(mObj.CmdParameters[1].ToString())>0){
_strSql += " and partion =@partion";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@takeBy", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[2]);
break;
case 1800://get seeds out detail by flowno
_strSql = "SELECT * from [v_stockOutPortSeedsDetail] where flowNo=@flowNo " +
"order by goodsId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
case 1810://get seeds out detail by flowno, order by cust line order
_strSql = "SELECT * from [v_stockOutPortSeedsDetail] where flowNo=@flowNo " +
"order by lineOrder ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
}
}
}
}