using DS.Module.Core; using DS.Module.DjyServiceStatus; using DS.WMS.Core.TaskPlat.Dtos; using DS.WMS.Core.TaskPlat.Entity; using Microsoft.AspNetCore.Http; using SqlSugar; using System.Linq.Expressions; namespace DS.WMS.Core.TaskPlat.Interface { public interface ITaskManageService : ITaskManageBaseService { /// /// 取消任务(可批量) /// /// 任务主键数组 /// 返回结果 Task> CancelTask(long[] ids); /// /// 完成任务(可批量) /// /// 任务主键数组 /// 返回结果 Task> CompleteTask(long[] ids); /// /// 获取登陆人相关的任务统计信息 /// /// 返回回执 Task> GetCurrentTotalStat(GetCurrentTotalStatQueryDto querySearch); /// /// 任务台台账列表查询 /// Task>> GetPageAsync(PageRequest querySearch); /// /// 创建任务 /// /// 任务详情 /// /// /// 返回回执 Task InitTaskJob(TaskManageOrderMessageInfo info, IFormFile file = null, IFormFile modifyFile = null); /// /// 工作流设置任务在个人下的状态 /// /// 主业务主键 /// 主业务类型 /// 业务状态 /// 状态发生时间 /// 要设置任务状态的人员列表 /// 子业务主键[可选,当不为空时表示设置子任务的个人状态] /// 子业务类型 Task SetTaskUserStatus(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, TaskStatusEnum taskStatusEnum, DateTime? statusTime, List userInfos, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null); /// /// 工作流设置任务状态 /// /// 业务主键 /// 业务类型 /// 业务状态 /// 状态发生时间 /// 完成任务前是否检查所有子任务是否完成 /// 任务描述 /// 用户Id列表,用于筛选指定用户下的任务[可选,当不为空时会设置此用户列表涉及到的相关任务的状态] /// 子业务主键[可选,当不为空时表示设置子任务的状态] /// 子业务类型 Task SetTaskStatusWithBsno(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, TaskStatusEnum taskStatusEnum, DateTime? statusTime,bool isCheckAllChildTaskComplete, string? taskDesc = null, List? userIdList = null, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null); /// /// 工作流任务转交 /// /// 业务主键 /// 业务类型 /// 要转交的人员信息列表 /// 子业务主键[可选,当不为空时表示设置子任务的状态] /// 子业务类型 Task TransferTask(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, List userInfos, SqlSugarScopeProvider? tenantDb = null, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null); /// /// 工作流设置任务对象属性 /// Task SetTaskBaseInfoPropertyWithBsno(long bsno, TaskBaseTypeEnum taskBaseTypeEnum, long? childBsno = null, TaskBaseTypeEnum? childTaskBaseTypeEnum = null, params Expression>[] columns); /// /// 测试用 /// Task TestTaskFlow(string taskType, long taskId, int testType); /// /// 领取任务到当前登陆人(可批量) /// Task PullTask(long[] ids); /// /// 任务台台账子任务列表查询 /// Task>> GetChildTaskList(long taskId); } }