You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.2 KiB
C#

4 months ago
using DS.Module.Core;
using DS.WMS.Core.TaskPlat.Dtos;
using DS.WMS.Core.TaskPlat.Entity;
using SqlSugar;
using System.Linq.Expressions;
namespace DS.WMS.Core.TaskPlat.Interface
{
/// <summary>
/// 任务模块业务类的基类,封装了一些常用的方法
/// </summary>
public interface ITaskManageBaseService
{
/// <summary>
/// 更新任务主表状态
/// </summary>
/// <param name="taskIds">任务主键数组</param>
/// <param name="columns">需要更新状态的列</param>
Task SetTaskStatus(long[] taskIds, params Expression<Func<TaskBaseInfo, bool>>[] columns);
/// <summary>
4 months ago
/// 设置任务处理人
/// </summary>
/// <param name="taskIds">任务主键数组</param>
/// <param name="userInfo">人员信息列表</param>
Task SetTaskOwner(long[] taskIds, List<RecvUserInfo> userInfo);
/// <summary>
/// 根据任务ID获取附件信息
/// </summary>
/// <param name="taskId">任务Id</param>
/// <param name="fileCategory">附件分类代码</param>
Task<(string fileFullPath, string fileName)> GetTaskFileInfo(long taskId, string fileCategory);
/// <summary>
/// 根据订单及配置,将所有或指定的公共任务匹配到个人
/// </summary>
/// <param name="taskIdList">任务Id列表当传入时则只匹配列表中指定的任务</param>
/// <returns>涉及当前登陆人的匹配结果</returns>
Task<DataResult<MatchTaskResultDto>> MatchTask(List<long>? taskIdList = null);
/// <summary>
/// 通过任务主表主键设置任务状态(任务台使用)
/// </summary>
/// <param name="taskBaseId">任务主表主键</param>
/// <param name="taskStatusEnum">业务状态</param>
/// <param name="statusTime">状态发生时间</param>
/// <param name="bsno">业务主键</param>
Task<DataResult> SetTaskStatus(long taskBaseId, TaskStatusEnum taskStatusEnum, DateTime? statusTime, long? bsno = null);
/// <summary>
/// 是否具有指定任务列表的处理权限
/// </summary>
/// <returns>成功:全部具有处理权限;失败:存在不具有处理权限的任务,同时返回任务流水号列表</returns>
Task<DataResult<List<string>>> HasTaskHandleAuthorityWithBsno(IEnumerable<(long bsno, TaskBaseTypeEnum taskType)> businessTaskList);
/// <summary>
/// 是否具有指定任务列表的处理权限
/// </summary>
/// <returns>成功:全部具有处理权限;失败:存在不具有处理权限的任务,同时返回任务流水号列表</returns>
Task<DataResult<List<string>>> HasTaskHandleAuthority(IEnumerable<long> taskIdList);
/// <summary>
/// 根据订单Id列表获取关联的任务流水号
/// </summary>
Task<DataResult<List<string>>> GetSeaExportAllotTaskNo(IEnumerable<long> seaExportIdList);
/// <summary>
/// 获取不创建任务的任务类型列表
/// </summary>
Task<List<TaskBaseTypeEnum>> GetNotCreateTaskTypeList(SqlSugarScopeProvider? tenantDb = null);
}
}