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

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs |  402 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 369 insertions(+), 33 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 0de0c10..831130c 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,8 @@
 using Microsoft.CodeAnalysis.Operations;
 using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto;
 using Furion.DatabaseAccessor;
+using Admin.NET.Application.Service.WmsCommonnQuery.Dto;
+using Admin.NET.Application.CommonHelper;
 
 namespace Admin.NET.Application;
 /// <summary>
@@ -22,21 +24,36 @@
     private readonly SqlSugarRepository<SysConfig> _sysConfigRep;
     private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _mesBatchOrderUpiRep;
     private readonly SqlSugarRepository<Mes_Order_Gather> _mesOrderGatherRep;
+    private readonly SqlSugarRepository<WmsRecordUpiProcess> _wmsRecordUpiProcessRep;
+    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<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep
+    public WmsOperationTaskService(
+        SqlSugarRepository<Mes_Upi_LineQueue> mes_Upi_LineQueueRep,
+        SqlSugarRepository<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep
         , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep
         , SqlSugarRepository<SysConfig> sysConfigRep
         , SqlSugarRepository<Mes_BatchOrderUPI_New> mesBatchOrderUpiRep
         , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep
+        , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep
+        , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep
+        , SqlSugarRepository<WmsRecordUpiNg> wmsRecordUpiNgRep
+        , WmsCommonnQueryService wmsCommonnQueryService
         )
     {
+        _wmsCommonnQueryService = wmsCommonnQueryService;
+        _wmsRecordUpiNgRep = wmsRecordUpiNgRep;
         _sysConfigRep = sysConfigRep;
         _mesPackageGatherRep = mesPackageGatherRep;
         _rep = rep;
         _wmsStockQuanRep = wmsStockQuanRep;
         _mesBatchOrderUpiRep = mesBatchOrderUpiRep;
         _mesOrderGatherRep = mesOrderGatherRep;
+        _wmsRecordUpiProcessRep = wmsRecordUpiProcessRep;
+        _wmsRecordPackageProcessRep = wmsRecordPackageProcessRep;
+        _mes_Upi_LineQueueRep = mes_Upi_LineQueueRep;
     }
 
 
@@ -49,30 +66,107 @@
     [HttpPost]
     [ApiDescriptionSettings(Name = "ForceOutbound")]
     [Description("WmsOperationTask/ForceOutbound")]
+    [UnitOfWork]
     public async Task ForceOutbound(ForceOutboundInput input)
     {
         if (input == null || input.PackageCodeList?.Count == 0)
         {
             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()}'锛屼笉鍏佽寮哄埗鍑哄簱");
             }
 
             //鏇存柊鐘舵�� 
             foreach (var quan in quanList)
             {
                 quan.StockStatus = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�;
+                quan.StockStatusName = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�.ToString();
                 quan.UpdateTime = DateTime.Now;
                 quan.OperReason = "浜哄伐寮哄埗寰呭嚭搴�";
             }
             updateQuanList.AddRange(quanList);
+        }
+
+        //妯″紡鍒ゆ柇
+        var client = await WCFServiceHelper.GetWCFService_SAPCC_Client(_sysConfigRep);
+        var res = await client.ValidateModeAsync(1);
+        if (res.result == false)
+        {
+            throw Oops.Oh(res.resMsg);
+        }
+
+        await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList);
+
+    }
+
+
+    /// <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);
+        }
+
+        //妯″紡鍒ゆ柇
+        var client = await WCFServiceHelper.GetWCFService_SAPCC_Client(_sysConfigRep);
+        var res = await client.ValidateModeAsync(2);
+        if (res.result == false)
+        {
+            throw Oops.Oh(res.resMsg);
         }
 
         await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList);
@@ -109,7 +203,7 @@
         {
             throw Oops.Oh($"娌℃湁閰嶇疆 鍒ゆ柇榻愬 鍊�");
         }
-        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value != "鏃�")
+        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value.Trim() != "鏃�")
         {
             throw Oops.Oh($"鍒ゆ柇榻愬鍊煎凡缁忓瓨鍦ㄥ�納sysConfig.Value},涓嶅厑璁告搷浣�");
         }
@@ -134,9 +228,9 @@
         }
 
 
-
         sysConfig.Value = setValue;
         await _sysConfigRep.UpdateAsync(sysConfig);
+        //*/
 
 
         var sysConfig_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_oper);
@@ -173,6 +267,7 @@
     [HttpPost]
     [ApiDescriptionSettings(Name = "ValdateLabel")]
     [Description("WmsOperationTask/ValdateLabel")]
+    [UnitOfWork]
     public async Task<Mes_Package_Gather> ValdateLabel(ValidateLabelInput input)
     {
         if (input == null || input.PackageCode == null || input.Upi == null)
@@ -195,53 +290,294 @@
         {
             throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�");
         }
+
+        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+
+        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
+        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
+        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        wmsRecordPackage.CreateTime = DateTime.Now;
+        wmsRecordPackage.CreateUserName = _cretaorName;
+        wmsRecordPackage.Location = "BZ29";
+        wmsRecordPackage.OperRemark = "鏍稿鏍囩";
+        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
+
+        WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
+        wmsRecordUpi = singleUpi.Adapt<WmsRecordUpiProcess>();
+        wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        wmsRecordUpi.CreateTime = DateTime.Now;
+        wmsRecordUpi.CreateUserName = _cretaorName;
+        wmsRecordUpi.Location = "BZ29";
+        wmsRecordUpi.OperRemark = "鏍稿鏍囩";
+        await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
+
         return singlePackage;
     }
 
 
     /// <summary>
-    /// NG鍖呬笅绾�
+    /// NG鍖呬笅绾�-鎵弿鍖呭彿
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpPost]
     [ApiDescriptionSettings(Name = "UnlineForNGPackage")]
     [Description("WmsOperationTask/UnlineForNGPackage")]
+    [UnitOfWork]
     public async Task UnlineForNGPackage(UnlineForNGPackageInput input)
     {
-        //if (input == null)
-        //{
-        //    throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
-        //}
-        //if (string.IsNullOrEmpty(input.PackageCode))
-        //{
-        //    throw Oops.Oh("鍖呭彿涓嶈兘涓虹┖");
-        //}
+        if (input == null)
+        {
+            throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
+        }
+        if (string.IsNullOrEmpty(input.PackageCode))
+        {
+            throw Oops.Oh("鍖呭彿涓嶈兘涓虹┖");
+        }
         //if (string.IsNullOrEmpty(input.Reason))
         //{
         //    throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖");
         //}
-        //List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>();
-        //foreach (var item in input.PackageCodeList)
-        //{
-        //    var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync();
-        //    var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.榻愬寘寰呭嚭搴�).Count();
-        //    if (isExist > 0)
-        //    {
-        //        throw Oops.Oh($"鍖厈item}涓叾涓湁鏉跨姸鎬佹槸'{StockStatusEnum.榻愬寘寰呭嚭搴�.ToString()}'锛屼笉鍏佽寮哄埗鍑哄簱");
-        //    }
 
-        //    鏇存柊鐘舵��
-        //    foreach (var quan in quanList)
-        //    {
-        //        quan.StockStatus = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�;
-        //        quan.UpdateTime = DateTime.Now;
-        //        quan.OperReason = "浜哄伐寮哄埗寰呭嚭搴�";
-        //    }
-        //    updateQuanList.AddRange(quanList);
+        var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
+        if (singlePackage == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�");
+        }
+
+        singlePackage.UpiFlag = UpiFlagEnum.NG;
+        singlePackage.UpdateTime = DateTime.Now;
+        singlePackage.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
+        singlePackage.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
+
+        var upiLineQueueList = await _mes_Upi_LineQueueRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync();
+        if (upiLineQueueList?.Count > 0)
+        {
+            await _mes_Upi_LineQueueRep.DeleteAsync(upiLineQueueList);
+        }
+
+        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync();
+        if (upiList == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬澘浠舵暟鎹�");
+        }
+        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+
+        foreach (var item in upiList)
+        {
+            item.UpiFlag = UpiFlagEnum.NG;
+            item.UpdateTime = DateTime.Now;
+            item.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
+            item.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
+
+            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
+            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
+            wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+            wmsRecordUpi.CreateTime = DateTime.Now;
+            wmsRecordUpi.CreateUserName = _cretaorName;
+            wmsRecordUpi.Location = "";
+            wmsRecordUpi.OperRemark = "NG涓嬬嚎";
+            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
+
+            WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg();
+            wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>();
+            wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+            wmsRecordUpiNg.CreateTime = DateTime.Now;
+            wmsRecordUpiNg.CreateUserName = _cretaorName;
+            wmsRecordUpiNg.OperRemark = "NG涓嬬嚎";
+            await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg);
+
+
+        }
+
+
+        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
+        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
+        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        wmsRecordPackage.Location = "";
+        wmsRecordPackage.OperRemark = "NG涓嬬嚎";
+        wmsRecordPackage.CreateTime = DateTime.Now;
+        wmsRecordPackage.CreateUserName = _cretaorName;
+        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
+
+
+        await _mesPackageGatherRep.UpdateAsync(singlePackage);
+        await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
+
+    }
+
+    /// <summary>
+    /// 鏍囪NG-鎵弿浠跺彿
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "SetNG")]
+    [Description("WmsOperationTask/SetNG")]
+    [UnitOfWork]
+    public async Task SetNG(SetNGInput input)
+    {
+        if (input == null)
+        {
+            throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
+        }
+        if (string.IsNullOrEmpty(input.Upi))
+        {
+            throw Oops.Oh("閮ㄤ欢鏉$爜涓嶈兘涓虹┖");
+        }
+        //if (string.IsNullOrEmpty(input.Reason))
+        //{
+        //    throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖");
         //}
 
-        //await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList);
+        var singleUpi = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.UPI == input.Upi).FirstAsync();
+        if (singleUpi == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌閮ㄤ欢鏉$爜{input.Upi}鐨勬暟鎹�");
+        }
+        var packageCode = singleUpi.PackageCode;
+        var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == packageCode).FirstAsync();
+        if (singlePackage == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬眹鎬绘暟鎹�");
+        }
+
+        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+
+        singlePackage.UpiFlag = UpiFlagEnum.NG;
+        singlePackage.UpdateTime = DateTime.Now;
+        singlePackage.UpdateUserName = _cretaorName;
+
+        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == packageCode).ToListAsync();
+        if (upiList == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬澘浠舵暟鎹�");
+        }
+        foreach (var item in upiList)
+        {
+            item.UpiFlag = UpiFlagEnum.NG;
+            item.UpdateTime = DateTime.Now;
+            item.UpdateUserName = _cretaorName;
+
+            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
+            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
+            wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+            wmsRecordUpi.CreateTime = DateTime.Now;
+            wmsRecordUpi.CreateUserName = _cretaorName;
+            wmsRecordUpi.Location = "";
+            wmsRecordUpi.OperRemark = "鏍囪NG";
+            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
+
+            WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg();
+            wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>();
+            wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+            wmsRecordUpiNg.CreateTime = DateTime.Now;
+            wmsRecordUpiNg.CreateUserName = _cretaorName;
+            wmsRecordUpiNg.OperRemark = "鏍囪NG";
+            await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg);
+        }
+
+
+        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
+        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
+        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        wmsRecordPackage.Location = "";
+        wmsRecordPackage.OperRemark = "鏍囪NG";
+        wmsRecordPackage.CreateTime = DateTime.Now;
+        wmsRecordPackage.CreateUserName = _cretaorName;
+        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
+
+
+        await _mesPackageGatherRep.UpdateAsync(singlePackage);
+        await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
+
+    }
+
+
+    /// <summary>
+    /// 鍙栨秷NG-鎵弿浠跺彿
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "CancelNG")]
+    [Description("WmsOperationTask/CancelNG")]
+    [UnitOfWork]
+    public async Task CancelNG(CancelNGInput input)
+    {
+        if (input == null)
+        {
+            throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
+        }
+        if (string.IsNullOrEmpty(input.Upi))
+        {
+            throw Oops.Oh("閮ㄤ欢鏉$爜涓嶈兘涓虹┖");
+        }
+        //if (string.IsNullOrEmpty(input.Reason))
+        //{
+        //    throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖");
+        //}
+
+        var singleUpi = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.UPI == input.Upi).FirstAsync();
+        if (singleUpi == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌閮ㄤ欢鏉$爜{input.Upi}鐨勬暟鎹�");
+        }
+        var packageCode = singleUpi.PackageCode;
+        var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == packageCode).FirstAsync();
+        if (singlePackage == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬眹鎬绘暟鎹�");
+        }
+
+        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+
+        singlePackage.UpiFlag = UpiFlagEnum.姝e父;
+        singlePackage.UpdateTime = DateTime.Now;
+        singlePackage.UpdateUserName = _cretaorName;
+
+        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == packageCode).ToListAsync();
+        if (upiList == null)
+        {
+            throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬澘浠舵暟鎹�");
+        }
+        foreach (var item in upiList)
+        {
+            item.UpiFlag = UpiFlagEnum.姝e父;
+            item.UpdateTime = DateTime.Now;
+            item.UpdateUserName = _cretaorName;
+
+            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
+            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
+            wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+            wmsRecordUpi.CreateTime = DateTime.Now;
+            wmsRecordUpi.CreateUserName = _cretaorName;
+            wmsRecordUpi.Location = "";
+            wmsRecordUpi.OperRemark = "鍙栨秷NG";
+            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
+
+            WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg();
+            wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>();
+            wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+            wmsRecordUpiNg.CreateTime = DateTime.Now;
+            wmsRecordUpiNg.CreateUserName = _cretaorName;
+            wmsRecordUpiNg.OperRemark = "鍙栨秷NG";
+            await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg);
+        }
+
+
+        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
+        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
+        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        wmsRecordPackage.Location = "";
+        wmsRecordPackage.OperRemark = "鍙栨秷NG";
+        wmsRecordPackage.CreateTime = DateTime.Now;
+        wmsRecordPackage.CreateUserName = _cretaorName;
+        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
+
+
+        await _mesPackageGatherRep.UpdateAsync(singlePackage);
+        await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
 
     }
 

--
Gitblit v1.9.3