v3.4.6
This commit is contained in:
@@ -10,6 +10,7 @@ using JNPF.FriendlyException;
|
||||
using JNPF.WorkFlow.Entitys.Dto.FlowBefore;
|
||||
using JNPF.WorkFlow.Entitys.Enum;
|
||||
using JNPF.WorkFlow.Entitys.Model;
|
||||
using JNPF.WorkFlow.Entitys.Model.Properties;
|
||||
using JNPF.WorkFlow.Interfaces.Manager;
|
||||
using JNPF.WorkFlow.Interfaces.Repository;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -59,12 +60,32 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
case "4":
|
||||
return await _flowTaskRepository.GetBatchWaitList(input);
|
||||
default:
|
||||
return PageResult<FlowBeforeListOutput>.SqlSugarPageResult(new SqlSugarPagedList<FlowBeforeListOutput>());
|
||||
var pageList = new SqlSugarPagedList<FlowBeforeListOutput>()
|
||||
{
|
||||
list = new List<FlowBeforeListOutput>(),
|
||||
pagination = new Pagination()
|
||||
{
|
||||
CurrentPage = input.currentPage,
|
||||
PageSize = input.pageSize,
|
||||
Total = 0
|
||||
}
|
||||
};
|
||||
return PageResult<FlowBeforeListOutput>.SqlSugarPageResult(pageList);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return PageResult<FlowBeforeListOutput>.SqlSugarPageResult(new SqlSugarPagedList<FlowBeforeListOutput>());
|
||||
var pageList = new SqlSugarPagedList<FlowBeforeListOutput>()
|
||||
{
|
||||
list = new List<FlowBeforeListOutput>(),
|
||||
pagination = new Pagination()
|
||||
{
|
||||
CurrentPage = input.currentPage,
|
||||
PageSize = input.pageSize,
|
||||
Total = 0
|
||||
}
|
||||
};
|
||||
return PageResult<FlowBeforeListOutput>.SqlSugarPageResult(pageList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +170,7 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量审批流程列表.
|
||||
/// 批量审批流程分类列表.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("BatchFlowSelector")]
|
||||
@@ -158,15 +179,36 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
return await _flowTaskRepository.BatchFlowSelector();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量审批流程列表.
|
||||
/// </summary>
|
||||
/// <param name="templateId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("BatchFlowJsonList/{templateId}")]
|
||||
public async Task<dynamic> BatchFlowJsonList(string templateId)
|
||||
{
|
||||
var list = (await _flowTaskRepository.GetWaitList()).FindAll(x => x.IsBatch == 1 && x.TemplateId == templateId);
|
||||
var output = new List<object>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
var flowJson = _flowTaskRepository.GetFlowTemplateJsonInfo(x => x.Id == item.FlowId && x.DeleteMark == null);
|
||||
if (flowJson.IsNotEmptyOrNull())
|
||||
{
|
||||
output.Add(new { id = flowJson.Id, fullName =string.Format("{0}(v{1})", flowJson.FullName, flowJson.Version), flowTemplateJson= flowJson.FlowTemplateJson });
|
||||
}
|
||||
}
|
||||
return output.Distinct();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量审批节点列表.
|
||||
/// </summary>
|
||||
/// <param name="flowId">流程id.</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("NodeSelector/{templateId}")]
|
||||
public async Task<dynamic> NodeSelector(string templateId)
|
||||
[HttpGet("NodeSelector/{flowId}")]
|
||||
public async Task<dynamic> NodeSelector(string flowId)
|
||||
{
|
||||
return await _flowTaskManager.NodeSelector(templateId);
|
||||
return await _flowTaskManager.NodeSelector(flowId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -231,6 +273,39 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
{
|
||||
return await _flowTaskManager.RejectNodeList(taskOperatorId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 子流程详情.
|
||||
/// </summary>
|
||||
/// <param name="taskNodeId">节点id.</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("SubFlowInfo/{taskNodeId}")]
|
||||
public async Task<dynamic> SubFlowInfo(string taskNodeId)
|
||||
{
|
||||
var output = new List<object>();
|
||||
var taskNodeEntity = await _flowTaskRepository.GetTaskNodeInfo(taskNodeId);
|
||||
if (FlowTaskNodeTypeEnum.subFlow.ParseToString().Equals(taskNodeEntity.NodeType))
|
||||
{
|
||||
var childProp = taskNodeEntity.NodePropertyJson.ToObject<ChildTaskProperties>();
|
||||
foreach (var item in childProp.childTaskId)
|
||||
{
|
||||
var childTaskInfo = await _flowTaskManager.GetFlowBeforeInfo(item, childProp.flowId, null, null);
|
||||
output.Add(childTaskInfo);
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 挂起任务是否存在异步子流程.
|
||||
/// </summary>
|
||||
/// <param name="taskId">任务id.</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("Suspend/{taskId}")]
|
||||
public async Task<dynamic> Suspend(string taskId)
|
||||
{
|
||||
return await _flowTaskRepository.AnyFlowTask(x => x.ParentId == taskId && x.IsAsync == 1 && x.DeleteMark == null);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region POST
|
||||
@@ -258,8 +333,13 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
public async Task<dynamic> Reject(string taskOperatorId, [FromBody] FlowHandleModel flowHandleModel)
|
||||
{
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByOperatorId(taskOperatorId, flowHandleModel);
|
||||
if (flowTaskParamter.flowTaskEntity.Suspend == 1) throw Oops.Oh(ErrorCode.WF0046);
|
||||
if (_flowTaskManager.IsSubFlowUpNode(flowTaskParamter))
|
||||
throw Oops.Oh(ErrorCode.WF0019);
|
||||
if (flowHandleModel.rejectType.IsNotEmptyOrNull())
|
||||
{
|
||||
flowTaskParamter.approversProperties.rejectType = flowHandleModel.rejectType.ParseToInt();
|
||||
}
|
||||
return await _flowTaskManager.Reject(flowTaskParamter);
|
||||
}
|
||||
|
||||
@@ -277,6 +357,7 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
if (await _flowTaskRepository.AnyFlowTask(x => x.ParentId == flowTaskOperatorRecord.TaskId && x.Status != FlowTaskStatusEnum.Cancel.ParseToInt() && x.DeleteMark == null))
|
||||
throw Oops.Oh(ErrorCode.WF0018);
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByOperatorId(flowTaskOperatorRecord.TaskOperatorId, flowHandleModel);
|
||||
if (flowTaskParamter.flowTaskEntity.Suspend == 1) throw Oops.Oh(ErrorCode.WF0046);
|
||||
await _flowTaskManager.Recall(flowTaskParamter, flowTaskOperatorRecord);
|
||||
}
|
||||
|
||||
@@ -290,6 +371,7 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
public async Task Cancel(string taskId, [FromBody] FlowHandleModel flowHandleModel)
|
||||
{
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(taskId, flowHandleModel);
|
||||
if (flowTaskParamter.flowTaskEntity.Suspend == 1) throw Oops.Oh(ErrorCode.WF0046);
|
||||
if (flowTaskParamter.flowTaskEntity.FlowType == 1)
|
||||
throw Oops.Oh(ErrorCode.WF0016);
|
||||
await _flowTaskManager.Cancel(flowTaskParamter);
|
||||
@@ -321,6 +403,7 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
if (nodeEntity.IsNotEmptyOrNull() && nodeEntity.Count > 0)
|
||||
throw Oops.Oh(ErrorCode.WF0014);
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(taskId, flowHandleModel);
|
||||
if (flowTaskParamter.flowTaskEntity.Suspend == 1) throw Oops.Oh(ErrorCode.WF0046);
|
||||
flowTaskParamter.thisFlowTaskOperatorEntityList = await _flowTaskRepository.GetTaskOperatorList(x => x.State == "0" && x.NodeCode == flowHandleModel.nodeCode && x.TaskId == taskId);
|
||||
await _flowTaskManager.Assigned(flowTaskParamter);
|
||||
}
|
||||
@@ -336,6 +419,7 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
public async Task SaveAudit(string taskOperatorId, [FromBody] FlowHandleModel flowHandleModel)
|
||||
{
|
||||
var flowTaskParamter = await _flowTaskManager.Validation(taskOperatorId, flowHandleModel);
|
||||
if (flowTaskParamter.flowTaskEntity.Suspend == 1) throw Oops.Oh(ErrorCode.WF0046);
|
||||
flowTaskParamter.flowTaskOperatorEntity.DraftData = flowHandleModel.formData.ToJsonString();
|
||||
await _flowTaskRepository.UpdateTaskOperator(flowTaskParamter.flowTaskOperatorEntity);
|
||||
}
|
||||
@@ -381,6 +465,7 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
public async Task<dynamic> Change([FromBody] FlowHandleModel flowHandleModel)
|
||||
{
|
||||
// 清除依次经办数据
|
||||
if (await _flowTaskRepository.AnyFlowTask(x => x.Id == flowHandleModel.taskId && x.Suspend == 1 && x.DeleteMark == null)) throw Oops.Oh(ErrorCode.WF0046);
|
||||
await _flowTaskRepository.DeleteTaskOperatorUser(flowHandleModel.taskId);
|
||||
_flowTaskRepository.DeleteFlowCandidates(x => x.TaskId == flowHandleModel.taskId);
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(flowHandleModel.taskId, flowHandleModel);
|
||||
@@ -398,5 +483,31 @@ public class FlowBeforeService : IDynamicApiController, ITransient
|
||||
{
|
||||
return await Audit(taskOperatorId, flowHandleModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 挂起.
|
||||
/// </summary>
|
||||
/// <param name="taskId">任务id.</param>
|
||||
/// <param name="flowHandleModel">审批参数.</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("Suspend/{taskId}")]
|
||||
public async Task Suspend(string taskId,[FromBody] FlowHandleModel flowHandleModel)
|
||||
{
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(taskId, flowHandleModel);
|
||||
await _flowTaskManager.Suspend(flowTaskParamter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 恢复.
|
||||
/// </summary>
|
||||
/// <param name="taskId">任务id.</param>
|
||||
/// <param name="flowHandleModel">审批参数.</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("Restore/{taskId}")]
|
||||
public async Task Restore(string taskId, [FromBody] FlowHandleModel flowHandleModel)
|
||||
{
|
||||
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(taskId, flowHandleModel);
|
||||
await _flowTaskManager.Restore(flowTaskParamter);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user