From af42a9904d1d3939da7fa0a00c3a7a2ced78258e Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期三, 21 五月 2025 17:26:18 +0800 Subject: [PATCH] 佳通问题优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 135 +++++++++++++++++++++----------------------- 1 files changed, 65 insertions(+), 70 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 5ed6fd0..13161c9 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -62,60 +62,48 @@ } string Start = ""; //鍙栬揣鐐� string End = ""; - string areacode = ""; string note = ""; //绔嬪簱涓嬪彂浠诲姟闇�閫氱煡mes鎺ュ彛鐗╂枡鍒颁綅锛岀敤澶囨敞鑷姩杩涜鍖哄垎 //鏍规嵁鐗╂枡鑾峰彇瀵瑰簲搴撳尯 - #region 鏍规嵁鐗╂枡纭鍑哄簱鏉ユ簮 - var iteminfo = db.Queryable<TN_Material>().Where(a => a.S_ITEM_CODE.Trim() == ItemCode).First(); - if (iteminfo != null) - { - //LogHelper.Info($"Createtask==>鐗╂枡鏁版嵁:{JsonConvert.SerializeObject(iteminfo)}"); - areacode = iteminfo.S_WH_CODE; - } - - if (string.IsNullOrEmpty(areacode)) - { - LogHelper.Info($"Createtask==>鏍规嵁鐗╂枡缂栫爜:{ItemCode}鏈兘鎵惧埌鐗╂枡鏉ユ簮锛岄渶鍚屾鐗╂枡鏁版嵁"); - result.code = "1"; - result.msg = $"鏍规嵁鐗╂枡缂栫爜:{ItemCode}鏈兘鎵惧埌鐗╂枡鏉ユ簮锛岄渶鍚屾鐗╂枡鏁版嵁"; - AddErrorInfo("瀵绘壘鍑哄簱鍖哄け璐�, result.msg); - return result; - } - //var task = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO.Trim() == taskData.taskNum).First(); - //if (task != null) + #region 鏍规嵁浠诲姟鏉ユ簮瀛楁鍒ゆ柇搴撳尯鏉ユ簮鏉ユ簮 + //var iteminfo = db.Queryable<TN_Material>().Where(a => a.S_ITEM_CODE.Trim() == ItemCode).First(); + //if (iteminfo != null) //{ - // LogHelper.Info($"Createtask==> 浠诲姟鍙穥taskData.taskNum},璇ヤ换鍔″凡缁忓瓨鍦紝涓嶅厑璁稿垱寤轰换鍔�); + // //LogHelper.Info($"Createtask==>鐗╂枡鏁版嵁:{JsonConvert.SerializeObject(iteminfo)}"); + // areacode = iteminfo.S_WH_CODE; + //} + + //if (string.IsNullOrEmpty(areacode)) + //{ + // LogHelper.Info($"Createtask==>鏍规嵁鐗╂枡缂栫爜:{ItemCode}鏈兘鎵惧埌鐗╂枡鏉ユ簮锛岄渶鍚屾鐗╂枡鏁版嵁"); // result.code = "1"; - // result.msg = $"浠诲姟鍙穥taskData.taskNum},璇ヤ换鍔″凡缁忓瓨鍦紝涓嶅厑璁稿垱寤轰换鍔�; + // result.msg = $"鏍规嵁鐗╂枡缂栫爜:{ItemCode}鏈兘鎵惧埌鐗╂枡鏉ユ簮锛岄渶鍚屾鐗╂枡鏁版嵁"; + // AddErrorInfo("瀵绘壘鍑哄簱鍖哄け璐�, result.msg); // return result; //} - int n_type = 0; //浠诲姟鏉ユ簮 1.閽笣绔嬪簱 2.鑳剁墖搴� 3.棰勫搴�,4.鍘熸潗鏂欏簱,閫氳繃鐗╂枡纭浠诲姟鏉ユ簮 + + int n_type = 0; //浠诲姟鏉ユ簮 1.瀵嗙偧绔嬪簱 3.棰勫搴�,4.鍘熸潗鏂欏簱 string Source = ""; - switch (areacode) + switch (taskData.source) { case "ML": n_type = 1; Source = "瀵嗙偧"; break; - case "JP": - n_type = 2; - Source = "浜曟澗"; - break; case "YBK": n_type = 3; Source = "棰勫搴�; break; - case "wmwhse1": + case "YCL": n_type = 4; Source = "鍘熸潗鏂�; break; } - LogHelper.Info($"Createtask==>浠诲姟绫诲瀷:{n_type}"); + Console.WriteLine($"Createtask==>浠诲姟鏉ユ簮:{n_type}"); if (n_type == 0) { result.code = "1"; - result.msg = $"鐗╂枡搴撳尯:{areacode}灞炰簬鏈畾涔夊簱鍖猴紝璇锋鏌ョ墿鏂欒〃閲嶆柊瀹氫箟鐗╂枡搴撳尯"; - AddErrorInfo("鐗╂枡搴撳尯鏈畾涔�, result.msg); + result.msg = $"浠诲姟鏉ユ簮:{taskData.source}灞炰簬鏈畾涔夊簱鍖猴紝璇锋鏌ョ墿鏂欐潵婧愭槸鍚﹀睘浜庣害瀹氬瓧娈�; + AddErrorInfo("浠诲姟鏉ユ簮鏈畾涔�, result.msg); return result; } @@ -133,7 +121,7 @@ { //鍒涘缓鎵樼洏鐗╂枡缁戝畾淇℃伅锛屽苟璁$畻缁堢偣璐т綅 Start = taskData.pickStation; - if (CreateCntrIteminfo(Start, CntrCode, ItemCode, partData.partDesc, partData.partType, partData.lotNumber, partData.unit, partData.weight, taskData.carrierType, taskData.grade)) + if (CreateCntrIteminfo(partData, taskData)) { endloc = Computeloc(CntrCode, taskData.dropStation, taskData.carrierType); if (endloc != null) @@ -358,7 +346,7 @@ else if (taskData.taskType == 5)//绉诲簱娴佺▼锛岀洿鎺ヤ娇鐢ㄨ捣鐐硅揣浣嶅拰缁堢偣璐т綅鐢熸垚浠诲姟锛屽苟缁戝畾鎵樼洏 { //鍒涘缓鎵樼洏鐗╂枡缁戝畾淇℃伅锛屽苟璁$畻缁堢偣璐т綅 - if (CreateCntrIteminfo(taskData.pickStation, CntrCode, ItemCode, partData.partDesc, partData.partType, partData.lotNumber, partData.unit, partData.weight, taskData.carrierType, taskData.grade)) + if (CreateCntrIteminfo(partData, taskData)) { startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == taskData.pickStation).First(); if (startloc != null) @@ -433,7 +421,7 @@ { note = "寮傚父搴撳尯鍏ュ簱"; //鍒涘缓鎵樼洏鐗╂枡缁戝畾淇℃伅锛屽苟璁$畻缁堢偣璐т綅 - if (CreateCntrIteminfo(taskData.pickStation, CntrCode, ItemCode, partData.partDesc, partData.partType, partData.lotNumber, partData.unit, partData.weight, taskData.carrierType, taskData.grade)) + if (CreateCntrIteminfo(partData, taskData)) { startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == taskData.pickStation).First(); if (startloc != null) @@ -581,8 +569,6 @@ } - - /// <summary> /// 棰勫搴撲换鍔$姸鎬佷笅鍙�@@ -1753,7 +1739,7 @@ { result.code = "1"; result.msg = "鍙傛暟涓簄ull"; - AddErrorInfo("鍙傛暟涓虹┖", result.msg,Source); + AddErrorInfo("鍙傛暟涓虹┖", result.msg, Source); return result; } try @@ -1762,24 +1748,26 @@ if (db.Queryable<TN_Material>().Where(a => a.S_ITEM_CODE == model.PartNumber).Count() > 0) { result.code = "1"; - result.msg = "鐗╂枡涓绘暟鎹凡瀛樺湪"; - AddErrorInfo("鐗╂枡涓绘暟鎹凡瀛樺湪", result.msg,Source); + result.msg = $"鐗╂枡缂栫爜:{model.PartNumber}鐨勭墿鏂欎富鏁版嵁宸插瓨鍦�; + // AddErrorInfo("鐗╂枡涓绘暟鎹凡瀛樺湪", result.msg, Source); + LogHelper.Info($"add:{result.msg}"); return result; } TN_Material itemInfo = new TN_Material(); itemInfo.S_ITEM_CODE = model.PartNumber; itemInfo.ITEM_TYPE = model.PartClass; itemInfo.S_ITEM_NAME = model.PartDesc; - itemInfo.REMARK1 = model.StewingTime.ToString("yyyy-MM-dd"); - itemInfo.REMARK2 = model.OverdueTime.ToString("yyyy-MM-dd"); + itemInfo.REMARK1 = model.StewingTime; + itemInfo.REMARK2 = model.OverdueTime; itemInfo.S_MP_TYPE = model.Unit; - - db.Insertable<TN_Material>(itemInfo).ExecuteCommand(); + if (db.Insertable<TN_Material>(itemInfo).ExecuteCommand()>0) + { + LogHelper.Info($"add:鐗╂枡缂栫爜:{model.PartNumber}鐨勭墿鏂欎富鏁版嵁宸插悓姝�); + } ; return result; } catch (Exception ex) { - result.code = "1"; result.msg = $"鐗╂枡涓绘暟鎹垱寤哄け璐�閿欒淇℃伅锛歿ex}"; LogHelper.Error("add Error锛� + ex.ToString(), ex); @@ -1909,7 +1897,7 @@ { result.code = "1"; result.msg = "鍙傛暟涓簄ull"; - AddErrorInfo("鍙傛暟涓虹┖", result.msg,Source); + AddErrorInfo("鍙傛暟涓虹┖", result.msg, Source); return result; } @@ -1929,14 +1917,14 @@ { result.code = "1"; result.msg = $"鍒涘缓浠诲姟澶辫触锛岃捣鐐箋startloc.S_CODE}鏈夐攣"; - AddErrorInfo("璐т綅鏈夐攣", result.msg,Source); + AddErrorInfo("璐т綅鏈夐攣", result.msg, Source); return result; } 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}"); @@ -1954,7 +1942,7 @@ { result.code = "1"; result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹揣浣嶇紪鐮�{dtcode}鏈壘鍒扮數姊揣浣�; - AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg,Source); + AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); return result; } @@ -2026,8 +2014,6 @@ } } - - /// <summary> /// 璐т綅淇℃伅涓婁紶 @@ -2294,7 +2280,9 @@ #endregion var loc = LocationHelper.GetLocByItemCode(areacode, itemcode, level); + LogHelper.Info($"airlift=>鏍规嵁搴撳尯缂栫爜:{areacode}锛岀墿鏂欑紪鐮�{itemcode},鐗╂枡绛夌骇璁$畻鍑烘湁鎵樼洏璐т綅{JsonConvert.SerializeObject(loc)}"); result = FindStartcolByLoclist(loc); + LogHelper.Info($"airlift=>鍙敤璐т綅涓猴細{JsonConvert.SerializeObject(result)}"); return result; } @@ -2318,26 +2306,31 @@ } return result; } + /// <summary> - /// 鍒涘缓鎵樼洏鐗╂枡缁戝畾鍏崇郴 + /// 绔嬪簱浠诲姟涓嬪彂鍒涘缓鎵樼洏鐗╂枡缁戝畾鍏崇郴 /// </summary> - /// <param name="loc">璐т綅缂栫爜</param> - /// <param name="cntr">鎵樼洏缂栫爜</param> - /// <param name="partNumber">鐗╂枡缂栫爜</param> - /// <param name="partDesc">鐗╂枡鎻忚堪</param> - /// <param name="partType">鐗╂枡绫诲瀷</param> - /// <param name="cntrtype">鎵樼洏绫诲瀷</param> - /// <param name="unit">鐗╂枡鍗曚綅</param> - /// <param name="weight">鐗╂枡閲嶉噺</param> - internal static bool CreateCntrIteminfo(string loc, string cntr, string partNumber, string partDesc, string partType, string batch, string unit, string weight, string cntrtype = "1", string level = "") + internal static bool CreateCntrIteminfo(partData partData, taskData taskData) { - return ContainerHelper.CreateCntrItem(loc, cntr, partNumber, partDesc, partType, cntrtype, batch, weight, unit, level); + if (partData == null && taskData == null) + { + LogHelper.Info($"CreateCntrIteminfo==> 绔嬪簱浠诲姟涓嬪彂鍙傛暟鏈夌┖锛屽垱寤虹墿鏂欐墭鐩樼粦瀹氬叧绯诲け璐�); + return false; + } + 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); + } + } + private static object _lockLocation = new object(); /// <summary> /// 鏍规嵁鎵樼洏缂栫爜锛屾満鍙扮紪鐮侊紝宸ヨ绫诲瀷璁$畻鏈哄彴绾胯竟鍖哄煙 /// </summary> /// <param name="cntrcode">鎵樼洏缂栫爜</param> /// <param name="jtcode">鏈哄彴缂栫爜</param> + /// <param name="cntrType">鎵樼洏绫诲瀷</param> /// <returns></returns> internal static Location Computeloc(string cntrcode, string jtcode, string cntrType) { @@ -2347,17 +2340,19 @@ // var location = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First(); - - 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).First(); - if (loc != null) + lock (_lockLocation) { - End = loc; - } - else - { - LogHelper.Info($"Computeloc==銆嬫牴鎹満鍙板垎缁勶細{jtcode},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�); - } + 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).First(); + if (loc != null) + { + End = loc; + } + else + { + LogHelper.Info($"Computeloc==銆嬫牴鎹満鍙板垎缁勶細{jtcode},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�); + } + } return End; } -- Gitblit v1.9.1