1
huangxiaoqiang
2025-03-27 2cc749ec598c39f9172f9b989979f6218ec256b1
CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -3,11 +3,13 @@
using SqlSugar;
using System.Text.RegularExpressions;
using WIDESEA_Cache;
using WIDESEA_Core;
using WIDESEA_Core.Const;
using WIDESEA_DTO.MOM;
using WIDESEA_DTO.WMS;
using WIDESEA_IServices;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_Model.Models;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_QuartzJob.Models;
@@ -869,6 +871,8 @@
        WebResponseContent content = new WebResponseContent();
        try
        {
            // 记录异常信息并抛出
            LogFactory.GetLog($"{position}请求{productionLine}任务").Info(true, $"{position}-{tag}-{areaCode}-{JsonConvert.SerializeObject(areaCodes)}-{productionLine}");
            // 根据托盘类型查询库存信息
            DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound
                ? areaCode != "CWSC1" ? await QueryStockInfoForRealTrayAsync(areaCode, areaCodes, productionLine) : await QueryStockInfoForRealTrayCWAsync(areaCodes, productionLine)
@@ -1571,6 +1575,40 @@
    #endregion 外部接口方法
    #region  静置查询实托
    public async Task<WebResponseContent> QueryStockInfoForRealTrayJZAsync(string ProductLine)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
                .Where(x => x.DeviceStatus == "1")
                .Where(x => x.DeviceCode.Contains("JZSC"))
                .ToList().Select(x => x.DeviceCode).ToList();
            var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
                .Where(x=> x.IsFull == true) // 过滤条件
                .WhereIF(!ProductLine.IsNullOrEmpty(), x => x.ProductionLine == ProductLine)
                .Includes(x => x.LocationInfo)
                .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
                .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId==2 && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 过滤条件
                .Includes(x => x.StockInfoDetails)
                .OrderBy(x => x.OutboundTime) // 排序
                .FirstAsync();
            if (result.IsNullOrEmpty())
                content.Error();
            else
                content.OK();
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
        }
        return content;
    }
    #endregion
    #endregion 外部接口方法
    #region 内部调用方法