From 990afb24199ef1f7a4648728ac28ed74394e459c Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期二, 31 三月 2026 12:27:50 +0800
Subject: [PATCH] 任务服务优化与接口扩展,日志与配置调整

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs |   53 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 32 insertions(+), 21 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index bce772b..8350e38 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1060,17 +1060,17 @@
             }
 
             //var outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel");
-            var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList();
+            //var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList();
 
-            List<string>? materielCodes = outBoundMateriel.Count != 0
-                ? outBoundMateriel.Where(x => x.ProductionLine == productionLine && x.ProcessCode == area.AreaCode)
-                                  .Select(x => x.MaterielCode)
-                                  .ToList()
-                : null;
+            //List<string>? materielCodes = outBoundMateriel.Count != 0
+            //    ? outBoundMateriel.Where(x => x.ProductionLine == productionLine && x.ProcessCode == area.AreaCode)
+            //                      .Select(x => x.MaterielCode)
+            //                      .ToList()
+            //    : null;
 
-            var result = new DtStockInfo();
+            //DtStockInfo result = null;
 
-            var stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
+            var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
                             .Includes(x => x.LocationInfo)
                             //.Includes(x => x.StockInfoDetails)
                             .Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull)
@@ -1079,19 +1079,19 @@
                             .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable)
                             //.WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode)))
                             .OrderBy(x => x.OutboundTime)
-                            .ToListAsync();
-            foreach (var stock in stockInfoList)
-            {
-                var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>()
-                    .Where(d => d.StockId == stock.Id && materielCodes.Contains(d.MaterielCode))
-                    .AnyAsync();
+                            .FirstAsync();
+            //foreach (var stock in stockInfoList)
+            //{
+            //    var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>()
+            //        .Where(d => d.StockId == stock.Id && materielCodes.Contains(d.MaterielCode))
+            //        .AnyAsync();
 
-                if (hasMatchingDetail)
-                {
-                    result = stock;
-                    break;
-                }
-            }
+            //    if (hasMatchingDetail)
+            //    {
+            //        result = stock;
+            //        break;
+            //    }
+            //}
 
             if (result.IsNullOrEmpty())
                 ConsoleHelper.WriteErrorLine($"{area.AreaName}-{productionLine}鏌ヨ瀹炵洏搴撳瓨淇℃伅澶辫触:鏈壘鍒扮鍚堟潯浠剁殑鏁版嵁");
@@ -1597,6 +1597,13 @@
                 ConsoleHelper.WriteErrorLine(content.ToJsonString());
                 var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
                 if (result == null || !result.Success) return content.Error(result?.MOMMessage ?? "Deserialization error");
+
+                List<string> strings = station.productLine.Split(",").ToList();
+                if (!result.ProductionLine.Contains(strings))
+                {
+                    ConsoleHelper.WriteErrorLine($"鎵樼洏鍙枫�恵palletCode}銆戣姹備骇绾裤�恵result.ProductionLine}銆戜笉鍏佽鍏ャ�恵station.Roadway}銆�");
+                    return content.Error($"鎵樼洏鍙枫�恵palletCode}銆戣姹備骇绾裤�恵result.ProductionLine}銆戜笉鍏佽鍏ャ�恵station.Roadway}銆�");
+                }
 
                 if (result.SerialNos.Count > 0)
                 {
@@ -2328,7 +2335,7 @@
              .Where(x => x.DeviceStatus == 1.ToString() && process.Contains(x.DeviceCode))
              .Select(x => x.DeviceCode).ToListAsync();
 
-        var minGroup = _locationRepository.QueryData(x => deviceCode.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free)
+        var minGroup = _locationRepository.QueryData(x => deviceCode.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == (int)EnableEnum.Enable)
              .GroupBy(x => x.RoadwayNo)
              .OrderByDescending(g => g.Count()) // 鏍规嵁姣忎釜缁勭殑鍏冪礌鏁伴噺鎺掑簭
              .ToList(); // 鍙栧嚭鏁伴噺鏈�澶氱殑缁�
@@ -2337,6 +2344,10 @@
         foreach (var item in minGroup)
         {
             var number = BaseDal.QueryData(x => x.TargetAddress == item.Key).Count();
+            if (item.Count() - number <= 0)
+            {
+                continue;
+            }
             result.Add(item.Key, item.Count() - number);
         }
 

--
Gitblit v1.9.3