From 29f20b28392d212c04c0c40a512894f8622cfa53 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 16 四月 2025 09:32:01 +0800
Subject: [PATCH] 合并

---
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs |   69 ++++++++++++++++++++++++++++------
 1 files changed, 56 insertions(+), 13 deletions(-)

diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index 414858c..fd00670 100644
--- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1,13 +1,16 @@
 锘縰sing Mapster;
 using Masuit.Tools;
+using SixLabors.Fonts.Tables.AdvancedTypographic;
 using SqlSugar;
 using System.Text.RegularExpressions;
 using WIDESEA_Cache;
+using WIDESEA_Core;
 using WIDESEA_Core.Const;
 using WIDESEA_DTO.MOM;
 using WIDESEA_DTO.WMS;
 using WIDESEA_IServices;
 using WIDESEA_IStoragIntegrationServices;
+using WIDESEA_Model.Models;
 using WIDESEAWCS_BasicInfoRepository;
 using WIDESEAWCS_QuartzJob.Models;
 
@@ -869,6 +872,8 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
+            // 璁板綍寮傚父淇℃伅骞舵姏鍑�
+            LogFactory.GetLog($"{position}璇锋眰{productionLine}浠诲姟").Info(true, $"{position}-{tag}-{areaCode}-{JsonConvert.SerializeObject(areaCodes)}-{productionLine}");
             // 鏍规嵁鎵樼洏绫诲瀷鏌ヨ搴撳瓨淇℃伅
             DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound
                 ? areaCode != "CWSC1" ? await QueryStockInfoForRealTrayAsync(areaCode, areaCodes, productionLine) : await QueryStockInfoForRealTrayCWAsync(areaCodes, productionLine)
@@ -943,12 +948,13 @@
             var result = new DtStockInfo();
 
             result = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
-                            .IncludesAllFirstLayer()
+                            .Includes(x => x.LocationInfo)
+                            .Includes(x => x.StockInfoDetails)
                             .Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull)
                             .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine)
-                            .Where(x => x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable)
                             .WhereIF(!devices.IsNullOrEmpty(), x => devices.Contains(x.LocationInfo.RoadwayNo))
-                            .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails != null && x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode)))
+                            .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)
                             .FirstAsync();
 
@@ -998,12 +1004,13 @@
                 .ToList().Select(x => x.DeviceCode).ToList();
 
             var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
-                .IncludesAllFirstLayer()
                 .Where(x => areaCodes.Contains(x.AreaCode) && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢
                 .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine)
-                .Where(x => x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && areaId.Contains(x.LocationInfo.AreaId) && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢
+                .Includes(x=>x.LocationInfo)
                 .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
-                .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails != null && x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode)))
+                .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && areaId.Contains(x.LocationInfo.AreaId) && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢
+                .Includes(x=>x.StockInfoDetails)
+                .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode)))
                 .OrderBy(x => x.OutboundTime) // 鎺掑簭
                 .FirstAsync(); // 鑾峰彇绗竴涓厓绱�
 
@@ -1040,12 +1047,13 @@
                 .ToList().Select(x => x.DeviceCode).ToList();
 
             var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
-                .IncludesAllFirstLayer()
                 .Where(x => x.ProductionLine == station.productLine)
                 .Where(x => x.AreaCode == areaCode && x.IsFull == false)
-                .Where(x => x.StockInfoDetails != null && x.StockInfoDetails.Any(y => y.MaterielCode == "绌烘墭鐩�"))
-                .Where(x => x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢
+                .Includes(x=>x.StockInfoDetails)
+                .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "绌烘墭鐩�"))
+                .Includes(x=>x.LocationInfo)
                 .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
+                .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢
                 .OrderBy(x => x.CreateDate) // 鎺掑簭
                 .FirstAsync(); // 杞崲涓哄垪琛�
 
@@ -1194,15 +1202,15 @@
             if (stockInfo.AreaCode.Contains("CH"))
             {
                 // 鍒涘缓骞舵坊鍔犱换鍔″埌鏁版嵁搴�
-                task = CreateTask(stockInfo, "1020-1", taskType);
+                task = CreateTask(stockInfo, "002-071-001", taskType);
             }
             else
             {
                 if (stockInfo.LocationInfo.RoadwayNo.Contains("JZSC"))
                 {
-                    var targetAddress = "002-021-001";
-                    if (stockInfo.LocationInfo.RoadwayNo == "JZSC4")
-                        targetAddress = "001-021-001";
+                    var targetAddress = "001-061-001";
+                    //if (stockInfo.LocationInfo.RoadwayNo == "JZSC4")
+                    //    targetAddress = "001-021-001";
                     task = CreateTask(stockInfo, targetAddress, taskType);
                 }
             }
@@ -1568,6 +1576,41 @@
 
     #endregion 澶栭儴鎺ュ彛鏂规硶
 
+    #region  闈欑疆鏌ヨ瀹炴墭
+    public async Task<WebResponseContent> QueryStockInfoForRealTrayJZAsync(string ProductLine, string PalletCode)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
+                .Where(x => x.DeviceStatus == "1")
+                .Where(x => x.DeviceCode.Contains("JZSC"))
+                .ToList().Select(x => x.DeviceCode).ToList();
+
+            var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
+                .Where(x=> x.IsFull == true) // 杩囨护鏉′欢
+                .WhereIF(!ProductLine.IsNullOrEmpty(), x => x.ProductionLine == ProductLine)
+                .Includes(x => x.LocationInfo)
+                .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
+                .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId==2 && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢
+                .Includes(x => x.StockInfoDetails)
+                .OrderBy(x => x.OutboundTime) // 鎺掑簭
+                .FirstAsync();
+            if (result.IsNullOrEmpty())
+                content.Error();
+            else
+                content.OK();
+            LogFactory.GetLog($"闈欑疆鏌ヨ瀹炵洏搴撳瓨{ProductLine}").Info(true, $"鎵樼洏鍙凤細{JsonConvert.SerializeObject(result.PalletCode)}-----浜х嚎{JsonConvert.SerializeObject(result.ProductionLine)}");
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+        return content;
+    }
+
+    #endregion
+
     #endregion 澶栭儴鎺ュ彛鏂规硶
 
     #region 鍐呴儴璋冪敤鏂规硶

--
Gitblit v1.9.3