wanshenmean
2024-11-09 ad18b0c17b5b1f715c33cb2a2b39589c10434a00
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -401,7 +401,7 @@
    #region 请求任务入库
    /// <summary>
    /// 请求任务
    /// 请求任务巷道
    /// </summary>
    /// <param name="input">请求模型</param>
    /// <returns>包含任务信息的响应内容</returns>
@@ -416,7 +416,7 @@
            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
            if (task != null)
            {
                if (task.TaskState == (int)TaskInStatusEnum.InNew)
                //if (task.TaskState == (int)TaskInStatusEnum.InNew)
                {
                    // 创建WMS任务
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
@@ -433,8 +433,6 @@
                    };
                    return content.OK(data: taskDTO);
                }
                content = await UpdateExistingTask(input, task);
                return content;
            }
            // 创建一个TrayCellsStatusDto对象,并赋值
            TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
@@ -465,8 +463,8 @@
            // 调用GetProcessResponseAsync方法,获取工艺响应
            var processResponse = await GetProcessResponseAsync(process, input.Position);
            // 如果task不为null,则调用UpdateExistingTask方法,更新任务;否则调用CreateNewTask方法,创建新任务
            content = task != null ? await UpdateExistingTask(input, task) : await CreateNewTask(input, processResponse);
            // 调用CreateNewTask方法,创建新任务
            content =  await CreateNewTask(input, processResponse);
            if (content.Status)
            {
                var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -483,6 +481,35 @@
        return content;
    }
    /// <summary>
    /// 更新任务货位
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
            if (task == null)
                return content.Error($"暂未找到【{input.PalletCode}】的任务");
            return content = await UpdateExistingTask(input, task);
        }
        catch (Exception err)
        {
            throw;
        }
    }
    /// <summary>
    /// 空托盘入库申请
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input)
    {
        WebResponseContent content = new WebResponseContent();
@@ -718,6 +745,12 @@
    #region 任务状态更改
    /// <summary>
    /// 更新任务状态&出库解盘
    /// </summary>
    /// <param name="taskNum"></param>
    /// <param name="taskState"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState)
    {
        WebResponseContent content = new WebResponseContent();
@@ -726,6 +759,23 @@
            var task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum);
            if (task == null)
                return content.Error("未找到任务");
            if (taskState == (int)TaskOutStatusEnum.Line_OutFinish)
            {
                var taskHty = CreateHistoricalTask(task);
                await _unitOfWorkManage.UseTranAsync(async () =>
                {
                    var asb = await BaseDal.DeleteDataByIdAsync(task.TaskId);
                    var asbHty = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
                    if (asb && asbHty)
                        content.OK();
                    else
                        throw new Exception();
                });
                content.OK();
            }
            else
            {
            task.TaskState = taskState;
            var asb = await BaseDal.UpdateDataAsync(task);
            if (asb)
@@ -733,6 +783,34 @@
            else
                content.Error();
        }
        }
        catch (Exception ex)
        {
            content.Error(ex.Message);
        }
        return content;
    }
    #endregion
    #region 出库解盘
    /// <summary>
    /// 出库解盘接口
    /// </summary>
    /// <param name="taskNum"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> OutUnblockInterface(int taskNum)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            var task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum);
            if (task == null)
                return content.Error("未找到任务");
            task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
            var taskHty = CreateHistoricalTask(task);
        }
        catch (Exception ex)
        {
            content.Error(ex.Message);