From 00ecab4ee5cec0d04665ca16d0eb30c1ba4ea1f3 Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期三, 09 七月 2025 17:32:24 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 190 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 156 insertions(+), 34 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 1bec18f..b40756c 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -47,6 +47,7 @@ /// <returns></returns> internal static Result Createtask(CreateTask model) { + Result result = new Result() { code = "0", msg = "鍒涘缓鎴愬姛" }; if (model == null) { @@ -187,14 +188,7 @@ } } - //else - //{ - // result.code = "1"; - // result.msg = $"鏍规嵁璧风偣{Start},鏈壘鍒版墭鐩樿揣浣嶇粦瀹氬叧绯�; - // AddErrorInfo("鎵樼洏鏌ユ壘澶辫触", result.msg, Source); - // return result; - //} - + } else { @@ -589,6 +583,15 @@ AddErrorInfo("搴撳尯鏌ユ壘澶辫触", result.msg); return result; } + int pri = 1; + var area = Settings.wareLoc.Where(a => a.AreaCode == endloc.S_WH_CODE).First(); + if (area != null) + { + if (area.XbAreaCodes.Contains(endloc.S_AREA_CODE)) + { + pri = 2; + } + } //鍒涘缓wcs浠诲姟 var wcsTask = new WCSTask { @@ -603,7 +606,7 @@ S_END_AREA = endloc.S_AREA_CODE, N_SCHEDULE_TYPE = 1, S_CNTR_CODE = CntrCode, - N_PRIORITY = taskData.priority, + N_PRIORITY = pri, Z_TYPE = n_type, N_START_LAYER = 1, N_END_LAYER = 1, @@ -768,7 +771,7 @@ { //鍒涘缓鎵樼洏鏁版嵁缁戝畾鍏崇郴 - if (ContainerHelper.CreateCntrItem(model.Rfid, model.PartNumber, model.PartDesc, model.LotNumber, model.Weight, model.Qty, model.ProductionTime, model.MaturityTime)) + if (ContainerHelper.CreateCntrItemTray(model.Rfid, model.PartNumber, model.PartDesc, model.LotNumber, model.Weight, model.Qty, model.ProductionTime, model.MaturityTime, model.PowderType)) { //鍒涘缓鎴愬姛娴佺▼ } @@ -961,6 +964,7 @@ S_CNTR_CODE = model.Rfid, N_START_LAYER = 1, N_END_LAYER = 1, + N_PRIORITY = 1, Z_TYPE = n_type }; LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); @@ -1089,27 +1093,51 @@ #region 鏍规嵁鐗╂枡缂栫爜璁$畻鍑哄簱璐т綅锛岄�寰�嚎杈逛綅缃� Location Endloc = null; + //鏍规嵁鐗╂枡缂栫爜璁$畻鍑哄簱璐т綅 - var loc = airlift(areacode, itemcode, model.PartLevel); + var loc = airlift(areacode, itemcode, model.PartLevel, model.PowderType); if (loc != null) { Start = loc.S_CODE; - //鏍规嵁鍑哄簱璐т綅鎵惧埌缁戝畾鎵樼洏锛岃幏鍙栧叆鏈哄彴璐т綅 + var CntrRel = LocationHelper.GetLocCntrRel(loc.S_CODE).FirstOrDefault(); CntrCode = CntrRel.S_CNTR_CODE; - Endloc = Computeloc(CntrCode, model.WorkCenter, cntrType); - if (Endloc != null) + //缁欑粓鐐圭敤缁堢偣锛屾病缁欑粓鐐圭敤鏈哄彴搴撳尯璁$畻璐т綅 + if (string.IsNullOrEmpty(model.TargetLocation)) { - End = Endloc.S_CODE; + + Endloc = Computeloc(CntrCode, model.WorkCenter, cntrType); + if (Endloc != null) + { + End = Endloc.S_CODE; + } + else + { + result.code = "1"; + result.msg = $"Computeloc==銆嬫牴鎹満鍙扮紪鐮侊細{model.WorkCenter},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } } else { - result.code = "1"; - result.msg = $"Computeloc==銆嬫牴鎹満鍙扮紪鐮侊細{model.WorkCenter},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�; - LogHelper.Info($"ItemBack锛歿result.msg}"); - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; + + Endloc = db.Queryable<Location>().Where(a => a.S_CODE == model.TargetLocation).First(); + if (Endloc != null) + { + End = Endloc.S_CODE; + } + else + { + result.code = "1"; + result.msg = $"Computeloc==銆嬫牴鎹粓鐐硅揣浣嶏細{model.TargetLocation} 鏈壘鍒拌揣浣嶆暟鎹紝璇锋鏌ヨ揣浣嶈〃"; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } } + } else { @@ -1159,6 +1187,7 @@ S_CNTR_CODE = CntrCode, N_START_LAYER = 1, N_END_LAYER = 1, + N_PRIORITY = 1, Z_TYPE = n_type }; @@ -1418,6 +1447,8 @@ S_CNTR_CODE = model.Rfid, N_START_LAYER = 1, N_END_LAYER = endlayer, + N_PRIORITY = 1, + S_B_STATE="绛夊緟鎺ㄩ�", Z_TYPE = 5 }; LogHelper.Info("鍒涘缓绌烘墭鍥炲簱浠诲姟锛� + JsonConvert.SerializeObject(wcsTask)); @@ -1597,6 +1628,7 @@ N_START_LAYER = 1, N_END_LAYER = 1, Z_TYPE = 5, + N_PRIORITY = 1, S_NOTE = "绮夋枡" }; LogHelper.Info("鍒涘缓鍛煎彨绌烘墭浠诲姟锛� + JsonConvert.SerializeObject(wcsTask)); @@ -1821,6 +1853,7 @@ S_CNTR_CODE = model.Rfid, N_START_LAYER = 1, N_END_LAYER = 1, + N_PRIORITY = 1, Z_TYPE = 5 }; @@ -2072,6 +2105,7 @@ S_CNTR_CODE = CntrCode, N_START_LAYER = 1, N_END_LAYER = 1, + N_PRIORITY = 1, // N_TYPE = n_type @@ -2176,8 +2210,8 @@ string[] state = new string[] { "鎵ц涓�, "寮�鍙栬揣", "鍙栬揣瀹屾垚", "寮�鍗歌揣", "鍗歌揣瀹屾垚" }; - var elevatorLoc = db.Queryable<Location>().Where(a => a.S_CODE == eleLoc.TN_Location).First(); - if (elevatorLoc==null) + 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}鏈壘鍒板浜庤揣浣嶆暟鎹紝璇锋鏌ヨ揣浣嶈〃"; @@ -2208,6 +2242,7 @@ S_CNTR_CODE = cntr.S_CNTR_CODE, N_END_LAYER = 1, Z_TYPE = 6, + N_PRIORITY = 1, S_B_STATE = "鐢垫鎺ㄩ�" }; @@ -2269,6 +2304,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> @@ -2437,10 +2513,9 @@ var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First(); if (location != null) { - var loccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).ToList(); + var loccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc.Trim()).ToList(); if (loccntr.Count > 0) { - var cntrcodes = loccntr.Select(a => a.S_CNTR_CODE.Trim()).ToList(); if (LocationHelper.Clear(loc, cntrcodes)) { @@ -2624,8 +2699,10 @@ /// <param name="areacode"></param> /// <param name="itemcode"></param> /// <param name="level">鐗╂枡绛夌骇</param> + /// <param name="powderType">鏈哄瀷</param> /// <returns></returns> - internal static Location airlift(string areacode, string itemcode, string level = "") + internal static Location + airlift(string areacode, string itemcode, string level, string powderType) { var db = new SqlHelper<object>().GetInstance(); Location result = null; @@ -2682,8 +2759,8 @@ //} #endregion - var loc = LocationHelper.GetLocByItemCode(areacode, itemcode, level); - LogHelper.Info($"airlift=>鏍规嵁搴撳尯缂栫爜:{areacode}锛岀墿鏂欑紪鐮�{itemcode},鐗╂枡绛夌骇璁$畻鍑烘湁鎵樼洏璐т綅{JsonConvert.SerializeObject(loc)}"); + var loc = LocationHelper.GetLocByItemCode(areacode, itemcode, level, powderType); + LogHelper.Info($"airlift=>鏍规嵁搴撳尯缂栫爜:{areacode}锛岀墿鏂欑紪鐮�{itemcode},鏈哄瀷{powderType},鐗╂枡绛夌骇璁$畻鍑烘湁鎵樼洏璐т綅{JsonConvert.SerializeObject(loc)}"); // result = FindStartcolByLoclist(loc); if (loc.Count > 0) { @@ -2765,16 +2842,20 @@ lock (_lockLocation) { - var loc = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == jtcode.Trim() && a.S_NOTE == cntrType && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃�).First(); - if (loc != null) + if (string.IsNullOrEmpty(cntrType)) { - End = loc; + End = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == jtcode.Trim() && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃�).First(); } else { + End = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == jtcode.Trim() && a.S_NOTE == cntrType && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃�).First(); + } + + if (End == null) + { LogHelper.Info($"Computeloc==銆嬫牴鎹満鍙板垎缁勶細{jtcode},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�); } - + } return End; } @@ -2818,6 +2899,48 @@ } /// <summary> + /// 鍚堣偉浣抽�鎺ュ彛璋冪敤淇℃伅 + /// </summary> + /// <param name="source">绯荤粺鏉ユ簮</param> + /// <param name="name">鎺ュ彛鍚嶇О</param> + /// <param name="type">璇锋眰鍦板潃绫诲瀷</param> + /// <param name="body">璇锋眰鍙傛暟</param> + /// <param name="url">璇锋眰鍦板潃</param> + /// <param name="err">閿欒淇℃伅</param> + /// <returns></returns> + public static bool AddInfo(string source, string name, string body, string err, string type, string url) + { + bool result = false; + var db = new SqlHelper<object>().GetInstance(); + try + { + var error = new GT_Interface_Exc + { + S_SOURCE = source, + S_NAME = name, + S_TYPE = type, + S_URL = url, + S_BODY = body, + S_ERR = err + }; + if (result = db.Insertable<GT_Interface_Exc>(error).ExecuteCommand() > 0) + { + + } + //else + //{ + // //娣诲姞澶辫触閲嶆柊娣诲姞 + // AddErrorInfo(errorInfo, remake, areacode, taskno); + //} + } + catch (Exception ex) + { + LogHelper.Info($"AddInfo Error:{ex.Message}"); + } + return result; + } + + /// <summary> /// 鎵剧粓鐐圭┖璐т綅 /// </summary> /// <param name="locations"></param> @@ -2834,14 +2957,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 ).FirstOrDefault(); + other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0).FirstOrDefault(); //if (full == null) //{ // //娌℃湁婊′綅锛岄偅灏辨壘鏈�皬鐨勭┖浣�@@ -3012,7 +3135,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