mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
Merge branch 'dev' of https://gitee.com/dromara/RuoYi-Vue-Plus into dev-flow
This commit is contained in:
commit
c117f1fa4d
@ -23,8 +23,9 @@
|
|||||||
> 系统演示: [传送门](https://plus-doc.dromara.org/#/common/demo_system)
|
> 系统演示: [传送门](https://plus-doc.dromara.org/#/common/demo_system)
|
||||||
|
|
||||||
> 官方前端项目地址: [gitee](https://gitee.com/JavaLionLi/plus-ui) - [github](https://github.com/JavaLionLi/plus-ui) - [gitcode](https://gitcode.com/dromara/plus-ui)<br>
|
> 官方前端项目地址: [gitee](https://gitee.com/JavaLionLi/plus-ui) - [github](https://github.com/JavaLionLi/plus-ui) - [gitcode](https://gitcode.com/dromara/plus-ui)<br>
|
||||||
> 成员前端项目地址: 基于vben5 [ruoyi-plus-vben5](https://gitee.com/dapppp/ruoyi-plus-vben5)
|
> 成员前端项目地址: 基于vben5 [ruoyi-plus-vben5](https://gitee.com/dapppp/ruoyi-plus-vben5)<br>
|
||||||
> 成员前端项目地址: 基于soybean [ruoyi-plus-soybean](https://gitee.com/xlsea/ruoyi-plus-soybean)
|
> 成员前端项目地址: 基于soybean [ruoyi-plus-soybean](https://gitee.com/xlsea/ruoyi-plus-soybean)<br>
|
||||||
|
> 成员项目地址: 删除多租户与工作流 [RuoYi-Vue-Plus-Single](https://gitee.com/ColorDreams/RuoYi-Vue-Plus-Single)<br>
|
||||||
|
|
||||||
> 文档地址: [plus-doc](https://plus-doc.dromara.org) 文档在华为云上如果打不开大概率是DNS问题 可以尝试切换网络等方式(或者科学上网)
|
> 文档地址: [plus-doc](https://plus-doc.dromara.org) 文档在华为云上如果打不开大概率是DNS问题 可以尝试切换网络等方式(或者科学上网)
|
||||||
|
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@ -31,7 +31,7 @@
|
|||||||
<redisson.version>3.45.1</redisson.version>
|
<redisson.version>3.45.1</redisson.version>
|
||||||
<lock4j.version>2.2.7</lock4j.version>
|
<lock4j.version>2.2.7</lock4j.version>
|
||||||
<dynamic-ds.version>4.3.1</dynamic-ds.version>
|
<dynamic-ds.version>4.3.1</dynamic-ds.version>
|
||||||
<snailjob.version>1.4.0</snailjob.version>
|
<snailjob.version>1.5.0</snailjob.version>
|
||||||
<mapstruct-plus.version>1.4.6</mapstruct-plus.version>
|
<mapstruct-plus.version>1.4.6</mapstruct-plus.version>
|
||||||
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version>
|
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version>
|
||||||
<lombok.version>1.18.36</lombok.version>
|
<lombok.version>1.18.36</lombok.version>
|
||||||
|
|||||||
@ -51,4 +51,9 @@ public class ProcessCreateTaskEvent implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String businessId;
|
private String businessId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程状态
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,40 @@
|
|||||||
|
package org.dromara.common.core.validate.dicts;
|
||||||
|
|
||||||
|
import jakarta.validation.Constraint;
|
||||||
|
import jakarta.validation.Payload;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典项校验注解
|
||||||
|
*
|
||||||
|
* @author AprilWind
|
||||||
|
*/
|
||||||
|
@Constraint(validatedBy = DictPatternValidator.class)
|
||||||
|
@Target({ElementType.FIELD, ElementType.PARAMETER})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface DictPattern {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典类型,如 "sys_user_sex"
|
||||||
|
*/
|
||||||
|
String dictType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分隔符
|
||||||
|
*/
|
||||||
|
String separator();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 默认校验失败提示信息
|
||||||
|
*/
|
||||||
|
String message() default "字典值无效";
|
||||||
|
|
||||||
|
Class<?>[] groups() default {};
|
||||||
|
|
||||||
|
Class<? extends Payload>[] payload() default {};
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
package org.dromara.common.core.validate.dicts;
|
||||||
|
|
||||||
|
import jakarta.validation.ConstraintValidator;
|
||||||
|
import jakarta.validation.ConstraintValidatorContext;
|
||||||
|
import org.dromara.common.core.service.DictService;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义字典值校验器
|
||||||
|
*
|
||||||
|
* @author AprilWind
|
||||||
|
*/
|
||||||
|
public class DictPatternValidator implements ConstraintValidator<DictPattern, String> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典类型
|
||||||
|
*/
|
||||||
|
private String dictType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分隔符
|
||||||
|
*/
|
||||||
|
private String separator = ",";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化校验器,提取注解上的字典类型
|
||||||
|
*
|
||||||
|
* @param annotation 注解实例
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void initialize(DictPattern annotation) {
|
||||||
|
this.dictType = annotation.dictType();
|
||||||
|
if (StringUtils.isNotBlank(annotation.separator())) {
|
||||||
|
this.separator = annotation.separator();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验字段值是否为指定字典类型中的合法值
|
||||||
|
*
|
||||||
|
* @param value 被校验的字段值
|
||||||
|
* @param context 校验上下文(可用于构建错误信息)
|
||||||
|
* @return true 表示校验通过(合法字典值),false 表示不通过
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean isValid(String value, ConstraintValidatorContext context) {
|
||||||
|
if (StringUtils.isBlank(dictType) || StringUtils.isBlank(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String dictLabel = SpringUtils.getBean(DictService.class).getDictLabel(dictType, value, separator);
|
||||||
|
return StringUtils.isNotBlank(dictLabel);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,37 +1,37 @@
|
|||||||
package org.dromara.common.core.validate.enumd;
|
package org.dromara.common.core.validate.enumd;
|
||||||
|
|
||||||
import jakarta.validation.ConstraintValidator;
|
import jakarta.validation.ConstraintValidator;
|
||||||
import jakarta.validation.ConstraintValidatorContext;
|
import jakarta.validation.ConstraintValidatorContext;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.core.utils.reflect.ReflectUtils;
|
import org.dromara.common.core.utils.reflect.ReflectUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义枚举校验注解实现
|
* 自定义枚举校验注解实现
|
||||||
*
|
*
|
||||||
* @author 秋辞未寒
|
* @author 秋辞未寒
|
||||||
* @date 2024-12-09
|
* @date 2024-12-09
|
||||||
*/
|
*/
|
||||||
public class EnumPatternValidator implements ConstraintValidator<EnumPattern, String> {
|
public class EnumPatternValidator implements ConstraintValidator<EnumPattern, String> {
|
||||||
|
|
||||||
private EnumPattern annotation;;
|
private EnumPattern annotation;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(EnumPattern annotation) {
|
public void initialize(EnumPattern annotation) {
|
||||||
ConstraintValidator.super.initialize(annotation);
|
ConstraintValidator.super.initialize(annotation);
|
||||||
this.annotation = annotation;
|
this.annotation = annotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
|
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
|
||||||
if (StringUtils.isNotBlank(value)) {
|
if (StringUtils.isNotBlank(value)) {
|
||||||
String fieldName = annotation.fieldName();
|
String fieldName = annotation.fieldName();
|
||||||
for (Object e : annotation.type().getEnumConstants()) {
|
for (Object e : annotation.type().getEnumConstants()) {
|
||||||
if (value.equals(ReflectUtils.invokeGetter(e, fieldName))) {
|
if (value.equals(ReflectUtils.invokeGetter(e, fieldName))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,6 +68,7 @@ public class FlowProcessEventHandler {
|
|||||||
processCreateTaskEvent.setNodeCode(instance.getNodeCode());
|
processCreateTaskEvent.setNodeCode(instance.getNodeCode());
|
||||||
processCreateTaskEvent.setNodeName(instance.getNodeName());
|
processCreateTaskEvent.setNodeName(instance.getNodeName());
|
||||||
processCreateTaskEvent.setTaskId(taskId);
|
processCreateTaskEvent.setTaskId(taskId);
|
||||||
|
processCreateTaskEvent.setStatus(instance.getFlowStatus());
|
||||||
SpringUtils.context().publishEvent(processCreateTaskEvent);
|
SpringUtils.context().publishEvent(processCreateTaskEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ public class WorkflowGlobalListener implements GlobalListener {
|
|||||||
Instance instance = listenerVariable.getInstance();
|
Instance instance = listenerVariable.getInstance();
|
||||||
Definition definition = listenerVariable.getDefinition();
|
Definition definition = listenerVariable.getDefinition();
|
||||||
Task task = listenerVariable.getTask();
|
Task task = listenerVariable.getTask();
|
||||||
if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(instance.getFlowStatus())) {
|
if (task != null) {
|
||||||
// 判断流程状态(发布审批中事件)
|
// 判断流程状态(发布审批中事件)
|
||||||
flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), instance, task.getId());
|
flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), instance, task.getId());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -176,9 +176,11 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
|
|||||||
@EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
|
@EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
|
||||||
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
|
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
|
||||||
log.info("当前任务创建了{}", processCreateTaskEvent.toString());
|
log.info("当前任务创建了{}", processCreateTaskEvent.toString());
|
||||||
TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
|
if (BusinessStatusEnum.WAITING.getStatus().equals(processCreateTaskEvent.getStatus())) {
|
||||||
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
|
TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
|
||||||
baseMapper.updateById(testLeave);
|
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
|
||||||
|
baseMapper.updateById(testLeave);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
SnailJob Database Transfer Tool
|
SnailJob Database Transfer Tool
|
||||||
Source Server Type : MySQL
|
Source Server Type : MySQL
|
||||||
Target Server Type : Oracle
|
Target Server Type : Oracle
|
||||||
Date: 2025-02-25 22:16:28
|
Date: 2025-04-26 10:01:54
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -149,7 +149,9 @@ CREATE TABLE sj_retry_dead_letter
|
|||||||
id number GENERATED ALWAYS AS IDENTITY,
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
group_name varchar2(64) NULL,
|
group_name varchar2(64) NULL,
|
||||||
|
group_id number NOT NULL,
|
||||||
scene_name varchar2(64) NULL,
|
scene_name varchar2(64) NULL,
|
||||||
|
scene_id number NOT NULL,
|
||||||
idempotent_id varchar2(64) NULL,
|
idempotent_id varchar2(64) NULL,
|
||||||
biz_no varchar2(64) DEFAULT '' NULL,
|
biz_no varchar2(64) DEFAULT '' NULL,
|
||||||
executor_name varchar2(512) DEFAULT '' NULL,
|
executor_name varchar2(512) DEFAULT '' NULL,
|
||||||
@ -169,7 +171,9 @@ CREATE INDEX idx_sj_retry_dead_letter_04 ON sj_retry_dead_letter (create_dt);
|
|||||||
COMMENT ON COLUMN sj_retry_dead_letter.id IS '主键';
|
COMMENT ON COLUMN sj_retry_dead_letter.id IS '主键';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.namespace_id IS '命名空间id';
|
COMMENT ON COLUMN sj_retry_dead_letter.namespace_id IS '命名空间id';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.group_name IS '组名称';
|
COMMENT ON COLUMN sj_retry_dead_letter.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.group_id IS '组Id';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.scene_name IS '场景名称';
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_id IS '场景ID';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
|
COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
|
COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
|
COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
|
||||||
@ -184,7 +188,9 @@ CREATE TABLE sj_retry
|
|||||||
id number GENERATED ALWAYS AS IDENTITY,
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
group_name varchar2(64) NULL,
|
group_name varchar2(64) NULL,
|
||||||
|
group_id number NOT NULL,
|
||||||
scene_name varchar2(64) NULL,
|
scene_name varchar2(64) NULL,
|
||||||
|
scene_id number NOT NULL,
|
||||||
idempotent_id varchar2(64) NULL,
|
idempotent_id varchar2(64) NULL,
|
||||||
biz_no varchar2(64) DEFAULT '' NULL,
|
biz_no varchar2(64) DEFAULT '' NULL,
|
||||||
executor_name varchar2(512) DEFAULT '' NULL,
|
executor_name varchar2(512) DEFAULT '' NULL,
|
||||||
@ -204,19 +210,20 @@ CREATE TABLE sj_retry
|
|||||||
ALTER TABLE sj_retry
|
ALTER TABLE sj_retry
|
||||||
ADD CONSTRAINT pk_sj_retry PRIMARY KEY (id);
|
ADD CONSTRAINT pk_sj_retry PRIMARY KEY (id);
|
||||||
|
|
||||||
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (namespace_id, group_name, task_type, idempotent_id, deleted);
|
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted);
|
||||||
|
|
||||||
CREATE INDEX idx_sj_retry_01 ON sj_retry (namespace_id, group_name, scene_name);
|
CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no);
|
||||||
CREATE INDEX idx_sj_retry_02 ON sj_retry (namespace_id, group_name, retry_status);
|
CREATE INDEX idx_sj_retry_02 ON sj_retry (retry_status, bucket_index);
|
||||||
CREATE INDEX idx_sj_retry_03 ON sj_retry (idempotent_id);
|
CREATE INDEX idx_sj_retry_03 ON sj_retry (parent_id);
|
||||||
CREATE INDEX idx_sj_retry_04 ON sj_retry (biz_no);
|
CREATE INDEX idx_sj_retry_04 ON sj_retry (create_dt);
|
||||||
CREATE INDEX idx_sj_retry_05 ON sj_retry (parent_id);
|
CREATE INDEX idx_sj_retry_05 ON sj_retry (idempotent_id);
|
||||||
CREATE INDEX idx_sj_retry_06 ON sj_retry (create_dt);
|
|
||||||
|
|
||||||
COMMENT ON COLUMN sj_retry.id IS '主键';
|
COMMENT ON COLUMN sj_retry.id IS '主键';
|
||||||
COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
|
COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
|
||||||
COMMENT ON COLUMN sj_retry.group_name IS '组名称';
|
COMMENT ON COLUMN sj_retry.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.group_id IS '组Id';
|
||||||
COMMENT ON COLUMN sj_retry.scene_name IS '场景名称';
|
COMMENT ON COLUMN sj_retry.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.scene_id IS '场景ID';
|
||||||
COMMENT ON COLUMN sj_retry.idempotent_id IS '幂等id';
|
COMMENT ON COLUMN sj_retry.idempotent_id IS '幂等id';
|
||||||
COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
|
COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
|
||||||
COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
|
COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
|
||||||
@ -395,7 +402,7 @@ COMMENT ON TABLE sj_server_node IS '服务器节点';
|
|||||||
-- sj_distributed_lock
|
-- sj_distributed_lock
|
||||||
CREATE TABLE sj_distributed_lock
|
CREATE TABLE sj_distributed_lock
|
||||||
(
|
(
|
||||||
name varchar2(64) NOT NULL,
|
name varchar2(64) NULL,
|
||||||
lock_until timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
|
lock_until timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
|
||||||
locked_at timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
|
locked_at timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
|
||||||
locked_by varchar2(255) NULL,
|
locked_by varchar2(255) NULL,
|
||||||
@ -404,7 +411,7 @@ CREATE TABLE sj_distributed_lock
|
|||||||
);
|
);
|
||||||
|
|
||||||
ALTER TABLE sj_distributed_lock
|
ALTER TABLE sj_distributed_lock
|
||||||
ADD CONSTRAINT pk_sj_distributed_lock PRIMARY KEY (name);
|
ADD CONSTRAINT pk_sj_distributed_lock PRIMARY KEY (id);
|
||||||
|
|
||||||
COMMENT ON COLUMN sj_distributed_lock.name IS '锁名称';
|
COMMENT ON COLUMN sj_distributed_lock.name IS '锁名称';
|
||||||
COMMENT ON COLUMN sj_distributed_lock.lock_until IS '锁定时长';
|
COMMENT ON COLUMN sj_distributed_lock.lock_until IS '锁定时长';
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
SnailJob Database Transfer Tool
|
SnailJob Database Transfer Tool
|
||||||
Source Server Type : MySQL
|
Source Server Type : MySQL
|
||||||
Target Server Type : PostgreSQL
|
Target Server Type : PostgreSQL
|
||||||
Date: 2025-02-25 22:15:32
|
Date: 2025-04-26 09:56:45
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -136,7 +136,9 @@ CREATE TABLE sj_retry_dead_letter
|
|||||||
id bigserial PRIMARY KEY,
|
id bigserial PRIMARY KEY,
|
||||||
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
group_name varchar(64) NOT NULL,
|
group_name varchar(64) NOT NULL,
|
||||||
|
group_id bigint NOT NULL,
|
||||||
scene_name varchar(64) NOT NULL,
|
scene_name varchar(64) NOT NULL,
|
||||||
|
scene_id bigint NOT NULL,
|
||||||
idempotent_id varchar(64) NOT NULL,
|
idempotent_id varchar(64) NOT NULL,
|
||||||
biz_no varchar(64) NOT NULL DEFAULT '',
|
biz_no varchar(64) NOT NULL DEFAULT '',
|
||||||
executor_name varchar(512) NOT NULL DEFAULT '',
|
executor_name varchar(512) NOT NULL DEFAULT '',
|
||||||
@ -153,7 +155,9 @@ CREATE INDEX idx_sj_retry_dead_letter_04 ON sj_retry_dead_letter (create_dt);
|
|||||||
COMMENT ON COLUMN sj_retry_dead_letter.id IS '主键';
|
COMMENT ON COLUMN sj_retry_dead_letter.id IS '主键';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.namespace_id IS '命名空间id';
|
COMMENT ON COLUMN sj_retry_dead_letter.namespace_id IS '命名空间id';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.group_name IS '组名称';
|
COMMENT ON COLUMN sj_retry_dead_letter.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.group_id IS '组Id';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.scene_name IS '场景名称';
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_id IS '场景ID';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
|
COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
|
COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
|
||||||
COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
|
COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
|
||||||
@ -168,7 +172,9 @@ CREATE TABLE sj_retry
|
|||||||
id bigserial PRIMARY KEY,
|
id bigserial PRIMARY KEY,
|
||||||
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
group_name varchar(64) NOT NULL,
|
group_name varchar(64) NOT NULL,
|
||||||
|
group_id bigint NOT NULL,
|
||||||
scene_name varchar(64) NOT NULL,
|
scene_name varchar(64) NOT NULL,
|
||||||
|
scene_id bigint NOT NULL,
|
||||||
idempotent_id varchar(64) NOT NULL,
|
idempotent_id varchar(64) NOT NULL,
|
||||||
biz_no varchar(64) NOT NULL DEFAULT '',
|
biz_no varchar(64) NOT NULL DEFAULT '',
|
||||||
executor_name varchar(512) NOT NULL DEFAULT '',
|
executor_name varchar(512) NOT NULL DEFAULT '',
|
||||||
@ -185,19 +191,21 @@ CREATE TABLE sj_retry
|
|||||||
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (namespace_id, group_name, task_type, idempotent_id, deleted);
|
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no);
|
||||||
|
CREATE INDEX idx_sj_retry_02 ON sj_retry (retry_status, bucket_index);
|
||||||
|
CREATE INDEX idx_sj_retry_03 ON sj_retry (parent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_04 ON sj_retry (create_dt);
|
||||||
|
CREATE INDEX idx_sj_retry_05 ON sj_retry (idempotent_id);
|
||||||
|
|
||||||
CREATE INDEX idx_sj_retry_01 ON sj_retry (namespace_id, group_name, scene_name);
|
|
||||||
CREATE INDEX idx_sj_retry_02 ON sj_retry (namespace_id, group_name, retry_status);
|
|
||||||
CREATE INDEX idx_sj_retry_03 ON sj_retry (idempotent_id);
|
|
||||||
CREATE INDEX idx_sj_retry_04 ON sj_retry (biz_no);
|
|
||||||
CREATE INDEX idx_sj_retry_05 ON sj_retry (parent_id);
|
|
||||||
CREATE INDEX idx_sj_retry_06 ON sj_retry (create_dt);
|
|
||||||
|
|
||||||
COMMENT ON COLUMN sj_retry.id IS '主键';
|
COMMENT ON COLUMN sj_retry.id IS '主键';
|
||||||
COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
|
COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
|
||||||
COMMENT ON COLUMN sj_retry.group_name IS '组名称';
|
COMMENT ON COLUMN sj_retry.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.group_id IS '组Id';
|
||||||
COMMENT ON COLUMN sj_retry.scene_name IS '场景名称';
|
COMMENT ON COLUMN sj_retry.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.scene_id IS '场景ID';
|
||||||
COMMENT ON COLUMN sj_retry.idempotent_id IS '幂等id';
|
COMMENT ON COLUMN sj_retry.idempotent_id IS '幂等id';
|
||||||
COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
|
COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
|
||||||
COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
|
COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
|
||||||
|
|||||||
@ -84,7 +84,9 @@ CREATE TABLE `sj_retry_dead_letter`
|
|||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`group_id` bigint(20) NOT NULL COMMENT '组Id',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
|
`scene_id` bigint(20) NOT NULL COMMENT '场景ID',
|
||||||
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
||||||
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
||||||
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
|
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
|
||||||
@ -105,7 +107,9 @@ CREATE TABLE `sj_retry`
|
|||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`group_id` bigint(20) NOT NULL COMMENT '组Id',
|
||||||
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
|
`scene_id` bigint(20) NOT NULL COMMENT '场景ID',
|
||||||
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
||||||
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
||||||
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
|
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
|
||||||
@ -121,13 +125,12 @@ CREATE TABLE `sj_retry`
|
|||||||
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
|
|
||||||
KEY `idx_namespace_id_group_name_retry_status` (`namespace_id`, `group_name`, `retry_status`),
|
|
||||||
KEY `idx_idempotent_id` (`idempotent_id`),
|
|
||||||
KEY `idx_biz_no` (`biz_no`),
|
KEY `idx_biz_no` (`biz_no`),
|
||||||
|
KEY `idx_idempotent_id` (`idempotent_id`),
|
||||||
|
KEY `idx_retry_status_bucket_index` (`retry_status`, `bucket_index`),
|
||||||
KEY `idx_parent_id` (`parent_id`),
|
KEY `idx_parent_id` (`parent_id`),
|
||||||
KEY `idx_create_dt` (`create_dt`),
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
UNIQUE KEY `uk_name_task_type_idempotent_id_deleted` (`namespace_id`, `group_name`, `task_type`, `idempotent_id`, `deleted`)
|
UNIQUE KEY `uk_scene_tasktype_idempotentid_deleted` (`scene_id`, `task_type`, `idempotent_id`, `deleted`)
|
||||||
) ENGINE = InnoDB
|
) ENGINE = InnoDB
|
||||||
AUTO_INCREMENT = 0
|
AUTO_INCREMENT = 0
|
||||||
DEFAULT CHARSET = utf8mb4 COMMENT ='重试信息表';
|
DEFAULT CHARSET = utf8mb4 COMMENT ='重试信息表';
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
SnailJob Database Transfer Tool
|
SnailJob Database Transfer Tool
|
||||||
Source Server Type : MySQL
|
Source Server Type : MySQL
|
||||||
Target Server Type : Microsoft SQL Server
|
Target Server Type : Microsoft SQL Server
|
||||||
Date: 2025-02-25 22:16:48
|
Date: 2025-04-26 10:03:23
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -410,7 +410,9 @@ CREATE TABLE sj_retry_dead_letter
|
|||||||
id bigint NOT NULL PRIMARY KEY IDENTITY,
|
id bigint NOT NULL PRIMARY KEY IDENTITY,
|
||||||
namespace_id nvarchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
namespace_id nvarchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
group_name nvarchar(64) NOT NULL,
|
group_name nvarchar(64) NOT NULL,
|
||||||
|
group_id bigint NOT NULL,
|
||||||
scene_name nvarchar(64) NOT NULL,
|
scene_name nvarchar(64) NOT NULL,
|
||||||
|
scene_id bigint NOT NULL,
|
||||||
idempotent_id nvarchar(64) NOT NULL,
|
idempotent_id nvarchar(64) NOT NULL,
|
||||||
biz_no nvarchar(64) NOT NULL DEFAULT '',
|
biz_no nvarchar(64) NOT NULL DEFAULT '',
|
||||||
executor_name nvarchar(512) NOT NULL DEFAULT '',
|
executor_name nvarchar(512) NOT NULL DEFAULT '',
|
||||||
@ -450,6 +452,13 @@ EXEC sp_addextendedproperty
|
|||||||
'COLUMN', N'group_name'
|
'COLUMN', N'group_name'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'组Id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sj_retry_dead_letter',
|
||||||
|
'COLUMN', N'group_id'
|
||||||
|
GO
|
||||||
|
|
||||||
EXEC sp_addextendedproperty
|
EXEC sp_addextendedproperty
|
||||||
'MS_Description', N'场景名称',
|
'MS_Description', N'场景名称',
|
||||||
'SCHEMA', N'dbo',
|
'SCHEMA', N'dbo',
|
||||||
@ -457,6 +466,13 @@ EXEC sp_addextendedproperty
|
|||||||
'COLUMN', N'scene_name'
|
'COLUMN', N'scene_name'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'场景ID',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sj_retry_dead_letter',
|
||||||
|
'COLUMN', N'scene_id'
|
||||||
|
GO
|
||||||
|
|
||||||
EXEC sp_addextendedproperty
|
EXEC sp_addextendedproperty
|
||||||
'MS_Description', N'幂等id',
|
'MS_Description', N'幂等id',
|
||||||
'SCHEMA', N'dbo',
|
'SCHEMA', N'dbo',
|
||||||
@ -511,7 +527,9 @@ CREATE TABLE sj_retry
|
|||||||
id bigint NOT NULL PRIMARY KEY IDENTITY,
|
id bigint NOT NULL PRIMARY KEY IDENTITY,
|
||||||
namespace_id nvarchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
namespace_id nvarchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
group_name nvarchar(64) NOT NULL,
|
group_name nvarchar(64) NOT NULL,
|
||||||
|
group_id bigint NOT NULL,
|
||||||
scene_name nvarchar(64) NOT NULL,
|
scene_name nvarchar(64) NOT NULL,
|
||||||
|
scene_id bigint NOT NULL,
|
||||||
idempotent_id nvarchar(64) NOT NULL,
|
idempotent_id nvarchar(64) NOT NULL,
|
||||||
biz_no nvarchar(64) NOT NULL DEFAULT '',
|
biz_no nvarchar(64) NOT NULL DEFAULT '',
|
||||||
executor_name nvarchar(512) NOT NULL DEFAULT '',
|
executor_name nvarchar(512) NOT NULL DEFAULT '',
|
||||||
@ -529,20 +547,18 @@ CREATE TABLE sj_retry
|
|||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (namespace_id, group_name, task_type, idempotent_id, deleted)
|
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
CREATE INDEX idx_sj_retry_01 ON sj_retry (namespace_id, group_name, scene_name)
|
CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no)
|
||||||
GO
|
GO
|
||||||
CREATE INDEX idx_sj_retry_02 ON sj_retry (namespace_id, group_name, retry_status)
|
CREATE INDEX idx_sj_retry_02 ON sj_retry (retry_status, bucket_index)
|
||||||
GO
|
GO
|
||||||
CREATE INDEX idx_sj_retry_03 ON sj_retry (idempotent_id)
|
CREATE INDEX idx_sj_retry_03 ON sj_retry (parent_id)
|
||||||
GO
|
GO
|
||||||
CREATE INDEX idx_sj_retry_04 ON sj_retry (biz_no)
|
CREATE INDEX idx_sj_retry_04 ON sj_retry (create_dt)
|
||||||
GO
|
GO
|
||||||
CREATE INDEX idx_sj_retry_05 ON sj_retry (parent_id)
|
CREATE INDEX idx_sj_retry_05 ON sj_retry (idempotent_id)
|
||||||
GO
|
|
||||||
CREATE INDEX idx_sj_retry_06 ON sj_retry (create_dt)
|
|
||||||
GO
|
GO
|
||||||
|
|
||||||
EXEC sp_addextendedproperty
|
EXEC sp_addextendedproperty
|
||||||
@ -566,6 +582,13 @@ EXEC sp_addextendedproperty
|
|||||||
'COLUMN', N'group_name'
|
'COLUMN', N'group_name'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'组Id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sj_retry',
|
||||||
|
'COLUMN', N'group_id'
|
||||||
|
GO
|
||||||
|
|
||||||
EXEC sp_addextendedproperty
|
EXEC sp_addextendedproperty
|
||||||
'MS_Description', N'场景名称',
|
'MS_Description', N'场景名称',
|
||||||
'SCHEMA', N'dbo',
|
'SCHEMA', N'dbo',
|
||||||
@ -573,6 +596,13 @@ EXEC sp_addextendedproperty
|
|||||||
'COLUMN', N'scene_name'
|
'COLUMN', N'scene_name'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'场景ID',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sj_retry',
|
||||||
|
'COLUMN', N'scene_id'
|
||||||
|
GO
|
||||||
|
|
||||||
EXEC sp_addextendedproperty
|
EXEC sp_addextendedproperty
|
||||||
'MS_Description', N'幂等id',
|
'MS_Description', N'幂等id',
|
||||||
'SCHEMA', N'dbo',
|
'SCHEMA', N'dbo',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user