陈勇
2026-03-30 a4342e58b21d24428285f78abb95d6a87ccf5979
ÏîÄ¿´úÂë/WCS/WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -4,7 +4,6 @@
using Newtonsoft.Json;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common;
@@ -19,12 +18,9 @@
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_TaskInfoService
{
@@ -97,6 +93,7 @@
                    task.CarType = item.CarType;
                    task.PVI = item.PVI;
                    task.NextAddress = item.NextAddress;
                    task.RoadwayNo = item.RoadwayNo;
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå‡ºåº“ä»»åŠ¡
                    if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
@@ -105,7 +102,6 @@
                        List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress);
                        if (routers.Count > 0)
                        {
                            // è®¾ç½®ä»»åŠ¡çŠ¶æ€ä¸ºå‡ºåº“æ–°å»º
                            task.TaskState = (int)TaskOutStatusEnum.OutNew;
                            // è®¾ç½®å½“前地址为源地址
@@ -131,7 +127,6 @@
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                    {
                        // æŸ¥è¯¢ä»Žæºåœ°å€åˆ°ç›®æ ‡åœ°å€çš„路由
                        List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
                        if (routers.Count > 0)
@@ -667,19 +662,36 @@
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                {
                    var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
                    if (!routers.Any()) return WebResponseContent.Instance.Error($"未找到设备路由信息");
                    if (task.NextAddress == task.TargetAddress)
                    {
                        task.ModifyDate = DateTime.Now;
                        task.Modifier = "System";
                        int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                    task.TaskState = nextStatus;
                    task.CurrentAddress = task.NextAddress;
                    task.NextAddress = routers.FirstOrDefault().ChildPosi;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.UpdateData(task);
                        task.TaskState = nextStatus;
                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                        task_Hty.TaskId = 0;
                        task_Hty.CarType = task.CarType;
                        task_Hty.PVI = task.PVI;
                        task_Hty.RoadwayNo = task.RoadwayNo;
                        BaseDal.DeleteData(task);
                        _taskHtyRepository.AddData(task_Hty);
                    }
                    else
                    {
                        var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
                        if (!routers.Any()) return WebResponseContent.Instance.Error($"未找到设备路由信息");
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                        int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                        task.TaskState = nextStatus;
                        task.CurrentAddress = task.NextAddress;
                        task.NextAddress = routers.FirstOrDefault().ChildPosi;
                        task.ModifyDate = DateTime.Now;
                        task.Modifier = "System";
                        BaseDal.UpdateData(task);
                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                    }
                    //暂不考虑多个出库口
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
@@ -691,7 +703,6 @@
                    Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                    task_Hty.TaskId = 0;
                    BaseDal.DeleteData(task);
                    _taskHtyRepository.AddData(task_Hty);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机入库完成");
@@ -699,10 +710,8 @@
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                {
                    task.TaskState = (int)TaskStatusGroup.Completed;
                    Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                    task_Hty.TaskId = 0;
                    BaseDal.DeleteData(task);
                    _taskHtyRepository.AddData(task_Hty);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机移库完成");