From c020f31a67fc5aa5644511bddff075f7ecc85234 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期二, 27 五月 2025 15:35:27 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/ZhongHeLiTiKu --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 229 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" new file mode 100644 index 0000000..06eed97 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" @@ -0,0 +1,229 @@ +锘�#region << 鐗� 鏈� 娉� 閲� >> +/*---------------------------------------------------------------- + * 鍛藉悕绌洪棿锛歐IDESEAWCS_TaskInfoService + * 鍒涘缓鑰咃細鑳$搴� + * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36 + * 鐗堟湰锛歏1.0.0 + * 鎻忚堪锛� + * + * ---------------------------------------------------------------- + * 淇敼浜猴細 + * 淇敼鏃堕棿锛� + * 鐗堟湰锛歏1.0.1 + * 淇敼璇存槑锛� + * + *----------------------------------------------------------------*/ +#endregion << 鐗� 鏈� 娉� 閲� >> + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.Enums; +using WIDESEAWCS_Core; +using WIDESEAWCS_Core.BaseServices; +using WIDESEAWCS_Core.Enums; +using WIDESEAWCS_DTO.TaskEnum; +using WIDESEAWCS_ITaskInfoRepository; +using WIDESEAWCS_ITaskInfoService; +using WIDESEAWCS_Model.Models; + +namespace WIDESEAWCS_TaskInfoService +{ + public class TaskExecuteDetailService : ServiceBase<Dt_TaskExecuteDetail, ITaskExecuteDetailRepository>, ITaskExecuteDetailService + { + private readonly ITaskRepository _taskRepository; + + public TaskExecuteDetailService(ITaskExecuteDetailRepository BaseDal, ITaskRepository taskRepository) : base(BaseDal) + { + _taskRepository = taskRepository; + } + + public void AddTaskExecuteDetail(int taskId, string description = "") + { + try + { + bool isNormal = true; + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskId == taskId); + if (task == null) return; + int taskNum = task.TaskNum; + int TaskStatus = task.TaskStatus; + + if (!int.TryParse(Enum.Parse<OutTaskStatusEnum>(TaskStatus.ToString()).ToString(), out int result)) + { + if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish) + isNormal = false; + } + else if (!int.TryParse(Enum.Parse<InTaskStatusEnum>(TaskStatus.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 = taskId, + TaskState = TaskStatus, + Description = description, + CurrentAddress = task.CurrentAddress, + NextAddress = task.NextAddress, + }; + BaseDal.AddData(taskExecuteDetail); + } + catch (Exception ex) + { + + } + } + + 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 TaskStatus = task.TaskStatus; + + if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(TaskStatus.ToString()).ToString(), out int result)) + { + if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish) + isNormal = false; + } + else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(TaskStatus.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 = TaskStatus, + 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(); + try + { + int active = -1; + List<object> list = new(); + List<int> steps = new(); + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); + if (task != null) + { + + if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(task.TaskType.ToString()).ToString(), out int result)) + { + steps = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().Where(x => x <= (int)TaskOutStatusEnum.OutFinish).ToList(); + + foreach (var item in steps) + { + object obj; + FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString()); + DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); + if (descriptionAttribute != null) + { + obj = new { title = item, description = descriptionAttribute.Description }; + } + else + { + obj = new { title = item, description = ((TaskOutStatusEnum)item).ToString() }; + } + list.Add(obj); + } + } + else if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(task.TaskType.ToString()).ToString(), out result)) + { + steps = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().Where(x => x <= (int)TaskInStatusEnum.InFinish).ToList(); + foreach (var item in steps) + { + object obj; + FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString()); + DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); + if (descriptionAttribute != null) + { + obj = new { title = item, description = descriptionAttribute.Description }; + } + else + { + obj = new { title = item, description = ((TaskInStatusEnum)item).ToString() }; + } + list.Add(obj); + } + } + else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(task.TaskType.ToString()).ToString(), out result)) + { + //todo 璋冪敤WMS绉诲簱瀹屾垚 + } + else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(task.TaskType.ToString()).ToString(), out result)) + { + + } + else + { + throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + } + active = steps.IndexOf(task.TaskStatus) + 1; + + } + + content = WebResponseContent.Instance.OK(data: new { active, list }); + } + catch (Exception ex) + { + + } + return content; + } + + public WebResponseContent GetDetailDatas(int taskNum) + { + WebResponseContent content = new(); + try + { + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); + if (task != null) + { + List<Dt_TaskExecuteDetail> taskExecuteDetails = BaseDal.QueryData(x => x.TaskId == task.TaskId, new Dictionary<string, SqlSugar.OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), SqlSugar.OrderByType.Asc } }); + + content = WebResponseContent.Instance.OK(data: taskExecuteDetails); + } + else + { + content = WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); + } + } + catch (Exception ex) + { + + } + return content; + } + } +} -- Gitblit v1.9.3