From 50269b4df8c311908bca39aedad08f22d44f1ec6 Mon Sep 17 00:00:00 2001
From: wbc <2597324127@qq.com>
Date: 星期三, 10 十二月 2025 18:05:48 +0800
Subject: [PATCH] 生产报工更新

---
 service/Wom/MesWorkProdManager.cs |   61 ++++++++++++++++++++++++++----
 1 files changed, 52 insertions(+), 9 deletions(-)

diff --git a/service/Wom/MesWorkProdManager.cs b/service/Wom/MesWorkProdManager.cs
index c1352bf..75d6e85 100644
--- a/service/Wom/MesWorkProdManager.cs
+++ b/service/Wom/MesWorkProdManager.cs
@@ -2,7 +2,7 @@
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
 using NewPdaSqlServer.entity.Base;
-using NewPdaSqlServer.util;
+using SharpCompress;
 using SqlSugar;
 using System.Data;
 using System.Data.SqlClient;
@@ -249,9 +249,9 @@
         // };
 
         //1.楠岃瘉鍛樺伐淇℃伅
-         var staff = Db.Queryable<MesStaff>()
-             .Where(x => x.StaffNo == request.StaffNo)
-             .First();
+        var staff = Db.Queryable<MesStaff>()
+            .Where(x => x.StaffNo == request.StaffNo)
+            .First();
         if (staff == null)
             throw new Exception("璇峰厛閫夋嫨浜哄憳");
 
@@ -298,12 +298,18 @@
         // 澹版槑鍙橀噺鍦ㄥ灞傦紝纭繚鍦ㄦ墍鏈夊垎鏀腑閮藉彲璁块棶
         MesInvItemIns rksqOrder = null;
         List<MesInvItemInRksqDetails> rksqDetails = new List<MesInvItemInRksqDetails>();
+        List<MesInvItemInRksqDetails> itemDetails = new List<MesInvItemInRksqDetails>();
 
         if (po_outSum == 1)
         {
             rksqOrder = Db.Queryable<MesInvItemIns>()
-               .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo == "181" && x.CreateBy == request.StaffNo)
-               .First();
+        .LeftJoin<Womdaa>((a, daa) => a.TaskNo == daa.Daa001)
+        .Where(a => a.Status == 0)
+        .Where(a => a.TransctionNo == "181")
+        .Where((a, daa) => daa.Daa029 == item.ItemNo)
+        .Where((a, daa) => daa.Daa015 == workOrder.Daa015)
+        .Where(a => a.InsDate.Value.Date == DateTime.Today)
+        .First();
 
             if (rksqOrder != null)
             {
@@ -313,14 +319,33 @@
 LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
 WHERE A.bill_no= '{0}' ORDER BY A.create_date DESC", rksqOrder.BillNo);
 
+                var sql1 = string.Format(@"SELECT 
+    SUM(ISNULL(B.QUANTITY,0)) as BgQuantity,
+    c.item_no as ItemNo,
+    c.item_name as ItemName,
+    c.item_model as ItemModel,
+    MAX(A.create_date) as LatestCreateDate  -- 娣诲姞杩欎釜瀛楁
+FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
+LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
+LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
+WHERE A.bill_no = '{0}'
+GROUP BY c.item_no, c.item_name, c.item_model
+ORDER BY MAX(A.create_date) DESC", rksqOrder.BillNo);
+
                 rksqDetails = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql).ToList();
+                itemDetails = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql1).ToList();
             }
         }
         else if (po_outSum == 2)
         {
             rksqOrder = Db.Queryable<MesInvItemIns>()
-              .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo == "181" && x.CreateBy == request.StaffNo)
-              .First();
+        .LeftJoin<Womdaa>((a, daa) => a.TaskNo == daa.Daa001)
+        .Where(a => a.Status == 0)
+        .Where(a => a.TransctionNo == "181")
+        .Where((a, daa) => daa.Daa029 == item.ItemNo)
+        .Where((a, daa) => daa.Daa015 == workOrder.Daa015)
+        .Where(a => a.InsDate.Value.Date == DateTime.Today)
+        .First();
 
             if (rksqOrder != null)
             {
@@ -328,6 +353,7 @@
             }
 
             rksqDetails = new List<MesInvItemInRksqDetails>();
+            itemDetails = new List<MesInvItemInRksqDetails>();
         }
 
         // Check if the procedure failed
@@ -353,6 +379,7 @@
             Message = po_outMsg,
             sjBillNo = sjBillNo,
             BarcodesDetail = rksqDetails,
+            itemDetail = itemDetails
         };
 
     }
@@ -556,10 +583,25 @@
     LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
     WHERE A.bill_no= '{0}'ORDER BY A.create_date DESC", rksqOrder.BillNo);
 
+        var sql1 = string.Format(@"SELECT 
+    SUM(ISNULL(B.QUANTITY,0)) as BgQuantity,
+    c.item_no as ItemNo,
+    c.item_name as ItemName,
+    c.item_model as ItemModel,
+    MAX(A.create_date) as LatestCreateDate  -- 娣诲姞杩欎釜瀛楁
+FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
+LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
+LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
+WHERE A.bill_no = '{0}'
+GROUP BY c.item_no, c.item_name, c.item_model
+ORDER BY MAX(A.create_date) DESC", rksqOrder.BillNo);
+
         var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql);
+        var wlhz = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql1);
 
 
         var rksqDetails = RKSQ.ToList();
+        var wlhzDetails = wlhz.ToList();
 
 
         //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>()
@@ -570,6 +612,7 @@
         return new ScanWorkResult
         {
             BarcodesDetail = rksqDetails,
+            itemDetail = wlhzDetails
         };
     }
 
@@ -583,7 +626,7 @@
             throw new Exception("璇峰厛閫夋嫨浜哄憳");
 
         var rksqOrder = Db.Queryable<MesInvItemIns>()
-            .Where(x => x.TransctionNo=="181"&& x.Status == 0 && x.CreateBy== request.StaffNo)
+            .Where(x => x.TransctionNo == "181" && x.Status == 0)
             .ToList();
 
         return new ScanWorkResult

--
Gitblit v1.9.3