From 9baffa8a8a5c9fbdda690544132b95db9196cc88 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 16 12月 2024 15:22:08 +0800
Subject: [PATCH] 22

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs |   51 +++++++++++++++++++++++++
 CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs                                                       |    6 ++
 DBScript/01_DDL/04_DDL_INDEX.sql                                                                      |   13 ++++++
 3 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs b/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
index f5051b4..61007ab 100644
--- a/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
+++ b/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -115,7 +115,11 @@
             order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13));
             order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾� && x.UpiFlag == (int)UpiFlagEnum.姝e父).Sum(x => Convert.ToDecimal(x.Info13));
             order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea;
-            order.IsKitting = qitaoValue == "榻愬" ? true : false;
+
+            if (!string.IsNullOrEmpty(qitaoValue))
+            {
+                order.IsKitting = qitaoValue == "榻愬" ? true : false;
+            }
 
             var order_unLine = false;
             //鏌ヨ涓嬩竴涓寘鏄笉鏄睘浜庤璁㈠崟
diff --git a/DBScript/01_DDL/04_DDL_INDEX.sql b/DBScript/01_DDL/04_DDL_INDEX.sql
index e69de29..ceab704 100644
--- a/DBScript/01_DDL/04_DDL_INDEX.sql
+++ b/DBScript/01_DDL/04_DDL_INDEX.sql
@@ -0,0 +1,13 @@
+-- 娣诲姞鍞竴绱㈠紩  [Editby liuwq,2024-07-20]
+IF EXISTS(select 1 from sysindexes where id=object_id('mes_order_gather') and name='idx_mes_order_gather') 
+DROP INDEX idx_mes_order_gather ON mes_order_gather
+CREATE UNIQUE INDEX 
+idx_mes_order_gather ON mes_order_gather(Info5) 
+GO 
+
+
+IF EXISTS(select 1 from sysindexes where id=object_id('mes_package_gather') and name='idx_mes_package_gather') 
+DROP INDEX idx_mes_package_gather ON mes_package_gather
+CREATE UNIQUE INDEX 
+idx_mes_package_gather ON mes_package_gather(PackageCode) 
+GO 
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 9d0bbd7..a3a26bf 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -115,6 +115,10 @@
             packageObj.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
             await _mesPackageGatherRep.UpdateAsync(packageObj);
 
+
+            //涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹� _mesOrderGatherRep
+            await UpdateOrderGather(packageObj);
+
             foreach (var quan in quanList)
             {
                 //娓呯悊 闃熷垪琛�
@@ -422,6 +426,11 @@
             throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�");
         }
 
+        if (singlePackage.UpiStatus == UpiStatusEnum.宸蹭笅绾�)
+        {
+            throw Oops.Oh($"鍖呭彿{input.PackageCode}宸茬粡涓嬬嚎");
+        }
+
         singlePackage.UpiFlag = UpiFlagEnum.NG;
         singlePackage.UpdateTime = DateTime.Now;
         singlePackage.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
@@ -482,6 +491,9 @@
 
         }
 
+        //涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹� _mesOrderGatherRep
+        await UpdateOrderGather(singlePackage);
+
 
         WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
         wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
@@ -499,6 +511,45 @@
     }
 
     /// <summary>
+    /// 涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹�
+    /// </summary>
+    /// <param name="singlePackage"></param>
+    /// <returns></returns>
+    private async Task UpdateOrderGather(Mes_Package_Gather singlePackage)
+    {
+        //涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹� _mesOrderGatherRep
+        bool isAdd = false;
+        var order = await _mesOrderGatherRep.AsQueryable().Where(x => x.Info5 == singlePackage.Info5).FirstAsync();
+        if (order == null)
+        {
+            isAdd = true;
+            order = new Mes_Order_Gather()
+            {
+                Info5 = singlePackage.Info5,
+                OrderId = singlePackage.OrderId,
+                PlanNo = singlePackage.PlanNo,
+            };
+        }
+        var packageList = await _mesPackageGatherRep.AsQueryable().Where(x => x.Info5 == singlePackage.Info5).ToListAsync();
+        order.PackageNum = packageList.Count();
+        order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == UpiStatusEnum.宸蹭笅绾�).Count() + 1;
+        order.NgPackageNum = packageList.Where(x => x.UpiStatus == UpiStatusEnum.宸蹭笅绾� && x.UpiFlag == UpiFlagEnum.NG).Count() + 1;
+        order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum;
+
+        order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13));
+        order.ScanPackageArea = packageList.Where(x => x.UpiStatus == UpiStatusEnum.宸蹭笅绾� && x.UpiFlag == (int)UpiFlagEnum.姝e父).Sum(x => Convert.ToDecimal(x.Info13));
+        order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea;
+        if (isAdd)
+        {
+            await _mesOrderGatherRep.InsertAsync(order);
+        }
+        else
+        {
+            await _mesOrderGatherRep.UpdateAsync(order);
+        }
+    }
+
+    /// <summary>
     /// 鏍囪NG-鎵弿浠跺彿
     /// </summary>
     /// <param name="input"></param>

--
Gitblit v1.9.3