From b06b33248bcc19f8ea6c574124d5c536b7fa6c49 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 16 七月 2025 19:22:27 +0800
Subject: [PATCH] 添加常温直接出库功能,增加实框入库存在任务发往异常口

---
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs |   95 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 61 insertions(+), 34 deletions(-)

diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 2323fa3..503a2bd 100644
--- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -1,4 +1,5 @@
-锘縰sing Masuit.Tools;
+锘縰sing Mapster;
+using Masuit.Tools;
 using SqlSugar;
 using WIDESEA_Common.CustomModels;
 using WIDESEA_Core.Const;
@@ -581,17 +582,42 @@
 
     #region 鐩存帴鍑哄簱浠诲姟瀹屾垚
 
-    public async Task<WebResponseContent> CompleteInToOutTaskAsync(Dt_Task task)
+    public async Task<WebResponseContent> CompleteInToOutTaskAsync(Dt_Task task, DtStockInfo stock)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
-            //娣诲姞鍘嗗彶
-            var taskHty = CreateHistoricalTask(task);
-            // 娣诲姞鍘嗗彶浠诲姟
-            var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
-            //鍒犻櫎浠诲姟
-            BaseDal.DeleteData(task);
+            DtStockInfo_Hty stockInfo_Hty = null;
+            if (stock != null)
+            {
+                stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>();
+                stockInfo_Hty.ModifyDate = DateTime.Now;
+            }
+            var taskHty = task.Adapt<Dt_Task_Hty>();
+            taskHty.FinishTime = DateTime.Now;
+            taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.浜哄伐瀹屾垚 : (int)OperateTypeEnum.鑷姩瀹屾垚;
+            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+
+            var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
+            int lastStatus = location.LocationStatus;
+            location.LocationStatus = (int)LocationEnum.Free;
+            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+
+            _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
+            // 浜嬪姟澶勭悊
+            await _unitOfWorkManage.UseTranAsync(async () =>
+            {
+                if (stockInfo_Hty != null)
+                {
+                    await DeleteStockInfoAsync(stock.Id);
+                    await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
+                    await AddStockInfoHtyAsync(stockInfo_Hty);
+                }
+
+                await UpdateLocationAsync(location);
+                await DeleteTaskAsync(task.TaskId);
+                await AddTaskHtyAsync(taskHty);
+            });
 
             return content.OK();
         }
@@ -1082,37 +1108,37 @@
 
     #region 鐏鍑哄簱
 
-    public WebResponseContent EmergencyTask(object obj)
+    public WebResponseContent EmergencyTask(Object obj)
     {
         WebResponseContent content = new WebResponseContent();
         var emergencyTask = new DTSEmergencyTask();
         try
         {
+            Console.WriteLine($"鐏鍙傛暟:{obj.ToString()}");
             emergencyTask = JsonConvert.DeserializeObject<DTSEmergencyTask>(obj.ToString());
-
             if (emergencyTask == null) throw new Exception("鐏鍙傛暟涓虹┖");
-
             string[] strings = emergencyTask.LocationCode.Split("-");
-
-            string[] Roadways = strings[0].Select(x => x.ToString()).ToArray();
-            string Roadway = string.Empty;
-            switch (Roadways[0])
-            {
-                case "J":
-                    Roadway = "JZSC" + Roadways[1];
-                    break;
-                case "G":
-                    Roadway = "GWSC" + Roadways[1];
-                    break;
-                case "C":
-                    Roadway = "CWSC" + Roadways[1];
-                    break;
-                default: throw new Exception("鏈瘑鍒簱浣嶇紪鐮�");
-            }
-
+            string Roadway = strings[0];
+            //switch (Roadways[0])
+            //{
+            //    case "J":
+            //        Roadway = "JZSC" + Roadways[1];
+            //        break;
+            //    case "G":
+            //        Roadway = "GWSC" + Roadways[1];
+            //        break;
+            //    case "C":
+            //        Roadway = "CWSC" + Roadways[1];
+            //        break;
+            //    default: throw new Exception("鏈瘑鍒簱浣嶇紪鐮�");
+            //}
+            int Row = Convert.ToInt16(strings[1]);
+            int Column = Convert.ToInt16(strings[2]);
+            int Layer = Convert.ToInt16(strings[3]);
+            if (!strings[0].Contains("SC")) throw new Exception("鏈煡搴撳尯");
             for (int i = 0; i < 2; i++)
             {
-                DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == Convert.ToInt16(strings[1]) && x.Column == Convert.ToInt16(strings[2]) && x.Layer == (i == 0 ? Convert.ToInt16(strings[3]) * 2 - 1 : Convert.ToInt16(strings[3]) * 2) && x.RoadwayNo == Roadway);
+                DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == Row && x.Column == Column && x.Layer == (i == 0 ? Layer - 1 : Layer) && x.RoadwayNo == Roadway);
                 if (locationInfo == null)
                 {
                     throw new Exception("鏈煡搴撲綅");
@@ -1181,14 +1207,15 @@
 
                 var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                 var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
-                var ReceiveByWMSTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveByWMSTask)?.ConfigValue;
-                if (ReceiveByWMSTask == null || ipAddress == null)
+                var ReceiveByWMSFireAlarmTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveByWMSFireAlarmTask)?.ConfigValue;
+                if (ReceiveByWMSFireAlarmTask == null || ipAddress == null)
                 {
                     throw new Exception("WMS IP 鏈厤缃�");
                 }
-                var wmsIpAddrss = ipAddress + ReceiveByWMSTask;
-
-                var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(taskDTO));
+                var wmsIpAddrss = ipAddress + ReceiveByWMSFireAlarmTask;
+                List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO>();
+                taskDTOs.Add(taskDTO);
+                var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(taskDTOs));
                 if (respon != null)
                 {
                     WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());

--
Gitblit v1.9.3