From 06a8b6963d6d4f229d4e196b4b09ce57e2cbf2dd Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期四, 24 七月 2025 17:21:40 +0800 Subject: [PATCH] 印尼佳通-GT服务开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs | 715 ++++++++++++++++++---------------------------------------- 1 files changed, 225 insertions(+), 490 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..fce8014 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("鎴愬瀷鏈轰綑鏂欏叆搴�) || 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; @@ -233,13 +203,6 @@ string cntrCode = ""; if (startLoc != null) { - // 鏌ヨ鎺ラ┏浣�- var locCodes = Settings.getAgvJBLocList(startLoc.N_ROADWAY, 2); - if (locCodes.Count > 0) - { - middleLoc = LocationHelper.GetLoc(locCodes[0]); - } - // 鏌ヨ璐т綅瀹瑰櫒缂栫爜 銆佺洰鏍囧鍣ㄧ紪鐮� var locCntrRels = LocationHelper.GetLocCntrRel(startLoc.S_CODE); if (locCntrRels.Count > 0) @@ -258,61 +221,95 @@ } else { - result.ResultCode = 1; - result.ResultMsg = "搴撳唴娌℃湁婊¤冻鏉′欢鐨勭墿鏂�; - return result; + LogHelper.Info($"搴撳唴娌℃湁鐗╂枡:{model.itemCode}", "WMS"); + break; } - - - if (endLoc != null) + + var container = ContainerHelper.GetCntr(descCntrCode); + if (container != null) { - var wmsTask = new WMSTask() + int isExistBaseTray = 2; + if (container.N_TYPE == 4) { - S_CNTR_CODE = descCntrCode, - S_CODE = WMSHelper.GenerateTaskNo(), - S_START_LOC = startLoc.S_CODE, - S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = endLoc.S_CODE, - S_END_AREA = endLoc.S_AREA_CODE, - S_TYPE = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, - S_OP_DEF_CODE = model.taskNo, - S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, - N_PRIORITY = model.priority, - T_START_TIME = DateTime.Now, - }; + isExistBaseTray = 1; + } - if (WMSHelper.CreateWmsTask(wmsTask)) + // 鏌ヨ鎺ラ┏浣�+ middleLoc = WMSHelper.getAgvJBLoc(startLoc.N_ROADWAY, 2, isExistBaseTray, 2); + + if (endLoc != null) { - // 鍒涘缓涓�鍑哄簱浠诲姟 - WCSTask wcsTask = new WCSTask() + string taskType = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�; + if (model.taskType == 2) { - S_OP_NAME = wmsTask.S_OP_DEF_NAME, - S_OP_CODE = wmsTask.S_CODE, - S_CODE = WCSHelper.GenerateTaskNo(), - S_CNTR_CODE = cntrCode, - S_TYPE = wmsTask.S_TYPE + "-1", + taskType = "鎶芥鍙枡鍑哄簱浠诲姟"; + } + + var wmsTask = new WMSTask() + { + S_CNTR_CODE = descCntrCode, + S_CODE = WMSHelper.GenerateTaskNo(), S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = middleLoc.S_CODE, - S_END_AREA = middleLoc.S_AREA_CODE, - S_SCHEDULE_TYPE = "WCS", - N_PRIORITY = 1, + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_TYPE = taskType, + S_OP_DEF_CODE = model.taskNo, + S_OP_DEF_NAME = "鍙枡鍑哄簱浠诲姟", + N_PRIORITY = model.priority, T_START_TIME = DateTime.Now, }; - if (WCSHelper.CreateTask(wcsTask)) + if (WMSHelper.CreateWmsTask(wmsTask)) { - // 璧风偣銆佹帴椹崇偣鍔犻攣 - LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + // 鍒涘缓涓�鍑哄簱浠诲姟 + WCSTask wcsTask = new WCSTask() + { + S_OP_NAME = wmsTask.S_OP_DEF_NAME, + S_OP_CODE = wmsTask.S_CODE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_CNTR_CODE = cntrCode, + S_TYPE = wmsTask.S_TYPE + "-1", + S_START_LOC = startLoc.S_CODE, + S_START_AREA = startLoc.S_AREA_CODE, + S_END_LOC = middleLoc.S_CODE, + S_END_AREA = middleLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "WCS", + N_PRIORITY = 1, + T_START_TIME = DateTime.Now, + }; - // 鏇存柊浣滀笟浠诲姟鐘舵� - wmsTask.N_B_STATE = 1; - WMSHelper.UpdateTaskState(wmsTask); + if (WCSHelper.CreateTask(wcsTask)) + { + // 璧风偣銆佹帴椹崇偣鍔犻攣 + LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + + // 鏇存柊浣滀笟浠诲姟鐘舵� + wmsTask.N_B_STATE = 1; + WMSHelper.UpdateTaskState(wmsTask); + taskNum++; + } } } } + else + { + result.ResultCode = 1; + result.ResultMsg = $"瀹瑰櫒锛歿cntrCode}涓嶅瓨鍦�; + } } + + if (taskNum < endLoc.N_CAPACITY) + { + result.ResultCode = 1; + result.ResultMsg = $"搴撳唴鐗╂枡涓嶈冻锛屽凡鐢熸垚鍑哄簱浠诲姟鏁�{taskNum}"; + } + } + else + { + result.ResultCode = 1; + result.ResultMsg = "缁堢偣璐т綅褰撳墠瀹归噺涓嶄负0锛屾棤娉曞彨鏂�; } } catch (Exception ex) @@ -334,46 +331,14 @@ 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); - - if (endLoc != null) + var instockEndLocResult = WMSHelper.GetInstockEndLoc( 0, container.N_TYPE, 0, null, model.startLoc); + if (instockEndLocResult.endLoc != null && instockEndLocResult.agvLoc != null) { + var endLoc = instockEndLocResult.endLoc; string cntrCode = model.trayCode; var locCntrRels = LocationHelper.GetLocCntr(model.startLoc); if (locCntrRels.Count > 0) @@ -433,8 +398,13 @@ else { result.ResultCode = 1; - result.ResultMsg = "娌℃湁绌轰綑鐨勮揣浣�; + result.ResultMsg = "绔嬪簱娌℃湁绌轰綑鐨勮揣浣�; } + } + else + { + result.ResultCode = 1; + result.ResultMsg = "WMS绯荤粺涓病鏈夎瀹瑰櫒"; } } catch (Exception ex) @@ -552,117 +522,19 @@ try { Location startLoc = LocationHelper.GetLoc(loc); - Location endLoc = WMSHelper.GetInstockEndLoc(0, loc, 2); - - if (endLoc != null && startLoc != null) - { - string trayCode = null; - var locCntrRels = LocationHelper.GetLocCntrRel(loc); - if (locCntrRels.Count > 0) - { - var container = ContainerHelper.GetCntr(locCntrRels[0].S_CNTR_CODE); - if (container.N_TYPE == 0) - { - trayCode = container.S_CODE; - } - } - else - { - trayCode = ContainerHelper.GenerateCntrNo(); - ContainerHelper.AddCntr(trayCode, 0); - } - - if (trayCode != null) - { - var wmsTask = new WMSTask() - { - S_CNTR_CODE = trayCode, - S_CODE = WMSHelper.GenerateTaskNo(), - S_START_LOC = startLoc.S_CODE, - S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = endLoc.S_CODE, - S_END_AREA = endLoc.S_AREA_CODE, - S_TYPE = "姣嶆嫋鍏ュ簱浠诲姟", - S_OP_DEF_CODE = taskNo, - S_OP_DEF_NAME = "姣嶆嫋鍏ュ簱浠诲姟", - N_PRIORITY = 1, - T_START_TIME = DateTime.Now, - }; - if (WMSHelper.CreateWmsTask(wmsTask)) - { - // 鍒涘缓涓�鍏ュ簱浠诲姟 - WCSTask wcsTask = new WCSTask() - { - S_OP_NAME = wmsTask.S_OP_DEF_NAME, - S_OP_CODE = wmsTask.S_CODE, - S_CODE = WCSHelper.GenerateTaskNo(), - S_CNTR_CODE = wmsTask.S_CNTR_CODE, - S_TYPE = wmsTask.S_TYPE + "-1", - S_START_LOC = startLoc.S_CODE, - S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = endLoc.S_CODE, - S_END_AREA = endLoc.S_AREA_CODE, - S_SCHEDULE_TYPE = "WCS", - N_PRIORITY = 1, - T_START_TIME = DateTime.Now, - }; - - if (WCSHelper.CreateTask(wcsTask)) - { - // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�- LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); - - // 鏇存柊浣滀笟浠诲姟鐘舵� - wmsTask.N_B_STATE = 1; - WMSHelper.UpdateTaskState(wmsTask); - } - } - } - } - else + if (startLoc == null) { result.ResultCode = 1; - result.ResultMsg = "娌℃湁绌轰綑鐨勮揣浣�; + result.ResultMsg = "寮�璐т綅涓嶅瓨鍦紒"; + return result; } - } - catch (Exception ex) - { - result.ResultCode = 1; - result.ResultMsg = "WMS鍐呴儴閿欒锛岃鑱旂郴寮�彂浜哄憳鎺掓煡"; - LogHelper.Info($"WMS鍐呴儴閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS"); - } - return result; - } - - /// <summary> - /// 6.1.姣嶆嫋鍏ュ簱浠诲姟 - /// </summary> - /// <param name="loc"></param> - /// <param name="wmsTaskNo"></param> - /// <returns></returns> - public static ReturnResult autoBaseTrayInStock(string loc, string wmsTaskNo) - { - ReturnResult result = new ReturnResult(); - try - { var cst = WCSHelper.GetTaskByStart(loc); - if (cst == null) + if (cst == null) { - Location startLoc = LocationHelper.GetLoc(loc); - Location endLoc = null; - var baseTrayBufferLoc = Settings.baseTrayBufferLocList.Where(a => a.bufferOutLoc == loc).FirstOrDefault(); - if (baseTrayBufferLoc != null) + var instockEndLocResult = WMSHelper.GetInstockEndLoc(0, 0, 0, null, loc); + if (instockEndLocResult.endLoc != null && instockEndLocResult.agvLoc != null) { - endLoc = LocationHelper.GetLoc(baseTrayBufferLoc.bufferInLoc); - } - if (endLoc == null || endLoc.N_CURRENT_NUM > 0) - { - endLoc = WMSHelper.GetInstockEndLoc(0, loc, 2); - } - - if (endLoc != null && startLoc != null) - { + var endLoc = instockEndLocResult.endLoc; string trayCode = null; var locCntrRels = LocationHelper.GetLocCntrRel(loc); if (locCntrRels.Count > 0) @@ -681,27 +553,49 @@ if (trayCode != null) { - // 鍒涘缓涓�鍏ュ簱浠诲姟 - WCSTask wcsTask = new WCSTask() + var wmsTask = new WMSTask() { - S_OP_CODE = wmsTaskNo, - S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = trayCode, - S_TYPE = "姣嶆嫋鍏ュ簱浠诲姟", + S_CODE = WMSHelper.GenerateTaskNo(), S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = endLoc.S_CODE, S_END_AREA = endLoc.S_AREA_CODE, - S_SCHEDULE_TYPE = "WCS", + S_TYPE = "姣嶆嫋鍏ュ簱浠诲姟", + S_OP_DEF_CODE = taskNo, + S_OP_DEF_NAME = "姣嶆嫋鍏ュ簱浠诲姟", N_PRIORITY = 1, T_START_TIME = DateTime.Now, }; - - if (WCSHelper.CreateTask(wcsTask)) + if (WMSHelper.CreateWmsTask(wmsTask)) { - // 璧风偣銆佺粓鐐瑰姞閿�- LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + // 鍒涘缓涓�鍏ュ簱浠诲姟 + WCSTask wcsTask = new WCSTask() + { + S_OP_NAME = wmsTask.S_OP_DEF_NAME, + S_OP_CODE = wmsTask.S_CODE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_CNTR_CODE = wmsTask.S_CNTR_CODE, + S_TYPE = wmsTask.S_TYPE + "-1", + S_START_LOC = startLoc.S_CODE, + S_START_AREA = startLoc.S_AREA_CODE, + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "WCS", + N_PRIORITY = 1, + T_START_TIME = DateTime.Now, + }; + + if (WCSHelper.CreateTask(wcsTask)) + { + // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�+ LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + + // 鏇存柊浣滀笟浠诲姟鐘舵� + wmsTask.N_B_STATE = 1; + WMSHelper.UpdateTaskState(wmsTask); + } } } } @@ -711,6 +605,7 @@ result.ResultMsg = "娌℃湁绌轰綑鐨勮揣浣�; } } + } catch (Exception ex) { @@ -727,106 +622,17 @@ /// <param name="loc"></param> /// <param name="taskNo"></param> /// <returns></returns> - public static ReturnResult baseTrayOutStock(string loc ,string taskNo ,int exclude = 1) + public static ReturnResult baseTrayOutStock(string loc ,string taskNo) { LogHelper.Info("銆愭瘝鎷栧嚭搴撲换鍔°�寮�涓嬪彂姣嶆嫋鍑哄簱浠诲姟", "WMS"); ReturnResult result = new ReturnResult(); try { - Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, exclude); - Location endLoc = LocationHelper.GetLoc(loc); - var agvJBLoc = Settings.getAgvJBLoc(loc); - - if (startLoc != null) - { - string trayCode = null; - var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); - if (locCntrRels.Count == 1) - { - trayCode = locCntrRels[0].S_CNTR_CODE; - } - if (trayCode != null) - { - var wmsTask = new WMSTask() - { - S_CNTR_CODE = trayCode, - S_CODE = WMSHelper.GenerateTaskNo(), - S_START_LOC = startLoc.S_CODE, - S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = endLoc.S_CODE, - S_END_AREA = endLoc.S_AREA_CODE, - S_TYPE = "姣嶆嫋鍑哄簱浠诲姟", - S_OP_DEF_CODE = taskNo, - S_OP_DEF_NAME = "姣嶆嫋鍑哄簱浠诲姟", - N_PRIORITY = 1, - T_START_TIME = DateTime.Now, - }; - - if (WMSHelper.CreateWmsTask(wmsTask)) - { - // 鍒涘缓涓�鍏ュ簱浠诲姟 - WCSTask wcsTask = new WCSTask() - { - S_OP_NAME = wmsTask.S_OP_DEF_NAME, - S_OP_CODE = wmsTask.S_CODE, - S_CODE = WCSHelper.GenerateTaskNo(), - S_CNTR_CODE = wmsTask.S_CNTR_CODE, - S_TYPE = wmsTask.S_TYPE + "-1", - S_START_LOC = startLoc.S_CODE, - S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = endLoc.S_CODE, - S_END_AREA = endLoc.S_AREA_CODE, - S_SCHEDULE_TYPE = "WCS", - N_PRIORITY = 1, - T_START_TIME = DateTime.Now, - }; - - if (WCSHelper.CreateTask(wcsTask)) - { - // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�- LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); - - // 鏇存柊浣滀笟浠诲姟鐘舵� - wmsTask.N_B_STATE = 1; - WMSHelper.UpdateTaskState(wmsTask); - } - } - } - } - else - { - result.ResultCode = 1; - result.ResultMsg = "娌℃湁绌轰綑鐨勬瘝鎷�; - LogHelper.Info("銆愭瘝鎷栧嚭搴撲换鍔°�搴撳唴娌℃湁绌轰綑鐨勬瘝鎷�, "WMS"); - } - } - catch (Exception ex) - { - result.ResultCode = 1; - result.ResultMsg = "WMS鍐呴儴閿欒锛岃鑱旂郴寮�彂浜哄憳鎺掓煡"; - LogHelper.Info($"WMS鍐呴儴閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS"); - } - return result; - } - - /// <summary> - /// 7.1.姣嶆嫋鍑哄簱浠诲姟锛圓GV锛�- /// </summary> - /// <param name="loc"></param> - /// <param name="wmsTaskNo"></param> - /// <returns></returns> - public static ReturnResult autoBaseTrayOutStock(string loc, string wmsTaskNo) - { - ReturnResult result = new ReturnResult(); - try - { var cst = WCSHelper.GetTaskByEnd(loc); - if (cst == null) + if (cst == null) { - Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, 0); + Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0); Location endLoc = LocationHelper.GetLoc(loc); - if (startLoc != null) { string trayCode = null; @@ -835,30 +641,52 @@ { trayCode = locCntrRels[0].S_CNTR_CODE; } - if (trayCode != null) { - // 鍒涘缓鍏ュ簱浠诲姟 - WCSTask wcsTask = new WCSTask() + var wmsTask = new WMSTask() { - S_OP_CODE = wmsTaskNo, - S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = trayCode, - S_TYPE = "姣嶆嫋鍑哄簱浠诲姟", + S_CODE = WMSHelper.GenerateTaskNo(), S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = endLoc.S_CODE, S_END_AREA = endLoc.S_AREA_CODE, - S_SCHEDULE_TYPE = "WCS", + S_TYPE = "姣嶆嫋鍑哄簱浠诲姟", + S_OP_DEF_CODE = taskNo, + S_OP_DEF_NAME = "姣嶆嫋鍑哄簱浠诲姟", N_PRIORITY = 1, T_START_TIME = DateTime.Now, }; - if (WCSHelper.CreateTask(wcsTask)) + if (WMSHelper.CreateWmsTask(wmsTask)) { - // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�- LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + // 鍒涘缓涓�鍏ュ簱浠诲姟 + WCSTask wcsTask = new WCSTask() + { + S_OP_NAME = wmsTask.S_OP_DEF_NAME, + S_OP_CODE = wmsTask.S_CODE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_CNTR_CODE = wmsTask.S_CNTR_CODE, + S_TYPE = wmsTask.S_TYPE + "-1", + S_START_LOC = startLoc.S_CODE, + S_START_AREA = startLoc.S_AREA_CODE, + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "WCS", + N_PRIORITY = 1, + T_START_TIME = DateTime.Now, + }; + + if (WCSHelper.CreateTask(wcsTask)) + { + // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�+ LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + + // 鏇存柊浣滀笟浠诲姟鐘舵� + wmsTask.N_B_STATE = 1; + WMSHelper.UpdateTaskState(wmsTask); + } } } } @@ -866,8 +694,9 @@ { result.ResultCode = 1; result.ResultMsg = "娌℃湁绌轰綑鐨勬瘝鎷�; + LogHelper.Info("銆愭瘝鎷栧嚭搴撲换鍔°�搴撳唴娌℃湁绌轰綑鐨勬瘝鎷�, "WMS"); } - } + } } catch (Exception ex) { @@ -984,84 +813,6 @@ } /// <summary> - /// 璇荤爜鍙嶉 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public static ReturnResult readCodeFeedback(ReadCodeFeedbackModel model) - { - ReturnResult responseResult = new ReturnResult(); - var locCntrRels = LocationHelper.GetLocCntr(model.locCode); - if (locCntrRels.Count > 0) - { - foreach (var locCntr in locCntrRels) - { - var container = ContainerHelper.GetCntr(locCntr.S_CNTR_CODE); - if (container != null && container.N_TYPE != 0) - { - var mst = WMSHelper.GetWmsTaskByCntr(locCntr.S_CNTR_CODE); - if (mst != null) - { - int actType = 1; - if (locCntr.S_CNTR_CODE == model.trayCode) - { - if (mst.S_END_LOC == "铏氭嫙璐т綅") - { - // 鑾峰彇鍏ュ簱缁堢偣 - var endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, model.locCode, 1); - if (endLoc != null) - { - mst.S_END_LOC = endLoc.S_CODE; - mst.S_END_AREA = endLoc.S_AREA_CODE; - } - else - { - LogHelper.Info("銆怶CS璇荤爜鍙嶉銆戯紝娌℃湁鑾峰彇鍒扮粓鐐硅揣浣嶏紝鍙兘绔嬪簱娌℃湁绌轰綑璐т綅", "WMS"); - responseResult.ResultCode = 1; - responseResult.ResultMsg = "娌℃湁鑾峰彇鍒扮粓鐐硅揣浣嶏紝鍙兘绔嬪簱娌℃湁绌轰綑璐т綅"; - return responseResult; - } - } - } - else - { - LogHelper.Info($"銆怶CS璇荤爜鍙嶉銆戯紝鎵樼洏鐮佸尮閰嶅け璐ワ紝鍙嶉鎵樼洏鐮侊細{model.trayCode} ,璐т綅{model.locCode}鎵樼洏鐮侊細{locCntr.S_CNTR_CODE}", "WMS"); - // 鑾峰彇鍏ュ簱缁堢偣 - var endLoc = WMSHelper.getErrorBufferAreaLoc(); - if (endLoc != null) - { - actType = 2; - LocationHelper.UnLockLoc(mst.S_END_LOC); - mst.S_END_LOC = endLoc.S_CODE; - mst.S_END_AREA = endLoc.S_AREA_CODE; - } - else - { - LogHelper.Info("銆怶CS璇荤爜鍙嶉銆戯紝娌℃湁鑾峰彇鍒扮紦瀛樿揣浣�, "WMS"); - responseResult.ResultCode = 1; - responseResult.ResultMsg = "娌℃湁鑾峰彇鍒扮紦瀛樿揣浣�; - return responseResult; - } - } - - // 鍒涘缓涓嬩釜浠诲姟 - if (mst.S_END_LOC != "铏氭嫙璐т綅") - { - WMSHelper.UpdateTaskEnd(mst); - WCSCore.createLastTask(model.locCode, mst, actType); - } - } - else - { - LogHelper.Info($"銆怶CS璇荤爜鍙嶉銆戯紝瀹瑰櫒:{model.trayCode}娌℃湁鏌ヨ鍒版墽琛屼腑浠诲姟", "WMS"); - } - } - } - } - return responseResult; - } - - /// <summary> /// 鍚屾鐗╂枡淇℃伅 /// </summary> /// <param name="matls"></param> @@ -1075,22 +826,19 @@ { ItemBarcodeInfo itemBarcodeInfo = new ItemBarcodeInfo() { + N_RECID = matl.recid, S_ITEM = matl.item, - S_BC_ENTRIED = matl.bc_entried, + S_BC_ENTRIED = matl.barcode, + 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, - LAST_MODIFY_TIME = matl.last_modify_time + 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 +847,89 @@ 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<IwmsSemiBldBcstatus> list = new List<IwmsSemiBldBcstatus> (); + 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 + IwmsSemiBldBcstatus bCstatus = new IwmsSemiBldBcstatus() { - MCNGRP = item.mcngrp, - ITEMPATT = item.itempatt, - OVERAGE = item.overage, - MINHOUR = float.Parse(item.minhour.ToString()), - FLAG_STS = item.flag_sts, - RECID = item.recid, + N_RECID = item.recid, + S_BC_ENTRIED = item.barcode, + 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 synSampleStatus(List<UpdateMatlStatus> updateMatlStatuses) { ReturnResult responseResult = new ReturnResult(); - SynDataTimeRecord record = new SynDataTimeRecord() + List<IwmsSemiBldBcsample> list = new List<IwmsSemiBldBcsample>(); + 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) + { + IwmsSemiBldBcsample bCstatus = new IwmsSemiBldBcsample() + { + N_RECID= item.recid, + S_BC_ENTRIED = item.barcode, + 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 +994,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 @@ -1277,7 +1013,7 @@ { public string taskNo { get; set; } // 浠诲姟鍙� public string startLoc { get; set; } // 璧风偣璐т綅 - public string taskType { get; set; } // 浠诲姟绫诲瀷 鍏ュ簱鍥炲簱绫诲瀷锛�锛氭満鍙板崐鍒跺搧鍏ュ簱锛�锛氭垚鍨嬫満浣欐枡鍥炲簱锛�锛氭垚鍨嬫満绌烘墭鍥炲簱 + public string taskType { get; set; } // 浠诲姟绫诲瀷 鍏ュ簱鍥炲簱绫诲瀷锛�锛氭満鍙板崐鍒跺搧鍏ュ簱锛�锛氭垚鍨嬫満浣欐枡鍏ュ簱锛�锛氭垚鍨嬫満绌烘墭鍏ュ簱锛�锛氬崐鍒跺搧鎶芥鍏ュ簱 public string trayCode { get; set; } // 鎵樼洏鍙� public int priority { get; set; } = 0;// 浼樺厛绾�榛樿浼� public List<GTItemInfo> itemInfo { get; set; } @@ -1287,16 +1023,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