task
任务管理
核心业务层流程节点的细化执行
工时统计 + 任务分配 + 节点联动任务是节点完成的前置条件,实现细粒度的进度追踪
流程节点的细化执行
工时统计 + 任务分配 + 节点联动任务是节点完成的前置条件,实现细粒度的进度追踪
在流程节点执行过程中,一个节点可能包含多个子任务,需要分配给不同的人员完成。如何管理这些任务的生命周期?如何追踪任务的执行进度和工时?如何与流程节点状态联动?
任务状态枚举 - 简洁的二态模型
@RestEndpoint(name = "任务状态")
public enum TaskStatus implements BaseEnum<String> {
OPEN("开放"),
DONE("完成");
private String text;
TaskStatus(String text) {
this.text = text;
init(this.name(), text);
}
public static String getTextByCode(String code) {
if (ObjectUtils.isEmpty(code)) {
return "空值";
}
for (TaskStatus value : values()) {
if (value.getCode().equals(code)) {
return value.getText();
}
}
return "空值";
}
}任务实体 - 关联流程节点和执行人
@Data
@TableName("t_flow_instance_node_task")
public class FlowInstanceNodeTask {
@TableId(type = IdType.AUTO)
private Long id;
// 关联流程实例节点
private Long flowInstanceNodeId;
// 任务名称
private String name;
// 任务描述
private String description;
// 负责人类型(用户/角色)
private TaskAssigneeType assigneeType;
// 负责人 ID
private String assigneeId;
// 任务状态
private TaskStatus status;
// 预估工时(小时)
private BigDecimal estimateHours;
// 实际工时(小时)
private BigDecimal actualHours;
// 开始时间
private LocalDateTime startTime;
// 完成时间
private LocalDateTime completeTime;
}