From bc23bea79e99d8c280ea64766be52743ce044c28 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期四, 27 十一月 2025 11:20:13 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs |   97 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 66 insertions(+), 31 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs"
index b720756..ae0c484 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs"
@@ -1,4 +1,5 @@
-锘縰sing MailKit.Search;
+锘縰sing Autofac.Core;
+using MailKit.Search;
 using Microsoft.Extensions.Logging;
 using SqlSugar;
 using SqlSugar.Extensions;
@@ -61,7 +62,7 @@
                 {
                     1 => await AddAllocateOrder(allocateOrder),
                     2 => await UpdateAllocateOrder(allocateOrder),
-                    3 => DeleteAllocateOrder(allocateOrder),
+                    3 => await DeleteAllocateOrder(allocateOrder),
 
                     _ => WebResponseContent.Instance.OK(),
                 };
@@ -82,33 +83,7 @@
                 }
                 allocateOrder.OrderNo = CreateCodeByRule(nameof(RuleCodeEnum.AllocateOrderCodeRule));
                 Db.InsertNav(allocateOrder).Include(x => x.Details).ExecuteCommand();
-                if (Enum.TryParse<BusinessTypeEnum>(allocateOrder.BusinessType, out var businessType))
-                {
-                    if (businessType == BusinessTypeEnum.鏅轰粨璋冨閮ㄤ粨搴�)
-                    {
-                        var inboundOrders = ConvertToInboundOrders(allocateOrder);
-                        await _inboundService.InbounOrderService.ReceiveInboundOrder(inboundOrders, 1);
-                    }
-                    else if (businessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠� || businessType == BusinessTypeEnum.鏅轰粨璋冩櫤浠�)
-                    {
-                        if (businessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠�)
-                        {
-                            allocateOrder.OrderType = InOrderTypeEnum.Allocat.ObjToInt();
-                        }
-                        else if (businessType == BusinessTypeEnum.鏅轰粨璋冩櫤浠�)
-                        {
-                            allocateOrder.OrderType = InOrderTypeEnum.InternalAllocat.ObjToInt();
-                        }
-
-                        var outboundOrders = ConvertToOutboundOrders(allocateOrder);
-                        await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
-                    }
-                    else
-                    {
-                        // 澶勭悊鏈畾涔夌殑鏋氫妇鍊硷紙濡傛湭鏉ユ柊澧炰絾鏈疄鐜扮殑绫诲瀷锛�
-                        throw new NotSupportedException($"涓嶆敮鎸佺殑涓氬姟绫诲瀷鏋氫妇鍊�: {businessType}");
-                    }
-                }
+                await AddInOutData(allocateOrder);
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -117,6 +92,39 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+
+        private async Task AddInOutData(Dt_AllocateOrder allocateOrder)
+        {
+            if (Enum.TryParse<BusinessTypeEnum>(allocateOrder.BusinessType, out var businessType))
+            {
+                if (businessType == BusinessTypeEnum.鏅轰粨璋冨閮ㄤ粨搴�)
+                {
+                    allocateOrder.OrderType = InOrderTypeEnum.Allocat.ObjToInt();
+                    var inboundOrders = ConvertToInboundOrders(allocateOrder);
+                    await _inboundService.InbounOrderService.ReceiveInboundOrder(inboundOrders, 1);
+                }
+                else if (businessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠� || businessType == BusinessTypeEnum.鏅轰粨璋冩櫤浠�)
+                {
+                    if (businessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠�)
+                    {
+                        allocateOrder.OrderType = InOrderTypeEnum.Allocat.ObjToInt();
+                    }
+                    else if (businessType == BusinessTypeEnum.鏅轰粨璋冩櫤浠�)
+                    {
+                        allocateOrder.OrderType = InOrderTypeEnum.InternalAllocat.ObjToInt();
+                    }
+
+                    var outboundOrders = ConvertToOutboundOrders(allocateOrder);
+                    await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
+                }
+                else
+                {
+                    // 澶勭悊鏈畾涔夌殑鏋氫妇鍊硷紙濡傛湭鏉ユ柊澧炰絾鏈疄鐜扮殑绫诲瀷锛�
+                    throw new NotSupportedException($"涓嶆敮鎸佺殑涓氬姟绫诲瀷鏋氫妇鍊�: {businessType}");
+                }
+            }
+        }
+
         public async Task<WebResponseContent> UpdateAllocateOrder(Dt_AllocateOrder model)
         {
             try
@@ -196,6 +204,10 @@
                 _allocateOrderDetailRepository.AddData(allocateOrderDetails);
 
                 BaseDal.UpdateData(allocateOrder);
+
+                DeleteInOutData(model.UpperOrderNo, allocateOrder);
+                await AddInOutData(allocateOrder);
+
                 _unitOfWorkManage.CommitTran();
 
 
@@ -209,7 +221,7 @@
             }
         }
 
-        public WebResponseContent DeleteAllocateOrder(Dt_AllocateOrder model)
+        public async Task<WebResponseContent> DeleteAllocateOrder(Dt_AllocateOrder model)
         {
             try
             {
@@ -231,6 +243,9 @@
                     _allocateOrderDetailRepository.DeleteData(item);
                 }
                 BaseDal.DeleteData(allocateOrder);
+
+                DeleteInOutData(model.UpperOrderNo, allocateOrder);
+
                 _unitOfWorkManage.CommitTran();
                 return WebResponseContent.Instance.OK();
             }
@@ -239,6 +254,26 @@
                 _unitOfWorkManage.RollbackTran();
                 _logger.LogInformation("AllocateService DeleteAllocateOrder  err:  " + ex.Message);
                 return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        private void DeleteInOutData(string upperOrderNo, Dt_AllocateOrder allocateOrder)
+        {
+            if (Enum.TryParse<BusinessTypeEnum>(allocateOrder.BusinessType, out var businessType))
+            {
+                if (businessType == BusinessTypeEnum.鏅轰粨璋冨閮ㄤ粨搴�)
+                {
+                    _inboundService.InbounOrderService.Db.Deleteable<Dt_InboundOrder>().Where(x => x.UpperOrderNo == upperOrderNo).ExecuteCommand();
+
+                    _inboundService.InboundOrderDetailService.Db.Deleteable<Dt_InboundOrderDetail>()
+                     .Where(p => SqlFunc.Subqueryable<Dt_InboundOrder>().Where(s => s.Id == p.OrderId && s.UpperOrderNo == upperOrderNo).Any()).ExecuteCommand();
+                }
+                else if (businessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠� || businessType == BusinessTypeEnum.鏅轰粨璋冩櫤浠�)
+                {
+                    _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == upperOrderNo).ExecuteCommand();
+                    _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
+                     .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.UpperOrderNo == upperOrderNo).Any()).ExecuteCommand();
+                }
             }
         }
 
@@ -288,7 +323,7 @@
                 WarehouseId = allocateOrder.WarehouseId,
                 OrderNo = allocateOrder.OrderNo,
                 UpperOrderNo = allocateOrder.UpperOrderNo,
-                OrderType = OutOrderTypeEnum.Allocate.ObjToInt(),
+                OrderType = allocateOrder.OrderType,
                 OrderStatus = allocateOrder.OrderStatus,
                 CreateType = allocateOrder.CreateType,
                 BusinessType = allocateOrder.BusinessType,

--
Gitblit v1.9.3