xxyy
2025-02-15 abff6261e5e74ff16a844f4739f84d49b6133000
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -1,18 +1,11 @@
using Castle.Components.DictionaryAdapter.Xml;
using log4net.Core;
using Masuit.Tools;
using System.CodeDom;
using System.Threading.Tasks;
using Masuit.Tools;
using WIDESEA_Common;
using WIDESEA_Common.CustomModels;
//using WIDESEA_Common.CustomModels;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.Const;
using WIDESEA_DTO.MOM;
using WIDESEA_DTO.WMS;
using WIDESEA_StorageTaskRepository;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
@@ -123,7 +116,6 @@
        {
            throw new Exception(ex.Message);
        }
    }
    /// <summary>
@@ -209,7 +201,8 @@
                    TaskType = (int)TaskOutboundTypeEnum.InToOut,
                    TaskNum = await BaseDal.GetTaskNo(),
                    Creater = "Systeam",
                    ProductionLine = result.ProductionLine
                    ProductionLine = result.ProductionLine,
                    ProcessCode = result.ProcessCode,
                };
                return taskNG;
            }
@@ -267,7 +260,8 @@
                        TaskType = (int)TaskOutboundTypeEnum.InToOut,
                        TaskNum = await BaseDal.GetTaskNo(),
                        Creater = "Systeam",
                        ProductionLine = result.ProductionLine
                        ProductionLine = result.ProductionLine,
                        ProcessCode = result.ProcessCode,
                    };
                    return taskNG;
                }
@@ -300,7 +294,8 @@
                TaskType = (int)TaskOutboundTypeEnum.InToOut,
                TaskNum = await BaseDal.GetTaskNo(),
                Creater = "Systeam",
                ProductionLine = result.ProductionLine
                ProductionLine = result.ProductionLine,
                ProcessCode = result.ProcessCode,
            };
            return task;
        }
@@ -377,7 +372,8 @@
                    TaskType = (int)TaskOutboundTypeEnum.InToOut,
                    TaskNum = await BaseDal.GetTaskNo(),
                    Creater = "Systeam",
                    ProductionLine = result.ProductionLine
                    ProductionLine = result.ProductionLine,
                    ProcessCode = result.ProcessCode,
                };
                return taskNG;
            }
@@ -407,7 +403,7 @@
            ////// 调用GetProcessResponseAsync方法,获取工艺响应
            ////var processResponse = await GetProcessResponseAsync(process, input.Position);
            var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
            #endregion
            #endregion 入库任务
        }
        var task = new Dt_Task
@@ -427,6 +423,7 @@
            TaskNum = await BaseDal.GetTaskNo(),
            Creater = "Systeam",
            ProductionLine = result.ProductionLine,
            ProcessCode = result.ProcessCode,
        };
        int lastStatus = locationInfo.LocationStatus;
        ConsoleHelper.WriteSuccessLine($"修改前:" + lastStatus.ToString());
@@ -439,11 +436,12 @@
        return task;
    }
    #endregion 入库任务
    #endregion 请求任务入库
    #region 库位分配
    #region 获取货位
    /// <summary>
    ///
    /// </summary>
@@ -477,9 +475,11 @@
            return null;
        }
    }
    #endregion 获取货位
    #region 异常口入库获取库位
    private async Task<DtLocationInfo> RequestLocationByAbnormal(RequestTaskDto requestTask, bool isCheckRequest = false)
    {
        try
@@ -507,7 +507,8 @@
            return null;
        }
    }
    #endregion
    #endregion 异常口入库获取库位
    #endregion 库位分配
@@ -530,6 +531,7 @@
    #endregion 请求任务入库
    #region 创建空框出库任务
    public async Task<Dt_Task> CreateEmptyOutTaskAsync(RequestTaskDto input, Dt_StationManager stationManager)
    {
        try
@@ -571,6 +573,7 @@
            throw new Exception(ex.Message);
        }
    }
    #endregion
    #region 直接出库任务完成
@@ -594,11 +597,13 @@
            return content.Error(ex.Message);
        }
    }
    #endregion
    #region 异常口任务检测
    /// <summary>
    /// 异常排出口入库校验  所有异常交给WCS做原地址NG处理
    /// 异常排出口入库校验  所有异常交给WCS做原地址NG处理
    /// </summary>
    /// <param name="input"></param>
    /// <param name="stationManager"></param>
@@ -622,7 +627,7 @@
            // 调用GetTrayCellStatusAsync方法,获取整盘电芯
            WebResponseContent content = await GetTrayCellStatusAsync(trayCells);
            // 如果状态为false,则返回content
            if (!content.Status)  //获取整盘电芯数据, 如异常 使用空框类型入库
            if (!content.Status)  //获取整盘电芯数据, 如异常 使用空框类型入库
            {
                ConsoleHelper.WriteErrorLine(content.Message);
                throw new Exception("MOM整盘电芯属性获取异常");
@@ -654,6 +659,7 @@
                    TaskNum = await BaseDal.GetTaskNo(),
                    Creater = "Systeam",
                    ProductionLine = result.ProductionLine,
                    ProcessCode = result.ProcessCode,
                };
                return Epmtytask;
            }
@@ -715,6 +721,7 @@
                TaskNum = await BaseDal.GetTaskNo(),
                Creater = "Systeam",
                ProductionLine = result.ProductionLine,
                ProcessCode = result.ProcessCode,
            };
            var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -735,9 +742,11 @@
            throw new Exception(ex.Message);
        }
    }
    #endregion
    #region 移库任务事务
    private async Task<bool> ExecuteTransaction(DtStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo fromLocation, DtLocationInfo toLocation, int taskId)
    {
        _unitOfWorkManage.BeginTran();
@@ -780,6 +789,7 @@
    #endregion MyRegion
    #region 检测高温库是否有可出库库存
    public WebResponseContent StockCheckingAsync()
    {
        WebResponseContent webResponseContent = new WebResponseContent();
@@ -864,12 +874,13 @@
    #endregion 检测高温库是否有可出库库存
    #region 常温补空托盘至分容
    public async Task<WebResponseContent> GetFROutTrayToCW(RequestTaskDto taskDTO)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTO.Position);
            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTO.Position && x.stationStatus == "1");
            var locations = _locationRepository.QueryData(x => x.RoadwayNo == station.Roadway && x.LocationStatus == (int)LocationEnum.Free && x.LocationType == 1);
            if (locations.Count > 10)
@@ -927,7 +938,6 @@
        ConsoleHelper.WriteColorLine(station.Roadway, ConsoleColor.Magenta);
        var stackers = station.Roadway.Split(',').ToList();
        var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
            .Where(x => x.DeviceStatus == "1")
            .Where(x => stackers.Contains(x.DeviceCode))
@@ -953,6 +963,13 @@
    #endregion
    #region  常温3出库至包装
    /// <summary>
    /// 常温3出库至包装
    /// </summary>
    /// <param name="json"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> RequestOutTaskToBZAsync(RequestTaskDto json)
    {
        WebResponseContent content = new WebResponseContent();
@@ -993,6 +1010,7 @@
                TaskNum = await BaseDal.GetTaskNo(),
                Creater = "Systeam",
                ProductionLine = stockInfo.ProductionLine,
                ProcessCode = stockInfo.ProcessCode,
            };
            WMSTaskDTO taskDTO = CreateTaskDTO(task);
@@ -1014,9 +1032,10 @@
        }
    }
    #endregion
    #region 火警出库
    public WebResponseContent EmergencyTask(object obj)
    {
        WebResponseContent content = new WebResponseContent();
@@ -1062,7 +1081,6 @@
            {
                throw new Exception("已添加火警出库任务");
            }
            int taskNum = BaseDal.GetTaskNo().Result;
            Dt_Task task = new Dt_Task
@@ -1126,7 +1144,6 @@
            LogFactory.GetLog("DTS火警出库").Info(true, $"\r\r--------------------------------------");
            LogFactory.GetLog("DTS火警出库").Info(true, obj.ToJsonString());
            return content.OK();
        }
        catch (Exception ex)
        {
@@ -1135,5 +1152,45 @@
            return content.Error(ex.Message);
        }
    }
    #endregion
    #region 分容空框入库改为直接出库
    public async Task<WebResponseContent> SetEmptyOutbyInToOutAsync(RequestTaskDto request)
    {
        WebResponseContent content = new WebResponseContent();
        var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == request.PalletCode && x.CurrentAddress == request.Position);
        if (!task.IsNullOrEmpty())
        {
            var fromStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == request.Position);
            var toStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == fromStation.productLine && x.stationArea == fromStation.stationArea);
            if (!toStation.IsNullOrEmpty())
            {
                task.TargetAddress = toStation.stationLocation;
                task.NextAddress = toStation.stationChildCode;
                task.Grade = 3;
                task.TaskType = (int)TaskOutboundTypeEnum.InToOut;
                var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
                location.LocationStatus = (int)LocationEnum.Free;
                await _locationRepository.UpdateDataAsync(location);
                await BaseDal.UpdateDataAsync(task);
                return content.OK("成功");
            }
            else
            {
                ConsoleHelper.WriteErrorLine("分容空框入库改为直接出库:未找到对应站台");
                content.Error("未找到对应站台");
            }
        }
        else
        {
            ConsoleHelper.WriteErrorLine("分容空框入库改为直接出库:未找到任务");
            content.Error("未找到任务");
        }
        return content;
    }
    #endregion
}