| | |
| | | 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; |
| | |
| | | _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); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public void AddTaskExecuteDetail(List<int> taskNums, string description = "") |
| | | { |
| | | try |
| | | { |
| | | 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) |
| | | { |
| | |
| | | { |
| | | 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 }); |
| | |
| | | |
| | | 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) |
| | | { |