From df1e1fca9bc95c58463a1f709e95261077a7f249 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期六, 15 二月 2025 14:27:20 +0800 Subject: [PATCH] 1.其他入库单逻辑验证优化 2.采购入库优化 --- service/Warehouse/MesItemQtrkManager.cs | 62 +++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 15 deletions(-) diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs index 8c75e6d..f91fcf3 100644 --- a/service/Warehouse/MesItemQtrkManager.cs +++ b/service/Warehouse/MesItemQtrkManager.cs @@ -3,6 +3,7 @@ using NewPdaSqlServer.entity; using NewPdaSqlServer.util; using SqlSugar; +using System.Text.RegularExpressions; namespace NewPdaSqlServer.service.Warehouse; @@ -56,34 +57,34 @@ public string ScanInDepotsQT(WarehouseQuery query) { - var sectionCode = query.sectionCode; + var sectionCode = query.sectionCode; var billNo = query.billNo; // 1. 楠岃瘉搴撲綅鏉$爜鏄惁涓虹┖ if (string.IsNullOrEmpty(sectionCode)) throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); // 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮� - var depotCode = Db.Queryable<MesDepotSections, MesDepots>( + var depotId = Db.Queryable<MesDepotSections, MesDepots>( (a, b) => new JoinQueryInfos( JoinType.Inner, a.DepotGuid == b.Guid)) .Where((a, b) => a.DepotSectionCode == sectionCode) - .Select((a, b) => b.DepotCode) + .Select((a, b) => b.DepotId) .First(); - if (depotCode == null) + if (depotId == null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); // 3. 鏌ヨ鐢宠鍗曞搴旂殑浠撳簱 var qtrk = Db.Queryable<MesItemQtrk>() .Where(x => x.Qtck == billNo) - .Select(x => x.Qt011) + .Select(x => x.Qt008) .First(); if (qtrk == null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); // 4. 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱 - if (depotCode != qtrk) - throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇锋浠撳簱!"); + if (depotId != Convert.ToInt32(qtrk)) + throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇蜂粨搴�!"); // 5. 杩斿洖鎴愬姛淇℃伅 return $"浠撳簱锛歿qtrk} 搴撲綅锛歿sectionCode}"; @@ -118,6 +119,13 @@ var c_depot_code = depotInfo.DepotCode; var c_depot_id = depotInfo.DepotId; + var mesDepost = Db.Queryable<MesDepots>() + .Where(s => s.DepotId == c_depot_id).First(); + + + + + // 3. 楠岃瘉鏉$爜鏄惁宸插叆搴� var existsInStock = Db.Queryable<MesInvItemInCDetails>() .Any(x => x.ItemBarcode == p_item_barcode); @@ -147,6 +155,10 @@ if (qtrk == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�"); + // 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱 + if (c_depot_id != Convert.ToInt32(qtrk.Qt008)) + throw new Exception($"鎵爜搴撲綅 {p_section_code} 涓嶅睘浜庣敵璇蜂粨搴�!"); + // 6. 鏌ヨ鐢宠鍗曟槑缁� var detail = Db.Queryable<MesItemQtrrDetail>() .Where(x => @@ -163,7 +175,23 @@ var details = new List<MesItemQtrrDetail>(); - // 8. 鎵ц鍏ュ簱浜嬪姟 + string pattern = @"\(([^)]+)\)"; + Match match = Regex.Match(qtrk.Qt023, pattern); + var owner_type = ""; + + // 8.鑾峰彇璐т富绫诲瀷 + if (match.Success) + { + owner_type = match.Groups[1].Value; + } + else + { + throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曡揣涓荤被鍨嬫湁璇�,璇锋牳瀵癸紒"); + } + + + + // 10. 鎵ц鍏ュ簱浜嬪姟 UseTransaction(db => { var res = 0; @@ -186,7 +214,7 @@ if (existingInv == null) { newId = Guid.NewGuid(); - billNo = BillNo.GetBillNo("QTRK(鍏朵粬鍏ュ簱鍗�)"); + billNo = BillNo.GetBillNo("QTRK(鍏朵粬鍏ュ簱)"); barcode.UrgentFlag ??= false; @@ -204,13 +232,14 @@ LastupdateBy = c_user, LastupdateDate = DateTime.Now, UrgentFlag = barcode.UrgentFlag.Value ? "1" : "0", - CbillNo = p_bill_no, + //CbillNo = p_bill_no, Fstatus = 0, Status = 0, Reason = qtrk.Qt010, TaskNo = p_bill_no, DepotsId = Convert.ToInt64(c_depot_id) , - InType = "鍏朵粬鍏ュ簱" + InType = "鍏朵粬鍏ュ簱", + ReceiveOrgId = qtrk.Qt022 }).IgnoreColumns(true).ExecuteCommand(); } @@ -263,9 +292,8 @@ .SetColumns( x => x.Quantity == x.Quantity + barcode.Quantity) .Where(x => x.ItemInId == newId - && x.ItemId == barcode.ItemId - && x.WorkNo == barcode.WorkNo - && x.WorkLine == barcode.WorkLine) + && x.ItemId == barcode.ItemId + && x.DepotId == c_depot_id.ToString()) .ExecuteCommand(); @@ -370,7 +398,11 @@ EbelnK3id = barcode.EbelnK3id, LineK3id = barcode.LineK3id, ItemId = barcode.ItemId, - BillNo = barcode.BillNo + BillNo = barcode.BillNo, + OwnerId = qtrk.Qt024, + OwnerType = owner_type, + StockOrgId = qtrk.Qt022, + IndepUserCode = c_user // SalesOrder = barcode.SalesOrder, // IsZy = barcode.IsZy, // Visable = 0, -- Gitblit v1.9.3