hutongqing
2024-08-23 e98b07c84a2a496da895ef6b523b29ccc75e004d
WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -15,6 +15,7 @@
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using AutoMapper;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
using System;
@@ -41,12 +42,14 @@
        private readonly IRouterService _routerService;
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository;
        private readonly IMapper _mapper;
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository) : base(BaseDal)
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper) : base(BaseDal)
        {
            _routerService = routerService;
            _taskExecuteDetailService = taskExecuteDetailService;
            _taskExecuteDetailRepository = taskExecuteDetailRepository;
            _mapper = mapper;
        }
        /// <summary>
@@ -66,20 +69,8 @@
                    {
                        continue;
                    }
                    Dt_Task task = new()
                    {
                        PalletCode = item.PalletCode,
                        TaskNum = item.TaskNum,
                        Roadway = item.RoadWay,
                        TaskType = item.TaskType,
                        SourceAddress = item.SourceAddress,
                        WMSId = item.Id,
                        TargetAddress = item.TargetAddress,
                        Grade = item.Grade,
                        Creater = "WMS"
                    };
                    Dt_Task task = _mapper.Map<Dt_Task>(item);
                    task.Creater = "WMS";
                    if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(task.TaskType.ToString()).ToString(), out int result))
                    {
                        List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
@@ -89,7 +80,7 @@
                            task.TaskState = (int)TaskOutStatusEnum.OutNew;
                            task.CurrentAddress = item.SourceAddress;
                            task.NextAddress = routers.FirstOrDefault().ChildPosi;
                            tasks.Add(task);
                        }
                    }
                    else if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(task.TaskType.ToString()).ToString(), out result))
@@ -101,18 +92,11 @@
                            task.TaskState = (int)TaskInStatusEnum.InNew;
                            task.CurrentAddress = item.SourceAddress;
                            task.NextAddress = routers.FirstOrDefault().ChildPosi;
                            tasks.Add(task);
                        }
                    }
                    else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(task.TaskType.ToString()).ToString(), out result))
                    {
                        //if ((TaskRelocationTypeEnum)result == TaskRelocationTypeEnum.Relocation)
                        //{
                        //    task.TaskState = (int)TaskOutStatusEnum.OutNew;
                        //    task.CurrentAddress = item.SourceAddress;
                        //    task.NextAddress = item.TargetAddress;
                        //    tasks.Add(task);
                        //}
                    }
                    else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(task.TaskType.ToString()).ToString(), out result))
                    {
@@ -122,10 +106,12 @@
                    {
                        throw new Exception($"接收WMS任务失败,任务类型错误,未找到该任务类型,任务号:【{item.TaskNum}】,任务类型:【{item.TaskType}】");
                    }
                    tasks.Add(task);
                }
                BaseDal.AddData(tasks);
                _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "接收WMS任务");
                content = WebResponseContent.Instance.OK("成功");
            }
@@ -381,7 +367,7 @@
                else if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(task.TaskType.ToString()).ToString(), out result) && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
                {
                    string locationCode = "";
                    //todo 调用WMS申请分配货位
                    //todo
                    int nextStatus = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().Where(x => x > task.TaskState).OrderBy(x => x).FirstOrDefault();
                    task.TaskState = nextStatus;