1
HuBingJie
2025-12-25 5ea48455463691678b806badbee198699a878b5a
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,4 +1,4 @@
#region << ç‰ˆ æœ¬ æ³¨ é‡Š >>
#region << ç‰ˆ æœ¬ æ³¨ é‡Š >>
/*----------------------------------------------------------------
 * å‘½åç©ºé—´ï¼šWIDESEAWCS_TaskInfoService
 * åˆ›å»ºè€…:胡童庆
@@ -47,7 +47,8 @@
        private readonly IRepository<Dt_Router> _routerRepository;
        private readonly IRepository<Dt_StationManger> _stationMangerRepository;
        private readonly IMapper _mapper;
        private readonly ITaskHtyService _taskHtyService;
        private Dictionary<string, OrderByType> _taskOrderBy = new()
            {
@@ -69,7 +70,7 @@
        /// </summary>
        public IRepository<Dt_Task> Repository => BaseDal;
        public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, IUnitOfWorkManage unitOfWorkManage, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IMapper mapper, IRepository<Dt_Router> routerRepository, IRepository<Dt_StationManger> stationMangerRepository) : base(BaseDal)
        public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, IUnitOfWorkManage unitOfWorkManage, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IMapper mapper, IRepository<Dt_Router> routerRepository, IRepository<Dt_StationManger> stationMangerRepository, ITaskHtyService taskHtyService) : base(BaseDal)
        {
            _routerService = routerService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -78,6 +79,7 @@
            _mapper = mapper;
            _routerRepository = routerRepository;
            _stationMangerRepository = stationMangerRepository;
            _taskHtyService = taskHtyService;
        }
        /// <summary>
@@ -407,9 +409,14 @@
                    //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                    task.TaskState = (int)TaskOutStatusEnum.SC_OutExecuting;
                    if (task.TaskState ==(int)TaskOutStatusEnum.SC_OutFinish)
                    {
                        task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
                    }
                    else
                    {
                        task.TaskState = (int)TaskOutStatusEnum.SC_OutExecuting;
                    }
                    task.Dispatchertime = DateTime.Now;
                }
                else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)
@@ -444,7 +451,11 @@
                task.ModifyDate = DateTime.Now;
                task.Modifier = "System";
                BaseDal.UpdateData(task);
                bool res  = BaseDal.UpdateData(task);
                if (!res)
                {
                    return content = WebResponseContent.Instance.Error($"更新任务信息失败,任务号:【{task.TaskNum}】");
                }
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工手动将任务状态从【{oldState}】跳转到【{task.TaskState}】" : $"系统自动流程,任务状态从【{oldState}】转到【{task.TaskState}】");
@@ -629,6 +640,9 @@
        {
            task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
            bool res = BaseDal.UpdateData(task);
            // æ·»åŠ å…¥åº“åŽ†å²è®°å½•
            //AddTaskHistory(task);
            return res;
        }
@@ -642,7 +656,7 @@
            BaseDal.UpdateData(task);
            // æ·»åŠ å…¥åº“åŽ†å²è®°å½•
            // _task_HtyService.AddTaskHty(task);
            _taskHtyService.AddTaskHistory(task);
            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "入库完成");
            // å…¥åº“完成后删除任务
@@ -660,7 +674,7 @@
            BaseDal.UpdateData(task);
            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "移库完成");
            //AddTaskHistory(task);
            // ç§»åº“完成后删除任务
            bool res = BaseDal.DeleteData(task);
            // _task_HtyService.AddTaskHty(task);
@@ -849,7 +863,7 @@
        public Dt_Task GetOutTaskInfo2(string PalletCode)
        {
            return BaseDal.QueryFirst(x => x.PalletCode == PalletCode && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish, TaskOrderBy);
            return BaseDal.QueryFirst(x => x.PalletCode == PalletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish, TaskOrderBy);
        }
        public List<Dt_Task> QueryStackerCraneYKTasks(string deviceNo)
@@ -857,5 +871,68 @@
            return BaseDal.QueryData(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew, TaskOrderBy);
        }
        public WebResponseContent WCSCancelinventory(int taskNum)
        {
            //查询任务信息
            Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && (x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() || x.TaskState == TaskRelocationStatusEnum.RelocationNew.ObjToInt() || x.TaskState == TaskInStatusEnum.Line_InExecuting.ObjToInt()));
            if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}或状态不对】");
            bool taskmsseg = BaseDal.DeleteData(task);
            bool res = AddTaskHistory(task,"手动取消");
            return taskmsseg && res ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error();
        }
        /// <summary>
        /// æ·»åŠ åŽ†å²ä»»åŠ¡è®°å½•ï¼ˆé™æ€æ–¹æ³•ï¼‰
        /// </summary>
        /// <param name="task">任务对象</param>
        /// <returns>是否添加成功</returns>
        public bool AddTaskHistory(Dt_Task task,string operateType)
        {
            try
            {
                if (task == null)
                {
                    return false;
                }
                // åˆ›å»ºä»»åŠ¡åŽ†å²æœåŠ¡å®žä¾‹
                //var taskHtyService = App.GetService<ITaskHtyService>();
                //if (taskHtyService == null)
                //{
                //    return false;
                //}
                // æ·»åŠ åŽ†å²è®°å½•
                bool result = _taskHtyService.AddTaskHistory(task, operateType);
                return result;
            }
            catch (Exception ex)
            {
                // è®°å½•异常日志
                Console.WriteLine($"添加历史任务记录失败: {ex.Message}");
                return false;
            }
        }
        /// <summary>
        /// æ‰‹åŠ¨å®ŒæˆæŽ¥å£
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public WebResponseContent WCSManualTaskCompleted(int taskNum)
        {
            //查询任务信息
            Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
            if (task == null) return WebResponseContent.Instance.OK();
            bool taskmsseg = BaseDal.DeleteData(task);
            bool res = AddTaskHistory(task, "手动完成");
            return taskmsseg && res ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error();
        }
    }
}