From c8f338feee0b6003d8f069b1d37fd9b90dd1b7f4 Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期一, 07 七月 2025 17:31:38 +0800 Subject: [PATCH] 印尼佳通优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs | 236 ++++++++++++++++++++++------------------------------------ 1 files changed, 89 insertions(+), 147 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs index 4a352b9..4b65c2b 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs @@ -28,6 +28,7 @@ } + /// <summary> /// 1.鍒涘缓鍏ュ簱浠诲姟 /// </summary> @@ -36,7 +37,7 @@ ReturnResult result = new ReturnResult(); try { - if (model.taskType == "鏈哄彴鍗婂埗鍝佸叆搴� || model.taskType == "鎴愬瀷鏈轰綑鏂欏洖搴�) + if (model.taskType.Contains("鏈哄彴鍗婂埗鍝佸叆搴�) || model.taskType.Contains("鎴愬瀷鏈轰綑鏂欏叆搴�)) { var itemInfos = model.itemInfo; if (itemInfos == null || itemInfos.Count == 0) @@ -44,38 +45,6 @@ result.ResultCode = 1; result.ResultMsg = "鐗╂枡淇℃伅涓嶈兘涓虹┖"; return result; - } - else - { - foreach (var item in itemInfos) - { - // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵� - if (item.jdge == "" || item.jdge == null) - { - item.jdge = "OK"; - } - else if(item.jdge != "OK") - { - item.jdge = "HOLD"; - } - - // 璁$畻鐢熸晥鏃堕棿銆佸け鏁堟椂闂�- var overage = WMSHelper.getOverage(item.bc_entried); - if (overage != null) - { - DateTime txndate = DateTime.Parse(item.txndate); - DateTime minTime = txndate.AddHours(overage.MINHOUR); - DateTime maxTime = txndate.AddDays(overage.OVERAGE); - item.effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss"); - item.expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss"); - } - else - { - result.ResultCode = 1; - result.ResultMsg = $"鏈煡璇㈠埌鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅锛屾潯褰㈢爜锛歿item.bc_entried}"; - return result; - } - } } } @@ -223,9 +192,10 @@ try { Location endLoc = LocationHelper.GetLoc(model.endLoc); - if (endLoc.N_CURRENT_NUM == 0) + if (endLoc.N_CURRENT_NUM == 0) { - for (int i = 0; i < endLoc.N_CAPACITY; i++) + int taskNum = 0; + for (int i = 0; i < endLoc.N_CAPACITY; i++) { Location startLoc = WMSHelper.GetoutStockStartLoc(model.itemCode); Location middleLoc = null; @@ -258,14 +228,20 @@ } else { - result.ResultCode = 1; - result.ResultMsg = "搴撳唴娌℃湁婊¤冻鏉′欢鐨勭墿鏂�; - return result; + LogHelper.Info($"搴撳唴娌℃湁鐗╂枡:{model.itemCode}", "WMS"); + break; } - + if (endLoc != null) { + string taskType = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�; + if (model.taskType == 2) + { + taskType = "鎶芥鍙枡鍑哄簱浠诲姟"; + } + + var wmsTask = new WMSTask() { S_CNTR_CODE = descCntrCode, @@ -274,9 +250,9 @@ S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = endLoc.S_CODE, S_END_AREA = endLoc.S_AREA_CODE, - S_TYPE = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, + S_TYPE = taskType, S_OP_DEF_CODE = model.taskNo, - S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, + S_OP_DEF_NAME = "鍙枡鍑哄簱浠诲姟", N_PRIORITY = model.priority, T_START_TIME = DateTime.Now, }; @@ -309,10 +285,22 @@ // 鏇存柊浣滀笟浠诲姟鐘舵� wmsTask.N_B_STATE = 1; WMSHelper.UpdateTaskState(wmsTask); + taskNum++; } } } } + + if (taskNum < endLoc.N_CAPACITY) + { + result.ResultCode = 1; + result.ResultMsg = $"搴撳唴鐗╂枡涓嶈冻锛屽凡鐢熸垚鍑哄簱浠诲姟鏁�{taskNum}"; + } + } + else + { + result.ResultCode = 1; + result.ResultMsg = "缁堢偣璐т綅褰撳墠瀹归噺涓嶄负0锛屾棤娉曞彨鏂�; } } catch (Exception ex) @@ -334,40 +322,8 @@ ReturnResult result = new ReturnResult(); try { - if(model.itemInfo != null && model.itemInfo.Count > 0) - { - foreach (var item in model.itemInfo) - { - // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵� - if (item.jdge == "" || item.jdge == null) - { - item.jdge = "OK"; - } - else if (item.jdge != "OK") - { - item.jdge = "HOLD"; - } - - var overage = WMSHelper.getOverage(item.bc_entried); - if (overage != null && overage.OVERAGE != 0) - { - DateTime txndate = DateTime.Parse(item.txndate); - DateTime minTime = txndate.AddHours(overage.MINHOUR); - DateTime maxTime = txndate.AddDays(overage.OVERAGE); - item.effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss"); - item.expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss"); - } - else - { - result.ResultCode = 1; - result.ResultMsg = $"鏈煡璇㈠埌鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅锛屾潯褰㈢爜锛歿item.bc_entried}"; - return result; - } - } - } - var container = ContainerHelper.GetCntr(model.trayCode); - if (container != null) + if (container != null) { Location startLoc = LocationHelper.GetLoc(model.startLoc); Location endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, model.startLoc, 2); @@ -433,8 +389,13 @@ else { result.ResultCode = 1; - result.ResultMsg = "娌℃湁绌轰綑鐨勮揣浣�; + result.ResultMsg = "绔嬪簱娌℃湁绌轰綑鐨勮揣浣�; } + } + else + { + result.ResultCode = 1; + result.ResultMsg = "WMS绯荤粺涓病鏈夎瀹瑰櫒"; } } catch (Exception ex) @@ -1077,19 +1038,15 @@ { S_ITEM = matl.item, S_BC_ENTRIED = matl.bc_entried, + S_TOOLING_CODE = matl.toolineCode, S_MCN = matl.mcn, - S_OPR = matl.opr, TXNDATE = DateTime.Parse(matl.txndate, enGB) , S_SHIFT = matl.shift, N_QTY = matl.qty, - N_STOCK = matl.stock, - S_LOKASI = matl.lokasi, - S_SARANA = matl.sarana, - BOM1 = matl.bom1, - BOM2 = matl.bom2, - BOM3 = matl.bom3, - S_FOVRAGE = matl.fovrage, S_JDGE = matl.jdge, + N_OVERAGE = matl.overagv, + N_MINHOUR = matl.minhour, + N_PRODUCT_TYPE_CODE = matl.productTypeCode, LAST_MODIFY_TIME = matl.last_modify_time }; itemBarcodeInfos.Add(itemBarcodeInfo); @@ -1099,102 +1056,87 @@ if (!bo) { responseResult.ResultCode = 1; - responseResult.ResultMsg = "鍚屾鐗╂枡鏉$爜淇℃伅澶辫触"; + responseResult.ResultMsg = "鍚屾GT鏉$爜鐗╂枡淇℃伅澶辫触"; } return responseResult; } /// <summary> - /// 鍚屾鐗╂枡鐘舵�淇℃伅 + /// 鍚屾鏉$爜鐘舵�淇℃伅 /// </summary> /// <param name="updateMatlStatuses"></param> /// <returns></returns> - public static ReturnResult synUpdateMatlStatus(List<UpdateMatlStatus> updateMatlStatuses) + public static ReturnResult synBarcodeStatus(List<UpdateMatlStatus> updateMatlStatuses) { ReturnResult responseResult = new ReturnResult(); - var bo = WMSHelper.batchUpdateItemStatus(updateMatlStatuses); - if (!bo) + List<iWMS_semi_bld_BCstatus> list = new List<iWMS_semi_bld_BCstatus> (); + if (updateMatlStatuses.Count > 0) { - responseResult.ResultCode = 1; - responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触"; - } - return responseResult; - } - - /// <summary> - /// 鍚屾鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅 - /// </summary> - /// <param name="overages"></param> - /// <returns></returns> - public static ReturnResult synUpdateMatlTimeConfig(List<MatlOverage> overages) - { - ReturnResult responseResult = new ReturnResult(); - if (overages != null && overages.Count > 0) - { - List<Overage> overageList = new List<Overage>(); - foreach (var item in overages) + foreach (var item in updateMatlStatuses) { - Overage overage = new Overage + iWMS_semi_bld_BCstatus bCstatus = new iWMS_semi_bld_BCstatus() { - MCNGRP = item.mcngrp, - ITEMPATT = item.itempatt, - OVERAGE = item.overage, - MINHOUR = float.Parse(item.minhour.ToString()), - FLAG_STS = item.flag_sts, - RECID = item.recid, + S_BC_ENTRIED = item.bc_entried, + S_MCNGRP = item.mcngrp, + S_JDGE = item.jdge, + LAST_MODIFY_TIME = item.last_modify_time }; - overageList.Add(overage); + list.Add(bCstatus); } - var bo = WMSHelper.batchUpdateMatlTimeConfig(overageList); + + var bo = WMSHelper.synBarcodeStatus(list); if (!bo) { responseResult.ResultCode = 1; - responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触"; + responseResult.ResultMsg = "鍚屾鏉$爜鐘舵�淇℃伅澶辫触"; } } return responseResult; } /// <summary> - /// 璁板綍鏁版嵁鍚屾鏃堕棿 + /// 鍚屾鏉$爜鐘舵�淇℃伅 /// </summary> - /// <param name="model"></param> + /// <param name="updateMatlStatuses"></param> /// <returns></returns> - public static ReturnResult recordDataSynTime(RecordDataSynTimeModel model) + public static ReturnResult synSamplingStatus(List<UpdateMatlStatus> updateMatlStatuses) { ReturnResult responseResult = new ReturnResult(); - SynDataTimeRecord record = new SynDataTimeRecord() + List<iWMS_semi_bld_BCsample> list = new List<iWMS_semi_bld_BCsample>(); + if (updateMatlStatuses.Count > 0) { - S_SYN_TIME = model.sysTime, - N_SYN_NUM = model.synNum, - RECORD_TABLE = model.recordTable - }; - var bo = WMSHelper.addSynDataTimeReord(record); - if (!bo) - { - responseResult.ResultCode = 1; - responseResult.ResultMsg = "璁板綍鏁版嵁鍚屾鏃堕棿澶辫触"; + foreach (var item in updateMatlStatuses) + { + iWMS_semi_bld_BCsample bCstatus = new iWMS_semi_bld_BCsample() + { + S_BC_ENTRIED = item.bc_entried, + S_MCNGRP = item.mcngrp, + S_JDGE = item.jdge, + LAST_MODIFY_TIME = item.last_modify_time + }; + list.Add(bCstatus); + } + + var bo = WMSHelper.synSamplingStatus(list); + if (!bo) + { + responseResult.ResultCode = 1; + responseResult.ResultMsg = "鍚屾鏉$爜鐘舵�淇℃伅澶辫触"; + } } return responseResult; } - /// <summary> /// 鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿 /// </summary> - /// <param name="recordTable"></param> + /// <param name="tableType"></param> /// <returns></returns> - public static ReturnResult findLastDataSynTime(string recordTable) + public static ReturnResult findDataLastSynTime(int tableType) { ReturnResult responseResult = new ReturnResult(); - var synDataTime = WMSHelper.getLastDataSynTime(recordTable); - if (synDataTime != null) - { - Dictionary<string, string> map = new Dictionary<string, string>(); - map.Add("S_SYN_TIME", synDataTime.S_SYN_TIME); - map.Add("RECORD_TABLE", synDataTime.RECORD_TABLE); - responseResult.data = map; - } + var synDataTime = WMSHelper.getDataLastSynTime(tableType); + responseResult.data = synDataTime; return responseResult; } @@ -1259,10 +1201,11 @@ public class CreateOutOrderModel { public string taskNo { get; set; } // 浠诲姟鍙�- public string trayCode { get; set; } // 浠诲姟鍙�+ public string trayCode { get; set; } // 鎵樼洏鍙� public string itemCode { get; set; } // 鐗╂枡缂栫爜 public string endLoc { get; set; } // 缁堢偣璐т綅 public int priority { get; set; } = 0; // 浼樺厛绾�榛樿0 + public int taskType { get; set; } = 1; // 1.鎴愬瀷鏈哄彨鏂欎换鍔�2.鎶芥鍑哄簱浠诲姟 } public class EmptyTrayOutOrderModel @@ -1287,16 +1230,15 @@ { public string item { get; set; } // 鐗╁搧浠g爜 public string bc_entried { get; set; } // 鏉″舰鐮佺紪鍙�+ public string toolineCode { get; set; } // 宸ヨ鏉$爜 public string mcn { get; set; } // 鏈哄櫒浠g爜缂栧彿 - public string opr { get; set; } // 鎿嶄綔鍛� public string txndate { get; set; } // 鐢熶骇鏃堕棿 public string shift { get; set; } // 宸ヤ綔鐝 public int qty { get; set; } // 浜у搧鏁伴噺 - public string sarana { get; set; } // 浜у搧鏉愭枡鐨勬墭鐩�鐩�鎺ㄨ溅/璐ц溅ID - public string fovrage { get; set; } // 鏄惁杩囨湡鐨勭姸鎬�Y=杩囨湡锛孨=鏈繃鏈�- public string jdge { get; set; } // 璐ㄩ噺鐘舵� OK=浜у搧鍚堟牸锛孨G=浜у搧涓嶅悎鏍硷紝HLM=浜у搧寰呭畾 - public string effective_time { get; set; } // 鐢熸晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) - public string expiration_time { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) + public string jdge { get; set; } // 璐ㄩ噺鐘舵� OK=浜у搧鍚堟牸锛孒OLD = 浜у搧寰呭畾 + public int overage { get; set; } // 鐢熸晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) + public int minhour { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) + public int productTypeCode { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) } -- Gitblit v1.9.1