From 8cb4f66c6cf5639280a27e0ef28360cd46842197 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期二, 17 六月 2025 17:34:06 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs | 2 HH.WCS.Mobox3.NongFuLinZhi/Program.cs | 2 HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs | 17 ++ HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs | 94 ++++++++++++++- HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs | 101 +++++++++++----- HH.WCS.Mobox3.NongFuLinZhi/HH.WCS.Mobox3.NFLZ.sln | 22 +++ HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.json | 65 ++++++++++ HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs | 24 --- HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs | 7 + 9 files changed, 266 insertions(+), 68 deletions(-) diff --git a/HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.json b/HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.json new file mode 100644 index 0000000..517e611 --- /dev/null +++ b/HH.WCS.Mobox3.NongFuLinZhi/.vs/HH.WCS.Mobox3.NFLZ/v17/DocumentLayout.json @@ -0,0 +1,65 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u519C\u592B\u6797\u829D\\HH.WCS.Mobox3.NongFuLinZhi\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + } + ] + }, + { + "DockedWidth": 22, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/HH.WCS.Mobox3.NongFuLinZhi/HH.WCS.Mobox3.NFLZ.sln b/HH.WCS.Mobox3.NongFuLinZhi/HH.WCS.Mobox3.NFLZ.sln new file mode 100644 index 0000000..32cb64e --- /dev/null +++ b/HH.WCS.Mobox3.NongFuLinZhi/HH.WCS.Mobox3.NFLZ.sln @@ -0,0 +1,22 @@ +锘�+Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HH.WCS.Mobox3.NFLZ", "HH.WCS.Mobox3.NFLZ.csproj", "{2C0C3BD1-8DCF-4417-8C6B-E67EC9314F4E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2C0C3BD1-8DCF-4417-8C6B-E67EC9314F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C0C3BD1-8DCF-4417-8C6B-E67EC9314F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C0C3BD1-8DCF-4417-8C6B-E67EC9314F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C0C3BD1-8DCF-4417-8C6B-E67EC9314F4E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs index 7347e29..52b15a2 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs @@ -97,7 +97,7 @@ //娣诲姞鑷畾涔夌嚎绋� //tasks.Add(GetTask(Monitor.CheckDevice)); - tasks.Add(GetTask(Monitor.BottleBlankTransportation)); //鐡剁洊杞繍 + tasks.Add(GetTask(Monitor.BottleBlankTransportation)); //鎺ラ┏浣嶅叆搴� //tasks.Add(GetTask(Monitor.BCPWorkSurveillance)); //鍗婃垚鍝佸伐鍗曠洃鎺� Task.WaitAll(tasks.ToArray()); diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs index 087b8ad..81846c5 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs @@ -4,6 +4,7 @@ using HH.WCS.Mobox3.NFLZ.wms; using System; using System.Collections.Generic; +using System.Configuration; using System.Linq; using System.Text; using System.Threading; @@ -46,33 +47,81 @@ } /// <summary> - /// 鐡剁洊杞繍 + /// 杞繍浠诲姟 /// </summary> internal static void BottleBlankTransportation() { var db = new SqlHelper<object>().GetInstance(); - var jbwInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊鍏ュ簱鎺ラ┏浣� && a.enable == 1).FirstOrDefault(); - if (jbwInfo != null) + #region 鐡剁洊婊℃墭鍏ュ簱 + var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) { - var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == jbwInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First(); + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First(); if (locInfo != null) { - LogHelper.Info($"銆愮摱鐩栬浆杩愩�鐡跺澂鎺ラ┏浣嶆煡璇㈠埌闇�叆搴撶殑鐡跺澂锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}"); + LogHelper.Info($"銆愮摱鐩栨弧鎵樿浆杩愩�鐡跺澂鎺ラ┏浣嶆煡璇㈠埌闇�叆搴撶殑鐡跺澂锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}"); if (locInfo.LocCntrRel != null) { //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鐡剁洊杞繍", locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊"); + WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊"); } else { - LogHelper.Info($"銆愮摱鐩栬浆杩愩�褰撳墠璐т綅鏈粦瀹氭墭鐩樼爜锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}"); + LogHelper.Info($"銆愮摱鐩栨弧鎵樿浆杩愩�褰撳墠璐т綅鏈粦瀹氭墭鐩樼爜锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}"); } } } else { - LogHelper.Info("銆愮摱鐩栬浆杩愩�鐡跺澂鎺ラ┏浣嶆湭閰嶇疆"); + LogHelper.Info("銆愮摱鐩栨弧鎵樿浆杩愩�鐡剁洊鍏ュ簱鎺ラ┏ 鏈厤缃�); } + #endregion + + #region 鐡跺澂绌烘墭鍏ュ簱 + areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜х┖妗� && a.enable == 1).FirstOrDefault(); + if(areaInfo != null) + { + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First(); + if(locInfo != null && locInfo.LocCntrRel != null) + { + //鍒涘缓浣滀笟 + WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鐡剁洊绌烘墭鍏ュ簱", locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊"); + } + } + else + { + LogHelper.Info("銆愮摱鐩栫┖鎵樿浆杩愩�鐡剁洊闈炲嵆浜х┖妗�鏈厤缃�); + } + #endregion + + #region 鐡跺澂婊℃墭鍏ュ簱 + areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) + { + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First(); + if (locInfo != null) + { + string cntr = ""; + var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locInfo.S_CODE).ToList(); + if (cntrList.Count > 0) + { + foreach (var a in cntrList) + { + cntr = cntr + a.S_CNTR_CODE + ","; + } + } + cntr = cntr.TrimEnd(','); + //鍒涘缓浣滀笟 + WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntr, "鐡跺澂"); + } + } + else + { + LogHelper.Info("銆愮摱鍧弧鎵樿浆杩愩�鐡惰儦鍏ュ簱鎺ラ┏ 鏈厤缃�); + } + + #endregion + } /// <summary> @@ -130,6 +179,33 @@ } - + internal static void JBDEIN() + { + var db = new SqlHelper<object>().GetInstance(); + var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault(); + if(areaInfo != null) + { + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First(); + if(locInfo != null) + { + string cntr = ""; + var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locInfo.S_CODE).ToList(); + if(cntrList.Count > 0) + { + foreach(var a in cntrList) + { + cntr = cntr + a.S_CNTR_CODE + ","; + } + } + cntr = cntr.TrimEnd(','); + //鍒涘缓浣滀笟 + WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntr, "鐡跺澂"); + } + } + else + { + LogHelper.Info("鐡惰儦鍏ュ簱鎺ラ┏ 鏈厤缃�); + } + } } } diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs index 0938510..0dff435 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs @@ -63,6 +63,13 @@ LocationHelper.LockLoc(end.S_CODE, 1); var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == a.S_START_LOC).First(); var endinfo = db.Queryable<Location>().Where(it => it.S_CODE == end.S_CODE).First(); + int startLayer = startinfo.N_CURRENT_NUM; + int endlayer = endinfo.N_CURRENT_NUM + 1; + if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱") + { + startLayer = 1; + endlayer = 1; + } var wcsTask = new WCSTask { S_OP_CODE = a.S_CODE, diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs index 95a01fb..be99608 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs @@ -841,7 +841,7 @@ taskType = $"娉ㄥ搴撳瓨绌烘墭涓婄嚎({machine})"; } - Location startLoca = TaskProcess.getMStartLoc(db); + Location startLoca = TaskProcess.getMStartLoc(db,workInfo.S_UsingNow); if (startLoca != null) { //鍒涘缓浣滀笟 diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs index 788c9d7..0fb1a31 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs @@ -33,13 +33,13 @@ { Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); - LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList()); + LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList(),mst.S_TYPE); } else { Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); - LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); + LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList(),mst.S_TYPE); } } @@ -1436,22 +1436,53 @@ return result; } - internal static Location getMStartLoc(SqlSugarClient db) + internal static Location getMStartLoc(SqlSugarClient db, string usingNow) { Location result = null; - var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂娉ㄥ鏈虹┖鎵� && a.enable == 1).FirstOrDefault(); - if(areaInfo != null) + if(usingNow == "Y") { - var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First(); - if(locInfo != null) + //鍗充骇鍗崇敤 + var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇绌烘" && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) { - result = locInfo; + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First(); + if (locInfo != null) + { + result = locInfo; + } + } + else + { + LogHelper.Info("鐡惰儦鍗充骇绌烘鏈厤缃�); } } else { - LogHelper.Info("鐡跺澂娉ㄥ鏈虹┖鎵樻湭閰嶇疆"); + //闈炲嵆浜у嵆鐢�+ var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦闈炲嵆浜х┖妗� && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) + { + var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).Includes(a => a.LocCntrRel).ToList(); + if(locList.Count > 0) + { + foreach(var a in locList) + { + int row = a.N_ROW; + var lockInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_ROW == row && b.S_LOCK_STATE.Contains("閿�)).First(); + if(lockInfo == null) + { + result = a; + break; + } + } + } + } + else + { + LogHelper.Info("鐡惰儦闈炲嵆浜х┖妗嗘湭閰嶇疆"); + } } + return result; } @@ -1469,55 +1500,59 @@ LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode}"); if (taskName.Contains("鍗充骇")) { - //鍗充骇鍗崇敤宸ュ崟锛屼笅绾垮埌鍗充骇鍗崇敤搴撳尯 - //鍗充骇鍗崇敤搴撳尯鏈変袱涓嚎杈瑰簱锛屽鏋滃嵆浜у嵆鐢ˋ搴撳尯婊★紝鍒欐斁鍒板嵆浜у嵆鐢˙搴撳尯,鑻ュ嵆浜у嵆鐢ㄥ簱鍖洪兘婊★紝鍒欐斁鍒扮摱鍧簱鍖�- var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤A" && a.enable == 1).FirstOrDefault(); + //娉ㄥ鏈烘�浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅 + var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇婊℃" && a.enable == 1).FirstOrDefault(); if(areaInfo != null) { - var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First(); + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_ROW).First(); if(locInfo != null) { result = locInfo; } - } else { - LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱摱鍧嵆浜у嵆鐢ˋ 鏈厤缃�); + LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱摱鑳氬嵆浜ф弧妗�鏈厤缃�); } if (result == null) { - result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂鍗充骇鍗崇敤B", itemCode); + result = TaskProcess.BCPInOrOut(db, true, "鐡惰儦鍗充骇婊℃缂撳瓨鍖�, itemCode); } if(result == null) { - result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemCode); + //result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemCode); + result = getJBLoc(db, result); } } else { - //闈炲嵆浜у嵆鐢ㄥ伐鍗曪紝涓嬬嚎鍒伴潪鍗充骇鍗崇敤搴撳尯 - //闈炲嵆浜у嵆鐢ㄥ簱鍖哄彧鏈変竴涓嚎杈瑰簱锛屽鏋滅嚎杈瑰簱婊★紝鍒欐斁鍒扮摱鍧簱鍖�- var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault(); - if (areaInfo != null) - { - var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First(); - if (locInfo != null) - { - result = locInfo; - } + result = getJBLoc(db, result); + } + return result; + } + private static Location getJBLoc(SqlSugarClient db, Location result) + { + //娉ㄥ鏈洪潪鍗充骇鍗崇敤涓嬬嚎锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅 + var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault(); + if (areaInfo != null) + { + var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First(); + if (locInfo != null) + { + result = locInfo; } else { - LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱摱鍧潪鍗充骇鍗崇敤 鏈厤缃�); - } - if (result == null) - { - result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemCode); + LogHelper.Info("鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱摱鍧叆搴撴帴椹充綅鏆傛椂鏈煡璇㈠埌鍙敤璐т綅"); } } + else + { + LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱摱鑳氬叆搴撴帴椹�鏈厤缃�); + } + return result; } @@ -2472,5 +2507,7 @@ } } } + + } } diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs index e88ef47..805e93e 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/LocationHelper.cs @@ -323,7 +323,7 @@ /// <param name="loc"></param> /// <param name="cntrs"></param> /// <returns></returns> - public static bool UnBindingLoc(string loc, List<string> cntrs) + public static bool UnBindingLoc(string loc, List<string> cntrs, string type) { var res = false; var db = new SqlHelper<object>().GetInstance(); @@ -338,6 +338,12 @@ { location.N_CURRENT_NUM = 0; } + + if (type == "鎺ラ┏浣嶅叆搴� || type == "鐡剁洊绌烘墭鍏ュ簱") + { + location.N_CURRENT_NUM = 0; + } + location.S_LOCK_STATE = "鏃�; location.N_LOCK_STATE = 0; db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); @@ -356,7 +362,7 @@ /// <param name="loc"></param> /// <param name="cntrs"></param> /// <returns></returns> - public static bool BindingLoc(string loc, List<string> cntrs) + public static bool BindingLoc(string loc, List<string> cntrs, string type) { var res = false; var db = new SqlHelper<object>().GetInstance(); @@ -376,9 +382,10 @@ } }); location.N_CURRENT_NUM = lcrList.Count + count; - - - + if(type == "鎺ラ┏浣嶅叆搴� || type == "鐡剁洊绌烘墭鍏ュ簱") + { + location.N_CURRENT_NUM = location.N_CAPACITY; + } location.N_LOCK_STATE = 0; location.S_LOCK_STATE = "鏃�; diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs index 842580e..fb3b590 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs @@ -699,39 +699,23 @@ LogHelper.Info($"浣滀笟缁堢偣涓嶄负鎺ラ┏浣�鏌ユ壘搴撳尯{a.S_END_AREA} 鍙敤璐т綅"); //鍏朵粬搴撳尯 - //var endlist = db.Queryable<Location>() - //.Where(it => it.S_AREA_CODE == a.S_END_AREA && it.N_CURRENT_NUM < it.N_CAPACITY) - //.OrderBy(it => it.N_COL) - //.PartitionBy(it => it.N_ROW) - //.Take(1) - //.ToList(); - //LogHelper.Info($"绗﹀悎鏉′欢鐨勬暟閲弡endlist.Count}"); - //foreach (var item in endlist) - //{ - // var lockinfo = db.Queryable<Location>().Where(it => it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW).First(); - // if (lockinfo == null) - // { - // result = item; - // a.S_END_LOC = item.S_CODE; - // break; - // } - // else LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撳墠鎺掍笉鍙娇鐢�); - //} } else { LogHelper.Info($"鍏ュ簱浠诲姟 璁$畻缁堢偣锛屼换鍔$被鍨嬶細{a.S_OP_DEF_NAME}"); - if (a.S_OP_DEF_NAME == "鐡剁洊杞繍") + if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱") { + string itemCode = ""; var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_START_LOC).First(); if(cntrInfo != null) { var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First(); if(itemInfo != null) { - result = TaskProcess.BCPInOrOut(db, true, a.S_NOTE + "搴撳尯",itemInfo.S_ITEM_CODE ); + itemCode = itemInfo.S_ITEM_CODE; } } + result = TaskProcess.BCPInOrOut(db, true, a.S_NOTE + "搴撳尯", itemCode); } if (a.S_OP_DEF_NAME.Contains("娉ㄥ") && a.S_OP_DEF_NAME.Contains("婊℃墭涓嬬嚎锛堢摱鍧級")) { -- Gitblit v1.9.1