From b727409bf046acea9533065da35e8e3872cac783 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 22 八月 2025 10:54:32 +0800 Subject: [PATCH] 1.生产领料库位信息查询 --- service/Warehouse/MesItemQtManager.cs | 135 +++++++++++++++++++++++++++------------------ 1 files changed, 81 insertions(+), 54 deletions(-) diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs index a67d156..c2507f1 100644 --- a/service/Warehouse/MesItemQtManager.cs +++ b/service/Warehouse/MesItemQtManager.cs @@ -1,6 +1,7 @@ 锘縰sing NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; +using NewPdaSqlServer.entity.Base; using NewPdaSqlServer.util; using SqlSugar; @@ -15,12 +16,16 @@ /// <returns>閫�鏂欏崟鍙峰垪琛�</returns> public List<string> GetPendingQtList() { - return Db.Queryable<MesItemQt>() - .Where(it => - (it.Qt015 ?? false) == true && (it.Qt014 ?? false) == false) - .OrderByDescending(it => it.Qtck) - .Select(it => it.Qtck) - .ToList(); + const string sql = @"SELECT qtck +FROM MES_ITEM_QT +WHERE qt015 = 1 + AND qt026 = 1 + AND QT029 = 1 + AND qt032 = 1 + AND QT014 = 0 +ORDER BY qt002"; + + return Db.Ado.SqlQuery<string>(sql); } /// <summary> @@ -28,7 +33,7 @@ /// </summary> /// <param name="query">浠撳簱鏌ヨ鍙傛暟锛屽寘鍚敤鎴峰悕鍜屽崟鎹彿</param> /// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns> - public List<MesItemQtDatall> GetPendingQtList(WarehouseQuery query) + public ProductionPickDto GetPendingQtList(WarehouseQuery query) { // 浠庢煡璇㈠弬鏁颁腑鑾峰彇鐢ㄦ埛鍚嶅拰鍗曟嵁鍙� var c_User = query.userName; @@ -42,41 +47,45 @@ // 濡傛灉鏈壘鍒伴��鏂欏崟锛屾姏鍑哄紓甯� if (mesItemQt == null) throw new Exception($"鏈煡璇㈠埌姝ゅ叾浠栧叆搴撶敵璇峰崟 {p_bill_no}"); - // 妫�鏌ラ��鏂欏崟鐨勫鏍哥姸鎬�(Qt015)锛屾湭瀹℃牳鍒欐姏鍑哄紓甯� - if (mesItemQt.Qt015 == false) - throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 鏈鏍革紝璇风‘璁わ紒"); + //// 妫�鏌ラ��鏂欏崟鐨勫鏍哥姸鎬�(Qt015)锛屾湭瀹℃牳鍒欐姏鍑哄紓甯� + //if (mesItemQt.Qt015 == false) + // throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 鏈鏍革紝璇风‘璁わ紒"); // 妫�鏌ラ��鏂欏崟鐨勫畬缁撶姸鎬�(Qt014)锛屽凡瀹岀粨鍒欐姏鍑哄紓甯� - if (mesItemQt.Qt014 == true) - throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); + //if (mesItemQt.Qt014 == true) + // throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); - // 鑱旇〃鏌ヨ鑾峰彇鏈畬鎴愮殑鏄庣粏鍒楄〃 - // 鍏宠仈琛細 - // - MesItemQt: 閫�鏂欏崟涓昏〃(a) - // - MesItemQtDatall: 閫�鏂欏崟鏄庣粏琛�(b) - // - MesItems: 鐗╂枡鍩虹淇℃伅琛�(c) - var pendingList = Db.Queryable<MesItemQt, MesItemQtDatall, MesItems>( - (a, b, c) => - new JoinQueryInfos( - JoinType.Left, a.Guid == b.QtGuid, // 涓昏〃鍜屾槑缁嗚〃閫氳繃Guid鍏宠仈 - JoinType.Left, - b.ItemId == c.Id.ToString())) // 鏄庣粏琛ㄥ拰鐗╂枡琛ㄩ�氳繃ItemId鍏宠仈 - .Where((a, b, c) => - a.Qtck == p_bill_no && // 鍖归厤鍗曟嵁鍙� - (b.Qd007 ?? 0) - (b.Qd008 ?? 0) > - 0) // 璁″垝鏁伴噺鍑忓幓宸插畬鎴愭暟閲忓ぇ浜�0鐨勮褰�(鍗虫湭瀹屾垚鐨勮褰�) - .OrderBy((a, b, c) => c.ItemNo) // 鎸夌墿鏂欑紪鍙锋帓搴� - .Select((a, b, c) => new MesItemQtDatall - { - Qd002 = b.Qd002, // 鏄庣粏琛屽彿 - Qt011 = a.Qt011, // 閫�鏂欏師鍥� - ItemNo = c.ItemNo, // 鐗╂枡缂栧彿 - Qd007 = b.Qd007 ?? 0, // 璁″垝鏁伴噺 - Qd008 = b.Qd008 ?? 0 // 宸插畬鎴愭暟閲� - }) - .ToList(); + var sql = @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel, + ISNULL(A.qd007,0) FQty,ISNULL(A.qd008,0) SQty,ISNULL(A.qd007,0) - ISNULL(A.qd008,0) DSQty, + dbo.F_QX_GETRECODEPOTSE(A.itemId,'','','') as RecoKw + FROM MES_ITEM_QT_DATALL A + LEFT JOIN MES_ITEM_QT B ON A.qtGuid = B.guid + LEFT JOIN MES_ITEMS C ON A.itemId = C.item_id + WHERE B.qtck = @billNo AND (qt015 = 1 AND qt026 =1 AND QT029 = 1 AND qt032 = 1)"; - return pendingList; + var sqlParams = new List<SugarParameter> { + new("@billNo", query.billNo) + }; + + var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql, sqlParams); + + // 妫�鏌ラ��鏂欏崟鐨勫畬缁撶姸鎬�(Qt014)锛屽凡瀹岀粨鍒欐姏鍑哄紓甯� + if (womdabs.Count < 1) + throw new Exception($"璇ュ叾浠栧嚭搴撶敵璇峰崟 {p_bill_no} 鏈叏閮ㄥ鏍革紝璇风‘璁わ紒"); + + var DS_list = womdabs.Where(s => s.DSQty > 0).ToList(); + + var YS_list = womdabs.Where(s => s.SQty > 0).ToList(); + + var dto = new ProductionPickDto + { + //daa001 = womdaa.Daa001, + //PlanNo = womcaa.Caa020, + items = DS_list, + Ysitems = YS_list + }; + + return dto; } public (WarehouseQuery form, List<MesItemQtDatall> item, string message) @@ -108,6 +117,9 @@ if (barcode == null) throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮�,璇锋牳瀵癸紒{p_item_barcode}"); + + + // 鑾峰彇搴撳瓨淇℃伅 var stock = Db.Queryable<MesInvItemStocks>() .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0) @@ -135,16 +147,11 @@ // 鑾峰彇鍏朵粬鍑哄簱鍗曚俊鎭� var mesItemQt = Db.Queryable<MesItemQt>() - .Where(it => it.Qtck == p_bill_no) + .Where(it => it.Qtck == p_bill_no && it.Qt015 == true && it.Qt026 == true && it.Qt029 == true && it.Qt032 == true) .First(); if (mesItemQt == null) throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒"); - - // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷� - if (Convert.ToInt32(mesItemQt.Qt008) != stock.DepotId) - throw new Exception( - $"鎵爜鍑鸿揣浠撳簱id{mesItemQt.Qt008}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟stock.DepotId}涓嶄竴鑷达紝璇锋牳瀵癸紒"); // 鑾峰彇鍑哄簱鍗曟槑缁� var qtDetail = Db.Queryable<MesItemQtDatall>() @@ -154,6 +161,19 @@ .First(); if (qtDetail == null) throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒"); + + + if (mesItemQt.Qt014 == true) + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); + + // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷� + if (qtDetail.DepotId != stock.DepotId) + throw new Exception( + $"鎵爜鍑鸿揣浠撳簱id{qtDetail.DepotId}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟stock.DepotId}涓嶄竴鑷达紝璇锋牳瀵癸紒"); + + + + // 妫�鏌ュ墿浣欐暟閲� var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); @@ -183,6 +203,8 @@ var message = $"璇风‘璁ゅ彂鏂欐暟閲忥紒锛佸凡甯﹀嚭婊¤冻鍏朵粬鍑哄簱鍗曠殑鍙戞枡鏁伴噺 {remainingQty} 纭鍚庤鐐瑰嚮鏉$爜鎷嗗垎"; + + throw new Exception($"鏉$爜鏁伴噺瓒呭嚭鍙戞枡鏁伴噺锛岃鎷嗗垎鍚庡啀鎵弿锛�"); query.itemNo = stock.ItemNo; query.Num = stock.Quantity; @@ -216,7 +238,7 @@ { // 鍒涘缓鏂扮殑鍑哄簱鍗� outId = Guid.NewGuid(); - outNo = BillNo.GetBillNo("QTCK(鍏朵粬鍑哄簱鍗�)"); + outNo = BillNo.GetBillNo("QTCK(鍏朵粬鍑哄簱)"); var mesItemQt = Db.Queryable<MesItemQt>() .Where(it => it.Qtck == p_bill_no) @@ -235,8 +257,8 @@ BillTypeId = p_bill_type_id, TransactionNo = p_transaction_no, DepotCode = stock.DepotsCode, - DepotId = stock.DepotsId.HasValue - ? (int)stock.DepotsId + DepotId = stock.DepotId.HasValue + ? (int)stock.DepotId : null, OutPart = mesItemQt.Qt012, FType = 0, @@ -270,7 +292,7 @@ // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鐗╂枡璁板綍 var existingOutItem = Db.Queryable<MesInvItemOutItems>() .Where(it => - it.ItemOutId == outId && it.ItemId == barcode.ItemId) + it.ItemOutId == outId && it.ItemId == barcode.ItemId && it.ItemDabid == qtDetail.Guid) .First(); if (existingOutItem == null) @@ -297,7 +319,9 @@ ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) ? long.Parse(qtDetail.ItemId) : null, - FType = 0 + FType = 0, + AboutGuid = qtDetail.Guid, + ItemDabid = qtDetail.Guid // Unit = qtDetail.Qd009 }; @@ -310,9 +334,7 @@ commit += db.Updateable<MesInvItemOutItems>() .SetColumns(it => it.TlQty == (it.TlQty ?? 0) + stock.Quantity) - .Where(it => it.ItemOutId == outId && - it.ItemId == barcode.ItemId && - it.QtOutId == qtDetail.Guid) + .Where(it => it.ItemOutId == outId && it.ItemId == barcode.ItemId && it.ItemDabid == qtDetail.Guid) .ExecuteCommand(); } @@ -330,8 +352,8 @@ LastupdateBy = c_user, LastupdateDate = DateTime.Now, DepotCode = stock.DepotsCode, - DepotId = stock.DepotsId.HasValue - ? (int)stock.DepotsId + DepotId = stock.DepotId.HasValue + ? (int)stock.DepotId : null, // DepotsCode = stock.DepotsCode, // DepotSectionsCode = stock.DepotSectionsCode, @@ -435,6 +457,11 @@ query.Num = stock.Quantity; query.Fum = null; + // 鍒涘缓 鎻掑叆鏃ュ織 + var logService = new LogService(); + var LogMsg = "銆怭DA銆戝叾浠栧嚭搴撱�傛潯鐮併��" + query.barcode + "銆戞暟閲忋��"+ stock.Quantity.ToString() + "銆� 鍑哄簱鍗曞彿銆�" + outNo + "銆�"; + logService.CreateLog(db, query.userName, mesItemQt.Guid.ToString(), "MES_ITEM_QT", LogMsg, mesItemQt.Qtck); + if (commit < 5) throw new Exception("鏇存柊澶辫触"); return commit; -- Gitblit v1.9.3