From 8c8532db8fc7fa76b7fe4c254a36d67c6af24ace Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 11 六月 2025 14:46:33 +0800
Subject: [PATCH] 添加物料编码字段并更新查询逻辑

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs |  129 ++++++++++++++++++++++++++-----------------
 1 files changed, 78 insertions(+), 51 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 a8bf1b1..2e8dd63 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
@@ -3,7 +3,9 @@
 using WIDESEA_Core.Const;
 using WIDESEA_DTO.MOM;
 using WIDESEA_DTO.WMS;
-using WIDESEAWCS_Model.Models;
+using WIDESEA_StorageTaskRepository;
+
+//using WIDESEAWCS_Model.Models;
 
 namespace WIDESEA_StorageTaskServices;
 
@@ -40,63 +42,75 @@
     private async Task<WebResponseContent> ProcessOCVB(DtBoxingInfo boxing, Dt_AreaInfo area, RequestTaskDto input)
     {
         WebResponseContent content = new WebResponseContent();
-        // 鍒ゆ柇闇�涓嶉渶瑕佸幓鍖呰锛屼笉闇�瑕佸氨鍘诲父娓╀笁
-        var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine);
-
-        var STATION = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position);
-
-        //var station = stationManagers.Select(x => x.stationChildCode).ToList();
-
-        //// 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆
-        var wcsIpAddrss = GetWCSIpAddress();
-        //if (wcsIpAddrss == null)
-        //{
-        //    throw new InvalidOperationException("WCS IP 鏈厤缃�");
-        //}
-
-        //var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result;
-        //content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
-        //var num = content.Data.ObjToInt();
-
-        //濡傛灉褰撳墠搴撳唴瀛樺湪姣斿綋鍓嶆椂闂寸殑瀵瑰簲浜х嚎鐨勬枡 鍒欏叆搴撹嚦甯告俯3
-        DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == STATION.productLine && x.OutboundTime < DateTime.Now);
-        if (stockInfo != null)
+        try
         {
-            var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
-            var strings = config.ConfigValue.Split(',').ToList();
-            // 鍏ュ簱閫佽嚦甯告俯3
-            var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings);
-            if (resultContent.Status)
+            // 鍒ゆ柇闇�涓嶉渶瑕佸幓鍖呰锛屼笉闇�瑕佸氨鍘诲父娓╀笁
+            var stationManagers = _stationManagerRepository.QueryData(x => x.stationPLC == "1018" && x.stationArea == "Cache" && x.productLine == input.ProductionLine);
+
+            var STATION = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position);
+
+            //var station = stationManagers.Select(x => x.stationChildCode).ToList();
+
+            //// 鑾峰彇WCSip鍦板潃鐩稿叧閰嶇疆
+            var wcsIpAddrss = GetWCSIpAddress();
+            //if (wcsIpAddrss == null)
+            //{
+            //    throw new InvalidOperationException("WCS IP 鏈厤缃�");
+            //}
+
+            //var abc = HttpHelper.PostAsync(wcsIpAddrss, station.ToJsonString()).Result;
+            //content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
+            //var num = content.Data.ObjToInt();
+
+            //濡傛灉褰撳墠搴撳唴瀛樺湪姣斿綋鍓嶆椂闂寸殑瀵瑰簲浜х嚎鐨勬枡 鍒欏叆搴撹嚦甯告俯3
+            DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == STATION.productLine && x.OutboundTime < DateTime.Now);
+            if (stockInfo != null)
             {
-                await _boxingInfoRepository.AddDataNavAsync(boxing);
+                var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
+                var strings = config.ConfigValue.Split(',').ToList();
+                // 鍏ュ簱閫佽嚦甯告俯3
+                var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings);
+                if (resultContent.Status)
+                {
+                    await _boxingInfoRepository.AddDataNavAsync(boxing);
+                }
+                return resultContent;
             }
-            return resultContent;
-        }
 
-        // TODO 鍒ゆ柇鍦ㄩ�旀暟閲�
+            // TODO 鍒ゆ柇鍦ㄩ�旀暟閲�
 
-        var needBarcode = await SqlSugarHelper.DbWCS.Queryable<dt_needBarcode>().FirstAsync(x => x.productLine == STATION.productLine);
-        var needCount = needBarcode.inLineNum;
-        //var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count;
-        if (needCount < 2)
-        {
-            // 閫佽嚦鍖呰
-            List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList();
-            var x = await SqlSugarHelper.DbWCS.Updateable<dt_needBarcode>().SetColumns(x => x.inLineNum == x.inLineNum + 1).ExecuteCommandHasChangeAsync();
-            ConsoleHelper.WriteSuccessLine($"鍦ㄩ�旀暟閲忔坊鍔爗(x ? "鎴愬姛" : "澶辫触")}鏁伴噺+1");
-            return await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings, 3);
-        }
-        else
-        {
-            var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
-            var strings = config.ConfigValue.Split(',').ToList();
-            // 鍏ュ簱閫佽嚦甯告俯3
-            var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings);
-            if (resultContent.Status)
+            var needBarcode = await SqlSugarHelper.DbWCS.Queryable<dt_needBarcode>().FirstAsync(x => x.productLine == STATION.productLine && x.fromArea == "CW");
+            var needCount =  BaseDal.QueryData(x => x.TargetAddress == needBarcode.toArea).Count();
+            //var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count;
+            if (needCount < needBarcode.cacheNum)
             {
-                await _boxingInfoRepository.AddDataNavAsync(boxing);
+                // 閫佽嚦鍖呰
+                List<string> strings = stationManagers.Where(x => x.stationType == 0 && x.productLine == input.ProductionLine).Select(x => x.Roadway).ToList();
+                var x = await SqlSugarHelper.DbWCS.Updateable<dt_needBarcode>()
+                    .SetColumns(x => x.inLineNum == x.inLineNum + 1)
+                    .Where(x => x.id == needBarcode.id).ExecuteCommandHasChangeAsync();
+                ConsoleHelper.WriteSuccessLine($"鍦ㄩ�旀暟閲忔坊鍔爗(x ? "鎴愬姛" : "澶辫触")}鏁伴噺+1,褰撳墠宸ュ簭{boxing.ProcessCode},浜х嚎{input.ProductionLine}");
+                LogFactory.GetLog("OCVB").InfoFormat(true, $"鍦ㄩ�旀暟閲忔坊鍔爗(x ? "鎴愬姛" : "澶辫触")}鏁伴噺+1,褰撳墠宸ュ簭{boxing.ProcessCode},浜х嚎{input.ProductionLine}", "鏃犲弬鏁�");
+                return await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings, 3);
             }
-            return resultContent;
+            else
+            {
+                var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker");
+                var strings = config.ConfigValue.Split(',').ToList();
+                // 鍏ュ簱閫佽嚦甯告俯3
+                var resultContent = await CreateNewTask(input, input.ProductionLine, boxing.ProcessCode, strings);
+                if (resultContent.Status)
+                {
+                    await _boxingInfoRepository.AddDataNavAsync(boxing);
+                }
+                return resultContent;
+            }
+        }
+        catch (Exception ex)
+        {
+            ConsoleHelper.WriteErrorLine(ex.Message);
+            LogFactory.GetLog("OCVB").InfoFormat(true, $"锛屽紓甯镐俊鎭細{ex.Message},{ex.StackTrace}", "鏃犲弬鏁�");
+            return content.Error(ex.Message);
         }
     }
 
@@ -145,6 +159,19 @@
         {
             throw new Exception("鏈壘鍒板叆搴撶珯鍙伴厤缃�");
         }
+        //List<string> strings;
+        //if (areaIn == "GWSC1")
+        //{
+        //    strings = new List<string>
+        //    {
+        //        (boxing.ProductionLine != null && boxing.ProductionLine == "ZJ-7") ? "GWSC1" : "GWSC2"
+        //    };
+        //}
+        //else
+        //{
+        //    strings = stationManagers.Roadway.Split(',').ToList();
+        //}
+
         List<string> strings = stationManagers.Roadway.Split(',').ToList();
 
         var resultContent = await CreateNewTask(input, result.ProductionLine, boxing.ProcessCode, strings);

--
Gitblit v1.9.3