From fbc6fae6c793220d0b67ac603ce9bbf22837de79 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 19 六月 2025 17:50:47 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs |   54 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 39 insertions(+), 15 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs"
index 2ab2556..2eef9c2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs"
@@ -1,22 +1,26 @@
 锘縰sing AutoMapper;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Serialization;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Core;
+using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
 using WIDESEA_Core.Utilities;
 using WIDESEA_DTO.Inbound;
 using WIDESEA_DTO.Outbound;
+using WIDESEA_IBasicRepository;
 using WIDESEA_IBasicService;
 using WIDESEA_IOutboundRepository;
 using WIDESEA_IOutboundService;
 using WIDESEA_IStockService;
+using WIDESEA_ITaskInfoRepository;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_OutboundService
@@ -27,15 +31,24 @@
         private readonly IMaterielInfoService _materielInfoService;
         private readonly IStockInfoService _stockService;
         private readonly IStockInfoDetailService _stockDetailService;
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        private readonly IBasicRepository _basicRepository;
+        private readonly ITaskRepository _taskRepository;
+        private readonly IOutboundOrderDetailRepository _outboundOrderDetailRepository;
+        private readonly SqlSugarClient _dbBase;
 
         public IOutboundOrderRepository Repository => BaseDal;
 
-        public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper, IMaterielInfoService materielInfoService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService) : base(BaseDal)
+        public OutboundOrderService(IOutboundOrderRepository BaseDal, IBasicRepository basicRepository, IMapper mapper, IMaterielInfoService materielInfoService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService, IUnitOfWorkManage unitOfWorkManage, ITaskRepository taskRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository) : base(BaseDal)
         {
             _mapper = mapper;
             _materielInfoService = materielInfoService;
             _stockDetailService = stockDetailService;
+            _basicRepository = basicRepository;
             _stockService = stockInfoService;
+            _dbBase = unitOfWorkManage.GetDbClient();
+            _taskRepository = taskRepository;
+            _outboundOrderDetailRepository = outboundOrderDetailRepository;
         }
 
         public override WebResponseContent AddData(SaveModel saveModel)
@@ -77,6 +90,31 @@
             }
             saveModel.DetailData = dics;
             return base.UpdateData(saveModel);
+        }
+
+        public override WebResponseContent DeleteData(object[] keys)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                List<Dt_OutboundOrder> _OutboundOrders = BaseDal.Db.Queryable<Dt_OutboundOrder>().Includes(x => x.Details).Where(x => keys.Contains(x.Id)).ToList();
+                if (_OutboundOrders.Count < 1) throw new Exception("鏈壘鍒板嚭搴撳崟");
+                List<Dt_OutboundOrderDetail> orderDetails = new List<Dt_OutboundOrderDetail>();
+                foreach (var item in _OutboundOrders)
+                {
+                    if (item.Details.Where(x => x.LockQuantity != x.OverOutQuantity).Any())
+                        throw new Exception("瀛樺湪鏈嚭搴撳畬鎴愭墭鐩�");
+                    orderDetails.AddRange(item.Details);
+                    item.Details = null;
+                }
+                BaseDal.DeleteAndMoveIntoHty(_OutboundOrders, OperateType.浜哄伐鍒犻櫎);
+                content.Status = _outboundOrderDetailRepository.DeleteAndMoveIntoHty(orderDetails, OperateType.浜哄伐鍒犻櫎);
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
         }
 
         public WebResponseContent AddOutboundOrder(OutboundOrderAddDTO orderAddDTO)
@@ -131,20 +169,6 @@
                 return (false, "鍗曟嵁宸插瓨鍦�", outboundOrderAddDTO);
             }
             return (true, "鎴愬姛", outboundOrderAddDTO);
-        }
-
-        public WebResponseContent ReleaseOutOrder(int orderId)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-
-            }
-            catch (Exception ex)
-            {
-
-            }
-            return content;
         }
     }
 }

--
Gitblit v1.9.3