From 4babfcfde8b26c755850e0066f1c07fac38e96a2 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 29 十月 2025 01:22:41 +0800
Subject: [PATCH] 重新优化上报erp出入库完成接口

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Allocat.cs |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Allocat.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Allocat.cs"
index 51aa0b1..010b34b 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Allocat.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Allocat.cs"
@@ -6,6 +6,7 @@
 using System.Net.NetworkInformation;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common;
 using WIDESEA_Common.OrderEnum;
 using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
@@ -34,7 +35,9 @@
                 if (materielInfo.Business_qty >= materielInfo.MinQty) return response;
                 Dt_Tactics tactics = _tacticsService.Repository.QueryFirst(x => x.TacticeName == "鍑哄簱绛栫暐");
                 List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
-                List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.StockQuantity > x.OutboundQuantity && x.WarehouseCode == WareCode);
+                //// 鏌ヨ澶т欢搴撲腑鍙敤鐨勫簱瀛�
+                List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == WareCode);
+                if (dt_InventoryInfos.Count < 1) throw new Exception($"鐗╂枡缂栧彿銆恵materielInfo.MaterielCode}銆戝ぇ浠跺簱鏃犲簱瀛橈紒");
                 if (tactics.SelectTactice == TacticsEnum.ComeOutonFirstTime.ObjToInt())
                     dt_InventoryInfos = dt_InventoryInfos.OrderBy(x => x.ValidityPeriod).ToList();
                 else
@@ -51,9 +54,15 @@
                         item.OutboundQuantity += materielInfo.BoxQty;
                     }
                     item.AvailableQuantity = item.StockQuantity - item.OutboundQuantity;
+                    //娣诲姞鎶ヨ淇℃伅
+                    if (materielInfo.Business_qty < materielInfo.MinQty || item.StockQuantity <= 0) { 
+
+                        _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, $"銆恵materielInfo.MaterielName}銆�", "$銆愮墿鏂欑紪鐮亄materielInfo.MaterielCode}澶т欢搴撳簱瀛樿繃浣庛��");
+                    }
+                
                 }
                 #region 澶т欢搴撹ˉ绔嬪簱鍚庣珛搴撲笟鍔″簱瀛樻暟杩樻槸灏忎簬绔嬪簱鏈�灏忓簱瀛樻暟锛屾坊鍔犳彁绀轰俊鎭�
-
+            
                 #endregion
                 #region 娣诲姞璋冩嫧鍑哄簱鍗�
                 Dt_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder()
@@ -64,7 +73,7 @@
                     Details = new List<Dt_DeliveryOrderDetail>()
                 };
                 dt_InventoryInfos = dt_InventoryInfos.Where(X => X.StockStatus == StockStatusEmun.鍑哄簱閿佸畾.ObjToInt()).ToList();
-                foreach (var item in dt_InventoryInfos.GroupBy(x => x.BatchNo))
+                foreach (var item in dt_InventoryInfos.GroupBy(x => x.BatchNo)) //杩欓噷鎸夋壒娆″垎缁勪簡
                 {
                     Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail()
                     {
@@ -142,6 +151,7 @@
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
+                _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, "澶т欢搴撹ˉ璐х珛搴�", ex.Message);
                 response.Error(ex.Message);
             }
             return response;

--
Gitblit v1.9.3