From f53be30287bc8161805509980bb39a3aae6d5145 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期二, 13 一月 2026 18:42:48 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_CheckService/ReCheckOrderService.cs |   68 ++++++++++++++++++++++++++++++++--
 1 files changed, 64 insertions(+), 4 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 3822dee..79dd57a 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"
@@ -8,15 +8,18 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.StockEnum;
 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_IBasicService;
 using WIDESEA_ICheckService;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Basic;
 using WIDESEA_Model.Models.Check;
 
 namespace WIDESEA_CheckService
@@ -27,15 +30,16 @@
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly WebSocketServer _webSocketServer;
         private readonly ILogger<ReCheckOrderService> _logger;
-
+        private readonly IMaterielInfoService _materielInfoService;
         public readonly IOutboundService _outboundService;
         public IRepository<Dt_ReCheckOrder> Repository => BaseDal;
-        public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService) : base(BaseDal)
+        public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService, IMaterielInfoService materielInfoService) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _webSocketServer = webSocketServer;
             _logger = logger;
             _outboundService = outboundService;
+            _materielInfoService = materielInfoService;
         }
 
         public async Task<WebResponseContent> ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType)
@@ -65,11 +69,26 @@
 
                 if (BaseDal.QueryFirst(x => x.OrderNo == model.OrderNo) != null)
                 {
-                    return WebResponseContent.Instance.Error($"鍗曞彿閲嶅");
+                    return WebResponseContent.Instance.Error($"{model.OrderNo}鍗曞彿閲嶅");
                 }
+  
+                var materielInfo = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().First(x => model.MaterielCode.Equals(x.MaterielCode));
 
                 model.Creater = "MES";
                 model.CreateDate = DateTime.Now;
+                model.MaterielName = materielInfo?.MaterielName ?? "";
+                var stockDetailIds = BaseDal.Db.Queryable<Dt_StockInfoDetail>()
+                .Where(x => x.MaterielCode == model.MaterielCode && x.BatchNo == model.BatchNo && x.ValidDate !=null)
+                .Select(x => x.Id)
+                .ToList();
+
+                if (stockDetailIds.Count > 0)
+                {
+                    BaseDal.Db.Updateable<Dt_StockInfoDetail>()
+                        .SetColumns(x => x.Status == StockStatusEmun.鎵嬪姩鍐荤粨.ObjToInt())
+                        .Where(x => stockDetailIds.Contains(x.Id))
+                        .ExecuteCommand();
+                }
                 BaseDal.AddData(model);
                 var outboundOrders = ConvertToOutboundOrders(model);
              
@@ -97,6 +116,45 @@
                 {
                     isupdate = true;    
                 }
+                if (model.Result != 0 && recheckOrder.SignSeq != model.SignSeq)
+                {
+                    var stockDetailIds = BaseDal.Db.Queryable<Dt_StockInfoDetail>()
+                    .Where(x => x.MaterielCode == model.MaterielCode && x.BatchNo == model.BatchNo && x.ValidDate != null)
+                    .Select(x => x.Id)
+                    .ToList();
+
+                    if (stockDetailIds.Count > 0)
+                    {
+                        var datevaliDate = BaseDal.Db.Queryable<Dt_MaterialExpirationDate>().Where(x => x.MaterialCode.Contains(model.MaterielCode.Substring(0, 6))).First();
+
+                        BaseDal.Db.Updateable<Dt_StockInfoDetail>()
+                            .SetColumns(x => x.Status == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt())
+                            .Where(x => stockDetailIds.Contains(x.Id))
+                            .ExecuteCommand();
+
+                        if (model.InspectionNumber == 1)
+                        {
+                            BaseDal.Db.Updateable<Dt_StockInfoDetail>()
+                            .SetColumns(x => x.ValidDate == Convert.ToDateTime(x.ValidDate).AddDays(Convert.ToDouble(datevaliDate.OneExtensionDays)))
+                            .Where(x => stockDetailIds.Contains(x.Id))
+                            .ExecuteCommand();
+                        }
+                        else if (model.InspectionNumber == 2)
+                        {
+                            BaseDal.Db.Updateable<Dt_StockInfoDetail>()
+                            .SetColumns(x => x.ValidDate == Convert.ToDateTime(x.ValidDate).AddDays(Convert.ToDouble(datevaliDate.TwoExtensionDays)))
+                            .Where(x => stockDetailIds.Contains(x.Id))
+                            .ExecuteCommand();
+                        }
+                        else
+                        {
+                            BaseDal.Db.Updateable<Dt_StockInfoDetail>()
+                            .SetColumns(x => x.ValidDate == Convert.ToDateTime(x.ValidDate).AddDays(Convert.ToDouble(datevaliDate.ThreeExtensionDays)))
+                            .Where(x => stockDetailIds.Contains(x.Id))
+                            .ExecuteCommand();
+                        }
+                    }
+                }
                 recheckOrder.OrderNo = model.OrderNo;
                 recheckOrder.MaterielCode = model.MaterielCode;
                 recheckOrder.BatchNo = model.BatchNo;
@@ -109,6 +167,8 @@
                 recheckOrder.FactoryArea = model.FactoryArea;
                 recheckOrder.Modifier = "MES";
                 recheckOrder.ModifyDate = DateTime.Now;
+                var materielInfo = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().First(x => model.MaterielCode.Equals(x.MaterielCode));
+                recheckOrder.MaterielName= materielInfo?.MaterielName??"";
 
                 BaseDal.UpdateData(recheckOrder);
 
@@ -170,7 +230,7 @@
                 OrderType = InOrderTypeEnum.ReCheck.ObjToInt(),
                 OrderStatus = 0,
                 CreateType = 0,
-                BusinessType = "",
+                BusinessType = "30",
                 IsBatch = 0,
                 FactoryArea = reCheckOrder.FactoryArea,
                 Remark = "",

--
Gitblit v1.9.3