From 1d976f52878c9f776146502037377310921e5a21 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期四, 04 九月 2025 08:23:13 +0800 Subject: [PATCH] 1.携客云获取送货单优化 --- service/Warehouse/MesItemQtManager.cs | 144 +++++++++++++++++++++++++++-------------------- 1 files changed, 82 insertions(+), 62 deletions(-) diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs index 68f2121..6fb9b43 100644 --- a/service/Warehouse/MesItemQtManager.cs +++ b/service/Warehouse/MesItemQtManager.cs @@ -4,6 +4,7 @@ using NewPdaSqlServer.entity.Base; using NewPdaSqlServer.util; using SqlSugar; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace NewPdaSqlServer.service.Warehouse; @@ -14,17 +15,33 @@ /// 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� /// </summary> /// <returns>閫�鏂欏崟鍙峰垪琛�</returns> - public List<string> GetPendingQtList() - { - const string sql = @"SELECT qtck - FROM MES_ITEM_QT - WHERE qt015 = 1 - AND qt026 = 1 - AND QT029 = 1 - AND qt032 = 1 - AND QT014 = 0 "; + public dynamic GetPendingQtList(dynamic RequestInfo) + { + var orgId = RequestInfo.OrgId; - return Db.Ado.SqlQuery<string>(sql); + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + // 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + var parameters = new[] + { + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + // 杩斿洖鍗曞彿瀛楃涓插垪琛� + var blDetails = Db.Ado.SqlQuery<string>( + "EXEC prc_pda_qtck_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + return blDetails; + } + catch (Exception ex) + { + throw new Exception($"{ex.Message}"); + } } /// <summary> @@ -32,61 +49,47 @@ /// </summary> /// <param name="query">浠撳簱鏌ヨ鍙傛暟锛屽寘鍚敤鎴峰悕鍜屽崟鎹彿</param> /// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns> - public ProductionPickDto GetPendingQtList(WarehouseQuery query) + public dynamic GetPendingQtDetailList(dynamic query, dynamic RequestInfo) { - // 浠庢煡璇㈠弬鏁颁腑鑾峰彇鐢ㄦ埛鍚嶅拰鍗曟嵁鍙� - var c_User = query.userName; - var p_bill_no = query.billNo; + var orgId = RequestInfo.OrgId; - // 鏍规嵁鍗曟嵁鍙锋煡璇㈤��鏂欏崟涓昏〃淇℃伅 - var mesItemQt = Db.Queryable<MesItemQt>() - .Where(it => it.Qtck == p_bill_no) - .First(); + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); - // 濡傛灉鏈壘鍒伴��鏂欏崟锛屾姏鍑哄紓甯� - if (mesItemQt == null) 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} 宸插畬缁擄紝璇风‘璁わ紒"); - - 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)"; - - var sqlParams = new List<SugarParameter> { - new("@billNo", query.billNo) + var parameters = new[] +{ + new SugarParameter("@billNo",query.billNo), + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) }; - - 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 + try { - //daa001 = womdaa.Daa001, - //PlanNo = womcaa.Caa020, - items = DS_list, - Ysitems = YS_list - }; - - return dto; + List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( + "EXEC prc_pda_qtck_detailList @billNo,@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(); // 宸叉壂鐗╂枡 + return new + { + items = items, + ysitems = ysitems + }; + } + catch (Exception ex) + { + // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫 + throw new Exception($"{ex.Message}"); + } } + /// <summary> + /// 鎵爜鍑哄簱 + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public (WarehouseQuery form, List<MesItemQtDatall> item, string message) OutScanBarcode( WarehouseQuery query) @@ -115,6 +118,9 @@ if (barcode == null) throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮�,璇锋牳瀵癸紒{p_item_barcode}"); + + + // 鑾峰彇搴撳瓨淇℃伅 var stock = Db.Queryable<MesInvItemStocks>() @@ -146,6 +152,9 @@ .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} 涓嶅瓨鍦紝璇风‘璁わ紒"); + // 鑾峰彇鍑哄簱鍗曟槑缁� var qtDetail = Db.Queryable<MesItemQtDatall>() .Where(it => @@ -153,17 +162,20 @@ it.ItemId == stock.ItemId.ToString()) .First(); - if (mesItemQt == null) - throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒"); + if (qtDetail == null) throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒"); + + + if (mesItemQt.Qt014 == true) + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷� - if (Convert.ToInt32(qtDetail.DepotId) != stock.DepotId) + if (qtDetail.DepotId != stock.DepotId) throw new Exception( $"鎵爜鍑鸿揣浠撳簱id{qtDetail.DepotId}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟stock.DepotId}涓嶄竴鑷达紝璇锋牳瀵癸紒"); - if (qtDetail == null) throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒"); + // 妫�鏌ュ墿浣欐暟閲� var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); @@ -193,6 +205,8 @@ var message = $"璇风‘璁ゅ彂鏂欐暟閲忥紒锛佸凡甯﹀嚭婊¤冻鍏朵粬鍑哄簱鍗曠殑鍙戞枡鏁伴噺 {remainingQty} 纭鍚庤鐐瑰嚮鏉$爜鎷嗗垎"; + + throw new Exception($"鏉$爜鏁伴噺瓒呭嚭鍙戞枡鏁伴噺锛岃鎷嗗垎鍚庡啀鎵弿锛�"); query.itemNo = stock.ItemNo; query.Num = stock.Quantity; @@ -458,6 +472,12 @@ return (query, mesItemQtDatalls, mess); } + /// <summary> + /// 鎷嗗垎鏉$爜骞跺嚭搴� + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public (WarehouseQuery form, List<MesItemQtDatall> item, string message) PrintQtckBarcode( WarehouseQuery query) -- Gitblit v1.9.3