From 6c4d7a01e69e24615e13c331865ae4d2c7d15364 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期三, 19 二月 2025 08:23:58 +0800 Subject: [PATCH] 1.补料单优化 2.工单优化 --- service/Wom/WomdaaManager.cs | 3 service/Warehouse/MesItemBlManager.cs | 162 +++++++++++++++++++++++++++------------- entity/MesInvItemOuts.cs | 7 + Controllers/Warehouse/MesItemBlController.cs | 9 ++ 4 files changed, 126 insertions(+), 55 deletions(-) diff --git a/Controllers/Warehouse/MesItemBlController.cs b/Controllers/Warehouse/MesItemBlController.cs index e0972b8..2800b1f 100644 --- a/Controllers/Warehouse/MesItemBlController.cs +++ b/Controllers/Warehouse/MesItemBlController.cs @@ -306,6 +306,15 @@ var (success, pendingList) = _manager.ScblScanBarcode(query); resultInfos.success = success; resultInfos.pendingList = pendingList; + if(success.status == 2) + { + return new ResponseResult + { + status = Convert.ToInt32(success.status), + message = success.message, + data = resultInfos.success + }; + } return new ResponseResult { status = 0, diff --git a/entity/MesInvItemOuts.cs b/entity/MesInvItemOuts.cs index 89aec87..01b7fe6 100644 --- a/entity/MesInvItemOuts.cs +++ b/entity/MesInvItemOuts.cs @@ -26,7 +26,7 @@ public string? ItemOutNo { get; set; } /// <summary> - /// 鐢熶骇璁㈠崟 + /// 鍑哄簱鍗曞搴旂殑鐢宠鍗曞彿锛堥噰璐叆搴擄細鍒拌揣鍗曪紝鐢熶骇鍏ュ簱锛氭寚浠ゅ伐鍗�-1锛� /// </summary> [SugarColumn(ColumnName = "task_no")] public string? TaskNo { get; set; } @@ -314,6 +314,11 @@ [SugarColumn(ColumnName = "depot_id")] public int? DepotId { get; set; } + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "TH_ORG_ID")] + public string? THORGID { get; set; } + [SugarColumn(IsIgnore = true)] public string? DepotName { get; set; } [SugarColumn(IsIgnore = true)] public string? SuppName { get; set; } diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs index a80a2a2..ab11663 100644 --- a/service/Warehouse/MesItemBlManager.cs +++ b/service/Warehouse/MesItemBlManager.cs @@ -1,4 +1,5 @@ -锘縰sing NewPdaSqlServer.DB; +锘縰sing Masuit.Tools; +using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; @@ -39,11 +40,11 @@ // 妫�鏌ヨˉ鏂欏崟鏄惁瀛樺湪涓斾负鐢熶骇琛ユ枡绫诲瀷 var mesItemBl = Db.Queryable<MesItemBl>() - .Where(a => a.BlNo == query.billNo && a.Bl008 == query.Type) + .Where(a => a.BlNo == query.billNo && a.Bl008 == query.Type && a.Bl018 == true) .First(); if (mesItemBl == null) - throw new Exception("鍗曟嵁鍙蜂笉姝g‘锛�"); + throw new Exception("鍗曟嵁鍙蜂笉瀛樺湪鎴栨湭瀹℃牳锛�"); if (mesItemBl.Bl019 == true) throw new Exception("鍗曟嵁鍙峰凡瀹屾垚锛�"); @@ -84,8 +85,8 @@ ScblScanBarcode( WarehouseQuery query) { - if (string.IsNullOrEmpty(query.billNo)) - throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + //if (string.IsNullOrEmpty(query.billNo)) + // throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); if (string.IsNullOrEmpty(query.barcode)) throw new Exception("璇锋壂鎻忔潯鐮侊紒"); @@ -112,6 +113,10 @@ if (stockBarcode == null) throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮�,璇锋牳瀵癸紒{query.barcode}"); + + var depots = Db.Queryable<MesDepots>() + .Where(t => t.DepotId == stockBarcode.DepotId) + .First(); // 妫�鏌ヨˉ鏂欏崟鐘舵�� var mesItemBl = Db.Queryable<MesItemBl>() @@ -140,6 +145,16 @@ var quantity = (blDetail.Bld007 ?? 0) - (blDetail.Bld008 ?? 0); if (quantity == 0) throw new Exception("鐗╂枡宸叉壂鐮佸畬鎴愶紝璇锋牳瀵癸紒"); + + + if(stockBarcode.Quantity > quantity) + { + query.status = 2; + query.message = "鏉$爜搴撳瓨澶т簬闇�棰嗭紝璇锋媶鍒嗭紒"; + query.CfNum = quantity; + query.Num = stockBarcode.Quantity; + return (query, []); + } // 妫�鏌ュ伐鍗曚俊鎭� var womdaa = Db.Queryable<Womdaa>() @@ -188,18 +203,18 @@ var outNoType = ""; if(query.Type == "鐢熶骇琛ユ枡") { - outNoType = "BL(宸ュ崟琛ユ枡)"; + outNoType = "SCBL(鐢熶骇琛ユ枡)"; }else { - outNoType = "CL(宸ュ崟瓒呴)"; + outNoType = "SCCL(鐢熶骇瓒呴)"; } // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 var outId = Guid.NewGuid(); 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 @@ -227,7 +242,7 @@ BillTypeId = 200, TransactionNo = 209, Remark = mesItemBl.Bl007, - DepotCode = womdab.Dab017, + DepotCode = depots.DepotCode, OutPart = womdaa.Daa013, OutType = query.Type, FType = 0, @@ -238,7 +253,9 @@ PbillNo = womdaa.Daa001, OutDate = DateTime.Now, Status = 0, - BbillNo = query.billNo + DepotId = stockBarcode.DepotId, + THORGID = stockBarcode.StockOrgId, + //BbillNo = query.billNo }).IgnoreColumns(true).ExecuteCommand(); } @@ -271,7 +288,7 @@ LastupdateDate = DateTime.Now, Factory = stockBarcode.Factory, Company = stockBarcode.Company, - DepotCode = womdab.Dab017, + DepotCode = depots.DepotCode, TaskNo = query.blNo, WorkNo = womdaa.Daa021, WorkLine = blDetail.Bld013, @@ -281,6 +298,7 @@ PbillNo = query.billNo, ItemId = blDetail.Bld012, DepotId = stockBarcode.DepotsId.ToString(), + ItemDabid = womdab.Guid, // Unit = blDetail.Bld009, // DepotId = (int)stockBarcode.DepotsId }).IgnoreColumns(true).ExecuteCommand(); @@ -299,7 +317,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, @@ -324,7 +342,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, @@ -455,7 +473,7 @@ if (string.IsNullOrEmpty(query.barcode)) throw new Exception("璇锋壂鎻忔潯鐮侊紒"); - if (query.Num <= 0) + if ((query.Num ?? 0) <= 0) throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�"); if (string.IsNullOrEmpty(query.blNo)) @@ -481,6 +499,16 @@ var totalQty = stockBarcode.Quantity; string newBarcode = null; + var outNoType = ""; + if (query.Type == "鐢熶骇琛ユ枡") + { + outNoType = "SCBL(鐢熶骇琛ユ枡)"; + } + else + { + outNoType = "SCCL(鐢熶骇瓒呴)"; + } + // 寮�鍚簨鍔″鐞� var success = UseTransaction(db => { @@ -493,7 +521,7 @@ .Where(s => s.Id == stockBarcode.ItemId).First(); // 鐢熸垚鏂版潯鐮佸彿 - newBarcode = BillNo.GetBillNo("TMBH(鏉$爜缂栧彿)", mesItems.ItemNo); + newBarcode = BillNo.GetBillNo("TM(鏉$爜)", mesItems.ItemNo); // 鍐欏叆鏂版潯鐮� executeCommand += db.Insertable(new MesInvItemBarcodes @@ -540,24 +568,30 @@ // 鏇存柊鍘熸潯鐮佹暟閲� executeCommand += db.Updateable<MesInvItemBarcodes>() - .SetColumns(it => it.Quantity == totalQty - query.Num) + .SetColumns(it => it.Quantity == it.Quantity - query.Num) .Where(it => it.ItemBarcode == query.barcode) .ExecuteCommand(); - // 鍒犻櫎鍘熸潯鐮佸簱瀛樿褰� - executeCommand += db.Deleteable<MesInvItemStocks>() + // 鏇存柊鍘熸潯鐮佹暟閲� + executeCommand += db.Updateable<MesInvItemStocks>() + .SetColumns(it => it.Quantity == it.Quantity - query.Num) .Where(it => it.ItemBarcode == query.barcode) .ExecuteCommand(); + + //// 鍒犻櫎鍘熸潯鐮佸簱瀛樿褰� + //executeCommand += db.Deleteable<MesInvItemStocks>() + // .Where(it => it.ItemBarcode == query.barcode) + // .ExecuteCommand(); // 鎻掑叆鍓╀綑鏉$爜鏁伴噺鐨勬柊搴撳瓨璁板綍 executeCommand += db.Insertable(new MesInvItemStocks { Guid = Guid.NewGuid(), TaskNo = stockBarcode.TaskNo, - ItemBarcode = stockBarcode.ItemBarcode, + ItemBarcode = newBarcode, ItemNo = stockBarcode.ItemNo, LotNo = stockBarcode.LotNo, - Quantity = totalQty - query.Num, + Quantity = query.Num, EpFlag = stockBarcode.EpFlag, CustomerNo = stockBarcode.CustomerNo, ItemWt = stockBarcode.ItemWt, @@ -585,7 +619,7 @@ Status = 1, BillTypeId = 200, // p_bill_type_id TransactionCode = "209", // p_transaction_no - BusinessType = -1, + BusinessType = 0, ItemBarcode = newBarcode, ItemNo = stockBarcode.ItemNo, LotNo = stockBarcode.LotNo, @@ -595,7 +629,7 @@ FromInvDepotSectionsCode = null, ToInvDepotsCode = stockBarcode.DepotsCode, ToInvDepotSectionsCode = stockBarcode.DepotSectionsCode, - Description = null, + Description = query.Type + "鎷嗗垎鐢熸垚", CreateBy = query.userName, CreateDate = DateTime.Now, LastupdateBy = query.userName, @@ -617,11 +651,11 @@ throw new Exception("鍙戞枡鏁伴噺澶т簬鏉$爜鏁�,璇锋牳瀵癸紒"); } - if (string.IsNullOrEmpty(newBarcode)) newBarcode = query.barcode; + //if (string.IsNullOrEmpty(newBarcode)) newBarcode = query.barcode; // 妫�鏌ヨˉ鏂欏崟鐘舵�� var mesItemBl = Db.Queryable<MesItemBl>() - .Where(a => a.BlNo == query.blNo && (a.Bl018 ?? false) == false) + .Where(a => a.BlNo == query.blNo && (a.Bl018 ?? false) == true) .First(); if (mesItemBl == null) @@ -672,14 +706,19 @@ it.TaskNo == query.blNo && it.ItemId == stockBarcode.ItemId) .Sum(it => it.Quantity); - if (sumQty > remainingQty) - throw new Exception( - $"鎷嗗垎鏁伴噺锛歿sumQty} 澶т簬寰呭彂鏂欐暟閲忥細{remainingQty}锛岃鏍稿锛�"); + //if (sumQty > remainingQty) + // throw new Exception( + // $"鎷嗗垎鏁伴噺锛歿sumQty} 澶т簬寰呭彂鏂欐暟閲忥細{remainingQty}锛岃鏍稿锛�"); + + + var depots = Db.Queryable<MesDepots>() + .Where(t => t.DepotId == stockBarcode.DepotId) + .First(); // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 var itemOut = 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 @@ -687,11 +726,13 @@ && a.Status == 0) .First(); + var outId = new Guid(); + var outNo = ""; if (itemOut == null) { // 鍒涘缓鏂扮殑鍑哄簱鍗� - var outId = Guid.NewGuid(); - var outNo = BillNo.GetBillNo("BL(宸ュ崟琛ユ枡)"); + outId = Guid.NewGuid(); + outNo = BillNo.GetBillNo(outNoType); // 鎻掑叆鍑哄簱鍗曚富琛� executeCommand += db.Insertable(new MesInvItemOuts @@ -706,7 +747,7 @@ BillTypeId = 200, TransactionNo = 209, Remark = mesItemBl.Bl007, - DepotCode = womdab.Dab017, + DepotCode = depots.DepotCode, OutPart = womdaa.Daa013, FType = 0, Factory = stockBarcode.Factory, @@ -716,15 +757,24 @@ PbillNo = womdaa.Daa001, OutDate = DateTime.Now, Status = 0, - BbillNo = query.blNo + DepotId = stockBarcode.DepotId, + THORGID = stockBarcode.StockOrgId, + OutType = query.Type, + //BbillNo = query.blNo }).IgnoreColumns(true).ExecuteCommand(); + } + else + { + outId = itemOut.Guid; + outNo = itemOut.ItemOutNo; } // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鍗曟槑缁� var itemOutItemCount = db.Queryable<MesInvItemOutItems>() .Where(it => - it.ItemOutId == itemOut.Guid && - it.ItemId == stockBarcode.ItemId) + it.ItemOutId == outId && + it.ItemId == stockBarcode.ItemId && + it.DepotId == stockBarcode.DepotId.ToString()) .Count(); if (itemOutItemCount == 0) @@ -732,16 +782,17 @@ executeCommand += db.Insertable(new MesInvItemOutItems { Guid = Guid.NewGuid(), - ItemOutId = itemOut.Guid, + ItemOutId = outId, ItemNo = blDetail.Bld002, Quantity = query.Num, + TlQty = query.Num, 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 = womdaa.Daa021, WorkLine = blDetail.Bld013, @@ -749,24 +800,27 @@ ErpId = womdab.Eid, ErpAutoid = womdab.Erpid, PbillNo = query.billNo, - ItemId = blDetail.Bld012 + ItemId = blDetail.Bld012, + DepotId = stockBarcode.DepotId.ToString(), + ItemDabid = womdab.Guid, // Unit = blDetail.Bld009, // DepotId = (int)stockBarcode.DepotsId }).IgnoreColumns(true).ExecuteCommand(); else // 鏇存柊宸叉湁鍑哄簱鍗曟槑缁嗘暟閲� executeCommand += db.Updateable<MesInvItemOutItems>() - .SetColumns(it => it.Quantity == it.Quantity + query.Num) + .SetColumns(it => it.TlQty == (it.TlQty ?? 0) + query.Num) .Where(it => - it.ItemOutId == itemOut.Guid && - it.ItemId == stockBarcode.ItemId) + it.ItemOutId == outId && + it.ItemId == stockBarcode.ItemId && + it.DepotId == stockBarcode.DepotId.ToString()) .ExecuteCommand(); // 鎻掑叆鍑哄簱鏉$爜鏄庣粏 executeCommand += db.Insertable(new MesInvItemOutCDetails { Guid = Guid.NewGuid(), - ItemOutId = itemOut.Guid, + ItemOutId = outId, ItemBarcode = newBarcode ?? query.barcode, ItemNo = stockBarcode.ItemNo, LotNo = stockBarcode.LotNo, @@ -776,7 +830,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, @@ -790,7 +844,8 @@ PbillNo = query.billNo, ItemId = blDetail.Bld012, Unit = blDetail.Bld009, - DepotId = (int)stockBarcode.DepotsId + DepotId = (int)stockBarcode.DepotsId, + Dabid = womdab.Guid, }).IgnoreColumns(true).ExecuteCommand(); // 鎻掑叆涓氬姟娴佹按 @@ -799,7 +854,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 = newBarcode ?? query.barcode, ItemNo = stockBarcode.ItemNo, @@ -808,7 +863,7 @@ Quantity = query.Num, FromInvDepotsCode = stockBarcode.DepotsCode, FromInvDepotSectionsCode = stockBarcode.DepotSectionsCode, - Description = null, + Description = query.Type, CreateBy = query.userName, CreateDate = DateTime.Now, LastupdateBy = query.userName, @@ -833,7 +888,6 @@ Dab021 = (it.Dab021 ?? 0) + query.Num // 宸插彂鏂欐暟閲� }) .Where(it => it.Id == womdab.Id && it.Dab003 == womdab.Dab003) - .IgnoreColumns(true) .ExecuteCommand(); // 鏇存柊琛ユ枡鍗曟槑缁嗗凡琛ユ暟閲� @@ -1112,8 +1166,8 @@ var outId = Guid.Empty; var outNo = ""; var outRecord = 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 == DateTime.Now.Date && a.BillTypeId == 200 && a.TransactionNo == 210 @@ -1142,7 +1196,7 @@ OutPart = womdaa.Daa013, FType = 0, WorkNo = womdaa.Daa021, - OutType = "鐢熶骇瓒呴鍗�", + OutType = query.Type, BoardItem = womdaa.Daa002, PbillNo = womdaa.Daa001, OutDate = DateTime.Now, @@ -1182,7 +1236,8 @@ ErpId = womdab.Eid, ErpAutoid = womdab.Erpid, PbillNo = query.billNo, - ItemId = blDetail.Bld012 + ItemId = blDetail.Bld012, + DepotId = stockBarcode.DepotId.ToString(), // Unit = blDetail.Bld009, // DepotId = stockBarcode.DepotsId }).IgnoreColumns(true).ExecuteCommand(); @@ -1221,7 +1276,8 @@ PbillNo = query.billNo, ItemId = blDetail.Bld012, Unit = blDetail.Bld009, - DepotId = (int)stockBarcode.DepotsId + DepotId = (int)stockBarcode.DepotsId, + Dabid = womdab.Guid, }).IgnoreColumns(true).ExecuteCommand(); // 鎻掑叆涓氬姟娴佹按 diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs index b14e0c2..8973826 100644 --- a/service/Wom/WomdaaManager.cs +++ b/service/Wom/WomdaaManager.cs @@ -163,7 +163,8 @@ var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) => new JoinQueryInfos(JoinType.Left, a.Daa002 == i.ItemId.ToString())) - .Where((a, i) => a.Daa001 == query.daa001) + .Where((a, i) => a.Daa001 == query.daa001 + && a.Fstatus == 1) .Select((a, i) => new { a.Daa001, a.CaaGuid -- Gitblit v1.9.3