From 382c009ba2bb04374468e9584f262d6682841d9b Mon Sep 17 00:00:00 2001 From: pengmn <pmn@HanInfo> Date: 星期三, 28 五月 2025 18:09:41 +0800 Subject: [PATCH] 杭氧测试流程 --- HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs | 121 ++++++++++++++++++++++++++++++---------- 1 files changed, 90 insertions(+), 31 deletions(-) diff --git a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs index e083743..5270858 100644 --- a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.IdentityModel.Protocols.WSTrust; using System.Linq; using System.Linq.Expressions; using System.Reflection; @@ -635,7 +636,15 @@ } catch (Exception ex) { - LogHelper.Error("鍒涘缓鍏ュ簱鍗曞け璐�, ex, "鏉哀"); + var sugarEx = ex as SqlSugar.SqlSugarException; + if (sugarEx != null) + { + LogHelper.Error($"鍒涘缓鍏ュ簱鍗昐QL閿欒: {sugarEx.Sql}", sugarEx, "鏉哀"); + } + else + { + LogHelper.Error($"鍒涘缓鍏ュ簱鍗曞け璐�{ex.Message}", ex, "鏉哀"); + } return false; } @@ -664,7 +673,7 @@ } catch (Exception ex) { - LogHelper.Error("鍒涘缓鍑哄簱鍗曞け璐�, ex, "鏉哀"); + LogHelper.Error($"鍒涘缓鍑哄簱鍗曞け璐�{ex.Message}", ex, "鏉哀"); return false; } @@ -730,6 +739,28 @@ } /// <summary> + /// 鏍规嵁鎵樼洏鏌ヨ璐т綅鏄庣粏 + /// </summary> + /// <param name="trayCode">鎵樼洏鍙�/param> + /// <returns></returns> + internal static LocCntrRel GetCntrLoc(string trayCode) + { + var db = new SqlHelper<object>().GetInstance(); + + var locCntr = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == trayCode).First(); + var locList = db.Queryable<Location>().Where(p => p.S_CODE == locCntr.S_LOC_CODE + && p.N_CURRENT_NUM == p.N_CAPACITY + && p.S_LOCK_STATE.Trim() == "鏃� + && p.S_AREA_CODE == "JXHCQ").First(); + if (locList == null) + { + return null; + } + return locCntr; + + } + + /// <summary> /// 浠诲姟鐘舵�杞崲 /// </summary> /// <param name="state">鐘舵�鍙�/param> @@ -755,28 +786,48 @@ /// </summary> /// <param name="state">閰嶇洏鍗曠姸鎬�/param> /// <returns></returns> - internal static List<DistributionCntr> GetPickingListByState(string state) + internal static List<DistributionCntr> GetPickingListByState(int state) { var db = new SqlHelper<object>().GetInstance(); - var distributionCntr = db.Queryable<DistributionCntr>().Where(a => a.S_B_STATE.Trim() == state).ToList(); + var distributionCntr = db.Queryable<DistributionCntr>().Where(a => a.N_B_STATE == state).ToList(); return distributionCntr; + } + + + /// <summary> + /// 閰嶇洏鍗曠姸鎬佽浆鎹�+ /// </summary> + /// <param name="state">鐘舵�鍙�/param> + /// <returns></returns> + internal static string GetDistributionStateStr(int state) + { + var status = ""; + switch (state) + { + case 1: status = "宸查厤璐�; break; + case 2: status = "鍑哄簱涓�; break; + case 3: status = "宸插嚭搴�; break; + case 4: status = "鍒嗘嫞瀹屾垚 "; break; + + } + return status; } /// <summary> /// 淇敼閰嶇洏鍗曠姸鎬� /// </summary> + /// <param name="taskState">浣滀笟鐘舵�</param> /// <param name="state">鐘舵�</param> /// <param name="trayCode">鎵樼洏鍙�/param> /// <returns></returns> - internal static bool UpdateDistributionCntrState(string state,string trayCode) + internal static bool UpdateDistributionCntrState(int taskState,int state,string trayCode) { var db = new SqlHelper<object>().GetInstance(); - var distributionCntr = db.Queryable<DistributionCntr>().Where(a => a.S_B_STATE.Trim() == "閰嶈揣瀹屾垚" && a.S_CNTR_CODE == trayCode ).First(); + var distributionCntr = db.Queryable<DistributionCntr>().Where(a => a.N_B_STATE == taskState && a.S_CNTR_CODE == trayCode ).First(); if (distributionCntr != null) { - - distributionCntr.S_B_STATE = state; - distributionCntr.N_B_STATE = 2; + distributionCntr.N_B_STATE = state; + distributionCntr.S_B_STATE = GetDistributionStateStr(state); return db.Updateable<DistributionCntr>(distributionCntr).UpdateColumns(it => new { it.S_B_STATE, it.N_B_STATE }).ExecuteCommand() > 0; } return false; @@ -888,7 +939,7 @@ { var db = new SqlHelper<object>().GetInstance(); var locations = db.Queryable<Location>().Where(a => a.S_AREA_CODE == inbound.areaCode).ToList(); - if(!string.IsNullOrEmpty(inbound.roadWay.ToString())) + if(inbound.roadWay != 0) { locations.RemoveAll(s => s.N_ROADWAY != inbound.roadWay); } @@ -1129,14 +1180,16 @@ else continue; } - else - { - //璐т綅涓虹┖鐩存帴鐢熸垚鍑哄簱浠诲姟 - tasks.Add(CreateOutboundTask(targetLoc,outboundItem)); - } + //else + //{ + // //璐т綅涓虹┖鐩存帴鐢熸垚鍑哄簱浠诲姟 + // tasks.Add(CreateOutboundTask(targetLoc, outboundItem)); + //} } - else continue; - + else + { + continue; + } // 2.2 鐢熸垚鍑哄簱浠诲姟锛堟繁浣嶏級 tasks.Add(CreateOutboundTask(targetLoc, outboundItem)); } @@ -1145,6 +1198,7 @@ // 3. 闈炲弻娣变綅鐩存帴鍑哄簱 tasks.Add(CreateOutboundTask(targetLoc, outboundItem)); } + break; } // 4. 浠诲姟鎺掑簭锛氱Щ搴撲换鍔′紭鍏�+ 楂樹紭鍏堢骇浼樺厛 return tasks; @@ -1164,7 +1218,7 @@ loc.N_ROADWAY == deepLoc.N_ROADWAY && loc.N_COL == deepLoc.N_COL && loc.N_LAYER == deepLoc.N_LAYER && - loc.N_LOCK_STATE == 0 + loc.N_LOCK_STATE == 0 || loc.N_LOCK_STATE == 5 ); private Location FindBestRelocationTarget(Location outerLoc) @@ -1232,7 +1286,8 @@ _allLocations .Where(x => x.S_CODE == outerLoc.S_CODE) .ToList() - .ForEach(x => x.N_LOCK_STATE = 3); + .ForEach(x => x.N_LOCK_STATE = 5); + //鏍囪娣变綅鐨勫渚ц揣浣嶄负5 } } } @@ -1263,7 +1318,7 @@ /// 鏍规嵁浠诲姟鍗囬噺 /// </summary> /// <param name="task"></param> - internal static void AddChange(WCSTask task) + internal static bool AddChange(WCSTask task) { var db = new SqlHelper<object>().GetInstance(); var result = true; @@ -1349,34 +1404,36 @@ catch (Exception ex) { LogHelper.Error($"浠撳簱鍗囬噺寮傚父 寮傚父淇℃伅={ex.Message}", ex); + result = false; } + return result; } /// <summary> /// 鏍规嵁浠诲姟闄嶉噺 /// </summary> /// <param name="task"></param> - internal static void DeleteChange(WCSTask task) + internal static bool DeleteChange(WCSTask wmstask) { var db = new SqlHelper<object>().GetInstance(); var result = true; try { - var wmstask = db.Queryable<WMSTask>().Where(a => a.S_CODE == task.S_OP_CODE).First(); + //var wmstask = db.Queryable<WCSTask>().Where(a => a == task.S_OP_CODE).First(); if (wmstask != null) { - var itemlist = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).ToList(); + var itemlist = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == wmstask.S_CNTR_CODE).ToList(); if (itemlist.Count > 0) { var url = Settings.MoboxSeverUrl + "inventory/AddChange"; - //浠撳簱閲忚〃鍗囬噺 - var req = new AddChangeModel { op_type = 4 }; - //搴撳尯閲忚〃鍗囬噺 - var req2 = new AddChangeModel { op_type = 7 }; + //浠撳簱閲忚〃闄嶉噺 + var req = new AddChangeModel { op_type = 8 }; + //搴撳尯閲忚〃闄嶉噺 + var req2 = new AddChangeModel { op_type = 9 }; itemlist.ForEach(a => { LogHelper.Info($"濉厖鏁版嵁"); - LogHelper.Info($"鍑忎粨搴撻噺琛ㄦ暟鎹�浠撳簱{task.S_END_WH} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}"); + LogHelper.Info($"鍑忎粨搴撻噺琛ㄦ暟鎹�浠撳簱{wmstask.S_START_WH} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}"); req.item_info.Add(new AddChangeModel.itemModel { wh_code = wmstask.S_START_WH, @@ -1384,7 +1441,7 @@ item_name = a.S_ITEM_NAME, qty = a.F_QTY }); - LogHelper.Info($"鍑忓簱鍖洪噺琛ㄦ暟鎹�搴撳尯{task.S_END_AREA} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}"); + LogHelper.Info($"鍑忓簱鍖洪噺琛ㄦ暟鎹�搴撳尯{wmstask.S_START_AREA} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}"); req2.item_info.Add(new AddChangeModel.itemModel { wh_code = wmstask.S_START_WH, @@ -1440,15 +1497,17 @@ } } - else LogHelper.Info($"鎵樼洏{task.S_CNTR_CODE} 鍦ㄥ鍣ㄨ揣鍝佹槑缁嗕腑鎵句笉鍒版暟鎹�); + else LogHelper.Info($"鎵樼洏{wmstask.S_CNTR_CODE} 鍦ㄥ鍣ㄨ揣鍝佹槑缁嗕腑鎵句笉鍒版暟鎹�); } - else LogHelper.Info($"鏈壘鍒颁换鍔task.S_CODE} 瀵瑰簲鐨勪綔涓�); + else LogHelper.Info($"鏈壘鍒颁换鍔wmstask.S_CODE} 瀵瑰簲鐨勪换鍔�); } catch (Exception ex) { LogHelper.Error($"浠撳簱闄嶉噺寮傚父 寮傚父淇℃伅={ex.Message}", ex); + result = false; } + return result; } -- Gitblit v1.9.1