From 1e8ca092e08494e78c398c6262aff94ac5a5bb22 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期四, 04 十二月 2025 10:42:58 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_CheckService/ReCheckOrderService.cs |  101 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 89 insertions(+), 12 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_CheckService/ReCheckOrderService.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_CheckService/ReCheckOrderService.cs"
index 92f1b15..3822dee 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_CheckService/ReCheckOrderService.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_CheckService/ReCheckOrderService.cs"
@@ -1,15 +1,21 @@
 锘縰sing HslCommunication.WebSocket;
+using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common.OrderEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.CodeConfigEnum;
 using WIDESEA_Core.Enums;
+using WIDESEA_Core.Helper;
 using WIDESEA_ICheckService;
+using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
 using WIDESEA_Model.Models.Check;
 
@@ -20,21 +26,26 @@
     {
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly WebSocketServer _webSocketServer;
+        private readonly ILogger<ReCheckOrderService> _logger;
+
+        public readonly IOutboundService _outboundService;
         public IRepository<Dt_ReCheckOrder> Repository => BaseDal;
-        public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer) : base(BaseDal)
+        public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _webSocketServer = webSocketServer;
+            _logger = logger;
+            _outboundService = outboundService;
         }
 
-        public WebResponseContent ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType)
+        public async Task<WebResponseContent> ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType)
         {
             try
             {
                 return operateType switch
                 {
-                    1 => AddReCheckOrder(models),
-                    2 => UpdateReCheckOrder(models),
+                    1 =>await AddReCheckOrder(models),
+                    2 =>await UpdateReCheckOrder(models),
                     3 => DeleteReCheckOrder(models),
 
                     _ => WebResponseContent.Instance.OK(),
@@ -42,11 +53,12 @@
             }
             catch (Exception ex)
             {
+                _logger.LogInformation("ReCheckOrderService ReceiveReCheckOrder:  " + ex.Message);
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
 
-        public WebResponseContent AddReCheckOrder(Dt_ReCheckOrder model)
+        public async Task<WebResponseContent> AddReCheckOrder(Dt_ReCheckOrder model)
         {
             try
             {
@@ -59,15 +71,18 @@
                 model.Creater = "MES";
                 model.CreateDate = DateTime.Now;
                 BaseDal.AddData(model);
-
+                var outboundOrders = ConvertToOutboundOrders(model);
+             
+                await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                _logger.LogInformation("ReCheckOrderService AddReCheckOrder:  " + ex.Message);
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
-        public WebResponseContent UpdateReCheckOrder(Dt_ReCheckOrder model)
+        public async Task<WebResponseContent> UpdateReCheckOrder(Dt_ReCheckOrder model)
         {
             try
             {
@@ -77,6 +92,11 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板崟淇℃伅");
                 }
+                var isupdate = false;
+                if (recheckOrder.SignSeq == model.SignSeq)
+                {
+                    isupdate = true;    
+                }
                 recheckOrder.OrderNo = model.OrderNo;
                 recheckOrder.MaterielCode = model.MaterielCode;
                 recheckOrder.BatchNo = model.BatchNo;
@@ -85,19 +105,27 @@
                 recheckOrder.InspectionNumber = model.InspectionNumber;
                 recheckOrder.SignSeq = model.SignSeq;
                 recheckOrder.Qty = model.Qty;
-                recheckOrder.WarehouseCode= model.WarehouseCode;    
+                recheckOrder.WarehouseCode = model.WarehouseCode;
                 recheckOrder.FactoryArea = model.FactoryArea;
                 recheckOrder.Modifier = "MES";
                 recheckOrder.ModifyDate = DateTime.Now;
 
                 BaseDal.UpdateData(recheckOrder);
 
+                if (isupdate)
+                {
+                    _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand();
+                    _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
+                     .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand();
 
-
+                    var outboundOrders = ConvertToOutboundOrders(model);
+                    await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
+                }         
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                _logger.LogInformation("ReCheckOrderService UpdateReCheckOrder:  " + ex.Message);
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
@@ -112,17 +140,66 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板崟淇℃伅");
                 }
-               
-                BaseDal.DeleteData(recheckOrder);   
- 
+
+                BaseDal.DeleteData(recheckOrder);
+
+                _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand();
+                _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
+                 .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand();
+
 
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                _logger.LogInformation("ReCheckOrderService DeleteReCheckOrder:  " + ex.Message);
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
 
+
+
+        public Dt_OutboundOrder ConvertToOutboundOrders(Dt_ReCheckOrder reCheckOrder)
+        {
+
+            var outboundOrder = new Dt_OutboundOrder()
+            {
+                WarehouseId = 0,
+                OrderNo = reCheckOrder.OrderNo,
+                UpperOrderNo = reCheckOrder.OrderNo,
+                OrderType = InOrderTypeEnum.ReCheck.ObjToInt(),
+                OrderStatus = 0,
+                CreateType = 0,
+                BusinessType = "",
+                IsBatch = 0,
+                FactoryArea = reCheckOrder.FactoryArea,
+                Remark = "",
+                DepartmentCode = "",
+                DepartmentName = "",
+                Details = new List<Dt_OutboundOrderDetail>()
+            };
+            outboundOrder.Details.Add(
+                     new Dt_OutboundOrderDetail
+                     {
+                         OrderId = 0,
+                         MaterielCode = reCheckOrder.MaterielCode,
+                         MaterielName = "",
+                         BatchNo = reCheckOrder.BatchNo,
+                         OrderQuantity = reCheckOrder.Qty,
+                         BarcodeQty = (decimal)reCheckOrder.Qty,
+                         BarcodeUnit = reCheckOrder.Unit,
+                         LockQuantity = 0,
+                         lineNo = "",
+                         OverOutQuantity = 0,
+                         OrderDetailStatus = 0,
+                         Unit = reCheckOrder.Unit,
+                         RowNo = 0,
+                         SupplyCode = "",
+                         WarehouseCode = reCheckOrder.WarehouseCode,
+                     }
+                );
+            return outboundOrder;
+        }
+
     }
 }

--
Gitblit v1.9.3