From a95c4e748b01da8bea6ba0f8e6af9c281bc582d7 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期二, 29 七月 2025 09:22:13 +0800 Subject: [PATCH] 优化日志格式并增强库存查询逻辑在 CommonConveyorLineJob.cs和CommonConveyorLine_GWJob.cs文件中,修改了日志输出格式,添加了时间戳以提高可读性和可追溯性。部分代码中的ToJsonString()方法被替换为 Serialize()方法,以统一序列化方式。与此同时,在 Dt_TaskService.cs文件中增加了库存信息查询逻辑,以确保出库时能够正确处理库存条件,增强系统的健壮性。 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 48 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs index 1b68a70..6bd38fe 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs @@ -6,6 +6,7 @@ using WIDESEA_Core.Const; using WIDESEA_DTO.MOM; using WIDESEA_DTO.WMS; +using WIDESEA_Model.Models; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob.Models; @@ -1115,19 +1116,42 @@ // .FirstOrDefault(); // 淇敼鍚庣殑鏌ヨ浠g爜 #endregion - var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() - .Includes(x => x.LocationInfo) - .Includes(x => x.StockInfoDetails) - .Where(x => x.ProductionLine == station.productLine) - .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) - // 澧炲姞瀵� LocationInfo 鐨勭┖鍊兼鏌� - .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) - // 澧炲姞瀵� LocationInfo 鐨勭┖鍊兼鏌� - .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) - .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) - .OrderBy(x => x.OutboundTime) - .FirstAsync(); + //var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() + // .Includes(x => x.LocationInfo) + // .Includes(x => x.StockInfoDetails) + // .Where(x => x.ProductionLine == station.productLine) + // .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) + // // 澧炲姞瀵� LocationInfo 鐨勭┖鍊兼鏌� + // .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) + // // 澧炲姞瀵� LocationInfo 鐨勭┖鍊兼鏌� + // .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) + // .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) + // .OrderBy(x => x.OutboundTime) + // .FirstAsync(); + DtStockInfo stockInfo = null; + var stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>() + .Includes(x => x.LocationInfo) + .Where(x => x.ProductionLine == station.productLine + && x.AreaCode == "CWSC3" + && x.IsFull == true + && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) + .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) + .OrderBy(x => x.OutboundTime) + .ToListAsync(); + + foreach (var stock in stockInfoList) + { + var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>() + .Where(d => d.StockId == stock.Id && materielCodes.Contains(d.MaterielCode)) + .AnyAsync(); + + if (hasMatchingDetail) + { + stockInfo = stock; + break; + } + } if (stockInfo == null) throw new Exception($"搴撳唴{station.productLine}鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�"); DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode); -- Gitblit v1.9.3