package jnpf.flowable.controller;
|
|
import jnpf.base.ActionResult;
|
import jnpf.flowable.entity.TaskEntity;
|
import jnpf.flowable.enums.EventEnum;
|
import jnpf.flowable.enums.TaskStatusEnum;
|
import jnpf.flowable.model.task.AuditModel;
|
import jnpf.flowable.model.task.FlowModel;
|
import jnpf.flowable.model.task.TaskTo;
|
import jnpf.flowable.service.TaskService;
|
import jnpf.flowable.util.OperatorUtil;
|
import jnpf.flowable.TaskApi;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
|
|
/**
|
* 类的描述
|
*
|
* @author JNPF@YinMai Info. Co., Ltd
|
* @version 5.0.x
|
* @since 2024/5/28 14:32
|
*/
|
@RestController
|
@RequestMapping("/task")
|
@RequiredArgsConstructor
|
public class TaskForFileController implements TaskApi {
|
|
private final TaskService taskService;
|
|
private final OperatorUtil operatorUtil;
|
|
@Override
|
@PostMapping("/saveDraft")
|
public ActionResult<AuditModel> saveDraft(@RequestBody FlowModel flowModel) {
|
try {
|
flowModel.setServerAutoDraft(true);
|
taskService.batchSaveOrSubmit(flowModel);
|
operatorUtil.handleOperator();
|
if (TaskStatusEnum.RUNNING.getCode().equals(flowModel.getStatus())) {
|
operatorUtil.handleTaskStatusThenEvent(flowModel, EventEnum.INIT.getStatus());
|
}
|
TaskEntity taskEntity = flowModel.getTaskEntity();
|
if (taskEntity.getRejectDataId() == null) {
|
operatorUtil.autoAudit(flowModel);
|
operatorUtil.launchTrigger(flowModel);
|
operatorUtil.handleOperator();
|
operatorUtil.handleTaskStatusThenEvent();
|
} else {
|
operatorUtil.handleTaskStatus();
|
}
|
TaskEntity savedTask = taskService.getById(taskEntity.getId());
|
AuditModel model = operatorUtil.getAuditModel(
|
savedTask == null ? taskEntity.getId() : savedTask.getId(), flowModel, null);
|
return ActionResult.success(model);
|
} catch (Exception exception) {
|
return ActionResult.fail(exception.getMessage());
|
}
|
}
|
|
@Override
|
@PostMapping("/launchFlow")
|
public ActionResult launchFlow(@RequestBody FlowModel flowModel) {
|
try {
|
return operatorUtil.launchFlow(flowModel);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ActionResult.fail(e.getMessage());
|
}
|
}
|
|
@Override
|
@PostMapping("/getFlowTodoCount")
|
public TaskTo getFlowTodoCount(@RequestBody TaskTo taskTo) {
|
return taskService.getFlowTodoCount(taskTo);
|
}
|
|
}
|