From abff6261e5e74ff16a844f4739f84d49b6133000 Mon Sep 17 00:00:00 2001
From: xxyy <cathay_xy@163.com>
Date: 星期六, 15 二月 2025 13:01:02 +0800
Subject: [PATCH] 新增分容空框出库功能及代码结构优化

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  119 ++++++++++++++++++-----------------------------------------
 1 files changed, 37 insertions(+), 82 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 5b06bf3..909b441 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,11 +1,9 @@
 锘縰sing AutoMapper;
 using HslCommunication;
 using Mapster;
-using Microsoft.AspNetCore.Components.Routing;
 using Newtonsoft.Json;
 using SqlSugar;
 using System.Diagnostics.CodeAnalysis;
-using System.Threading.Tasks;
 using WIDESEAWCS_BasicInfoRepository;
 using WIDESEAWCS_BasicInfoService;
 using WIDESEAWCS_Common;
@@ -20,12 +18,9 @@
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_TaskInfoRepository;
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -98,7 +93,7 @@
                     if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
                         // 鍒ゆ柇浠诲姟鐩爣鍦板潃鍜岃矾寰勬槸鍚︽弧瓒崇壒瀹氭潯浠�
-                        if (task.TargetAddress == "002-021-001" && task.Roadway.Contains("JZ") && task.TaskType == (int)TaskOutboundTypeEnum.OutTray)
+                        if ((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))
                         {
                             // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓
                             task.TaskState = (int)TaskOutStatusEnum.OutNew;
@@ -139,8 +134,11 @@
                     // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔�
                     else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                     {
+                        var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue;
+                        var valueList = value.Split(',').ToList();
                         // 鍒ゆ柇婧愬湴鍧�鏄惁涓嶇瓑浜�"1359-4"
-                        if (task.SourceAddress != "1359-4")
+                        //if (task.SourceAddress != "1359-4" && task.SourceAddress != "1357-4")
+                        if (!valueList.Contains(task.SourceAddress))
                         {
                             // 鏌ヨ浠庢簮鍦板潃鍒扮洰鏍囧湴鍧�鐨勮矾鐢�
                             List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
@@ -156,8 +154,13 @@
                         }
                         else
                         {
-                            // 璁剧疆褰撳墠鍦板潃涓�"002-021-001"
-                            task.CurrentAddress = "002-021-001";
+                            task.CurrentAddress = string.Empty;
+                            if (task.SourceAddress == "1325-6")
+                                // 璁剧疆褰撳墠鍦板潃涓�"001-021-001"
+                                task.CurrentAddress = "001-021-001";
+                            else
+                                // 璁剧疆褰撳墠鍦板潃涓�"002-021-001"
+                                task.CurrentAddress = "002-021-001";
                             // 璁剧疆涓嬩竴涓湴鍧�涓虹洰鏍囧湴鍧�
                             task.NextAddress = item.TargetAddress;
                         }
@@ -211,7 +214,7 @@
                     wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestTask);
                 }
 
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode }.ToJsonString());
+                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode, stationManager.productLine }.ToJsonString());
                 content = JsonConvert.DeserializeObject<WebResponseContent>(result);
 
                 if (!content.Status)
@@ -505,81 +508,11 @@
                         _taskHtyRepository.AddData(task_Hty);
                     }
 
-
                     if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                     {
-                        #region WMS鍚屾浠诲姟瀹屾垚
-
-                        var keys = new Dictionary<string, object>()
-                        {
-                            {"taskNum", task.TaskNum}
-                        };
-                        // 鑾峰彇WMSip鍦板潃
-                        var configs = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                        var wmsBasex = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                        var completeTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
-                        if (wmsBasex == null || completeTask == null)
-                        {
-                            throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                        }
-                        var wmsIpAddressx = wmsBasex + completeTask;
-
-                        var results = HttpHelper.GetAsync(wmsIpAddressx, keys).Result;
-                        content = JsonConvert.DeserializeObject<WebResponseContent>(results);
-                        if (!content.Data.IsNullOrEmpty())
-                        {
-                            if (content.Data.ToString() == "NG")
-                            {
-                                task.Remark = "NG";
-                            }
-                        }
-                        task.ExceptionMessage += "   " + content.Message;
-
-                        #endregion WMS鍚屾浠诲姟瀹屾垚
-
-
-                        if (!task.Roadway.Contains("GW"))
-                        {
-                            var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
-                            if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
-                            task.CurrentAddress = task.NextAddress;
-                            task.NextAddress = routers.FirstOrDefault().ChildPosi;
-                            task.ModifyDate = DateTime.Now;
-                            task.Modifier = "System";
-                            BaseDal.UpdateData(task);
-                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                        }
-                        else
-                        {
-                            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
-                            //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙�
-                            if (task.Remark == "NG")
-                            {
-                                BaseDal.UpdateData(task);
-                            }
-                            else
-                            {
-                                BaseDal.DeleteData(task);
-                                ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}");
-                            }
-
-                            var taskHty = task.Adapt<Dt_Task_Hty>();
-                            _taskHtyRepository.AddData(taskHty);
-                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                        }
-
-                        //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
-
-                        if (task.Roadway.Contains("CH") && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
-                        {
-                            Dt_Task? newTask = UpdatePosition(task.TaskNum, task.CurrentAddress);
-                            if (newTask != null)
-                            {
-                                task = newTask;
-                            }
-                        }
+                        content = StackCraneTaskCompleted(task.TaskNum);
+                        return content;
                     }
-
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                 {
@@ -630,6 +563,12 @@
                     }
                     else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish)
                     {
+                        if (App.User.UserId > 0)
+                        {
+                            content = StackCraneTaskCompleted(task.TaskNum);
+                            return content;
+                        }
+
                         task.ModifyDate = DateTime.Now;
                         task.Modifier = "System";
 
@@ -944,5 +883,21 @@
             }
             return wcsBasez + address;
         }
+
+        #region 閲嶅啓鏂规硶
+
+        public override WebResponseContent DeleteData(object[] key)
+        {
+            foreach (var item in key)
+            {
+                var task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(item));
+                var taskHty = task.Adapt<Dt_Task_Hty>();
+                taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+                _taskHtyRepository.AddData(taskHty);
+            }
+            return base.DeleteData(key);
+        }
+
+        #endregion 閲嶅啓鏂规硶
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3