using DS.Module.Core;
using DS.Module.Core.Attributes;
using DS.Module.Core.Data;
using DS.Module.DjyServiceStatus;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.TaskPlat;
using DS.WMS.Core.TaskPlat.Dtos;
using DS.WMS.Core.TaskPlat.Interface;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
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("SetTaskUserStatus")]
[ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous]
public async Task SetTaskUserStatus(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, TaskStatusEnum taskStatusEnum, DateTime? statusTime, [FromBody] List userInfos, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null)
{
var result = await taskManageService.SetTaskUserStatus(bsno, taskBaseTypeEnum, taskStatusEnum, statusTime, userInfos, childBsno, childTaskBaseTypeEnum);
return result;
}
///
/// (测试)工作流设置任务状态
///
[HttpPost("SetTaskStatus")]
[ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous]
public async Task SetTaskStatus(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, TaskStatusEnum taskStatusEnum, DateTime? statusTime, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null)
{
var result = await taskManageService.SetTaskStatusWithBsno(bsno, taskBaseTypeEnum, taskStatusEnum, statusTime, true, null, null, childBsno, childTaskBaseTypeEnum);
return result;
}
///
/// (测试)工作流转交任务
///
[HttpPost("TransferTask")]
[ApiUser(ApiCode = "BCTaskManage"), AllowAnonymous]
public async Task TransferTask(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, List userInfos, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null)
{
var result = await taskManageService.TransferTask(bsno, taskBaseTypeEnum, userInfos, null, childBsno, childTaskBaseTypeEnum);
return result;
}
///
/// 任务台台账列表查询
///
[HttpPost("GetPageAsync")]
public async Task>> GetPageAsync(PageRequest querySearch)
{
var result = await taskManageService.GetPageAsync(querySearch);
return result;
}
///
/// 获取登陆人相关的任务统计信息
///
[HttpPost("GetCurrentTotalStat")]
public async Task> GetCurrentTotalStat(GetCurrentTotalStatQueryDto querySearch)
{
var result = await taskManageService.GetCurrentTotalStat(querySearch);
return result;
}
///
/// 任务台台账子任务列表查询
///
[HttpGet("GetChildTaskList")]
public async Task>> GetChildTaskList(long taskId)
{
var result = await taskManageService.GetChildTaskList(taskId);
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