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.FJJT/api/ApiHelper.cs | 408 ++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 252 insertions(+), 156 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs index 9fe06a7..9e1a722 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs @@ -541,7 +541,7 @@ { WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"璁惧鍙�{bufferLocConfig.deviceNo},鏌ヨ璁惧鐘舵�澶辫触锛岃鑱旂郴宸ヤ綔浜哄憳鏌ョ湅璁惧鏄惁姝e父"); throw new BusinessException($"璁惧鍙�{bufferLocConfig.deviceNo},鏌ヨ璁惧鐘舵�澶辫触锛岃鑱旂郴宸ヤ綔浜哄憳鏌ョ湅璁惧鏄惁姝e父"); - }*/ + }*/ } else { @@ -753,7 +753,7 @@ return responseResult; } - middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2 , 2); + middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2 ); if (middleLoc == null) { WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"MES鍙枡浠诲姟{mesTask.ID},绔嬪簱鎺ラ┏浣嶅彲鑳藉浜庨攣瀹氭垨绂佺敤鐘舵�锛岃鏌ョ湅"); responseResult.code = 1; @@ -980,7 +980,7 @@ /// <summary> /// AGV鐢宠缁堢偣 /// 椤哄簭 RFID楠岃瘉 -> RFID涓庝换鍔″彿楠岃瘉 -> 鐗╂枡鍚堟牸鐘舵�楠岃瘉 -> 铏氭嫙缁堢偣 - /// 鐢宠绫诲瀷锛�1.铏氭嫙缁堢偣 2.RFID涓庝换鍔′笉鍖归厤 3.鐗╂枡鐘舵�涓嶅悎鏍�+ /// 鐢宠绫诲瀷锛�1.姝e父 2.寮傚父 /// 鍏ュ簱绛栫暐锛氬厛璁$畻搴撳尯鐨勫绉巼锛屽啀璁$畻搴撳尯瀵瑰簲鐨勫叆搴撶珯鍙扮殑浠诲姟鏁帮紝閮藉彇鏈�皬鐨� /// /// 1.纭畾浠诲姟鏄惁鍦ㄦ墽琛屼腑 @@ -1036,7 +1036,8 @@ { WMSHelper.addAlarmRecord("绯荤粺閿欒","楂�, $"AGV鐢宠缁堢偣锛學MS鍐呴儴閿欒锛岄敊璇師鍥狅細{ex.Message}", "AGV"); } - return null; + LogHelper.Info($"鍙樻洿AGV缁堢偣锛歿applyDest}", "AGV"); + return applyDest; } /// <summary> @@ -1050,9 +1051,7 @@ /// <returns></returns> public static string applyAgvDestXC(string applyType, WMSTask mst, WCSTask cst) { - string destLoc = null; - Location agvEndLoc = null; - Location wmsEndLoc = null; + Location endLoc = null; if (applyType == "1") { if (mst.S_TYPE == "浣欐枡/绌哄伐瑁呭叆搴�) @@ -1069,8 +1068,7 @@ // 鍙栨秷浠诲姟 ApiHelper.cancelTask(awaitTask.S_CODE); // 淇敼缁堢偣 - agvEndLoc = LocationHelper.GetLoc(awaitTask.S_END_LOC); - wmsEndLoc = agvEndLoc; + endLoc = LocationHelper.GetLoc(awaitTask.S_END_LOC); mst.S_TYPE = "鍙枡鍑哄簱浠诲姟"; } } @@ -1078,36 +1076,33 @@ } } - if (agvEndLoc == null) + if (endLoc == null) { string msg = ""; - if (applyType == "2" || applyType == "3" || applyType == "4") + if (applyType == "2") { cst.S_TYPE = cst.S_TYPE + "銆愬紓甯搞�"; msg = "宸ヨ寮傚父"; } // TODO 鍙嶉鏂滆绔嬪簱寮傚父锛岃姹傛枩瑁佸叆搴撶粓鐐�- agvEndLoc = null; - + string locCode = "XCCRKZTKQ-1-1"; + endLoc = LocationHelper.GetLoc(locCode); } - if (agvEndLoc != null) + if (endLoc != null) { - destLoc = agvEndLoc.S_CODE; - - cst.S_END_LOC = agvEndLoc.S_CODE; - cst.S_END_AREA = agvEndLoc.S_AREA_CODE; + cst.S_END_LOC = endLoc.S_CODE; + cst.S_END_AREA = endLoc.S_AREA_CODE; WCSHelper.UpdateEndLoc(cst); - } - if (wmsEndLoc != null) - { - mst.S_END_LOC = wmsEndLoc.S_CODE; - mst.S_END_AREA = wmsEndLoc.S_AREA_CODE; + mst.S_END_LOC = endLoc.S_CODE; + mst.S_END_AREA = endLoc.S_AREA_CODE; WMSHelper.UpdateTaskEnd(mst); + + return endLoc.S_CODE; } - return destLoc; + return null; } /// <summary> @@ -1164,7 +1159,7 @@ wmsEndLoc = WMSHelper.getInStockEndLoc(null, container.N_DETAIL_COUNT == 0 ? 0 : 1, container.N_TYPE); if (wmsEndLoc != null) { - agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1, 2); // 1.绔嬪簱鎺ラ┏浣�1.鍏ュ簱 2.闈炵洿杩�+ agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1); if (agvEndLoc != null) { LogHelper.Info($"鍒涘缓绔嬪簱绔欏彴鍒扮珛搴撶殑棰勫垱寤轰换鍔★紝agv缁堢偣璐т綅:{agvEndLoc.S_CODE},绔嬪簱缁堢偣璐т綅:{wmsEndLoc.S_CODE}", "AGV"); @@ -1240,7 +1235,7 @@ wmsEndLoc = WMSHelper.getInStockEndLoc(null, container.N_DETAIL_COUNT == 0 ? 0 : 1, container.N_TYPE); if (wmsEndLoc != null) { - agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1, 2); // 1.绔嬪簱鎺ラ┏浣�1.鍏ュ簱 2.闈炵洿杩�+ agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1); if (agvEndLoc != null) { LogHelper.Info($"鍒涘缓绔嬪簱绔欏彴鍒扮珛搴撶殑棰勫垱寤轰换鍔★紝agv缁堢偣璐т綅:{agvEndLoc.S_CODE},绔嬪簱缁堢偣璐т綅:{wmsEndLoc.S_CODE}", "AGV"); @@ -1251,7 +1246,7 @@ S_OP_CODE = mst.S_CODE, S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = cst.S_CNTR_CODE, - S_TYPE = cst.S_TYPE + "銆愬紓甯搞�", + S_TYPE = "寮傚父宸ヨ鍏ュ簱", S_START_LOC = agvEndLoc.S_CODE, S_START_AREA = agvEndLoc.S_AREA_CODE, S_END_LOC = wmsEndLoc.S_CODE, @@ -1288,25 +1283,9 @@ return null; } } - } - if (agvEndLoc != null && wmsEndLoc != null) - { - destLoc = agvEndLoc.S_CODE; - cst.S_END_LOC = agvEndLoc.S_CODE; - cst.S_END_AREA = agvEndLoc.S_AREA_CODE; - WCSHelper.UpdateEndLoc(cst); - - mst.S_END_LOC = wmsEndLoc.S_CODE; - mst.S_END_AREA = wmsEndLoc.S_AREA_CODE; - WMSHelper.UpdateTaskEnd(mst); - } - - // 閲嶆柊鍙戣捣鏂颁换鍔�- if (applyType != "1") - { var mesTask = WMSHelper.GetLjMesTaskByAgvorderId(mst.S_CODE); - if (mesTask != null) + if (mesTask != null) { if (mst.S_TYPE.Contains("鍙枡鍑哄簱浠诲姟")) { @@ -1321,7 +1300,7 @@ var logicConfig = WMSHelper.getLogicConfigByJtCode(mesTask.EQP); if (logicConfig != null) { - triggerItemOffLineFlow4(mesTask.POSITION_ID, mst.S_CNTR_CODE, logicConfig ,mesTask); + triggerItemOffLineFlow4(mesTask.POSITION_ID, mst.S_CNTR_CODE, logicConfig, mesTask); } else { @@ -1329,6 +1308,18 @@ } } } + } + + if (agvEndLoc != null && wmsEndLoc != null) + { + destLoc = agvEndLoc.S_CODE; + cst.S_END_LOC = agvEndLoc.S_CODE; + cst.S_END_AREA = agvEndLoc.S_AREA_CODE; + WCSHelper.UpdateEndLoc(cst); + + mst.S_END_LOC = wmsEndLoc.S_CODE; + mst.S_END_AREA = wmsEndLoc.S_AREA_CODE; + WMSHelper.UpdateTaskEnd(mst); } return destLoc; } @@ -1357,7 +1348,7 @@ if (locCntrRels.Count > 0) { cntrCode = locCntrRels[0].S_CNTR_CODE; - middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 1, 2); + middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2); if (middleLoc != null) { // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�@@ -1456,136 +1447,164 @@ /// <param name="mesTaskId"></param> public static void callMaterialXC(string materialCode, string endLocCode, int mesTaskId) { - // 1.鏌ヨ鐜甫搴撶墿鏂欏簱瀛�- DateTime inStockTimeXc = DateTime.MinValue; - List<CntrItemRel> cntrItemRelsXc = new List<CntrItemRel>(); - if (cntrItemRelsXc.Count > 0) - { - inStockTimeXc = cntrItemRelsXc[0].T_INBOUND_TIME; - } - - // 2.鏌ヨ涓浆搴撳簱瀛�- DateTime inStockTime = DateTime.MinValue; - var cntrItemRels = WMSHelper.getZZKInventoryInfo(materialCode); - if (cntrItemRels.Count > 0) - { - inStockTime = cntrItemRels[0].T_INBOUND_TIME; - } - - // 3.鏍规嵁鍏堣繘鍏堝嚭璁$畻鍑哄簱鐨勭墿鏂欐槸鐜甫搴�杩樻槸涓浆搴� var mesTask = WMSHelper.GetLjMesTaskById(mesTaskId); - if (inStockTime >= inStockTimeXc) + if (mesTask != null) { - //鏂滆鐗╂枡鍑哄簱 - if (cntrItemRelsXc.Count > 0) + // 1.鏌ヨ鐜甫搴撶墿鏂欏簱瀛樻渶鏃╁叆搴撴椂闂�+ DateTime inStockTimeXc = DateTime.MinValue; + + // 2.鏌ヨ涓浆搴撳簱瀛�+ DateTime inStockTime = WMSHelper.getZZKInventoryInfo(materialCode); + + // 3.鏍规嵁鍏堣繘鍏堝嚭璁$畻鍑哄簱鐨勭墿鏂欐槸鐜甫搴�杩樻槸涓浆搴�+ if (inStockTime >= inStockTimeXc) { - // 4.灏哅ES浠诲姟鍐欏叆鐜甫搴撲换鍔′腑闂磋〃 - WMSHelper.addLjXcTask(mesTask); - } - } - else - { - //涓浆搴撶墿鏂欏嚭搴�- if (cntrItemRels.Count > 0) - { - var cntrItemRel = cntrItemRels[0]; - var locCntrRel = LocationHelper.GetLocCntrByCntr(cntrItemRel.S_CNTR_CODE); - if (locCntrRel != null) + Location endLoc = WMSHelper.getCallMaterialLocCode(mesTask.EQP); + if (endLoc != null) { - var endLoc = LocationHelper.GetLoc(locCntrRel.S_LOC_CODE); - if (endLoc != null) + // 4.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓�+ var wmsTask = new WMSTask() + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_CNTR_CODE = "", + S_START_LOC = "铏氭嫙璧风偣", + S_START_AREA = "铏氭嫙搴撳尯", + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_TYPE = "鍙枡鍑哄簱浠诲姟", + S_OP_DEF_CODE = mesTask.ID.ToString(), + S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�鏂滆)", + T_START_TIME = DateTime.Now, + N_B_STATE = 0 + }; + 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, + S_START_LOC = wmsTask.S_START_LOC, + S_START_AREA = wmsTask.S_START_AREA, + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "AGV", + N_PRIORITY = 10, + T_START_TIME = DateTime.Now, + N_B_STATE = -1, + S_B_STATE = "棰勫垱寤�, + }; + + if (WCSHelper.CreateTask(wcsTask)) + { + // 璧风偣銆佺粓鐐瑰姞閿�+ LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + + // 5.灏哅ES浠诲姟鍐欏叆鏂滆浠诲姟涓棿琛�+ mesTask.AGVORDER_ID = wcsTask.S_CODE; + WMSHelper.addLjXcTask(mesTask); + } + } + } + } + else + { + //涓浆搴撶墿鏂欏嚭搴�+ Location startLoc = WMSHelper.getOutStockStartLoc(null, materialCode); + if (startLoc != null) + { + var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); + if (locCntrRels != null && locCntrRels.Count > 0) { Location middleLoc = null; - Location startLoc = WMSHelper.getOutStockStartLoc(null, materialCode); - if (startLoc != null) + Location endLoc = WMSHelper.getCallMaterialLocCode(mesTask.EQP); + if (endLoc != null) { - var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); - if (locCntrRels.Count > 0) + middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2); + if (middleLoc != null) { - var cntrCode = cntrItemRel.S_CNTR_CODE; - middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 1, 2); - if (middleLoc != null) + // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�+ var wmsTask = new WMSTask() { - // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�- var wmsTask = new WMSTask() + S_CNTR_CODE = locCntrRels[0].S_CNTR_CODE, + 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 = mesTaskId.ToString(), + S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, + T_START_TIME = DateTime.Now, + }; + if (WMSHelper.CreateWmsTask(wmsTask)) + { + WCSTask wcsTask = new WCSTask() { - S_CNTR_CODE = cntrCode, - S_CODE = WMSHelper.GenerateTaskNo(), + 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, 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 = mesTaskId.ToString(), - S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, + S_END_LOC = middleLoc.S_CODE, + S_END_AREA = middleLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "WCS", + N_PRIORITY = 10, T_START_TIME = DateTime.Now, }; - if (WMSHelper.CreateWmsTask(wmsTask)) + + if (WCSHelper.CreateTask(wcsTask)) { - 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, - 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 = 10, - T_START_TIME = DateTime.Now, - }; + // 璧风偣銆佺粓鐐瑰姞閿�+ LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); - 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); - } - - // 棰勫垱寤轰簩娈典换鍔�- WCSTask twoWcsTask = 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, - S_START_LOC = middleLoc.S_CODE, - S_START_AREA = middleLoc.S_AREA_CODE, - S_END_LOC = endLoc.S_CODE, - S_END_AREA = endLoc.S_AREA_CODE, - S_SCHEDULE_TYPE = "AGV", - N_PRIORITY = 10, - T_START_TIME = DateTime.Now, - N_B_STATE = -1 - }; - WCSHelper.CreateTask(twoWcsTask); - WMSHelper.readLjMesCallItemTask(wmsTask.S_CODE, mesTaskId); + // 鏇存柊浣滀笟浠诲姟鐘舵� + wmsTask.N_B_STATE = 1; + WMSHelper.UpdateTaskState(wmsTask); } - } - else - { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝搴撳尯{startLoc.S_AREA_CODE}鏈煡璇㈠埌鍙敤鐨勬帴椹充綅"); + + // 棰勫垱寤轰簩娈典换鍔�+ WCSTask twoWcsTask = 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, + S_START_LOC = middleLoc.S_CODE, + S_START_AREA = middleLoc.S_AREA_CODE, + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "AGV", + N_PRIORITY = 10, + T_START_TIME = DateTime.Now, + N_B_STATE = -1 + }; + WCSHelper.CreateTask(twoWcsTask); + WMSHelper.readLjMesCallItemTask(wmsTask.S_CODE, mesTaskId); } } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝寮�璐т綅:{startLoc.S_CODE}寮傚父锛岀己灏戝鍣ㄤ俊鎭�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝搴撳尯{startLoc.S_AREA_CODE}鏈煡璇㈠埌鍙敤鐨勬帴椹充綅"); } } else { - mesTask.AWAIT_MSG = "搴撳瓨涓嶈冻"; - WMSHelper.updateLjMesTask(mesTask); - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝鐗╂枡:{materialCode}搴撳瓨涓嶈冻"); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝寮�璐т綅:{startLoc.S_CODE}寮傚父锛岀己灏戝鍣ㄤ俊鎭�); } + } + else + { + mesTask.AWAIT_MSG = "搴撳瓨涓嶈冻"; + WMSHelper.updateLjMesTask(mesTask); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝鐗╂枡:{materialCode}搴撳瓨涓嶈冻"); } } } @@ -1635,7 +1654,7 @@ S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = endLoc.S_CODE, S_END_AREA = endLoc.S_AREA_CODE, - S_TYPE = "浣欐枡/绌哄伐瑁呭叆搴撲换鍔� + suffix, + S_TYPE = "浣欐枡/绌哄伐瑁呭叆搴撲换鍔�, S_OP_DEF_CODE = mesTask.ID.ToString(), S_OP_DEF_NAME = "浣欐枡/绌哄伐瑁呭叆搴� + suffix, T_START_TIME = DateTime.Now @@ -1704,7 +1723,7 @@ S_OP_CODE = mst.S_CODE, S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = cst.S_CNTR_CODE, - S_TYPE = "涓嶅悎鏍煎搧鍥炲簱", + S_TYPE = "涓嶅悎鏍煎搧鍏ュ簱浠诲姟", S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = agvEndLoc.S_CODE, @@ -1728,7 +1747,7 @@ wmsEndLoc = WMSHelper.getInStockEndLoc(null, container.N_DETAIL_COUNT == 0 ? 0 : 1, container.N_TYPE); if (wmsEndLoc != null) { - agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1, 2); // 1.绔嬪簱鎺ラ┏浣�1.鍏ュ簱 2.闈炵洿杩�+ agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1); if (agvEndLoc != null) { // 棰勫厛鐢熸垚鍏ュ簱绔欏彴-绔嬪簱缁堢偣鐨勬惉杩愪换鍔�@@ -1738,7 +1757,7 @@ S_OP_CODE = mst.S_CODE, S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = cst.S_CNTR_CODE, - S_TYPE = "涓嶅悎鏍煎搧鍥炲簱", + S_TYPE = "涓嶅悎鏍煎搧鍏ュ簱浠诲姟", S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = agvEndLoc.S_CODE, @@ -1762,7 +1781,7 @@ S_OP_CODE = mst.S_CODE, S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = cst.S_CNTR_CODE, - S_TYPE = "涓嶅悎鏍煎搧鍥炲簱", + S_TYPE = "涓嶅悎鏍煎搧鍏ュ簱浠诲姟", S_START_LOC = agvEndLoc.S_CODE, S_START_AREA = agvEndLoc.S_AREA_CODE, S_END_LOC = wmsEndLoc.S_CODE, @@ -2082,7 +2101,7 @@ { var transfeRelevance = WMSHelper.GetTransfeRelevance(model.locCode); // 鎺ラ┏浣嶅睘鎬� LogHelper.Info($"鍘熺珯鍙板睘鎬э細{JsonConvert.SerializeObject(transfeRelevance)}", "WMS"); - if (transfeRelevance != null && transfeRelevance.N_PROPERTY == 2) + if (transfeRelevance != null) { if (model.signalType == "1") { @@ -2134,6 +2153,83 @@ return result; } + /// <summary> + /// 鏂滆鐗╂枡鍑哄簱浠诲姟 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public static ResponseResult createXcItemOutStockTask(XcItemOutStockModel model) + { + ResponseResult responseResult = new ResponseResult(); + Location startLoc = LocationHelper.GetLoc(model.startLoc); + if (startLoc == null) + { + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏嚭搴�鏂滆)锛岃捣鐐�{model.startLoc}鍦╓MS绯荤粺涓笉瀛樺湪"); + responseResult.code = 201; + responseResult.msg = $"璧风偣:{model.startLoc}鍦╓MS绯荤粺涓笉瀛樺湪"; + return responseResult; + } + Location endLoc = WMSHelper.getCallMaterialLocCode(model.eqNo); + if (endLoc != null) + { + var wmsTask = WMSHelper.GetWmsTaskByCntr(model.palletId); + if (wmsTask == null) + { + ContainerHelper.AddCntr(model.palletId); + + // 1.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓�+ wmsTask = new WMSTask() + { + S_CNTR_CODE = model.palletId, + 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.reqId, + S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�鏂滆)", + 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, + 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 = "AGV", + N_PRIORITY = 10, + 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 + { + responseResult.code = 201; + responseResult.msg = $"鎴愬瀷鏈烘満鍙�{model.eqNo}娌℃湁绌轰綑鐨勫彨鏂欒揣浣�; + } + return responseResult; + } + //---------------------------------------------------------------------------------------------------------------------------- public class LocModel { -- Gitblit v1.9.1