From 9937f480fd5e861255b0c51d10d7f1135d4c5db9 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 21 二月 2025 09:59:39 +0800
Subject: [PATCH] 1.委外补料优化调整 2.新增PDA日志通用方法

---
 service/Wom/WwGdManager.cs |   74 +++++++++++++++++++++++++++----------
 1 files changed, 54 insertions(+), 20 deletions(-)

diff --git a/service/Wom/WwGdManager.cs b/service/Wom/WwGdManager.cs
index 2254eb1..9aeb560 100644
--- a/service/Wom/WwGdManager.cs
+++ b/service/Wom/WwGdManager.cs
@@ -58,7 +58,9 @@
                         daa001 = query.daa001,
                         barcodeNum = barcodeNum,
                         splitNum = splitNum,
-                        barcode = query.barcode
+                        barcode = query.barcode,
+                        strMsg = _strMsg,
+                        result = _intSum
                     };
 
                     return dto;
@@ -147,7 +149,7 @@
         var wwgd = Db.Queryable<WwGd, MesItems>((a, i) =>
                 new JoinQueryInfos(JoinType.Left,
                     a.Daa003 == i.ItemId))
-            .Where((a, i) => a.Daa001 == query.daa001)
+            .Where((a, i) => a.Daa001 == query.daa001 && (a.PcSh ?? 0) == 1)
             .Select((a, i) => new
             {
                 a.Daa001, a.RwdGuid
@@ -162,8 +164,7 @@
                         JoinType.Left,
                         a.Id == b.Pid,
                         JoinType.Inner,
-                        c.Id ==
-                        b.Dab003,
+                        c.Id == b.Dab003,
                         JoinType.Inner, b.Erpid.ToString() == d.ErpId
                     ))
             .Where((a, b, c, d) =>
@@ -668,6 +669,11 @@
             .Where(a => a.Daa001 == query.billNo)
             .First();
 
+        // 妫�鏌ュ伐鍗曚俊鎭�
+        var WWRWD = Db.Queryable<ProductionOrder>()
+            .Where(a => a.OrderNo == wwgd.Daa014)
+            .First();
+
         if (wwgd == null)
             throw new Exception($"宸ュ崟 {query.billNo} 涓嶅瓨鍦紝璇风‘璁わ紒");
 
@@ -678,6 +684,11 @@
 
         if (womdab == null)
             throw new Exception($"澶囨枡鏄庣粏涓嶅瓨鍦ㄦ鐗╂枡 {stockBarcode.ItemNo} 璇风‘璁わ紒");
+
+
+        var depots = Db.Queryable<MesDepots>()
+            .Where(t => t.DepotId == stockBarcode.DepotId)
+            .First();
 
         if (stockBarcode.Quantity > quantity)
         {
@@ -707,13 +718,24 @@
         // 寮�鍚簨鍔″鐞�
         var success = UseTransaction(db =>
         {
+            //query.Type = "濮斿琛ユ枡";
+            var outNoType = "WWBL(濮斿琛ユ枡)";
+            if (query.Type == "濮斿琛ユ枡")
+            {
+                outNoType = "WWBL(濮斿琛ユ枡)";
+            }
+            else
+            {
+                outNoType = "WWCL(濮斿瓒呴)";
+            }
+            //outNoType = "WWBL(濮斿琛ユ枡)";
             // 鑾峰彇鎴栧垱寤哄嚭搴撳崟
             var outId = Guid.NewGuid();
-            var outNo = BillNo.GetBillNo("BL(宸ュ崟琛ユ枡)");
+            var outNo = BillNo.GetBillNo(outNoType);
 
             var existingOut = db.Queryable<MesInvItemOuts>()
-                .Where(a => a.BbillNo == query.blNo
-                            && a.DepotCode == womdab.Dab017
+                .Where(a => a.TaskNo == query.blNo
+                            && a.DepotId == stockBarcode.DepotId
                             && a.OutDate.Value.Date.ToString("yyyy-MM-dd") ==
                             DateTime.Now.Date.ToString("yyyy-MM-dd")
                             && a.BillTypeId == 200
@@ -741,33 +763,36 @@
                     BillTypeId = 200,
                     TransactionNo = 209,
                     Remark = mesItemBl.Bl007,
-                    DepotCode = womdab.Dab017,
-                    OutPart = wwgd.Daa013.ToString(),
+                    DepotCode = depots.DepotCode,
+                    OutPart = wwgd.DepartId.ToString(),
+                    OutType = query.Type,
                     FType = 0,
                     Factory = stockBarcode.Factory,
                     Company = stockBarcode.Company,
-                    // WorkNo = wwgd.Daa021,
-                    // BoardItem = wwgd.Daa002,
+                    WorkNo = WWRWD.ErpProductionOrderNo,
+                    BoardItem = wwgd.Daa003.ToString(),
                     PbillNo = wwgd.Daa001,
                     OutDate = DateTime.Now,
                     Status = 0,
-                    BbillNo = query.blNo
+                    DepotId = stockBarcode.DepotId,
+                    THORGID = stockBarcode.StockOrgId,
+                    //BbillNo = query.billNo
                 }).IgnoreColumns(true).ExecuteCommand();
             }
 
             // 妫�鏌ュ苟鏇存柊鍑哄簱鍗曠墿鏂欐槑缁�
             var itemCount = db.Queryable<MesInvItemOutItems>()
                 .Where(i =>
-                    i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId)
+                    i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString())
                 .Count();
 
             if (itemCount > 0)
                 // 鏇存柊宸插瓨鍦ㄧ殑鐗╂枡鏄庣粏鏁伴噺
                 db.Updateable<MesInvItemOutItems>()
                     .SetColumns(i =>
-                        i.Quantity == i.Quantity + stockBarcode.Quantity)
+                        i.TlQty == i.TlQty + stockBarcode.Quantity)
                     .Where(i =>
-                        i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId)
+                        i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString())
                     .ExecuteCommand();
             else
                 // 鎻掑叆鏂扮殑鐗╂枡鏄庣粏璁板綍
@@ -777,21 +802,24 @@
                     ItemOutId = outId,
                     ItemNo = blDetail.Bld002,
                     Quantity = stockBarcode.Quantity,
+                    TlQty = stockBarcode.Quantity,
                     CreateBy = query.userName,
                     CreateDate = DateTime.Now,
                     LastupdateBy = query.userName,
                     LastupdateDate = DateTime.Now,
                     Factory = stockBarcode.Factory,
                     Company = stockBarcode.Company,
-                    DepotCode = womdab.Dab017,
+                    DepotCode = depots.DepotCode,
                     TaskNo = query.blNo,
-                    // WorkNo = wwgd.Daa021,
+                    WorkNo = WWRWD.ErpProductionOrderNo,
                     WorkLine = blDetail.Bld013,
                     ErpItemNo = womdab.Dab003.ToString(),
                     ErpId = womdab.Eid,
                     ErpAutoid = womdab.Erpid,
                     PbillNo = query.billNo,
-                    ItemId = blDetail.Bld012
+                    ItemId = blDetail.Bld012,
+                    DepotId = stockBarcode.DepotsId.ToString(),
+                    ItemDabid = womdab.Id,
                     // Unit = blDetail.Bld009,
                     // DepotId = (int)stockBarcode.DepotsId
                 }).IgnoreColumns(true).ExecuteCommand();
@@ -810,7 +838,7 @@
                 CreateDate = DateTime.Now,
                 LastupdateBy = query.userName,
                 LastupdateDate = DateTime.Now,
-                DepotCode = stockBarcode.DepotsCode,
+                DepotCode = depots.DepotCode,
                 DepotSectionCode = stockBarcode.DepotSectionsCode,
                 Remark = blDetail.Bld010,
                 Factory = stockBarcode.Factory,
@@ -835,7 +863,7 @@
                 Guid = Guid.NewGuid(),
                 Status = 1,
                 BillTypeId = 200, // p_bill_type_id
-                TransactionCode = "210", // p_transaction_no
+                TransactionCode = "209", // p_transaction_no
                 BusinessType = -1,
                 ItemBarcode = stockBarcode.ItemBarcode,
                 ItemNo = stockBarcode.ItemNo,
@@ -870,6 +898,7 @@
                 })
                 .Where(it => it.Id == womdab.Id && it.Dab003 == womdab.Dab003)
                 .ExecuteCommand();
+
 
             // 鏇存柊琛ユ枡鍗曟槑缁嗗凡琛ユ暟閲�
             db.Updateable<MesItemBlDetail>()
@@ -918,6 +947,11 @@
                     .Where(it => it.Id == mesItemBl.Id)
                     .ExecuteCommand();
 
+            // 鍒涘缓 鎻掑叆鏃ュ織
+            var logService = new LogService();
+            var LogMsg = query.Type + "銆傛潯鐮併��" +query.barcode+"銆� 琛ユ枡鍗曞彿銆�"+ outNo +"銆�";
+            logService.CreateLog(db,query.userName,wwgd.Id.ToString(), "WW_GD", LogMsg,wwgd.Daa001);
+
             return 1;
         });
 

--
Gitblit v1.9.3