From 00a72fff219241eb5b0405a066cc859d07cf7735 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期三, 17 九月 2025 10:23:44 +0800 Subject: [PATCH] 1111 --- service/Wom/WwGdManager.cs | 268 ++++++++++++++++++++++++++++------------------------- 1 files changed, 141 insertions(+), 127 deletions(-) diff --git a/service/Wom/WwGdManager.cs b/service/Wom/WwGdManager.cs index acf49f6..34953f2 100644 --- a/service/Wom/WwGdManager.cs +++ b/service/Wom/WwGdManager.cs @@ -1,11 +1,14 @@ -锘縰sing System.Data; -using System.Data.SqlClient; -using Masuit.Tools; +锘縰sing Masuit.Tools; using 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 System.Threading.Tasks.Dataflow; +using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL; namespace NewPdaSqlServer.service.Wom; @@ -137,86 +140,110 @@ } } - public ProductionPickDto GetItemsByDaa001(WarehouseQuery query) + + /// <summary> + /// 鑾峰彇搴撲綅淇℃伅 + /// </summary> + /// <param name="unity"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public dynamic GetBarKwByItem(dynamic unity) { - return getDaa001(query); + if (unity == null) + throw new ArgumentNullException(nameof(unity), "鍙傛暟瀵硅薄涓嶈兘涓簄ull"); + + if (string.IsNullOrEmpty(unity.itemId?.ToString())) + throw new ArgumentException("鐗╂枡ID涓嶈兘涓虹┖", nameof(unity.itemId)); + + try + { + var parameters = new List<SugarParameter> + { + new SugarParameter("@itemId",unity.itemId) + }; + + return Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_scll_selBarMx @itemId", parameters); + } + catch (Exception ex) + { + throw new Exception($"鑾峰彇鏉$爜淇℃伅澶辫触锛歿ex.Message}"); + } + } - private ProductionPickDto getDaa001(WarehouseQuery query) + /// <summary> + /// 閫夊彇鍒楄〃 + /// </summary> + /// <param name="unity"></param> + /// <param name="RequestInfo"></param> + /// <returns></returns> + public dynamic GetXcslDaa(dynamic unity, dynamic RequestInfo) { - if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�"); - - var wwgd = Db.Queryable<WwGd, MesItems>((a, i) => - new JoinQueryInfos(JoinType.Left, - a.Daa003 == i.ItemId)) - .Where((a, i) => a.Daa001 == query.daa001 && (a.PcSh ?? 0) == 1) - .Select((a, i) => new - { - a.Daa001, a.RwdGuid - }).First(); - - if (wwgd?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪"); - - var womdabs = Db - .Queryable<WwGd, WwGdDetail, MesItems, ProductionOrderSub>((a, b, c, - d) => - new JoinQueryInfos( - JoinType.Left, - a.Id == b.Pid, - JoinType.Inner, - c.Id == b.Dab003, - JoinType.Inner, b.Erpid.ToString() == d.ErpId - )) - .Where((a, b, c, d) => - a.Daa001 == query.daa001) - .Select((a, b, c, d) => new WwGdDetail - { - Pid = b.Pid, - Dab003 = b.Dab003, - Dab006 = b.Dab006, - Dab007 = b.Dab007, - wNum = b.Dab006 - b.Dab007, // 璁$畻瀛楁 W_NUM - ItemName = c.ItemName, // 鍔ㄦ�佸瓧娈� ITEM_NAME - ItemNo = c.ItemNo // 鍔ㄦ�佸瓧娈� ITEM_NO - }) - .ToList(); - - var list = womdabs.Where(s => s.wNum > 0).ToList(); - - var mesInvItemOutCDetailsList = Db - .Queryable<MesInvItemOutCDetails, MesItems, MesDepots> - ((a, b, c) => - new JoinQueryInfos( - JoinType.Inner, a.ItemId == b.Id, - JoinType.Inner, c.DepotId == a.DepotId - )) - .Where((a, b, c) => a.WorkNo == query.daa001) - .Select((a, b, c) => new MesInvItemOutCDetails - { - ItemName = b.ItemName, - ItemNo = b.ItemNo, - ItemId = a.ItemId, - DepotId = a.DepotId, - WorkNo = a.WorkNo, - DepotName = c.DepotName, - Quantity = a.Quantity - }) - .ToList(); - - var womcaa = Db.Queryable<ProductionOrder>() - .Where(s => s.Guid == wwgd.RwdGuid) - .First(); - - var dto = new ProductionPickDto + var orgId = RequestInfo.OrgId; + var parameters = new List<SugarParameter> { - daa001 = wwgd.Daa001, - PlanNo = womcaa.ErpProductionOrderNo, - totals1 = womdabs, - daisao1 = list, - yisao = mesInvItemOutCDetailsList + new SugarParameter("@selectKey", unity.selectKey), + new SugarParameter("@inP1", orgId), // 鍙�夊弬鏁� + new SugarParameter("@inP2", unity.selDaaType), // 鍙�夊弬鏁� + new SugarParameter("@inP3", null), // 鍙�夊弬鏁� + new SugarParameter("@inP4", null), // 鍙�夊弬鏁� + // ...鍏朵粬鍙�夊弬鏁� }; + var result = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_wwll_list @selectKey, @inP1, @inP2, @inP3, @inP4", parameters); + return result; + } - return dto; + /// <summary> + /// 鍒楄〃鏄庣粏 + /// </summary> + /// <param name="query"></param> + /// <param name="RequestInfo"></param> + /// <returns></returns> + public dynamic GetItemsByDaa001(WarehouseQuery query, dynamic RequestInfo) + { + return getDaa001(query, RequestInfo); + } + + private dynamic getDaa001(WarehouseQuery query, dynamic RequestInfo) + { + if (string.IsNullOrEmpty(query.daa001)) throw new Exception("璇烽�夊伐鍗曞彿锛�"); + if (query == null) + throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull"); + if (string.IsNullOrEmpty(query.daa001?.ToString())) + throw new ArgumentException("宸ュ崟鍙蜂笉瀛樺湪", nameof(query.daa001)); + + var orgId = RequestInfo.OrgId; + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + var parameters = new[] + { + new SugarParameter("@daa001", query.daa001), + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( + "EXEC prc_pda_wwll_detailList @daa001,@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(); // 宸叉壂鐗╂枡 + var planNo = blDetails.FirstOrDefault()?.ErpProductionOrderNo?.ToString();// 鑾峰彇宸ュ崟璁″垝鍙� + return new + { + daa001 = query.daa001, + PlanNo = planNo, + items = items, + ysitems = ysitems + }; + } + catch (Exception ex) + { + throw new Exception($"{ex.Message}"); + } } #region 濮斿閫�鏂� @@ -284,6 +311,7 @@ if (c_mes_inv_item_barcodes == null) throw new Exception("姝ゆ潯鐮佷笉灞炰簬璇ラ��鏂欏崟锛岃鏍稿锛�"); + // if (c_mes_inv_item_barcodes.Memo != "鐢熶骇閫�鏂�") // throw new Exception("姝ゆ潯鐮佷笉鏄敓浜ч��鏂欐潯鐮侊紝涓嶅彲浣跨敤鐢熶骇閫�鏂欐ā鍧楋紒"); @@ -318,17 +346,12 @@ throw new Exception("鏉$爜涓嶅睘浜庤鐢宠鍗曟槑缁�,鏃犳硶鎵爜!"); //鍒ゆ柇璐т富淇℃伅 - var CABerpid = Db.Queryable<WwGdDetail>() - .Where(womdab => - womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013) - .Select(womdab => womdab.Erpid).First(); + var CABerpid = Db.Queryable<WwGdDetail>().Where(womdab => womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013).Select(womdab => womdab.Erpid).First(); - var WWCAB = Db.Queryable<ProductionOrderSub>() - .Where(womcab => womcab.ErpId == CABerpid.Value.ToString()).First(); + var WWCAB = Db.Queryable<ProductionOrderSub>().Where(womcab => womcab.ErpId == CABerpid.Value.ToString()).First(); - if (string.IsNullOrEmpty(WWCAB.Owner)) - throw new Exception("鐢ㄦ枡娓呭崟璐т富淇℃伅涓嶅瓨鍦�,鏃犳硶鎵爜锛岃鑱旂郴绠$悊鍛�!"); + if ( String.IsNullOrEmpty(WWCAB.Owner)) throw new Exception("鐢ㄦ枡娓呭崟璐т富淇℃伅涓嶅瓨鍦�,鏃犳硶鎵爜锛岃鑱旂郴绠$悊鍛�!"); //var owner_type = ""; //if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId)) @@ -423,10 +446,10 @@ // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 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()) + .Where(it => + it.ItemInId == c_id && + it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 && + it.DepotId == c_depot_code.ToString()) .Count(); if (existingCount == 0) @@ -462,14 +485,12 @@ db.Updateable<MesInvItemInCItems>() .SetColumns(it => new MesInvItemInCItems { - Quantity = SqlFunc.IsNull(it.Quantity, 0) + - c_mes_inv_item_barcodes - .Quantity // 纭繚 Quantity 涓嶄负 null + 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()) + .Where(it => + it.ItemInId == c_id && + it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 && + it.DepotId == c_depot_code.ToString()) //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns .ExecuteCommand(); @@ -511,7 +532,7 @@ ReceiveOrgId = c_mes_depots.FSubsidiary, EbelnK3id = c_mes_inv_item_barcodes.EbelnK3id, LineK3id = c_mes_inv_item_barcodes.LineK3id, - Ischeck = true + Ischeck = true, }).IgnoreColumns(true).ExecuteCommand(); // 鎻掑叆涓氬姟璁板綍 @@ -629,8 +650,8 @@ }) .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id && it.Tld009 == c_mes_inv_item_barcodes.ItemId) - //&& it.Tld010 == - //c_mes_inv_item_barcodes.WorkLine) + //&& it.Tld010 == + //c_mes_inv_item_barcodes.WorkLine) .ExecuteCommand(); } // 浣滀笟涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛ㄥ拰閫�鏂欏崟鏄庣粏琛� @@ -663,8 +684,8 @@ }) .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id && it.Tld009 == c_mes_inv_item_barcodes.ItemId) - //&& it.Tld010 == - //c_mes_inv_item_barcodes.WorkLine) + //&& it.Tld010 == + //c_mes_inv_item_barcodes.WorkLine) .ExecuteCommand(); } @@ -679,9 +700,9 @@ .ExecuteCommand(); // 妫�鏌ラ��鏂欏崟鏄惁鎵�鏈夋槑缁嗛兘宸插畬鎴� - var remainingCount = Db - .Queryable<MesItemTbl, MesItemTblDetail>((a, b) => - new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid)) + 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) @@ -702,10 +723,8 @@ // 鍒涘缓 鎻掑叆鏃ュ織 var logService = new LogService(); - var LogMsg = "[PDA]濮斿閫�鏂欍�傛潯鐮併��" + query.barcode + "銆� 閫�鏂欏崟鍙枫��" + - c_bill_no + "銆�"; - logService.CreateLog(db, query.userName, wwgd.Id.ToString(), - "WW_GD", LogMsg, wwgd.Daa001); + var LogMsg = "[PDA]濮斿閫�鏂欍�傛潯鐮併��" + query.barcode + "銆� 閫�鏂欏崟鍙枫��" + c_bill_no + "銆�"; + logService.CreateLog(db, query.userName, wwgd.Id.ToString(), "WW_GD", LogMsg, wwgd.Daa001); return totalResult; }); @@ -720,7 +739,7 @@ #region 濮斿琛ユ枡 /// <summary> - /// 濮斿宸ュ崟琛ユ枡鎵爜 + /// 濮斿宸ュ崟琛ユ枡鎵爜 /// 鎵弿鏉$爜 prc_rf_pda_scan_zout_barcode3 /// </summary> /// <param name="query">鏌ヨ鍙傛暟</param> @@ -781,8 +800,7 @@ // 鑾峰彇琛ユ枡鍗曟槑缁嗗苟鏍¢獙 var blDetail = Db.Queryable<MesItemBlDetail>() .Where(b => - b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId && - b.Bld007 > b.Bld008) + b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId && b.Bld007 > b.Bld008) .First(); if (blDetail == null) @@ -850,9 +868,13 @@ //query.Type = "濮斿琛ユ枡"; var outNoType = "WWBL(濮斿琛ユ枡)"; if (query.Type == "濮斿琛ユ枡") + { outNoType = "WWBL(濮斿琛ユ枡)"; + } else + { outNoType = "WWCL(濮斿瓒呴)"; + } //outNoType = "WWBL(濮斿琛ユ枡)"; // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 var outId = Guid.NewGuid(); @@ -900,7 +922,7 @@ OutDate = DateTime.Now, Status = 0, DepotId = stockBarcode.DepotId, - THORGID = stockBarcode.StockOrgId + THORGID = stockBarcode.StockOrgId, //BbillNo = query.billNo }).IgnoreColumns(true).ExecuteCommand(); } @@ -908,9 +930,7 @@ // 妫�鏌ュ苟鏇存柊鍑哄簱鍗曠墿鏂欐槑缁� var itemCount = db.Queryable<MesInvItemOutItems>() .Where(i => - i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && - i.ItemOutId == outId && - i.DepotId == stockBarcode.DepotsId.ToString()) + i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString()) .Count(); if (itemCount > 0) @@ -919,10 +939,7 @@ .SetColumns(i => i.TlQty == i.TlQty + stockBarcode.Quantity) .Where(i => - i.ItemOutId == outId && - i.ItemId == stockBarcode.ItemId && - i.ItemOutId == outId && - i.DepotId == stockBarcode.DepotsId.ToString()) + i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString()) .ExecuteCommand(); else // 鎻掑叆鏂扮殑鐗╂枡鏄庣粏璁板綍 @@ -949,7 +966,7 @@ PbillNo = query.billNo, ItemId = blDetail.Bld012, DepotId = stockBarcode.DepotId.ToString(), - ItemDabid = blDetail.Id + ItemDabid = blDetail.Id, //AboutGuid = womdab.Id // Unit = blDetail.Bld009, // DepotId = (int)stockBarcode.DepotsId @@ -1080,19 +1097,16 @@ // 鍒涘缓 鎻掑叆鏃ュ織 var logService = new LogService(); - var LogMsg = "[PDA]" + query.Type + "銆傛潯鐮併��" + query.barcode + - "銆� 鏁伴噺銆�" + stockBarcode.Quantity + "銆� 鍑哄簱鍗曞彿銆�" + outNo + - "銆�"; - logService.CreateLog(db, query.userName, wwgd.Id.ToString(), - "WW_GD", LogMsg, wwgd.Daa001); + var LogMsg = "[PDA]"+query.Type + "銆傛潯鐮併��" +query.barcode+"銆� 鏁伴噺銆�"+ stockBarcode.Quantity.ToString() + "銆� 鍑哄簱鍗曞彿銆�"+ outNo +"銆�"; + logService.CreateLog(db,query.userName,wwgd.Id.ToString(), "WW_GD", LogMsg,wwgd.Daa001); return 1; }); // 鑾峰彇鏈�缁堢殑寰呭彂鏂欐槑缁嗗垪琛� - var finalPendingList = Db - .Queryable<MesItemBl, MesItemBlDetail>((a, b) => - new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + var finalPendingList = Db.Queryable<MesItemBl, MesItemBlDetail>( + (a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new MesItemBlDetail -- Gitblit v1.9.3