This commit is contained in:
Paidax
2024-11-29 09:03:59 +08:00
commit 2ffadd89a7
3480 changed files with 879405 additions and 0 deletions
@@ -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();
}