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 ;
2023-12-03 22:13:49 +08:00
try
{
base . CmdPrepare ( sqlCmd ) ;
} catch ( Exception er )
{
LogHelper . WriteLog ( this . GetType ( ) , er ) ;
}
2023-05-23 16:13:17 +08:00
WmsOutPickPort mObj = ( WmsOutPickPort ) modelObj ;
switch ( _cust_op_flag )
{
case 99 : //query with dic
2024-03-06 20:48:05 +08:00
if ( /*1==1 ||*/ mObj . CmdParameters [ 0 ] . ToString ( ) . Contains ( "saleOrder =" ) )
2023-05-23 16:13:17 +08:00
{
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM [v_stockOutBatchPickDetailWithSaleOrder] WHERE 1 = 1 " + mObj . CmdParameters [ 0 ] . ToString ( ) ;
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY pickpriority ,channel,shelf,layer" ;
2023-05-23 16:13:17 +08:00
_strSql + = ";SELECT COUNT(*) FROM [v_stockOutBatchPickDetailWithSaleOrder] WHERE 1 = 1 " + mObj . CmdParameters [ 0 ] . ToString ( ) ;
}
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
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 ( ) ;
}
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
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
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * FROM v_stockoutport WHERE pickOrderNo = @pickOrderNo " ;
if ( Convert . ToInt16 ( mObj . CmdParameters [ 1 ] ) > - 1 )
{
_strSql + = " and state =@state" ;
sqlCmd . Parameters . AddWithValue ( "@state" , mObj . CmdParameters [ 1 ] ) ;
}
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@pickOrderNo" , mObj . CmdParameters [ 0 ] ) ;
break ;
case 201 : // CLOSE ALL pick stasks that not picked by pickorderNo
_strSql = "UPDATE T_WMSOUTPICKPORT SET STATE =@STATE WHERE pickOrderNo = @pickOrderNo and state=0 " ;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
sqlCmd . Parameters . AddWithValue ( "@pickOrderNo" , mObj . CmdParameters [ 0 ] ) ;
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@STATE" , ( int ) enumPickState . 已 关 闭 ) ;
2023-05-23 16:13:17 +08:00
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" ;
2023-11-21 19:18:23 +08:00
if ( ! WmsConstants . OUT_STOCK_BULK_PDA_SCAN )
2023-05-23 16:13:17 +08:00
_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 : // 未分配波次的拣货任务
2023-09-04 22:41:19 +08:00
_strSql = "select top (@cnt) * from v_stockOutPort port where 1=1 "
// + " and orderState =@orderState "
+ " and waveOrder is null " +
" and state =@pickState" ;
2023-05-23 16:13:17 +08:00
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 ) ;
}
2024-02-06 19:36:47 +08:00
_strSql + = " order by priority desc,partion,channel,pickOrderNo,tranArea,voltype,locationid" ;
2023-05-23 16:13:17 +08:00
// LogHelper.debug("pick waves ", _strSql);
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@orderState" , ( int ) enumOutStockRequestStatus . 等 待 波 次 ) ;
sqlCmd . Parameters . AddWithValue ( "@pickState" , ( int ) enumPickState . 未 拣 ) ;
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@orderType" , ( int ) enumOrderType . 销 售 出 库 ) ;
sqlCmd . Parameters . AddWithValue ( "@cnt" , WmsConstants . MAX_JOBS_IN_A_WAVE * 20 ) ;
2023-05-23 16:13:17 +08:00
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 ) ;
}
2023-11-21 19:18:23 +08:00
sqlCmd . Parameters . AddWithValue ( "@orderType" , ( int ) enumOrderType . 销 售 出 库 ) ;
2023-05-23 16:13:17 +08:00
_strSql + = " order by pickOrderNo;" ;
sqlCmd . CommandText = _strSql ;
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@cnt" , WmsConstants . MAX_CONTROL_DATA_IN_A_WAVE * 20 ) ;
2023-05-23 16:13:17 +08:00
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
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * FROM v_stockOutPort WHERE flowNo = @flowNo and goodsId=@goodsId and isnull(batch,@batch )=@batch " ; // or batch is null)";
LogHelper . debug ( GetType ( ) , _strSql ) ;
2023-05-23 16:13:17 +08:00
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 ;
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
case 1100 : //getFreeTasks
2023-09-04 22:41:19 +08:00
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] a WHERE " +
" jobNo is not null" +
" and isnull(takeBy,0) =0 " ;
2023-11-21 19:18:23 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 4 ] ) > 0 )
{
_strSql + = " and orderType =@orderType " ;
sqlCmd . Parameters . AddWithValue ( "@orderType" , mObj . CmdParameters [ 4 ] ) ;
}
2024-02-06 19:36:47 +08:00
if ( ! ( WmsConstants . OUT_TASK_ASSIGN_ZHAIGUO_TYPE & & WmsConstants . OUT_SEEDS_PICK_TASK_AUTO_ASSIGN ) )
{
if ( WmsConstants . OUT_SEEDS_PICK_TASK_AUTO_ASSIGN )
{
_strSql + = " and recType = " + ( int ) enumStockRecordType . 集 货 拣 货 ;
}
else
if ( WmsConstants . OUT_TASK_ASSIGN_ZHAIGUO_TYPE )
{
_strSql + = " and recType = " + ( int ) enumStockRecordType . 销 售 出 库 ;
}
}
2023-05-23 16:13:17 +08:00
if ( Convert . ToBoolean ( mObj . CmdParameters [ 2 ] ) )
{
_strSql + = " and volType>0 " ;
}
_strSql + = " and state = " + ( int ) enumPickState . 未 拣 ;
2023-09-04 22:41:19 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 0 ] ) > 0 )
2023-05-23 16:13:17 +08:00
{
2023-11-21 19:18:23 +08:00
_strSql + = " and (partion=0 or partion =@partion)" ;
2023-05-23 16:13:17 +08:00
sqlCmd . Parameters . AddWithValue ( "@partion" , mObj . CmdParameters [ 0 ] ) ;
}
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
2023-09-04 22:41:19 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 1 ] ) > 0 )
2023-05-23 16:13:17 +08:00
{
_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 ] ) ;
}
2023-09-04 22:41:19 +08:00
_strSql + = " order by priority desc,pickorderno,locationid" ;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2023-11-21 19:18:23 +08:00
break ;
2023-12-03 22:13:49 +08:00
2023-11-21 19:18:23 +08:00
case 1110 : //getFreeTasks by jobNo
2023-12-03 22:13:49 +08:00
_strSql = "SELECT top (@cnt) * FROM [v_stockOutBatchPickDetail] a WHERE " +
2023-11-21 19:18:23 +08:00
" jobNo is not null" +
2024-02-06 19:36:47 +08:00
" and elabId =0 " +
" and isnull(takeBy,0) =0 " +
" and ( isWeightSeeds=0 or isWeightSeeds =1 and partion =@partion )" ; //区的任务可跨区获取,或获取指定区的任务
sqlCmd . Parameters . AddWithValue ( "@partion" , mObj . CmdParameters [ 0 ] ) ;
/ * // 是否可以获取分配任务
if ( Convert . ToBoolean ( mObj . CmdParameters [ 9 ] ) )
{
_strSql + = " and recType =12 " ;
}
* /
/ *
* 任 务 按 时 间 段 获 取 , 辣 得 叫 中 午 单 拣 , 下 午 总 拣 为 主 , 同 时 间 段 内 的 集 中 拣 货 任 务 优 先
if ( ! ( WmsConstants . OUT_TASK_ASSIGN_ZHAIGUO_TYPE & & WmsConstants . OUT_SEEDS_PICK_TASK_AUTO_ASSIGN ) )
{
if ( WmsConstants . OUT_SEEDS_PICK_TASK_AUTO_ASSIGN ) //集中拣货任务可抢
{
_strSql + = " and recType = " + ( int ) enumStockRecordType . 集 货 拣 货 ;
}
else
if ( WmsConstants . OUT_TASK_ASSIGN_ZHAIGUO_TYPE ) //按单拣货任务可抢
{
_strSql + = " and recType = " + ( int ) enumStockRecordType . 销 售 出 库 ;
}
}
* /
2023-11-21 19:18:23 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 4 ] ) > 0 )
{
_strSql + = " and orderType =@orderType " ;
2023-12-03 22:13:49 +08:00
try
{
sqlCmd . Parameters . AddWithValue ( "@orderType" , mObj . CmdParameters [ 4 ] ) ;
} catch ( Exception er )
{
LogHelper . WriteLog ( this . GetType ( ) , er ) ;
LogHelper . debug ( "wmsoutpickport_imp" , er . StackTrace ) ;
}
}
2024-02-06 19:36:47 +08:00
2023-12-03 22:13:49 +08:00
if ( mObj . CmdParameters [ 6 ] ! = null & & ! string . IsNullOrEmpty ( mObj . CmdParameters [ 6 ] . ToString ( ) ) )
{
_strSql + = " and jobNo =@jobNo " ;
sqlCmd . Parameters . AddWithValue ( "@jobNo" , mObj . CmdParameters [ 6 ] ) ;
2023-11-21 19:18:23 +08:00
}
2023-12-03 22:13:49 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 3 ] ) > 0 )
{
_strSql + = " and warehouse =@warehouse " ;
sqlCmd . Parameters . AddWithValue ( "@warehouse" , mObj . CmdParameters [ 3 ] ) ;
}
if ( ! string . IsNullOrEmpty ( mObj . CmdParameters [ 7 ] . ToString ( ) ) )
{
_strSql + = " and pickorderNo =@pickorderNo " ;
sqlCmd . Parameters . AddWithValue ( "@pickorderNo" , mObj . CmdParameters [ 7 ] ) ;
}
2023-11-21 19:18:23 +08:00
if ( Convert . ToBoolean ( mObj . CmdParameters [ 2 ] ) )
{
_strSql + = " and volType>0 " ;
}
_strSql + = " and state = " + ( int ) enumPickState . 未 拣 ;
2024-02-06 19:36:47 +08:00
2023-11-21 19:18:23 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 0 ] ) > 0 )
{
_strSql + = " and (partion=0 or partion =@partion)" ;
2024-02-06 19:36:47 +08:00
//sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
2023-11-21 19:18:23 +08:00
}
2024-02-06 19:36:47 +08:00
2023-11-21 19:18:23 +08:00
if ( Convert . ToInt32 ( 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 ] ) ;
}
2023-12-03 22:13:49 +08:00
// _strSql += " order by priority desc,pickorderno,locationid";
2023-11-21 19:18:23 +08:00
2023-12-03 22:13:49 +08:00
if ( Convert . ToBoolean ( mObj . CmdParameters [ 8 ] ) )
{
2024-03-06 20:48:05 +08:00
// _strSql += " order by priority desc,seedspickno desc, goodsid";
_strSql + = " order by priority desc, goodsid" ;
2023-12-03 22:13:49 +08:00
}
else
{
2024-02-06 19:36:47 +08:00
_strSql + = " order by priority desc,lineId,lineorder, pickorderNo , virtialCnt, warehouse,partion,channel,shelf,col,layer,goodsid" ;
2023-12-03 22:13:49 +08:00
}
2024-03-06 20:48:05 +08:00
// LogHelper.debug(GetType(), _strSql);
2023-12-03 22:13:49 +08:00
2024-03-06 20:48:05 +08:00
sqlCmd . Parameters . AddWithValue ( "@cnt" , WmsConstants . MAX_JOBS_IN_A_WAVE * 5 ) ;
2023-11-21 19:18:23 +08:00
sqlCmd . CommandText = _strSql ;
2023-05-23 16:13:17 +08:00
break ;
2024-02-06 19:36:47 +08:00
case 1120 : //getFreeTasks by pickorder
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] WHERE " +
" jobNo is not null" +
" and elabId =0 " +
" and isnull(takeBy,0) =0 " +
" and pickorderNo =@pickorderNo " +
" order by priority desc,lineId,lineorder, pickorderNo , virtialCnt, warehouse,partion,channel,shelf,col,layer,goodsid" ;
sqlCmd . CommandText = _strSql ;
// LogHelper.debug(GetType(), _strSql);
//sqlCmd.Parameters.AddWithValue("@takeBy", 5000);
// sqlCmd.Parameters.AddWithValue("@cnt", 5000);
sqlCmd . Parameters . AddWithValue ( "@pickorderNo" , mObj . CmdParameters [ 0 ] ) ;
break ;
2023-05-23 16:13:17 +08:00
case 1200 : //getAssignedTasks by takeby
2024-02-06 19:36:47 +08:00
_strSql = "SELECT top (@cnt) * FROM [v_stockOutBatchPickDetail] WHERE 1=1 " +
" and elabId = 0 " ;
if ( Convert . ToInt32 ( mObj . CmdParameters [ 10 ] ) < = 0 )
{
_strSql + = " and state = 0 " ; //未拣任务
}
else
{
_strSql + = " and state >= @state " ; //已分拣、播种
}
// _strSql += " and (owner=@takeBy or takeBy =@takeBy) ";
_strSql + = " and ( takeBy =@takeBy) " ;
// _strSql += String.Format(" and ( takeBy ='{0}') ", mObj.CmdParameters[0]);
2023-09-04 22:41:19 +08:00
_strSql + = " and jobNo is not null " ;
2023-11-21 19:18:23 +08:00
2024-02-06 19:36:47 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 9 ] ) > 0 )
2023-11-21 19:18:23 +08:00
{
_strSql + = " and orderType =@orderType " ;
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@orderType" , mObj . CmdParameters [ 9 ] ) ;
2023-11-21 19:18:23 +08:00
}
2023-05-23 16:13:17 +08:00
2024-02-06 19:36:47 +08:00
if ( Convert . ToBoolean ( mObj . CmdParameters [ 8 ] ) )
2023-05-23 16:13:17 +08:00
{
_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 ] ) ;
* /
2024-02-06 19:36:47 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 7 ] ) > 0 ) {
2023-05-23 16:13:17 +08:00
_strSql + = " and isnull(lineid,0) = @lineId" ;
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@lineId" , mObj . CmdParameters [ 7 ] ) ;
2023-05-23 16:13:17 +08:00
}
2024-02-06 19:36:47 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 6 ] ) > 0 )
2023-05-23 16:13:17 +08:00
{
_strSql + = " and partion =@partion" ;
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@partion" , mObj . CmdParameters [ 6 ] ) ;
2023-05-23 16:13:17 +08:00
}
2024-02-06 19:36:47 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 10 ] ) > 0 ) //播种
{
_strSql + = " and isnull( pickTime,getdate()-100) > getdate()-1 " +
" and DATEPART(dd, isnull( pickTime,getdate()-5) ) = DATEPART(dd, getdate()) " ;
_strSql + = " order by pickTime desc " ;
}
else
{
_strSql + = " order by priority desc,linepriority desc, pickorderNo ,/* virtialCnt,*/ warehouse,partion,locationId,channel,shelf,col,layer,goodsid" ;
}
2024-03-06 20:48:05 +08:00
// LogHelper.debug(GetType(), _strSql);
2024-02-06 19:36:47 +08:00
sqlCmd . Parameters . AddWithValue ( "@state" , mObj . CmdParameters [ 10 ] ) ;
// _strSql += " order by priority desc,customerid,locationid";
sqlCmd . Parameters . AddWithValue ( "@takeBy" , mObj . CmdParameters [ 5 ] ) ;
sqlCmd . Parameters . AddWithValue ( "@cnt" , WmsConstants . MAX_JOBS_IN_A_WAVE ) ;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
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" ;
2023-09-04 22:41:19 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 2 ] ) > 0 ) {
2023-05-23 16:13:17 +08:00
_strSql + = " and isnull(lineid,0) = @lineId" ;
sqlCmd . Parameters . AddWithValue ( "@lineId" , mObj . CmdParameters [ 2 ] ) ;
}
2023-09-04 22:41:19 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 1 ] ) > 0 )
2023-05-23 16:13:17 +08:00
{
_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 ;
2024-02-06 19:36:47 +08:00
case 1400 : //get partions
_strSql = " select flag as [partion] , name as [partName] from t_node where parentid=16753" ;
sqlCmd . CommandText = _strSql ;
break ;
case 1401 : //get partion by userid
2023-05-23 16:13:17 +08:00
_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" ;
2023-09-04 22:41:19 +08:00
if ( Convert . ToInt32 ( mObj . CmdParameters [ 1 ] . ToString ( ) ) > 0 ) {
2023-05-23 16:13:17 +08:00
_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" ;
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
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 ;
2023-09-04 22:41:19 +08:00
case 1801 : //get seeds out detail by flowno
2023-11-21 19:18:23 +08:00
// _strSql = "SELECT * from [v_stockOutPortSeedsPickDetail] where flowNo=@flowNo " +
// "order by goodsId";
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * from [v_stockOutValidInSeedsDetail] where flowNo=@flowNo " + //直通分播商品按检验入拖的先入后出原则分播;
//集中贱货商品按拣货时间排序,后拣货的排前面
"order by picktime desc, goodsId,lineid, lineOrder" ;
2023-09-04 22:41:19 +08:00
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@flowNo" , mObj . CmdParameters [ 0 ] ) ;
break ;
case 1811 : //get seeds out detail by flowno, order by cust line order
2023-11-21 19:18:23 +08:00
// _strSql = "SELECT * from [v_stockOutPortSeedsPickDetail] where flowNo=@flowNo " +
// "order by lineid, lineOrder,customerid ";
2023-09-04 22:41:19 +08:00
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * from [v_stockOutValidInSeedsDetail] where flowNo=@flowNo " + //直通分播商品按检验入拖的先入后出原则分播; 集中拣货商品按店铺线路顺序排序
2023-11-21 19:18:23 +08:00
"order by createtime, lineid, lineOrder,customerid " ;
2023-09-04 22:41:19 +08:00
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@flowNo" , mObj . CmdParameters [ 0 ] ) ;
break ;
case 1900 : //get seeds out detail by flowno, order by cust line order
// _strSql = " SELECT distinct flowNo from [v_stockOutPortSeedsDetail] where availableCnt>0 ";
_strSql = " SELECT distinct flowNo from [v_stockOutPortSeedsPickDetail] where availableCnt>0 " ;
sqlCmd . CommandText = _strSql ;
break ;
case 2000 : //get portdetails by pickdetailid and pick state
_strSql = " SELECT * from v_stockoutport where pickdetailId =@detailId and state =@state" ;
sqlCmd . Parameters . AddWithValue ( "@detailId" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . Parameters . AddWithValue ( "@state" , mObj . CmdParameters [ 1 ] ) ;
sqlCmd . CommandText = _strSql ;
break ;
2023-05-23 16:13:17 +08:00
2023-09-04 22:41:19 +08:00
case 2100 : //get portdetails cnt by pickdetailid and pick state
_strSql = " SELECT count(1) from v_stockoutport where pickdetailId =@detailId and state =@state" ;
sqlCmd . Parameters . AddWithValue ( "@detailId" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . Parameters . AddWithValue ( "@state" , mObj . CmdParameters [ 1 ] ) ;
2023-11-21 19:18:23 +08:00
sqlCmd . CommandText = _strSql ;
break ;
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
case 2200 : //
_strSql = " SELECT * FROM [v_stockOutPortSumLight] WHERE state =0 and takeby=@takeby " ;
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
if ( Convert . ToInt16 ( mObj . CmdParameters [ 1 ] . ToString ( ) ) > 0 )
{
_strSql + = " and partion=@partion " ;
sqlCmd . Parameters . AddWithValue ( "@partion" , mObj . CmdParameters [ 1 ] ) ;
}
if ( Convert . ToInt16 ( mObj . CmdParameters [ 2 ] . ToString ( ) ) > 0 )
{
_strSql + = " and orderType=@orderType" ;
sqlCmd . Parameters . AddWithValue ( "@orderType" , mObj . CmdParameters [ 2 ] ) ;
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
}
sqlCmd . Parameters . AddWithValue ( "@takeby" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . CommandText = _strSql ;
break ;
2024-02-06 19:36:47 +08:00
case 2210 : // get by light
_strSql = " SELECT * FROM [v_stockOutPortSumLight] WHERE state =@state" ;
if ( Convert . ToInt16 ( mObj . CmdParameters [ 1 ] . ToString ( ) ) > 0 )
{
_strSql + = " and part=@partion " ;
sqlCmd . Parameters . AddWithValue ( "@partion" , mObj . CmdParameters [ 1 ] ) ;
}
if ( Convert . ToInt16 ( mObj . CmdParameters [ 2 ] . ToString ( ) ) > 0 )
{
_strSql + = " and lineId=@lineId " ;
sqlCmd . Parameters . AddWithValue ( "@lineId" , mObj . CmdParameters [ 2 ] ) ;
}
_strSql + = " and orderDate=@orderDate " ;
_strSql + = " order by lineId,customerName " ;
sqlCmd . Parameters . AddWithValue ( "@orderDate" , mObj . CmdParameters [ 3 ] ) ;
sqlCmd . Parameters . AddWithValue ( "@state" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . CommandText = _strSql ;
break ;
case 2220 : // get no light tasks
_strSql = " SELECT * FROM [v_stockOutPortSumNoLightByPickOrder] WHERE state =@state" ;
/ *
if ( Convert . ToInt16 ( mObj . CmdParameters [ 1 ] . ToString ( ) ) > 0 )
{
_strSql + = " and part=@partion " ;
sqlCmd . Parameters . AddWithValue ( "@partion" , mObj . CmdParameters [ 1 ] ) ;
} * /
if ( Convert . ToInt16 ( mObj . CmdParameters [ 4 ] . ToString ( ) ) > 0 )
{
_strSql + = " and warehouse=@warehouse " ;
sqlCmd . Parameters . AddWithValue ( "@warehouse" , mObj . CmdParameters [ 4 ] ) ;
}
if ( Convert . ToInt16 ( mObj . CmdParameters [ 2 ] . ToString ( ) ) > 0 )
{
_strSql + = " and lineId=@lineId " ;
sqlCmd . Parameters . AddWithValue ( "@lineId" , mObj . CmdParameters [ 2 ] ) ;
}
_strSql + = " and orderDate=@orderDate " ;
_strSql + = mObj . CmdParameters [ 5 ] . ToString ( ) ;
_strSql + = " order by lineId,customerName " ;
sqlCmd . Parameters . AddWithValue ( "@orderDate" , mObj . CmdParameters [ 3 ] ) ;
sqlCmd . Parameters . AddWithValue ( "@state" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . CommandText = _strSql ;
break ;
2023-11-21 19:18:23 +08:00
case 2300 : //
_strSql = " SELECT id as portId, * FROM v_stockoutport WHERE jobNo =@jobNo " +
2024-02-06 19:36:47 +08:00
" and elabId>0 order by lineid desc" ;
2023-11-21 19:18:23 +08:00
sqlCmd . Parameters . AddWithValue ( "@jobNo" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . CommandText = _strSql ;
break ;
2024-02-06 19:36:47 +08:00
case 2400 : //
_strSql = " SELECT id as portId, * FROM v_stockoutport WHERE pickorderNo =@pickorderNo " +
" and elabId>0 order by lineid desc " ;
sqlCmd . Parameters . AddWithValue ( "@pickorderNo" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . CommandText = _strSql ;
break ;
2023-05-23 16:13:17 +08:00
}
2024-02-06 19:36:47 +08:00
sqlCmd . CommandText = _strSql ;
2023-05-23 16:13:17 +08:00
}
}
}