From 18d2f40bbf40469b033de6f07ca8a8e3bc191132 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 26 四月 2025 19:21:40 +0800
Subject: [PATCH] 优化代码

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Service/OutboundOrderService.cs |   35 ++++++++++++++++++++++++-----------
 1 files changed, 24 insertions(+), 11 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Service/OutboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Service/OutboundOrderService.cs"
index 8a21d6b..576f20a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Service/OutboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Service/OutboundOrderService.cs"
@@ -48,24 +48,37 @@
                     InDate = a.InDate,
                     StockId = a.Id
                 }).ToList();
-                StockViewDTO1? stockViewDTO = list.OrderBy(x => x.InDate).FirstOrDefault();
-                if (stockViewDTO == null) throw new Exception("鏈壘鍒板彲鍑哄簱绌烘墭");
-                #region 鍒ゆ柇鏄惁涓虹涓�鎺掕揣浣�
-                var strings = stockViewDTO.LocationCode.ToLower().Split('-');
-                var Row = Convert.ToInt32(strings[0]);
-                if (Row == 1)
+                if (list.Count < 1) throw new Exception("鏈壘鍒扮┖鎵樺簱瀛�");
+                var LocationCodes = list.Select(x => x.LocationCode).Distinct().ToList();
+                StockViewDTO1? stockViewDTO = null;
+                foreach (var item in LocationCodes)
                 {
-                    var locationcode = 2.ToString("000") + "-" + strings[1] + "-" + strings[2];
-                    var stockViewDTO1 = list.Where(x => x.LocationCode == locationcode).OrderBy(x => x.InDate).FirstOrDefault();
-                    if (stockViewDTO1 != null) stockViewDTO = stockViewDTO1;
+                    if (_taskRepository.QueryFirst(x => x.SourceAddress == item && x.TaskType != TaskTypeEnum.PalletOutbound.ObjToInt()) == null)
+                    {
+                        stockViewDTO = list.Where(x => x.LocationCode == item).OrderByDescending(x => x.InDate).FirstOrDefault();
+                        break;
+                    }
                 }
+                if (stockViewDTO == null) throw new Exception("鏆傛湭鎵惧埌鍙嚭搴撶┖鎵�");
+                #region 鍒ゆ柇鏄惁涓虹涓�鎺掕揣浣�
+                //var strings = stockViewDTO.LocationCode.ToLower().Split('-');
+                //var Row = Convert.ToInt32(strings[0]);
+                //if (Row == 1)
+                //{
+                //    var locationcode = 2.ToString("000") + "-" + strings[1] + "-" + strings[2];
+                //    var stockViewDTO1 = list.Where(x => x.LocationCode == locationcode).OrderBy(x => x.InDate).FirstOrDefault();
+                //    if (stockViewDTO1 != null) stockViewDTO = stockViewDTO1;
+                //}
                 #endregion
-                stockViewDTO = list.Where(x => x.LocationCode == stockViewDTO.LocationCode).OrderByDescending(x => x.InDate).FirstOrDefault();
+                //stockViewDTO = list.Where(x => x.LocationCode == stockViewDTO.LocationCode).OrderByDescending(x => x.InDate).FirstOrDefault();
                 Dt_LocationInfo locationInfo = _dbBase.Queryable<Dt_LocationInfo>().Where(x => x.LocationCode == stockViewDTO.LocationCode).First();
                 if (locationInfo == null) throw new Exception($"鏈壘鍒拌揣浣嶃�恵stockViewDTO.LocationCode}銆戜俊鎭�");
                 Dt_StockInfo stockInfo = _stockService.Repository.QueryFirst(a => a.Id == stockViewDTO.StockId);
                 if (stockInfo == null) throw new Exception($"鏈壘鍒扮┖鎵樺簱瀛樹俊鎭�");
+                Dt_StockInfoDetail _StockInfoDetail = _stockDetailService.Repository.QueryFirst(a => a.StockId == stockInfo.Id);
+                if (_StockInfoDetail == null) throw new Exception($"鏈壘鍒扮┖鎵樺簱瀛樿鎯�");
                 stockInfo.StockStatus = StockStatusEmun.鍑哄簱涓�.ObjToInt();
+                _StockInfoDetail.Status = StockStatusEmun.鍑哄簱涓�.ObjToInt();
                 Dt_Task _Task = new Dt_Task()
                 {
                     CurrentAddress = locationInfo.LocationCode,
@@ -84,11 +97,11 @@
                     TaskType = TaskTypeEnum.PalletOutbound.ObjToInt(),
                     Dispatchertime = DateTime.Now,
                 };
-                locationInfo.CurrentQty--;
                 List<WMSTaskDTO> wMSTaskDTOs = _mapper.Map<List<WMSTaskDTO>>(new List<Dt_Task>() { _Task });
                 Db.Ado.BeginTran();
                 _basicRepository.LocationInfoRepository.UpdateData(locationInfo);
                 _stockService.Repository.UpdateData(stockInfo);
+                _stockDetailService.Repository.UpdateData(_StockInfoDetail);
                 _taskRepository.AddData(_Task);
                 var ResultData = HttpHelper.PostAsync(WCSInterfaceAddress.ReceiveTask, wMSTaskDTOs.ToJson(), headers: new Dictionary<string, string>());
                 if (ResultData.Result == null) throw new Exception($"鍚慦CS涓嬪彂绌烘墭鍑哄簱浠诲姟瓒呮椂");

--
Gitblit v1.9.3