add - 由于 Flowable 框架自身不记录 Task 的操作状态,新增历史任务操作记录扩展表,用于记录每个 task 的操作状态

This commit is contained in:
wangli 2023-12-05 23:27:29 +08:00
parent e1769b5b74
commit ddeb762210
7 changed files with 118 additions and 2 deletions

View File

@ -0,0 +1,50 @@
package cn.axzo.workflow.core.repository.entity;
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 流程历史任务信息扩展表
*
* @author wangli
* @version V1.0
* @date 2023/10/9 16:01
*/
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ext_ax_hi_taskinst", autoResultMap = true)
@Data
@ToString(callSuper = true)
public class ExtAxHiTaksInst extends BaseEntity<ExtAxHiTaksInst> {
private static final long serialVersionUID = 1L;
/**
* 流程模型ID
*/
@TableField("model_id")
private String procInstId;
/**
* 流程任务 ID
*/
@TableField("task_id")
private String taskId;
/**
* 流程节点定义 ID
*/
@TableField("task_definition_key")
private String taskDefinitionKey;
/**
* 操作状态
*/
@TableField("status")
private String status;
}

View File

@ -0,0 +1,15 @@
package cn.axzo.workflow.core.repository.mapper;
import cn.axzo.workflow.core.repository.entity.ExtAxHiTaksInst;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* ExtAxHiTaskInstMapper
*
* @author wangli
* @since 2023/11/18 22:16
*/
@Mapper
public interface ExtAxHiTaskInstMapper extends BaseMapper<ExtAxHiTaksInst> {
}

View File

@ -0,0 +1,11 @@
package cn.axzo.workflow.core.service;
/**
* 流程定义扩展表操作 Service
*
* @author wangli
* @since 2023/11/18 22:25
*/
public interface ExtAxHiTaskInstService {
}

View File

@ -325,8 +325,9 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
//加签子任务 没有executionId
taskService.complete(task.getId());
}
String parentTaskId = task.getParentTaskId();
//add by zuoqinbo 处理加签任务分为向前加签和向后加签
String parentTaskId = task.getParentTaskId();
if (StringUtils.hasLength(parentTaskId)) {
String tableName = managementService.getTableName(TaskEntity.class);
String sql = "select count(1) from " + tableName + " where PARENT_TASK_ID_=#{parentTaskId}";

View File

@ -0,0 +1,25 @@
package cn.axzo.workflow.core.service.impl;
import cn.axzo.workflow.core.repository.mapper.ExtAxHiTaskInstMapper;
import cn.axzo.workflow.core.service.ExtAxHiTaskInstService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 流程定义扩展表操作服务实现
*
* @author wangli
* @since 2023/11/18 22:27
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class ExtAxHiTaskInstServiceImpl implements ExtAxHiTaskInstService {
@Resource
private ExtAxHiTaskInstMapper extAxHiTaskInstMapper;
}

View File

@ -0,0 +1,14 @@
DROP TABLE IF EXISTS `EXT_AX_HI_TASKINST`;
CREATE TABLE IF NOT EXISTS EXT_AX_HI_TASKINST
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`proc_inst_id` varchar(100) NOT NULL DEFAULT '' COMMENT '流程实例ID',
`task_id` varchar(100) NOT NULL DEFAULT '' COMMENT '流程任务ID',
`task_definition_key` varchar(100) NOT NULL DEFAULT '' COMMENT '流程节点定义ID',
`status` varchar(100) NOT NULL DEFAULT '' COMMENT '状态 通过/拒绝等',
`create_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_delete` bigint NOT NULL DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE = InnoDB COMMENT '流程历史任务信息扩展表';
create index idx_proc_def_id on EXT_AX_HI_TASKINST (proc_inst_id, task_definition_key, task_id);

View File

@ -1,4 +1,4 @@
package cn.axzo.workflow.server.conf;
package cn.axzo.workflow.server.initializer;
import cn.axzo.framework.jackson.utility.JSON;
import lombok.AllArgsConstructor;