From 7b84eb64d11b12b6fb41ae7f7085452512ad5d3f Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 20 六月 2025 08:18:08 +0800
Subject: [PATCH] 1.采购入库优化

---
 service/Wom/MesWorkProdManager.cs |   43 +++++++++++++++++++++++++++----------------
 1 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/service/Wom/MesWorkProdManager.cs b/service/Wom/MesWorkProdManager.cs
index 3d88cb7..07d18e1 100644
--- a/service/Wom/MesWorkProdManager.cs
+++ b/service/Wom/MesWorkProdManager.cs
@@ -84,7 +84,7 @@
         var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
                 (a, b) =>
                     new JoinQueryInfos(JoinType.Inner,
-                        a.BillNo == b.BillNo))
+                        a.Id == b.MesWorkProdId))
             .Where((a, b) => b.ItemBarcode == request.ItemBarcode
                              && a.BillTypeId == billTypeId
                              && a.TransactionNo == transactionNo)
@@ -133,11 +133,11 @@
                 db.Updateable<MesInvItemBarcodes>()
                     .SetColumns(x => new MesInvItemBarcodes
                     {
-                        WorkFlg = true,
-                        Quantity = reportQty
+                        WorkFlg = true
+                        //Quantity = reportQty
                     })
                     .Where(x => x.Guid == barcode.Guid)
-                    .ExecuteCommandAsync();
+                    .ExecuteCommand();
 
                 // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟
                 var workProd = db.Queryable<MesWorkProd>()
@@ -147,13 +147,15 @@
                                 DateTime.Now.Date.ToString("yyyy-MM-dd")
                                 && x.BillTypeId == billTypeId
                                 && x.TransactionNo == transactionNo
-                                && x.Status == 0)
+                                && x.ReportBy == request.StaffNo)
                     .First();
 
+                var id = Guid.Empty;
+                var billNo = "";
                 if (workProd == null)
                 {
-                    var id = Guid.NewGuid();
-                    var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)");
+                    id = Guid.NewGuid();
+                    billNo = BillNo.GetBillNo("BG(鎶ュ伐)");
 
                     workProd = new MesWorkProd
                     {
@@ -168,11 +170,18 @@
                         LastupdateDate = DateTime.Now,
                         BillTypeId = billTypeId,
                         TransactionNo = transactionNo,
-                        TaskNo = barcode.BillNo
+                        TaskNo = barcode.BillNo,
+                        ReportBy = request.StaffNo,
+                        ReportDate = DateTime.Now
                     };
 
                     db.Insertable(workProd).IgnoreColumns(true)
                         .ExecuteCommand();
+                }
+                else
+                {
+                    id = workProd.Id;
+                    billNo = workProd.BillNo;
                 }
 
                 // 12. 鎻掑叆鎶ュ伐鏄庣粏
@@ -180,7 +189,8 @@
                 db.Insertable(new MesWorkProdCDetails
                 {
                     Id = detailId,
-                    BillNo = workProd.BillNo,
+                    MesWorkProdId = id,
+                    BillNo = billNo,
                     ItemBarcode = request.ItemBarcode,
                     Quantity = (int)reportQty,
                     Company = barcode.Company,
@@ -194,16 +204,17 @@
                     SilkPqty = barcode.SilkPqty,
                     SilkId = barcode.SilkId,
                     Silk = barcode.Silk,
-                    BgYg = staff.Id
+                    BgYg = request.StaffNo
                 }).IgnoreColumns(true).ExecuteCommand();
 
                 // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲�
                 db.Updateable<Womdaa>()
-                    .SetColumns(x =>
-                        x.Daa011 == (x.Daa011 ?? 0) + (int)barcode.Quantity
-                    )
-                    .Where(x => x.Daa001 == barcode.BillNo)
-                    .ExecuteCommandAsync();
+                        .SetColumns(x => new Womdaa
+                        {
+                            Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity
+                        })
+                        .Where(x => x.Daa001 == barcode.BillNo)
+                        .ExecuteCommand();
 
                 // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺
                 reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>(
@@ -222,7 +233,7 @@
         // 15. 杩斿洖澶勭悊缁撴灉
         return new ScanWorkResult
         {
-            TaskNo = barcode.TaskNo,
+            TaskNo = barcode.BillNo,
             ItemNo = item.ItemNo,
             PlanQty = planQty ?? 0,
             ReportedQty = reportedQty ?? 0,

--
Gitblit v1.9.3