From c3a719e955015f8ac4007d1e6f44dd1baaf3077b Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期五, 10 一月 2025 18:40:16 +0800
Subject: [PATCH] 新增补录数据按钮

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs |   40 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index af55b8a..1864fd5 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -303,6 +303,7 @@
 
         if (stationManager.stationType == 1)
         {
+            #region
             // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
             TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
             {
@@ -368,6 +369,7 @@
             ////// 璋冪敤GetProcessResponseAsync鏂规硶锛岃幏鍙栧伐鑹哄搷搴�
             ////var processResponse = await GetProcessResponseAsync(process, input.Position);
             var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
+            #endregion
         }
 
         var task = new Dt_Task
@@ -387,10 +389,13 @@
             TaskNum = await BaseDal.GetTaskNo(),
             Creater = "Systeam"
         };
-        ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + locationInfo.LocationStatus.ToString());
+        int lastStatus = locationInfo.LocationStatus;
+        ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + lastStatus.ToString());
         locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
         ConsoleHelper.WriteSuccessLine($"淇敼鍚庯細" + locationInfo.LocationStatus.ToString());
         await UpdateLocationAsync(locationInfo);
+
+        _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
 
         return task;
     }
@@ -672,10 +677,15 @@
 
             var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
 
-            ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + locationInfo.LocationStatus.ToString());
+            int lastStatus = locationInfo.LocationStatus;
+
+            ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + lastStatus.ToString());
             locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
             ConsoleHelper.WriteSuccessLine($"淇敼鍚庯細" + locationInfo.LocationStatus.ToString());
             await UpdateLocationAsync(locationInfo);
+
+            _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
+
             return task;
         }
         catch (Exception ex)
@@ -784,10 +794,13 @@
                             var content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                             if (content.Status)
                             {
+                                int lastStatus = item.LocationInfo.LocationStatus;
                                 await BaseDal.AddDataAsync(task);
                                 // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
                                 item.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
                                 await _locationRepository.UpdateDataAsync(item.LocationInfo);
+
+                                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(item.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
                             }
                         }
                     }
@@ -833,6 +846,7 @@
                     WMSTaskDTO wmsTask = CreateTaskDTO(task);
 
                     // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
+                    int lastStatus = location.LocationStatus;
                     stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
                     location.LocationStatus = (int)LocationEnum.Distribute;
                     await _unitOfWorkManage.UseTranAsync(async () =>
@@ -841,6 +855,8 @@
                         await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo);
                         await _locationRepository.UpdateDataAsync(location);
                     });
+
+                    _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
 
                     // 杩斿洖鎴愬姛鍝嶅簲
                     return content.OK(data: wmsTask);
@@ -865,7 +881,14 @@
         {
             Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
 
-            DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine);
+            var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>()
+                    .Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo
+                    .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 杩囨护鏉′欢
+                    .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 杩囨护鏉′欢
+                    .OrderBy(x => x.OutboundTime) // 鎺掑簭
+                    .First(); // 鑾峰彇绗竴涓厓绱�
+
+            //DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine);
             if (stockInfo == null) throw new Exception("搴撳唴鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
 
             DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode);
@@ -875,7 +898,7 @@
             // 鍒涘缓鏂颁换鍔″疄渚�
             var task = new Dt_Task
             {
-                CurrentAddress = locationInfo.RoadwayNo,
+                CurrentAddress = stockInfo.LocationCode,
                 Grade = 1,
                 Roadway = locationInfo.RoadwayNo,
                 TargetAddress = json.Position,
@@ -893,6 +916,13 @@
 
             WMSTaskDTO taskDTO = CreateTaskDTO(task);
 
+            int lastStatus = locationInfo.LocationStatus;
+
+            BaseDal.AddData(task);
+            stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
+            _locationRepository.UpdateData(stockInfo.LocationInfo);
+
+            _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
 
             return content.OK(data: taskDTO);
         }
@@ -916,7 +946,7 @@
 
             if (emergencyTask == null) throw new Exception("鐏鍙傛暟涓虹┖");
 
-            DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.RoadwayNo == emergencyTask.Roadway);
+            DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.AreaId == emergencyTask.zone);
             if (locationInfo == null)
             {
                 throw new Exception("鏈煡搴撲綅");

--
Gitblit v1.9.3