// _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" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
" and state =@state order by pickgroup, priority desc, createtime ";//按创建时间排序,fifo,保证缺零货的订单补货后会优先进下个波次。 //bulkcnt desc" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
case301://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 ) ";
case3012://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 ) ";
// _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" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
case303://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 ) ";
// _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;
case305://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 ) ";
_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;
case307://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;
case308://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" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
_strSql+=" and not exists(select 1 from t_wmsOutPickLable_tmp where recordId =r.id ) ";
sqlCmd.CommandText=_strSql;
break;
case309://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" 按散货数量排序 ,先出散货多的,这样为了均衡复合台工作量,由于复合台和拣选单子是随机组合,所有没有必要了 ;
_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 ";
case400://update order status and bulkPickState by waveOrder
//update bulkPickState
stringwhereWave=" 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";
case401://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)";
_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)";//只更新有零货的记录
_strSql="SELECT * FROM v_stockOutBulkInCurrentWave ";
sqlCmd.CommandText=_strSql;
break;
case720://get bulk pick details in partion pick wave
_strSql="SELECT * FROM v_stockOutPartionBulkInCurrentWave ";
sqlCmd.CommandText=_strSql;
break;
case800://取零货待复核订单
// _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 ";
case810://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 ) ";
// _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;";
_strSql="SELECT * FROM [t_wmsOutPickRequest] where state =@status and batchpickstate >=@batchpickstate1 and batchpickstate <=@batchpickstate2 order by waveOrder desc";
_strSql="SELECT * FROM [v_stockOutWavePickDetail] where pickOrderNo= @pickOrderNo and state =@status and volType > @volType and batchpickstate >=@batchpickstate";
_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";