From cee4e362c81af4c93c87f40e77649e9af5a591c6 Mon Sep 17 00:00:00 2001
From: zyf <1071160500@qq.com>
Date: 星期一, 02 六月 2025 20:05:54 +0800
Subject: [PATCH] 修改工单生产数量更新的逻辑,现在只有检验合格的才更新生产数量,清除检验合格的结果也会更新

---
 MES.Service/service/QC/RKJService.cs |  126 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 117 insertions(+), 9 deletions(-)

diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs
index 8dfeb26..3c53e13 100644
--- a/MES.Service/service/QC/RKJService.cs
+++ b/MES.Service/service/QC/RKJService.cs
@@ -1,4 +1,5 @@
-锘縰sing MES.Service.DB;
+锘縰sing Masuit.Tools.Models;
+using MES.Service.DB;
 using MES.Service.Dto.service;
 using MES.Service.Modes;
 using MES.Service.util;
@@ -326,7 +327,7 @@
 
         if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu))
         {
-            throw new Exception("璇ユ楠屽崟宸�" + qsItemOqcReq.FcheckResu + "锛屼笉杩愯淇敼缁撴灉");
+            throw new Exception("璇ユ楠屽崟宸�" + qsItemOqcReq.FcheckResu + "锛屼笉鍏佽淇敼缁撴灉");
         }
 
         var oracle = SqlSugarHelper.UseTransactionWithOracle(db =>
@@ -444,6 +445,8 @@
     /// womdaa 宸茬敓浜ч噺 DAA011鍔犲洖鏉$爜鎶ュ伐鏁伴噺
     /// MES_SCGD_GX 妫�楠屾爣璇� CHECK_FLAG锛�('鈭�','脳')
     /// 閫氳繃mes_inv_item_in_c_details2鐨凪ES_SCGD_GX_ID杩炴帴
+    /// 
+    /// 20250602鏇存柊 鐜板湪涓嶅悎鏍间笉浼氭洿鏂板伐鍗曠敓浜ф暟閲忥紝鍚堟牸浼氬鍔犲搴斿伐鍗曠敓浜ф暟閲�
     ///</summary>
     private void setBarCodes(string? FcheckResu, QsItemOqcItemDetail detail,
         SqlSugarClient db)
@@ -483,7 +486,7 @@
         var barCodes = mesInvItemInsList.Select(s => s.ItemBarcode).ToList();
 
         var count = db.Queryable<MesInvItemBarcodes>()
-            .Where(s => barCodes.Contains(s.ItemBarcode) && s.WorkFlg == 0)
+            .Where(s => barCodes.Contains(s.ItemBarcode))
             .Count();
 
         var gxId = mesInvItemInsList.Select(s => s.MesScgdGxId).ToList();
@@ -500,7 +503,7 @@
 
             if (count <= 0) return;
             
-            //鍙栨秷mes_inv_item_barcodes 鐨勬姤宸ユ爣璇� WORK_FLG 浣跨敤鏉$爜
+            //鏇存柊mes_inv_item_barcodes 鐨勬姤宸ユ爣璇� WORK_FLG 浣跨敤鏉$爜
             var executeCommand = db.Updateable<MesInvItemBarcodes>()
                 .SetColumns(a => a.WorkFlg == 1)
                 .Where(a => barCodes.Contains(a.ItemBarcode))
@@ -508,7 +511,7 @@
 
             if (executeCommand > 0)
             {
-                //womdaa 宸茬敓浜ч噺 DAA011鍔犲洖鏉$爜鎶ュ伐鏁伴噺
+                //womdaa 宸茬敓浜ч噺 DAA011鍔犱笂鏉$爜鎶ュ伐鏁伴噺
                 db.Updateable<Womdaa>()
                     .SetColumns(b => b.Daa011 == b.Daa011 + sumQty)
                     .Where(b => b.Daa001 == qsItemOqcReq.Daa001)
@@ -529,14 +532,14 @@
                 .Where(a => barCodes.Contains(a.ItemBarcode))
                 .ExecuteCommand();
 
-            if (executeCommand > 0)
+            /*if (executeCommand > 0)
             {
-                //womdaa 宸茬敓浜ч噺 DAA011鍔犲洖鏉$爜鎶ュ伐鏁伴噺
+                //womdaa 宸茬敓浜ч噺 DAA011鎵i櫎鏉$爜鎶ュ伐鏁伴噺
                 db.Updateable<Womdaa>()
                     .SetColumns(b => b.Daa011 == b.Daa011 - sumQty)
                     .Where(b => b.Daa001 == qsItemOqcReq.Daa001)
                     .ExecuteCommand();
-            }
+            }*/
         }
     }
 
@@ -738,7 +741,7 @@
 
         if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu))
         {
-            throw new Exception("璇ユ楠屽崟宸�" + qsItemOqcReq.FcheckResu + "锛屼笉杩愯淇敼缁撴灉");
+            throw new Exception("璇ユ楠屽崟宸�" + qsItemOqcReq.FcheckResu + "锛屼笉鍏佽淇敼缁撴灉");
         }
 
         var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
@@ -837,6 +840,43 @@
             SetQSItemDetail(detail);
         });
 
+        //鍥犱负榛樿鍚堟牸锛屽湪杩欓噷澧炲姞宸ュ崟鐢熶骇鏁伴噺
+        var db = SqlSugarHelper.GetInstance();
+        var oqcReqList = db.Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>(
+               (a, b, c) =>
+                   new JoinQueryInfos(
+                       JoinType.Left, a.BillNo == b.BillNo,
+                       JoinType.Left, c.Daa001 == b.RbillNo
+               ))
+           .Where(a => a.Id == rkjDto.gid)
+           .Select((a, b, c) =>
+               new
+               {
+                   a.Id,
+                   a.BillNo,
+                   c.Daa001
+               })
+           .First();
+
+        if (oqcReqList.Id is null or 0) return 0;
+
+        //鏌ヨ妫�楠屾暟閲�
+        var sumQty = db
+            .Queryable<MesInvItemIns, MesInvItemInCDetails2>((a, b) =>
+                new JoinQueryInfos(
+                    JoinType.Left, a.Id == b.ItemInId))
+            .Where((a, b) => a.BillNo == oqcReqList.BillNo)
+            .Select((a, b) => new {b.Quantity })
+            .MergeTable().Sum( a=> a.Quantity);
+
+        //鏇存柊鐢熶骇閲�
+        db.Updateable<Womdaa>()
+                    .SetColumns(b => b.Daa011 == b.Daa011 + sumQty)
+                    .Where(b => b.Daa001 == oqcReqList.Daa001)
+                    .ExecuteCommand();
+
+
+
         return Convert.ToInt32(rkjDto.gid);
     }
 
@@ -844,6 +884,74 @@
     {
         if (isRk(dto.gid)) throw new Exception("宸叉湁鏉$爜鍏ュ簱锛屼笉鍏佽娓呴櫎妫�楠岀粨鏋�");
 
+        var db = SqlSugarHelper.GetInstance();
+        //鏌ヨ妫�楠岀粨鏋�
+        var oqcReqList = db.Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>(
+               (a, b, c) =>
+                   new JoinQueryInfos(
+                       JoinType.Left, a.BillNo == b.BillNo,
+                       JoinType.Left, c.Daa001 == b.RbillNo
+               ))
+           .Where(a => a.Id == dto.gid)
+           .Select((a, b, c) =>
+               new
+               {
+                   a.FcheckResu,
+                   a.Id,
+                   a.BillNo,
+                   c.Daa001
+               })
+           .First();
+
+        if (oqcReqList.Id is null or 0) return 0;
+
+        var FcheckResu = oqcReqList.FcheckResu; //妫�楠岀粨鏋�
+
+        //鏌ヨ妫�楠屾暟閲�
+        var mesInvItemInsList = db
+            .Queryable<MesInvItemIns, MesInvItemInCDetails2>((a, b) =>
+                new JoinQueryInfos(
+                    JoinType.Left, a.Id == b.ItemInId))
+            .Where((a, b) => a.BillNo == oqcReqList.BillNo)
+            .Select((a, b) => new
+            { b.ItemBarcode, b.Quantity, b.MesScgdGxId })
+            .ToList();
+
+        var barCodes = mesInvItemInsList.Select(s => s.ItemBarcode).ToList();
+
+        var count = db.Queryable<MesInvItemBarcodes>()
+            .Where(s => barCodes.Contains(s.ItemBarcode))
+            .Count();
+
+        var gxId = mesInvItemInsList.Select(s => s.MesScgdGxId).ToList();
+
+        var sumQty = mesInvItemInsList.Sum(s => s.Quantity);
+
+
+        //鏍规嵁宸ュ簭id鏇存柊宸ュ簭琛ㄧ殑妫�楠岀粨鏋�
+        db.Updateable<MesScgdGx>()
+            .SetColumns(s => s.CheckFlag == "鏈楠�")
+            .Where(s => gxId.Contains(s.Id))
+            .ExecuteCommand();
+
+        if (count <= 0) return 0;
+
+        //鏇存柊mes_inv_item_barcodes 鐨勬姤宸ユ爣璇� WORK_FLG 涓哄凡鎶ュ伐锛堜富瑕佹槸閽堝涓嶅悎鏍肩殑妫�楠岀粨鏋滐級
+        var executeCommand = db.Updateable<MesInvItemBarcodes>()
+            .SetColumns(a => a.WorkFlg == 1)
+            .Where(a => barCodes.Contains(a.ItemBarcode))
+            .ExecuteCommand();
+
+
+        if ("鍚堟牸".Equals(FcheckResu)) //妫�楠屽悎鏍肩殑鍒欏洖閫�鐢熶骇鏁伴噺
+        {
+            //womdaa 宸茬敓浜ч噺 DAA011鎵i櫎鏉$爜鎶ュ伐鏁伴噺
+            db.Updateable<Womdaa>()
+                .SetColumns(b => b.Daa011 == b.Daa011 - sumQty)
+                .Where(b => b.Daa001 == oqcReqList.Daa001)
+                .ExecuteCommand();
+        }
+
 
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {

--
Gitblit v1.9.3