From 99b5d3d7c950a8332f81d3ca07be9f2d5957f58c Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期六, 29 三月 2025 16:26:44 +0800 Subject: [PATCH] 1.期初入库优化 --- service/base/WmsBaseMangeer.cs | 39 ++++++++++++- service/Warehouse/MesBarCFManager.cs | 15 +++- service/Warehouse/InventoryManager.cs | 54 ++++++++++++------ Controllers/base/WmsBaseController.cs | 40 +++++++++++++ 4 files changed, 123 insertions(+), 25 deletions(-) diff --git a/Controllers/base/WmsBaseController.cs b/Controllers/base/WmsBaseController.cs new file mode 100644 index 0000000..2321d60 --- /dev/null +++ b/Controllers/base/WmsBaseController.cs @@ -0,0 +1,40 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.service.@base; +using NewPdaSqlServer.service.Warehouse; +using NewPdaSqlServer.util; + +namespace NewPdaSqlServer.Controllers.@base; + +[ApiController] +[Route("api/[controller]")] +public class WmsBaseController : ControllerBase +{ + private readonly WmsBaseMangeer m = new(); + + /// <summary> + /// 鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭� + /// </summary> + /// <returns></returns> + [HttpPost("GetBarInfo")] + public ResponseResult GetBarInfo(WarehouseQuery unity) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.GetBarInfo(unity); + resultInfos.tbMesItems = m.GetItemNo(resultInfos.tbBillList.ItemId); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } +} \ No newline at end of file diff --git a/service/Warehouse/InventoryManager.cs b/service/Warehouse/InventoryManager.cs index c3ccba8..7268bfc 100644 --- a/service/Warehouse/InventoryManager.cs +++ b/service/Warehouse/InventoryManager.cs @@ -1,6 +1,7 @@ 锘縰sing NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.@base; using NewPdaSqlServer.util; using SqlSugar; @@ -47,8 +48,8 @@ var p_transction_no = 601; // 妫�鏌ュ簱浣嶄唬鐮佹槸鍚︿负绌� - if (string.IsNullOrEmpty(p_section_code)) - throw new Exception("002[璇锋壂搴撲綅鏉$爜锛�"); + // if (string.IsNullOrEmpty(p_section_code)) + // throw new Exception("002[璇锋壂搴撲綅鏉$爜锛�"); // 鏌ヨ搴撳尯搴撲綅淇℃伅 var depotSection = Db.Queryable<MesDepotSections, MesDepots>((a, b) => @@ -61,36 +62,52 @@ .Single(); // 濡傛灉搴撲綅浠g爜涓嶅瓨鍦紝鍒欒繑鍥為敊璇俊鎭� - if (depotSection == null) - throw new Exception("搴撲綅缂栫爜 " + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); + // if (depotSection == 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) - .Count(); + // 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) + // .Count(); - if (c_num > 0) throw new Exception("002[鏉$爜閲嶅鎵弿锛岃鏍稿锛�"); + // if (c_num > 0) throw new Exception("002[鏉$爜閲嶅鎵弿锛岃鏍稿锛�"); // 鏌ヨ鏉$爜淇℃伅 - c_num = Db.Queryable<MesInvItemStocks>() - .Where(t => t.ItemBarcode == p_item_barcode) - .Count(); + // c_num = Db.Queryable<MesInvItemStocks>() + // .Where(t => t.ItemBarcode == p_item_barcode) + // .Count(); - if (c_num > 0) throw new Exception("002[鏉$爜宸插湪搴撳瓨涓紝璇锋牳瀵癸紒"); + // if (c_num > 0) throw new Exception("002[鏉$爜宸插湪搴撳瓨涓紝璇锋牳瀵癸紒"); // 鏌ヨ鏉$爜璇︾粏淇℃伅 var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>() .Where(t => t.ItemBarcode == p_item_barcode) .Single(); - if (c_mes_inv_item_barcodes == null) - throw new Exception("002[鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒"); + // if (c_mes_inv_item_barcodes == null) + // throw new Exception("002[鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒"); - if (c_mes_inv_item_barcodes.ComeFlg != 0) + if (c_mes_inv_item_barcodes.Memo != "鏈熷垵") throw new Exception("002[鏉$爜涓嶆槸鏈熷垵鏉$爜锛屾棤娉曠敤鏈熷垵鍏ュ簱锛�"); + + var wmsManager = new WmsBaseMangeer(); + // 鏂板鍏ュ簱鏍¢獙锛堣皟鐢ㄥ瓨鍌ㄨ繃绋嬶級 + var checkResult = wmsManager.pdaInvJY( + db: Db, + edtUserNo: query.userName, + barcode: p_item_barcode, + sectionCode: p_section_code, + stockId: depotSection.DepotId.ToString(), + stockOrgId: depotSection.FSubsidiary, + billNo: "", // 鏍规嵁瀹為檯鍗曟嵁鍙蜂紶鍊� + transactionNo: "601" // 浜嬪姟绫诲瀷涓庡瓨鍌ㄨ繃绋嬪尮閰� + ); + + if (checkResult.result < "1") + throw new Exception($"鍏ュ簱鏍¢獙澶辫触锛歿checkResult.strMsg}"); UseTransaction(db => { @@ -135,6 +152,7 @@ CbillNo = c_mes_inv_item_barcodes.BillNo, Fstatus = 0, ReceiveOrgId = depotSection.FSubsidiary, + InType = "鏈熷垵鍏ュ簱", }; db.Insertable(newMesInvItemIns) .IgnoreColumns(true) diff --git a/service/Warehouse/MesBarCFManager.cs b/service/Warehouse/MesBarCFManager.cs index 5929a7a..ac3e4de 100644 --- a/service/Warehouse/MesBarCFManager.cs +++ b/service/Warehouse/MesBarCFManager.cs @@ -1,6 +1,7 @@ 锘縰sing System.Data; using System.Data.SqlClient; using Masuit.Tools; +using Masuit.Tools.Hardware; using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; @@ -13,16 +14,22 @@ { public MesInvItemStocks GetBarInfo(WarehouseQuery unity) { - return Db.Queryable<MesInvItemStocks>() + var barInfo = Db.Queryable<MesInvItemStocks>() .Where(s => s.ItemBarcode == unity.barcode) - .First(); // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null + .First(); + if (barInfo is null) throw new Exception("璇ユ潯鐮佸簱瀛樹笉瀛樺湪锛�"); + + return barInfo; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null } public MesItems GetItemNo(decimal strItemId) { - return Db.Queryable<MesItems>() - .Where(s => s.Id == strItemId) + var itemInfo = Db.Queryable<MesItems>() + .Where(s => s.Id == strItemId && s.Fforbidstatus == "A") .First(); + if (itemInfo is null) throw new Exception("璇ユ潯鐮佸搴旂墿鏂欎俊鎭笉瀛樺湪鎴栧凡绂佺敤锛�"); + + return itemInfo; } public string BarCF(WarehouseQuery unity) diff --git a/service/base/PdaJyMangeer.cs b/service/base/WmsBaseMangeer.cs similarity index 71% rename from service/base/PdaJyMangeer.cs rename to service/base/WmsBaseMangeer.cs index e0f07eb..f36b0e0 100644 --- a/service/base/PdaJyMangeer.cs +++ b/service/base/WmsBaseMangeer.cs @@ -1,4 +1,4 @@ -锘縩amespace NewPdaSqlServer.util +锘縩amespace NewPdaSqlServer.service.@base { using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; @@ -9,9 +9,10 @@ using NewPdaSqlServer.DB; using System.Data; using System.Data.SqlClient; + using Microsoft.EntityFrameworkCore.Metadata.Internal; - public class PdaJyMangeer + public class WmsBaseMangeer : Repository<dynamic> { /// <summary> @@ -26,7 +27,7 @@ /// <param name="billNo">鐢宠鍗曞彿</param> /// <param name="transactionNo">浜嬪姟绫诲瀷</param> /// <returns>鍖呭惈鏍¢獙缁撴灉鐨勬暟鎹紶杈撳璞�</returns> - public ProductionPickDto SalesReturnCheck(SqlSugarScope db, string edtUserNo, + public dynamic pdaInvJY(SqlSugarScope db, string edtUserNo, string barcode, string sectionCode, string stockId, string stockOrgId, string billNo, string transactionNo) { @@ -80,5 +81,37 @@ } } } + + /// <summary> + /// 鑾峰彇鏉$爜淇℃伅 + /// </summary> + /// <param name="unity"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public MesInvItemBarcodes GetBarInfo(WarehouseQuery unity) + { + var barInfo = Db.Queryable<MesInvItemBarcodes>() + .Where(s => s.ItemBarcode == unity.barcode) + .First(); + if (barInfo is null) throw new Exception("璇ユ潯鐮佸簱瀛樹笉瀛樺湪锛�"); + + return barInfo; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null + } + + /// <summary> + /// 鑾峰彇鐗╂枡淇℃伅 + /// </summary> + /// <param name="strItemId"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public MesItems GetItemNo(decimal strItemId) + { + var itemInfo = Db.Queryable<MesItems>() + .Where(s => s.Id == strItemId && s.Fforbidstatus == "A") + .First(); + if (itemInfo is null) throw new Exception("璇ユ潯鐮佸搴旂墿鏂欎俊鎭笉瀛樺湪鎴栧凡绂佺敤锛�"); + + return itemInfo; + } } } \ No newline at end of file -- Gitblit v1.9.3