From 33d7bb06f2dc6454bf72b2bd05a92917513177e1 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期二, 15 七月 2025 18:04:00 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs | 85 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 74 insertions(+), 11 deletions(-) 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); + } } } -- Gitblit v1.9.1