From 07b56c461476f7d580318749b2cd5f752aa38f3a Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期四, 11 十二月 2025 17:22:00 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs |   68 +++++++++++++++++++++++++++-------
 1 files changed, 54 insertions(+), 14 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index a6376fd..d522407 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -17,6 +17,7 @@
 using System.Reflection;
 using System.Reflection.Metadata;
 using System.Security.Policy;
+using System.Text;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using WIDESEA_Cache;
@@ -350,16 +351,16 @@
                             Quantity = g.Sum(item => item.Quantity),
                         })
                         .ToList();
-        return new DtStockInfo()
-        {
-            PalletCode = task.PalletCode,
-            LocationCode = task.TargetAddress,
-            CreateDate = DateTime.Now,
-            Creater = "system",
-            IsFullExit = boxingInfo.IsFullExit,
-            StockInfoDetails = mergedDetails,
-            StockStatus = (int)StockStateEmun.宸插叆搴�
-        };
+            return new DtStockInfo()
+            {
+                PalletCode = task.PalletCode,
+                LocationCode = task.TargetAddress,
+                CreateDate = DateTime.Now,
+                Creater = "system",
+                IsFullExit = boxingInfo.IsFullExit,
+                StockInfoDetails = mergedDetails,
+                StockStatus = (int)StockStateEmun.宸插叆搴�
+            };
     }
     #endregion 鍏ュ簱浠诲姟瀹屾垚
 
@@ -520,6 +521,12 @@
 
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
+                if (taskDto.AreaId == 3 || taskDto.AreaId == 7)
+                {
+                    var result2 = UpdateLocationStatus(taskNew.TargetAddress, LocationEnum.Lock, taskNew.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
+                    await _locationStatusChangeRecordRepository.AddDataAsync(result2.Item1);
+                    await _locationRepository.UpdateDataAsync(result2.Item2);
+                }
                 await _locationStatusChangeRecordRepository.AddDataAsync(result.Item1);
                 await _locationRepository.UpdateDataAsync(result.Item2);
                 BaseDal.AddData(taskNew);
@@ -658,7 +665,7 @@
             });
 
             var taskDto = CreateListTaskDTO(taskNew);
-            var result = GetlcoationState(taskNew, StatusChangeTypeEnum.AutomaticOutbound);
+            var result = GetlcoationState(taskNew, StatusChangeTypeEnum.AutomaticOutbound, location);
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
                 await BaseDal.AddDataAsync(taskNew);
@@ -733,7 +740,7 @@
             stock.StockInfoDetails = details;
 
             var taskDto = CreateListTaskDTO(taskNew);
-            var result = GetlcoationState(taskNew, StatusChangeTypeEnum.AutomaticOutbound);
+            var result = GetlcoationState(taskNew, StatusChangeTypeEnum.AutomaticOutbound, stock.LocationInfo);
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
                 await BaseDal.AddDataAsync(taskNew);
@@ -816,7 +823,7 @@
             stock.StockInfoDetails = details;
 
             var taskDto = CreateListTaskDTO(taskNew);
-            var result = GetlcoationState(taskNew, StatusChangeTypeEnum.AutomaticOutbound);
+            var result = GetlcoationState(taskNew, StatusChangeTypeEnum.AutomaticOutbound, stock.LocationInfo);
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
                 await BaseDal.AddDataAsync(taskNew);
@@ -833,13 +840,20 @@
         }
     }
 
-    public (List<DtLocationStatusChangeRecord>,List<DtLocationInfo>) GetlcoationState(Dt_Task task, StatusChangeTypeEnum StatusChangeTypeEnum)
+    public (List<DtLocationStatusChangeRecord>,List<DtLocationInfo>) GetlcoationState(Dt_Task task, StatusChangeTypeEnum StatusChangeTypeEnum, DtLocationInfo location)
     {
         List<DtLocationStatusChangeRecord> locationStatusChangeRecords = new List<DtLocationStatusChangeRecord>();
         List<DtLocationInfo> locations = new List<DtLocationInfo>();
         var result = UpdateLocationStatus(task.SourceAddress, LocationEnum.InStockDisable, task.TaskNum.Value, (int)StatusChangeTypeEnum);
         locationStatusChangeRecords.AddRange(result.Item1);
         locations.AddRange(result.Item2);
+
+        if(location.AreaId ==3|| location.AreaId == 7)
+        {
+            var result2 = UpdateLocationStatus(task.TargetAddress, LocationEnum.Lock, task.TaskNum.Value, (int)StatusChangeTypeEnum);
+            locationStatusChangeRecords.AddRange(result2.Item1);
+            locations.AddRange(result2.Item2);
+        }
 
         return (locationStatusChangeRecords,locations);
     }
@@ -1988,6 +2002,32 @@
         return (changeRecordDto, locations);
     }
 
+    public (DtLocationStatusChangeRecord, DtLocationInfo) UpdateEndLocationStatus(string locationCode, LocationEnum locationStatus, int taskNum, StatusChangeTypeEnum StatusChangeType)
+    {
+        var location = _locationRepository.QueryFirst(x => x.LocationCode == locationCode);
+
+        if (location != null && (location.AreaId == 3 || location.AreaId == 7))
+        {
+            int Beforelocation = location.LocationStatus;
+
+            location.LocationStatus = (int)locationStatus;
+
+            DtLocationStatusChangeRecord dtLocationStatusChangeRecord = new DtLocationStatusChangeRecord()
+            {
+                ChangeType = (int)StatusChangeType,
+                LocationCode = locationCode,
+                LocationId = location.Id,
+                Creater = "System",
+                TaskNum = taskNum,
+                AfterStatus = location.LocationStatus,
+                BeforeStatus = Beforelocation,
+            };
+
+            return (dtLocationStatusChangeRecord, location);
+        }
+        return (null, null);
+    }
+
     public (DtLocationStatusChangeRecord, DtLocationInfo) UpdateLocationStatus(string locationCode, LocationEnum locationStatus, int taskNum, StatusChangeTypeEnum StatusChangeType)
     {
         var location = _locationRepository.QueryFirst(x => x.LocationCode == locationCode);

--
Gitblit v1.9.3