ldj/Model/wms/data/WmsOutPickRequest_Imp.cs

1141 lines
70 KiB
C#
Raw Normal View History

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

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_wmsOutPickRequest
///By wm with codesmith.
///on 05/22/2017
/// </summary>
using System;
using System.Data.SqlClient;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class WmsOutPickRequest_Imp : WmsOutPickRequest_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
WaveRule wr;
base.CmdPrepare(sqlCmd);
WmsOutPickRequest mObj = ( WmsOutPickRequest)modelObj;
switch (_cust_op_flag)
{
case 99: //query with dic
/*WaveRule wr = (WaveRule)mObj.CmdParameters[2];
string whsql = mObj.CmdParameters[0].ToString();
if (wr.lineId > 0)
{
whsql += " and exists(select 1 from t_tmsLineDetail where custId =r.customerId and lineid =@lineId ) ";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if(!string.IsNullOrEmpty(wr.sales))
{
whsql += " and exists(select 1 from t_wmsOutRequest where pickOrderNo = r.pickorderNo and salesperson =@sales ) ";
sqlCmd.Parameters.AddWithValue("@sales", wr.lineId);
}
*/
string whsql = mObj.CmdParameters[0].ToString();
2023-09-04 22:41:19 +08:00
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY PRIORITY desc, ID) as sortNo FROM v_stockOutRequestWithDetails r WHERE DR = 1 " + whsql;
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY PRIORITY desc,ID desc";
2023-05-23 16:13:17 +08:00
_strSql += ";SELECT COUNT(*) FROM v_stockOutRequestWithDetails r WHERE DR = 1 " + whsql;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 100: //by orderNo
_strSql = "SELECT * FROM t_wmsOutPickRequest WHERE PICKORDERNO = @PICKORDERNO";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@PICKORDERNO", mObj.CmdParameters[0]);
break;
case 101: //by orderNo
_strSql = "SELECT * FROM t_wmsOutPickRequest WHERE pickGroup = @pickGroup and pickStartOn =@pickStartOn and dueDate =@dueDate";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickGroup", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@pickStartOn", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@dueDate", mObj.CmdParameters[2]);
break;
case 200: //get order out detail by pick ORDERNO
_strSql = "SELECT * FROM v_stockOutPickDetail WHERE PICKORDERNO = @ORDERNO";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
break;
2023-11-21 19:18:23 +08:00
case 201: //get order out detail by pick ORDERNO
_strSql = "SELECT * FROM t_wmsoutpickdetail WHERE PICKORDERNO = @ORDERNO";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
break;
2023-05-23 16:13:17 +08:00
case 210: //get order out detail by pick ORDERNO
_strSql = "SELECT TOP (@cnt) * FROM v_stockOutPickDetail WHERE PICKORDERNO = @ORDERNO";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
2023-09-04 22:41:19 +08:00
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PAGER_SIZE );
2023-05-23 16:13:17 +08:00
break;
2023-09-04 22:41:19 +08:00
case 300: //get pickrequest by status
2023-05-23 16:13:17 +08:00
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
2023-09-04 22:41:19 +08:00
_strSql = "SELECT top (@cnt) * FROM [t_wmsOutPickRequest] "
// + " where orderType =@orderType and state =@state order by priority desc,custAddress, createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
// + " where orderType =@orderType and state =@state order by priority desc , createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
+ " where 1=1 " +
2023-11-21 19:18:23 +08:00
" and createtime > getdate()-@daysOut " +
2023-09-04 22:41:19 +08:00
" and state =@state order by pickgroup, priority desc, createtime desc"; //后生成的先入,需二次处理的问题订单排后面
//按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
2023-05-23 16:13:17 +08:00
2023-09-04 22:41:19 +08:00
//sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[1]);
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.OUT_PROCESS_ORDERS_CNT);
sqlCmd.Parameters.AddWithValue("@daysOut", WmsConstants.OUT_PROCESS_ORDERS_CNT );
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
break;
2023-09-04 22:41:19 +08:00
case 30001: //get pickrequest by status
_strSql = "SELECT top (@cnt) * FROM [t_wmsOutPickRequest] "
+ " where 1=1 " +
2023-11-21 19:18:23 +08:00
" and createtime > getdate()-@daysOut " +
2023-09-04 22:41:19 +08:00
" and state =@state order by pickgroup, priority desc, checkedtime"; //未处理过的,或新处理过的优先,确保所有订单都有机会处理库存
//sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.OUT_PROCESS_ORDERS_CNT );
sqlCmd.Parameters.AddWithValue("@daysOut", WmsConstants.OUT_PROCESS_ORDERS_CNT);
2023-09-04 22:41:19 +08:00
sqlCmd.CommandText = _strSql;
break;
case 3001: //get pickrequest by outStoreType,satus
_strSql = "SELECT * FROM [t_wmsOutPickRequest] "
+ " where outStoreType = @outStoreType " +
" and state =@state order by pickgroup, priority desc, createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
// sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PAGER_SIZE/2);
sqlCmd.CommandText = _strSql;
break;
2023-05-23 16:13:17 +08:00
case 301: //get pickrequest by ordertype,satus, with bulks only
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT TOP (@cnt) * FROM [t_wmsOutPickRequest] r "
// + " where orderType =@orderType and state =@state order by priority desc,custAddress, createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
+ " where bulkCnt>0 "
+ " and orderType =@orderType "
+" and state> " + (int)enumOutStockRequestStatus.
+ " and state <" + (int)enumOutStockRequestStatus.
+ " and bulkPickState>-1 and bulkPickState< " +(int)enumOutStockPickStatus.; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
wr = (WaveRule)mObj.CmdParameters[0];
if (wr.lineId > 0)
{
_strSql += " and exists(select 1 from t_tmsLineDetail where custId =r.customerId and lineid =@lineId ) ";
sqlCmd.Parameters.AddWithValue("@lineId", wr.ID);
}
if(!string.IsNullOrEmpty(wr.sales))
{
_strSql += " and exists(select 1 from t_wmsOutRequest where pickOrderNo = r.pickorderNo and salesperson =@sales ) ";
sqlCmd.Parameters.AddWithValue("@sales", wr.sales);
}
2023-09-04 22:41:19 +08:00
_strSql += " order by priority desc, createtime ";
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[1]);
// sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[2]);
//sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PAGER_SIZE/2);
sqlCmd.Parameters.AddWithValue("@cnt", 200);
sqlCmd.CommandText = _strSql;
break;
case 3011:
_strSql = "select 1 from v_stockOutPort port where recType=1 "
+ " and dpsorder is null and elabId >0 and voltype=0 "
+ " and bulkPickState =" + (int)enumOutStockPickStatus.;
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 += " and pickOrderNo = r.pickOrderNo";
_strSql = "SELECT TOP (@cnt) * FROM [t_wmsOutPickRequest] r where exists("
2023-09-04 22:41:19 +08:00
+ _strSql + ") order by priority desc";
2023-05-23 16:13:17 +08:00
//_strSql += " order by pickOrderNo;";
sqlCmd.CommandText = _strSql;
//sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PAGER_SIZE/2);
sqlCmd.Parameters.AddWithValue("@cnt", 200);
break;
case 3012: //get pickrequest by ordertype,satus, with bulks only
_strSql = "SELECT TOP (@cnt) * FROM [t_wmsOutPickRequest] r "
// + " where orderType =@orderType and state =@state order by priority desc,custAddress, createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
+ " where bulkCnt>0 "
+ " and orderType =@orderType "
+ " and state> " + (int)enumOutStockRequestStatus.
+ " and state <" + (int)enumOutStockRequestStatus.
+ " and bulkPickState>-1 and bulkPickState< " + (int)enumOutStockPickStatus.; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
wr = (WaveRule)mObj.CmdParameters[0];
if (wr.lineId > 0)
{
_strSql += " and exists(select 1 from t_tmsLineDetail where custId =r.customerId and lineid =@lineId ) ";
sqlCmd.Parameters.AddWithValue("@lineId", wr.ID);
}
if (!string.IsNullOrEmpty(wr.sales))
{
_strSql += " and exists(select 1 from t_wmsOutRequest where pickOrderNo = r.pickorderNo and salesperson =@sales ) ";
sqlCmd.Parameters.AddWithValue("@sales", wr.sales);
}
string seedsql = _strSql + " and seedsLabelId=" + WmsConstants.SEEDS_LABLEID_MARK_VALUE;
2023-09-04 22:41:19 +08:00
seedsql += " order by priority desc, createtime ";
2023-05-23 16:13:17 +08:00
_strSql += " and seedsLabelId=0" ;
2023-09-04 22:41:19 +08:00
_strSql += " order by priority desc, createtime ";
2023-05-23 16:13:17 +08:00
_strSql += ";" + seedsql;
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[1]);
// sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PAGER_SIZE/2);
// sqlCmd.Parameters.AddWithValue("@cnt", 200);
sqlCmd.CommandText = _strSql;
break;
case 302: //get pickrequest for stock reduct
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT * FROM [t_wmsOutPickRequest] "
// + " where orderType =@orderType and state =@state order by priority desc,custAddress, createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
+ " where orderType =@orderType and state =@state order by priority desc , createtime "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 303: //partion pick,get all the free part pick detail records by ordertype,status
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT TOP (@cnt) * FROM [v_stockOutPartionBulkPickDetailRecords] r "
+ " where orderType =@orderType " //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
+ " and state >=@state1 and state <=@state2"
+ " exists(SELECT 1 FROM [t_node] n where exists (select 1 from t_node where flag =2005 and n.parentid =id) "
+ " and flag >0 and not exists( select 1 from t_wmsOutPickLable_tmp where partion =n.id )"
+" and n.id =r.part)";
wr = (WaveRule)mObj.CmdParameters[2];
if (wr.lineId > 0)
{
_strSql += " and exists(select 1 from t_tmsLineDetail where custId =r.customerId and lineid =@lineId ) ";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if (!string.IsNullOrEmpty(wr.sales))
{
_strSql += " and exists(select 1 from t_wmsOutRequest where pickOrderNo = r.pickorderNo and salesperson =@sales ) ";
sqlCmd.Parameters.AddWithValue("@sales", wr.sales);
}
// _strSql += " and not exists(select 1 from t_wmsOutPickDetail_tmp where pickOrderNo = r.pickOrderNo and and partion=@part)";
2023-09-04 22:41:19 +08:00
_strSql += " order by priority desc,pickOrderNo, createtime ";
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@part", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state1", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@state2", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PART_REC_SIZE);
sqlCmd.CommandText = _strSql;
break;
case 304: //get parts not in wave
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT * FROM [t_node] n where exists (select 1 from t_node where flag =2005 and n.parentid =id) "
+ " and flag >0 and not exists( select 1 from t_wmsOutPickLable_tmp where partion =n.flag ) "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
sqlCmd.CommandText = _strSql;
break;
case 305: //partion pick,get the specified free part pick detail records by ordertype,status
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT TOP (@cnt) * FROM [v_stockOutPartionBulkPickDetailRecords] r "
+ " where orderType =@orderType " //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
+ " and state >@state1 and state <@state2"
+ " and part =@part "
;
wr = (WaveRule)mObj.CmdParameters[2];
if (wr.lineId > 0)
{
_strSql += " and exists(select 1 from t_tmsLineDetail where custId =r.customerId and lineid =@lineId ) ";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if (!string.IsNullOrEmpty(wr.sales))
{
_strSql += " and exists(select 1 from t_wmsOutRequest where pickOrderNo = r.pickorderNo and salesperson =@sales ) ";
sqlCmd.Parameters.AddWithValue("@sales", wr.sales);
}
// _strSql += " and not exists(select 1 from t_wmsOutPickDetail_tmp where pickOrderNo = r.pickOrderNo and and partion=@part)";
2023-09-04 22:41:19 +08:00
_strSql += " order by priority desc ,pickOrderNo, createtime ";
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@part", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state1", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@state2", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PART_REC_SIZE);
sqlCmd.CommandText = _strSql;
break;
case 306: //get parts flag (完成器ID )list,
_strSql = "SELECT * FROM [t_node] n where exists (select 1 from t_node where flag =2005 and n.parentid =id) "
+ " and flag >0 ";
sqlCmd.CommandText = _strSql;
break;
case 307: //get all parts
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT * FROM [t_node] n where exists (select 1 from t_node where flag =2005 and n.parentid =id) "
+ " and flag >0 ";
sqlCmd.CommandText = _strSql;
break;
case 308: //pick detail records for generate light
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT * FROM [v_stockOutPartionBulkPickDetailRecords] r "
+ " where orderNo =@pickOrderno and bulkPickState=0 "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
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.Parameters.AddWithValue("@pickOrderno", mObj.CmdParameters[0]);
_strSql += " and not exists(select 1 from t_wmsOutPickLable_tmp where recordId =r.id ) ";
sqlCmd.CommandText = _strSql;
break;
case 309: //get light data for pickOrder
// _strSql = "SELECT * FROM [t_wmsoutdetail] a where exists(select 1 from t_wmsoutrequest where orderNo = a.orderNo and orderType =@orderType and status =@status)";
_strSql = "SELECT * FROM [t_wmsOutPickLable_tmp] r "
+ " where pickOrderNo =@pickOrderno and state=0 "; //按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
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.Parameters.AddWithValue("@pickOrderno", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 399:
_strSql = "; update t_wmsoutpickport set dpsorder=null where exists( select 1 from t_wmsOutPickRequest where desk=0 and waveOrder is not null and pickorderno = t_wmsoutpickport.pickOrderNo) ";
_strSql += " ; UPDATE t_wmsOutPickRequest SET bulkPickState =@bulkstate,state=@state, waveOrder=null from t_wmsOutPickRequest WHERE desk=0 and waveOrder is not null ";
sqlCmd.Parameters.AddWithValue("@bulkstate", (int)enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@state", (int)enumOutStockRequestStatus.);
sqlCmd.CommandText = _strSql;
break;
case 400: //update order status and bulkPickState by waveOrder
//update bulkPickState
string whereWave = " exists (select 1 from t_wmsOutPickLable_tmp where dpsOrder= b.WAVEORDER)";
_strSql = "UPDATE t_wmsOutPickRequest SET bulkPickState =@bulkSTATE, waveEnd = getDate() ,operater =@operater,lastmodified = getdate() from t_wmsOutPickRequest b WHERE " + whereWave;
_strSql += "; UPDATE t_wmsOutPickDetail SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and "+ whereWave+ ");";
/*
_strSql = "UPDATE t_wmsOutPickRequest SET bulkPickState =@bulkSTATE, waveEnd = getDate() ,operater =@operater,lastmodified = getdate() WHERE WAVEORDER =@WAVEORDER;";
_strSql += " UPDATE t_wmsOutPickDetail SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and b.WAVEORDER =@WAVEORDER);";
* */
//update state when bulkCount = count 全散货
_strSql += "; UPDATE t_wmsOutPickDetail SET state = @pickSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and " + whereWave + ") and bulkcount =count;"; //全零货
_strSql += "; UPDATE t_wmsOutPickDetail_tmp SET state = @pickSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail_tmp a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and " + whereWave + ") ;";
_strSql += "; UPDATE t_wmsOutPickDetail_tmp SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail_tmp a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and " + whereWave + ") and bulkcount =count;";
_strSql += "; UPDATE t_wmsOutPickRequest SET state =@requestSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickRequest b WHERE batchPickState in(-1,2) and " + whereWave;
_strSql += "; UPDATE t_wmsOutRequest SET STATE = b.state ,operater =@operater,lastmodified = getdate() from t_wmsOutRequest a ,t_wmsOutPickRequest b where a.pickOrderNo = b.pickorderNo and " +whereWave;
_strSql += "; UPDATE [t_wmsOutPickPort] set state =@portPickState,pickCount=[count] where dpsOrder=@WAVEORDER";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@WAVEORDER", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@bulkSTATE", (int)DeiNiu.Utils.enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@requestSTATE", (int)DeiNiu.Utils.enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickSTATE", (int)DeiNiu.Utils.enumOutStockDetailStatus.);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@portPickState", (int)enumPickState.);
break;
case 401: //update order status and bulkPickState by pickorder
//update bulkPickState
_strSql = "UPDATE t_wmsOutPickRequest SET bulkPickState =@bulkSTATE, waveEnd = getDate() ,operater =@operater,lastmodified = getdate() WHERE WAVEORDER =@WAVEORDER;";
_strSql += " UPDATE t_wmsOutPickDetail SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and b.pickOrderNo =@pickOrderNo);";
//update state when bulkCount = count 全散货
_strSql += " UPDATE t_wmsOutPickDetail SET state = @pickSTATE ,operater =@operater,lastmodified = getdate() from t_wmsOutPickDetail a "
+ " WHERE exists(select 1 from t_wmsOutPickRequest b where a.pickOrderNo = b.pickOrderNo and b.pickOrderNo =@pickOrderNo ) and bulkcount =count;";
//_strSql += "UPDATE t_wmsOutPickRequest SET state =@requestSTATE from t_wmsOutPickRequest a WHERE WAVEORDER =@WAVEORDER "
// + " and( not exists(select 1 from t_wmsOutPickDetail b where a.pickOrderNo = b.pickOrderNo and b.bulkcount !=b.count ));";
_strSql += "UPDATE t_wmsOutPickRequest SET state =@requestSTATE ,operater =@operater,lastmodified = getdate() WHERE pickOrderNo =@pickOrderNo and batchPickState in(-1,2);";
//_strSql += " UPDATE t_wmsOutRequest SET STATE =@requestSTATE from t_wmsOutRequest a "
// + " WHERE EXISTS(select 1 from [v_stockOutRequestPick] where pickOrderNo= a.pickOrderNo and WAVEORDER =@WAVEORDER and bulkcount =count);";
//_strSql += " UPDATE t_wmsOutRequest SET STATE =select state from t_wmsOutPickRequest where pickOrderNo =a.pickorderNo where WAVEORDER =@WAVEORDER ) from t_wmsOutRequest a ";
_strSql += " UPDATE t_wmsOutRequest SET STATE = b.state ,operater =@operater,lastmodified = getdate() from t_wmsOutRequest a ,t_wmsOutPickRequest b where a.pickOrderNo = b.pickorderNo and pickOrderNo =@pickOrderNo";
// _strSql += "UPDATE t_wmsOutRequest SET STATE =@requestSTATE where orderno in( select orderno from [v_stockOutRequestPick] where WAVEORDER =@WAVEORDER and bulkcount =count)";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@bulkSTATE", (int)DeiNiu.Utils.enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@requestSTATE", (int)DeiNiu.Utils.enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickSTATE", (int)DeiNiu.Utils.enumOutStockDetailStatus.);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[1]);
break;
case 410: //进入波次拣选更新订单和明细bulkStatus
_strSql = "UPDATE t_wmsOutPickRequest SET bulkPickState =@bulkSTATE, waveStart = getDate(),operater =@operater,lastmodified = getdate() WHERE pickOrderNo =@pickOrderNo;";
_strSql += " UPDATE t_wmsOutPickDetail SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() where pickOrderNo =@pickOrderNo and (bulkCount>0 or bulkPickState >=0)"; //只更新有零货的记录
_strSql += "; UPDATE t_wmsOutPickDetail_tmp SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() where pickOrderNo =@pickOrderNo and (bulkCount>0 or bulkPickState >=0)"; //只更新有零货的记录
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@bulkSTATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
break;
case 411: //进入Part 波次拣选更新订单和明细bulkStatus
_strSql = "UPDATE t_wmsOutPickRequest SET bulkPickState =@bulkSTATE, waveStart = getDate(),operater =@operater,lastmodified = getdate() WHERE pickOrderNo =@pickOrderNo;";
_strSql += " UPDATE t_wmsOutPickDetail pd SET bulkPickState =@bulkSTATE ,operater =@operater,lastmodified = getdate() "
+" where pickOrderNo =@pickOrderNo and (bulkCount>0 or bulkPickState >=0)"
+" and exists(select 1 from t_wmsOutPickLable_tmp where pickorderNo =pd.pickorderno and part =@part and [orderDetailId] =pd.id )"; //只更新有零货的记录
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@part", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@bulkSTATE", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[3]);
break;
case 420: //进入波次拣选更新订单和明细batchPickStatus
_strSql = "UPDATE t_wmsOutPickRequest SET batchPickState =@batchSTATE, waveStart = getDate(),operater =@operater ,lastmodified = getdate() WHERE pickOrderNo =@pickOrderNo;";
2023-09-04 22:41:19 +08:00
_strSql += " UPDATE t_wmsOutPickDetail SET batchPickState =@batchSTATE,operater =@operater,lastmodified = getdate() " +
" where pickOrderNo =@pickOrderNo and (batchPickState >=0 or count -bulkCount > 0)"; //只更新有整货的记录
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@batchSTATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
break;
case 430: // 更新订单和明细 orderStatus, detailStatus
_strSql = "UPDATE t_wmsOutPickRequest SET state =@orderState,operater =@operater ,lastmodified = getdate() WHERE pickOrderNo =@pickOrderNo";
_strSql += "; UPDATE t_wmsOutPickDetail SET state =@detailState,operater =@operater,lastmodified = getdate() where pickOrderNo =@pickOrderNo ";
_strSql += "; UPDATE t_wmsOutRequest SET state =@orderState,operater =@operater,lastmodified = getdate() where pickOrderNo =@pickOrderNo ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@orderState", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@detailState", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[3]);
break;
2023-09-04 22:41:19 +08:00
case 431: // 更新订单和明细 orderStatus, detailStatus
_strSql = "UPDATE t_wmsOutPickRequest SET state =@orderState,operater =@operater ,lastmodified = getdate() WHERE pickOrderNo =@pickOrderNo";
_strSql += "; UPDATE t_wmsOutRequest SET state =@orderState,operater =@operater,lastmodified = getdate() where pickOrderNo =@pickOrderNo ";
_strSql += "; UPDATE t_wmsOutDetail SET state =@detailState,operater =@operater,lastmodified = getdate() " +
" where exists(select 1 from t_wmsOutRequest where pickOrderNo =@pickOrderNo and orderNo= t_wmsOutDetail.orderNo ) ";
2023-05-23 16:13:17 +08:00
2023-09-04 22:41:19 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@orderState", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@detailState", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[3]);
break;
2023-05-23 16:13:17 +08:00
case 500: //判断是否有正在拣选数据
_strSql = "SELECT top 11 FROM t_wmsOutPickLable_tmp ";
sqlCmd.CommandText = _strSql;
break;
case 550: //判断是否有待拣选数据
_strSql = "SELECT top 11 FROM t_wmsOutPickRequest where state= @state ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@state",DeiNiu.Utils.enumOutStockRequestStatus.);
break;
case 600: //query with orderNo or pickOrderNo
_strSql = "SELECT top 500 * FROM v_stockOutRequestDetail where 1=1 ";
if (!(bool)mObj.CmdParameters[0])
{
_strSql += " and orderNo= @orderNo ";
sqlCmd.Parameters.AddWithValue("@orderNo", mObj.CmdParameters[1]);
}
else
{
_strSql = "SELECT top 500 * FROM v_stockOutRequestPick where 1=1 "
+ " and pickOrderNo= @pickOrderNo ;"
+ _strSql
+ " and pickOrderNo= @pickOrderNo ;"
+ " select top 500 * from v_reportStockRecord where orderno=@pickOrderNo";
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[1]);
}
sqlCmd.CommandText = _strSql;
break;
case 700: //get pick details by waveno
_strSql = "SELECT * from [v_stockOutWavePickDetail] where waveOrder = @waveOrder ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
break;
case 710: //get bulk pick details in current wave
_strSql = "SELECT * FROM v_stockOutBulkInCurrentWave ";
sqlCmd.CommandText = _strSql;
break;
case 720: //get bulk pick details in partion pick wave
_strSql = "SELECT * FROM v_stockOutPartionBulkInCurrentWave ";
sqlCmd.CommandText = _strSql;
break;
case 800: //取零货待复核订单
// _strSql = "SELECT * FROM [t_wmsOutPickDetail] a where exists(select 1 from t_wmsOutPickRequest where pickOrderNo = a.pickOrderNo and desk =@desk and (state = 6 or state =7 )) order by orderNo; ";
_strSql = "select 0 xuhao, *"
+",(select bulkpickstate from t_wmsOutPickRequest where pickorderno =a.pickorderno) as orderBulkPickstate "
+" from v_stockOutPickDetailValidation a where desk=@desk ";
//_strSql += " and orderState >=" + (int)DeiNiu.Utils.enumOutStockPickStatus.分拣完成;
// _strSql += " and bulkPickstate >=" + (int)DeiNiu.Utils.enumOutStockPickStatus.分拣完成;
_strSql += " and orderState <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.;
_strSql += " and createtime > getdate()-@days" ;
//播种数据
/*
* _strSql += "; SELECT seedsPickNo, goodsId,goodsName, batch, SUM(bulkCount) AS bulkcount, orderState, desk"
+ " FROM dbo.[v_stockOutPickDetailValidation] "
+ " WHERE (seedsPickNo IS NOT NULL) and desk=@desk and orderState <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.
+ " GROUP BY seedsPickNo, goodsId,goodsName, batch, orderState, desk ";
*/
_strSql += " ; select * from [v_stockOutPickDetailSeeds] where desk=@desk ";
// _strSql += " and orderState <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.打包完成; //波次拣货明细
_strSql += " and seedsStatus <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.; //波次拣货明细
_strSql += " and createtime > getdate()-@days";
/*
#if DEBUG
_strSql += " or desk >0) and orderState <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.; ; //TODO: remove desk >0,test only
#else
_strSql += " ) and orderState <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.;
#endif
*/
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@desk", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@days", WmsConstants.VALIDATION_KEEP_DAYS);
break;
case 810: //get original out request details by pickorder
_strSql = "SELECT * from [v_stockOutDetail_wms] v where exists (select 1 from t_wmsOutRequest where orderNo = v.orderNo and pickOrderNo =@pickOrderNo ) ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 820: //播种数据
_strSql = "select 0 xuhao, *"
+ ",(select bulkpickstate from t_wmsOutPickRequest where pickorderno =a.pickorderno) as orderBulkPickstate "
+ " from v_stockOutPickDetailValidation a where 1=1 ";
if (!string.IsNullOrEmpty(mObj.CmdParameters[0].ToString()))
{
_strSql += " and desk = @desk ";
sqlCmd.Parameters.AddWithValue("@desk", mObj.CmdParameters[0]);
}
if (!string.IsNullOrEmpty(mObj.CmdParameters[2].ToString()))
{
_strSql += " and seedsPickNo=@seedsPickNo ";
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[2]);
}
else
{
_strSql += " and createtime > getdate()-@days";
}
_strSql += " and orderState <= " + (int)DeiNiu.Utils.enumOutStockPickStatus.;
_strSql += "; SELECT * from [v_stockOutPickDetailSeeds] where 1=1";
if (!string.IsNullOrEmpty(mObj.CmdParameters[0].ToString()))
{
_strSql += " and desk = @desk ";
}
if (!string.IsNullOrEmpty(mObj.CmdParameters[1].ToString()))
{
_strSql += " and seedsStatus <= @seedsStatus ";
sqlCmd.Parameters.AddWithValue("@seedsStatus", mObj.CmdParameters[1]);
}
if (!string.IsNullOrEmpty(mObj.CmdParameters[2].ToString())){
_strSql += " and seedsPickNo=@seedsPickNo ";
}
else
{
_strSql += " and createtime > getdate()-@days";
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@days", WmsConstants.VALIDATION_KEEP_DAYS);
break;
case 830: //get goods list by seedsNo
_strSql = " SELECT * from [v_stockOutPickDetailSeeds] where 1=1";
_strSql += " and seedsPickNo=@seedsPickNo order by confirmedCount ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
break;
case 900: //保存复核用数据
//_strSql = " insert into t_wmsOutPickDetail_tmp select * from t_wmsOutPickDetail a where "
// +" exists(select 1 from t_wmsOutPickRequest where pickOrderNo = a.pickOrderNo and waveOrder = @waveNo)"
_strSql = " insert into t_wmsOutPickDetail_tmp "
+ " select a.desk,a.bulkPickState as orderState,a.waveOrder,a.seedsPickNo,a.seedsPort,a.seedsLabelId,b.* "
+ " from t_wmsOutPickRequest a inner join t_wmsOutPickDetail b on a.pickOrderNo = b.pickOrderNo "
+ " where waveOrder = @waveNo "
+ " and b.bulkCount > 0";
// + " and not exists (select 1 from t_wmsOutPickDetail_tmp where id = b.id); ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
break;
case 9001: //保存复核用数据
//_strSql = " insert into t_wmsOutPickDetail_tmp select * from t_wmsOutPickDetail a where "
// +" exists(select 1 from t_wmsOutPickRequest where pickOrderNo = a.pickOrderNo and waveOrder = @waveNo)"
_strSql = " insert into t_wmsOutPickDetail_tmp "
+ " select a.desk,a.bulkPickState as orderState,a.waveOrder,a.seedsPickNo,a.seedsPort,a.seedsLabelId,b.* "
+ " from t_wmsOutPickRequest a inner join t_wmsOutPickDetail b on a.pickOrderNo = b.pickOrderNo "
+ " where waveOrder = @waveNo and a.pickOrderNo = @pickNo "
+ " and b.bulkCount > 0";
// + " and not exists (select 1 from t_wmsOutPickDetail_tmp where id = b.id); ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@pickNo", mObj.CmdParameters[1]);
break;
case 901: //保存复核用数据
//_strSql = " insert into t_wmsOutPickDetail_tmp select * from t_wmsOutPickDetail a where "
// +" exists(select 1 from t_wmsOutPickRequest where pickOrderNo = a.pickOrderNo and waveOrder = @waveNo)"
_strSql = " insert into t_wmsOutPickDetail_tmp "
+ " select a.desk,a.bulkPickState as orderState,a.waveOrder,a.seedsPickNo,a.seedsPort,a.seedsLabelId,b.* "
+ " from t_wmsOutPickRequest a inner join t_wmsOutPickDetail b on a.pickOrderNo = b.pickOrderNo "
+ " where a.pickOrderNo = @pickOrderNo "
+ " and b.bulkCount > 0";
// " and not exists (select 1 from t_wmsOutPickDetail_tmp where id = b.id); ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 1000: //取待复核订单明细
// _strSql = "SELECT * FROM [t_wmsOutPickDetail] a where exists(select 1 from t_wmsOutPickRequest where pickOrderNo = a.pickOrderNo and desk =@desk and (state = 6 or state =7 )) order by orderNo; ";
_strSql = "select * from t_wmsOutPickDetail_tmp where pickOrderNo=@pickOrder;";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrder", mObj.CmdParameters[0]);
break;
case 1100: //get pick details by pickOrderNo
_strSql = "SELECT * from [v_stockOutWavePickDetail] where pickOrderNo = @pickOrderNo and pdaOuting >0 ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 11001: //get pick details by seedsPickNo,skuId
_strSql = "SELECT * from [v_stockOutWavePickDetail] where "
+" seedsPickNo = @seedsPickNo and pdaOuting >0 "
+" and skuId=@skuid";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@skuid", mObj.CmdParameters[1]);
break;
case 1101: //get seeds data for light
_strSql = " select seedsLabelId as ele_lab_id,0 as ele_address, seedsPort as port,sum(bulkCount) as pick_count,"+
" sum(bulkcount - confirmedCount)as send_count,desk as color,desk as ele_order ";
_strSql += " from t_wmsOutPickDetail_tmp";
_strSql += " where seedsPickNo = @seedsPickNo";
_strSql += " and goodsId =@goodsId and batch =@batch";
_strSql += " and bulkcount - confirmedCount > 0";
_strSql += " group by seedsLabelId,seedsPort,desk";
//取分播拣货单列表实时数据v_stockOutPickDetailSeeds
_strSql += "; select * from v_stockOutPickDetailValidation ";
// _strSql += "; select * from v_stockOutPickDetailSeeds ";
_strSql += " where seedsPickNo = @seedsPickNo";
_strSql += " and goodsId =@goodsId and batch =@batch";
// _strSql += " and bulkcount - confirmedCount > 0";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
break;
case 1102:
// 某商品剩余待分播数量
_strSql = "select count(*) as cnt from v_stockOutPickDetailValidation ";
_strSql += " where seedsPickNo = @seedsPickNo";
_strSql += " and goodsId =@goodsId and batch =@batch";
_strSql += " and bulkPickState < @orderState";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@orderState",(int)DeiNiu.Utils.enumOutStockPickStatus. );
break;
case 1103:
// 待分播数量
_strSql = "select count(*) as cnt from v_stockOutPickDetailValidation ";
_strSql += " where seedsPickNo = @seedsPickNo";
//_strSql += " and orderState < @orderState";
_strSql += " and seedsLabelId =@labId ";
_strSql += " and bulkPickState < @state";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@labId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state", (int)DeiNiu.Utils.enumOutStockPickStatus.);
break;
case 1104:
//播种详细
_strSql = "select * from v_stockOutPickDetailValidation ";
_strSql += " where seedsPickNo = @seedsPickNo";
_strSql += " and seedsLabelId =@labId ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@labId", mObj.CmdParameters[1]);
break;
case 1105:
//播种详细
_strSql = "select count(*) as cnt from v_stockOutPickDetailValidation ";
_strSql += " where seedsPickNo = @seedsPickNo";
_strSql += " and bulkpickstate <@state ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", (int)DeiNiu.Utils.enumOutStockPickStatus.);
break;
case 1200: //删除复核临时数据 pickOrderNo
// _strSql = "DELETE FROM t_wmsOutPickDetail_tmp where pickOrderNo=@pickOrder; ";
_strSql = "DELETE FROM t_wmsOutPickDetail_tmp where orderState > @bulkPickOrderState ";
_strSql += " and checkedTime < getdate()-@days";
// _strSql += " and validDate ";;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@bulkPickOrderState", (int)DeiNiu.Utils.enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@days", WmsConstants.VALIDATION_KEEP_DAYS);
break;
case 1300: //get validation exception list
_strSql = "SELECT * FROM v_stockOutValidationException where bulkPickState =@state order by waveOrder,desk desc";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
break;
case 1400: // get validation exception list with solution
_strSql = "SELECT * FROM v_stockOutValidationException where bulkPickState =" + (int)DeiNiu.Utils.enumOutStockPickStatus.;
/*
#if DEBUG
_strSql +=" and ( desk=@desk or desk >0) order by waveOrder desc"; //TODO: remove desk >0,test only
#else
_strSql += " and desk=@desk order by waveOrder desc";
#endif
*/
_strSql += " and desk=@desk order by waveOrder desc";
// _strSql += " order by waveOrder desc";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@desk", mObj.CmdParameters[0]);
break;
case 1500: //get batch out orders by status
_strSql = "SELECT * FROM [t_wmsOutPickRequest] where state =@status and batchpickstate >=@batchpickstate1 and batchpickstate <=@batchpickstate2 order by waveOrder desc";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@status", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@batchpickstate1", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@batchpickstate2", mObj.CmdParameters[2]);
break;
case 1510: //get today's rep order details by order type
_strSql = "SELECT * FROM [t_wmsoutpickdetail] a where 1=1 "
+ " and exists(select 1 from [t_wmsOutPickRequest] where pickorderNo = a.pickorderNo and orderType =@orderType and orderDate =getDate())"
+ " and batchpickstate <@pickStatus" ;//+ (int)Utils.enumOutStockPickStatus.复核完成; //复核完成=完成零货上架
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@orderType",(int) Utils.enumOrderType.);
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@pickStatus", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 1600: //get batch out order pick details
_strSql = "SELECT * FROM [v_stockOutWavePickDetail] where pickOrderNo= @pickOrderNo and state =@status and volType > @volType and batchpickstate >=@batchpickstate";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@status", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@batchpickstate", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@volType",(int) Utils.enumWhLocVol. );
break;
case 1610: //get batch out order pick details by pickOrderNo
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] where pickOrderNo= @pickOrderNo order by part";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 1620: //get batch out order pick details by pickOrderNo
_strSql = "SELECT * FROM [v_tmsPickRequest] where pickOrderNo= @pickOrderNo ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 1700: //get batch out order details
_strSql = "SELECT * FROM [v_stockOutPickDetail] where pickOrderNo= @pickOrderNo and state =@status and batchpickstate >=@batchpickstate";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@status", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@batchpickstate", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[2]);
break;
/*
case 1800: //update batch pick detail status
_strSql = "update t_wmsOutPickDetail set batchpickstate = @newBatchpickstate where pickOrderNo= @pickOrderNo and bulkcount<count ";// and batchpickstate =@oldBatchpickstate";
_strSql += ";update t_wmsOutPickRequest set batchpickstate = @newBatchpickstate where pickOrderNo= @pickOrderNo ";// and batchpickstate =@oldBatchpickstate";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@newBatchpickstate", mObj.CmdParameters[0]);
// sqlCmd.Parameters.AddWithValue("@oldBatchpickstate", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[2]);
break;
*/
case 1900: //get pick detail by storckRecord ID
_strSql = "SELECT * FROM [v_stockOutWavePickDetail] where id =@recid";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@recid", mObj.CmdParameters[0]);
break;
case 2000: //get batch out order pick details by pickStatus (exclude reporders)
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] where orderType !=@repOrder and state= @pickstate ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickstate", mObj.CmdParameters[0]);
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@repOrder", (int)Utils.enumOrderType.);
2023-05-23 16:13:17 +08:00
break;
case 2100: //get batch out order list ready for validation 4wince only
_strSql = "SELECT * from v_stockOutBatchPickOrder4Wince";
sqlCmd.CommandText = _strSql;
break;
case 2200: //get batch out order list ready for validation 4wince only
_strSql = "SELECT [商品],[批号],[货位],[数量],[商品类别],[厂家] from v_stockOutBatchPickDetail4Wince where pickOrderNo = @pickOrderNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 2300: //get order details by order state and order type, 按货位排序
_strSql = " SELECT distinct 分区, [货位] ,零库位,[商品],[数量],[件] , [批号],[商品类别],[厂家], id,takeBy,goodsId,skuId,flowno " +
" from v_stockRepInTasks4Wince where "
+" state =@state and orderDate >= @orderDate ";
if(!string.IsNullOrEmpty( mObj.CmdParameters[3].ToString())){ //flowno is not null
_strSql += " and isnull(flowNo,'') =@flowNo";
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[3]);
}
if (Convert.ToInt32(mObj.CmdParameters[4].ToString())>0) //by emp partion
{
_strSql += " and partionEmpId =@operId";
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[4]);
}
string orderDate = mObj.CmdParameters[2].ToString();
int days = -1;
#if DEBUG
days =-100;
#else
days =-30;
#endif
if (string.IsNullOrEmpty(orderDate))
{
orderDate = DateTime.Now.Date.AddDays(days).ToShortDateString();//this.getDateTime();
}
_strSql += " order by 货位";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderDate", orderDate);
sqlCmd.Parameters.AddWithValue("@ordertype", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
break;
case 2301: //电脑查看拣货任务列表
_strSql = " SELECT * from v_stockOutBatchPickDetail where ordertype = @orderType "
+ " and state =@state and orderDate >= @orderDate ";
// + " and takeBy =@takeBy order by waveOrder";
orderDate = mObj.CmdParameters[2].ToString();
days = -1;
#if DEBUG
days = -100;
#else
days =-30;
#endif
if (string.IsNullOrEmpty(orderDate))
{
orderDate = DateTime.Now.Date.AddDays(days).ToShortDateString();//this.getDateTime();
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderDate", orderDate);
sqlCmd.Parameters.AddWithValue("@ordertype", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[3]);
break;
case 2302: //pda查看分配给某个员工的拣货任务
_strSql = " SELECT [货区], [货位] ,[商品],[数量] ,[件] ,[状态] ,[分配人], [线路]"
+ " from v_stockOutBatchPickDetail4Wince where ordertype = @orderType "
+ " and state =@state and orderDate >= @orderDate "
+ " and takeBy =@takeBy order by waveOrder";
orderDate = mObj.CmdParameters[2].ToString();
days = -1;
#if DEBUG
days = -100;
#else
days =-30;
#endif
if (string.IsNullOrEmpty(orderDate))
{
orderDate = DateTime.Now.Date.AddDays(days).ToShortDateString();//this.getDateTime();
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderDate", orderDate);
sqlCmd.Parameters.AddWithValue("@ordertype", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[3]);
break;
case 2400: //update priority
_strSql = " update t_wmsOutPickRequest set priority =@priority ,operater =@operId,lastmodified = getdate() where pickOrderNo in " + mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@priority", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
break;
case 2500: //batch only request
_strSql = "select top 1 * from t_wmsOutPickRequest where batchPickState=@batchState ";//" and bulkPickstate =@bulkState";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@batchState", mObj.CmdParameters[0]);
// sqlCmd.Parameters.AddWithValue("@bulkState", (int)enumOutStockPickStatus.无需分拣);
2023-09-04 22:41:19 +08:00
break;
case 2600: // 取播种拣选明细
_strSql = "SELECT goodsId, batch, skuId, canSeedOut, orderState, pickGroup, SUM(count) AS count " +
" FROM dbo.v_stockOutPickDetailPickgroup WHERE 1=1" +
2023-11-21 19:18:23 +08:00
// " and seedsport=@mark " +
" and pickGroup =@groupMark";
if (!WmsConstants.SEEDS_PICK_ALL)
{
_strSql += " and canseedout =1 ";
}
_strSql += " and orderState = @orderState " +
2023-09-04 22:41:19 +08:00
" GROUP BY goodsId, batch, skuId, canSeedOut, orderState, pickGroup ";//" and bulkPickstate =@bulkState";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@groupMark", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@orderState", mObj.CmdParameters[1]);
break;
case 2700: // 更新seedsPickOrder
_strSql = " update t_wmsOutRequest set seedsPickOrderNo=@seedsPickOrder where pickOrderNo=@pickOrderNo;" +
" update t_wmsOutPickRequest set seedsPickNo =@seedsPickOrder where pickOrderNo=@pickOrderNo;";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@seedsPickOrder", mObj.CmdParameters[1]);
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
case 2800: // 分拣完成、所有任务已复核(抽检复核,装车时自动复核)
_strSql = "select top 10 * from t_wmsoutpickrequest p where state =@orderState and" +
" not exists(select 1 from t_wmsoutpickport where pickorderno =p.pickorderno and state <@pickState) ";
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderState", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)enumPickState.);
2023-09-04 22:41:19 +08:00
2023-05-23 16:13:17 +08:00
break;
2023-11-21 19:18:23 +08:00
case 2900: // get by transNo ( vihicle type plateId )
_strSql = "SELECT * FROM [t_wmsoutpickrequest] where transNo =@transNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@transNo", mObj.CmdParameters[0]);
break;
2023-05-23 16:13:17 +08:00
}
}
}
}