| | |
| | | *----------------------------------------------------------------*/ |
| | | #endregion << 版 本 注 释 >> |
| | | |
| | | using AutoMapper; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | 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> |
| | |
| | | { |
| | | 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); |
| | |
| | | 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)) |
| | |
| | | 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)) |
| | | { |
| | |
| | | { |
| | | 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("成功"); |
| | | } |
| | |
| | | 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; |