197 lines
6.0 KiB
C#
197 lines
6.0 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using OpenAuth.App.Interface;
|
|
using workflow;
|
|
|
|
namespace OpenAuth.WebApi.Controllers.ServerController;
|
|
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class CustomWorkflowController : ControllerBase
|
|
{
|
|
private readonly WorkflowEngineApp _workflowEngineApp;
|
|
private readonly IAuth _auth;
|
|
|
|
public CustomWorkflowController(WorkflowEngineApp workflowEngineApp, IAuth auth)
|
|
{
|
|
_workflowEngineApp = workflowEngineApp;
|
|
_auth = auth;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 发起违法建设认定流程
|
|
/// </summary>
|
|
[HttpPost("initiate")]
|
|
public IActionResult InitiateFlow([FromForm] InitiateFlowRequest request)
|
|
{
|
|
try
|
|
{
|
|
// 1. 获取当前用户信息
|
|
var user = _auth.GetCurrentUser().User;
|
|
if (!long.TryParse(user.Id.ToString(), out long currentUserId))
|
|
return Ok(ApiResult<long>.Error("用户ID格式错误"));
|
|
|
|
// 2. 调用工作流服务发起流程
|
|
var instanceId = _workflowEngineApp.InitiateFlow(currentUserId, user.Name, request);
|
|
|
|
return Ok(ApiResult<long>.Ok(instanceId, message: "流程发起成功"));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(ApiResult<long>.Error(ex.Message));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 处理工作项(中转、审核、汇总)
|
|
/// </summary>
|
|
[HttpPost("handle-workitem")]
|
|
public IActionResult HandleWorkitem([FromBody] HandleWorkitemRequest request)
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
// 1. 获取当前用户信息
|
|
var userIdStr = user.Id.ToString();
|
|
var userName = user.Name;
|
|
if (!long.TryParse(userIdStr, out long currentUserId))
|
|
return Ok(ApiResult<bool>.Error("用户ID格式错误"));
|
|
|
|
// 2. 调用工作流服务处理工作项
|
|
var result = _workflowEngineApp.HandleWorkitem(currentUserId, userName, request);
|
|
|
|
return Ok(ApiResult<bool>.Ok(result, message: "工作项处理成功"));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(ApiResult<bool>.Error(ex.Message));
|
|
}
|
|
}
|
|
|
|
// 拟办、待办、已办、未办结、已完成、项目列表
|
|
// // ToDo/Done/Rejected
|
|
/// <summary>
|
|
/// 查询我的待办
|
|
/// </summary>
|
|
[HttpGet("my-todo")]
|
|
public IActionResult QueryMyToDo()
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
var userIdStr = user.Id.ToString();
|
|
if (!long.TryParse(userIdStr, out long currentUserId))
|
|
return Ok(ApiResult<List<FlowQueryResult>>.Error("用户ID格式错误"));
|
|
var result = _workflowEngineApp.QueryMyToDo(currentUserId);
|
|
return Ok(ApiResult<List<FlowQueryResult>>.Ok(result, result.Count));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(ApiResult<List<FlowQueryResult>>.Error(ex.Message));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询我的已办
|
|
/// </summary>
|
|
[HttpGet("my-done")]
|
|
public IActionResult QueryMyDone()
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
var userIdStr = user.Id.ToString();
|
|
if (!long.TryParse(userIdStr, out long currentUserId))
|
|
return Ok(ApiResult<List<FlowQueryResult>>.Error("用户ID格式错误"));
|
|
var result = _workflowEngineApp.QueryMyDone(currentUserId);
|
|
|
|
return Ok(ApiResult<List<FlowQueryResult>>.Ok(result, result.Count));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(ApiResult<List<FlowQueryResult>>.Error(ex.Message));
|
|
}
|
|
}
|
|
|
|
#region 新增:拟办/未办结/已完成 API 接口
|
|
|
|
/// <summary>
|
|
/// 查询我的拟办(需认领)
|
|
/// </summary>
|
|
[HttpGet("my-draft")]
|
|
public IActionResult QueryMyDraft()
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
var result = _workflowEngineApp.QueryMyDraft(user.Id);
|
|
|
|
return Ok(new { Code = 200, Msg = "查询拟办成功", Data = result, Total = result.Count });
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(new { Code = 500, Msg = ex.Message });
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 认领拟办工作项
|
|
/// </summary>
|
|
[HttpPost("claim-draft")]
|
|
public IActionResult ClaimDraft([FromBody] long workitemId)
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
var userId = user.Id;
|
|
var userName = user.Name;
|
|
var result = _workflowEngineApp.ClaimDraftWorkitem(workitemId, userId, userName);
|
|
return Ok(new { Code = 200, Msg = "认领拟办成功", Data = result });
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(new { Code = 500, Msg = ex.Message });
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询所有未办结流程
|
|
/// </summary>
|
|
[HttpGet("unfinished-flows")]
|
|
public IActionResult QueryUnfinishedFlows()
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
var userId = user.Id;
|
|
var result = _workflowEngineApp.QueryUnfinishedFlows(userId);
|
|
|
|
return Ok(new { Code = 200, Msg = "查询未办结流程成功", Data = result, Total = result.Count });
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(new { Code = 500, Msg = ex.Message });
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询所有已完成流程
|
|
/// </summary>
|
|
[HttpGet("completed-flows")]
|
|
public IActionResult QueryCompletedFlows()
|
|
{
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
var userId = user.Id;
|
|
var result = _workflowEngineApp.QueryCompletedFlows(userId);
|
|
|
|
return Ok(new { Code = 200, Msg = "查询已完成流程成功", Data = result, Total = result.Count });
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Ok(new { Code = 500, Msg = ex.Message });
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
} |