From 8ae1a147aefadbb255edde088e7c12535c5f02d4 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 08 十月 2025 20:35:51 +0800
Subject: [PATCH] 完善输送线和堆垛机任务处理逻辑在CommonConveyorLine_NewCW.cs`中添加版本注释和设备属性定义,增强设备连接状态检查与命令发送逻辑。 修改 CommonConveyorLine_GWJob.cs`的任务查询逻辑,确保在特定条件下不下发新任务。在CommonConveyorLine_NewCWJob.cs中实现请求入库和出库的处理逻辑,确保任务状态更新。在 RequestInbound.cs中添加出库任务和新任务的处理逻辑,增强异常处理。 在CommonStackerCrane_NewCWJob.cs中实现堆垛机任务完成事件的处理,确保状态更新和前端通知。新增设备型号修改相关常量和 DTO 类,更新服务接口和实现逻辑,确保设备型号修改请求的正确处理。修改 Dt_TaskService.cs中的任务处理逻辑,确保出库任务的库存判断和状态更新。

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs |   42 +++++++++++++++++++++++++++++-------------
 1 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 6bd38fe..7323b07 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -4,6 +4,7 @@
 using SqlSugar;
 using WIDESEA_Common.CustomModels;
 using WIDESEA_Core.Const;
+using WIDESEA_DTO;
 using WIDESEA_DTO.MOM;
 using WIDESEA_DTO.WMS;
 using WIDESEA_Model.Models;
@@ -1078,24 +1079,39 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
-            LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愯姹傚弬鏁般�戯細銆恵JsonConvert.SerializeObject(json)}銆憑Environment.NewLine}{Environment.NewLine}");
             Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
             if (station == null) { throw new Exception($"鏈壘鍒板寘瑁呯珯鍙颁俊鎭紝璇锋鏌ヤ紶鍏ュ弬鏁皗json.Position}"); }
+
+            EqptRunDto basic = new EqptRunDto()
+            {
+                EquipmentModel = "0",
+                Password ="",
+                EmployeeNo = "82412152",
+                SessionId = Guid.NewGuid().ToString(),
+                RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
+                Software = "鍖呰涓婃枡",
+                EquipmentCode = station.stationEquipMOM,
+            };
+            var result = _agingInOrOutInputService.Change(basic).Result;
+            var respone = JsonConvert.DeserializeObject<EqptRunDTO>(result.Data.ToString());
+            if(!result.Status || !respone.Success)
+            {
+                throw new Exception($"{station.productLine}鑾峰彇MOM鎹㈠瀷鏁版嵁寮傚父,寮傚父淇℃伅{respone.MOMMessage}");
+            }
 
             var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
                 .Where(x => x.DeviceStatus == "1")
                 .Where(x => x.DeviceCode.Contains("CWSC")) // 杩囨护鏉′欢
                 .ToList().Select(x => x.DeviceCode).ToList();
 
-            //var outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel");
-            var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList();
-            List<string>? materielCodes = outBoundMateriel.Count != 0
-                ? outBoundMateriel.Where(x => x.ProductionLine == station.productLine && x.ProcessCode == "CWSC3")
-                                  .Select(x => x.MaterielCode)
-                                  .ToList()
-                : null;
+            //var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList();
+            //List<string>? materielCodes = outBoundMateriel.Count != 0
+            //    ? outBoundMateriel.Where(x => x.ProductionLine == station.productLine && x.ProcessCode == "CWSC3")
+            //                      .Select(x => x.MaterielCode)
+            //                      .ToList()
+            //    : null;
 
-            #region
+            #region Redis缂撳瓨鏌ヨ浠g爜
             //// 浠庣紦瀛樹腑鑾峰彇搴撳瓨淇℃伅
             //IDictionary<string, DtStockInfo>? stockInfos = _simpleCacheService.HashGetAll<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo);
             //List<DtStockInfo> stockInfoList = stockInfos.Values.ToList();
@@ -1115,7 +1131,7 @@
             //    .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails != null && x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode)))
             //    .FirstOrDefault();
             // 淇敼鍚庣殑鏌ヨ浠g爜
-            #endregion
+
             //var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
             //                    .Includes(x => x.LocationInfo)
             //                    .Includes(x => x.StockInfoDetails)
@@ -1128,6 +1144,7 @@
             //                    .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode)))
             //                    .OrderBy(x => x.OutboundTime)
             //                    .FirstAsync();
+            #endregion 
 
             DtStockInfo stockInfo = null;
             var stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
@@ -1143,7 +1160,7 @@
             foreach (var stock in stockInfoList)
             {
                 var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>()
-                    .Where(d => d.StockId == stock.Id && materielCodes.Contains(d.MaterielCode))
+                    .Where(d => d.StockId == stock.Id && respone.PreProductNo.Contains(d.MaterielCode))
                     .AnyAsync();
 
                 if (hasMatchingDetail)
@@ -1152,7 +1169,7 @@
                     break;
                 }
             }
-            if (stockInfo == null) throw new Exception($"搴撳唴{station.productLine}鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
+            if (stockInfo == null) throw new Exception($"CWSC3搴撳唴銆恵station.productLine}銆�,銆愮墿鏂欑紪鐮亄respone.PreProductNo}銆戞棤婊¤冻鏉′欢鐨勫簱瀛樺彲鍑哄簱");
 
             DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode);
 
@@ -1189,7 +1206,6 @@
 
             _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
 
-            LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愯繑鍥炲弬鏁般�戯細銆恵JsonConvert.SerializeObject(taskDTO)}銆憑Environment.NewLine}{Environment.NewLine}");
             return content.OK(data: taskDTO);
         }
         catch (Exception ex)

--
Gitblit v1.9.3