From de11618a6c41d627acd733a6b5d818d87d291c1e Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 14 12月 2024 13:34:13 +0800
Subject: [PATCH] 222

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs |   67 ++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 2 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
index e698432..d61602b 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -8,6 +8,7 @@
 using Microsoft.CodeAnalysis.Operations;
 using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto;
 using Furion.DatabaseAccessor;
+using Admin.NET.Application.Service.WmsCommonnQuery.Dto;
 
 namespace Admin.NET.Application;
 /// <summary>
@@ -26,6 +27,7 @@
     private readonly SqlSugarRepository<WmsRecordPackageProcess> _wmsRecordPackageProcessRep;
     private readonly SqlSugarRepository<Mes_Upi_LineQueue> _mes_Upi_LineQueueRep;
     private readonly SqlSugarRepository<WmsRecordUpiNg> _wmsRecordUpiNgRep;
+    private readonly WmsCommonnQueryService _wmsCommonnQueryService;
 
     public WmsOperationTaskService(
         SqlSugarRepository<Mes_Upi_LineQueue> mes_Upi_LineQueueRep,
@@ -37,8 +39,10 @@
         , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep
         , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep
         , SqlSugarRepository<WmsRecordUpiNg> wmsRecordUpiNgRep
+        , WmsCommonnQueryService wmsCommonnQueryService
         )
     {
+        _wmsCommonnQueryService = wmsCommonnQueryService;
         _wmsRecordUpiNgRep = wmsRecordUpiNgRep;
         _sysConfigRep = sysConfigRep;
         _mesPackageGatherRep = mesPackageGatherRep;
@@ -68,14 +72,23 @@
         {
             throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
         }
+        //楠岃瘉浼犻�掔殑鍖呮槸鍚﹂兘鍦ㄩ綈鍖呬箣鍐呫��
+        List<WmsPackListOutput> packList = await _wmsCommonnQueryService.PackList(new Service.WmsCommonnQuery.Dto.PackListInput() { IsPack = false });
+
         List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>();
         foreach (var item in input.PackageCodeList)
         {
+            var isExistCount = packList.Where(x => x.PackageCode == item).Count();
+            if (isExistCount == 0)
+            {
+                throw Oops.Oh($"鍖厈item}涓嶆槸缂哄寘鐘舵�侊紝璇锋鏌ワ紒");
+            }
+
             var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync();
-            var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.榻愬寘寰呭嚭搴�).Count();
+            var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.榻愬寘寰呭嚭搴� || x.StockStatus == StockStatusEnum.浜哄伐榻愬寘鍑哄簱浠诲姟宸插垱寤�).Count();
             if (isExist > 0)
             {
-                throw Oops.Oh($"鍖厈item}涓叾涓湁鏉跨姸鎬佹槸'{StockStatusEnum.榻愬寘寰呭嚭搴�.ToString()}'锛屼笉鍏佽寮哄埗鍑哄簱");
+                throw Oops.Oh($"鍖厈item}涓叾涓湁鏉跨姸鎬佹槸'{StockStatusEnum.榻愬寘寰呭嚭搴�.ToString()}' 鎴�'{StockStatusEnum.浜哄伐榻愬寘鍑哄簱浠诲姟宸插垱寤�.ToString()}'锛屼笉鍏佽寮哄埗鍑哄簱");
             }
 
             //鏇存柊鐘舵�� 
@@ -93,6 +106,56 @@
 
     }
 
+
+    /// <summary>
+    /// 浜哄伐榻愬寘鍑哄簱
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "PersonOutbound")]
+    [Description("WmsOperationTask/PersonOutbound")]
+    [UnitOfWork]
+    public async Task PersonOutbound(PersonOutboundInput input)
+    {
+        if (input == null || input.PackageCodeList?.Count == 0)
+        {
+            throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
+        }
+        //楠岃瘉浼犻�掔殑鍖呮槸鍚﹂兘鍦ㄩ綈鍖呬箣鍐呫��
+        List<WmsPackListOutput> packList = await _wmsCommonnQueryService.PackList(new Service.WmsCommonnQuery.Dto.PackListInput() { IsPack = true });
+
+        List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>();
+        foreach (var item in input.PackageCodeList)
+        {
+            var isExistCount = packList.Where(x => x.PackageCode == item).Count();
+            if (isExistCount == 0)
+            {
+                throw Oops.Oh($"鍖厈item}涓嶆槸榻愬寘鐘舵�侊紝璇锋鏌ワ紒");
+            }
+
+            var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync();
+            var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴� || x.StockStatus == StockStatusEnum.浜哄伐寮哄埗浠诲姟宸插垱寤�).Count();
+            if (isExist > 0)
+            {
+                throw Oops.Oh($"鍖厈item}涓叾涓湁鏉跨姸鎬佹槸'{StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�.ToString()}'鎴�'{StockStatusEnum.浜哄伐寮哄埗浠诲姟宸插垱寤�.ToString()}'锛屼笉鍏佽浜哄伐榻愬寘鍑哄簱");
+            }
+
+            //鏇存柊鐘舵�� 
+            foreach (var quan in quanList)
+            {
+                quan.StockStatus = StockStatusEnum.榻愬寘寰呭嚭搴�;
+                quan.StockStatusName = StockStatusEnum.榻愬寘寰呭嚭搴�.ToString();
+                quan.UpdateTime = DateTime.Now;
+                quan.OperReason = "浜哄伐榻愬寘鍑哄簱";
+            }
+            updateQuanList.AddRange(quanList);
+        }
+
+        await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList);
+
+    }
+
     /// <summary>
     /// 鍒ゆ柇榻愬
     /// </summary>

--
Gitblit v1.9.3