From b7308bba3d7ffad271ce7fc7a93c8c45d76be87d Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期五, 13 六月 2025 17:21:03 +0800 Subject: [PATCH] 优化印尼佳通-硫化胚胎出入库逻辑策略优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs | 439 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 279 insertions(+), 160 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 176e9dc..49ea593 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs @@ -228,43 +228,53 @@ public static ResponseResult offLineProcess(OffLineRequest model) { ResponseResult responseResult = new ResponseResult(); - // 鏌ヨ璧风偣璐т綅鏄惁瀛樺湪宸插瓨鍦ㄤ换鍔★紝闃叉浠诲姟閲嶅鍙戣捣 - var existWmsTask = WMSHelper.GetWmsTaskByStart(model.loc); - if (existWmsTask == null) + var areaCodes = Settings.areaPropertyList.Select(a => a.areaCode).ToList(); + var isExistCntr = LocationHelper.checkAreaExistCntr(areaCodes,model.cntrNo); + if (!isExistCntr) { - // 鏌ヨ瀵瑰簲鏈哄彴鐨勭墿鏂欎笅绾块厤缃俊鎭�- var logicConfig = WMSHelper.getLogicConfigByJtCode(model.jtNo); - if (logicConfig != null) + // 鏌ヨ璧风偣璐т綅鏄惁瀛樺湪宸插瓨鍦ㄤ换鍔★紝闃叉浠诲姟閲嶅鍙戣捣 + var existWmsTask = WMSHelper.GetWmsTaskByStart(model.loc); + if (existWmsTask == null) { - Container container = ContainerHelper.GetCntr(model.cntrNo); - if (container == null || !model.isNormal) + // 鏌ヨ瀵瑰簲鏈哄彴鐨勭墿鏂欎笅绾块厤缃俊鎭�+ var logicConfig = WMSHelper.getLogicConfigByJtCode(model.jtNo); + if (logicConfig != null) { - ContainerHelper.AddCntr(model.cntrNo); - ContainerHelper.UpdateCntrState(model.cntrNo, 1); - WMSHelper.addRfidAnomalyRecord(model.cntrNo, 1, model.loc, null); - } + Container container = ContainerHelper.GetCntr(model.cntrNo); + if (container == null || !model.isNormal) + { + ContainerHelper.AddCntr(model.cntrNo); + ContainerHelper.UpdateCntrState(model.cntrNo, 1); + WMSHelper.addRfidAnomalyRecord(model.cntrNo, 1, model.loc, null); + } - // 鏍规嵁鐗╂枡涓嬬嚎閰嶇疆淇℃伅锛屽垽鏂换鍔$被鍨嬫槸鐩磋繛涓嬬嚎杩樻槸闈炵洿杩炰笅绾�- if (logicConfig.S_TASK_TYPE == "1" || logicConfig.S_TASK_TYPE == "2") - { - triggerItemOffLineFlow(model.loc, model.cntrNo, logicConfig); + // 鏍规嵁鐗╂枡涓嬬嚎閰嶇疆淇℃伅锛屽垽鏂换鍔$被鍨嬫槸鐩磋繛涓嬬嚎杩樻槸闈炵洿杩炰笅绾�+ if (logicConfig.S_TASK_TYPE == "1" || logicConfig.S_TASK_TYPE == "2") + { + triggerItemOffLineFlow(model.loc, model.cntrNo, logicConfig); + } + else + { + // 婊℃枡涓嬬嚎锛堥潪鐩磋繛锛�+ triggerItemOffLineFlow4(model.loc, model.cntrNo, logicConfig); + } } else { - // 婊℃枡涓嬬嚎锛堥潪鐩磋繛锛�- triggerItemOffLineFlow4(model.loc, model.cntrNo, logicConfig); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鏈哄彴鍙穥model.jtNo},娌℃湁鍙敤鐨勯�杈戠嚎璺�璇疯仈绯荤鐞嗕汉鍛�); + throw new BusinessException($"鏈哄彴鍙穥model.jtNo},娌℃湁鍙敤鐨勯�杈戠嚎璺紝璇疯仈绯荤鐞嗕汉鍛�); } } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鏈哄彴鍙穥model.jtNo},娌℃湁鍙敤鐨勯�杈戠嚎璺�璇疯仈绯荤鐞嗕汉鍛�); - throw new BusinessException($"鏈哄彴鍙穥model.jtNo},娌℃湁鍙敤鐨勯�杈戠嚎璺紝璇疯仈绯荤鐞嗕汉鍛�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"涓嬬嚎璐т綅锛歿model.loc}宸叉湁浠诲姟锛岃鍕块噸澶嶄笅鍙戜换鍔�); + throw new BusinessException($"涓嬬嚎璐т綅锛歿model.loc}宸叉湁浠诲姟锛岃鍕块噸澶嶄笅鍙戜换鍔�); } } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"涓嬬嚎璐т綅锛歿model.loc}宸叉湁浠诲姟锛岃鍕块噸澶嶄笅鍙戜换鍔�); - throw new BusinessException($"涓嬬嚎璐т綅锛歿model.loc}宸叉湁浠诲姟锛岃鍕块噸澶嶄笅鍙戜换鍔�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"宸ヨ锛歿model.cntrNo}宸插叆搴擄紝璇峰嬁閲嶅鍏ュ簱"); + throw new BusinessException($"宸ヨ锛歿model.cntrNo}宸插叆搴擄紝璇峰嬁閲嶅鍏ュ簱"); } return responseResult; } @@ -369,8 +379,8 @@ } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"绌哄伐瑁呭嚭搴撶珯鍙�{logicConfig.S_LKKTJBLOC},娌℃湁绌哄伐瑁�); - photoStatus = false; + kgzCntrCode = "铏氭嫙瀹瑰櫒"; + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"绌哄伐瑁呭嚭搴撶珯鍙�{logicConfig.S_LKKTJBLOC},娌℃湁绌哄伐瑁�); } } @@ -917,7 +927,6 @@ // 鏇存柊鍑哄簱浠诲姟涓棿琛ㄧ姸鎬� WMSHelper.updateLotOutTask(cst.S_CNTR_CODE, "2"); } - } } } @@ -941,45 +950,27 @@ if (mst != null && mst.N_B_STATE < 2) { int emptyFlag = 0; // 瀹瑰櫒绌烘弧鏍囪瘑 - Container cntr = ContainerHelper.GetCntr(cst.S_CNTR_CODE); - if (cntr != null && cntr.N_DETAIL_COUNT > 0) { + var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE); + if (cntrItemRels.Count > 0) { emptyFlag = 1; } // 1锛氬爢鍨涙満鏀捐揣寮傚父鐢宠鏂扮粓鐐� if (model.applyType == 1) { // 鎶ヨ锛氭祦绋嬪紓甯�- WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鍫嗗灈鏈烘斁璐у紓甯革紝寮傚父璐т綅锛歿cst.S_END_LOC}"); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"鍫嗗灈鏈烘斁璐у紓甯革紝浠诲姟鍙凤細{cst.S_CODE}锛屽紓甯歌揣浣嶏細{cst.S_END_LOC}"); // 1.灏嗗紓甯歌揣浣嶄笂閿侊紝骞舵姤璀� LocationHelper.LockLoc(cst.S_END_LOC, 3); // 2.鏌ヨ鏂扮殑鍏ュ簱缁堢偣 - Location endLoc = WMSHelper.getInStockEndLoc(cst.S_END_AREA, emptyFlag); + Location endLoc = WMSHelper.getInStockEndLoc(cst.S_END_AREA, emptyFlag ); cst.S_END_LOC = endLoc.S_CODE; WCSHelper.UpdateEndLoc(cst); LocationHelper.LockLoc(endLoc.S_CODE, 1); applyDest.destLoc = endLoc.S_CODE; } - else if (model.applyType == 2) - { - if (cst.S_END_LOC == "铏氭嫙搴撲綅") - { - var transfeRelevance = WMSHelper.GetTransfeRelevance(model.loc); // 鎺ラ┏浣嶅叧鑱斿睘鎬�- if (transfeRelevance != null) - { - // 1.鏌ヨ鏂扮殑鍏ュ簱缁堢偣 - Location endLoc = WMSHelper.getInStockEndLoc(transfeRelevance.S_RELE_AREA, emptyFlag); - cst.S_END_LOC = endLoc.S_CODE; - WCSHelper.UpdateEndLoc(cst); - - LocationHelper.LockLoc(endLoc.S_CODE, 1); - applyDest.destLoc = endLoc.S_CODE; - } - } - } - } } result.data = applyDest; @@ -1066,18 +1057,22 @@ { if (mst.S_TYPE == "浣欐枡/绌哄伐瑁呭叆搴�) { - var mesTask = WMSHelper.GetLjMesTaskById(int.Parse(mst.S_OP_DEF_CODE)); - if (mesTask.QTY != 0) + var bo = int.TryParse(mst.S_OP_DEF_CODE, out int mesId); + if (bo) { - var awaitTask = WMSHelper.GetAwaitWmsTaskByMaterialCode(mesTask.MATERIAL_CODE); - if (awaitTask != null) + var mesTask = WMSHelper.GetLjMesTaskById(mesId); + if (mesTask.QTY != 0) { - // 鍙栨秷浠诲姟 - ApiHelper.cancelTask(awaitTask.S_CODE); - // 淇敼缁堢偣 - agvEndLoc = LocationHelper.GetLoc(awaitTask.S_END_LOC); - wmsEndLoc = agvEndLoc; - mst.S_TYPE = "鍙枡鍑哄簱浠诲姟"; + var awaitTask = WMSHelper.GetAwaitWmsTaskByMaterialCode(mesTask.MATERIAL_CODE); + if (awaitTask != null) + { + // 鍙栨秷浠诲姟 + ApiHelper.cancelTask(awaitTask.S_CODE); + // 淇敼缁堢偣 + agvEndLoc = LocationHelper.GetLoc(awaitTask.S_END_LOC); + wmsEndLoc = agvEndLoc; + mst.S_TYPE = "鍙枡鍑哄簱浠诲姟"; + } } } } @@ -1199,7 +1194,7 @@ } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"AGV鐢宠缁堢偣澶辫触锛屾湭鏌ヨ鍒扮珛搴撴帴椹充綅"); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"AGV鐢宠缁堢偣澶辫触锛岀珛搴�{wmsEndLoc.S_AREA_CODE}鏈厤缃珛搴撴帴椹充綅"); return null; } } @@ -1342,118 +1337,112 @@ /// 鎴愭柊鏈哄彨鏂� /// </summary> /// <param name="materialCode"></param> - /// <param name="endLocCode"></param> + /// <param name="jtNo"></param> /// <param name="mesTaskId"></param> - public static void callMaterial(string materialCode, string endLocCode, int mesTaskId) + public static void callMaterial(string materialCode, string jtNo, int mesTaskId) { - var oldWmsTask = WMSHelper.GetWmsTaskByEnd(endLocCode); - if (oldWmsTask == null) { - string cntrCode = ""; - Location endLoc = LocationHelper.GetLoc(endLocCode); + string cntrCode = ""; + var mesTask = WMSHelper.GetLjMesTaskById(mesTaskId); + + if (mesTask != null) + { + Location endLoc = WMSHelper.getCallMaterialLocCode(jtNo); if (endLoc != null) { Location middleLoc = null; Location startLoc = WMSHelper.getOutStockStartLoc(null, materialCode); - if (startLoc == null) - { - var mesTask = WMSHelper.GetLjMesTaskById(mesTaskId); - if (mesTask != null) - { - mesTask.RECEIVE_MSG = "娌℃湁搴撳瓨"; - WMSHelper.updateLjMesTask(mesTask); - } - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鍙枡澶辫触锛岀墿鏂�{materialCode}娌℃湁搴撳瓨"); - return; - } - else + if (startLoc != null) { var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); if (locCntrRels.Count > 0) { cntrCode = locCntrRels[0].S_CNTR_CODE; - } - else - { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鏌ヨ鐗╂枡寮傚父锛岃揣浣�{startLoc.S_CODE}缂哄皯瀹瑰櫒淇℃伅"); - return; - } - } - - middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 1 , 2); - - if (middleLoc != null) - { - // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�- var wmsTask = new WMSTask() - { - S_CNTR_CODE = cntrCode, - 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() + middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 1, 2); + if (middleLoc != null) { - 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 + "-WCS", - 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, - }; + // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�+ var wmsTask = new WMSTask() + { + S_CNTR_CODE = cntrCode, + 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_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, + }; - if (WCSHelper.CreateTask(wcsTask)) - { - // 璧风偣銆佺粓鐐瑰姞閿�- 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); + // 鏇存柊浣滀笟浠诲姟鐘舵� + 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); + } } - - // 棰勫垱寤轰簩娈典换鍔�- WCSTask twoWcsTask = new WCSTask() + else { - 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); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝搴撳尯{startLoc.S_AREA_CODE}鏈煡璇㈠埌鍙敤鐨勬帴椹充綅"); + } + } + else + { + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝寮�璐т綅:{startLoc.S_CODE}寮傚父锛岀己灏戝鍣ㄤ俊鎭�); } } - else + else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"搴撳尯{startLoc.S_AREA_CODE}鏈煡璇㈠埌鍙敤鐨勬帴椹充綅"); - } + mesTask.AWAIT_MSG = "搴撳瓨涓嶈冻"; + WMSHelper.updateLjMesTask(mesTask); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝鐗╂枡:{materialCode}搴撳瓨涓嶈冻"); + } } } + } /// <summary> @@ -1465,14 +1454,142 @@ /// <param name="materialCode"></param> /// <param name="endLocCode"></param> /// <param name="mesTaskId"></param> - public static void callMaterialHDK(string materialCode, string endLocCode, int mesTaskId) + 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.鏌ヨ涓浆搴撳簱瀛橈紝鏍规嵁鍏ュ簱鏃堕棿 杩涜鍏堝叆鍏堝嚭 + // 2.鏌ヨ涓浆搴撳簱瀛�+ DateTime inStockTime = DateTime.MinValue; + var cntrItemRels = WMSHelper.getZZKInventoryInfo(materialCode); + if (cntrItemRels.Count > 0) + { + inStockTime = cntrItemRels[0].T_INBOUND_TIME; + } - // 3.灏哅ES浠诲姟鍐欏叆鐜甫搴撲换鍔′腑闂磋〃 - WMSHelper.addLjXcTask(mesTaskId); + // 3.鏍规嵁鍏堣繘鍏堝嚭璁$畻鍑哄簱鐨勭墿鏂欐槸鐜甫搴�杩樻槸涓浆搴�+ var mesTask = WMSHelper.GetLjMesTaskById(mesTaskId); + if (inStockTime >= inStockTimeXc) + { + //鏂滆鐗╂枡鍑哄簱 + if (cntrItemRelsXc.Count > 0) + { + // 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) + { + var endLoc = LocationHelper.GetLoc(locCntrRel.S_LOC_CODE); + if (endLoc != null) + { + Location middleLoc = null; + Location startLoc = WMSHelper.getOutStockStartLoc(null, materialCode); + if (startLoc != null) + { + var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); + if (locCntrRels.Count > 0) + { + var cntrCode = cntrItemRel.S_CNTR_CODE; + middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 1, 2); + if (middleLoc != null) + { + // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�+ var wmsTask = new WMSTask() + { + S_CNTR_CODE = cntrCode, + 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_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, + }; + + 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); + } + } + else + { + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝搴撳尯{startLoc.S_AREA_CODE}鏈煡璇㈠埌鍙敤鐨勬帴椹充綅"); + } + } + else + { + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝寮�璐т綅:{startLoc.S_CODE}寮傚父锛岀己灏戝鍣ㄤ俊鎭�); + } + } + else + { + mesTask.AWAIT_MSG = "搴撳瓨涓嶈冻"; + WMSHelper.updateLjMesTask(mesTask); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏け璐ワ紝鐗╂枡:{materialCode}搴撳瓨涓嶈冻"); + } + } + } + } + } } /// <summary> @@ -1483,12 +1600,12 @@ /// 3.鍒涘缓浣欐枡鍥炲簱浣滀笟锛屽垱寤篴gv鎼繍浠诲姟锛岃櫄鎷熺粓鐐� /// </summary> /// <param name="locCode">鎴愬瀷鏈哄彨鏂欑粓鐐�/param> - public static void returnMaterialOrEmptyTray(string locCode) + /// <param name="jtNo">鎴愬瀷鏈哄彨鏂欑粓鐐�/param> + public static void returnMaterialOrEmptyTray(string locCode ,string jtNo) { if (locCode != null) { - // 2.鏌ヨmes浠诲姟涓棿琛�- var mesTask = WMSHelper.getLjMesTaskByLoc(locCode); + var mesTask = WMSHelper.getLjMesTaskByJtNo(jtNo); if (mesTask != null) { createReturnTask(locCode, mesTask); @@ -1665,10 +1782,11 @@ } } - if (cst.S_TYPE == "鍙枡鍑哄簱浠诲姟") + var bo = int.TryParse(mst.S_OP_DEF_CODE, out int mesId); + if (bo) { - var mesTask = WMSHelper.GetLjMesTaskByAgvorderId(mst.S_CODE); - callMaterial( mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID); + var mesTask = WMSHelper.GetLjMesTaskById(mesId); + callMaterial(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID); } } return result; @@ -2019,7 +2137,8 @@ //---------------------------------------------------------------------------------------------------------------------------- public class LocModel { - public string locCode { get; set; } + public string locCode { get; set; } // 杩旀枡璐т綅缂栧彿 + public string jtNo { get; set; } // 鏈哄彴鍙� } public class ApplyDest { -- Gitblit v1.9.1