肖洋
2024-12-26 071e6262409c5e96f904d0724b73a07fb21bcdf3
优化枚举和查询逻辑

在 `ManageEnum.cs` 文件中,移除了多余的 `using` 声明,并添加了新的枚举 `LocationType`,其中包含 `Single` 和 `Double` 的描述。同时,更新了 `TaskInboundTypeEnum` 和 `TaskOtherTypeEnum` 的字段描述。

在 `Dt_TaskService.cs` 文件中,更新了查询条件,增加了对 `EnableStatus` 的过滤,确保只获取启用的记录。此外,在多个查询中,添加了对 `EnableStatus` 属性的检查,保证返回的条目有效。位置查询逻辑中,确保过滤条件一致性,增加了对 `EnableEnum.Enable` 状态的检查,以提高查询精确性。
已修改2个文件
37 ■■■■■ 文件已修改
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs
@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
namespace WIDESEA_Core.Enums
{
@@ -94,10 +89,25 @@
        NotAllow = 2
    }
    public enum LocationType
    {
        /// <summary>
        /// 单深货位
        /// </summary>
        [Description("单深货位")]
        Single = 1,
        /// <summary>
        /// 双深货位
        /// </summary>
        [Description("双深货位")]
        Double = 2
    }
    #region 任务类型
    /// <summary>
    /// 任务类型
    /// 任务类型
    /// </summary>
    public enum TaskInboundTypeEnum
@@ -175,7 +185,7 @@
        /// NG出库
        /// </summary>
        [Description("NG出库")]
        OutNG =105,
        OutNG = 105,
        /// <summary>
        /// 直接出库
@@ -202,6 +212,7 @@
    public enum TaskOtherTypeEnum
    {
    }
    public enum TaskTypeEnum
    {
        /// <summary>
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1178,7 +1178,7 @@
            .Includes(x => x.StockInfoDetails) // 预加载StockInfoDetails
            .Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 过滤条件
            .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine)
            .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 过滤条件
            .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 过滤条件
            .WhereIF(!devices.IsNullOrEmpty(), x => devices.Contains(x.LocationInfo.RoadwayNo))
            .OrderBy(x => x.OutboundTime) // 排序
            .FirstAsync(); // 获取第一个元素
@@ -1201,7 +1201,7 @@
            .Includes(x => x.StockInfoDetails) // 预加载StockInfoDetails
            .Where(x => areaCodes.Contains(x.AreaCode) && x.OutboundTime < DateTime.Now && x.IsFull == true) // 过滤条件
            .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine)
            .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 过滤条件
            .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 过滤条件
            .OrderBy(x => x.OutboundTime) // 排序
            .FirstAsync(); // 获取第一个元素
@@ -1223,7 +1223,7 @@
            .Includes(x => x.StockInfoDetails) // 预加载StockInfoDetails
            .Where(x => x.AreaCode == areaCode && x.IsFull == false)
            .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "空托盘"))
            .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 过滤条件
            .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 过滤条件
            .OrderBy(x => x.CreateDate) // 排序
            .FirstAsync(); // 转换为列表
@@ -2191,11 +2191,11 @@
            List<DtLocationInfo> locations;
            if (IsFull)
            {
                locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay);
                locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay && x.EnalbeStatus == (int)EnableEnum.Enable);
            }
            else
            {
                locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay /*&& x.LocationType ==*/);
                locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay && x.EnalbeStatus == (int)EnableEnum.Enable);
            }
            if (locations == null)