From 8accda250de2a637336a40e04085e1a0cb556c5c Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期一, 23 六月 2025 17:30:36 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs | 336 +++++++++++++++---------------------------------------- 1 files changed, 92 insertions(+), 244 deletions(-) diff --git a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs index 0fb1a31..84f4f6a 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs @@ -5,13 +5,15 @@ using HH.WCS.Mobox3.NFLZ.util; using HH.WCS.Mobox3.NFLZ.wms; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; +using System.Xml.Linq; using static HH.WCS.Mobox3.NFLZ.api.OtherModel; -using static HH.WCS.Mobox3.NFLZ.dispatch.NDC; +using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi; using static HH.WCS.Mobox3.NFLZ.wms.WMSHelper.AddChangeModel; namespace HH.WCS.Mobox3.NFLZ.process @@ -144,15 +146,18 @@ if (mst.S_TYPE.Contains("绌烘墭涓婄嚎")) { LogHelper.Info($"{mst.S_TYPE}鍗歌揣瀹屾垚锛屽啓鍏ヤ俊鍙�); - //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�- var locCode = mst.S_END_LOC; - var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault(); - if (devInfo != null) + if(state == 6) { - var signal = devInfo.TN_Location[0] == mst.S_END_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A"; - if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍗歌揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}"); + //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�+ var locCode = mst.S_END_LOC; + var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault(); + if (devInfo != null) + { + var signal = devInfo.TN_Location[0] == mst.S_END_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A"; + if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍗歌揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}"); + } + else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_END_LOC}"); } - else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_END_LOC}"); } if (mst.S_TYPE.Contains("婊℃墭涓婄嚎")) { @@ -174,7 +179,7 @@ var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault(); if (devInfo != null) { - var signal = "3F 00 12 22 00 0D 0A"; + var signal = "3F 00 12 21 0D 0A"; if (state == 1102) signal = "3F 00 10 20 0D 0A"; if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}"); } @@ -183,15 +188,18 @@ if (mst.S_TYPE.Contains("婊℃墭涓嬬嚎")) { LogHelper.Info($"{mst.S_TYPE}鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙�); - //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�- var locCode = mst.S_START_LOC; - var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault(); - if (devInfo != null) + if(state == 4) { - var signal = devInfo.TN_Location[0] == mst.S_START_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A"; - if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}"); + //鏍规嵁璧风偣鍒ゆ柇鏄疉鍙h繕鏄疊鍙�+ var locCode = mst.S_START_LOC; + var devInfo = Settings.deviceInfos.Where(a => a.TN_Location.Contains(locCode)).FirstOrDefault(); + if (devInfo != null) + { + var signal = devInfo.TN_Location[0] == mst.S_START_LOC ? "3F 00 10 0D 0A" : "3F 00 20 0D 0A"; + if (PlcHelper.SendHex(devInfo.address, signal)) LogHelper.Info($"{mst.S_TYPE}浠诲姟鍙栬揣瀹屾垚锛屽啓鍏ヤ俊鍙凤細{signal}锛宨p锛歿devInfo.address}"); + } + else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_START_LOC}"); } - else LogHelper.Info($"璁惧鏈壘鍒帮紝璐т綅鍙凤細{mst.S_START_LOC}"); } } @@ -654,7 +662,6 @@ if (state == 6)//鍗歌揣瀹屾垚 { claimGoodsTime(mst, state); - writeSignal(mst); CacheBitUpdate(mst, false); } if (state == 7) @@ -677,10 +684,11 @@ if (mst.S_TYPE.Contains("婊℃墭涓嬬嚎")) { LogHelper.Info($"绌烘墭浠诲姟鐢熸垚澶勭悊锛屼换鍔$被鍨嬶細{mst.S_TYPE}"); - var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂绌烘墭" && a.enable == 1).First(); + string areaName = mst.S_TYPE.Contains("搴撳瓨") ? "鐡惰儦闈炲嵆浜х┖妗� : "鐡惰儦鍗充骇绌烘"; + var areaInfo = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).First(); if(areaInfo != null) { - startLoca = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_COL).First(); + startLoca = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).OrderBy(a => a.N_ROW).First(); if (startLoca != null) { LogHelper.Info("startLoca" + JsonConvert.SerializeObject(startLoca)); @@ -706,19 +714,12 @@ LogHelper.Info($"婊℃墭浠诲姟鐢熸垚澶勭悊锛屼换鍔$被鍨嬶細{mst.S_TYPE}"); string startArea = ""; LinZhiBCPWorkOrder bcpW = null; - if (mst.S_TYPE.Contains("鐡跺澂")) - { - bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鍐滃か鏋楄姖-鐡跺澂缈绘枟鏈�) && a.S_WorkState == "鎵ц涓�).First(); - } - else - { - bcpW = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈�) && a.S_WorkState == "鎵ц涓�).First(); - } - + 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(); + var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜ф弧妗� && a.enable == 1).FirstOrDefault(); if (bcpInfo != null) { startLoca = DeviceProcess.getFDSXArea(db, bcpW, bcpInfo.areaCode); @@ -728,18 +729,15 @@ { if (bcpW.S_UsingNow == "Y") { - LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏌ユ壘"); - startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤A" && a.enable == 1).FirstOrDefault().areaCode; + LogHelper.Info($"鐡惰儦鍗充骇婊℃ 鏌ユ壘"); + startArea = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍗充骇婊℃" && a.enable == 1).FirstOrDefault().areaCode; startLoca = DeviceProcess.getFDSXArea(db, bcpW, startArea); - if (startLoca == null) - { - LogHelper.Info($"鐡跺澂鍗充骇鍗崇敤A搴撳尯鏈壘鍒版弧鎵橈紝鍘荤摱鍧嵆浜у嵆鐢˙搴撳尯鏌ユ壘"); - startLoca = TaskProcess.BCPInOrOut(db, true, "鐡跺澂鍗充骇鍗崇敤B", bcpW.S_ItemCode); - } } else { - startArea = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault().areaCode; + 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); } } @@ -754,7 +752,7 @@ 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); + WMSHelper.CreateOpTask(startLoca.S_CODE, mst.S_START_LOC, "鍑哄簱", taskType, cntrInfo.S_CNTR_CODE,"","",bcpW.S_WorkNo); } else LogHelper.Info($"鏈粦瀹氭墭鐩橈紝璐т綅鍙凤細{startLoca.S_CODE}"); } @@ -1103,8 +1101,16 @@ TsNo = 1; // 鍧洊浠诲姟涓嬪彂鍙傛暟鑾峰彇 // 鑾峰彇璧风粓鐐圭殑AGV绔欑偣 - Extend1 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE; - Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE; + Extend1 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_START_LOC).First().S_AGV_SITE; + Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC).First().S_AGV_SITE; + if (mst.N_START_LAYER > 1) + { + 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; + } + if (mst.N_END_LAYER > 1) + { + Extend2 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE; + } Extend3 = "0"; // 鑾峰彇 浠诲姟鍙傛暟4 DATA 鏁版嵁 string startLayerValue = Convert.ToString(startLayer, 16).ToUpper(); @@ -1141,21 +1147,43 @@ Console.WriteLine($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}"); LogHelper.Info($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}"); bool action = true; - var dic = new Dictionary<string, string>(); - //var dic1 = new Dictionary<string, string>(); - //dic.Add("Pri", mst.N_PRIORITY.ToString()); - //dic.Add("No", mst.S_CODE.Trim()); - dic.Add("From", Extend1); - dic.Add("To", Extend2); - dic.Add("Func", Extend3); - dic.Add("Data", Extend4); - + //var dic = new Dictionary<string, string>(); + ////var dic1 = new Dictionary<string, string>(); + ////dic.Add("Pri", mst.N_PRIORITY.ToString()); + ////dic.Add("No", mst.S_CODE.Trim()); + //dic.Add("From", Extend1); + //dic.Add("To", Extend2); + //dic.Add("Func", Extend3); + //dic.Add("Data", Extend4); + // + //if (ConveryTaskList.Contains(taskType) || taskType.Contains("绉诲簱")) + //{ + // dic.Add("ItemHeight", Extend5); + // dic.Add("CntrType", Extend6); + // dic.Add("FromCol", Extend7); + // dic.Add("ToCol", Extend8); + // if (taskType.Contains("绉诲簱") || taskType.Contains("鎴愬搧涓嬬嚎") || taskType.Contains("闆跺ご涓嬬嚎")) + // { + // LogHelper.Info($"绉诲簱锛欵xtend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},"); + // if (Extend5 == "" || Extend6 == "" || Extend7 == "" || Extend8 == "") + // { + // action = false; + // } + // } + //} + var dic = new List<param> + { + new param() { name = "From", value = Extend1 }, + new param() { name = "To", value = Extend2 }, + new param() { name = "Func", value = Extend3 }, + new param() { name = "Data", value = Extend4 } + }; if (ConveryTaskList.Contains(taskType) || taskType.Contains("绉诲簱")) { - dic.Add("ItemHeight", Extend5); - dic.Add("CntrType", Extend6); - dic.Add("FromCol", Extend7); - dic.Add("ToCol", Extend8); + dic.Add(new param(){name = "ItemHeight", value = Extend5}); + dic.Add(new param(){name = "CntrType", value = Extend6}); + dic.Add(new param(){name = "FromCol", value = Extend7}); + dic.Add(new param(){name = "ToCol", value = Extend8}); if (taskType.Contains("绉诲簱") || taskType.Contains("鎴愬搧涓嬬嚎") || taskType.Contains("闆跺ご涓嬬嚎")) { LogHelper.Info($"绉诲簱锛欵xtend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},"); @@ -1165,13 +1193,13 @@ } } } - if (action) { - var res = new AGVResult(); - res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic); + var res = new AgvApiResult(); + //res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic); + res = NDCApi.AddOrderNew(TsNo, mst.N_PRIORITY, mst.S_CODE,dic); - if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009)) + if (res != null && (res.err_code == 0 || res.err_code == 50009)) { mst.N_B_STATE = 1; WCSHelper.UpdateStatus(mst, "宸叉帹閫�); @@ -1516,14 +1544,12 @@ } if (result == null) { - result = TaskProcess.BCPInOrOut(db, true, "鐡惰儦鍗充骇婊℃缂撳瓨鍖�, itemCode); + result = TaskProcess.BCPInOrOut(db, true, "鐡惰儦鍗充骇婊℃缂撳瓨", itemCode); } if(result == null) { - //result = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemCode); result = getJBLoc(db, result); } - } else { @@ -1566,13 +1592,13 @@ internal static Location BCPEmptyOut(SqlSugarClient db, string taskName) { Location result = null; - //缈绘枟鏈哄簱瀛樼┖鎵樹笅绾匡紙鐡剁洊锛�- string endAreaName = taskName.Contains("鐡剁洊") ? "鐡剁洊绌烘墭" : "鐡跺澂绌烘墭"; + + string endAreaName = taskName.Contains("鐡剁洊") ? "鐡剁洊闈炲嵆浜х┖妗� : taskName.Contains("搴撳瓨") ? "鐡惰儦闈炲嵆浜х┖妗� : "鐡惰儦鍗充骇绌烘"; var areaInfo = Settings.areaInfos.Where(a => a.areaName == endAreaName && a.enable == 1).FirstOrDefault(); - if(areaInfo != null) + 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) + 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; } @@ -1581,187 +1607,9 @@ { LogHelper.Info($"{endAreaName}鏈厤缃�); } + return result; } - - /// <summary> - /// 鍗婃垚鍝佺Щ搴�- /// </summary> - /// <param name="action">true - 宸ュ崟寮�惎 false - 宸ュ崟鍏抽棴</param> - /// <param name="machine">璁惧</param> - internal static void BCPYiKu(bool action, string machine) - { - var db = new SqlHelper<object>().GetInstance(); - Location startLoc = null; - Location endLoc = null; - if (action) - { - if(machine == "鐡跺澂缈绘枟鏈�) - { - //鐡跺澂缈绘枟鏈�- //寮�惎锛屽垽鏂伐鍗曠被鍨嬶紝鏍规嵁宸ュ崟绫诲瀷琛ュ厖瀵瑰簲鐨勫簱鍖�鍗充骇鍗崇敤涓嶈ˉ鍏�- var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault(); - if (areaInfo != null) - { - var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "鍐滃か鏋楄姖-鐡舵壒缈绘枟鏈� && a.S_WorkState == "鎵ц涓�).First(); - if (workInfo.S_UsingNow == "N") - { - startLoc = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯", workInfo.S_ItemCode); - endLoc = 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(); - } - } - else - { - LogHelper.Info("鐡跺澂闈炲嵆浜у嵆鐢ㄦ湭閰嶇疆"); - } - - } - if (machine == "鐡跺澂娉ㄥ鏈�) - { - //寮�惎锛屾煡璇�鐡跺澂绌烘墭 鏄惁绌烘墭鏁伴噺澶т簬3鎵橈紝濡傛灉涓嶅ぇ浜庯紝鍒欒ˉ绌烘墭 - 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 && a.S_LOCK_STATE == "鏃�).ToList(); - if(locList.Count > 2) - { - LogHelper.Info("鐡跺澂绌烘墭 琛ョ┖鎵�); - startLoc = TaskProcess.BCPInOrOut(db, false, "鐡跺澂搴撳尯",""); - endLoc = 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(); - } - } - else - { - LogHelper.Info("鐡跺澂娉ㄥ鏈虹┖鎵樻湭閰嶇疆"); - } - - } - if (machine == "鐡剁洊缈绘枟鏈�) - { - //寮�惎锛屾煡璇�鐡剁洊闈炴�浜ф�鐢�鐗╂枡鏄惁婊★紝涓嶆弧鍒欒ˉ鍏呯墿鏂�- 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) - { - LogHelper.Info("鐡剁洊闈炲嵆浜у嵆鐢�琛ユ弧鎵�); - var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈� && a.S_WorkState == "鎵ц涓�).First(); - startLoc = TaskProcess.BCPInOrOut(db, false, "鐡剁洊搴撳尯", workInfo.S_ItemCode); - endLoc = 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(); - } - } - else - { - LogHelper.Info("鐡剁洊闈炲嵆浜у嵆鐢ㄦ湭閰嶇疆"); - } - } - } - else - { - if (machine == "鐡跺澂缈绘枟鏈�) - { - //鍏抽棴锛屾煡璇�鐡跺澂闈炲嵆浜у嵆鐢�鐡跺澂鍗充骇鍗崇敤A 鐡跺澂鍗充骇鍗崇敤B 鏄惁鏈夌墿鏂欙紝鏈夊垯鍏ュ簱 - var areaList = Settings.areaInfos.Where(a => (a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� || a.areaName == "鐡跺澂鍗充骇鍗崇敤A") && a.enable == 1).ToList(); - if (areaList.Count > 0) - { - foreach(var a in areaList) - { - startLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.areaCode && b.N_CURRENT_NUM > 0 && b.S_LOCK_STATE == "鏃�).Includes(b => b.LocCntrRel).First(); - if (startLoc != null) break; - } - } - if (startLoc == null) - { - var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤B" && a.enable == 1).FirstOrDefault(); - if(areaInfo != null) - { - var locInfo = 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(locInfo.Count > 0) - { - foreach(var a in locInfo) - { - int row = a.N_ROW; - var lockInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_ROW == a.N_ROW && (b.S_LOCK_STATE == "鍏ュ簱閿� || b.S_LOCK_STATE == "鍑哄簱閿�)).First(); - if(lockInfo == null) - { - startLoc = a; - } - } - } - } - } - if(startLoc != null) - { - if (startLoc.LocCntrRel != null) - { - var itemInfo = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == startLoc.LocCntrRel.S_CNTR_CODE).First(); - if (itemInfo != null) - { - endLoc = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", itemInfo.S_ITEM_CODE); - } - } - } - } - if (machine == "鐡跺澂娉ㄥ鏈�) - { - //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱 - var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂娉ㄥ鏈虹┖鎵� && a.enable == 1).FirstOrDefault(); - if (areaInfo != null) - { - startLoc = 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(startLoc != null) - { - endLoc = TaskProcess.BCPInOrOut(db, true, "鐡跺澂搴撳尯", ""); - } - } - } - if (machine == "鐡剁洊缈绘枟鏈�) - { - //鍏抽棴锛�1銆佹煡璇�鐡剁洊绌烘墭 鏄惁杩樻湁鎵樼洏锛屾湁鍒欏叆搴� 2銆佹煡璇㈢摱鐩栭潪鍗充骇鍗崇敤 鏄惁鏈夌墿鏂欙紝 鏈夊垯鍏ュ簱 - //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱 - - //鏌ヨ绌烘墭搴撳尯 - var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊绌烘墭" && a.enable == 1).FirstOrDefault(); - if (areaInfo != null) - { - startLoc = 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 (startLoc != null) - { - endLoc = TaskProcess.BCPInOrOut(db, true, "鐡剁洊搴撳尯", ""); - } - } - - //鏌ヨ婊℃墭搴撳尯 - if(startLoc == null) - { - areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜у嵆鐢� && a.enable == 1).FirstOrDefault(); - if (areaInfo != null) - { - startLoc = 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 (startLoc != null) - { - if(startLoc.LocCntrRel != null) - { - var itemInfo = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == startLoc.LocCntrRel.S_CNTR_CODE).First(); - if(itemInfo != null) - { - endLoc = TaskProcess.BCPInOrOut(db, true, "鐡剁洊搴撳尯", itemInfo.S_ITEM_CODE); - } - } - } - } - } - } - } - - if (startLoc != null && endLoc != null) - { - WMSHelper.CreateOpTask(startLoc.S_CODE, endLoc.S_CODE, "鍏ュ簱", "鍗婃垚鍝佺Щ搴�, startLoc.LocCntrRel.S_CNTR_CODE); - } - } - - /// <summary> /// FuLeWebPost -- Gitblit v1.9.1