From 77bc431c4bc308fa12bf81c0af16a5819c1e4a44 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期一, 08 九月 2025 00:42:01 +0800
Subject: [PATCH] 1.现场收料查询转换为存储过程 2.生产领料新增工单信息

---
 service/Warehouse/MesItemTblManager.cs |  630 ++++++++++++--------------------------------------------
 1 files changed, 136 insertions(+), 494 deletions(-)

diff --git a/service/Warehouse/MesItemTblManager.cs b/service/Warehouse/MesItemTblManager.cs
index 245d931..f3c05df 100644
--- a/service/Warehouse/MesItemTblManager.cs
+++ b/service/Warehouse/MesItemTblManager.cs
@@ -5,6 +5,8 @@
 using NewPdaSqlServer.entity.Base;
 using NewPdaSqlServer.util;
 using SqlSugar;
+using System.Data;
+using System.Data.SqlClient;
 using System.Security.Cryptography;
 
 namespace NewPdaSqlServer.service.Warehouse;
@@ -18,15 +20,34 @@
     ///     鑾峰彇鐢熶骇閫�鏂欏崟鍙峰垪琛�
     /// </summary>
     /// <returns>閫�鏂欏崟鍙峰垪琛�</returns>
-    public List<string> GetSCTLBillNo(WarehouseQuery query)
+    public dynamic GetSCTLBillNo(WarehouseQuery query, dynamic RequestInfo)
     {
-        var list = Db.Queryable<MesItemTbl>()
-            .Where(s => (s.Tbl013 ?? 0) == 1 // 瀹℃牳閫氳繃
-                        && (s.Tbl020 ?? 0) == 0
-                        && s.Tbl008 == query.Type)
-            .Select(s => s.BillNo).ToList();
+        var orgId = RequestInfo.OrgId;
 
-        return list;
+        if (orgId == null)
+            throw new Exception("缁勭粐涓嶅瓨鍦紒");
+
+        // 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛�
+        var parameters = new[]
+        {
+        new SugarParameter("@pi_orgId", orgId),
+        new SugarParameter("@type", query.Type),
+        new SugarParameter("@inP1", null),
+        new SugarParameter("@inP2", null),
+        new SugarParameter("@inP3", null),
+        new SugarParameter("@inP4", null)
+        };
+        try
+        {
+            // 杩斿洖鍗曞彿瀛楃涓插垪琛�
+            var blDetails = Db.Ado.SqlQuery<string>(
+                "EXEC prc_pda_sctl_list @pi_orgId,@type,@inP1,@inP2,@inP3,@inP4", parameters);
+            return blDetails;
+        }
+        catch (Exception ex)
+        {
+            throw new Exception($"{ex.Message}");
+        }
     }
 
     /// <summary>
@@ -34,45 +55,50 @@
     /// </summary>
     /// <param name="query">浠撳簱鏌ヨ鍙傛暟</param>
     /// <returns>鐗╂枡鏄庣粏鍒楄〃</returns>
-    public ProductionPickDto GetMesItemTblDetailByBillNo(
-        WarehouseQuery query)
+    public dynamic GetMesItemTblDetailByBillNo(dynamic query, dynamic RequestInfo)
     {
-        // 鍏宠仈鏌ヨ鐗╂枡琛ㄣ�佺墿鏂欐槑缁嗚〃鍜岀墿鏂欏熀纭�淇℃伅琛�
-        var mesItemTblDetails = Db
-            .Queryable<MesItemTbl, MesItemTblDetail, MesItems>(
-                (a, b, c) => new JoinQueryInfos(
-                    JoinType.Left,
-                    a.Id == b.Tlmid,
-                    JoinType.Left,
-                    b.Tld009 == c.Id)
-            ).Where((a, b, c) => a.BillNo == query.billNo && (a.Tbl013 ?? 0) == 1)
-            .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel
-            {
-                FQty = b.Tld005 ?? 0, // 寰呴��鏁伴噺
-                SQty = b.Tld006 ?? 0, // 宸查��鏁伴噺
-                DSQty = (b.Tld005 ?? 0) - (b.Tld006 ?? 0),
-                ItemNo = c.ItemNo, // 鐗╂枡缂栧彿
-                ItemName = c.ItemName, // 鐗╂枡鍚嶇О
-                ItemModel = c.ItemModel // 鐗╂枡鍨嬪彿
-            }).ToList();
+        if (string.IsNullOrEmpty(query.billNo))
+            throw new Exception("璇烽�夊崟鎹彿锛�");
 
+        if (query == null)
+            throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
 
-        if (mesItemTblDetails.Count<1)
-            throw new Exception("璇ョ敵璇峰崟銆�" + query.billNo + "銆� 鏄庣粏涓嶅瓨鍦紝璇风‘璁わ紒");
+        if (string.IsNullOrEmpty(query.billNo?.ToString()))
+            throw new ArgumentException("鍗曟嵁鍙蜂笉鑳戒负绌�", nameof(query.billNo));
 
-        var DS_list = mesItemTblDetails.Where(s => s.DSQty > 0).ToList();
+        var orgId = RequestInfo.OrgId;
 
-        var YS_list = mesItemTblDetails.Where(s => s.SQty > 0).ToList();
+        if (orgId == null)
+            throw new Exception("缁勭粐涓嶅瓨鍦紒");
 
-        var itemTblDetails = new ProductionPickDto
+        // 鑾峰彇鏈畬鎴愮殑閿�鍞��璐ф槑缁�
+        var parameters = new[]
+{
+        new SugarParameter("@billNo", query.billNo),
+        new SugarParameter("@pi_orgId",orgId),
+        new SugarParameter("@inP1", null),
+        new SugarParameter("@inP2", null),
+        new SugarParameter("@inP3", null),
+        new SugarParameter("@inP4", null)
+    };
+        try
         {
-            items = DS_list,
-            Ysitems = YS_list
-            // yisao = mesInvItemOutCDetailsList
-        };
-
-
-        return itemTblDetails;
+            List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>(
+                "EXEC prc_pda_sctl_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters);
+            var items = blDetails.Where(x => x.DSQty > 0).ToList();    // 寰呮壂鐗╂枡
+            var ysitems = blDetails.Where(x => x.SQty > 0).ToList();   // 宸叉壂鐗╂枡
+            return new
+            {
+                items = items,
+                ysitems = ysitems,
+                Count = items.Count + ysitems.Count
+            };
+        }
+        catch (Exception ex)
+        {
+            // 淇濆紓甯稿鐞嗛�昏緫
+            throw new Exception($"{ex.Message}");
+        }
     }
 
     /// <summary>
@@ -107,474 +133,90 @@
     /// </summary>
     /// <param name="query">浠撳簱鏌ヨ鍙傛暟</param>
     /// <returns>澶勭悊缁撴灉</returns>
-    public WarehouseQuery SctlScanBarcode(WarehouseQuery query)
+    public dynamic SctlScanBarcode(WarehouseQuery query,dynamic RequestInfo)
     {
-        var p_item_barcode = query.barcode; // 鐗╂枡鏉$爜
-        var p_bill_no = query.billNo; // 鍗曟嵁鍙�
-        var p_section_code = query.DepotCode; // 搴撲綅缂栫爜
-        var c_user = query.userName; // 鐢ㄦ埛鍚�
-
-        var p_bill_type_id = 100; // 鍗曟嵁绫诲瀷ID
-        var p_transction_no = 104; // 浜ゆ槗缂栧彿
-
-        // 楠岃瘉搴撲綅鏉$爜
-        if (p_section_code.IsNullOrEmpty()) throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
-
-        // 鑾峰彇搴撲綅淇℃伅
-        var c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
-                new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
-            .Where((a, b) => a.DepotSectionCode == p_section_code)
-            .Select((a, b) => b.DepotId).First();
-
-        if (!c_depot_code.HasValue)
-            throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
-
-        // 鑾峰彇搴撲綅鍒嗗尯淇℃伅
-        var mesDepotSections = Db.Queryable<MesDepotSections>()
-            .Where(a => a.DepotSectionCode == p_section_code).First();
-
-        if (mesDepotSections == null)
-            throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
-
-        // 鑾峰彇搴撲綅鍩虹淇℃伅
-        var c_mes_depots = Db.Queryable<MesDepots>()
-            .Where(b => b.Guid == mesDepotSections.DepotGuid).First();
-
-        if (c_mes_depots == null)
-            throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
-
-        // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
-        var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) =>
-                new JoinQueryInfos(JoinType.Inner, a.Guid == b.ItemInId))
-            .Where((a, b) => b.ItemBarcode == p_item_barcode
-                             && a.BillTypeId == p_bill_type_id &&
-                             a.TransctionNo == p_transction_no.ToString())
-            .Count();
-
-        if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒");
-
-        c_num = Db.Queryable<MesInvItemStocks>()
-            .Where(t => t.ItemBarcode == p_item_barcode).Count();
-
-        if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒");
-
-        // 鑾峰彇鏉$爜淇℃伅
-        var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>()
-            .Where(t => t.ItemBarcode == p_item_barcode).First();
-
-        if (c_mes_inv_item_barcodes == null)
-            throw new Exception("姝ゆ潯鐮佷笉灞炰簬璇ラ��鏂欏崟锛岃鏍稿锛�");
-
-        if (c_mes_inv_item_barcodes.Memo != "鐢熶骇閫�鏂�")
-            throw new Exception("姝ゆ潯鐮佷笉鏄敓浜ч��鏂欐潯鐮侊紝涓嶅彲浣跨敤鐢熶骇閫�鏂欐ā鍧楋紒");
-
-        // 鑾峰彇閫�鏂欏崟淇℃伅
-        var C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>()
-            .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo
-                        && (a.Tbl013 ?? 0) == 1).First();
-
-        // 鑾峰彇閫�鏂欏崟淇℃伅
-        var tbWOMDAA = Db.Queryable<Womdaa>()
-            .Where(a => a.Guid.ToString() == C_MES_ITEM_TBL.Tbl002).First();
-
-
-
-        if (C_MES_ITEM_TBL == null) throw new Exception("鐢宠鍗曞凡鎾ゅ洖,鏃犳硶鎵爜!");
-
-        if (C_MES_ITEM_TBL.Tbl020 == 1) throw new Exception("鎵爜瀹屾垚,鐢宠鍗曞凡瀹岀粨!");
-
-        // 鑾峰彇閫�鏂欏崟鏄庣粏
-        var C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>()
-            .Where(a => a.Tlid == c_mes_inv_item_barcodes.AboutGuid)
+        // 楠岃瘉鏉$爜淇℃伅
+        var barcode = Db.Queryable<MesInvItemBarcodes>()
+            .Where(x => x.ItemBarcode == query.barcode)
             .First();
+        if (barcode == null)
+            throw new Exception($"鏃犳鏉$爜锛岃鏍稿锛亄query.barcode}");
 
-        if (C_MES_ITEM_TBL_DETAIL == null)
-            throw new Exception("鏉$爜涓嶅睘浜庤鐢宠鍗曟槑缁�,鏃犳硶鎵爜!");
+        // 楠岃瘉鐗╂枡淇℃伅
+        var item = Db.Queryable<MesItems>()
+            .Where(x => x.Id == barcode.ItemId)
+            .First();
+        if (item == null)
+            throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄query.barcode}");
 
-        var CABerpid = Db.Queryable<Womdab>().Where(womdab => womdab.Guid.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013).Select(womdab => womdab.Erpid).First();
+        // 楠岃瘉閫�鏂欏崟淇℃伅
+        var returnOrder = Db.Queryable<MesItemTbl>()
+            .Where(x => x.BillNo == query.billNo && (x.Tbl013 ?? 0) == 1)
+            .First();
+        if (returnOrder == null)
+            throw new Exception("鐢宠鍗曞凡鎾ゅ洖,鏃犳硶鎵爜!");
 
-        var ownerId = Db.Queryable<Womcab>().Where(womcab => womcab.Erpid == CABerpid.Value).Select(womcab => womcab.OwnerId).First();
+        if (returnOrder.Tbl020 == 1)
+            throw new Exception("鎵爜瀹屾垚,鐢宠鍗曞凡瀹岀粨!");
 
-        if (ownerId == null) throw new Exception("鐢ㄦ枡娓呭崟璐т富淇℃伅涓嶅瓨鍦�,鏃犳硶鎵爜锛岃鑱旂郴绠$悊鍛�!");
+        // 楠岃瘉缁勭粐鏄惁瀛樺湪
+        var orgId = RequestInfo.OrgId;
 
-        var owner_type = "";
-        if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
+        if (orgId == null)
+            throw new Exception("缁勭粐涓嶅瓨鍦紒");
+
+        // 鐢熶骇閫�鏂�
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        using (var cmd = new SqlCommand("PRC_PDA_SCTL", conn))
         {
-            owner_type = "BD_OwnerOrg";
-        }
-        else
-        {
-            // 绗簩灞傚垽鏂細妫�鏌� MES_CUSTOMER
-            if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(ownerId)))
+            try
             {
-                owner_type = "BD_Customer";
-            }
-            else
-            {
-                // 绗笁灞傚垽鏂細妫�鏌� MES_SUPPLIER
-                if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(ownerId)))
+                conn.Open();
+                cmd.CommandType = CommandType.StoredProcedure;
+
+                var parameters = new[]
                 {
-                    owner_type = "BD_Supplier";
+                    new SqlParameter("@PI_USER", query.userName),
+                    new SqlParameter("@PI_BARCODE", query.barcode),
+                    new SqlParameter("@PI_BILL_NO", query.billNo),
+                    new SqlParameter("@PI_SECTION_CODE", query.DepotCode),
+                    new SqlParameter("@pi_orgId", orgId),
+                    new SqlParameter("@PI_INP1", DBNull.Value),
+                    new SqlParameter("@PI_INP2", DBNull.Value),
+                    new SqlParameter("@PO_OUT_MSG", SqlDbType.NVarChar) { Direction = ParameterDirection.Output, Size = 2000 },
+                    new SqlParameter("@PO_OUT_SUM", SqlDbType.Int) { Direction = ParameterDirection.Output },
+                    new SqlParameter("@PO_ITEM_NO", SqlDbType.NVarChar) { Direction = ParameterDirection.Output, Size = 100 },
+                    new SqlParameter("@PO_QUANTITY", SqlDbType.Decimal)
+                    {
+                        Direction = ParameterDirection.Output,
+                        Precision = 18,   // 鏍规嵁瀹為檯鏁版嵁搴撶簿搴﹁皟鏁�
+                        Scale = 10         // 鏍规嵁瀹為檯鏁版嵁搴撳皬鏁颁綅璋冩暣
+                    }
+                };
+
+                cmd.Parameters.AddRange(parameters);
+                cmd.ExecuteNonQuery();
+
+                var outMsg = parameters[7].Value?.ToString() ?? string.Empty;
+                var outSum = parameters[8].Value != DBNull.Value ? Convert.ToInt32(parameters[8].Value) : -1;
+                var itemNo = parameters[9].Value?.ToString() ?? string.Empty;
+                var quantity = parameters[10].Value != DBNull.Value ? Convert.ToDecimal(parameters[10].Value) : 0m;
+
+                if (outSum == -1) throw new Exception(outMsg);
+
+                query.itemNo = itemNo;
+                query.Num = quantity;
+                query.message = outMsg;
+                return query;
+            }
+            catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
                 }
-                else
+                finally
                 {
-                    throw new Exception("鍏ュ簱澶辫触,鐢ㄦ枡娓呭崟璐т富淇℃伅瀛樺湪闂锛岃鑱旂郴绠$悊鍛樿В鍐筹紒");
+                    conn.Close();
                 }
-            }
         }
-
-
-        var c_quantity = c_mes_inv_item_barcodes.Quantity;
-
-        var c_bill_no = "";
-        var c_id = Guid.Empty;
-
-        // 浣跨敤浜嬪姟澶勭悊鏁版嵁鏇存柊
-        UseTransaction(db =>
-        {
-            // 鏌ヨ鍏ュ簱鍗�
-            var mesInvItemIns = db.Queryable<MesInvItemIns>()
-                .Where(d =>
-                    d.Status == 0 && d.TransctionNo ==
-                                  p_transction_no.ToString()
-                                  && d.TaskNo == c_mes_inv_item_barcodes.BillNo
-                                  && d.DepotsId == c_depot_code
-                                  && d.InsDate.Value.ToString("yyyyMMdd") ==
-                                  DateTime.Now.ToString("yyyyMMdd")).First();
-
-            var totalResult = 0;
-
-            // 濡傛灉鍏ュ簱鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勫叆搴撳崟
-            if (mesInvItemIns == null)
-            {
-                c_bill_no = BillNo.GetBillNo("SCTL(鐢熶骇閫�鏂�)");
-
-                c_id = Guid.NewGuid();
-
-                totalResult += db.Insertable(new MesInvItemIns
-                {
-                    Guid = c_id,
-                    BillNo = c_bill_no,
-                    BillTypeId = p_bill_type_id,
-                    InsDate = DateTime.Now,
-                    DepotsId = c_depot_code,
-                    UserNoBack = c_user,
-                    Reason = C_MES_ITEM_TBL.Tbl005,
-                    Remark = C_MES_ITEM_TBL.Tbl006,
-                    //InsDate = DateTime.Now,
-                    DepotsCode = c_mes_depots.DepotCode,
-                    TaskNo = c_mes_inv_item_barcodes.BillNo,
-                    //DepotsId = c_depot_code,
-                    TransctionNo = p_transction_no.ToString(),
-                    CreateBy = c_user,
-                    CreateDate = DateTime.Now,
-                    LastupdateBy = c_user,
-                    LastupdateDate = DateTime.Now,
-                    CbillNo = tbWOMDAA.Daa001,
-                    InType = "鐢熶骇閫�鏂�",
-                    ReceiveOrgId = c_mes_depots.FSubsidiary,
-                    Fstatus = 0,
-                    Status = 0,
-                    WorkNo = tbWOMDAA.Daa021
-                }).IgnoreColumns(true).ExecuteCommand();
-            }
-            else
-            {
-                c_id = mesInvItemIns.Guid;
-                c_bill_no = mesInvItemIns.BillNo;
-            }
-
-            // 妫�鏌ユ槸鍚︿负鍚堝苟鎵撳嵃鏉$爜
-            var hbdy = c_mes_inv_item_barcodes.Hbdy ?? 0;
-            if (hbdy == 1) throw new Exception("涓嶆敮鎸佸悎骞舵墦鍗扮殑鏉$爜:" + p_item_barcode);
-
-
-            // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 MES_INV_ITEM_IN_C_ITEMS 琛�
-            var existingCount = db.Queryable<MesInvItemInCItems>()
-            .Where(it =>
-                it.ItemInId == c_id &&
-                                it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 &&
-                                it.DepotId == c_depot_code.ToString())
-                .Count();
-
-            if (existingCount == 0)
-                // 涓嶅瓨鍦ㄦ椂鎻掑叆鏂拌褰�
-                db.Insertable(new MesInvItemInCItems
-                {
-                    ItemInId = c_id,
-                    Quantity = c_mes_inv_item_barcodes.Quantity,
-                    CreateBy = c_user,
-                    CreateDate = DateTime.Now,
-                    ItemNo = c_mes_inv_item_barcodes.ItemNo,
-                    //DepotCode = mesDepost.DepotCode,
-                    ItemSname = c_mes_inv_item_barcodes.ItemSname,
-                    Unit = c_mes_inv_item_barcodes.Unit,
-                    Ebeln = c_mes_inv_item_barcodes.WorkNo,
-                    BillNo = c_bill_no,
-                    WorkNo = c_mes_inv_item_barcodes.WorkNo,
-                    EbelnLineNo = c_mes_inv_item_barcodes.WorkLine,
-                    CbillNo = c_mes_inv_item_barcodes.BillNo,
-                    WorkLine = c_mes_inv_item_barcodes.WorkLine,
-                    SuppId = c_mes_inv_item_barcodes.SuppId,
-                    SuppNo = c_mes_inv_item_barcodes.SuppNo,
-                    Remark = c_mes_inv_item_barcodes.Memo,
-                    EbelnK3id = c_mes_inv_item_barcodes.EbelnK3id,
-                    LineK3id = c_mes_inv_item_barcodes.LineK3id,
-                    ItemId = c_mes_inv_item_barcodes.ItemId,
-                    DepotCode = c_mes_depots.DepotCode,
-                    DepotId = c_depot_code.ToString(),
-                    itemDabid = C_MES_ITEM_TBL_DETAIL.Tlid.ToString()
-                }).IgnoreColumns(true).ExecuteCommand();
-            else
-                // 瀛樺湪鏃舵洿鏂版暟閲�
-                db.Updateable<MesInvItemInCItems>()
-                    .SetColumns(it => new MesInvItemInCItems
-                    {
-                        Quantity = SqlFunc.IsNull(it.Quantity, 0) + c_mes_inv_item_barcodes.Quantity // 纭繚 Quantity 涓嶄负 null
-                    })
-                .Where(it =>
-                       it.ItemInId == c_id &&
-                                it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 &&
-                                it.DepotId == c_depot_code.ToString())
-                    //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns
-                    .ExecuteCommand();
-
-
-            // 鎻掑叆 mes_inv_item_in_c_details 琛�
-            totalResult += db.Insertable(new MesInvItemInCDetails
-            {
-                ItemInId = c_id,
-                BillNo = c_bill_no,
-                ItemBarcode = p_item_barcode,
-                Quantity = c_mes_inv_item_barcodes.Quantity,
-                BarcodeFlag = true,
-                EpFlag = true,
-                WorkType = 1,
-                ItemNo = c_mes_inv_item_barcodes.ItemNo,
-                //LotNo = cgddDetails.BatchNumber,--鎵瑰彿锛岄��鏂欎笉璁剧疆鎵瑰彿
-                SuppId = c_mes_inv_item_barcodes.SuppId,
-                SuppNo = c_mes_inv_item_barcodes.SuppNo,
-                //DepotCode = mesDepost.DepotCode,
-                DepotSectionCode = p_section_code,
-                ItemSname = c_mes_inv_item_barcodes.ItemSname,
-                Unit = c_mes_inv_item_barcodes.Unit,
-                CreateBy = c_user,
-                CreateDate = DateTime.Now,
-                LastupdateBy = c_user,
-                LastupdateDate = DateTime.Now,
-                Remark = c_mes_inv_item_barcodes.Memo,
-                Ebeln = c_mes_inv_item_barcodes.Mblnr,
-                EbelnLineNo = c_mes_inv_item_barcodes.Zeile,
-                WorkNo = c_mes_inv_item_barcodes.WorkNo,
-                WorkLine = c_mes_inv_item_barcodes.WorkLine,
-                CbillNo = c_mes_inv_item_barcodes.BillNo,
-                UrgentFlag = c_mes_inv_item_barcodes.UrgentFlag,
-                BoardStyle = c_mes_inv_item_barcodes.BoardStyle,
-                TaskNo = c_mes_inv_item_barcodes.TaskNo,
-                EbelnK3id = c_mes_inv_item_barcodes.EbelnK3id,
-                LineK3id = c_mes_inv_item_barcodes.LineK3id,
-                ItemId = c_mes_inv_item_barcodes.ItemId,
-                Ischeck = true,
-                //CheckDate = C_MES_ITEM_TBL_DETAIL.CheckDate,
-                //CheckRes = C_MES_ITEM_TBL_DETAIL.CheckRes,
-                //CheckStates = C_MES_ITEM_TBL_DETAIL.CheckStates,--妫�楠屼俊鎭�
-                ReceiveOrgId = c_mes_depots.FSubsidiary,
-                DepotCode = c_mes_depots.DepotCode,
-                DepotId = Convert.ToInt64(c_depot_code)
-            }).IgnoreColumns(true).ExecuteCommand();
-
-            // 鎻掑叆涓氬姟璁板綍
-            totalResult += db.Insertable(new MesInvBusiness2
-            {
-                Guid = Guid.NewGuid(),
-                Status = 1,
-                BillTypeId = p_bill_type_id,
-                TransactionCode = p_transction_no.ToString(),
-                BusinessType = 1,
-                ItemBarcode = p_item_barcode,
-                ItemNo = c_mes_inv_item_barcodes.ItemNo,
-                LotNo = c_mes_inv_item_barcodes.LotNo,
-                EpFlag = true,
-                Quantity = c_mes_inv_item_barcodes.Quantity,
-                ToInvDepotsCode = c_mes_depots.DepotCode,
-                InvDepotId = c_depot_code,
-                ToInvDepotSectionsCode = p_section_code,
-                Description = "鐢熶骇閫�鏂�",
-                CreateBy = c_user,
-                CreateDate = DateTime.Now,
-                LastupdateBy = c_user,
-                LastupdateDate = DateTime.Now,
-                TaskNo = c_mes_inv_item_barcodes.TaskNo,
-                BillNo = c_bill_no,
-                WorkNo = c_mes_inv_item_barcodes.WorkNo,
-                WorkLine = c_mes_inv_item_barcodes.WorkLine,
-                SuppId = c_mes_inv_item_barcodes.SuppId,
-                SuppNo = c_mes_inv_item_barcodes.SuppNo,
-                ItemId = c_mes_inv_item_barcodes.ItemId
-            }).IgnoreColumns(true).ExecuteCommand();
-
-            // 鎻掑叆搴撳瓨璁板綍
-            totalResult += db.Insertable(new MesInvItemStocks
-            {
-                Guid = Guid.NewGuid(),
-                TaskNo = c_mes_inv_item_barcodes.TaskNo,
-                ItemBarcode = p_item_barcode,
-                ItemNo = c_mes_inv_item_barcodes.ItemNo,
-                LotNo = c_mes_inv_item_barcodes.LotNo,
-                Quantity = c_mes_inv_item_barcodes.Quantity,
-                //EpFlag = c_mes_inv_item_barcodes.EpFlag.Value
-                //    ? (byte)1
-                //    : (byte)0,
-                DepotId = c_mes_depots.DepotId,
-                DepotsCode = c_mes_depots.DepotCode,
-                DepotSectionsCode = p_section_code,
-                CheckDate = c_mes_inv_item_barcodes.CreateDate,
-                IndepDate = DateTime.Now,
-                BoardStyle = c_mes_inv_item_barcodes.BoardStyle,
-                WorkNo = c_mes_inv_item_barcodes.WorkNo,
-                WorkLine = c_mes_inv_item_barcodes.WorkLine,
-                SuppNo = c_mes_inv_item_barcodes.SuppNo,
-                ItemId = c_mes_inv_item_barcodes.ItemId,
-                BillNo = c_mes_inv_item_barcodes.BillNo,
-                //DepotId = Convert.ToInt32(c_depot_code),
-                OwnerId = ownerId,
-                OwnerType = owner_type,
-                StockOrgId = c_mes_depots.FSubsidiary,
-                IndepUserCode = c_user
-            }).IgnoreColumns(true).ExecuteCommand();
-
-            // 鏍规嵁閫�鏂欑被鍨�(鑹搧閫�鏂欍�佹潵鏂欎笉鑹��鏂欍�佷綔涓氫笉鑹��鏂�)鏇存柊鐩稿叧鏁版嵁
-            if (C_MES_ITEM_TBL.Tbl005 is "鑹搧閫�鏂�" or "鏉ユ枡涓嶈壇閫�鏂�")
-            {
-                // 鑹搧閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺
-                if (C_MES_ITEM_TBL.Tbl005 == "鑹搧閫�鏂�")
-                    totalResult += Db.Updateable<Womdab>()
-                        .SetColumns(it => new Womdab
-                        {
-                            Dab007 = it.Dab007 -
-                                     c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺
-                            Dab022 = (it.Dab022 ?? 0) +
-                                     c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲�
-                            LpTl = (it.LpTl ?? 0) +
-                                   (int)c_mes_inv_item_barcodes
-                                       .Quantity, // 澧炲姞鑹搧閫�鏂欐暟閲�
-                            Dab020 = (it.Dab020 ?? 0) -
-                                     c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲�
-                        })
-                        .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo
-                                     && it.Dab002 == c_mes_inv_item_barcodes
-                                         .WorkLine
-                                     && it.Dab003 == c_mes_inv_item_barcodes
-                                         .ItemId.ToString())
-                        .ExecuteCommand();
-                // 鏉ユ枡涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺
-                else if (C_MES_ITEM_TBL.Tbl005 == "鏉ユ枡涓嶈壇閫�鏂�")
-                    totalResult += Db.Updateable<Womdab>()
-                        .SetColumns(it => new Womdab
-                        {
-                            Dab007 = it.Dab007 -
-                                     c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺
-                            Dab022 = (it.Dab022 ?? 0) +
-                                     c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲�
-                            LlBl = (it.LlBl ?? 0) +
-                                   (int)c_mes_inv_item_barcodes
-                                       .Quantity, // 澧炲姞鏉ユ枡涓嶈壇鏁伴噺
-                            Dab020 = (it.Dab020 ?? 0) -
-                                     c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲�
-                        })
-                        .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo
-                                     && it.Dab002 == c_mes_inv_item_barcodes
-                                         .WorkLine
-                                     && it.Dab003 == c_mes_inv_item_barcodes
-                                         .ItemId.ToString())
-                        .ExecuteCommand();
-
-                // 鏇存柊閫�鏂欏崟鏄庣粏琛ㄥ凡閫�鏁伴噺
-                totalResult += Db.Updateable<MesItemTblDetail>()
-                    .SetColumns(it => new MesItemTblDetail
-                    {
-                        Tld006 = (it.Tld006 ?? 0) +
-                                 (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺
-                    })
-                    .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id &&
-                                 it.Tlid == c_mes_inv_item_barcodes.AboutGuid)
-                    .ExecuteCommand();
-            }
-            // 浣滀笟涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛ㄥ拰閫�鏂欏崟鏄庣粏琛�
-            else if (C_MES_ITEM_TBL.Tbl005 == "浣滀笟涓嶈壇閫�鏂�")
-            {
-                totalResult += Db.Updateable<Womdab>()
-                    .SetColumns(it => new Womdab
-                    {
-                        Dab022 = (it.Dab022 ?? 0) +
-                                 c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲�
-                        ZyBl = (it.ZyBl ?? 0) +
-                               (int)c_mes_inv_item_barcodes
-                                   .Quantity, // 澧炲姞浣滀笟涓嶈壇鏁伴噺
-                        Dab020 = (it.Dab020 ?? 0) -
-                                 c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲�
-                    })
-                    .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo
-                                 && it.Dab002 ==
-                                 c_mes_inv_item_barcodes.WorkLine
-                                 && it.Dab003 == c_mes_inv_item_barcodes.ItemId
-                                     .ToString())
-                    .ExecuteCommand();
-
-                // 鏇存柊閫�鏂欏崟鏄庣粏琛ㄥ凡閫�鏁伴噺
-                totalResult += Db.Updateable<MesItemTblDetail>()
-                    .SetColumns(it => new MesItemTblDetail
-                    {
-                        Tld006 = (it.Tld006 ?? 0) +
-                                 (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺
-                    })
-                    .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id &&
-                                 it.Tlid == c_mes_inv_item_barcodes.AboutGuid)
-                    .ExecuteCommand();
-            }
-
-            // 濡傛灉寰呴��鏁伴噺绛変簬鏈閫�鏂欐暟閲忥紝鍒欐洿鏂版槑缁嗗畬鎴愮姸鎬�
-            if ((C_MES_ITEM_TBL_DETAIL.Tld005 ?? 0) -
-                (C_MES_ITEM_TBL_DETAIL.Tld006 ?? 0) ==
-                c_mes_inv_item_barcodes.Quantity)
-                totalResult += Db.Updateable<MesItemTblDetail>()
-                    .SetColumns(it => new MesItemTblDetail
-                    { Tld008 = 1 }) // 璁剧疆瀹屾垚鏍囧織
-                    .Where(it => it.Tlid == C_MES_ITEM_TBL_DETAIL.Tlid)
-                    .ExecuteCommand();
-
-            // 妫�鏌ラ��鏂欏崟鏄惁鎵�鏈夋槑缁嗛兘宸插畬鎴�
-            var remainingCount = Db.Queryable<MesItemTbl, MesItemTblDetail>(
-                    (a, b) =>
-                        new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid))
-                .Where((a, b) =>
-                    a.BillNo == p_bill_no &&
-                    (b.Tld005 ?? 0) - (b.Tld006 ?? 0) > 0)
-                .Count();
-
-            // 濡傛灉鎵�鏈夋槑缁嗛兘宸插畬鎴愶紝鍒欐洿鏂伴��鏂欏崟鐘舵�佷负宸插畬鎴�
-            if (remainingCount < 1)
-                totalResult += Db.Updateable<MesItemTbl>()
-                    .SetColumns(it => it.Tbl020 == 1) // 璁剧疆瀹屾垚鏍囧織
-                    .Where(it => it.BillNo == p_bill_no)
-                    .ExecuteCommand();
-
-            // 妫�鏌ュ繀瑕佺殑鎻掑叆鎿嶄綔鏄惁閮芥垚鍔熸墽琛�
-            var minimumExpectedOperations = 3; // 鑷冲皯闇�瑕佹墽琛岀殑鎻掑叆鎿嶄綔鏁�
-            if (totalResult < minimumExpectedOperations)
-                throw new Exception(
-                    $"鍏抽敭鏁版嵁鎻掑叆澶辫触锛岄鏈熻嚦灏憑minimumExpectedOperations}涓搷浣滐紝瀹為檯鎵ц{totalResult}涓搷浣�");
-
-            // 鍒涘缓 鎻掑叆鏃ュ織
-            var logService = new LogService();
-            var LogMsg = "[PDA]鐢熶骇閫�鏂欍�傛潯鐮併��" + query.barcode + "銆� 閫�鏂欏崟鍙枫��" + c_bill_no + "銆�";
-            logService.CreateLog(db, query.userName, tbWOMDAA.Guid.ToString(), "WOMDAA", LogMsg, tbWOMDAA.Daa001);
-
-            return totalResult;
-        });
-
-        query.itemNo = c_mes_inv_item_barcodes.ItemNo;
-        query.Num = c_quantity.Value;
-        return query;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3