using DS.Module.Core; using DS.Module.Core.Attributes; using DS.Module.DjyServiceStatus; using DS.WMS.Core.TaskPlat.Dtos; using DS.WMS.Core.TaskPlat.Interface; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace DS.WMS.TaskApi.Controllers; /// /// 任务台相关接口 /// public class TaskManageController : ApiController { private readonly ITaskManageService taskManageService; public TaskManageController(ITaskManageService taskManageService) { this.taskManageService = taskManageService; } /// /// 创建任务 /// /// 任务详情 /// 返回回执 [HttpPost("CreateTaskJob")] [ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous] public async Task CreateTaskJob(TaskManageOrderMessageInfo info) { var result = await taskManageService.InitTaskJob(info); return result; } /// /// 创建BC任务 /// /// 文件 /// BC变更内容后文件 /// BC任务详情JSON /// 返回回执 [HttpPost("CreateBCTaskJob")] [ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous] public async Task CreateBCTaskJob(IFormFile file, IFormFile modifyFile, [FromForm] string jsonData) { TaskManageOrderMessageInfo? info = JsonConvert.DeserializeObject(jsonData); if (info == null) { throw new ArgumentException(nameof(jsonData)); } var result = await taskManageService.InitTaskJob(info, file, modifyFile); return result; } /// /// (测试)工作流设置任务状态 /// [HttpPost("SetTaskStatus")] [ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous] public async Task SetTaskStatus(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, TaskStatusEnum taskStatusEnum, DateTime? statusTime) { var result = await taskManageService.SetTaskStatus(bsno, taskBaseTypeEnum, taskStatusEnum, statusTime); return result; } /// /// (测试)工作流转交任务 /// [HttpPost("TransferTask")] [ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous] public async Task TransferTask(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, List userInfos) { var result = await taskManageService.TransferTask(bsno, taskBaseTypeEnum, userInfos); return result; } /// /// 任务台台账列表查询 /// [HttpPost("GetPageAsync")] public async Task>> GetPageAsync(PageRequest querySearch) { var result = await taskManageService.GetPageAsync(querySearch); return result; } /// /// 获取登陆人相关的任务统计信息 /// /// 是否强制计算 [HttpPost("GetCurrentTotalStat")] public async Task> GetCurrentTotalStat([FromQuery] bool isReCalc = false) { var result = await taskManageService.GetCurrentTotalStat(isReCalc); return result; } /// /// 完成任务(可批量) /// /// 任务主键数组 /// 返回结果 [HttpPost("CompleteTask")] public async Task> CompleteTask([FromBody] long[] Ids) { var result = await taskManageService.CompleteTask(Ids); return result; } /// /// 取消任务(可批量) /// /// 任务主键数组 /// 返回结果 [HttpPost("CancelTask")] public async Task> CancelTask([FromBody] long[] Ids) { var result = await taskManageService.CancelTask(Ids); return result; } /// /// 获取任务台相关的枚举类型的值 /// [HttpPost("GetTaskPlatEnumDict")] public DataResult GetTaskPlatEnumDict() { Dictionary> dict = new() { { "STATUS", EnumUtil.GetEnumDictionaryWithKey(typeof(TaskStatusEnum)) .Select(x => (x.Key.ToString(), x.Value)) .ToList() }, { "TASK_TYPE", EnumUtil.GetEnumDictionaryWithKey(typeof(TaskBaseTypeEnum)) .Select(x => (x.Key.ToString(), x.Value)) .ToList() }, { "SOURCE", EnumUtil.GetEnumDictionaryWithKey(typeof(TaskSourceEnum)) .Select(x => (x.Key.ToString(), x.Value)) .ToList() }, { "CATEGORY", EnumUtil.GetEnumDictionaryWithKey(typeof(TaskStatLevelEnum)) .Select(x => (x.Key.ToString(), x.Value)) .ToList() } }; var result = dict.Select(x => new { Type = x.Key, Data = x.Value.Select(y => new { Code = y.key, Name = y.value }) }); return DataResult.Success(result); } // /TaskManage/CreateBCTaskJob // /TaskManage/CreateDRAFTTaskJob // /TaskManage/CreateAdvisoryTaskJob // /TaskManage/CreateDRAFTTaskJob }