From 4910c0fa81d93635e19a57c073c3a62c76053320 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 25 七月 2025 13:24:18 +0800 Subject: [PATCH] 1.巡检扫描工位 --- service/Warehouse/TransferOutManager.cs | 117 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 82 insertions(+), 35 deletions(-) diff --git a/service/Warehouse/TransferOutManager.cs b/service/Warehouse/TransferOutManager.cs index 55ff835..06d5955 100644 --- a/service/Warehouse/TransferOutManager.cs +++ b/service/Warehouse/TransferOutManager.cs @@ -1,8 +1,10 @@ 锘縰sing System.Data; using System.Data.SqlClient; +using MES.Service.Modes; using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; +using NewPdaSqlServer.entity.Base; using SqlSugar; namespace NewPdaSqlServer.service.Warehouse; @@ -11,7 +13,7 @@ /// 璋冩嫧鍑哄叆搴撶鐞嗙被 /// 璐熻矗澶勭悊璋冩嫧鍑哄簱鐩稿叧鐨勪笟鍔¢�昏緫 /// </summary> -public class TransferOutManager : Repository<TransferOut> +public class TransferOutManager : Repository<MesDbck> { /// <summary> /// 鑾峰彇鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃 @@ -20,7 +22,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 +31,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 +53,7 @@ /// </summary> /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param> /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns> - public List<TransferOutDetail> GetTransferOutDetailListByBillNo( + public List<ItemDetailModel> GetTransferOutDetailListByBillNo( WarehouseQuery query) { var p_bill_no = query.billNo; @@ -58,25 +61,64 @@ // 鏍规嵁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 ItemDetailModel { 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<ItemDetailModel> 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) && (b.FQty ?? 0) == (b.RQty ?? 0)) // 鏈畬鎴愭暟閲忓ぇ浜�0 + && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙� + && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍� + .OrderBy((b, a, s) => s.ItemNo) + .Select((b, a, s) => new ItemDetailModel + { + ItemNo = s.ItemNo, + ItemName = s.ItemName, + ItemModel = s.ItemModel, + FQty = b.FQty, // 鐢宠鏁伴噺 + SQty = b.SQty, // 宸叉壂鏁伴噺 + RQty = b.RQty, + // 淇濈暀鍏朵粬蹇呰瀛楁... + Pid = b.Pid.ToString(), + FMaterialId = b.FMaterialId, + Id = b.Id.ToString() }) .ToList(); @@ -88,7 +130,7 @@ /// </summary> /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param> /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns> - public (WarehouseQuery form, List<TransferOutDetail> items) + public (WarehouseQuery form, List<ItemDetailModel> items) ScanMoveBarcode(WarehouseQuery query) { var p_bill_no = query.billNo; @@ -98,8 +140,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 +200,7 @@ query.Fum = Convert.ToDecimal(splitNum); // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏 - return (query, GetTransferOutDetailListByBillNo(query)); + return (query, GetDBCKDetal(query)); } catch (Exception ex) { @@ -177,32 +219,37 @@ /// </summary> /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param> /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns> - public (WarehouseQuery form, List<TransferOutDetail> items) + public (WarehouseQuery form, List<ItemDetailModel> items) ScanReceiveBarcode(WarehouseQuery query) { var p_bill_no = query.billNo; var p_item_barcode = query.barcode; + var barinfo = Db.Queryable<MesInvItemStocks>() + .Where(x => x.ItemBarcode == p_item_barcode) + .First(); + // 楠岃瘉鍗曟嵁鍙� 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("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�"); // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇� - var stock = Db.Queryable<MesInvItemStocks>() - .Where(x => x.ItemBarcode == p_item_barcode - && x.Quantity > 0 - && !string.IsNullOrEmpty(x.DepotsCode)) + var stock = Db.Queryable<MesDbckDetail>() + .Where(x => x.FMaterialId == barinfo.ItemId.ToString() + && x.FQty > 0 + && !string.IsNullOrEmpty(x.FStockInId) + && !string.IsNullOrEmpty(x.FOwnerInId)) .First(); - if (stock == null) throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_item_barcode}"); + if (stock == null) throw new Exception($"璋冩嫧鏄庣粏涓� 銆愮墿鏂欍�戞垨 銆愯皟鍏ヤ粨搴撱�戞垨銆愯皟鍏ヨ揣涓汇�戜俊鎭笉瀛樺湪锛岃鏍稿锛亄p_item_barcode}"); // 鏌ヨ鐗╂枡淇℃伅 var item = Db.Queryable<MesItems>() - .Where(x => x.Id == stock.ItemId) + .Where(x => x.Id.ToString() == stock.FMaterialId) .First(); if (item == null) throw new Exception("鏈壘鍒扮墿鏂�"); @@ -248,7 +295,7 @@ query.Fum = Convert.ToDecimal(splitNum); // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏 - return (query, GetTransferOutDetailListByBillNo(query)); + return (query, GetDBCKDetal(query)); } catch (Exception ex) { -- Gitblit v1.9.3