Asoka.Wang 21f044712c 1
2025-08-27 18:39:19 +08:00

115 lines
3.1 KiB
C#

using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using ZhonTai.Admin.Core.Dto;
using NPP.SmartSchedue.Api.Contracts.Services.Work.Input;
using NPP.SmartSchedue.Api.Contracts.Services.Work.Output;
using NPP.SmartSchedue.Api.Contracts.Core.Enums;
namespace NPP.SmartSchedue.Api.Contracts.Services.Work;
/// <summary>
/// 工作任务服务接口
/// </summary>
public interface IWorkOrderService
{
/// <summary>
/// 查询
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<WorkOrderGetOutput> GetAsync(long id);
/// <summary>
/// 查询分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<PageOutput<WorkOrderGetPageOutput>> GetPageAsync(PageInput<WorkOrderGetPageInput> input);
/// <summary>
/// 添加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<long> AddAsync(WorkOrderAddInput input);
/// <summary>
/// 批量添加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<BatchWorkOrderAddOutput> BatchAddAsync(BatchWorkOrderAddInput input);
/// <summary>
/// 修改
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task UpdateAsync(WorkOrderUpdateInput input);
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task DeleteAsync(long id);
/// <summary>
/// 软删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task SoftDeleteAsync(long id);
/// <summary>
/// 批量软删除
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
Task BatchSoftDeleteAsync(long[] ids);
/// <summary>
/// 更新任务状态
/// </summary>
/// <param name="id"></param>
/// <param name="status"></param>
/// <returns></returns>
Task UpdateStatusAsync(long id, WorkOrderStatusEnum status);
/// <summary>
/// 开始任务
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task StartAsync(long id);
/// <summary>
/// 完成任务
/// </summary>
/// <param name="id"></param>
/// <param name="actualWorkHours"></param>
/// <returns></returns>
Task CompleteAsync(long id, decimal? actualWorkHours = null);
/// <summary>
/// 单个任务自检
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<WorkOrderValidationOutput> ValidateWorkOrderAsync(SingleWorkOrderValidationInput input);
/// <summary>
/// 多个任务自检
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<MultipleWorkOrderValidationOutput> ValidateMultipleWorkOrdersAsync(WorkOrderValidationInput input);
/// <summary>
/// 根据用户ID查询任务列表
/// </summary>
/// <param name="userId">用户ID</param>
/// <returns></returns>
Task<List<WorkOrderGetOutput>> GetByUserIdAsync(long userId);
}