/// ///INTERFACE CLASS FOR TABLE t_wmsOutPickLable ///By wm with codesmith. ///on 05/22/2017 /// using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using DeiNiu.Utils; namespace DeiNiu.wms.Data.Model { [Serializable] public class WmsOutPickLable : WmsOutPickLable_base { public WmsOutPickLable() { } public WmsOutPickLable(int id): base(id) { } public WmsOutPickLable(DataRow dr): base(dr) { } protected override void getImp() { model_imp = new WmsOutPickLable_Imp(); } //begin cust db operation, query, excute sql etc. public DataSet QueryByName(string name) { cmdParameters[0] = name; return CustQuery(100); } /// /// lookfor from history pick info /// /// /// /// /// public DataSet getPickListByOrder(string pickOrder, bool isShowAll = true, enumPickState state = enumPickState.未拣) { cmdParameters[0] = pickOrder; cmdParameters[1] = isShowAll; cmdParameters[2] = (int) state; return CustQuery(200); } /// /// lookfor from history pick info /// /// /// /// /// public DataSet getPickListByWave(string waveOrder, bool isShowAll = true, enumPickState state = enumPickState.未拣) { cmdParameters[0] = waveOrder; cmdParameters[1] = isShowAll; cmdParameters[2] = (int)state; return CustQuery(300); } public DataSet getPickList(enumPickState state = enumPickState.未拣) { cmdParameters[0] = (int)state; return CustQuery(400); } /// /// 第三方亮灯数据 /// /// public DataSet getNewPickList() { return CustQuery(401); } /// /// 第三方数据 需维护货位和标签对应关系的数据 /// /// public DataTable getUnMaintainLocations() { return CustQuery(402).Tables[0]; } /// /// current pick details /// from tmp table /// /// /// public DataSet getCurrentPickList(enumPickState state = enumPickState.未拣) { cmdParameters[0] = (int)state; return CustQuery(500); } /// /// 分区拣选明细 /// /// /// /// public DataSet getPartPickList(int part,enumPickState state ) { cmdParameters[0] = part; cmdParameters[1] = (int)state; return CustQuery(501); } public DataTable getDpsPickList(string dpsOrder, enumPickState state) { cmdParameters[0] = dpsOrder; cmdParameters[1] = (int)state; return CustQuery(503).Tables[0]; } /// 分区拣选明细 /// /// /// /// public DataSet getPartPickList(int part ) { cmdParameters[0] = part; return CustQuery(502); } /// /// 分区现有订单中未完成分拣的明细(订单明细可能在其他区或未开始拣选) /// /// /// public DataTable getPartUnPickList(int part) { cmdParameters[0] = part; return CustQuery(712).Tables[0]; } /// /// update the picking data /// send back by ele label /// /// /// /// /// public int updatePickingStatus(int color,int eleId,int elabAddress,decimal pickCount,bool isProcessStock =false) { cmdParameters[0] = color; cmdParameters[1] = eleId; cmdParameters[2] = pickCount; cmdParameters[3] = elabAddress; cmdParameters[4] = isProcessStock; return CustOper(600); } /// /// /// 一个pickorderdetail 对象可能对应多个 WmsOutPickLable ,所以该方法不适用除强制分拣完成之外的地方了 /// /// 更新复核数据的捡货状态 /// 在更新临时捡货状态后调用 /// /// /// /// /// public int updateValidPickingStatus(int color, int eleId, int elabAddress ) { cmdParameters[0] = color; cmdParameters[1] = eleId; cmdParameters[2] = elabAddress; return CustOper(610); } /// /// 仅适用除强制分拣完成,复核数据状态更新 /// /// /// public int updateValidPickingStatus(string dpsOrder) { cmdParameters[0] = dpsOrder; return CustOper(611); } /// /// move the current picking data to picking [t_wmsOutPickLable] /// delete the picking finished data /// need transaction /// /// /// public void finishCurrentPickingData(bool isForce) { // string waveOrder = ""; // DataTable dt = getCurrentPickList(enumLabelPickState.picked).Tables[0]; //foreach (DataRow dr in dt.Rows) //{ // waveOrder = dr["waveOrder"].ToString(); //取完成拣选的waveOrder // break; //} if (isForce) { if (WmsConstants.OUT_STOCK_DEDUCT) //处理库存 { DataTable dt = getCurrentPickList().Tables[0]; WmsOutPickLable wp; int i=0; foreach (DataRow dr in dt.Rows) { i++; wp = new WmsOutPickLable(dr); WmsStockRecord wr = new WmsStockRecord(wp.recordId); wr.count = wr.countOuting; wr.countOuting = 0; wr.description = "强制波次完成"; wr.operater = this.operater; if(wr.ID>0 && !string.IsNullOrEmpty(wr.orderNo)){ wr.Add(); } WmsPlate box = new WmsPlate(wp.plate); box.setFree(); updatePickingStatus(wp.color, wp.elabId, wp.elabAddress, wp.count, true); // updateValidPickingStatus(wp.color, wp.elabId, wp.elabAddress); if (i == 1) { updateValidPickingStatus(wp.dpsOrder); } } i++; } cmdParameters[0] = (int)DeiNiu.Utils.enumPickState.已拣; CustOper(710); return; } cmdParameters[0] = (int)DeiNiu.Utils.enumPickState.已拣; CustOper(700); // return waveOrder; } public void finishPartPickingData(int part,bool isForce) { cmdParameters[0] = (int)DeiNiu.Utils.enumPickState.已拣; cmdParameters[1] = part; if (isForce) { if (WmsConstants.OUT_STOCK_DEDUCT) //处理库存 { DataTable dt = getPartPickList(part).Tables[0]; WmsOutPickLable wp; int i = 0; foreach (DataRow dr in dt.Rows) { i++; wp = new WmsOutPickLable(dr); WmsStockRecord wr = new WmsStockRecord(wp.recordId); wr.count = wr.countOuting; wr.countOuting = 0; wr.description = "强制波次完成"; wr.operater = this.operater; wr.Add(); updatePickingStatus(wp.color, wp.elabId, wp.elabAddress, wp.count, true); // updateValidPickingStatus(wp.color, wp.elabId, wp.elabAddress); if (i == 1) { updateValidPickingStatus(wp.dpsOrder); } } i++; } CustOper(711); return; } CustOper(701); } public void finishCurrentPickingData(string waveOrder,bool isForce) { cmdParameters[0] = waveOrder; cmdParameters[1] = ""; if (isForce) { cmdParameters[1] = "强制结束"; } CustOper(720); } public DataSet getData4Pick(string waveOrder) { cmdParameters[0] = waveOrder; return CustQuery(800); } /// /// 取未拣选完毕的数据 /// /// public DataSet getPickedData(enumPickState state) { cmdParameters[0] =(int) state; return CustQuery(900); } /// /// 取分区亮灯数据 /// /// public DataSet getPartPickedData(enumPickState state) { cmdParameters[0] = (int)state; return CustQuery(901); } /// /// 第三方当前波次数据 /// /// public DataSet getCurrentWavePick() { return CustQuery(403); } public DataTable getPartsPickList(int[] parts, enumPickState enumPickState) { string p = ""; if (parts.Length > 0) { p = "("; foreach (int s in parts) { p += s + ","; } p = p.Substring(0, p.Length - 1); p += ")"; } cmdParameters[0] = (int)state; cmdParameters[1] = p; return CustQuery(902).Tables[0]; } public DataTable getPartionRequests(int partion) { cmdParameters[0] = partion; return CustQuery(1000).Tables[0]; } public DataTable getPlateTaskPickList(string plateId, int partion) { cmdParameters[0] = plateId; cmdParameters[1] = partion; return CustQuery(1100).Tables[0]; } public DataTable getPlatePickTaskList4wince(string plateId, int partion) { cmdParameters[0] = plateId; cmdParameters[1] = partion; return CustQuery(1200).Tables[0]; } /// /// 返回某区的 top 数量的复核台对应的拣货任务 /// /// /// /// public DataTable getSeedDesksPickList(int part, enumPickState status) { cmdParameters[0] = part; cmdParameters[1] = (int)status; cmdParameters[2] = WmsConstants.SEEDS_PART_LIGHT_DESK_CNT; ; return CustQuery(905).Tables[0]; } } }