hutongqing
2024-08-26 569e91c63636345391f741df049c9374a141a434
WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
@@ -40,39 +40,36 @@
            _taskRepository = taskRepository;
        }
        public void AddTaskExecuteDetail(int taskId, int taskNum, int taskState, string description = "", bool isManual = false)
        public void AddTaskExecuteDetail(int taskId, string description = "")
        {
            try
            {
                bool isNormal = true;
                ;
                if (Enum.TryParse(typeof(TaskOutStatusEnum), taskState.ToString(), out object? result))
                {
                    if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                        isNormal = false;
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskId == taskId);
                if (task == null) return;
                int taskNum = task.TaskNum;
                int taskState = task.TaskState;
                }
                else if (Enum.TryParse(typeof(TaskInStatusEnum), taskState.ToString(), out result))
                if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
                {
                    if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                        isNormal = false;
                }
                else if (Enum.TryParse(typeof(TaskRelocationTypeEnum), taskState.ToString(), out result))
                else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                {
                    if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
                        isNormal = false;
                }
                else if (Enum.TryParse(typeof(TaskOtherTypeEnum), taskState.ToString(), out result))
                Dt_TaskExecuteDetail taskExecuteDetail = new()
                {
                }
                Dt_TaskExecuteDetail taskExecuteDetail = new Dt_TaskExecuteDetail()
                {
                    IsManual = isManual,
                    IsManual = App.User.UserId > 0,
                    IsNormal = isNormal,
                    TaskNum = taskNum,
                    TaskId = taskId,
                    TaskState = taskState,
                    Description = description
                    Description = description,
                    CurrentAddress = task.CurrentAddress,
                    NextAddress = task.NextAddress,
                };
                BaseDal.AddData(taskExecuteDetail);
            }
@@ -82,15 +79,63 @@
            }
        }
        public void AddTaskExecuteDetail(List<int> taskNums, string description = "")
        {
            try
            {
                //Task.Run(() =>
                //{
                //Thread.Sleep(500);
                List<Dt_TaskExecuteDetail> taskExecuteDetails = new List<Dt_TaskExecuteDetail>();
                foreach (var item in taskNums)
                {
                    bool isNormal = true;
                    Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == item);
                    if (task == null) return;
                    int taskNum = task.TaskNum;
                    int taskState = task.TaskState;
                    if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
                    {
                        if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                            isNormal = false;
                    }
                    else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                    {
                        if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
                            isNormal = false;
                    }
                    Dt_TaskExecuteDetail taskExecuteDetail = new()
                    {
                        IsManual = App.User.UserId > 0,
                        IsNormal = isNormal,
                        TaskNum = taskNum,
                        TaskId = task.TaskId,
                        TaskState = taskState,
                        Description = description,
                        CurrentAddress = task.CurrentAddress,
                        NextAddress = task.NextAddress,
                    };
                    taskExecuteDetails.Add(taskExecuteDetail);
                }
                BaseDal.AddData(taskExecuteDetails);
                //});
            }
            catch (Exception ex)
            {
            }
        }
        public WebResponseContent GetDetailInfo(int taskNum)
        {
            WebResponseContent content = new WebResponseContent();
            WebResponseContent content = new();
            try
            {
                int active = -1;
                List<object> list = new List<object>();
                List<int> steps = new List<int>();
                List<object> list = new();
                List<int> steps = new();
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
                if (task != null)
                {
@@ -146,27 +191,8 @@
                    {
                        throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{taskNum}】,任务类型:【{task.TaskType}】");
                    }
                    active = steps.IndexOf(task.TaskState) + 1;
                    List<int> details = BaseDal.QueryData(x => x.TaskNum == taskNum && x.TaskState <= task.TaskState).GroupBy(x => x.TaskState).Select(x => x.Key).ToList();
                    if (details.Count == 0)
                    {
                        active = steps.IndexOf(task.TaskState) + 1;
                        if (active < steps.Count)
                        {
                            active -= 1;
                        }
                    }
                    else
                    {
                        if (details.Count == steps.Count)
                        {
                            active = details.Count;
                        }
                        else
                        {
                            active = details.Count - 1;
                        }
                    }
                }
                content = WebResponseContent.Instance.OK(data: new { active, list });
@@ -180,10 +206,9 @@
        public WebResponseContent GetDetailDatas(int taskNum)
        {
            WebResponseContent content = new WebResponseContent();
            WebResponseContent content = new();
            try
            {
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
                if (task != null)
                {