/// ///INTERFACE IMPLIMENT FOR TABLE t_wmsOutPickRequest ///By wm with codesmith. ///on 05/22/2017 /// 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"; log.Debug(_strSql); //_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= @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; } } } }