From 992a33ca68af405d08da512c46d7d59ec3ceaabc Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期二, 11 二月 2025 14:33:47 +0800
Subject: [PATCH] 添加 ProductionLine 属性并优化任务处理逻辑

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
index 611c289..771d001 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
@@ -44,7 +44,7 @@
         //var station = stationManagers.Select(x => x.stationChildCode).ToList();
 
         //// 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆
-        //var wcsIpAddrss = GetWCSIpAddress();
+        var wcsIpAddrss = GetWCSIpAddress();
         //if (wcsIpAddrss == null)
         //{
         //    throw new InvalidOperationException("WCS IP 鏈厤缃�");
@@ -54,6 +54,20 @@
         //content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
         //var num = content.Data.ObjToInt();
 
+        //濡傛灉褰撳墠搴撳唴瀛樺湪姣斿綋鍓嶆椂闂寸殑瀵瑰簲浜х嚎鐨勬枡 鍒欏叆搴撹嚦甯告俯3
+        DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == input.ProductionLine && x.OutboundTime < DateTime.Now);
+        if (stockInfo != null)
+        {
+            var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
+            var strings = config.ConfigValue.Split(',').ToList();
+            // 鍏ュ簱閫佽嚦甯告俯3
+            var resultContent = await CreateNewTask(input, input.ProductionLine, strings);
+            if (resultContent.Status)
+            {
+                await _boxingInfoRepository.AddDataNavAsync(boxing);
+            }
+            return resultContent;
+        }
 
         // TODO 鍒ゆ柇鍦ㄩ�旀暟閲�
         var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count;
@@ -61,14 +75,14 @@
         {
             // 閫佽嚦鍖呰
             List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList();
-            return await CreateNewTask(input, strings, 3);
+            return await CreateNewTask(input, input.ProductionLine, strings, 3);
         }
         else
         {
             var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
             var strings = config.ConfigValue.Split(',').ToList();
             // 鍏ュ簱閫佽嚦甯告俯3
-            var resultContent = await CreateNewTask(input, strings);
+            var resultContent = await CreateNewTask(input, input.ProductionLine, strings);
             if (resultContent.Status)
             {
                 await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -101,7 +115,11 @@
         if (!content.Status) return content.Error("宸ヨ壓鐢宠澶辫触");
 
         var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString());
-        if (!resultProcessApply.Success) return content.Error("宸ヨ壓鐢宠澶辫触");
+        if (!resultProcessApply.Success)
+        {
+            return await HandleErrorCells(input, area);
+            //return content.Error("宸ヨ壓鐢宠澶辫触");
+        }
 
         var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault().Number.ToInt32();
         foreach (var item in resultProcessApply.ProcessInfo)
@@ -120,7 +138,7 @@
         }
         List<string> strings = stationManagers.Roadway.Split(',').ToList();
 
-        var resultContent = await CreateNewTask(input, strings);
+        var resultContent = await CreateNewTask(input, result.ProductionLine, strings);
         if (resultContent.Status)
         {
             var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -182,7 +200,7 @@
         //    NGStation = stationManagers.stationNGChildCode.Split(',').ToList();
         //}
         List<string> NGStation = stationManagers.stationNGChildCode.Split(',').ToList();
-        content = await CreateNewTask(input, NGStation, 2);
+        content = await CreateNewTask(input, input.ProductionLine, NGStation, 2);
         return content.Error("瀛樺湪寮傚父鐢佃姱");
     }
 
@@ -212,7 +230,8 @@
             TargetAddress = task.Roadway,
             TaskState = task.TaskState.Value,
             Id = 0,
-            TaskType = task.TaskType
+            TaskType = task.TaskType,
+            ProductionLine = task.ProductionLine,
         };
         return new WebResponseContent().OK(data: taskDTO);
     }

--
Gitblit v1.9.3