From 7fda4aeb36beda46d767a78082573692e7b85651 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期二, 15 七月 2025 17:23:05 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs | 1 HH.WCS.Mobox3.NongFuLinZhi/Program.cs | 8 +- HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs | 29 ++++--- .vs/农夫林芝/v17/DocumentLayout.json | 4 - .vs/VSWorkspaceState.json | 2 .vs/农夫林芝/v17/DocumentLayout.backup.json | 65 ++++++++++++++++ HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs | 85 ++++++++++++++++++-- HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs | 10 ++ .vs/农夫林芝/v17/.wsuo | 0 HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs | 2 HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs | 18 +++- 11 files changed, 184 insertions(+), 40 deletions(-) diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 6738466..2c4f182 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -2,6 +2,6 @@ "ExpandedNodes": [ "" ], - "SelectedNode": "\\C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u519C\u592B\u6797\u829D", + "SelectedNode": "\\HH.WCS.Mobox3.NFLZ.sln", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo" "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo" index dd169e9..60a9dc1 100644 --- "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo" +++ "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/.wsuo" Binary files differ diff --git "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.backup.json" "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.backup.json" new file mode 100644 index 0000000..0059f7e --- /dev/null +++ "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.backup.json" @@ -0,0 +1,65 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u519C\u592B\u6797\u829D\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 12, + "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/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json" "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json" index 0059f7e..b424425 100644 --- "a/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json" +++ "b/.vs/\345\206\234\345\244\253\346\236\227\350\212\235/v17/DocumentLayout.json" @@ -34,10 +34,6 @@ { "$type": "Bookmark", "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" - }, - { - "$type": "Bookmark", - "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" } ] }, diff --git a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs index 376ee0d..0d2da28 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/Program.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/Program.cs @@ -98,10 +98,10 @@ //tasks.Add(GetTask(Monitor.CheckDevice)); tasks.Add(GetTask(Monitor.BottleBlankTransportation)); //鎺ラ┏浣嶅叆搴�- tasks.Add(GetTask(Monitor.PPFDFullIn)); //鐡跺澂缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭 - tasks.Add(GetTask(Monitor.PGFDFullIn)); //鐡剁洊缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭 - tasks.Add(GetTask(Monitor.PGFDFullInJC)); //鐡剁洊缈绘枟鏈烘�浜ф弧妗嗗尯琛ユ弧鎵�绌烘墭鍖哄煙琛ョ┖鎵�- tasks.Add(GetTask(Monitor.PPFDFullInEmpty)); //鐡跺澂娉ㄥ鏈洪潪鎬ヤ骇绌烘鍖鸿ˉ绌烘墭 + tasks.Add(GetTask(Monitor.PPFDFullIn)); //鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭 + tasks.Add(GetTask(Monitor.PGFDFullIn)); //鐡剁洊缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭 + tasks.Add(GetTask(Monitor.PGFDFullInJC)); //鐡剁洊缈绘枟鏈哄嵆浜ф弧妗嗗尯琛ユ弧鎵�绌烘墭鍖哄煙琛ョ┖鎵�+ tasks.Add(GetTask(Monitor.PPFDFullInEmpty)); //鐡跺澂娉ㄥ鏈洪潪鍗充骇绌烘鍖鸿ˉ绌烘墭 tasks.Add(GetTask(Monitor.PGXBZZY)); //鐡剁洊灏忓寘瑁呯洊杞繍 diff --git a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs index d8371e8..962184d 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs @@ -721,6 +721,7 @@ internal static ReturnResult JBIn(JBInModel model) { ReturnResult result = new ReturnResult() { ResultCode = -1 }; + var db = new SqlHelper<object>().GetInstance(); string cntrCode = Guid.NewGuid().ToString("N"); string batch = ""; if (model.S_ITEM_TYPE == "灏忓寘瑁呯洊") @@ -740,12 +741,21 @@ batch = "澶у寘瑁呯洊"; } //鍒涘缓浣滀笟 - LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"鎸囧畾搴撳尯-" + model.S_END_AREA}"); - if(WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鎸囧畾搴撳尯-" + model.S_END_AREA)) + var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE && a.S_LOCK_STATE == "鏃�).First(); + if(locInfo != null) { - TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch); - result.ResultCode = 0; + LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"鎸囧畾搴撳尯-" + model.S_END_AREA}"); + if (WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鎸囧畾搴撳尯-" + model.S_END_AREA)) + { + TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch); + result.ResultCode = 0; + } } + else + { + result.ResultMsg = $"璇ョ偣浣嶄笉瀛樺湪鎴栬�鏈夐攣锛岃揣浣嶇紪鐮侊細{model.S_LOC_CODE}"; + } + return result; } diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs index 76b0b40..df8a2a7 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs @@ -107,7 +107,7 @@ } /// <summary> - /// 鐡跺澂缈绘枟鏈洪潪鎬ヤ骇婊℃鍖鸿ˉ婊℃墭 + /// 鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭 /// </summary> internal static void PPFDFullIn() { @@ -132,7 +132,7 @@ { string cntrCode = getCntrCode(db,location); //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ婊℃", cntrCode, "鐡跺澂"); + WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ婊℃", cntrCode, "鐡跺澂"); } } } @@ -206,7 +206,7 @@ { string cntrCode = getCntrCode(db, location); //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊"); + WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊"); } } if (itemCount.Count == 2) @@ -252,7 +252,7 @@ { string cntrCode = getCntrCode(db, location); //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊"); + WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊"); } } } @@ -263,7 +263,7 @@ { string cntrCode = getCntrCode(db, location); //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊"); + WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁�, cntrCode, "鐡剁洊"); } } } @@ -293,7 +293,8 @@ var LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0).ToList(); if(LocList.Count <= 1) { - var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炴�浜цˉ绌烘" && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷").First(); + LogHelper.Info($"鐡跺澂闈炲嵆浜цˉ绌烘 {JsonConvert.SerializeObject(LocList)}"); + var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炲嵆浜цˉ绌烘" && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷").First(); if(taskInfo == null) { //闇�浠庡簱鍖鸿ˉ鍏呯┖鎵�@@ -303,14 +304,16 @@ { string cntrCode = getCntrCode(db, location); //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ绌烘", cntrCode, "鐡跺澂"); + WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ绌烘", cntrCode, "鐡跺澂"); } } } + LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY).ToList(); if (LocList.Count > 2) { - var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炴�浜х┖妗嗗叆搴� && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "鍗歌揣瀹屾垚" && a.S_B_STATE != "寮�鍗歌揣" && a.S_B_STATE != "鍙栬揣瀹屾垚").First(); + LogHelper.Info($"鐡跺澂闈炲嵆浜х┖鎵樺叆搴�{JsonConvert.SerializeObject(LocList)}"); + var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鐡跺澂闈炲嵆浜х┖妗嗗叆搴� && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "鍗歌揣瀹屾垚" && a.S_B_STATE != "寮�鍗歌揣" && a.S_B_STATE != "鍙栬揣瀹屾垚").First(); if(taskInfo == null) { //闇�灏嗙┖鎵樿浆杩愬埌搴撳尯 @@ -321,7 +324,7 @@ //鐢熸垚浠诲姟 string cntrCode = getCntrCode(db, a); //鍒涘缓浣滀笟 - WMSHelper.CreateOpTask(a.S_CODE, "", "鍏ュ簱", "鐡跺澂闈炴�浜х┖妗嗗叆搴�, cntrCode, "鐡跺澂"); + WMSHelper.CreateOpTask(a.S_CODE, "", "鍏ュ簱", "鐡跺澂闈炲嵆浜х┖妗嗗叆搴�, cntrCode, "鐡跺澂"); break; } } @@ -345,7 +348,7 @@ // { // string cntrCode = getCntrCode(db, location); // //鍒涘缓浣滀笟 - // WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炴�浜цˉ绌烘", cntrCode, "鐡跺澂"); + // WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ绌烘", cntrCode, "鐡跺澂"); // } // } // } @@ -376,7 +379,7 @@ { //鍒涘缓浣滀笟 string cntrCode = getCntrCode(db, startLoca); - WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "鍑哄簱", "鐡跺澂鎬ヤ骇琛ユ弧妗�, cntrCode, ""); + WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "鍑哄簱", "鐡跺澂鍗充骇琛ユ弧妗�, cntrCode, ""); } } } @@ -393,7 +396,7 @@ { //鍒涘缓浣滀笟 string cntrCode = getCntrCode(db, startLoca); - WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "鍑哄簱", "鐡跺澂鎬ヤ骇琛ョ┖妗�, cntrCode, ""); + WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "鍑哄簱", "鐡跺澂鍗充骇琛ョ┖妗�, cntrCode, ""); } } } @@ -455,7 +458,7 @@ if (startLoca != null) { string cntrCode = getCntrCode(db, startLoca); - WMSHelper.CreateOpTask(startLoca.S_CODE, endLoca.S_CODE, "鍑哄簱", "鐡剁洊闈炴�浜цˉ婊℃灏忓寘瑁�, cntrCode, ""); + WMSHelper.CreateOpTask(startLoca.S_CODE, endLoca.S_CODE, "鍑哄簱", "鐡剁洊闈炲嵆浜цˉ婊℃灏忓寘瑁�, cntrCode, ""); } } } diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs index 8b859c8..001b6ba 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs @@ -1,4 +1,5 @@ -锘縰sing HH.WCS.Mobox3.NFLZ.dispatch; +锘縰sing HH.WCS.Mobox3.NFLZ.api; +using HH.WCS.Mobox3.NFLZ.dispatch; using HH.WCS.Mobox3.NFLZ.process; using HH.WCS.Mobox3.NFLZ.util; using HH.WCS.Mobox3.NFLZ.wms; @@ -85,7 +86,12 @@ if (AlterControlSwitch01 == "1") TaskProcess.GeneralInterFaceFunc(TN_Task, model.state.ToString(), model.forklift_no); } } - else { + else if(model.state == 8) + { + TaskProcess.cancelTask(TN_Task); + } + else + { LogHelper.Info("瀹夊叏璇锋眰浜や簰"); //瀹夊叏璇锋眰绛� TaskProcess.OperateReq(model.task_no, model.state, model.forklift_no, model.ext_data); diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs index cd18687..a4067b6 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs @@ -723,6 +723,7 @@ { LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欑紪鐮侊細{itemInfo.S_ITEM_CODE}"); LogHelper.Info($"getFDSXArea:鏌ヨ鍒扮墿鏂欐壒娆★細{itemInfo.S_BATCH_NO}"); + if (workInfo.S_PLineNo.Contains("鐡跺澂")) workInfo.S_ITEM_TYPE = ""; if (itemInfo.S_ITEM_CODE + itemInfo.S_BATCH_NO == workInfo.S_ItemCode + workInfo.S_ITEM_TYPE) { result = a; diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs index 4ec4f6b..5659dd1 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; +using System.Threading.Tasks; using System.Xml.Linq; using static HH.WCS.Mobox3.NFLZ.api.OtherModel; using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi; @@ -65,7 +66,7 @@ //璧风偣缁堢偣瑙i攣 LocationHelper.UnLockLoc(mst.S_START_LOC); LocationHelper.UnLockLoc(mst.S_END_LOC); - + } } @@ -677,7 +678,7 @@ /// <exception cref="NotImplementedException"></exception> public static void EmptyTask(WCSTask mst) { - //鐡剁洊娉ㄥ鏈虹┖鎵樹笂绾匡紝鑻ユ�浜ф�鐢ㄥ簱鍖烘病鏈夊浣欑殑绌烘墭锛屽垯鍦ㄩ潪鎬ヤ骇鎬ョ敤绌烘墭鍖烘嬁绌烘墭 + //鐡剁洊娉ㄥ鏈虹┖鎵樹笂绾匡紝鑻ュ嵆浜ф�鐢ㄥ簱鍖烘病鏈夊浣欑殑绌烘墭锛屽垯鍦ㄩ潪鍗充骇鎬ョ敤绌烘墭鍖烘嬁绌烘墭 var db = new SqlHelper<object>().GetInstance(); Location startLoca = null; @@ -1105,7 +1106,7 @@ Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC).First().S_AGV_SITE; if (mst.N_START_LAYER > 1) { - if(mst.S_TYPE != "鐡跺澂闈炴�浜х┖妗嗗叆搴� && mst.S_TYPE != "鐡跺澂鎺ラ┏浣嶅叆搴� && mst.S_TYPE != "鐡剁洊绌烘墭鍏ュ簱") + if(mst.S_TYPE != "鐡跺澂闈炲嵆浜х┖妗嗗叆搴� && mst.S_TYPE != "鐡跺澂鎺ラ┏浣嶅叆搴� && mst.S_TYPE != "鐡剁洊绌烘墭鍏ュ簱") { Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE; } @@ -1115,7 +1116,7 @@ { Extend2 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_END_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE; } - if(mst.S_TYPE == "鐡跺澂闈炴�浜цˉ婊℃" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ婊℃澶у寘瑁� || mst.S_TYPE == "鐡跺澂闈炴�浜цˉ绌烘" || mst.S_TYPE == "鐡剁洊闈炴�浜цˉ绌烘" || mst.S_TYPE == "娉ㄥ鍗充骇婊℃墭涓嬬嚎锛堢摱鍧級") + if(mst.S_TYPE == "鐡跺澂闈炲嵆浜цˉ婊℃" || mst.S_TYPE == "鐡剁洊闈炲嵆浜цˉ婊℃澶у寘瑁� || mst.S_TYPE == "鐡跺澂闈炲嵆浜цˉ绌烘" || mst.S_TYPE == "鐡剁洊闈炲嵆浜цˉ绌烘" || mst.S_TYPE == "娉ㄥ鍗充骇婊℃墭涓嬬嚎锛堢摱鍧級") { Extend2 = Settings.dXSites.Where(it => it.loc == mst.S_END_LOC).First().site.ToString(); } @@ -1358,7 +1359,7 @@ else { //鏌ヨ鍚庨潰褰撳墠璐т綅鍚庝竴涓�- result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && b.S_LOCK_STATE == "鏃�).OrderBy(b => b.N_COL).First(); + result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && a.N_CURRENT_NUM < a.N_CAPACITY && b.S_LOCK_STATE == "鏃�).OrderBy(b => b.N_COL).First(); } if (result != null) { @@ -1571,7 +1572,7 @@ LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode}"); if (taskName.Contains("鍗充骇")) { - //娉ㄥ鏈烘�浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅 + //娉ㄥ鏈哄嵆浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅 var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃" && a.enable == 1).FirstOrDefault(); if(areaInfo != null) { @@ -1942,11 +1943,16 @@ var Con = db.Queryable<Container>().Where(a => a.S_CODE == cntrCode).First(); if(Con == null) { + int detallCount = 0; + if (!string.IsNullOrEmpty(itemCode)) + { + detallCount = 1; + } if(db.Insertable<Container>(new Container { S_CODE = cntrCode, N_TYPE = 1, - N_DETAIL_COUNT = 1 + N_DETAIL_COUNT = detallCount }).ExecuteCommand() > 0) { LogHelper.Info($"瀹瑰櫒琛ㄧ粦瀹氭垚鍔燂紝鎵樼洏鍙凤細{cntrCode}"); @@ -2485,11 +2491,20 @@ { foreach (var a in locList) { - var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && b.S_LOCK_STATE == "鏃�).First(); - if(rowInfo != null && a.S_LOCK_STATE == "鏃�) + var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_CODE).First(); + if(cntrInfo != null) { - result = a; - break; + var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First(); + if(itemInfo == null) + { + var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && b.S_LOCK_STATE == "鏃�).First(); + if (rowInfo != null && a.S_LOCK_STATE == "鏃�) + { + result = a; + break; + } + } + } } } @@ -2501,5 +2516,53 @@ return result; } + + /// <summary> + /// 鍙栨秷浠诲姟 + /// </summary> + /// <param name="tN_Task"></param> + /// <exception cref="NotImplementedException"></exception> + internal static void cancelTask(WCSTask TN_Task) + { + if(!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4)) + { + //鍙栨秷浠诲姟 + WCSHelper.UpdateStatus(TN_Task.S_CODE, 4); + if (TN_Task.S_TYPE == "鎺ラ┏浣嶅叆搴�) + { + new SqlHelper<object>().GetInstance().Deleteable<CntrItemRel>().Where(a => TN_Task.S_CNTR_CODE.Contains(a.S_CNTR_CODE)).ExecuteCommand(); + new SqlHelper<object>().GetInstance().Deleteable<LocCntrRel>().Where(a => TN_Task.S_CNTR_CODE.Contains(a.S_CNTR_CODE)).ExecuteCommand(); + } + } + else + { + WCSHelper.UpdateStatus(TN_Task.S_CODE, 3); + } + + var op = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); + if (op != null) + { + if (op.N_B_STATE == 0) + { + //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�+ op.N_B_STATE = 3; + } + else if (op.N_B_STATE == 1) + { + if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4)) + { + op.N_B_STATE = 2; + } + else + { + op.N_B_STATE = 3; + } + } + + WMSHelper.UpdateTaskState(op); + } + NDCApi.CancelOrder(TN_Task.S_CODE.Trim()); + OperateStatus(TN_Task, 7); + } } } diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs index d8ef902..05454f0 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs @@ -703,7 +703,7 @@ else { LogHelper.Info($"鍏ュ簱浠诲姟 璁$畻缁堢偣锛屼换鍔$被鍨嬶細{a.S_OP_DEF_NAME}"); - if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱" || a.S_OP_DEF_NAME == "鐡跺澂闈炴�浜х┖妗嗗叆搴� || a.S_OP_DEF_NAME == "鐡跺澂鎺ラ┏浣嶅叆搴�) + if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱" || 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(); -- Gitblit v1.9.1