From 7afc439ba32e234ebc455c98fa084ae6eef8a621 Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期四, 03 七月 2025 17:24:04 +0800 Subject: [PATCH] 优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 135 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 109 insertions(+), 26 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs index fcf0911..2600909 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -20,6 +20,7 @@ using static HH.WCS.JiaTong.api.ApiModel; using static HH.WCS.JiaTong.api.OtherModel; using static HH.WCS.JiaTong.LISTA.process.HttpModel; +using static HH.WCS.JiaTong.util.Settings; namespace HH.WCS.JiaTong.api { @@ -312,8 +313,31 @@ } else if (startArea.N_FLOOR != endArea.N_FLOOR) { - //妤煎眰鐢垫鍒嗛厤 - var elevatorLoc = LocationHelper.GetElevatorLoc(); + string deviceName = "鐢垫1"; + if (startloc.S_WH_CODE == "103") + { + deviceName = "鐢垫2"; + } + var eleLoc = Settings.deviceInfos.Where(a => a.deviceName.Trim() == deviceName).FirstOrDefault(); + if (eleLoc == null) + { + result.code = "1"; + result.msg = $"鏈壘鍒颁粨搴搟startloc.S_WH_CODE}鎵�搴旂殑鐢垫锛岃妫�煡閰嶇疆鏂囦欢"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } + //鏍规嵁浠诲姟鏁伴噺鍒ゆ柇閫佸線鍝釜鐢垫 锛堝叿浣撶數姊祦绋嬫牴鎹幇鍦虹數姊暟閲忥級 + string[] state = new string[] { "鎵ц涓�, "寮�鍙栬揣", "鍙栬揣瀹屾垚", "寮�鍗歌揣", "鍗歌揣瀹屾垚" }; + + + var elevatorLoc = db.Queryable<Location>().Where(a => a.S_CODE == eleLoc.TN_Location).First(); + if (elevatorLoc == null) + { + result.code = "1"; + result.msg = $"鏍规嵁鐢垫閰嶇疆鏂囦欢璐т綅锛歿eleLoc.TN_Location}鏈壘鍒板浜庤揣浣嶆暟鎹紝璇锋鏌ヨ揣浣嶈〃"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } if (elevatorLoc != null) { //鍒涘缓wcs鍒嗘浠诲姟 @@ -793,7 +817,7 @@ return result; } var db = new SqlHelper<object>().GetInstance(); - Location loc = new Location(); + Location loc = null; string Start = model.InitialLocation; //璧风偣璐т綅 string itemcode = model.PartNumber; //鐗╂枡缂栫爜 @@ -1335,12 +1359,14 @@ loc = StorageCompute(itemcode, areacode); if (loc == null) { + result.code = "1"; result.msg = $"搴撳尯锛歿areacode}娌℃湁鍙敤璐т綅"; LogHelper.Info($" {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); return result; // LogHelper.Info($"搴撳尯锛歿areacode}娌℃湁鍙敤璐т綅"); + } //else //{ @@ -2127,35 +2153,49 @@ var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).First(); if (cntr == null) { - result.code = "1"; result.msg = $"璧风偣{model.Data.start_loc_code}鏈煡璇㈢粦瀹氭墭鐩�; LogHelper.Info($"callfixture:鍒涘缓绌哄伐瑁呭懠鍙换鍔�=>{result.msg}"); AddErrorInfo("鏌ユ壘鎵樼洏澶辫触", result.msg, Source); return result; } - - // var startArea = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == startloc.S_AREA_CODE).First(); - //var endArea = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == endloc.S_AREA_CODE).First(); - - //string dtcode = "DT-01"; - ////妤煎眰鐢垫鍒嗛厤 - //var Diantiloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == dtcode).First(); - //if (Diantiloc == null) - //{ - // result.code = "1"; - // result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹揣浣嶇紪鐮�{dtcode}鏈壘鍒扮數姊揣浣�; - // AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); - // return result; - //} - + string deviceName = "鐢垫1"; + if (startloc.S_WH_CODE == "103") + { + deviceName = "鐢垫2"; + } + var eleLoc = Settings.deviceInfos.Where(a => a.deviceName.Trim() == deviceName).FirstOrDefault(); + if (eleLoc == null) + { + result.code = "1"; + result.msg = $"鏈壘鍒颁粨搴搟startloc.S_WH_CODE}鎵�搴旂殑鐢垫锛岃妫�煡閰嶇疆鏂囦欢"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } //鏍规嵁浠诲姟鏁伴噺鍒ゆ柇閫佸線鍝釜鐢垫 锛堝叿浣撶數姊祦绋嬫牴鎹幇鍦虹數姊暟閲忥級 - var elevatorLoc = LocationHelper.GetElevatorLoc(); + string[] state = new string[] { "鎵ц涓�, "寮�鍙栬揣", "鍙栬揣瀹屾垚", "寮�鍗歌揣", "鍗歌揣瀹屾垚" }; + + var elevatorLoc = db.Queryable<Location>().Where(a => a.S_CODE == eleLoc.TN_Location).First(); + if (elevatorLoc == null) + { + result.code = "1"; + result.msg = $"鏍规嵁鐢垫閰嶇疆鏂囦欢璐т綅锛歿eleLoc.TN_Location}鏈壘鍒板浜庤揣浣嶆暟鎹紝璇锋鏌ヨ揣浣嶈〃"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } + int mst = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鐢垫") && state.Contains(a.S_B_STATE) && (a.S_END_LOC == elevatorLoc.S_CODE || a.S_START_LOC == elevatorLoc.S_CODE)).Count(); + if (mst > 0) + { + result.code = "1"; + result.msg = $"鐢垫瀛樺湪浠诲姟锛屼笉鍏佽鍒涘缓鐢垫浠诲姟"; + AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source); + return result; + } var wcsTask = new WCSTask { S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鐢垫2", + S_TYPE = "1妤肩數姊惉杩�, S_EQ_NO = model.Data.task_no, S_START_LOC = elevatorLoc.S_CODE, S_END_LOC = endloc.S_CODE, @@ -2167,7 +2207,8 @@ N_SCHEDULE_TYPE = 1, S_CNTR_CODE = cntr.S_CNTR_CODE, N_END_LAYER = 1, - Z_TYPE = 6 + Z_TYPE = 6, + S_B_STATE = "鐢垫鎺ㄩ�" }; @@ -2228,6 +2269,47 @@ } + + /// <summary> + /// 鐢垫浠诲姟鎺ㄩ� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + internal static Result DT(DTModel model) + { + Result result = new Result() { code = "200", msg = "鐢垫浠诲姟鎺ㄩ�鎴愬姛" }; + string Source = "WMS"; + if (model == null) + { + result.code = "1"; + result.msg = "鍙傛暟涓簄ull"; + AddErrorInfo("鍙傛暟涓虹┖", result.msg, Source); + return result; + } + try + { + if (model.prepare=="1") + { + var db = new SqlHelper<object>().GetInstance(); + //淇敼瀵瑰簲鐢垫浠诲姟杩涜鎺ㄩ� + return result; + } + else + { + result.code = "1"; + result.msg = $"涓�ゼ鐢垫鎼繍浠诲姟鎺ㄩ�澶辫触 prepare{model.prepare}涓嶄负1"; + LogHelper.Info(result.msg); + return result; + } + } + catch(Exception ex) + { + result.code = "1"; + result.msg = $"鐢垫浠诲姟鎺ㄩ�澶辫触 閿欒淇℃伅锛歿ex}"; + LogHelper.Error("鐐瑰鐐逛换鍔�Error锛� + ex.ToString(), ex); + return result; + } + } /// <summary> /// 璐т綅淇℃伅涓婁紶 /// </summary> @@ -2560,12 +2642,14 @@ // var aaa = db.Deleteable<Location>(a => a.S_ID == "867C567A-183C-413B-9891-15D8F6DE1620").ExecuteCommand(); // var aaa = db.Deleteable<Location>(a => a.S_ID.Trim() == "867C567A-183C-413B-9891-15D8F6DE1620").ExecuteCommand(); + //LogHelper.Info($"鏂规硶锛歋torageCompute"); var list = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.S_AREA_CODE == areacode && a.N_LOCK_STATE == 0).ToList(); // LogHelper.Info($"鍒涘缓绌烘墭鍥炲簱浠诲姟,缁堢偣璐т綅闆嗗悎锛氭牴鎹簱鍖虹紪鐮侊細{areacode}" + list.Count); //list.RemoveAll(a => string.IsNullOrEmpty(a.S_CODE.Trim()) || a.S_CODE == null || string.IsNullOrWhiteSpace(a.S_CODE.Trim())); // list = list.FindAll(a => a.N_ROW > 0 && a.N_COL > 0); //LogHelper.Info("鍒涘缓绌烘墭鍥炲簱浠诲姟,缁堢偣璐т綅闆嗗悎杩囨护锛� + list.Count); + if (list.Count > 0) { result = FindEndcolByLocList(list); @@ -2685,7 +2769,7 @@ else { return ContainerHelper.CreateCntrItem(taskData.pickStation, partData.rfid, partData.partNumber, partData.partDesc, partData.partType, taskData.carrierType, partData.lotNumber, taskData.wmsLot, partData.weight, partData.unit, - taskData.tyreType, taskData.supplier, taskData.receiveLot, taskData.subpool, partData.productionTime, partData.maturityTime, taskData.level); + taskData.tyreType, taskData.supplier, taskData.receiveLot, taskData.subpool, partData.productionTime, partData.maturityTime, taskData.level, partData.qty, partData.qtyCfg); } } @@ -2791,14 +2875,14 @@ { var rowList = locations.Where(r => r.N_ROW == rows[i]).ToList(); - LogHelper.Info($"褰撳墠鎺�{rows[i]},鑾峰緱璐т綅{JsonConvert.SerializeObject(rowList)}"); + // LogHelper.Info($"褰撳墠鎺�{rows[i]},鑾峰緱璐т綅{JsonConvert.SerializeObject(rowList)}"); if (rowList.Count(a => a.N_CURRENT_NUM == 0) > 0) { Location other = null; //褰撳墠鎺掓病鏈夐攣骞朵笖鏈夌┖浣嶇疆 // other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y").FirstOrDefault(); - other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && !string.IsNullOrEmpty(a.S_CODE.Trim()) && !string.IsNullOrWhiteSpace(a.S_CODE.Trim())).FirstOrDefault(); + other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0).FirstOrDefault(); //if (full == null) //{ // //娌℃湁婊′綅锛岄偅灏辨壘鏈�皬鐨勭┖浣�@@ -2969,7 +3053,6 @@ { lock (AGVDeviceReceiveLock) { - var db = new SqlHelper<HangChaAGV>().GetInstance(); var agvDeviceInfo = db.Queryable<HangChaAGV>().Where(a => a.agvNo.Trim() == forkliftNo).First(); if (agvDeviceInfo == null) -- Gitblit v1.9.1