From 1aa2f1ad68c3fe20c3dcc864b2143874acd24234 Mon Sep 17 00:00:00 2001 From: bobwang <8205347@qq.com> Date: Fri, 15 Nov 2024 23:52:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A2=B3=E7=90=86=E5=A4=8D=E6=A0=B8=E6=92=AD?= =?UTF-8?q?=E7=A7=8D=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/wms/data/TmsStock_Imp.cs | 8 +- Model/wms/data/WmsOutPickPort_Imp.cs | 2 +- Model/wms/data/WmsOutPickRequest_Imp.cs | 9 +- Model/wms/data/Wmslocation_Imp.cs | 3 +- Model/wms/tables/Erp_sale.cs | 2 +- Model/wms/tables/TmsStock.cs | 7 +- Model/wms/tables/WmsFlow.cs | 2 +- Model/wms/tables/WmsOutPickRequest.cs | 2 +- Model/wms/tables/WmsPlate.cs | 2 +- Model/wms/tables/Wmslocation.cs | 38 +- Utils/Enums.cs | 12 +- Utils/WmsConstants.cs | 7 +- WcfService1/Android.svc.cs | 2 +- WcfService1/BLL/lTmsTranRequest.cs | 30 + WcfService1/BLL/lWmsOutPickRequest.cs | 289 +++-- WcfService1/BLL/lWmsPlate.cs | 66 +- WcfService1/BLL/lbase.cs | 10 +- WcfService1/IWmsOutPickRequest.cs | 2 +- WcfService1/Log4Net.config | 18 +- WcfService1/MobileService.svc.cs | 2 +- .../PublishProfiles/IISProfile1.pubxml.user | 2 +- WcfService1/WmsOutPickRequestService.svc.cs | 6 +- WcfService1/WmsWcfService.csproj.user | 2 +- WcfServiceErp/WcfServiceErp.csproj.user | 2 +- WcfServicePortal/WcfServicePortal.csproj.user | 2 +- epickService/epickService.csproj.user | 2 +- winform/utils/elelable/light.cs | 288 ++--- winform/utils/reports/pickOrderBulks.rdlc | 1045 ++++++++--------- winform/utils/reports/printIn.cs | 57 +- .../零货分拣/GoodsOutForm.Designer.cs | 354 +++--- winform/出库/零货分拣/GoodsOutForm.cs | 4 +- winform/出库/零货分拣/GoodsOutForm.resx | 6 +- .../GoodsOutSeedsForm.Designer.cs | 264 ++--- .../出库/零货复核/GoodsOutSeedsForm.cs | 131 ++- .../零货复核/GoodsOutSeedsForm.resx | 6 +- .../GoodsOutSeedsPackForm.Designer.cs | 226 ++-- .../零货复核/GoodsOutSeedsPackForm.cs | 1 + .../零货复核/GoodsOutSeedsPackForm.resx | 6 +- .../GoodsOutValidationForm.Designer.cs | 106 +- .../零货复核/GoodsOutValidationForm.cs | 115 +- 40 files changed, 1774 insertions(+), 1364 deletions(-) diff --git a/Model/wms/data/TmsStock_Imp.cs b/Model/wms/data/TmsStock_Imp.cs index 404c80d..00fee27 100644 --- a/Model/wms/data/TmsStock_Imp.cs +++ b/Model/wms/data/TmsStock_Imp.cs @@ -29,6 +29,12 @@ namespace DeiNiu.wms.Data.Model sqlCmd.CommandText = _strSql; break; + case 10: //by custId + _strSql = "SELECT * FROM v_tmsLineDetail WHERE custId = @custId"; + sqlCmd.CommandText = _strSql; + sqlCmd.Parameters.AddWithValue("@custId", mObj.CmdParameters[0]); + break; + case 100: //by name _strSql = "SELECT * FROM t_tmsStock WHERE NAME = @NAME"; sqlCmd.CommandText = _strSql; @@ -58,7 +64,7 @@ namespace DeiNiu.wms.Data.Model break; case 300: //get line 整货集货货位 where the cust in - _strSql = "SELECT top 1 locationId FROM v_tmsLineLocation WHERE custId = @custId and volType = @volType "; + _strSql = "SELECT top 1 locationId FROM v_tmsLineLocation WHERE locationid is not null and custId = @custId and volType = @volType "; sqlCmd.CommandText = _strSql; sqlCmd.Parameters.AddWithValue("@custId", mObj.CmdParameters[0]); sqlCmd.Parameters.AddWithValue("@volType", (int)enumWhLocVol.分拣集货); diff --git a/Model/wms/data/WmsOutPickPort_Imp.cs b/Model/wms/data/WmsOutPickPort_Imp.cs index 4845db6..0b63030 100644 --- a/Model/wms/data/WmsOutPickPort_Imp.cs +++ b/Model/wms/data/WmsOutPickPort_Imp.cs @@ -829,7 +829,7 @@ namespace DeiNiu.wms.Data.Model sqlCmd.Parameters.AddWithValue("@orderDate", mObj.CmdParameters[3]); sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]); - + log.Debug(_strSql); sqlCmd.CommandText = _strSql; break; diff --git a/Model/wms/data/WmsOutPickRequest_Imp.cs b/Model/wms/data/WmsOutPickRequest_Imp.cs index 6f979ca..b32c721 100644 --- a/Model/wms/data/WmsOutPickRequest_Imp.cs +++ b/Model/wms/data/WmsOutPickRequest_Imp.cs @@ -761,9 +761,12 @@ namespace DeiNiu.wms.Data.Model break; case 11001: //get pick details by seedsPickNo,skuId - _strSql = "SELECT * from [v_stockOutWavePickDetail] where " - +" seedsPickNo = @seedsPickNo and pdaOuting >0 " - +" and skuId=@skuid"; + // _strSql = "SELECT * from [v_stockOutWavePickDetail] where " + // +" seedsPickNo = @seedsPickNo and pdaOuting >0 " + // +" and skuId=@skuid"; + + _strSql = " SELECT * FROM v_stockoutport p WHERE skuId=@skuid and exists" + + " (select 1 from t_wmsoutpickrequest where pickOrderNo = p.pickorderno and seedsPickNo=@seedsPickNo)"; sqlCmd.CommandText = _strSql; sqlCmd.Parameters.AddWithValue("@seedsPickNo", mObj.CmdParameters[0]); diff --git a/Model/wms/data/Wmslocation_Imp.cs b/Model/wms/data/Wmslocation_Imp.cs index 322f541..5493e65 100644 --- a/Model/wms/data/Wmslocation_Imp.cs +++ b/Model/wms/data/Wmslocation_Imp.cs @@ -145,7 +145,8 @@ namespace DeiNiu.wms.Data.Model case 500: // get location info by locationId - _strSql = " select [id],[locationId] ,[ownerCode] ,[warehouse] ,[channel] ,[shelf] ,[layer] ,[col] ,[elabId] ,[elabAddress] ,[height] ,[width] ,[length] , [weight] ,[port] ,[part] ,[bigPart] ,[goodsType] ,[whType] ,[whGoodsType] ,[whVolType] ,[volType] ,[ABC] ,[state]" + + _strSql = " select [id],[locationId] ,[ownerCode] ,[warehouse] ,[channel] ,[shelf] ,[layer] ,[col] ,[elabId] ,[elabAddress] ,[height] ,[width] ,[length] , " + + " [weight] ,[port] ,[part] ,[bigPart] ,[goodsType] ,[whType] ,[whGoodsType] ,[whVolType] ,[volType] ,[ABC] ,[state],empId" + " from v_location where locationId= @locId"; sqlCmd.CommandText = _strSql; diff --git a/Model/wms/tables/Erp_sale.cs b/Model/wms/tables/Erp_sale.cs index 6989707..9dd4901 100644 --- a/Model/wms/tables/Erp_sale.cs +++ b/Model/wms/tables/Erp_sale.cs @@ -193,7 +193,7 @@ namespace DeiNiu.wms.Data.Model public DataTable getByErpState() { cmdParameters[0] =(int)enumErpOrderStatus.通知失败; - cmdParameters[1] = (int)enumOutStockRequestStatus.已装车; + cmdParameters[1] = (int)enumOutStockRequestStatus.装车集货; return CustQuery(700).Tables[0]; diff --git a/Model/wms/tables/TmsStock.cs b/Model/wms/tables/TmsStock.cs index b8ac724..3c2abf0 100644 --- a/Model/wms/tables/TmsStock.cs +++ b/Model/wms/tables/TmsStock.cs @@ -30,7 +30,12 @@ namespace DeiNiu.wms.Data.Model { } - protected override void getImp() + public TmsStock(string locationId) + { + cmdParameters[0] = locationId; + getModel(10); + } + protected override void getImp() { model_imp = new TmsStock_Imp(); } diff --git a/Model/wms/tables/WmsFlow.cs b/Model/wms/tables/WmsFlow.cs index f9e0632..627841b 100644 --- a/Model/wms/tables/WmsFlow.cs +++ b/Model/wms/tables/WmsFlow.cs @@ -86,7 +86,7 @@ namespace DeiNiu.wms.Data.Model public void finishedTasksPlus(int ownerId,decimal finishedPcs, bool isChildTasksOperation=false,bool isDone=false) { - LogHelper.debug("finishedTasksPlus", string.Format(" orderno {5}, ownerId {0}, finishedPcs: {1}, isChildTasksOperation: {2}, isDone {3}, state {4}", + log.Debug( string.Format(" orderno {5}, ownerId {0}, finishedPcs: {1}, isChildTasksOperation: {2}, isDone {3}, state {4}", ownerId, finishedPcs, isChildTasksOperation, isDone,state ,orderNo)); if (!isChildTasksOperation && state == (int)enumFlowTaskStatus.已完成) { diff --git a/Model/wms/tables/WmsOutPickRequest.cs b/Model/wms/tables/WmsOutPickRequest.cs index c51201f..88221d0 100644 --- a/Model/wms/tables/WmsOutPickRequest.cs +++ b/Model/wms/tables/WmsOutPickRequest.cs @@ -584,7 +584,7 @@ namespace DeiNiu.wms.Data.Model /// pick details by pickOrderNo /// including batch and bulk /// - /// + /// /// public DataSet getPickDetailByPickOrderNo(string pickOrderNo) { diff --git a/Model/wms/tables/WmsPlate.cs b/Model/wms/tables/WmsPlate.cs index 12a7f1b..d7eb59b 100644 --- a/Model/wms/tables/WmsPlate.cs +++ b/Model/wms/tables/WmsPlate.cs @@ -283,7 +283,7 @@ namespace DeiNiu.wms.Data.Model { lst= lst.Concat(requests[p]).ToList(); } - LogHelper.debug(this.GetType(), string.Format(" plate {0} request count {1} ", plateId, lst.Count)); + log.Debug( string.Format(" plate {0} request count {1} ", plateId, lst.Count)); return lst ; } diff --git a/Model/wms/tables/Wmslocation.cs b/Model/wms/tables/Wmslocation.cs index 045799a..b796504 100644 --- a/Model/wms/tables/Wmslocation.cs +++ b/Model/wms/tables/Wmslocation.cs @@ -20,6 +20,7 @@ namespace DeiNiu.wms.Data.Model public class WmsLocation : WmsLocation_base { private int _partion=0; + private int _empId = 0; public int partion { @@ -30,7 +31,7 @@ namespace DeiNiu.wms.Data.Model if (dt.Rows.Count > 0) { - dt.Rows[0]["partion"].ToString(); + // dt.Rows[0]["partion"].ToString(); if (dt.Columns.Contains("partion") && !(dt.Rows[0]["partion"] is DBNull)) { _partion = Convert.ToInt32(dt.Rows[0]["partion"].ToString()); @@ -41,6 +42,29 @@ namespace DeiNiu.wms.Data.Model } set { _partion = value; } } + + public int empId + { + get + { + if (_empId == 0 && ID > 0) + { + DataTable dt = CustQuery(10).Tables[0]; + + if (dt.Rows.Count > 0) + { + // dt.Rows[0]["empId"].ToString(); + if (dt.Columns.Contains("empId") && !(dt.Rows[0]["empId"] is DBNull)) + { + _empId = Convert.ToInt32(dt.Rows[0]["empId"].ToString()); + } + } + } + return _empId; + } + set => _empId = value; + } + public WmsLocation() { @@ -56,7 +80,15 @@ namespace DeiNiu.wms.Data.Model } public WmsLocation(DataRow dr): base(dr) { - + try + { + _empId = Convert.ToInt32( dr["empId"].ToString()); + } + catch(Exception er) + { + log.Error(er); + } + } public WmsLocation(String locationId) { @@ -358,7 +390,7 @@ namespace DeiNiu.wms.Data.Model /// get location info by locId /// /// - public DataTable getLocations(string locId) + public DataTable getLocationDt(string locId) { cmdParameters[0] = locId; return CustQuery(500).Tables[0]; diff --git a/Utils/Enums.cs b/Utils/Enums.cs index 663de04..1f99d48 100644 --- a/Utils/Enums.cs +++ b/Utils/Enums.cs @@ -39,7 +39,7 @@ namespace DeiNiu.Utils public enum EnumFlowTaskType { 入库验收= 0,入库上架,播种分货, 补货下架, 补货上架, 出库下架,移库下架,移库上架, 不良品入库, - 报废下架, 退供应商下架, 退供应商上架,出库检验,装车运输,盘点采集,直通分货,客户集货,日常理货}; + 报废下架, 退供应商下架, 退供应商上架,出库装车复核,装车运输,盘点采集,直通分货,客户集货,日常理货}; public enum enumFlowTaskStatus{ 未开始=0,进行中,暂停,取消,已完成}; public enum enumFlowTaskResult { 成功 = 0,失败, 已被他人开始,状态不允许,任务不存在 }; @@ -97,8 +97,8 @@ namespace DeiNiu.Utils public enum enumOutStockRequestStatus { 待审核 = 0, 订单驳回/*1*/, 待出库/*2*/ , 准备分拣/*3*/, 库存不足/*4*/, 等待补货/*5*/, 待定位/*6*/, 定位完成/*7*/, 等待波次/*8*/, - 正在分拣/*9*/, 分拣完成/*10*/, 复核完成/*11 */, 集货完成/*12 */, 复核异常/*13*/, 已装车/*14*/, 已出库/*15*/, - 客户签收/*16*/, 客户拒签/*17*/, 订单完成/*18*/, 订单作废/*19*/, 订单异常/*20*/ + 正在分拣/*9*/, 分拣完成/*10*/, 复核完成/*11 */, 集货完成/*12 */, 复核异常/*13*/, 装车集货/*14*/, 装车复核/*15*/, 已出库,/*16*/ + 客户签收, 客户拒签, 订单完成, 订单作废, 订单异常 }; /// /// 散货、整货分拣状态 bulkPickstate,batchpickstate (t_wmsOutPickDetail, t_wmsOutPickRequest) @@ -281,10 +281,12 @@ namespace DeiNiu.Utils , 容器非空闲,容器不存在,容器空间不足,容器空闲无任务 ,容器已被其他货区占用,只允许下级容器放入上级容器,客户容器已被其他客户占用,集货线路不同,容器非直接包含关系,码头集货需要客户类型的容器,客户已经在其他码头集货, 容器已完成客户集货, - 容器已完成码头集货,容器已完成装车集货,装车集货需要码头类型的容器,完成码头集货后才能装车,完成装车集货后才能装车, 装车需要客户类型的容器,客户货物不属于此车,发车需要运输类型的容器,容器已完成合流集货,已发车,等级别的容器才可以合并,相同上级容器的子容器才可以相互合并,码头已装车集货,前置集货未完成,容器所属客户不明确 + 容器已完成码头集货,容器已完成装车集货,装车集货需要码头类型的容器,完成码头集货后才能装车,完成装车集货后才能装车, 装车需要客户类型的容器,客户货物不属于此车, + 发车需要运输类型的容器,容器已完成合流集货,已发车,等级别的容器才可以合并,相同上级容器的子容器才可以相互合并,码头已装车集货,前置集货未完成,容器所属客户不明确, + 发车待复核,容器已完成复核 }; public enum enumRegBoxResult { 成功 = 0, 箱子颜色和订单灯色不符, 当前无拣货订单 }; - public enum enumPlateStatus { 空闲 = 0, 入库待上架, 存储架上, 出库待集货, 取总待分播, 已集货, 已装车, 已发车,临时堆放, 不可用 }; + public enum enumPlateStatus { 空闲 = 0, 入库待上架, 存储架上, 出库待集货, 取总待分播, 已集货, 待复核, 已装车, 已发车,临时堆放, 不可用 }; public enum enumPlateLevel { 临时容器 = 0, 固定容器,客户集货, 线路集货,运输车 }; diff --git a/Utils/WmsConstants.cs b/Utils/WmsConstants.cs index 9a4f199..8751978 100644 --- a/Utils/WmsConstants.cs +++ b/Utils/WmsConstants.cs @@ -213,10 +213,10 @@ namespace DeiNiu.Utils public static string GOODS_VALID_DATE_FORMAT = "yyyyMMdd"; - - public static string CURRENT_SEEDS_NO, CURRENT_SEEDS_GOODSID, CURRENT_SEEDS_GOOD_BATCH; + + // public static string CURRENT_SEEDS_NO, CURRENT_SEEDS_GOODSID, CURRENT_SEEDS_GOOD_BATCH, CURRENT_SEEDS_PICK_ORDERNO; public static int CURRENT_SEEDS_GOOD_SKUID; public static int CURRENT_SEEDS_LABLE_ID; public static Dictionary SEEDS_CURRENT_PICK_STATUS = new Dictionary(); @@ -454,7 +454,8 @@ namespace DeiNiu.Utils public static bool IS_CHECK_LINE_ON_LOAD;//是否装车时限制同线路客户 public static bool UP_DOWN_SELF_RECS=false; //是否只能上架自己下架的货品 - public static bool AUTO_LOAD_TRUCK = true; //客户订单的容器自动装车 + public static bool AUTO_LOAD_TRUCK = true; //客户订单的容器自动装车集货 + public static bool AUTO_LOAD_TRUCK_VALID = false; //发车前是否自动复核,否则客户订单装车集货后,发车前需要复核 public static int STOCK_HIS_KEEP_DAYS = 31; public static bool OUT_SEEDS_CAN_OVER_REQ; //集货播种时,可否比原来的需求多发 diff --git a/WcfService1/Android.svc.cs b/WcfService1/Android.svc.cs index 9a7417a..5af63dc 100644 --- a/WcfService1/Android.svc.cs +++ b/WcfService1/Android.svc.cs @@ -644,7 +644,7 @@ namespace DeiNiu.Wcf - var result = DataTableToDicList(loc.getWmslocation.getLocations(locId)); + var result = DataTableToDicList(loc.getWmslocation.getLocationDt(locId)); return new FormatedResult(JsonConvert.SerializeObject(result)); diff --git a/WcfService1/BLL/lTmsTranRequest.cs b/WcfService1/BLL/lTmsTranRequest.cs index e03d6d1..5624466 100644 --- a/WcfService1/BLL/lTmsTranRequest.cs +++ b/WcfService1/BLL/lTmsTranRequest.cs @@ -344,6 +344,36 @@ namespace DeiNiu.wms.Logical } + //TODO: 创建装车复核任务 + if (!WmsConstants.AUTO_LOAD_TRUCK_VALID //&& plate.state != (int)enumPlateStatus.待复核 + // && (req.batchPickState > -1 && req.batchCheckedby == 0|| req.bulkPickState > -1 && req.bulkCheckedby == 0) + ) + { + // WmsFlow vFlow = new WmsFlow(tmsTranRequest.transNo, tmsTranRequest.viechleNo, enumFlowTaskStatus.未开始, EnumFlowTaskType.出库装车复核); + // if (vFlow.ID == 0) + { + WmsFlow vFlow = new WmsFlow(); + vFlow.operater = operId; + vFlow.orderNo = tmsTranRequest.transNo; + vFlow.flowNo = tmsTranRequest.viechleNo; + vFlow.type = (int)EnumFlowTaskType.出库装车复核; + vFlow.typeName = EnumFlowTaskType.出库装车复核.ToString(); + vFlow.task = tmsTranRequest.transNo; + + vFlow.taskCnt = 1; + vFlow.Add(); + + plate.state =(int) enumPlateStatus.待复核; + plate.Update(); + + } + // else + { + // vFlow.taskCnt ++; + // vFlow.Update(); + } + } + if (i > 0) { //plate.transNo = tmsTranRequest.transNo; diff --git a/WcfService1/BLL/lWmsOutPickRequest.cs b/WcfService1/BLL/lWmsOutPickRequest.cs index a45ba26..9456dd8 100644 --- a/WcfService1/BLL/lWmsOutPickRequest.cs +++ b/WcfService1/BLL/lWmsOutPickRequest.cs @@ -420,14 +420,14 @@ namespace DeiNiu.wms.Logical int labelMaxInWave = WmsConstants.MAX_LABEL_DATA_IN_A_WAVE; //一个标签一个波次只能存储40条数据 //#if DEBUG - // if (lblist.Count == 0) + // if (TESTlblist.Count == 0) { TESTlblist.Clear(); initialDebugSetting(); } TESTlblist.Sort(); - // int minId = lblist[0]; - // int maxId = lblist[lblist.Count - 1]; + // int minId = TESTlblist[0]; + // int maxId = TESTlblist[TESTlblist.Count - 1]; // labelMaxInWave = 2; //#endif @@ -838,6 +838,7 @@ namespace DeiNiu.wms.Logical // wpl.elabId = new Random().Next(1,4); //测试。。。随机分配标签id 为 1-3 wpl.port = rec.location.port; wpl.orderDetailId = rec.orderDetailId; + //#if DEBUG try { @@ -865,12 +866,15 @@ namespace DeiNiu.wms.Logical { foreach (WmsOutPickLable_tmp wp in lstLabel) //建立电子拣选临时数据 { - wp.Add(); + WmsOutPickPort wop = new WmsOutPickPort();// wp.recordId wop.getPickPortByRecordId(wp.recordId); wop.dpsOrder = waveOrder; wop.Update(); + + wp.portId = wop.ID; + wp.Add(); // WmsOutPickDetail pd = new WmsOutPickDetail(wp.orderDetailId); // pd.updateErpSaleDetail_deng(true); @@ -1131,14 +1135,16 @@ namespace DeiNiu.wms.Logical int labelMaxInWave = WmsConstants.MAX_LABEL_DATA_IN_A_WAVE; //一个标签一个波次只能存储40条数据 #if DEBUG - // if (lblist.Count == 0) + + // if (TESTlblist.Count == 0) { - lblist.Clear(); + TESTlblist.Clear(); initialDebugSetting(); } - lblist.Sort(); - // int minId = lblist[0]; - // int maxId = lblist[lblist.Count - 1]; + TESTlblist.Sort(); + + // int minId = TESTlblist[0]; + // int maxId = TESTlblist[TESTlblist.Count - 1]; // labelMaxInWave = 2; #endif @@ -1290,16 +1296,16 @@ namespace DeiNiu.wms.Logical sr.count = Convert.ToDecimal(drv["count"].ToString()); } #if DEBUG - if (lblist.Count > 0) + if (TESTlblist.Count > 0) { - int id = new Random().Next(lblist.Count); + int id = new Random().Next(TESTlblist.Count); //#if DEBUG - sr.location.elabId = lblist[id]; //new Random().Next(minId, maxId + 1); //测试。。。随机分配标签id 为 1-3 + sr.location.elabId = TESTlblist[id]; //new Random().Next(minId, maxId + 1); //测试。。。随机分配标签id 为 1-3 - while (lblist.Count > 1 && lastId == sr.location.elabId) + while (TESTlblist.Count > 1 && lastId == sr.location.elabId) { - id = new Random().Next(lblist.Count); - sr.location.elabId = lblist[id]; + id = new Random().Next(TESTlblist.Count); + sr.location.elabId = TESTlblist[id]; } lastId = sr.location.elabId; @@ -1460,16 +1466,16 @@ namespace DeiNiu.wms.Logical { /* - if (lblist.Count > 0) + if (TESTlblist.Count > 0) { - int id = new Random().Next(lblist.Count); + int id = new Random().Next(TESTlblist.Count); //#if DEBUG - rec.location.elabId = lblist[id]; //new Random().Next(minId, maxId + 1); //测试。。。随机分配标签id 为 1-3 + rec.location.elabId = TESTlblist[id]; //new Random().Next(minId, maxId + 1); //测试。。。随机分配标签id 为 1-3 - while (lblist.Count > 1 && lastId == rec.location.elabId) + while (TESTlblist.Count > 1 && lastId == rec.location.elabId) { - id = new Random().Next(lblist.Count); - rec.location.elabId = lblist[id]; + id = new Random().Next(TESTlblist.Count); + rec.location.elabId = TESTlblist[id]; } lastId = rec.location.elabId; @@ -1935,9 +1941,10 @@ namespace DeiNiu.wms.Logical //#endif wpl.dpsOrder = waveOrder; wpl.operater = this.operId; - - + WmsOutPickPort wop = new WmsOutPickPort(); + wop.getPickPortByRecordId(rec.ID); + wpl.portId = wop.ID; //此时,若多个任务合并,则取第一个任务 lstLabel.Add(wpl); } @@ -1951,6 +1958,8 @@ namespace DeiNiu.wms.Logical ww.Add(); foreach (WmsOutPickLable_tmp wp in lstLabel) //建立电子拣选临时数据 { + + wp.Add(); } @@ -2505,23 +2514,37 @@ namespace DeiNiu.wms.Logical pickLabelDetail.updatePickingStatus(color, elabId, elabAddress, pickCount); } else - { - //update wmsOutPickPort - WmsOutPickPort wop = new WmsOutPickPort(); - wop.updatePickDetailByStkrecId(wpt.recordId, enumPickState.已拣, operId); + { + /* + //update wmsOutPickPort + WmsOutPickPort wop = new WmsOutPickPort(); + wop.updatePickDetailByStkrecId(wpt.recordId, enumPickState.已拣, operId); - //new stockRecord //to update current rec + //new stockRecord //to update current rec + + WmsStockRecord wsr = new WmsStockRecord(wpt.recordId); + wsr.count = pickCount; + wsr.countOuting = 0; + wsr.operater = operId; + // wsr.Add(); + wsr.Update(); + */ + WmsOutPickPort wop = new WmsOutPickPort(wpt.portId); + WmsFlow wmsflow = new WmsFlow(wop.jobNo); + + //get 分拣分区负责人 + WmsLocation loc = new WmsLocation(wop.locationId); + + int ownerId = loc.empId>0?loc.empId:operId; + operId = ownerId; + wmsflow.finishedTasksPlus(ownerId, pickCount,true); + + int i= pickLabelDetail.updatePickingStatus(color, elabId, elabAddress, pickCount, true); + enumPickResult re = finishPickItem(wop.jobNo, "", wpt.pickOrderNo, wpt.portId, wpt.count/* * wpt.minOperateCount*/); + log.Debug(string.Format("update pick status cnt {0}, finish pick item result {1}, operater is {2}", i, re.ToString(),operId)); - WmsStockRecord wsr = new WmsStockRecord(wpt.recordId); - wsr.count = pickCount; - wsr.countOuting = 0; - wsr.operater = operId; - // wsr.Add(); - wsr.Update(); - pickLabelDetail.updatePickingStatus(color, elabId, elabAddress, pickCount, true); } - - + //更新待复核数据状态 WmsOutPickDetail_tmp pd = new WmsOutPickDetail_tmp(wpt.orderDetailId); @@ -2581,7 +2604,7 @@ namespace DeiNiu.wms.Logical - enumPickResult re= finishPickItem(wpt.dpsOrder, "", wpt.pickOrderNo, wpt.portId, wpt.count*wpt.minOperateCount); + enumPickResult re= finishPickItem(wpt.dpsOrder, "", wpt.pickOrderNo, wpt.portId, wpt.count/*wpt.minOperateCount*/); log.Debug(string.Format("update pick status cnt {0}, finish pick item result {1}",i,re.ToString())); @@ -2795,7 +2818,7 @@ namespace DeiNiu.wms.Logical dv.Sort = "dpsOrder ASC"; //fifo // DataTable dt = dv.ToTable(true, "pickOrderNo","orderState","customerName"); // TODO: check why custid to multi custname, custid: C1ZTLQIA97N - DataTable dt = dv.ToTable(true,"orderBulkPickstate","dpsOrder", "pickOrderNo", "orderState", "customerName", "custAddress", "desk", "seedsLabelId","xuhao"); // 打印封箱 + DataTable dt = dv.ToTable(true,"orderBulkPickstate","dpsOrder", "pickOrderNo", "orderState", "customerName", "custAddress", "desk", "seedsLabelId","xuhao", "bulkBox", "bulkBag"); // 打印封箱 dt.TableName = "tablePickOrderList"; int kk=0; @@ -2923,13 +2946,30 @@ namespace DeiNiu.wms.Logical */ po.bulkPickState = isException ? (int)enumOutStockPickStatus.复核异常 : (int)enumOutStockPickStatus.复核完成; po.operater = this.operId; + po.bulkCheckedby = operId; + po.bulkCheckedTime = po.getDateTime(); + if (po.bulkPickState == (int)enumOutStockPickStatus.复核完成) //both bulk and batch completed validation { if (po.batchPickState == (int)enumOutStockPickStatus.无需分拣 || po.batchPickState == (int)enumOutStockPickStatus.复核完成) { - po.state = (int)enumOutStockRequestStatus.集货完成; - updateErpSaleStatus(po.pickOrderNo, enumOutStockRequestStatus.集货完成); + + // po.state = (int)enumOutStockRequestStatus.集货完成; + // updateErpSaleStatus(po.pickOrderNo, enumOutStockRequestStatus.集货完成); + + po.state = (int)enumOutStockRequestStatus.复核完成; + updateErpSaleStatus(po.pickOrderNo, enumOutStockRequestStatus.复核完成); + + // update 复核任务完成情况 + if (!WmsConstants.AUTO_LOAD_TRUCK_VALID) + { + WmsFlow vFlow = new WmsFlow(po.transNo); + vFlow.finishedTasksPlus(operId, 1,true,true); + } + po.checkedBy = operId; + po.checkedTime = po.getDateTime(); + /* Erp_sale es = new Erp_sale(); if (!WmsConstants.OUT_REQUEST_MERGE) @@ -2946,7 +2986,7 @@ namespace DeiNiu.wms.Logical es.updatePickStatus(po.pickOrderNo, enumOutStockRequestStatus.集货完成); } */ - } + } } po.Update(); @@ -3055,15 +3095,21 @@ namespace DeiNiu.wms.Logical if (po.batchPickState == (int)enumOutStockPickStatus.无需分拣 || po.batchPickState == (int)enumOutStockPickStatus.复核完成) { - po.state = (int)enumOutStockRequestStatus.集货完成; + po.state = (int)enumOutStockRequestStatus.复核完成; Erp_sale es = new Erp_sale(); - es.updatePickStatus(po.pickOrderNo, enumOutStockRequestStatus.集货完成); + es.updatePickStatus(po.pickOrderNo, enumOutStockRequestStatus.复核完成); + // update 复核任务完成情况 + if (!WmsConstants.AUTO_LOAD_TRUCK_VALID) + { + WmsFlow vFlow = new WmsFlow(po.transNo); + vFlow.finishedTasksPlus(operId, 1, true, true); + } } } po.Update(); - + foreach (DataRow dr in validationDetails.Rows) @@ -3104,11 +3150,11 @@ namespace DeiNiu.wms.Logical } catch (Exception er) { - LogHelper.WriteLog(typeof(lWmsOutPickRequest), er); + log.Error( er); Thread.CurrentThread.Join(200); // completeBulkValidation(pickOrderNo, bulkBox, bulkBag, validationDetails); throw er; - return false; + } } @@ -3566,8 +3612,8 @@ namespace DeiNiu.wms.Logical } } - WmsPlate toP = new WmsPlate(flowNo); - WmsStock stkVir = new WmsStock(new WmsLocation().getVirLocations(goods.part).locationId,new WmsOutPickDetail(outPickPort.pickDetailId).skuId, sr.goodsId); + WmsPlate toP = new WmsPlate(flowNo); + WmsStock stkVir = null;// new WmsStock(new WmsLocation().getVirLocations(goods.part).locationId,new WmsOutPickDetail(outPickPort.pickDetailId).skuId, sr.goodsId); logOut.Debug("拣货更新库存前: " + stk); @@ -3588,8 +3634,9 @@ namespace DeiNiu.wms.Logical //TODO: 处理虚拟库存 if ( WmsConstants.OUT_STOCK_LACK_VIR_OUT_AUTO && stk.virtialCount > 0 && outPickPort.virtialCnt>0 ) { + stkVir = new WmsStock(new WmsLocation().getVirLocations(goods.part).locationId, new WmsOutPickDetail(outPickPort.pickDetailId).skuId, sr.goodsId); - logOut.Debug(string.Format("扣虚拟库存, 原库存 {0}, 虚拟库存 {1}, outPickPort.virtialCnt {2} ", stk.ToString(), stkVir.ToString(), outPickPort.virtialCnt)); + logOut.Debug(string.Format("扣虚拟库存, 原库存 {0}, 虚拟库存 {1}, outPickPort.virtialCnt {2} ", stk.ToString(), stkVir.ToString(), outPickPort.virtialCnt)); stk.virtialCount -= pickCount;// outPickPort.virtialCnt; stk.virtialCount = stk.virtialCount<0?0: stk.virtialCount; // 称重或修改出库数量可能出现出库数量大于预计数量 @@ -3775,13 +3822,16 @@ namespace DeiNiu.wms.Logical // logOut.Debug("拣货更新库存: " + stk); logOut.Debug("更新库存前: " + stk); - logOut.Debug("更新库存前,虚拟库: " + stkVir); + stk.updateCountOut(); - stkVir.updateCountOut(); - + if (stkVir != null) + { + logOut.Debug("更新库存前,虚拟库: " + stkVir); + stkVir.updateCountOut(); + } //stk.Update(); plateStock.skuId = stk.skuId; @@ -3791,10 +3841,39 @@ namespace DeiNiu.wms.Logical if (WmsConstants.AUTO_LOAD_TRUCK) { + //库位下架 过滤掉集货拣货、补货拣货等非出库类型的拣选 + //装车集货容器的判定 + /* + * 统一发车出库,则用 000 + * 按线路、销售分批发货 使用线路ID + * + * 按客户单独配送、自提、快递的处理 使用分拣单号 + * + * 如果按单复核出库,零库复核台已复核,只需复核整库部分,复核按线路复核 + */ if (is4OutStockTran((enumStockRecordType)outPickPort.recType)) //(outPickPort.recType != (int)enumStockRecordType.集货拣货 ) { string truck = "000"; //+ stk.locationId.Substring(0,1); - new lWmsPlate(operId).loadTruck(plateStock.plateId, string.IsNullOrEmpty( wopr.seedsPickNo) ? wopr.pickOrderNo: truck);//有总拣任务的分拣单集中装车 + int lineId = new WmsLocation(wopr.tranLocationId).transLine; + //有总拣任务的分拣单集中装车000,单拣的以分拣单合为装车容器 + + truck = wopr.pickGroup > 0 && !string.IsNullOrEmpty(wopr.seedsPickNo) ?//此拣货单是否包含合并拣选项目,如果包含则为统一发车出库 + truck : //统一发车出库 + lineId > 0 ? //分线路出库或单独出库 + lineId + "" + :wopr.pickOrderNo; //单独出库 + try + { + + + enumRegPlateResult rs= new lWmsPlate(operId).loadTruck(plateStock.plateId, truck); + log.Debug("loadtruck result:" + rs); + } + catch ( Exception e) + { + log.Error(e); + } + } } @@ -4294,9 +4373,9 @@ namespace DeiNiu.wms.Logical } - //seeds + //播种复核 - public enumOutSeedsStatus updateSeedingStatus(string seedsPickNo, string goodsId, string batch, int labId, int address, decimal count, int checkedBy2) + public enumOutSeedsStatus updateSeedingStatus(string seedsPickNo, string goodsId, string batch, int labId, int address, decimal count, int checkedBy2) { loglw.Debug( "updateSeedingStatus... operId is " + operId); loglw.Debug( "begin to update seeding pick.....>"); @@ -4305,13 +4384,24 @@ namespace DeiNiu.wms.Logical enumOutSeedsStatus rt = enumOutSeedsStatus.状态更新成功; int cnt = outPickTmp.updateSeedingPickStatus(seedsPickNo, goodsId, batch, labId, address, count,operId,checkedBy2); - + + + //TODO: 复核任务 + if (cnt == 0) { loglw.Debug( " 更新失败,。。。。。。。return failure"); return enumOutSeedsStatus.处理失败; } - + WmsOutPickRequest pr =null; + DataTable dtSeeds = outRequest.getSeedsData(seedsPickNo, labId); + foreach(DataRow dr in dtSeeds.Rows) + { + pr = new WmsOutPickRequest(dr["pickOrderNo"].ToString()); + break; + } + + int color = 0; using (TransactionScope scope = new TransactionScope()) { @@ -4323,23 +4413,23 @@ namespace DeiNiu.wms.Logical } loglw.Debug( " " + rt); - if (outRequest.getUnSeedsCnt(seedsPickNo, labId) == 0) // LabId对应的分拣单播种完毕 + // update 复核任务完成情况 + WmsFlow vFlow = null; + if (!WmsConstants.AUTO_LOAD_TRUCK_VALID) { + vFlow = new WmsFlow(pr.transNo); + + } - - DataTable dtSeeds = outRequest.getSeedsData(seedsPickNo, labId); - - DataView dv = dtSeeds.DefaultView; - DataTable dtPickOrders = dv.ToTable(true, "pickOrderNo"); - + if (pr!=null && outRequest.getUnSeedsCnt(seedsPickNo, labId) == 0) // LabId对应的分拣单播种完毕 + { try - { - - foreach (DataRow dr in dtPickOrders.Rows) + { + { - string pickOrderNo = dr[0].ToString(); - WmsOutPickRequest pr = new WmsOutPickRequest(pickOrderNo); + //分拣明细状态 更新为 零货复核完成(enumOutStockPickStatus.复核完成) 和 全部完成分拣(enumOutStockDetailStatus.完成分拣) + foreach (WmsOutPickDetail pd in pr.outDetails) { if (pd.bulkCount > 0) @@ -4357,20 +4447,35 @@ namespace DeiNiu.wms.Logical } } pr.bulkPickState = (int)enumOutStockPickStatus.复核完成; + pr.bulkCheckedby = operId; + pr.bulkCheckedTime = pr.getDateTime(); if (pr.batchPickState == (int)enumOutStockPickStatus.无需分拣 || pr.batchPickState >= (int)enumOutStockPickStatus.分拣完成) { - enumOutStockRequestStatus state = enumOutStockRequestStatus.分拣完成; + enumOutStockRequestStatus state = enumOutStockRequestStatus.分拣完成; if (pr.batchPickState == (int)enumOutStockPickStatus.无需分拣 || pr.batchPickState == (int)enumOutStockPickStatus.复核完成) { state = enumOutStockRequestStatus.复核完成; + + // update 复核任务完成情况 + if (vFlow!=null) //复核任务完成 + { + + vFlow.finishedTasksPlus(operId, count,true,true); + } + + pr.checkedBy = operId; + pr.checkedTime = pr.getDateTime(); + } pr.state = (int)state; - - updateErpSaleStatus( pr.pickOrderNo,state); + if (pr.state != (int)state) + { + updateErpSaleStatus(pr.pickOrderNo, state); + } } pr.operater = this.operId; @@ -4386,19 +4491,27 @@ namespace DeiNiu.wms.Logical } catch (Exception e) { - LogHelper.WriteLog(this.GetType(), e); + loglw.Error(e); return enumOutSeedsStatus.处理失败; } // pk order is finished, to print code, can be packed. + + } // 拣货单分播没有完成, 复核任务加1 + + if (vFlow != null && pr.state != (int)enumOutStockRequestStatus.复核完成) + { + vFlow.finishedTasksPlus(operId, count, true, false); } + + if (outRequest.getUnSeedsCnt(seedsPickNo) == 0)//是否播种单订单全部分播完毕 { outPickTmp.completeSeeding(seedsPickNo); if (WmsConstants.OUT_BULK_DESK_CONTROLL) { setDeskFree(color); - LogHelper.debug(typeof(lWmsOutRequest), color +"播种台播种完毕,设置状态为空闲,参与下个波次"); + loglw.Debug(color +"播种台播种完毕,设置状态为空闲,参与下个波次"); } WmsWave ww = new WmsWave(); ww.QueryBySeedsNo(seedsPickNo); @@ -4640,14 +4753,14 @@ namespace DeiNiu.wms.Logical int labelMaxInWave = WmsConstants.MAX_LABEL_DATA_IN_A_WAVE; //一个标签一个波次只能存储40条数据 //#if DEBUG - // if (lblist.Count == 0) + // if (TESTlblist.Count == 0) { TESTlblist.Clear(); initialDebugSetting(); } TESTlblist.Sort(); - // int minId = lblist[0]; - // int maxId = lblist[lblist.Count - 1]; + // int minId = TESTlblist[0]; + // int maxId = TESTlblist[TESTlblist.Count - 1]; // labelMaxInWave = 2; // #endif @@ -4996,14 +5109,14 @@ namespace DeiNiu.wms.Logical int labelMaxInWave = WmsConstants.MAX_LABEL_DATA_IN_A_WAVE; //一个标签一个波次只能存储40条数据 //#if DEBUG - // if (lblist.Count == 0) + // if (TESTlblist.Count == 0) { TESTlblist.Clear(); initialDebugSetting(); } TESTlblist.Sort(); - // int minId = lblist[0]; - // int maxId = lblist[lblist.Count - 1]; + // int minId = TESTlblist[0]; + // int maxId = TESTlblist[TESTlblist.Count - 1]; // labelMaxInWave = 2; //#endif @@ -5164,16 +5277,16 @@ namespace DeiNiu.wms.Logical foreach (WmsStockRecord rec in lstBulk)//检查电子标签数量是否超过范围 { - if (lblist.Count > 0) + if (TESTlblist.Count > 0) { - int id = new Random().Next(lblist.Count); + int id = new Random().Next(TESTlblist.Count); //#if DEBUG - rec.location.elabId = lblist[id]; //new Random().Next(minId, maxId + 1); //测试。。。随机分配标签id 为 1-3 + rec.location.elabId = TESTlblist[id]; //new Random().Next(minId, maxId + 1); //测试。。。随机分配标签id 为 1-3 - while (lblist.Count > 1 && lastId == rec.location.elabId) + while (TESTlblist.Count > 1 && lastId == rec.location.elabId) { - id = new Random().Next(lblist.Count); - rec.location.elabId = lblist[id]; + id = new Random().Next(TESTlblist.Count); + rec.location.elabId = TESTlblist[id]; } lastId = rec.location.elabId; @@ -5774,7 +5887,7 @@ namespace DeiNiu.wms.Logical public void unloadPickrequests() { // List requests = getWmsOutPickRequest.getRequestsReady4Validation(); - List requests = getWmsOutPickRequest.getRequestObjects(enumOutStockRequestStatus.已装车); + List requests = getWmsOutPickRequest.getRequestObjects(enumOutStockRequestStatus.装车集货); //TODO: get 自提类型的订单,状态为已复核 logPlate.Debug("装车后续处理。。。。开始"); WmsPlateStock_tmp wpt = new WmsPlateStock_tmp(); diff --git a/WcfService1/BLL/lWmsPlate.cs b/WcfService1/BLL/lWmsPlate.cs index 7fa55d0..a555c8c 100644 --- a/WcfService1/BLL/lWmsPlate.cs +++ b/WcfService1/BLL/lWmsPlate.cs @@ -703,7 +703,7 @@ namespace DeiNiu.wms.Logical if (fromP.getParentPlate(fromPlate).ID > 0) { - return enumRegPlateResult.容器已完成合流集货; + return enumRegPlateResult.容器已完成合流集货; //TODO:容器第一次拣货完成装车后,后续拣货不能再装车了?? } @@ -750,9 +750,28 @@ namespace DeiNiu.wms.Logical // List jflows = new List(); - - WmsPlate toP = new WmsPlate(toPlate); + log.Debug("loadTruck 1 tp transNo:"+ toP.transNo); + WmsFlow vFlow = new WmsFlow(toP.transNo); + + + + if (!WmsConstants.AUTO_LOAD_TRUCK_VALID ) + { + if(toP.state > (int)enumPlateStatus.待复核) + { + return enumRegPlateResult.容器已完成复核; + + } + + + + } + + + + + //TODO:容器复用、多次拣货时,容器内物品量方存在重复统计的问题 int lineId = fromP.lineId; if (fromP.ID == 0 || fromP.volume == 0) //临时容器 { @@ -769,12 +788,20 @@ namespace DeiNiu.wms.Logical } - DataTable dt1 = ptmp.getOutPort(ptmp.outPortId); + DataTable dt1 = ptmp.getOutPort(ptmp.outPortId); foreach (DataRow dr1 in dt1.Rows) { - lineId = Convert.ToInt32(dr1["lineId"].ToString()); - fromP.volume += Convert.ToDecimal(dr1["volCm"].ToString()); - fromP.load += Convert.ToDecimal(dr1["weight"].ToString()); + try + { + lineId = Convert.ToInt32(dr1["lineId"].ToString()); + fromP.volume += Convert.ToDecimal(dr1["volCm"].ToString()); + fromP.load += Convert.ToDecimal(dr1["weight"].ToString()); + } + catch (Exception ex) + { + log.Error(ex); + } + break; } /* @@ -844,9 +871,12 @@ namespace DeiNiu.wms.Logical new lTmsTranRequest(operId).createSimpleTran(requests, toP);// req.transNo = toP.transNo; // return enumRegPlateResult.完成装车集货后才能装车; + + } else { + int taskcnt = 0; foreach (WmsOutPickRequest op in requests) { if (string.IsNullOrEmpty(op.transNo)) @@ -861,8 +891,17 @@ namespace DeiNiu.wms.Logical td.transNo = toP.transNo; td.operater = operId; td.Add(); - } + taskcnt++; + + } + } + + if (vFlow.ID > 0 && taskcnt>0) //增加装车复核任务数 + { + vFlow.taskCnt+=taskcnt; + vFlow.Update(); + log.Debug(string.Format("装车复核任务数增加 {0}个",taskcnt)); } } @@ -895,7 +934,9 @@ namespace DeiNiu.wms.Logical { if (req.state == (int)enumOutStockRequestStatus.集货完成) { - req.state = (int)enumOutStockRequestStatus.已装车; + req.state = (int)enumOutStockRequestStatus.装车集货; + + req.Update(); } } @@ -986,6 +1027,13 @@ namespace DeiNiu.wms.Logical return enumRegPlateResult.已发车; } + if (!WmsConstants.AUTO_LOAD_TRUCK_VALID) + { + if(plate.state == (int)enumPlateStatus.待复核) + { + return enumRegPlateResult.发车待复核; + } + } if (WmsConstants.IS_PLATE_IN_LINE) diff --git a/WcfService1/BLL/lbase.cs b/WcfService1/BLL/lbase.cs index 20d3a90..a0ea804 100644 --- a/WcfService1/BLL/lbase.cs +++ b/WcfService1/BLL/lbase.cs @@ -415,7 +415,15 @@ namespace DeiNiu.wms.Logical case 41: WmsConstants.OUT_BULK_REP_FROM_BATCH = n.isOn; break; - + case 42: + WmsConstants.AUTO_LOAD_TRUCK = n.isOn; + break; + case 43: + WmsConstants.AUTO_LOAD_TRUCK_VALID = n.isOn; + break; + + + default: break; } diff --git a/WcfService1/IWmsOutPickRequest.cs b/WcfService1/IWmsOutPickRequest.cs index c3b1c26..eee7cb3 100644 --- a/WcfService1/IWmsOutPickRequest.cs +++ b/WcfService1/IWmsOutPickRequest.cs @@ -118,7 +118,7 @@ namespace DeiNiu.Wcf [OperationContract] DataTable getPackingDataByPickOrderNo(string pickOrderNo); [OperationContract] - int updateSeedingStatus(string seedsPickNo, string goodsId, string batch, int labId, int address, decimal count, int checkedBy2); + int updateSeedingStatus(string seedsPickNo, string goodsId, string batch, int labId, int address, decimal count, int checkedBy2); [OperationContract] DataTable getSeedsPackingData(int desk); diff --git a/WcfService1/Log4Net.config b/WcfService1/Log4Net.config index 6c76715..8bdbe99 100644 --- a/WcfService1/Log4Net.config +++ b/WcfService1/Log4Net.config @@ -40,7 +40,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -173,7 +173,7 @@ - + diff --git a/WcfService1/MobileService.svc.cs b/WcfService1/MobileService.svc.cs index 5a80a48..a4dbc8f 100644 --- a/WcfService1/MobileService.svc.cs +++ b/WcfService1/MobileService.svc.cs @@ -252,7 +252,7 @@ namespace DeiNiu.Wcf } public DataTable getLocation(string locId) { - return loc.getWmslocation.getLocations(locId); + return loc.getWmslocation.getLocationDt(locId); } public DataTable getStockCompareErp(string goodsId, string barcode) diff --git a/WcfService1/Properties/PublishProfiles/IISProfile1.pubxml.user b/WcfService1/Properties/PublishProfiles/IISProfile1.pubxml.user index ccd7d9d..04dc54a 100644 --- a/WcfService1/Properties/PublishProfiles/IISProfile1.pubxml.user +++ b/WcfService1/Properties/PublishProfiles/IISProfile1.pubxml.user @@ -7,7 +7,7 @@ - True|2024-11-04T14:27:29.3756940Z||;True|2024-11-04T22:24:17.0651411+08:00||;True|2024-11-04T22:19:38.7879418+08:00||;True|2024-11-04T22:05:56.8271654+08:00||;True|2024-11-04T21:50:07.9758208+08:00||;True|2024-11-04T21:18:16.9346004+08:00||;True|2024-11-04T10:58:22.6037381+08:00||;True|2024-11-03T21:34:43.5638618+08:00||;True|2024-11-03T18:48:46.3810583+08:00||;True|2024-11-03T18:33:09.1693025+08:00||;True|2024-11-03T18:07:14.9554943+08:00||;True|2024-11-03T17:33:33.9400438+08:00||;True|2024-11-03T15:57:22.7762130+08:00||;True|2024-11-03T13:42:26.2482526+08:00||;False|2024-11-03T13:42:08.2682676+08:00||;True|2024-11-02T20:34:37.6850648+08:00||;True|2024-11-02T20:33:22.3223896+08:00||;True|2024-11-02T19:45:31.8188247+08:00||;True|2024-11-02T18:39:44.9569699+08:00||;True|2024-11-02T18:34:57.3571628+08:00||;True|2024-11-01T22:49:02.9367010+08:00||;True|2024-11-01T10:04:21.3678006+08:00||;True|2024-11-01T10:03:01.3411346+08:00||;True|2024-11-01T09:44:00.7350827+08:00||;True|2024-11-01T09:12:32.0665339+08:00||;True|2024-10-31T19:45:04.7206262+08:00||;True|2024-10-31T18:23:12.1224608+08:00||;True|2024-10-31T18:12:20.0817368+08:00||;True|2024-10-31T13:17:42.3078407+08:00||;True|2024-10-31T13:02:30.9943804+08:00||;True|2024-10-31T12:10:37.8182773+08:00||;True|2024-10-31T11:33:30.5543070+08:00||;True|2024-10-31T00:18:42.4972597+08:00||;True|2024-10-30T22:38:53.0134018+08:00||;True|2024-10-30T20:40:18.0941869+08:00||;True|2024-10-30T20:12:15.2067911+08:00||;True|2024-10-30T19:13:17.7390813+08:00||;True|2024-10-30T12:56:46.8481080+08:00||;True|2024-10-30T12:35:52.6493094+08:00||;True|2024-10-30T11:22:33.1999170+08:00||;True|2024-10-29T20:05:23.8279373+08:00||;True|2024-10-29T20:02:38.2307412+08:00||;True|2024-10-10T11:24:12.7545755+08:00||;True|2024-10-09T12:06:40.7152367+08:00||;True|2024-05-27T10:56:59.0680190+08:00||;True|2024-04-16T15:21:29.2941280+08:00||;True|2024-04-13T08:25:11.6297414+08:00||;True|2024-04-12T21:14:14.3762458+08:00||;True|2024-04-12T20:59:04.3716416+08:00||;True|2024-04-12T20:58:10.9181928+08:00||;True|2024-04-12T20:57:19.3920429+08:00||;True|2024-04-12T17:05:38.8579277+08:00||;True|2024-04-12T16:59:27.1357133+08:00||;True|2024-04-12T16:15:01.3100281+08:00||;True|2024-04-12T16:14:40.1163395+08:00||;True|2024-04-11T19:33:13.0403449+08:00||;True|2024-04-11T19:00:16.9572092+08:00||;True|2024-04-11T18:16:37.3809917+08:00||;True|2024-04-11T15:28:45.6815845+08:00||;True|2024-04-11T15:26:29.8024648+08:00||;True|2024-04-11T11:15:58.5104690+08:00||;True|2024-04-11T09:19:02.5048679+08:00||;True|2024-04-10T20:36:42.3021582+08:00||;True|2024-04-10T20:13:08.6915913+08:00||;True|2024-04-10T15:17:58.1748530+08:00||;True|2024-04-09T08:41:20.5238496+08:00||;True|2024-04-08T23:00:50.8373975+08:00||;True|2024-04-08T15:59:58.6130543+08:00||;True|2024-04-08T15:59:38.9278010+08:00||;True|2024-04-08T10:07:10.2128467+08:00||;True|2024-04-08T10:06:25.4395457+08:00||;True|2024-04-05T16:16:05.9765142+08:00||;True|2024-04-03T16:50:37.2989554+08:00||;True|2024-04-03T16:50:15.1099921+08:00||;True|2024-04-01T16:50:03.7331925+08:00||;True|2024-04-01T16:46:10.4004854+08:00||;True|2024-04-01T16:39:16.5382856+08:00||;True|2024-04-01T16:38:59.0060858+08:00||;False|2024-04-01T16:38:45.9060078+08:00||;True|2024-04-01T14:22:39.2007429+08:00||;True|2024-04-01T13:36:25.8859724+08:00||;True|2024-04-01T09:45:29.0972587+08:00||;True|2024-04-01T09:44:56.4382067+08:00||;True|2024-03-31T15:45:08.9316183+08:00||;True|2024-03-30T23:21:11.1074338+08:00||;True|2024-03-30T23:16:19.4987497+08:00||;True|2024-03-30T22:29:01.0587645+08:00||;True|2024-03-30T22:27:50.4331636+08:00||;True|2024-03-29T13:20:54.5697685+08:00||;True|2024-03-28T09:07:05.2532582+08:00||;True|2024-03-28T09:01:27.4300633+08:00||;True|2024-03-27T16:32:37.1048143+08:00||;True|2024-03-27T11:10:17.8351527+08:00||;True|2024-03-27T11:09:08.3753820+08:00||;True|2024-03-27T10:55:29.4411823+08:00||;True|2024-03-27T10:30:30.1003703+08:00||;True|2024-03-26T23:12:32.2851963+08:00||;True|2024-03-26T17:37:31.4980906+08:00||;True|2024-03-26T12:51:33.1688124+08:00||;True|2024-03-26T12:50:01.8312458+08:00||; + True|2024-11-15T06:43:27.7666188Z||;True|2024-11-15T13:41:55.9669432+08:00||;True|2024-11-15T10:21:44.9129634+08:00||;True|2024-11-15T01:00:31.2339119+08:00||;True|2024-11-15T00:17:29.3207532+08:00||;True|2024-11-14T20:49:31.7616349+08:00||;True|2024-11-14T09:06:01.2742901+08:00||;True|2024-11-14T00:04:51.5979094+08:00||;True|2024-11-13T23:48:11.5484821+08:00||;True|2024-11-13T23:39:20.2946116+08:00||;True|2024-11-13T23:21:08.2354809+08:00||;True|2024-11-13T23:06:39.0614447+08:00||;True|2024-11-13T22:05:01.9568502+08:00||;True|2024-11-12T16:34:51.0951416+08:00||;True|2024-11-04T22:27:29.3756940+08:00||;True|2024-11-04T22:24:17.0651411+08:00||;True|2024-11-04T22:19:38.7879418+08:00||;True|2024-11-04T22:05:56.8271654+08:00||;True|2024-11-04T21:50:07.9758208+08:00||;True|2024-11-04T21:18:16.9346004+08:00||;True|2024-11-04T10:58:22.6037381+08:00||;True|2024-11-03T21:34:43.5638618+08:00||;True|2024-11-03T18:48:46.3810583+08:00||;True|2024-11-03T18:33:09.1693025+08:00||;True|2024-11-03T18:07:14.9554943+08:00||;True|2024-11-03T17:33:33.9400438+08:00||;True|2024-11-03T15:57:22.7762130+08:00||;True|2024-11-03T13:42:26.2482526+08:00||;False|2024-11-03T13:42:08.2682676+08:00||;True|2024-11-02T20:34:37.6850648+08:00||;True|2024-11-02T20:33:22.3223896+08:00||;True|2024-11-02T19:45:31.8188247+08:00||;True|2024-11-02T18:39:44.9569699+08:00||;True|2024-11-02T18:34:57.3571628+08:00||;True|2024-11-01T22:49:02.9367010+08:00||;True|2024-11-01T10:04:21.3678006+08:00||;True|2024-11-01T10:03:01.3411346+08:00||;True|2024-11-01T09:44:00.7350827+08:00||;True|2024-11-01T09:12:32.0665339+08:00||;True|2024-10-31T19:45:04.7206262+08:00||;True|2024-10-31T18:23:12.1224608+08:00||;True|2024-10-31T18:12:20.0817368+08:00||;True|2024-10-31T13:17:42.3078407+08:00||;True|2024-10-31T13:02:30.9943804+08:00||;True|2024-10-31T12:10:37.8182773+08:00||;True|2024-10-31T11:33:30.5543070+08:00||;True|2024-10-31T00:18:42.4972597+08:00||;True|2024-10-30T22:38:53.0134018+08:00||;True|2024-10-30T20:40:18.0941869+08:00||;True|2024-10-30T20:12:15.2067911+08:00||;True|2024-10-30T19:13:17.7390813+08:00||;True|2024-10-30T12:56:46.8481080+08:00||;True|2024-10-30T12:35:52.6493094+08:00||;True|2024-10-30T11:22:33.1999170+08:00||;True|2024-10-29T20:05:23.8279373+08:00||;True|2024-10-29T20:02:38.2307412+08:00||;True|2024-10-10T11:24:12.7545755+08:00||;True|2024-10-09T12:06:40.7152367+08:00||;True|2024-05-27T10:56:59.0680190+08:00||;True|2024-04-16T15:21:29.2941280+08:00||;True|2024-04-13T08:25:11.6297414+08:00||;True|2024-04-12T21:14:14.3762458+08:00||;True|2024-04-12T20:59:04.3716416+08:00||;True|2024-04-12T20:58:10.9181928+08:00||;True|2024-04-12T20:57:19.3920429+08:00||;True|2024-04-12T17:05:38.8579277+08:00||;True|2024-04-12T16:59:27.1357133+08:00||;True|2024-04-12T16:15:01.3100281+08:00||;True|2024-04-12T16:14:40.1163395+08:00||;True|2024-04-11T19:33:13.0403449+08:00||;True|2024-04-11T19:00:16.9572092+08:00||;True|2024-04-11T18:16:37.3809917+08:00||;True|2024-04-11T15:28:45.6815845+08:00||;True|2024-04-11T15:26:29.8024648+08:00||;True|2024-04-11T11:15:58.5104690+08:00||;True|2024-04-11T09:19:02.5048679+08:00||;True|2024-04-10T20:36:42.3021582+08:00||;True|2024-04-10T20:13:08.6915913+08:00||;True|2024-04-10T15:17:58.1748530+08:00||;True|2024-04-09T08:41:20.5238496+08:00||;True|2024-04-08T23:00:50.8373975+08:00||;True|2024-04-08T15:59:58.6130543+08:00||;True|2024-04-08T15:59:38.9278010+08:00||;True|2024-04-08T10:07:10.2128467+08:00||;True|2024-04-08T10:06:25.4395457+08:00||;True|2024-04-05T16:16:05.9765142+08:00||;True|2024-04-03T16:50:37.2989554+08:00||;True|2024-04-03T16:50:15.1099921+08:00||;True|2024-04-01T16:50:03.7331925+08:00||;True|2024-04-01T16:46:10.4004854+08:00||;True|2024-04-01T16:39:16.5382856+08:00||;True|2024-04-01T16:38:59.0060858+08:00||;False|2024-04-01T16:38:45.9060078+08:00||;True|2024-04-01T14:22:39.2007429+08:00||;True|2024-04-01T13:36:25.8859724+08:00||;True|2024-04-01T09:45:29.0972587+08:00||;True|2024-04-01T09:44:56.4382067+08:00||;True|2024-03-31T15:45:08.9316183+08:00||;True|2024-03-30T23:21:11.1074338+08:00||;True|2024-03-30T23:16:19.4987497+08:00||; \ No newline at end of file diff --git a/WcfService1/WmsOutPickRequestService.svc.cs b/WcfService1/WmsOutPickRequestService.svc.cs index 6d1562b..daa8a9b 100644 --- a/WcfService1/WmsOutPickRequestService.svc.cs +++ b/WcfService1/WmsOutPickRequestService.svc.cs @@ -278,7 +278,9 @@ namespace DeiNiu.Wcf } public DataTable getPickDetailByPickOrderNo(string pickOrder) { - return lop.getWmsOutPickRequest.getPickDetailByPickOrderNo(pickOrder).Tables[0]; + + return lopp.getWmsOutPickPort.getPickDetails(pickOrder); + // return lop.getWmsOutPickRequest.getPickDetailByPickOrderNo(pickOrder).Tables[0]; } public DataTable getPickDetailBySeedsPickOrderNo(string pickOrder, int skuId) { @@ -402,7 +404,7 @@ namespace DeiNiu.Wcf public int updateSeedingStatus(string seedsPickNo, string goodsId, string batch, int labId, int address, decimal count, int checkedBy2) { LogHelper.debug(typeof(WmsOutPickRequestService), "begin to update seeding pick.....>"); - return (int)lop.updateSeedingStatus(seedsPickNo, goodsId, batch, labId, address, count, checkedBy2); + return (int)lop.updateSeedingStatus(seedsPickNo, goodsId, batch, labId, address, count, checkedBy2); } public DataTable getSeedsPackingData(int desk) diff --git a/WcfService1/WmsWcfService.csproj.user b/WcfService1/WmsWcfService.csproj.user index 5e44a85..e879aa3 100644 --- a/WcfService1/WmsWcfService.csproj.user +++ b/WcfService1/WmsWcfService.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true diff --git a/WcfServiceErp/WcfServiceErp.csproj.user b/WcfServiceErp/WcfServiceErp.csproj.user index 1914c59..e91f2bc 100644 --- a/WcfServiceErp/WcfServiceErp.csproj.user +++ b/WcfServiceErp/WcfServiceErp.csproj.user @@ -8,7 +8,7 @@ - Release|Any CPU + Debug|Any CPU IISProfile diff --git a/WcfServicePortal/WcfServicePortal.csproj.user b/WcfServicePortal/WcfServicePortal.csproj.user index ab6aaed..5d1220f 100644 --- a/WcfServicePortal/WcfServicePortal.csproj.user +++ b/WcfServicePortal/WcfServicePortal.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true diff --git a/epickService/epickService.csproj.user b/epickService/epickService.csproj.user index 7199c13..c41d0f2 100644 --- a/epickService/epickService.csproj.user +++ b/epickService/epickService.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU false diff --git a/winform/utils/elelable/light.cs b/winform/utils/elelable/light.cs index 63a5f48..129f3c0 100644 --- a/winform/utils/elelable/light.cs +++ b/winform/utils/elelable/light.cs @@ -28,7 +28,7 @@ namespace Deiniu.win.elelab //internal static int ele_return_receive_address = 0; //internal static int ele_return_manage_address = 0; //internal static int ele_return_max = 10000; - + internal static bool begain_pick = false; // internal static bool Threads_state; // internal static bool out_start_state; @@ -42,11 +42,11 @@ namespace Deiniu.win.elelab internal static int[] seed_part_task = new int[100];//分区名称 分区结果 0 没有任务 正在处理任务 internal static int[] tran_part_task = new int[100];//分区名称 分区结果 0 没有任务 正在处理任务 - // internal static int port_max = 100; + // internal static int port_max = 100; internal static bool pick_task = true; - internal static List activeComports = new List() ;//激活的com口 + internal static List activeComports = new List();//激活的com口 public static bool resetDevice(int port) { if (elelab.coms.com_manage[port] != null) @@ -87,16 +87,16 @@ namespace Deiniu.win.elelab } else if (str.Count == 2) { - int len = Convert.ToInt16(str[0]); - int len1 = Convert.ToInt16(str[1]); + int len = Convert.ToInt16(str[0]); + int len1 = Convert.ToInt16(str[1]); len = len * 10 + len1; return Convert.ToByte(len); } else if (str.Count == 3) { - int len = Convert.ToInt16(str[0]); - int len1 = Convert.ToInt16(str[1]); - int len2 = Convert.ToInt16(str[2]); + int len = Convert.ToInt16(str[0]); + int len1 = Convert.ToInt16(str[1]); + int len2 = Convert.ToInt16(str[2]); len = len * 100 + len1 * 10 + len2; return Convert.ToByte(len); @@ -118,12 +118,12 @@ namespace Deiniu.win.elelab return true; } - + private static void init_sys_port(enumLabelPickType pickType) { - // activeComports.Clear(); + // activeComports.Clear(); clear_order order = new clear_order(); int port; for (int i = 0; i < coms.com_count; i++)//init com0-10 @@ -131,17 +131,17 @@ namespace Deiniu.win.elelab int com = Convert.ToByte(i); if (elelab.coms.initCom(com, true) == true) { - port = Convert.ToInt16(i); + port = Convert.ToInt16(i); // order = Convert.ToInt16(dt.Rows[i]["ele_order"]); order.order = Convert.ToByte(i); - order.state =Convert.ToByte((int)pickType); + order.state = Convert.ToByte((int)pickType); if (coms.com_manage[port].clear_order(order)) { - activeComports.Add( port); + activeComports.Add(port); } } } - + init_pick(); // clear_order(dt); } @@ -151,7 +151,7 @@ namespace Deiniu.win.elelab clear_order order = new clear_order(); for (int i = 0; i < dt.Rows.Count; i++) { - port = Convert.ToInt16(dt.Rows[i]["port"]); + port = Convert.ToInt16(dt.Rows[i]["port"]); // order = Convert.ToInt16(dt.Rows[i]["ele_order"]); order.order = Convert.ToByte(dt.Rows[i]["ele_order"]); order.state = 1; @@ -195,14 +195,14 @@ namespace Deiniu.win.elelab internal static void wake_thread() { - // if ( Convert.ToInt16(pick_work.ThreadState) == 68) + // if ( Convert.ToInt16(pick_work.ThreadState) == 68) { try { - if (pick_work!=null && Convert.ToInt16(pick_work.ThreadState) == 68) - pick_work.Resume(); + if (pick_work != null && Convert.ToInt16(pick_work.ThreadState) == 68) + pick_work.Resume(); } - catch(Exception er) + catch (Exception er) { LogHelper.WriteLog(typeof(light), er); @@ -213,20 +213,20 @@ namespace Deiniu.win.elelab internal static void wake_support_thread() { - if ( Convert.ToInt16(pick_work_support.ThreadState) == 68) + if (Convert.ToInt16(pick_work_support.ThreadState) == 68) pick_work_support.Resume(); } private static void get_data(string data, out int dot_station, out int total_num) { data = Convert.ToDouble(data).ToString(); string[] count = data.Split('.');//Out_count - int full = Convert.ToInt16(count[0]); + int full = Convert.ToInt16(count[0]); int dot_num; dot_station = 0; total_num = full; if (count.Length > 1) { - dot_num = Convert.ToInt16(count[1]); + dot_num = Convert.ToInt16(count[1]); if (dot_num > 0) { if (dot_num < 10) @@ -256,7 +256,7 @@ namespace Deiniu.win.elelab } } } - + internal static bool make_data(DataTable ds, byte led_color, byte ele_order_id, byte port, string[] ele_lab_id, string[] ele_address, string[] Out_count, byte type) { @@ -277,7 +277,7 @@ namespace Deiniu.win.elelab { ele_data_comment[j].channel_id = 0;//暂不使用 默认为0 ele_data_comment[j].dis_type = Convert.ToByte(ds.Rows[j]["color"].ToString()); ;// 灯的颜色 0 不亮 1 红灯 2 绿灯 3 蓝灯 4 红闪 5 绿闪 6 蓝闪 - ele_data_comment[j].ele_id = Convert.ToInt16(ds.Rows[j]["ele_lab_id"].ToString()); + ele_data_comment[j].ele_id = Convert.ToInt16(ds.Rows[j]["ele_lab_id"].ToString()); ele_data_comment[j].kucun_id = 0; ele_data_comment[j].little_ele_id = Convert.ToByte(ds.Rows[j]["ele_address"].ToString()); ele_data_comment[j].order = Convert.ToByte(ele_order_id); @@ -297,7 +297,7 @@ namespace Deiniu.win.elelab ele_data_comment[j].WarehousingID = 0; ele_lab[ele_data_comment[j].ele_id, ele_data_comment[j].little_ele_id] = type; - statuKeys.Add(Util.getLightKey(ele_data_comment[j].dis_type, Convert.ToInt16(ds.Rows[j]["ele_lab_id"].ToString()), Convert.ToByte(ds.Rows[j]["ele_address"].ToString()))); + statuKeys.Add(Util.getLightKey(ele_data_comment[j].dis_type, Convert.ToInt16(ds.Rows[j]["ele_lab_id"].ToString()), Convert.ToByte(ds.Rows[j]["ele_address"].ToString()))); }// //向串口发送数据 clear_order order = new clear_order(); @@ -305,9 +305,9 @@ namespace Deiniu.win.elelab order.state = 1; if (coms.com_manage[port].clear_order(order) == false) { - LogHelper.WriteLog(typeof(light), string.Format(" port {0} clear fail",port)); + LogHelper.WriteLog(typeof(light), string.Format(" port {0} clear fail", port)); //MessageBox.Show("clear fail"); - return false; + return false; } //elelab.ele_base.usart_send_state = false; //ele .usart_send_state = false; while (coms.com_manage[port].send_state_finish == false) ; @@ -321,15 +321,15 @@ namespace Deiniu.win.elelab coms.com_manage[port].send_state_finish = true; coms.com_manage[port].usart_send_state = true; coms.com_manage[port].usart_send_result = ""; - return false; + return false; } string result; bool isLightsSuccess = coms.com_manage[port].wait_ack(out result); - foreach(string key in statuKeys){ + foreach (string key in statuKeys) { WmsConstants.WAVE_CURRENT_LIGHTS_STATUS[key] = isLightsSuccess; WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = false; - } + } return isLightsSuccess; } else @@ -339,14 +339,14 @@ namespace Deiniu.win.elelab { ele_data_comment[j].channel_id = 0;//暂不使用 默认为0 ele_data_comment[j].dis_type = led_color;// 灯的颜色 0 不亮 1 红灯 2 绿灯 3 蓝灯 4 红闪 5 绿闪 6 蓝闪 - ele_data_comment[j].ele_id = Convert.ToInt16(ele_lab_id[j].ToString()); + ele_data_comment[j].ele_id = Convert.ToInt16(ele_lab_id[j].ToString()); ele_data_comment[j].kucun_id = 0; ele_data_comment[j].little_ele_id = Convert.ToByte(ele_address[j].ToString()); ele_data_comment[j].order = Convert.ToByte(ele_order_id); ele_data_comment[j].port = "1"; ele_data_comment[j].receive_count = 0; string[] count = Out_count[j].ToString().Split('.'); - ele_data_comment[j].send_count = Convert.ToInt16(count[0]);//.ToString()); + ele_data_comment[j].send_count = Convert.ToInt16(count[0]);//.ToString()); ele_data_comment[j].state = 1; ele_data_comment[j].WarehousingID = 0; ele_lab[ele_data_comment[j].ele_id, ele_data_comment[j].little_ele_id] = type; @@ -367,7 +367,7 @@ namespace Deiniu.win.elelab } - void speak(string msg) + void speak(string msg) { SpeechSynthesizer voice = new SpeechSynthesizer(); //创建语音实例 @@ -376,7 +376,7 @@ namespace Deiniu.win.elelab voice.SpeakAsync(msg); //播放指定的字符串,这是异步朗读 } - internal static bool clsDisplay(byte port, byte ele_order_id) + internal static bool clsDisplay(byte port, byte ele_order_id) { clear_order order = new clear_order(); order.order = Convert.ToByte(ele_order_id); @@ -391,7 +391,7 @@ namespace Deiniu.win.elelab coms.com_manage[port].write_reset_device(); return true; } - + private static void read_single(int address) { while (coms.com_manage[address].manage_address != coms.com_manage[address].receive_address) @@ -445,114 +445,115 @@ namespace Deiniu.win.elelab return result; } - // static WmsOutPickLable outPick = new WmsOutPickLable(); - // static lWmsOutPickRequest lpickRequest = new lWmsOutPickRequest(); - /// - /// send back from elabel - /// + // static WmsOutPickLable outPick = new WmsOutPickLable(); + // static lWmsOutPickRequest lpickRequest = new lWmsOutPickRequest(); + /// + /// send back from elabel + /// internal static void dataSent() { List statuKeys = new List(); - // string sql, table; + // string sql, table; int ele_id; int little_ele_id; string receive_count; string color; - // WmsOutPickLable outPick = new WmsOutPickLable(); - - enumLabelPickType pickType =enumLabelPickType.pick; //同一个控制器应该拣选类型唯一 - // int cnt = 0; + // WmsOutPickLable outPick = new WmsOutPickLable(); + + enumLabelPickType pickType = enumLabelPickType.pick; //同一个控制器应该拣选类型唯一 + // int cnt = 0; Dictionary tmp = WmsConstants.WAVE_CURRENT_PICK_STATUS; //LogHelper.debug(typeof(light),"-----------------------------new data---------------------------"); while (receive_add != manage_add) { - // cnt++; + // cnt++; - receive_count = receiveDataDot( Convert.ToInt16(ele_lab_data[manage_add].receive_count), Convert.ToInt16(ele_lab_data[manage_add].dot)); + receive_count = receiveDataDot(Convert.ToInt16(ele_lab_data[manage_add].receive_count), Convert.ToInt16(ele_lab_data[manage_add].dot)); // ele_lab_data[receive_add] //receive_count = "0"; - ele_id = Convert.ToInt16(ele_lab_data[manage_add].ele_id.ToString()); //label id - color = ele_lab_data[manage_add].order.ToString();//color - little_ele_id = Convert.ToInt16(ele_lab_data[manage_add].little_ele_id.ToString()); //ele address + ele_id = Convert.ToInt16(ele_lab_data[manage_add].ele_id.ToString()); //label id + color = ele_lab_data[manage_add].order.ToString();//color + little_ele_id = Convert.ToInt16(ele_lab_data[manage_add].little_ele_id.ToString()); //ele address int state = elelab.light.ele_lab[ele_id, little_ele_id]; pickType = (enumLabelPickType)state; - - string key = Util.getLightKey( Convert.ToInt16(color), ele_id, little_ele_id); - LogHelper.debug(typeof(light), string.Format("current key {0}, waveNo {1}", key, WmsConstants.WAVE_CURRENT_ORDER)); - //WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = true; -//#if debug - //speak(key); -//#endif - // LogHelper.debug(typeof(light), string.Format("receive_add {0}, manage_add {1}", receive_add, manage_add)); - // while (receive_add != manage_add) - // { + string key = Util.getLightKey(Convert.ToInt16(color), ele_id, little_ele_id); + LogHelper.debug(typeof(light), string.Format("current key {0}, waveNo {1}", key, WmsConstants.WAVE_CURRENT_ORDER)); + //WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = true; + //#if debug + //speak(key); + //#endif + // LogHelper.debug(typeof(light), string.Format("receive_add {0}, manage_add {1}", receive_add, manage_add)); + + // while (receive_add != manage_add) + // { switch (pickType) { case enumLabelPickType.pick: int trycnt = 0; - if (WmsConstants.WAVE_CURRENT_PICK_STATUS.ContainsKey(key) ) + if (WmsConstants.WAVE_CURRENT_PICK_STATUS.ContainsKey(key)) { - // LogHelper.debug(typeof(light), string.Format(" !!!!!!!!!..........{0} exist in pick cache ", key)); - // + // LogHelper.debug(typeof(light), string.Format(" !!!!!!!!!..........{0} exist in pick cache ", key)); + // + + LogHelper.debug(typeof(light), string.Format(" {0} value is {1} ", key, WmsConstants.WAVE_CURRENT_PICK_STATUS[key])); + + + if (WmsConstants.WAVE_CURRENT_PICK_STATUS[key]) + { + manage_add++; + if (manage_add >= add_max) + { + manage_add = 0; + } - LogHelper.debug(typeof(light), string.Format(" {0} value is {1} ", key, WmsConstants.WAVE_CURRENT_PICK_STATUS[key])); - - - if (WmsConstants.WAVE_CURRENT_PICK_STATUS[key]) - { - manage_add++; - if (manage_add >= add_max) - { - manage_add = 0; - } - continue; } - - } - try - { - updatePickStatus(key, color, ele_id, little_ele_id, receive_count); - } - catch (DeiNiuTimeOutException e) + } + try + { + + updatePickStatus(key, color, ele_id, little_ele_id, receive_count); + } + catch (DeiNiuTimeOutException e) + { + Login lg = new Login(); + lg.ShowDialog(); + } + catch (Exception e) + { + LogHelper.WriteLog(typeof(light), e); + WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = false; + trycnt++; + LogHelper.debug(typeof(light), string.Format(" trying cnt {0} ", trycnt)); + + + if (trycnt < 3) { - Login lg = new Login(); - lg.ShowDialog(); - } - catch (Exception e) - { - LogHelper.WriteLog(typeof(light), e); - WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = false; - trycnt++; - LogHelper.debug(typeof(light), string.Format(" trying cnt {0} ", trycnt )); - - - if (trycnt < 3) + try { - try - { - updatePickStatus(key, color, ele_id, little_ele_id, receive_count); - } - catch(Exception err) { - LogHelper.WriteLog(typeof(light), err); - } + updatePickStatus(key, color, ele_id, little_ele_id, receive_count); + } + catch (Exception err) + { + LogHelper.WriteLog(typeof(light), err); } - - // throw e; } - + + // throw e; + } + break; case enumLabelPickType.seed: - - key = Util.getLightKey( Convert.ToInt16(color), ele_id, WmsConstants.CURRENT_SEEDS_GOOD_SKUID); - + + key = Util.getLightKey(Convert.ToInt16(color), ele_id, WmsConstants.CURRENT_SEEDS_GOOD_SKUID); + if (WmsConstants.SEEDS_CURRENT_PICK_STATUS.ContainsKey(key)) { if (WmsConstants.SEEDS_CURRENT_PICK_STATUS[key]) @@ -564,24 +565,24 @@ namespace Deiniu.win.elelab } continue; } - } - using (WmsOutPickRequestClient client = new WmsOutPickRequestClient("BasicHttpBinding_IWmsOutPickRequest", - string.Format("http://{0}/{1}", Park.svrUrl, "WmsOutPickRequestService.svc"))) - + } + using (WmsOutPickRequestClient client = new WmsOutPickRequestClient("BasicHttpBinding_IWmsOutPickRequest", + string.Format("http://{0}/{1}", Park.svrUrl, "WmsOutPickRequestService.svc"))) + { try - { - // client.updateValidBulkPickStatus(407,1,"test seed",0,100,2788); - enumOutSeedsStatus status = (enumOutSeedsStatus)client.updateSeedingStatus(WmsConstants.CURRENT_SEEDS_NO, - WmsConstants.CURRENT_SEEDS_GOODSID, WmsConstants.CURRENT_SEEDS_GOOD_BATCH, ele_id, little_ele_id, + { + // client.updateValidBulkPickStatus(407,1,"test seed",0,100,2788); + enumOutSeedsStatus status = (enumOutSeedsStatus)client.updateSeedingStatus(CURRENT_SEEDS_NO, + CURRENT_SEEDS_GOODSID, CURRENT_SEEDS_GOOD_BATCH, ele_id, little_ele_id, Convert.ToDecimal(receive_count), WmsConstants.CHECKED_BY_2_ID);//本次拣选完毕 client.Close(); - bool result =(int)status > (int)enumOutSeedsStatus.处理失败; + bool result = (int)status > (int)enumOutSeedsStatus.处理失败; LogHelper.debug(typeof(light), string.Format("updated record result {3} ----by elabelId {0}, address {1},receiveCnt {2} ", ele_id, little_ele_id, receive_count, status)); LogHelper.debug(typeof(light), string.Format("key {0}, result {1}", key, result)); - WmsConstants.SEEDS_CURRENT_PICK_STATUS[key] =result ;// isPickOrderFinished; + WmsConstants.SEEDS_CURRENT_PICK_STATUS[key] = result;// isPickOrderFinished; if (WmsConstants.SEEDS_CURRENT_PICK_STATUS[key]) { @@ -592,43 +593,46 @@ namespace Deiniu.win.elelab { if (seedsGoodItemValided != null) { - // seedsGoodItemValided(); + // seedsGoodItemValided(); } } if (status == enumOutSeedsStatus.分拣单完成分播 || status == enumOutSeedsStatus.播种单完成分播) { + LogHelper.debug(typeof(light), string.Format(" labid {0} 对应分拣单完成分拣, to print.... ", ele_id )); if (printLabPack != null) { printLabPack(ele_id); } if (seedsGoodItemValided != null) { - // seedsGoodItemValided(); + // seedsGoodItemValided(); } - } - + } + } catch (DeiNiuTimeOutException e) { + LogHelper.debug(typeof(light), string.Format("{0} 出错了。。。{1}", key, e.Message)); Login lg = new Login(); lg.ShowDialog(); } catch (Exception e) { + LogHelper.debug(typeof(light), string.Format("{0} 出错了。。。{1}", key, e.Message)); LogHelper.WriteLog(typeof(light), e); } } - - manage_add++; - // manage_add = receive_add; - if (manage_add >= add_max) - { - manage_add = 0; - } - - + + manage_add++; + // manage_add = receive_add; + if (manage_add >= add_max) + { + manage_add = 0; + } + + break; case enumLabelPickType.tran: @@ -685,7 +689,7 @@ namespace Deiniu.win.elelab */ } - + /* manage_add++; if (manage_add >= add_max) @@ -693,7 +697,7 @@ namespace Deiniu.win.elelab manage_add = 0; } * */ - + } //统一处理。。。。 /* @@ -721,10 +725,10 @@ namespace Deiniu.win.elelab break; } */ - + } - + private static void updatePickStatus(string key, string color, int ele_id, int little_ele_id, string receive_count) { using (WmsOutPickRequestClient client = new WmsOutPickRequestClient("BasicHttpBinding_IWmsOutPickRequest", @@ -732,7 +736,7 @@ namespace Deiniu.win.elelab { LogHelper.debug(typeof(light), string.Format(" ..........{0} trying to update db ", key)); - WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = client.updatePickingStatus( Convert.ToInt16(color), ele_id, little_ele_id, Convert.ToDecimal(receive_count));//本次拣选完毕 + WmsConstants.WAVE_CURRENT_PICK_STATUS[key] = client.updatePickingStatus(Convert.ToInt16(color), ele_id, little_ele_id, Convert.ToDecimal(receive_count));//本次拣选完毕 LogHelper.debug(typeof(light), string.Format(" ..........{0} update result {1}", key, WmsConstants.WAVE_CURRENT_PICK_STATUS[key])); bool isPickOver = client.getCurrentPickList((int)DeiNiu.Utils.enumPickState.未拣).Rows.Count == 0;//波次是否全部拣选完毕 @@ -754,9 +758,9 @@ namespace Deiniu.win.elelab } } - - + + private static void manage_data() @@ -836,7 +840,7 @@ namespace Deiniu.win.elelab int port_num; try { - port_num = Convert.ToInt16(port); + port_num = Convert.ToInt16(port); } catch { @@ -846,6 +850,16 @@ namespace Deiniu.win.elelab return "执行成功"; } + + static string CURRENT_SEEDS_NO, CURRENT_SEEDS_GOODSID, CURRENT_SEEDS_GOOD_BATCH; + internal static string lightsUpSeeds(DataTable dt, enumLabelPickType pickType, string seedsNo, string goodsId, string batch) + { + CURRENT_SEEDS_NO = seedsNo; + CURRENT_SEEDS_GOODSID =goodsId; + CURRENT_SEEDS_GOOD_BATCH =batch; + + return lightsUp( dt, pickType); + } internal static string lightsUp(DataTable dt,enumLabelPickType pickType)////----- { // init_port(pickType); diff --git a/winform/utils/reports/pickOrderBulks.rdlc b/winform/utils/reports/pickOrderBulks.rdlc index 526b072..35e6052 100644 --- a/winform/utils/reports/pickOrderBulks.rdlc +++ b/winform/utils/reports/pickOrderBulks.rdlc @@ -1,5 +1,6 @@ - + + 0 @@ -11,6 +12,10 @@ + + tmsStockBulkPack2 + /* Local Query */ + id @@ -109,10 +114,6 @@ System.String - - tmsStockBulkPack2 - /* Local Query */ - wmsuzhou2DataSet14 D:\wms\deiniu\vsprojects\winform\wmsuzhou2DataSet14.xsd @@ -123,85 +124,460 @@ - - - - - - - 3.77059in - - - - - 1.98154in - - - - - - + + + + + + + + + 9.75369cm + + + + + 4.91818cm + + + + - - true - - - - - =Fields!customerName.Value - - - - - - Middle - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Fields!custAddress.Value + + + + true + true + + + + + =Fields!customerName.Value + + + + + Middle + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Fields!custAddress.Value + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + 复核台 + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Fields!desk.Value + + + + desk + 4.14091cm + 8.57187cm + 0.49417cm + 0.8643cm + 3 + + + Middle + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!pickNo.Value + + + + + + + pickOrderNo + 2.45234cm + 0.17635cm + 0.94745cm + 4.68718cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Fields!seedsLabelId.Value + + + + seedsLabelId + 4.10563cm + 6.41583cm + 0.6cm + 0.9125cm + 6 + + + Middle + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="零拼 " & Fields!bulkBox.Value &"箱 " & Fields!bulkBag.Value & "袋 " + + + + bulkBag + 3.43507cm + 5.9701cm + 0.56472cm + 3.6072cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Fields!salesperson.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Fields!createtime.Value + + + + createtime + 4.10563cm + 1.81677cm + 0.6cm + 3.6994cm + 9 + + + Bottom + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Fields!delivery.Value + + + + + + + delivery + 2.76451cm + 8.10433cm + 0.6cm + 1.64936cm + 10 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Fields!pickOrderNo.Value + + + + + + + pickOrderNo1 + 2.76452cm + 4.86353cm + 0.6cm + 3.06441cm + 11 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Fields!lineName.Value + + + + + + + delivery + 4.10563cm + 0.17635cm + 0.6cm + 1.64936cm + 12 + + + 2pt + 2pt + 2pt + 2pt + + + + true + 4.91818cm + 9.75369cm - 2pt - 2pt - 2pt - 2pt - + true true @@ -219,11 +595,11 @@ bulkBag1 - 3.3998cm - 6.11125cm + 3.43507cm + 3.38601cm 0.6cm - 3.32492cm - 2 + 2.51353cm + 1 @@ -234,449 +610,59 @@ 2pt - - true - true - - - - - 复核台 - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Fields!desk.Value - - - - desk - 4.14091cm - 8.57187cm - 0.49417cm - 0.8643cm - 4 - - - Middle - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!pickNo.Value - - - - - - - pickOrderNo - 1.79999cm - 0.17635cm - 1.14148cm - 5.82907cm - 5 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Fields!seedsLabelId.Value - - - - seedsLabelId - 4.10563cm - 6.41583cm - 0.6cm - 0.9125cm - 7 - - - Middle - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - ="零拼 " & Fields!bulkBox.Value &"箱 " & Fields!bulkBag.Value & "袋 " - - - - bulkBag - 2.65869cm - 6.11125cm - 0.56472cm - 3.32492cm - 8 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Fields!salesperson.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Fields!createtime.Value - - - - createtime - 4.10563cm - 0.17635cm - 0.6cm - 4.68718cm - 10 - - - Bottom - 2pt - 2pt - 2pt - 2pt - - true - 4.91818cm - 9.5773cm - - true - true - - - - - =Fields!pickOrderNo.Value - - - - - - - pickOrderNo1 - 2.83563cm - 0.17635cm - 0.6cm - 4.4226cm - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Fields!orderNo.Value - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - = "整件 " & Fields!boxCnt.Value - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - - - - - - - - - - - - - - - - - - - DataSet1 - 0.01819cm - 5.03311cm - 9.5773cm - - - - - - true - - - - - =Fields!delivery.Value - - - + + + + + + + + + + + + + + + + + + + DataSet1 + 0.01819cm + 4.91818cm + 9.75369cm + - - - delivery - 0.01819cm - 8.43076cm - 0.6cm - 1.14654cm - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - 1.9887in -