using DS.Module.Core; using DS.WMS.Core.Flow.Dtos; using DS.WMS.Core.Flow.Interface; using DS.WMS.Core.Op.Entity; using Microsoft.AspNetCore.Mvc; namespace DS.WMS.MainApi.Controllers; /// /// 流程实例-客户端 /// public class ClientFlowInstanceController : ApiController { private readonly IClientFlowInstanceService _invokeService; /// /// 构造函数 /// /// public ClientFlowInstanceController(IClientFlowInstanceService invokeService) { _invokeService = invokeService; } /// /// 确定是否为最后审批人 /// /// 任务类型 /// 业务ID /// 业务类型(可空) /// [HttpGet, Route("IsLastMarker")] public DataResult IsLastMarker([FromQuery] TaskBaseTypeEnum taskType, [FromQuery] long bsId, [FromQuery] BusinessType? bsType) { return _invokeService.IsLastMarker(taskType, bsId, bsType); } /// /// 列表 /// /// /// [HttpPost] [Route("GetFlowInstanceList")] public DataResult> GetListByPage([FromBody] PageRequest request) { var res = _invokeService.GetListByPage(request); return res; } /// /// 编辑 /// /// /// [HttpPost] [Route("EditFlowInstance")] public DataResult EditFlowInstance([FromBody] FlowInstanceReq model) { var res = _invokeService.EditFlowInstance(model); return res; } /// /// 详情 /// /// /// [HttpGet] [Route("GetFlowInstanceInfo")] public DataResult GetFlowInstanceInfo([FromQuery] string id) { var res = _invokeService.GetFlowInstanceInfo(id); return res; } /// /// 启动实例 /// /// /// [HttpGet] [Route("StartFlowInstance")] public DataResult StartFlowInstance([FromQuery] string id) { var res = _invokeService.StartFlowInstance(id); return res; } /// /// 创建流程实例 /// /// /// [HttpPost] [Route("CreateFlowInstance")] public DataResult CreateFlowInstance([FromBody] CreateFlowInstanceReq req) { var res = _invokeService.CreateFlowInstance(req); return res; } /// /// 审核流程实例 /// /// /// [HttpPost] [Route("AuditFlowInstance")] public DataResult AuditFlowInstance([FromBody] FlowInstanceAuditReq req) { var res = _invokeService.AuditFlowInstance(req); return res; } /// /// 获取流程操作历史 /// /// /// [HttpGet, Route("GetFlowInstanceHistoryList"), Obsolete] public DataResult> GetFlowInstanceHistoryList([FromQuery] string id) { var res = _invokeService.GetFlowInstanceHistoryList(id); return res; } /// /// 根据业务获取流程操作历史 /// /// 业务ID /// 业务类型(可空) /// [HttpGet, Route("GetFlowHistoriesByBiz")] public DataResult> GetFlowInstanceHistoryList([FromQuery] long bsId, [FromQuery] BusinessType? bsType) { return _invokeService.GetFlowInstanceHistoryList(bsId, bsType); } /// /// 运行回调更新 /// /// 业务ID /// 业务类型(可选) /// 回调URL(可选) /// /// 若未指定,则使用工作流默认的回调地址 [HttpGet, HttpPost, Route("RunCallback")] public async Task RunCallbackAsync(long bsId, BusinessType? businessType = null, string? callbackURL = null) { return await _invokeService.RunCallbackAsync(bsId, businessType, callbackURL); } /// /// 获取流程运行实例的内容 /// /// 业务ID /// 业务类型(可空) /// 指定审批类型(可空,为空时返回所有类型) /// [HttpGet, Route("GetFlowContent")] public DataResult> GetFlowContent( [FromQuery] long businessId, [FromQuery] BusinessType? businessType, [FromQuery] params TaskBaseTypeEnum[]? types) { var result = _invokeService.GetFlowInstances(businessId, businessType, types); return result; } }