From 59af98c2aeb6c40d820e8d5c2f9f6764f57721bd Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 10 九月 2025 17:11:23 +0800
Subject: [PATCH] 覆盖祈禧的代码

---
 service/Wom/MesWorkProdManager.cs |  758 +++++++++++++++++++++-------------------------------------
 1 files changed, 275 insertions(+), 483 deletions(-)

diff --git a/service/Wom/MesWorkProdManager.cs b/service/Wom/MesWorkProdManager.cs
index c1352bf..07d18e1 100644
--- a/service/Wom/MesWorkProdManager.cs
+++ b/service/Wom/MesWorkProdManager.cs
@@ -1,12 +1,8 @@
 锘縰sing NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
-using NewPdaSqlServer.entity.Base;
 using NewPdaSqlServer.util;
 using SqlSugar;
-using System.Data;
-using System.Data.SqlClient;
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
 
 namespace NewPdaSqlServer.service.Wom;
 
@@ -46,212 +42,10 @@
     /// </exception>
     public ScanWorkResult ScanWorkAsync(ScanWorkRequest request)
     {
-        // // 1. 楠岃瘉鍛樺伐淇℃伅
-        // var staff = Db.Queryable<MesStaff>()
-        //     .Where(x => x.StaffNo == request.StaffNo)
-        //     .First();
-        // if (staff == null)
-        //     throw new Exception("璇峰厛閫夋嫨浜哄憳");
-
-        // // 2. 楠岃瘉鏉$爜淇℃伅
-        // var barcode = Db.Queryable<MesInvItemBarcodes>()
-        //     .Where(x => x.ItemBarcode == request.ItemBarcode)
-        //     .First();
-        // if (barcode == null)
-        //     throw new Exception($"鏃犳鏉$爜锛岃鏍稿锛亄request.ItemBarcode}");
-
-        // // 3. 楠岃瘉鐗╂枡淇℃伅
-        // var item = Db.Queryable<MesItems>()
-        //     .Where(x => x.Id == barcode.ItemId)
-        //     .First();
-        // if (item == null)
-        //     throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄request.ItemBarcode}");
-
-        // // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
-        // var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
-        // var transactionNo = 902; // 榛樿浜ゆ槗鍙�
-        // switch (barcode.Memo?.Trim() ?? "0")
-        // {
-        //     case "涓濆嵃":
-        //         transactionNo = 901; // 涓濆嵃宸ュ簭
-        //         break;
-        //     case "鍗婃垚鍝�":
-        //         transactionNo = 902; // 鍗婃垚鍝佸伐搴�
-        //         break;
-        //     case "鍖呰":
-        //     case "鎴愬搧":
-        //         transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
-        //         break;
-        // }
-
-        // // 5. 妫�鏌ユ潯鐮佹槸鍚﹂噸澶嶆壂鎻�
-        // var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
-        //         (a, b) =>
-        //             new JoinQueryInfos(JoinType.Inner,
-        //                 a.Id == b.MesWorkProdId))
-        //     .Where((a, b) => b.ItemBarcode == request.ItemBarcode
-        //                      && a.BillTypeId == billTypeId
-        //                      && a.TransactionNo == transactionNo)
-        //     .Any();
-
-        // if (exists)
-        //     throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
-
-        // // 6. 鑾峰彇宸叉姤宸ユ暟閲�
-        // var reportedQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
-        //         (a, b) =>
-        //             new JoinQueryInfos(JoinType.Inner,
-        //                 a.BillNo == b.BillNo))
-        //     .Where((a, b) => a.BillTypeId == billTypeId
-        //                      && a.TransactionNo == transactionNo
-        //                      && a.TaskNo == barcode.BillNo)
-        //     .Sum((a, b) => b.Quantity);
-
-        // // 7. 鑾峰彇宸ュ崟璁″垝鏁伴噺鍜屽瀷鍙�
-        // var workOrder = Db.Queryable<Womdaa>()
-        //     .Where(x => x.Daa001 == barcode.BillNo)
-        //     .First();
-        // if (workOrder == null)
-        //     throw new Exception($"鏃犲伐鍗曟槑缁嗭紝璇锋牳瀵癸紒{request.ItemBarcode}");
-
-        // var planQty = workOrder.Daa008;
-        // var itemModel = workOrder.Daa004;
-
-        // // 8. 浣跨敤浜嬪姟澶勭悊鎶ュ伐鏁版嵁
-        // UseTransaction(db =>
-        // {
-        //     // 9. 澶勭悊鏈夋暟閲忔潯鐮佺殑鑷姩鎶ュ伐
-        //     if (barcode.Quantity > 0)
-        //     {
-        //         var reportQty = barcode.Quantity;
-        //         if (reportQty <= 0)
-        //             throw new Exception(
-        //                 $"鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬0锛岃鏍稿锛亄request.ItemBarcode}");
-
-        //         var totalQty = (reportedQty ?? 0) + reportQty;
-        //         if (totalQty > workOrder.Daa008)
-        //             throw new Exception(
-        //                 $"鏈鎶ュ伐鏁伴噺锛歿reportQty} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿workOrder.Daa008 - reportedQty ?? 0}锛岃鏍稿锛�");
-
-        //         // 10. 鏇存柊鏉$爜鐘舵��
-        //         db.Updateable<MesInvItemBarcodes>()
-        //             .SetColumns(x => new MesInvItemBarcodes
-        //             {
-        //                 WorkFlg = true
-        //                 //Quantity = reportQty
-        //             })
-        //             .Where(x => x.Guid == barcode.Guid)
-        //             .ExecuteCommand();
-
-        //         // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟
-        //         var workProd = db.Queryable<MesWorkProd>()
-        //             .Where(x => x.TaskNo == barcode.BillNo
-        //                         && x.CreateDate.Value.Date.ToString(
-        //                             "yyyy-MM-dd") ==
-        //                         DateTime.Now.Date.ToString("yyyy-MM-dd")
-        //                         && x.BillTypeId == billTypeId
-        //                         && x.TransactionNo == transactionNo
-        //                         && x.ReportBy == request.StaffNo)
-        //             .First();
-
-        //         var id = Guid.Empty;
-        //         var billNo = "";
-        //         if (workProd == null)
-        //         {
-        //             id = Guid.NewGuid();
-        //             billNo = BillNo.GetBillNo("BG(鎶ュ伐)");
-
-        //             workProd = new MesWorkProd
-        //             {
-        //                 Id = id,
-        //                 BillNo = billNo,
-        //                 LineNo = barcode.LineNo,
-        //                 Company = barcode.Company,
-        //                 Factory = barcode.Factory,
-        //                 CreateBy = request.UserNo,
-        //                 CreateDate = DateTime.Now,
-        //                 LastupdateBy = request.UserNo,
-        //                 LastupdateDate = DateTime.Now,
-        //                 BillTypeId = billTypeId,
-        //                 TransactionNo = transactionNo,
-        //                 TaskNo = barcode.BillNo,
-        //                 ReportBy = request.StaffNo,
-        //                 ReportDate = DateTime.Now
-        //             };
-
-        //             db.Insertable(workProd).IgnoreColumns(true)
-        //                 .ExecuteCommand();
-        //         }
-        //         else
-        //         {
-        //             id = workProd.Id;
-        //             billNo = workProd.BillNo;
-        //         }
-
-        //         // 12. 鎻掑叆鎶ュ伐鏄庣粏
-        //         var detailId = Guid.NewGuid();
-        //         db.Insertable(new MesWorkProdCDetails
-        //         {
-        //             Id = detailId,
-        //             MesWorkProdId = id,
-        //             BillNo = billNo,
-        //             ItemBarcode = request.ItemBarcode,
-        //             Quantity = (int)reportQty,
-        //             Company = barcode.Company,
-        //             Factory = barcode.Factory,
-        //             CreateBy = request.UserNo,
-        //             CreateDate = DateTime.Now,
-        //             LastupdateBy = request.UserNo,
-        //             LastupdateDate = DateTime.Now,
-        //             ItemNo = item.ItemNo,
-        //             WorkLast = barcode.WorkLast,
-        //             SilkPqty = barcode.SilkPqty,
-        //             SilkId = barcode.SilkId,
-        //             Silk = barcode.Silk,
-        //             BgYg = request.StaffNo
-        //         }).IgnoreColumns(true).ExecuteCommand();
-
-        //         // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲�
-        //         db.Updateable<Womdaa>()
-        //                 .SetColumns(x => new Womdaa
-        //                 {
-        //                     Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity
-        //                 })
-        //                 .Where(x => x.Daa001 == barcode.BillNo)
-        //                 .ExecuteCommand();
-
-        //         // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺
-        //         reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>(
-        //                 (a, b) =>
-        //                     new JoinQueryInfos(JoinType.Inner,
-        //                         a.BillNo == b.BillNo))
-        //             .Where((a, b) => a.BillTypeId == billTypeId
-        //                              && a.TransactionNo == transactionNo
-        //                              && a.TaskNo == barcode.BillNo)
-        //             .Sum((a, b) => b.Quantity);
-        //     }
-
-        //     return 1;
-        // });
-
-        // // 15. 杩斿洖澶勭悊缁撴灉
-        // return new ScanWorkResult
-        // {
-        //     TaskNo = barcode.BillNo,
-        //     ItemNo = item.ItemNo,
-        //     PlanQty = planQty ?? 0,
-        //     ReportedQty = reportedQty ?? 0,
-        //     CurrentQty = barcode.Quantity.Value,
-        //     BarcodeQty = barcode.Quantity.Value,
-        //     ItemName = item.ItemName,
-        //     ItemModel = itemModel,
-        //     Message = "鎵爜鎴愬姛锛�"
-        // };
-
-        //1.楠岃瘉鍛樺伐淇℃伅
-         var staff = Db.Queryable<MesStaff>()
-             .Where(x => x.StaffNo == request.StaffNo)
-             .First();
+        // 1. 楠岃瘉鍛樺伐淇℃伅
+        var staff = Db.Queryable<MesStaff>()
+            .Where(x => x.StaffNo == request.StaffNo)
+            .First();
         if (staff == null)
             throw new Exception("璇峰厛閫夋嫨浜哄憳");
 
@@ -269,6 +63,46 @@
         if (item == null)
             throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄request.ItemBarcode}");
 
+        // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
+        var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
+        var transactionNo = 902; // 榛樿浜ゆ槗鍙�
+        switch (barcode.Memo?.Trim() ?? "0")
+        {
+            case "涓濆嵃":
+                transactionNo = 901; // 涓濆嵃宸ュ簭
+                break;
+            case "鍗婃垚鍝�":
+                transactionNo = 902; // 鍗婃垚鍝佸伐搴�
+                break;
+            case "鍖呰":
+            case "鎴愬搧":
+                transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
+                break;
+        }
+
+        // 5. 妫�鏌ユ潯鐮佹槸鍚﹂噸澶嶆壂鎻�
+        var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Inner,
+                        a.Id == b.MesWorkProdId))
+            .Where((a, b) => b.ItemBarcode == request.ItemBarcode
+                             && a.BillTypeId == billTypeId
+                             && a.TransactionNo == transactionNo)
+            .Any();
+
+        if (exists)
+            throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
+
+        // 6. 鑾峰彇宸叉姤宸ユ暟閲�
+        var reportedQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Inner,
+                        a.BillNo == b.BillNo))
+            .Where((a, b) => a.BillTypeId == billTypeId
+                             && a.TransactionNo == transactionNo
+                             && a.TaskNo == barcode.BillNo)
+            .Sum((a, b) => b.Quantity);
+
         // 7. 鑾峰彇宸ュ崟璁″垝鏁伴噺鍜屽瀷鍙�
         var workOrder = Db.Queryable<Womdaa>()
             .Where(x => x.Daa001 == barcode.BillNo)
@@ -276,85 +110,139 @@
         if (workOrder == null)
             throw new Exception($"鏃犲伐鍗曟槑缁嗭紝璇锋牳瀵癸紒{request.ItemBarcode}");
 
-        // 浣跨敤瀛樺偍杩囩▼澶勭悊鐢熶骇鎶ュ伐
-        var parameters = new SqlParameter[]
+        var planQty = workOrder.Daa008;
+        var itemModel = workOrder.Daa004;
+
+        // 8. 浣跨敤浜嬪姟澶勭悊鎶ュ伐鏁版嵁
+        UseTransaction(db =>
         {
-            new SqlParameter("@pi_user", request.StaffNo),
-            new SqlParameter("@pi_barcode", request.ItemBarcode),
-            new SqlParameter("@po_outMsg", SqlDbType.NVarChar, 200) { Direction = ParameterDirection.Output },
-            new SqlParameter("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
-            new SqlParameter("@po_womInBarSum", SqlDbType.Decimal) { Direction = ParameterDirection.Output }
-        };
-
-        string procedureName = "prc_pda_scbg";
-        int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters);
-
-        // Retrieve output parameters with proper type conversion
-        var po_outMsg = parameters[2].Value?.ToString() ?? string.Empty;
-        var po_outSum = parameters[3].Value != DBNull.Value ? Convert.ToInt32(parameters[3].Value) : -1;
-        var po_womInBarSum = parameters[4].Value != DBNull.Value ? Convert.ToDecimal(parameters[4].Value) : 0m;
-
-
-        // 澹版槑鍙橀噺鍦ㄥ灞傦紝纭繚鍦ㄦ墍鏈夊垎鏀腑閮藉彲璁块棶
-        MesInvItemIns rksqOrder = null;
-        List<MesInvItemInRksqDetails> rksqDetails = 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();
-
-            if (rksqOrder != null)
+            // 9. 澶勭悊鏈夋暟閲忔潯鐮佺殑鑷姩鎶ュ伐
+            if (barcode.Quantity > 0)
             {
-                var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel
-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}' ORDER BY A.create_date DESC", rksqOrder.BillNo);
+                var reportQty = barcode.Quantity;
+                if (reportQty <= 0)
+                    throw new Exception(
+                        $"鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬0锛岃鏍稿锛亄request.ItemBarcode}");
 
-                rksqDetails = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql).ToList();
-            }
-        }
-        else if (po_outSum == 2)
-        {
-            rksqOrder = Db.Queryable<MesInvItemIns>()
-              .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo == "181" && x.CreateBy == request.StaffNo)
-              .First();
+                var totalQty = (reportedQty ?? 0) + reportQty;
+                if (totalQty > workOrder.Daa008)
+                    throw new Exception(
+                        $"鏈鎶ュ伐鏁伴噺锛歿reportQty} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿workOrder.Daa008 - reportedQty ?? 0}锛岃鏍稿锛�");
 
-            if (rksqOrder != null)
-            {
-                rksqOrder.BillNo = "";
+                // 10. 鏇存柊鏉$爜鐘舵��
+                db.Updateable<MesInvItemBarcodes>()
+                    .SetColumns(x => new MesInvItemBarcodes
+                    {
+                        WorkFlg = true
+                        //Quantity = reportQty
+                    })
+                    .Where(x => x.Guid == barcode.Guid)
+                    .ExecuteCommand();
+
+                // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟
+                var workProd = db.Queryable<MesWorkProd>()
+                    .Where(x => x.TaskNo == barcode.BillNo
+                                && x.CreateDate.Value.Date.ToString(
+                                    "yyyy-MM-dd") ==
+                                DateTime.Now.Date.ToString("yyyy-MM-dd")
+                                && x.BillTypeId == billTypeId
+                                && x.TransactionNo == transactionNo
+                                && x.ReportBy == request.StaffNo)
+                    .First();
+
+                var id = Guid.Empty;
+                var billNo = "";
+                if (workProd == null)
+                {
+                    id = Guid.NewGuid();
+                    billNo = BillNo.GetBillNo("BG(鎶ュ伐)");
+
+                    workProd = new MesWorkProd
+                    {
+                        Id = id,
+                        BillNo = billNo,
+                        LineNo = barcode.LineNo,
+                        Company = barcode.Company,
+                        Factory = barcode.Factory,
+                        CreateBy = request.UserNo,
+                        CreateDate = DateTime.Now,
+                        LastupdateBy = request.UserNo,
+                        LastupdateDate = DateTime.Now,
+                        BillTypeId = billTypeId,
+                        TransactionNo = transactionNo,
+                        TaskNo = barcode.BillNo,
+                        ReportBy = request.StaffNo,
+                        ReportDate = DateTime.Now
+                    };
+
+                    db.Insertable(workProd).IgnoreColumns(true)
+                        .ExecuteCommand();
+                }
+                else
+                {
+                    id = workProd.Id;
+                    billNo = workProd.BillNo;
+                }
+
+                // 12. 鎻掑叆鎶ュ伐鏄庣粏
+                var detailId = Guid.NewGuid();
+                db.Insertable(new MesWorkProdCDetails
+                {
+                    Id = detailId,
+                    MesWorkProdId = id,
+                    BillNo = billNo,
+                    ItemBarcode = request.ItemBarcode,
+                    Quantity = (int)reportQty,
+                    Company = barcode.Company,
+                    Factory = barcode.Factory,
+                    CreateBy = request.UserNo,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = request.UserNo,
+                    LastupdateDate = DateTime.Now,
+                    ItemNo = item.ItemNo,
+                    WorkLast = barcode.WorkLast,
+                    SilkPqty = barcode.SilkPqty,
+                    SilkId = barcode.SilkId,
+                    Silk = barcode.Silk,
+                    BgYg = request.StaffNo
+                }).IgnoreColumns(true).ExecuteCommand();
+
+                // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲�
+                db.Updateable<Womdaa>()
+                        .SetColumns(x => new Womdaa
+                        {
+                            Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity
+                        })
+                        .Where(x => x.Daa001 == barcode.BillNo)
+                        .ExecuteCommand();
+
+                // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺
+                reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>(
+                        (a, b) =>
+                            new JoinQueryInfos(JoinType.Inner,
+                                a.BillNo == b.BillNo))
+                    .Where((a, b) => a.BillTypeId == billTypeId
+                                     && a.TransactionNo == transactionNo
+                                     && a.TaskNo == barcode.BillNo)
+                    .Sum((a, b) => b.Quantity);
             }
 
-            rksqDetails = new List<MesInvItemInRksqDetails>();
-        }
+            return 1;
+        });
 
-        // Check if the procedure failed
-        if (po_outSum == -1)
-        {
-            throw new Exception(po_outMsg);
-        }
-
-        // 澶勭悊rksqOrder涓簄ull鐨勬儏鍐�
-        string sjBillNo = rksqOrder?.BillNo ?? "";
-
-        // 15. Return processing result
+        // 15. 杩斿洖澶勭悊缁撴灉
         return new ScanWorkResult
         {
             TaskNo = barcode.BillNo,
             ItemNo = item.ItemNo,
-            PlanQty = workOrder.Daa008 ?? 0,
-            ReportedQty = po_womInBarSum,
+            PlanQty = planQty ?? 0,
+            ReportedQty = reportedQty ?? 0,
             CurrentQty = barcode.Quantity.Value,
             BarcodeQty = barcode.Quantity.Value,
             ItemName = item.ItemName,
-            ItemModel = workOrder.Daa004,
-            Message = po_outMsg,
-            sjBillNo = sjBillNo,
-            BarcodesDetail = rksqDetails,
+            ItemModel = itemModel,
+            Message = "鎵爜鎴愬姛锛�"
         };
-
     }
 
 
@@ -376,220 +264,124 @@
     /// </exception>
     public bool ScanWorkProdAsync(ScanWorkRequest request)
     {
-        //// 1. 楠岃瘉鎶ュ伐鏁伴噺鏄惁澶т簬0
-        //if (request.Quantity <= 0)
-        //    throw new Exception("鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬 0锛岃鏍稿锛�");
+        // 1. 楠岃瘉鎶ュ伐鏁伴噺鏄惁澶т簬0
+        if (request.Quantity <= 0)
+            throw new Exception("鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬 0锛岃鏍稿锛�");
 
-        //// 2. 鏌ヨ鏉$爜淇℃伅锛岄獙璇佹潯鐮佹槸鍚﹀瓨鍦�
-        //var barcode = Db.Queryable<MesInvItemBarcodes>()
-        //    .Where(x => x.ItemBarcode == request.ItemBarcode)
-        //    .First();
-        //if (barcode == null)
-        //    throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{request.ItemBarcode}");
+        // 2. 鏌ヨ鏉$爜淇℃伅锛岄獙璇佹潯鐮佹槸鍚﹀瓨鍦�
+        var barcode = Db.Queryable<MesInvItemBarcodes>()
+            .Where(x => x.ItemBarcode == request.ItemBarcode)
+            .First();
+        if (barcode == null)
+            throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{request.ItemBarcode}");
 
-        //// 3. 鏌ヨ宸ュ崟淇℃伅锛岄獙璇佸伐鍗曟槸鍚﹀瓨鍦�
-        //var womdaa = Db.Queryable<Womdaa>()
-        //    .Where(x => x.Daa001 == barcode.BillNo)
-        //    .First();
-        //if (womdaa == null)
-        //    throw new Exception($"鏉$爜涓嶆槸鎶ュ伐鏉$爜/鏃犲搴斿伐鍗曪紝璇锋牳瀵癸紒{request.ItemBarcode}");
+        // 3. 鏌ヨ宸ュ崟淇℃伅锛岄獙璇佸伐鍗曟槸鍚﹀瓨鍦�
+        var womdaa = Db.Queryable<Womdaa>()
+            .Where(x => x.Daa001 == barcode.BillNo)
+            .First();
+        if (womdaa == null)
+            throw new Exception($"鏉$爜涓嶆槸鎶ュ伐鏉$爜/鏃犲搴斿伐鍗曪紝璇锋牳瀵癸紒{request.ItemBarcode}");
 
-        //// 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
-        //var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
-        //var transactionNo = 902; // 榛樿浜ゆ槗鍙�(鍗婃垚鍝佸伐搴�)
-        //switch (barcode.Memo?.Trim() ?? "0")
-        //{
-        //    case "涓濆嵃":
-        //        transactionNo = 901; // 涓濆嵃宸ュ簭
-        //        break;
-        //    case "鍗婃垚鍝�":
-        //        transactionNo = 902; // 鍗婃垚鍝佸伐搴�
-        //        break;
-        //    case "鎴愬搧":
-        //    case "鍖呰":
-        //        transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
-        //        break;
-        //}
-
-        //// 5. 姹囨�诲凡鎵潯鐮佹暟閲忥紝楠岃瘉鏄惁瓒呭嚭璁″垝鏁伴噺
-        //var sumQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>((a, b) =>
-        //        new JoinQueryInfos(JoinType.Inner, a.BillNo == b.BillNo))
-        //    .Where((a, b) => a.BillTypeId == billTypeId
-        //                     && a.TransactionNo == transactionNo
-        //                     && b.SilkId == barcode.SilkId
-        //                     && a.TaskNo == barcode.BillNo)
-        //    .Sum((a, b) => b.Quantity);
-
-        //sumQty = (sumQty ?? 0) + (int)request.Quantity;
-
-        //if (sumQty > womdaa.Daa008)
-        //    throw new Exception(
-        //        $"鏈鎶ュ伐鏁伴噺锛歿request.Quantity} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿womdaa.Daa008 - (sumQty - request.Quantity)}锛岃鏍稿锛�");
-
-        //// 6. 寮�鍚簨鍔″鐞嗘姤宸ユ暟鎹�
-        //return UseTransaction(db =>
-        //{
-        //    // 6.1 鏇存柊鏉$爜淇℃伅锛岃缃凡鎶ュ伐鏍囪鍜屾暟閲�
-        //    db.Updateable<MesInvItemBarcodes>()
-        //        .SetColumns(x => x.WorkFlg == true)
-        //        .SetColumns(x => x.Quantity == request.Quantity)
-        //        .Where(x => x.Guid == barcode.Guid)
-        //        .ExecuteCommand();
-
-        //    // 6.2 鑾峰彇鎴栧垱寤烘姤宸ュ崟
-        //    var workProd = db.Queryable<MesWorkProd>()
-        //        .Where(x => x.TaskNo == barcode.BillNo
-        //                    && x.CreateDate.Value.Date.ToString("yyyy-MM-dd") ==
-        //                    DateTime.Now.Date.ToString("yyyy-MM-dd")
-        //                    && x.BillTypeId == billTypeId
-        //                    && x.TransactionNo == transactionNo
-        //                    && x.Status == 0)
-        //        .First();
-
-        //    // 6.3 濡傛灉鎶ュ伐鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勬姤宸ュ崟
-        //    if (workProd == null)
-        //    {
-        //        var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)");
-        //        workProd = new MesWorkProd
-        //        {
-        //            Id = Guid.NewGuid(),
-        //            BillNo = billNo,
-        //            LineNo = barcode.LineNo,
-        //            Company = barcode.Company,
-        //            Factory = barcode.Factory,
-        //            CreateBy = request.UserNo,
-        //            CreateDate = DateTime.Now,
-        //            LastupdateBy = request.UserNo,
-        //            LastupdateDate = DateTime.Now,
-        //            PbillNo = barcode.BillNo,
-        //            BillTypeId = billTypeId,
-        //            TransactionNo = transactionNo,
-        //            TaskNo = barcode.BillNo
-        //        };
-
-        //        db.Insertable(workProd).IgnoreColumns(true).ExecuteCommand();
-        //    }
-
-        //    // 6.4 鎻掑叆鎶ュ伐鏄庣粏璁板綍
-        //    var detail = new MesWorkProdCDetails
-        //    {
-        //        Id = Guid.NewGuid(),
-        //        BillNo = workProd.BillNo,
-        //        ItemBarcode = request.ItemBarcode,
-        //        Quantity = (int)request.Quantity,
-        //        Company = barcode.Company,
-        //        Factory = barcode.Factory,
-        //        CreateBy = request.UserNo,
-        //        CreateDate = DateTime.Now,
-        //        LastupdateBy = request.UserNo,
-        //        LastupdateDate = DateTime.Now,
-        //        ItemNo = barcode.ItemNo,
-        //        PbillNo = barcode.BillNo,
-        //        WorkLast = barcode.WorkLast,
-        //        SilkPqty = barcode.SilkPqty,
-        //        SilkId = barcode.SilkId,
-        //        Silk = barcode.Silk
-        //    };
-
-        //    db.Insertable(detail).IgnoreColumns(true).ExecuteCommand();
-
-        //    return 1;
-        //}) > 0;
-
-        // 璋冪敤瀛樺偍杩囩▼澶勭悊鐢熶骇鎶ュ伐瀹℃牳
-        var parameters = new SqlParameter[]
+        // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿
+        var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷
+        var transactionNo = 902; // 榛樿浜ゆ槗鍙�(鍗婃垚鍝佸伐搴�)
+        switch (barcode.Memo?.Trim() ?? "0")
         {
-             // 杈撳嚭鍙傛暟锛氳繑鍥炴秷鎭紙鏈�澶ч暱搴�2500瀛楃锛�
-             new SqlParameter("@outMsg", SqlDbType.NVarChar, 2500) { Direction = ParameterDirection.Output },
-             // 杈撳嚭鍙傛暟锛氳繑鍥炲奖鍝嶈鏁�
-             new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
-             // 杈撳叆鍙傛暟锛氭搷浣滀汉宸ュ彿
-            new SqlParameter("@userno", request.UserNo),
-            // 杈撳叆鍙傛暟锛氬崟鎹紪鍙凤紙杩欓噷浼犲叆浜嗘潯鐮佸�硷級
-             new SqlParameter("@inorder", request.sjBillNo),
-             // 杈撳叆鍙傛暟锛氭搷浣滅被鍨嬶紙1涓哄鏍革紝0涓哄弽瀹℃牳锛�
-             new SqlParameter("@inFieldValue", 1)
-            // 娉細浠ヤ笅鍙傛暟鍦ㄥ瓨鍌ㄨ繃绋嬩腑鏈夐粯璁ゅ�硷紝鍙牴鎹渶瑕佹坊鍔�
-            // @inFieldName nvarchar(20)=null,  // 鎵╁睍瀛楁鍚�
-            // @in1 nvarchar(20)=null,         // 鎵╁睍瀛楁1
-            // @in2 nvarchar(20)=null          // 鎵╁睍瀛楁2
-        };
-
-        // 瀛樺偍杩囩▼鍚嶇О
-        string procedureName = "prc_pda_scbg_submit";
-        // 鎵ц瀛樺偍杩囩▼
-        int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters);
-
-        // 鑾峰彇杈撳嚭鍙傛暟鍊硷紙甯︾被鍨嬭浆鎹級
-        var outMsg = parameters[0].Value?.ToString() ?? string.Empty;  // 杩斿洖娑堟伅
-        var outSum = parameters[1].Value != DBNull.Value ? Convert.ToInt32(parameters[1].Value) : -1;  // 褰卞搷琛屾暟
-
-        if (outSum == -1)
-        {
-            throw new Exception(outMsg);
+            case "涓濆嵃":
+                transactionNo = 901; // 涓濆嵃宸ュ簭
+                break;
+            case "鍗婃垚鍝�":
+                transactionNo = 902; // 鍗婃垚鍝佸伐搴�
+                break;
+            case "鎴愬搧":
+            case "鍖呰":
+                transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭
+                break;
         }
-        else
+
+        // 5. 姹囨�诲凡鎵潯鐮佹暟閲忥紝楠岃瘉鏄惁瓒呭嚭璁″垝鏁伴噺
+        var sumQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>((a, b) =>
+                new JoinQueryInfos(JoinType.Inner, a.BillNo == b.BillNo))
+            .Where((a, b) => a.BillTypeId == billTypeId
+                             && a.TransactionNo == transactionNo
+                             && b.SilkId == barcode.SilkId
+                             && a.TaskNo == barcode.BillNo)
+            .Sum((a, b) => b.Quantity);
+
+        sumQty = (sumQty ?? 0) + (int)request.Quantity;
+
+        if (sumQty > womdaa.Daa008)
+            throw new Exception(
+                $"鏈鎶ュ伐鏁伴噺锛歿request.Quantity} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿womdaa.Daa008 - (sumQty - request.Quantity)}锛岃鏍稿锛�");
+
+        // 6. 寮�鍚簨鍔″鐞嗘姤宸ユ暟鎹�
+        return UseTransaction(db =>
         {
-            return true;
-        }
+            // 6.1 鏇存柊鏉$爜淇℃伅锛岃缃凡鎶ュ伐鏍囪鍜屾暟閲�
+            db.Updateable<MesInvItemBarcodes>()
+                .SetColumns(x => x.WorkFlg == true)
+                .SetColumns(x => x.Quantity == request.Quantity)
+                .Where(x => x.Guid == barcode.Guid)
+                .ExecuteCommand();
+
+            // 6.2 鑾峰彇鎴栧垱寤烘姤宸ュ崟
+            var workProd = db.Queryable<MesWorkProd>()
+                .Where(x => x.TaskNo == barcode.BillNo
+                            && x.CreateDate.Value.Date.ToString("yyyy-MM-dd") ==
+                            DateTime.Now.Date.ToString("yyyy-MM-dd")
+                            && x.BillTypeId == billTypeId
+                            && x.TransactionNo == transactionNo
+                            && x.Status == 0)
+                .First();
+
+            // 6.3 濡傛灉鎶ュ伐鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勬姤宸ュ崟
+            if (workProd == null)
+            {
+                var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)");
+                workProd = new MesWorkProd
+                {
+                    Id = Guid.NewGuid(),
+                    BillNo = billNo,
+                    LineNo = barcode.LineNo,
+                    Company = barcode.Company,
+                    Factory = barcode.Factory,
+                    CreateBy = request.UserNo,
+                    CreateDate = DateTime.Now,
+                    LastupdateBy = request.UserNo,
+                    LastupdateDate = DateTime.Now,
+                    PbillNo = barcode.BillNo,
+                    BillTypeId = billTypeId,
+                    TransactionNo = transactionNo,
+                    TaskNo = barcode.BillNo
+                };
+
+                db.Insertable(workProd).IgnoreColumns(true).ExecuteCommand();
+            }
+
+            // 6.4 鎻掑叆鎶ュ伐鏄庣粏璁板綍
+            var detail = new MesWorkProdCDetails
+            {
+                Id = Guid.NewGuid(),
+                BillNo = workProd.BillNo,
+                ItemBarcode = request.ItemBarcode,
+                Quantity = (int)request.Quantity,
+                Company = barcode.Company,
+                Factory = barcode.Factory,
+                CreateBy = request.UserNo,
+                CreateDate = DateTime.Now,
+                LastupdateBy = request.UserNo,
+                LastupdateDate = DateTime.Now,
+                ItemNo = barcode.ItemNo,
+                PbillNo = barcode.BillNo,
+                WorkLast = barcode.WorkLast,
+                SilkPqty = barcode.SilkPqty,
+                SilkId = barcode.SilkId,
+                Silk = barcode.Silk
+            };
+
+            db.Insertable(detail).IgnoreColumns(true).ExecuteCommand();
+
+            return 1;
+        }) > 0;
     }
-
-    public ScanWorkResult GetRksqList(ScanWorkRequest request)
-    {
-
-        //1.楠岃瘉鍛樺伐淇℃伅
-        var staff = Db.Queryable<MesStaff>()
-            .Where(x => x.StaffNo == request.StaffNo)
-            .First();
-        if (staff == null)
-            throw new Exception("璇峰厛閫夋嫨浜哄憳");
-
-        var rksqOrder = Db.Queryable<MesInvItemIns>()
-            .Where(x => x.BillNo == request.sjBillNo && x.Status == 0)
-            .First();
-        if (rksqOrder == null)
-            throw new Exception("璇ユ楠屽崟宸叉彁浜ら�佹");
-
-        var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel
-    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}'ORDER BY A.create_date DESC", rksqOrder.BillNo);
-
-        var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql);
-
-
-        var rksqDetails = RKSQ.ToList();
-
-
-        //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>()
-        //    .Where(x => x.BillNo == )
-        //    .ToList();
-
-        // 15. Return processing result
-        return new ScanWorkResult
-        {
-            BarcodesDetail = rksqDetails,
-        };
-    }
-
-    public ScanWorkResult GetRksqSelect(ScanWorkRequest request)
-    {
-        //1.楠岃瘉鍛樺伐淇℃伅
-        var staff = Db.Queryable<MesStaff>()
-            .Where(x => x.StaffNo == request.StaffNo)
-            .First();
-        if (staff == null)
-            throw new Exception("璇峰厛閫夋嫨浜哄憳");
-
-        var rksqOrder = Db.Queryable<MesInvItemIns>()
-            .Where(x => x.TransctionNo=="181"&& x.Status == 0 && x.CreateBy== request.StaffNo)
-            .ToList();
-
-        return new ScanWorkResult
-        {
-            rksqOrderList = rksqOrder,
-        };
-    }
-
 }
\ No newline at end of file

--
Gitblit v1.9.3