From 25cb7cd50d12f48e93d6cde47420ca3458e9c47a Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期四, 12 六月 2025 21:39:43 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 2 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs"
index 118aa27..7bc2e90 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs"
@@ -3,14 +3,19 @@
 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.Helper;
+using WIDESEA_DTO.Basic;
 using WIDESEA_DTO.MES;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundService;
+using WIDESEA_IStockRepository;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_InboundService
@@ -19,10 +24,62 @@
     {
         public IMesProInOrderRepository Repository => BaseDal;
         private readonly IUnitOfWorkManage _unitOfWorkManage;
-        public MesProInOrderService(IMesProInOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManag) : base(BaseDal)
+        private readonly IInboundRepository _inboundRepository;
+        private readonly IStockRepository _stockRepository;
+        public MesProInOrderService(IMesProInOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManag, IInboundRepository inboundRepository, IStockRepository stockRepository) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManag;
+            _inboundRepository = inboundRepository;
+            _stockRepository = stockRepository;
         }
-        
+        /// <summary>
+        /// 鎴愬搧鍏ュ簱鎵爜
+        /// </summary>
+        /// <param name="Id"></param>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public WebResponseContent ProInboundScan(int Id,string serNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //鑾峰彇瀵瑰簲MES鎴愬搧鍏ュ簱鍗曟嵁
+                Dt_MesProInOrder mesProInOrder = BaseDal.Db.Queryable<Dt_MesProInOrder>().Where(x => x.Id == Id).Includes(x => x.Details).First();
+                if (mesProInOrder==null)
+                {
+                    return content.Error("褰撳墠MES鍏ュ簱鍗曟嵁涓嶅瓨鍦�");
+                }
+                if (mesProInOrder.MesProStatus>= InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+                {
+                    return content.Error("褰撳墠鍗曟嵁宸插叆搴撴垨鍏抽棴鐘舵��");
+                }
+                ProSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<ProSerNumAnalysisModel>(AnalysisCodeEnum.ProSerNumAnalysis, serNum);
+                Dt_MesProInOrderDetail? proInOrderDetail = mesProInOrder.Details.FirstOrDefault(x => x.BagNo == model.BagNO);
+                //鍒ゆ柇鎵弿鍜屽崟鎹腑鏄惁鍖归厤
+                if (proInOrderDetail == null)
+                {
+                    return content.Error($"妗嗙爜{mesProInOrder.BatchNo}涓棤鍐呭寘{model.BagNO}淇℃伅");
+                }
+                if ((proInOrderDetail.OverInQuantity + model.OKPCSQTY.ObjToInt())> proInOrderDetail.OKPCSQTY)
+                {
+                    return content.Error($"鍐呭寘鏁伴噺婧㈠嚭{(proInOrderDetail.OverInQuantity + model.OKPCSQTY.ObjToInt()) - proInOrderDetail.OKPCSQTY}");
+                }
+                float SumPCSQty = mesProInOrder.Details.Sum(x => x.OKPCSQTY);
+                float OverPCSQty = mesProInOrder.Details.Sum(x=>x.OverInQuantity);
+                if ((OverPCSQty+model.OKPCSQTY.ObjToInt())>SumPCSQty)
+                {
+                    return content.Error($"褰撳墠鍏ュ簱璁㈠崟鏁伴噺婧㈠嚭{(OverPCSQty + model.OKPCSQTY.ObjToInt())- SumPCSQty}");
+                }
+
+                proInOrderDetail.OverInQuantity += model.OKPCSQTY.ObjToInt();
+                _inboundRepository.MesProInOrderDetailRepository.UpdateData(proInOrderDetail);
+                return content.OK($"鍐呭寘{proInOrderDetail.BagNo}宸叉壂鏁伴噺锛歿proInOrderDetail.OverInQuantity},鍓╀綑锛歿proInOrderDetail.OKPCSQTY-proInOrderDetail.OverInQuantity}");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
     }
 }

--
Gitblit v1.9.3