From 6eb9d76c2d89239b5161951346ef5cc5d0c9ebd1 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期三, 23 七月 2025 17:21:19 +0800 Subject: [PATCH] 1 --- HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs | 135 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 102 insertions(+), 33 deletions(-) diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs index 28101f5..5ba4346 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs @@ -723,46 +723,50 @@ LinZhiBCPWorkOrder bcpW = null; bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_WorkNo == mst.S_WORK_NO && a.S_WorkState == "鎵ц涓�).First(); LogHelper.Info($"婊℃墭浠诲姟鐢熸垚澶勭悊,宸ュ崟锛歿JsonConvert.SerializeObject(bcpW)}"); - if (mst.S_TYPE.Contains("鐡剁洊")) - { - //鐡剁洊鏃犲嵆浜у嵆鐢ㄥ拰闈炲嵆浜у嵆鐢�- var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜ф弧妗� && a.enable == 1).FirstOrDefault(); - if (bcpInfo != null) + if (bcpW != null) + { + if (mst.S_TYPE.Contains("鐡剁洊")) { - startLoca = DeviceProcess.getFDSXArea(db, bcpW, bcpInfo.areaCode); - } - } - else - { - if (bcpW.S_UsingNow == "Y") - { - LogHelper.Info($"鐡跺澂鍗充骇婊℃ 鏌ユ壘"); - startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃" && a.enable == 1).FirstOrDefault().areaCode; - startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea); + //鐡剁洊鏃犲嵆浜у嵆鐢ㄥ拰闈炲嵆浜у嵆鐢�+ var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜ф弧妗� && a.enable == 1).FirstOrDefault(); + if (bcpInfo != null) + { + startLoca = DeviceProcess.getFDSXArea(db, bcpW, bcpInfo.areaCode); + } } else { - LogHelper.Info($"鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃ 鏌ユ壘"); - string areaName = bcpW.S_PLineNo.Split('-')[1].Substring(0, 1) + "鍙风摱鍧炕鏂楁満闈炲嵆浜ф弧妗�; - startArea = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault().areaCode; - startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea); + if (bcpW.S_UsingNow == "Y") + { + LogHelper.Info($"鐡跺澂鍗充骇婊℃ 鏌ユ壘"); + startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇婊℃" && a.enable == 1).FirstOrDefault().areaCode; + startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea); + } + else + { + LogHelper.Info($"鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃ 鏌ユ壘"); + string areaName = bcpW.S_PLineNo.Split('-')[1].Substring(0, 1) + "鍙风摱鍧炕鏂楁満闈炲嵆浜ф弧妗�; + startArea = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault().areaCode; + startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea); + } } - } - if (startLoca != null) - { - LogHelper.Info("startLoca" + JsonConvert.SerializeObject(startLoca)); - string taskType = ""; - if (mst.S_TYPE == "缈绘枟鏈哄嵆浜х┖鎵樹笅绾匡紙鐡跺澂锛�) taskType = "缈绘枟鏈哄嵆浜ф弧鎵樹笂绾匡紙鐡跺澂锛�; - if (mst.S_TYPE == "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡跺澂锛�) taskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡跺澂锛�; - if (mst.S_TYPE == "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�) taskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡剁洊锛�; - var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoca.S_CODE).First(); - if (cntrInfo != null) + if (startLoca != null) { - WMSHelper.CreateOpTask(startLoca.S_CODE, mst.S_START_LOC, "鍑哄簱", taskType, cntrInfo.S_CNTR_CODE,"","",bcpW.S_WorkNo); + LogHelper.Info("startLoca" + JsonConvert.SerializeObject(startLoca)); + string taskType = ""; + if (mst.S_TYPE == "缈绘枟鏈哄嵆浜х┖鎵樹笅绾匡紙鐡跺澂锛�) taskType = "缈绘枟鏈哄嵆浜ф弧鎵樹笂绾匡紙鐡跺澂锛�; + if (mst.S_TYPE == "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡跺澂锛�) taskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡跺澂锛�; + if (mst.S_TYPE == "缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�) taskType = "缈绘枟鏈哄簱瀛樻弧鎵樹笂绾匡紙鐡剁洊锛�; + var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoca.S_CODE).First(); + if (cntrInfo != null) + { + WMSHelper.CreateOpTask(startLoca.S_CODE, mst.S_START_LOC, "鍑哄簱", taskType, cntrInfo.S_CNTR_CODE,"","",bcpW.S_WorkNo); + } + else LogHelper.Info($"鏈粦瀹氭墭鐩橈紝璐т綅鍙凤細{startLoca.S_CODE}"); } - else LogHelper.Info($"鏈粦瀹氭墭鐩橈紝璐т綅鍙凤細{startLoca.S_CODE}"); } + } } @@ -1571,11 +1575,11 @@ /// <param name="taskName"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> - internal static Location BCPFullOut(SqlSugarClient db, string taskName, string itemCode) + internal static Location BCPFullOut(SqlSugarClient db, string taskName, string itemCode,string batch) { Location result = null; - LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode}"); + LogHelper.Info($"鐡跺澂娉ㄥ婊℃墭涓嬬嚎锛氱被鍨嬶細{taskName}锛岀墿鏂欑紪鐮侊細{itemCode},鎵规鍙凤細{batch}"); if (taskName.Contains("鍗充骇")) { //娉ㄥ鏈哄嵆浜у嵆鐢ㄤ笅绾匡紝棣栧厛涓嬬嚎鍒板嵆浜у嵆鐢ㄦ弧妗嗙嚎杈癸紝婊$湺绾胯竟婊′簡锛屼笅鍒板嵆浜у嵆鐢ㄦ弧妗嗙紦瀛樺尯锛屾弧妗嗙紦瀛樺尯婊′簡锛屼笅鍒板叆搴撴帴椹冲爢鍙犱綅 @@ -2558,5 +2562,70 @@ NDCApi.CancelOrder(TN_Task.S_CODE.Trim()); OperateStatus(TN_Task, 7); } + + internal static Location BCPInOrOutTwo(SqlSugarClient db, string areaName, string itemCode) + { + Location result = null; + var areaInfo = Settings.areaInfos.Where(a => a.areaName.Contains(areaName) && a.enable == 1).OrderByDescending(a => a.pri).ToList(); + if (areaInfo.Count > 0) + { + foreach (var it in areaInfo) + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�area锛歿it.areaName},itemCode:{itemCode}"); + var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == it.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) + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�鏌ヨ鍒板彲鍑鸿揣浣嶆暟閲忥細{locList.Count}"); + foreach (var a in locList) + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�鏌ヨ璐т綅锛歿a.S_CODE},閿佺姸鎬侊細{a.S_LOCK_STATE}"); + if (a.S_LOCK_STATE == "鏃�) + { + var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_CODE).First(); + if (cntrInfo != null) + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�褰撳墠璐т綅缁戝畾鐨勬墭鐩樼爜涓猴細{cntrInfo.S_CNTR_CODE}"); + string endItemCode = ""; + var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First(); + if (itemInfo != null) + { + endItemCode = itemInfo.S_ITEM_CODE; + } + if (endItemCode == itemCode) + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�褰撳墠璐т綅缁戝畾鐨勭墿鏂欑紪鐮佷负锛歿endItemCode}锛岀墿鏂欑被鍨嬩负锛歿itemInfo.S_BATCH_NO},缁戝畾鏃堕棿涓猴細{itemInfo.T_CREATE}"); + if ((itemInfo.S_BATCH_NO == "闈炲嵆浜� && itemInfo.T_CREATE.AddHours(Settings.lQHours) <= DateTime.Now) || itemInfo.S_BATCH_NO == "鍗充骇") + { + //闈炲嵆浜х摱鍧渶瑕佸垽鏂喎鍗存椂闂存槸鍚﹀ぇ浜庝竴瀹氭椂闂�+ //鍒ゆ柇褰撳墠鎺掓湁鏃犻攣 + var lockInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == it.areaCode && b.N_ROW == a.N_ROW && (b.S_LOCK_STATE == "鍏ュ簱閿� || b.S_LOCK_STATE == "鍑哄簱閿�)).First(); + if (lockInfo == null) + { + result = a; + break; + } + else + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩�褰撳墠鎺掓湁閿侊紝璐т綅鍙凤細{lockInfo.S_CODE}"); + } + } + } + } + } + } + } + if (result != null) + { + break; + } + } + + } + else + { + LogHelper.Info($"鐡跺澂闈炲嵆浜ф弧妗嗚浆杩愶細{areaName}鏈厤缃�); + } + return result; + } } } -- Gitblit v1.9.1