From ccc519c681dacd75cd4079a1f3740c6f891430bd Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期三, 26 二月 2025 08:33:31 +0800 Subject: [PATCH] 1.MES->ERP调拨出库 --- service/Warehouse/TransferOutManager.cs | 94 +++++++++++++++++++++++++++++++++------------- 1 files changed, 67 insertions(+), 27 deletions(-) diff --git a/service/Warehouse/TransferOutManager.cs b/service/Warehouse/TransferOutManager.cs index 55ff835..a0d6fdc 100644 --- a/service/Warehouse/TransferOutManager.cs +++ b/service/Warehouse/TransferOutManager.cs @@ -1,5 +1,6 @@ 锘縰sing System.Data; using System.Data.SqlClient; +using MES.Service.Modes; using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; @@ -11,7 +12,7 @@ /// 璋冩嫧鍑哄叆搴撶鐞嗙被 /// 璐熻矗澶勭悊璋冩嫧鍑哄簱鐩稿叧鐨勪笟鍔¢�昏緫 /// </summary> -public class TransferOutManager : Repository<TransferOut> +public class TransferOutManager : Repository<MesDbck> { /// <summary> /// 鑾峰彇鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃 @@ -20,7 +21,7 @@ public List<string> GetTransferOutNoList() { // 鍏堜粠鏁版嵁搴撹幏鍙朤ransfer_Out_ETAIL琛ㄧ殑鏁版嵁 - var transferOutDetails = Db.Queryable<TransferOutDetail>().ToList(); + var transferOutDetails = Db.Queryable<MesDbckDetail>().ToList(); // 浣跨敤LINQ瀵硅幏鍙栫殑鏁版嵁杩涜鍒嗙粍鍜岀瓫閫� // 绛涢�夋潯浠�:鐢宠鏁伴噺(sq)涓嶇瓑浜庡凡鎵暟閲�(ys)鐨勮褰� @@ -29,17 +30,18 @@ .Select(g => new { pid = g.Key, - sq = g.Sum(x => x.ShNum), // 鐢宠鏁伴噺鍚堣 - ys = g.Sum(x => x.YsNum) // 宸叉壂鏁伴噺鍚堣 + sq = g.Sum(x => x.FQty), // 鐢宠鏁伴噺鍚堣 + ys = g.Sum(x => x.SQty), // 璋冨嚭宸叉壂鏁伴噺鍚堣 + rs = g.Sum(x => x.RQty), // 璋冨叆宸叉壂鏁伴噺鍚堣 }) - .Where(x => (x.sq ?? 0) != (x.ys ?? 0)) + .Where(x => !((x.sq ?? 0) == (x.ys ?? 0) && (x.sq ?? 0) == (x.rs ?? 0))) .Select(x => x.pid) .ToList(); // 鏍规嵁pid鏌ヨ瀵瑰簲鐨勫嚭搴撳崟鍙� - var billNos = Db.Queryable<TransferOut>() - .Where(x => result.Contains(x.Guid)) - .Select(x => x.BillNo) + var billNos = Db.Queryable<MesDbck>() + .Where(x => result.Contains(x.Id) && x.FApproveStatus == 1) + .Select(x => x.FBillNo) .ToList(); return billNos; @@ -50,7 +52,7 @@ /// </summary> /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param> /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns> - public List<TransferOutDetail> GetTransferOutDetailListByBillNo( + public List<TransferOutDetailModel> GetTransferOutDetailListByBillNo( WarehouseQuery query) { var p_bill_no = query.billNo; @@ -58,25 +60,63 @@ // 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏 // 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛� // 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳 - var result = Db.Queryable<TransferOutDetail, TransferOut, MesItems>( + var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>( (b, a, s) => new JoinQueryInfos( - JoinType.Left, b.Pid == a.Guid, - JoinType.Left, b.ItemId == s.Id)) + JoinType.Left, b.Pid == a.Id, + JoinType.Left, b.FMaterialId == s.Id.ToString())) .Where((b, a, s) => - (b.ShNum ?? 0) - (b.YsNum ?? 0) > 0 // 鏈畬鎴愭暟閲忓ぇ浜�0 - && a.BillNo == p_bill_no // 鍖归厤鍗曟嵁鍙� - && a.Status == 1) // 鍗曟嵁宸插鏍� + !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0)) + && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙� + && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍� .OrderBy((b, a, s) => s.ItemNo) - .Select((b, a, s) => new TransferOutDetail + .Select((b, a, s) => new TransferOutDetailModel { ItemNo = s.ItemNo, + ItemName = s.ItemName, ItemModel = s.ItemModel, - ShNum = b.ShNum, // 鐢宠鏁伴噺 - YsNum = b.YsNum, // 宸叉壂鏁伴噺 + FQty = b.FQty, // 鐢宠鏁伴噺 + SQty = b.SQty, // 宸叉壂鏁伴噺 + RQty = b.RQty, // 宸叉壂鏁伴噺 // 淇濈暀鍏朵粬蹇呰瀛楁... - Pid = b.Pid, - ItemId = b.ItemId, - Guid = b.Guid + Pid = b.Pid.ToString(), + FMaterialId = b.FMaterialId, + Id = b.Id.ToString() + }) + .ToList(); + + if(result.Count < 1) throw new Exception("璇ヨ皟鎷ㄥ崟涓嶅瓨鍦ㄦ垨宸叉壂瀹岋紝璇烽噸鏂版壂鎻�"); + + return result; + } + + public List<TransferOutDetailModel> GetDBCKDetal( + WarehouseQuery query) + { + var p_bill_no = query.billNo; + + // 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏 + // 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛� + // 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳 + var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>( + (b, a, s) => new JoinQueryInfos( + JoinType.Left, b.Pid == a.Id, + JoinType.Left, b.FMaterialId == s.Id.ToString())) + .Where((b, a, s) => + (b.FQty ?? 0) - (b.SQty ?? 0) > 0 // 鏈畬鎴愭暟閲忓ぇ浜�0 + && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙� + && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍� + .OrderBy((b, a, s) => s.ItemNo) + .Select((b, a, s) => new TransferOutDetailModel + { + ItemNo = s.ItemNo, + ItemName = s.ItemName, + ItemModel = s.ItemModel, + FQty = b.FQty, // 鐢宠鏁伴噺 + SQty = b.SQty, // 宸叉壂鏁伴噺 + // 淇濈暀鍏朵粬蹇呰瀛楁... + Pid = b.Pid.ToString(), + FMaterialId = b.FMaterialId, + Id = b.Id.ToString() }) .ToList(); @@ -88,7 +128,7 @@ /// </summary> /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param> /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns> - public (WarehouseQuery form, List<TransferOutDetail> items) + public (WarehouseQuery form, List<TransferOutDetailModel> items) ScanMoveBarcode(WarehouseQuery query) { var p_bill_no = query.billNo; @@ -98,8 +138,8 @@ if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); // 鏌ヨ鍑哄簱鍗曞苟楠岃瘉鐘舵�� - var transferOut = Db.Queryable<TransferOut>() - .Where(x => x.BillNo == p_bill_no && x.Status == 1) + var transferOut = Db.Queryable<MesDbck>() + .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1) .First(); if (transferOut == null) throw new Exception("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�"); @@ -158,7 +198,7 @@ query.Fum = Convert.ToDecimal(splitNum); // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏 - return (query, GetTransferOutDetailListByBillNo(query)); + return (query, GetDBCKDetal(query)); } catch (Exception ex) { @@ -177,7 +217,7 @@ /// </summary> /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param> /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns> - public (WarehouseQuery form, List<TransferOutDetail> items) + public (WarehouseQuery form, List<TransferOutDetailModel> items) ScanReceiveBarcode(WarehouseQuery query) { var p_bill_no = query.billNo; @@ -248,7 +288,7 @@ query.Fum = Convert.ToDecimal(splitNum); // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏 - return (query, GetTransferOutDetailListByBillNo(query)); + return (query, GetDBCKDetal(query)); } catch (Exception ex) { -- Gitblit v1.9.3