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.FJJT/core/Monitor.cs | 154 +++++++++++++++++++++------------------------------ 1 files changed, 64 insertions(+), 90 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs index 889f4cc..807b3c2 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs @@ -62,21 +62,13 @@ if (lineSideLoc != null) { LogHelper.Info($"鎴愬瀷鏈哄彨鏂欎换鍔★紝MES浠诲姟ID锛歿mesTask.ID}", "WMS"); - - // 2.1鎴愭柊鏈哄彨鏂�鏂滆) if (mesTask.PALLET_TYPE == "5" || mesTask.PALLET_TYPE == "6") { + // 2.1鎴愭柊鏈哄彨鏂�鏂滆) var xcTask = WMSHelper.GetLjXcTaskById(mesTask.ID); if (xcTask == null) { ApiHelper.callMaterialXC(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID); - } - else - { - mesTask.RETURN_CODE = xcTask.RETURN_CODE; - mesTask.RECEIVE_FLAG = xcTask.RECEIVE_FLAG; - mesTask.RECEIVE_DATE = xcTask.RECEIVE_DATE; - WMSHelper.updateLjMesTask(mesTask); } } else @@ -91,94 +83,74 @@ } /// <summary> - /// 鐩戝惉XC鍑哄簱浠诲姟涓棿琛�- /// 璇诲彇鏂滆绔嬪簱鍑哄簱浠诲姟琛紝鏌ヨ浠诲姟鏄惁鎵ц瀹屾垚锛屽畬鎴愬垯锛岃Е鍙慉GV浠诲姟 + /// 鐩戝惉浠诲姟涓棿琛� /// </summary> - public static void MonitorXcOutTask() + public static void MonitorXcTask() { - var xcOutTasks = WMSHelper.getLjXcOutTask("PENDING", "2"); - foreach (var outTask in xcOutTasks) + var ljMesTasks = WMSHelper.GetLjMesTaskListHD(); + foreach (var mesTask in ljMesTasks) { - var mesTask = WMSHelper.GetLjMesTaskById(outTask.ID); - if (mesTask != null && mesTask.RETURN_CODE == "2") + var xcTask = WMSHelper.GetLjXcTaskById(mesTask.ID); + if (xcTask != null && xcTask.RETURN_CODE != mesTask.RETURN_CODE) { - Location startLoc = LocationHelper.GetLoc(outTask.POSITION_ID); - if (startLoc == null) + if (xcTask.RETURN_CODE == "3") { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏嚭搴�鏂滆)锛岃捣鐐�{outTask.POSITION_ID}鍦╓MS绯荤粺涓笉瀛樺湪"); - } - Location endLoc = WMSHelper.getCallMaterialLocCode(mesTask.EQP); - if (endLoc != null) - { - var wmsTask = WMSHelper.GetWmsTaskByCntr(outTask.PALLET_ID); - if (wmsTask == null) + var wcsTask = WCSHelper.GetTask(xcTask.AGVORDER_ID); + if (wcsTask != null) { - // 1.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓�- wmsTask = new WMSTask() + var wmsTask = WMSHelper.GetWmsTask(wcsTask.S_OP_CODE); + if (wmsTask != null) { - S_CNTR_CODE = outTask.PALLET_ID, - 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 = mesTask.ID.ToString(), - S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�鏂滆)", - T_START_TIME = DateTime.Now, - }; - if (WMSHelper.CreateWmsTask(wmsTask)) - { - WCSTask wcsTask = new WCSTask() + Location startLoc = LocationHelper.GetLoc(xcTask.POSITION_ID); + if (startLoc != 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, - 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, - }; + wcsTask.S_CNTR_CODE = xcTask.PALLET_ID; + wcsTask.S_START_LOC = startLoc.S_CODE; + wcsTask.S_START_AREA = startLoc.S_AREA_CODE; + wcsTask.N_B_STATE = 0; + wcsTask.S_B_STATE = "绛夊緟"; + WCSHelper.UpdateWcsTask(wcsTask); - if (WCSHelper.CreateTask(wcsTask)) - { - // 璧风偣銆佺粓鐐瑰姞閿�- LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); - - // 鏇存柊浣滀笟浠诲姟鐘舵� + wmsTask.S_CNTR_CODE = xcTask.PALLET_ID; + wmsTask.S_START_LOC = startLoc.S_CODE; + wmsTask.S_START_AREA = startLoc.S_AREA_CODE; wmsTask.N_B_STATE = 1; - WMSHelper.UpdateTaskState(wmsTask); + wmsTask.S_B_STATE = "鎵ц"; + WMSHelper.UpdateWmsTask(wmsTask); + + // 鏌ヨ鎵樼洏鐗╂枡淇℃伅琛�+ WMSHelper.updateCarrier(mesTask.PALLET_ID); } } } } + + mesTask.POSITION_ID = xcTask.POSITION_ID; + mesTask.RETURN_CODE = xcTask.RETURN_CODE; + mesTask.YCL_BATCH = xcTask.YCL_BATCH; + mesTask.PALLET_ID = xcTask.PALLET_ID; + WMSHelper.updateLjMesTask(mesTask); } } } /// <summary> - /// 鑷姩琛ュ厖绌哄伐瑁呭埌鎺ラ┏浣�+ /// 鑷姩琛ョ┖宸ヨ鍒板浐瀹氱┖宸ヨ鍑哄簱绔欏彴 /// </summary> public static void AutoReplenishEmptyPallet() { - var logicConfigs = WMSHelper.getLogicConfigByTaskType("3"); - if (logicConfigs != null && logicConfigs.Count > 0) + var emptyFixedOutLocList = WMSHelper.GetEmptyFixedOutLocList(); + foreach (var emptyLoc in emptyFixedOutLocList) { - foreach (var item in logicConfigs) + var wmsTask = WMSHelper.GetWmsTaskByEnd(emptyLoc.S_CODE); + if (wmsTask == null ) { - var jbLoc = LocationHelper.GetLoc(item.S_LKKTJBLOC); - var wmsTask = WMSHelper.GetWmsTaskByEnd(item.S_LKKTJBLOC); - if (wmsTask == null && jbLoc.N_CURRENT_NUM == 0) + LogHelper.Info($"鍥哄畾绌哄伐瑁呭嚭搴撶珯鍙�{emptyLoc.S_CODE}琛ュ厖绌哄伐瑁�, "WMS"); + var areaRelevance = Settings.areaRelevanceList.Where(a => a.jbAreaCode == emptyLoc.S_AREA_CODE).First(); + if (areaRelevance != null) { - LogHelper.Info($"闈炵洿杩炴帴椹充綅:{jbLoc.S_CODE},闇�琛ュ厖绌哄伐瑁�, "WMS"); - Location startLoc = WMSHelper.getOutStockStartLoc(item.S_AREA_CODE, null); + Location startLoc = WMSHelper.getOutStockStartLoc(areaRelevance.areaCode, null); if (startLoc != null) { var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); @@ -188,10 +160,10 @@ S_CODE = WMSHelper.GenerateTaskNo(), S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = jbLoc.S_CODE, - S_END_AREA = jbLoc.S_AREA_CODE, - S_TYPE = "绌哄伐瑁呰嚜鍔ㄥ嚭搴撲换鍔�, - S_OP_DEF_NAME = "鑷姩琛ュ厖绌哄伐瑁呭埌鎺ラ┏浣�, + S_END_LOC = emptyLoc.S_CODE, + S_END_AREA = emptyLoc.S_AREA_CODE, + S_TYPE = "绌哄伐瑁呭嚭搴撲换鍔�, + S_OP_DEF_NAME = "鑷姩琛ュ厖绌哄伐瑁呭埌鍥哄畾鍑哄簱绔欏彴", T_START_TIME = DateTime.Now, }; if (WMSHelper.CreateWmsTask(wmsTask)) @@ -205,8 +177,8 @@ S_TYPE = wmsTask.S_TYPE, S_START_LOC = startLoc.S_CODE, S_START_AREA = startLoc.S_AREA_CODE, - S_END_LOC = jbLoc.S_CODE, - S_END_AREA = jbLoc.S_AREA_CODE, + S_END_LOC = emptyLoc.S_CODE, + S_END_AREA = emptyLoc.S_AREA_CODE, S_SCHEDULE_TYPE = "WCS", N_PRIORITY = 10, T_START_TIME = DateTime.Now, @@ -224,9 +196,9 @@ } } } - else + else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"闈炵洿杩炴帴椹充綅:{jbLoc.S_CODE}琛ュ厖绌哄伐瑁呭け璐ワ紝鍘熷洜锛氬簱鍖猴細{item.S_AREA_CODE}娌℃湁绌哄伐瑁�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鍥哄畾绌哄伐瑁呭嚭搴撶珯鍙�{emptyLoc.S_CODE}琛ュ厖绌哄伐瑁呭け璐ワ紝鍘熷洜锛氬簱鍖猴細{areaRelevance.areaCode}娌℃湁绌哄伐瑁�); } } } @@ -260,25 +232,24 @@ WMSHelper.updateMateral(); } + /// <summary> /// 瀹氭椂鏇存柊搴撳瓨淇℃伅 鏇存柊棰戠巼锛�1鍒嗛挓 /// </summary> public static void UpdateInventoryRegularly() { var db = new SqlHelper<object>().GetInstance(); + var areaCodeList = Settings.areaRelevanceList.Select(a => a.areaCode).ToList(); var locations = db.Queryable<Location>() - .LeftJoin<LjLotOnhand>((a, b) => a.S_CODE == b.STORAGE_LOCATION) - .LeftJoin<LocCntrRel>((a, b, c) => a.S_CODE == c.S_LOC_CODE) - .Where((a, b, c) => b.PALLET_ID != c.S_CNTR_CODE) + .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE) + .Where((a,b) => a.N_CURRENT_NUM > 0 && b.S_CNTR_CODE != null && areaCodeList.Contains(a.S_AREA_CODE) ) .ToList(); + + // 鍒犻櫎鎵�湁搴撳瓨淇℃伅锛岃繘琛岄噸缃�+ db.Deleteable<LjLotOnhand>().ExecuteCommand(); foreach (var loc in locations) { - var lotOnhand = db.Queryable<LjLotOnhand>().Where(a => a.STORAGE_LOCATION == loc.S_CODE).First(); - if (lotOnhand != null) { - db.Deleteable(lotOnhand).ExecuteCommand(); - } - var locCntrRels = LocationHelper.GetLocCntr(loc.S_CODE); if (locCntrRels != null && locCntrRels.Count > 0) { @@ -289,16 +260,19 @@ var material = WMSHelper.GetMaterial(cntrItem.S_ITEM_CODE); LjLotOnhand ljLotOnhand = new LjLotOnhand() { + ID = WMSHelper.GenerateStockRecordNo(), MATERIAL_CODE = cntrItem.S_ITEM_CODE, LOT_NAME = cntrItem.S_BATCH_NO, PALLET_ID = cntrItem.S_CNTR_CODE, STORAGE_LOCATION = loc.S_CODE, QC_STATUS = cntrItem.S_ITEM_STATE, - UNIT = material.S_UNIT, + UNIT = material == null ? "":material.S_UNIT, QTY = cntrItem.F_QTY, - IN_DATE = cntrItem.T_INBOUND_TIME, + IN_DATE = cntrItem.T_INBOUND_TIME.ToString("yyyy-MM-dd"), + CREATION_DATE = DateTime.Now, + WAREHOUSE_TYPE = "2" }; - db.Insertable(lotOnhand).ExecuteCommand(); + db.Insertable(ljLotOnhand).ExecuteCommand(); } }); } -- Gitblit v1.9.1