init
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package io.v.nutz.workflow.constant;
|
||||
|
||||
import io.v.nutz.base.annontation.SelectEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@SelectEnum
|
||||
@AllArgsConstructor
|
||||
public enum JnProcessInstanceStatus {
|
||||
|
||||
/**
|
||||
* 正常运行
|
||||
*/
|
||||
RUNNING,
|
||||
/**
|
||||
* 正常结束
|
||||
*/
|
||||
COMPLETE,
|
||||
/**
|
||||
* 强行中止
|
||||
*/
|
||||
ABORT
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package io.v.nutz.workflow.constant;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 任务接收人
|
||||
* @author jug
|
||||
* @date 2024/01/23
|
||||
*/
|
||||
@Data
|
||||
public class JnTaskAssigment {
|
||||
private String assign_dept;
|
||||
private String assign_id;
|
||||
private String assign_name;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package io.v.nutz.workflow.constant;
|
||||
|
||||
/**
|
||||
* 任务中心常量
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/23
|
||||
*/
|
||||
public class JnTaskCenter {
|
||||
|
||||
public static final String APP_ID = "app_id";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package io.v.nutz.workflow.constant;
|
||||
|
||||
import io.v.nutz.base.annontation.SelectEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/23
|
||||
*/
|
||||
@Getter
|
||||
@SelectEnum
|
||||
@AllArgsConstructor
|
||||
public enum JnTaskStatus {
|
||||
|
||||
/**
|
||||
* 插入待办任务时值为READY
|
||||
*/
|
||||
READY,
|
||||
/**
|
||||
* 生成任务
|
||||
*/
|
||||
ACTIVE,
|
||||
/**
|
||||
* 同意或正常完成
|
||||
*/
|
||||
COMPLETE,
|
||||
/**
|
||||
* 退回
|
||||
*/
|
||||
ROLLBACK,
|
||||
/**
|
||||
* 强行终止
|
||||
*/
|
||||
ABORT,
|
||||
/**
|
||||
* 转发
|
||||
*/
|
||||
TRANSFER
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package io.v.nutz.workflow.models;
|
||||
|
||||
import io.v.nutz.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
/**
|
||||
* 流程定义表
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/23
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table
|
||||
@Data
|
||||
public class JnProcess extends BaseModel {
|
||||
|
||||
@Id
|
||||
@Column
|
||||
@Comment("流程id")
|
||||
@ColDefine(type = ColType.AUTO)
|
||||
private Long process_id;
|
||||
|
||||
@Column
|
||||
@Comment("流程名称")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_name;
|
||||
|
||||
@Column
|
||||
@Comment("流程版本")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_version;
|
||||
|
||||
@Column
|
||||
@Comment("流程来源")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_source;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package io.v.nutz.workflow.models;
|
||||
|
||||
import io.v.nutz.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table
|
||||
@Data
|
||||
public class JnProcessInstance extends BaseModel {
|
||||
|
||||
@Column
|
||||
@Comment("流程实例ID")
|
||||
@ColDefine(type = ColType.AUTO)
|
||||
private Long process_instance_id;
|
||||
|
||||
@Column
|
||||
@Comment("流程实例发起人ID")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_instance_initiator_id;
|
||||
|
||||
@Column
|
||||
@Comment("流程实例发起人姓名")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_instance_initiator;
|
||||
|
||||
@Column
|
||||
@Comment("流程实例发起人部门")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_instance_initiator_dp;
|
||||
|
||||
@Column
|
||||
@Comment("流程实例当前状态")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String process_instance_status;
|
||||
|
||||
@Column
|
||||
@Comment("流程实例表删除标记")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer process_delete_flag;
|
||||
|
||||
@Column
|
||||
@Comment("环节名称:当前任务所在的环节名称")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String node_name;
|
||||
|
||||
@Column
|
||||
@Comment("环节ID:当前任务所在的环节ID")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String node_id;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
package io.v.nutz.workflow.models;
|
||||
|
||||
import io.v.nutz.base.model.BaseModel;
|
||||
import io.v.nutz.workflow.constant.JnTaskAssigment;
|
||||
import io.v.nutz.workflow.constant.JnTaskStatus;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import java.util.List;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table
|
||||
@Data
|
||||
public class JnTask extends BaseModel {
|
||||
|
||||
@Id
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@Column
|
||||
@Comment("业务系统ID")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String app_id;
|
||||
|
||||
@Column
|
||||
@Comment("任务编号")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String task_id;
|
||||
|
||||
@Column
|
||||
@Comment("递交人ID")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String created_by_ids;
|
||||
|
||||
@Column
|
||||
@Comment("递交人姓名")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String created_by_names;
|
||||
|
||||
@Column
|
||||
@Comment("递交人部门")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String created_by_depts;
|
||||
|
||||
@Column
|
||||
@Comment("任务接收人")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JnTaskAssigment> assignments;
|
||||
|
||||
@Column
|
||||
@Comment("业务域")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String biz_domain;
|
||||
|
||||
@Column
|
||||
@Comment("业务关联键值")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String biz_key;
|
||||
|
||||
@Column
|
||||
@Comment("任务创建时间")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String created_on;
|
||||
|
||||
@Column
|
||||
@Comment("紧急程度")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String priority;
|
||||
|
||||
@Column
|
||||
@Comment("办理人ID")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String actual_owner_id;
|
||||
|
||||
@Column
|
||||
@Comment("办理人姓名")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String actual_owner_name;
|
||||
|
||||
@Column
|
||||
@Comment("办理人部门")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String actual_owner_dept;
|
||||
|
||||
@Column
|
||||
@Comment("任务的处理表单URL,用于待办任务的处理界面")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String form_url;
|
||||
|
||||
@Column
|
||||
@Comment("任务的浏览表单URL,用于已办任务的表单查看")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String form_url_view;
|
||||
|
||||
@Column
|
||||
@Comment("手机端任务的处理表单URL,用于待办任务的处理界面")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String form_mobile_url;
|
||||
|
||||
@Column
|
||||
@Comment("手机端任务的浏览表单URL,用于已办任务的表单查看")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String form_mobile_url_view;
|
||||
|
||||
@Column
|
||||
@Comment("处理意见")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String task_comment;
|
||||
|
||||
@Column
|
||||
@Comment("任务完成时间")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String end_on;
|
||||
|
||||
@Column
|
||||
@Comment("任务状态")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private JnTaskStatus status;
|
||||
|
||||
@Column
|
||||
@Comment("任务主题,用来在待办任务上显示给客户")
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
private String subject;
|
||||
|
||||
@Column
|
||||
@Comment("待办表删除标记")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer task_delete_flag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package io.v.nutz.workflow.service.Impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import io.v.nutz.workflow.constant.JnTaskCenter;
|
||||
import io.v.nutz.workflow.models.JnTask;
|
||||
import io.v.nutz.workflow.service.ProcessEngine;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
@IocBean
|
||||
public class JnProcessEngine implements ProcessEngine {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Override
|
||||
public void startProcess() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertProcessAndTask(JnTask task) {
|
||||
task.setApp_id(JnTaskCenter.APP_ID);
|
||||
task.setCreated_on(DateUtil.now());
|
||||
task.setPriority("0");
|
||||
dao.insert(task);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTask() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteTask() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package io.v.nutz.workflow.service;
|
||||
|
||||
import io.v.nutz.workflow.models.JnTask;
|
||||
|
||||
public interface ProcessEngine {
|
||||
|
||||
void startProcess();
|
||||
|
||||
|
||||
/**
|
||||
* 新增流程任务
|
||||
*
|
||||
* @param task
|
||||
*/
|
||||
void insertProcessAndTask(JnTask task);
|
||||
|
||||
/**
|
||||
* 更新任务
|
||||
*/
|
||||
void updateTask();
|
||||
|
||||
/**
|
||||
* 删除任务
|
||||
*/
|
||||
void deleteTask();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user