hutongqing
2024-11-20 70233af5426b0d1c343ebe87183303a34a9aaa58
WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
@@ -22,6 +22,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
@@ -42,40 +43,62 @@
        public void AddTaskExecuteDetail(int taskId, string description = "")
        {
            // 尝试执行添加任务执行详情的方法
            try
            {
                // 初始化是否正常为true
                bool isNormal = true;
                // 根据任务id查询任务
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskId == taskId);
                // 如果任务为空,则返回
                if (task == null) return;
                // 获取任务数量
                int taskNum = task.TaskNum;
                // 获取任务状态
                int taskState = task.TaskState;
                // 尝试将任务状态转换为TaskOutStatusEnum枚举类型
                if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
                {
                    if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                    // 如果转换失败,则将任务状态转换为TaskInStatusEnum枚举类型
                    if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                    {
                        // 如果转换失败,则将isNormal设置为false
                        isNormal = false;
                    }
                }
                else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                // 如果转换成功,则判断任务状态是否大于OutFinish
                else if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                {
                    if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
                        isNormal = false;
                    // 如果大于,则将isNormal设置为false
                    isNormal = false;
                }
                // 创建任务执行详情对象
                Dt_TaskExecuteDetail taskExecuteDetail = new()
                {
                    // 设置是否手动执行
                    IsManual = App.User.UserId > 0,
                    // 设置是否正常
                    IsNormal = isNormal,
                    // 设置任务数量
                    TaskNum = taskNum,
                    // 设置任务id
                    TaskId = taskId,
                    // 设置任务状态
                    TaskState = taskState,
                    // 设置描述
                    Description = description,
                    // 设置当前地址
                    CurrentAddress = task.CurrentAddress,
                    // 设置下一个地址
                    NextAddress = task.NextAddress,
                };
                // 添加任务执行详情
                BaseDal.AddData(taskExecuteDetail);
            }
            catch (Exception ex)
            {
            }
        }