ldj/Model/wms/data/WmsOutPickRequest_Imp.cs

1167 lines
71 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <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();
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY PRIORITY desc, ID) as sortNo FROM v_stockOutRequestWithDetails r WHERE DR = 1 " + whsql;
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY PRIORITY desc,ID desc";
_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;
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;
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]);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.PAGER_SIZE );
break;
case 300: //get pickrequest by 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 [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 " +
" and createtime > getdate()-@daysOut " +
" and state =@state order by pickgroup, priority desc, createtime desc"; //后生成的先入,需二次处理的问题订单排后面
//按创建时间排序fifo保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
//sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.OUT_PROCESS_ORDERS_CNT);
sqlCmd.Parameters.AddWithValue("@daysOut", WmsConstants.OUT_PROCESS_ORDERS_CNT );
sqlCmd.CommandText = _strSql;
break;
case 30001: //get pickrequest by status
_strSql = "SELECT top (@cnt) * FROM [t_wmsOutPickRequest] "
+ " where 1=1 " +
" and createtime > getdate()-@daysOut " +
" and state =@state order by pickgroup, priority desc, checkedtime"; //未处理过的,或新处理过的优先,确保所有订单都有机会处理库存
//sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.OUT_PROCESS_ORDERS_CNT );
sqlCmd.Parameters.AddWithValue("@daysOut", WmsConstants.OUT_PROCESS_ORDERS_CNT);
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;
case 3002: //get pickrequest by outStoreType, days
_strSql = "SELECT * FROM [t_wmsOutPickRequest] "
+ " where outStoreType = @outStoreType " +
" and createtime > getdate() -@days " +
" order by createtime ";
sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@days", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
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);
}
_strSql += " order by priority desc, createtime ";
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);
}
sqlCmd.Parameters.AddWithValue("@orderType", (int)enumOrderType.);
_strSql += " and pickOrderNo = r.pickOrderNo";
_strSql = "SELECT TOP (@cnt) * FROM [t_wmsOutPickRequest] r where exists("
+ _strSql + ") order by priority desc";
//_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;
seedsql += " order by priority desc, createtime ";
_strSql += " and seedsLabelId=0" ;
_strSql += " order by priority desc, createtime ";
_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)";
_strSql += " order by priority desc,pickOrderNo, createtime ";
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)";
_strSql += " order by priority desc ,pickOrderNo, createtime ";
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" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
if (Convert.ToInt32(mObj.CmdParameters[1].ToString()) > 0)
{
_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" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
if (Convert.ToInt32(mObj.CmdParameters[1].ToString()) > 0)
{
_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;";
_strSql += " UPDATE t_wmsOutPickDetail SET batchPickState =@batchSTATE,operater =@operater,lastmodified = getdate() " +
" where pickOrderNo =@pickOrderNo and (batchPickState >=0 or count -bulkCount > 0)"; //只更新有整货的记录
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;
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 ) ";
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;
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.复核完成; //复核完成=完成零货上架
sqlCmd.Parameters.AddWithValue("@orderType",(int) Utils.enumOrderType.);
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]);
sqlCmd.Parameters.AddWithValue("@repOrder", (int)Utils.enumOrderType.);
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.无需分拣);
break;
case 2600: // 取播种拣选明细
_strSql = "SELECT goodsId, batch, skuId, canSeedOut, orderState, pickGroup, SUM(count) AS count " +
" FROM dbo.v_stockOutPickDetailPickgroup WHERE 1=1" +
// " and seedsport=@mark " +
" and pickGroup =@groupMark";
if (!WmsConstants.SEEDS_PICK_ALL)
{
_strSql += " and canseedout =1 ";
}
_strSql += " and orderState = @orderState " +
" 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]);
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
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) ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderState", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)enumPickState.);
break;
case 2900: // get by transNo ( vihicle type plateId )
_strSql = "SELECT * FROM [t_wmsoutpickrequest] r where transNo =@transNo" +
" or exists( select 1 FROM [t_wmsoutpickrequest] where seedspickno =r.pickOrderNo and transNo =@transNo )";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@transNo", mObj.CmdParameters[0]);
break;
case 3000: // 关闭分拣单下的所有相关任务
_strSql = "update t_wmsflow set state=@state where orderno =@orderNo and state<@state ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", (int)enumFlowTaskStatus.);
break;
}
}
}
}