From 9ae0890dd74771ba9edd44d4830e0de37f8d9938 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 26 九月 2025 16:55:03 +0800
Subject: [PATCH] MES接口优化,老厂排程优化等

---
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs |   46 +++++++++++++++++++++++++++++++---------------
 1 files changed, 31 insertions(+), 15 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
index 466fd52..3dc3380 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
@@ -38,44 +38,60 @@
             _locationStatusChangeRecordService = locationStatusChangeRecordService;
             _mapper = mapper;
         }
+        List<string> GradeCodes = new List<string>
+        {
+            "001"
+        };
         /// <summary>
         /// 鎺ユ敹MES棰嗘枡璁″垝
         /// </summary>
         /// <returns></returns>
-        public WebResponseContent ReceiveOutBound(OutMESOrderDTO outMESOrderDTO)
+        public WebResponseContent ReceiveOutBound(List<OutMESOrderDTO> outMESOrderDTOs)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
-                if (outMESOrderDTO==null)
+                if (outMESOrderDTOs==null || outMESOrderDTOs.Count <= 0)
                 {
                     return content.Error("棰嗘枡璁″垝浼犲叆淇℃伅涓虹┖");
                 }
-                if (outMESOrderDTO.OutDetailId <= 0)
+                outMESOrderDTOs.Select(x => x.OutDetailId);
+                List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData();
+                OutMESOrderDTO? CheckWarehouseCode = outMESOrderDTOs.FirstOrDefault(x => !warehouses.Select(x => x.WarehouseCode).Contains(x.WarehouseCode));
+                if (CheckWarehouseCode!=null)
                 {
-                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{outMESOrderDTO.OutDetailId}闇�瑕佸ぇ浜�0");
+                    return content.Error($"棰嗘枡璁″垝搴撳尯{nameof(OutMESOrderDTO.WarehouseCode)}:{CheckWarehouseCode.WarehouseCode}涓嶅瓨鍦�");
                 }
-                if (outMESOrderDTO.ReqQuantity <= 0)
+                OutMESOrderDTO? CheckGradeCode = outMESOrderDTOs.FirstOrDefault(x => !GradeCodes.Contains(x.GradeCode));
+                if (CheckGradeCode != null)
                 {
-                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.ReqQuantity)}:{outMESOrderDTO.ReqQuantity}闇�瑕佸ぇ浜�0");
+                    return content.Error($"棰嗘枡璁″垝搴撳尯{nameof(OutMESOrderDTO.GradeCode)}:{CheckGradeCode.GradeCode}涓嶅瓨鍦�");
+                }
+                OutMESOrderDTO? CheckOutDetailId = outMESOrderDTOs.FirstOrDefault(x => x.OutDetailId <= 0);
+                if (CheckOutDetailId != null)
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{CheckOutDetailId.ProductOrderNo}闇�瑕佸ぇ浜�0");
+                }
+                OutMESOrderDTO? CheckReqQuantity = outMESOrderDTOs.FirstOrDefault(x => x.ReqQuantity <= 0);
+                if (CheckReqQuantity != null)
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.ReqQuantity)}:{CheckReqQuantity.ProductOrderNo}闇�瑕佸ぇ浜�0");
                 }
                 //鑾峰彇鎵�鏈夌墿鏂欎俊鎭�
                 List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x=>x.MaterielInvOrgId==MaterielInvOrgEnum.鏂板巶.ObjToInt());
-                //鑾峰彇鎵�鏈変复鏂欒鍒�
+                //鑾峰彇鎵�鏈夐鏂欒鍒�
                 List<Dt_OutMESOrder> outMESOrders = BaseDal.QueryData();
-                Dt_MaterielInfo? ExistmaterielInfo = materielInfos.FirstOrDefault(x=>x.MaterielCode== outMESOrderDTO.MaterialCode);
-                if (ExistmaterielInfo == null)
+                OutMESOrderDTO? CheckMaterialCode = outMESOrderDTOs.FirstOrDefault(x=> !materielInfos.Select(x=>x.MaterielCode).Contains(x.MaterialCode));
+                if (CheckMaterialCode != null)
                 {
-                    return content.Error($"鐗╂枡缂栫爜{nameof(OutMESOrderDTO.MaterialCode)}:{outMESOrderDTO.MaterialCode}淇℃伅涓嶅瓨鍦�");
+                    return content.Error($"鐗╂枡缂栫爜{nameof(OutMESOrderDTO.MaterialCode)}:{CheckMaterialCode.MaterialCode}淇℃伅涓嶅瓨鍦�");
                 }
-                Dt_OutMESOrder? OldoutMESOrder = outMESOrders.FirstOrDefault(x=>x.OutDetailId==outMESOrderDTO.OutDetailId);
+                Dt_OutMESOrder? OldoutMESOrder = outMESOrders.FirstOrDefault(x=> outMESOrderDTOs.Select(x=>x.OutDetailId).Contains(x.OutDetailId));
                 if (OldoutMESOrder!=null)
                 {
-                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{outMESOrderDTO.OutDetailId}淇℃伅宸插瓨鍦�");
+                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{OldoutMESOrder.OutDetailId}淇℃伅宸插瓨鍦�");
                 }
-                return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.ProductOrderNo)}:{outMESOrderDTO.ProductOrderNo},鐗╂枡{outMESOrderDTO.MaterialCode}鏃犲彲鍒嗛厤搴撳瓨");
-
-                Dt_OutMESOrder outMESOrder = _mapper.Map<Dt_OutMESOrder>(outMESOrderDTO);
+                List<Dt_OutMESOrder> outMESOrder = outMESOrderDTOs.Select(x=> _mapper.Map<Dt_OutMESOrder>(x)).ToList();
                 BaseDal.AddData(outMESOrder);
                 return content.OK("鎺ユ敹鎴愬姛");
             }

--
Gitblit v1.9.3