Merge remote-tracking branch 'base-version/main' into dev

# Conflicts:
#	sql/mysql/ruoyi-vue-pro.sql
#	zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/WebSocketSenderApi.java
#	zt-module-infra/zt-module-infra-server/src/main/resources/application-dev.yaml
This commit is contained in:
chenbowen
2025-12-01 10:21:34 +08:00
54 changed files with 78 additions and 79 deletions

View File

@@ -12,7 +12,7 @@ import lombok.ToString;
@ToString(callSuper = true) @ToString(callSuper = true)
public class BpmFormPageReqDTO extends PageParam { public class BpmFormPageReqDTO extends PageParam {
@Schema(description = "表单名称", example = "芋道") @Schema(description = "表单名称", example = "ZT")
private String name; private String name;
} }

View File

@@ -12,7 +12,7 @@ public class BpmFormRespDTO {
@Schema(description = "表单编号", example = "1024") @Schema(description = "表单编号", example = "1024")
private Long id; private Long id;
@Schema(description = "表单名", example = "芋艿") @Schema(description = "表单名", example = "ZT")
private String name; private String name;
@Schema(description = "表单状态", example = "1") @Schema(description = "表单状态", example = "1")

View File

@@ -11,7 +11,7 @@ public class BpmFormSaveReqDTO {
@Schema(description = "表单编号", example = "1024") @Schema(description = "表单编号", example = "1024")
private Long id; private Long id;
@Schema(description = "表单名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Schema(description = "表单名", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
@NotEmpty(message = "表单名不能为空") @NotEmpty(message = "表单名不能为空")
private String name; private String name;

View File

@@ -13,10 +13,10 @@ public class BpmUserGroupRespDTO {
@Schema(description = "编号", example = "1024") @Schema(description = "编号", example = "1024")
private Long id; private Long id;
@Schema(description = "组名", example = "芋艿") @Schema(description = "组名", example = "ZT")
private String name; private String name;
@Schema(description = "描述", example = "芋艿") @Schema(description = "描述", example = "ZT")
private String description; private String description;
@Schema(description = "成员用户编号数组", example = "1,2,3") @Schema(description = "成员用户编号数组", example = "1,2,3")

View File

@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@FeignClient(name = ApiConstants.NAME) // TODO 芋艿fallbackFactory = @FeignClient(name = ApiConstants.NAME) // TODO ZTfallbackFactory =
@Tag(name = "RPC 服务 - 流程实例") @Tag(name = "RPC 服务 - 流程实例")
public interface BpmProcessInstanceApi { public interface BpmProcessInstanceApi {

View File

@@ -24,7 +24,7 @@ public class BpmApprovalDetailReqDTO {
@Schema(description = "流程实例的编号", example = "1024") @Schema(description = "流程实例的编号", example = "1024")
private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID
// TODO @芋艿:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。 // TODO @ZT:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。
@Schema(description = "流程活动编号", example = "StartUserNode") @Schema(description = "流程活动编号", example = "StartUserNode")
private String activityId; // 用于获取表单权限。1发起流程时传"发起人节点" activityId 可获取发起人的表单权限2从抄送列表界面进来时传抄送的 activityId 可获取抄送人的表单权限; private String activityId; // 用于获取表单权限。1发起流程时传"发起人节点" activityId 可获取发起人的表单权限2从抄送列表界面进来时传抄送的 activityId 可获取抄送人的表单权限;

View File

@@ -16,7 +16,7 @@ public class BpmProcessInstancePageReqDTO extends PageParam {
@Schema(description = "流程实例的编号", example = "1024") @Schema(description = "流程实例的编号", example = "1024")
private String id; private String id;
@Schema(description = "流程实例的名字", example = "芋艿") @Schema(description = "流程实例的名字", example = "ZT")
private String name; private String name;
@Schema(description = "流程定义的编号", example = "2048") @Schema(description = "流程定义的编号", example = "2048")

View File

@@ -16,7 +16,7 @@ public class BpmProcessInstanceRespDTO {
@Schema(description = "流程实例的编号", example = "1024") @Schema(description = "流程实例的编号", example = "1024")
private String id; private String id;
@Schema(description = "流程实例的名字", example = "芋艿") @Schema(description = "流程实例的名字", example = "ZT")
private String name; private String name;
@Schema(description = "流程摘要") @Schema(description = "流程摘要")
@@ -49,7 +49,7 @@ public class BpmProcessInstanceRespDTO {
@Schema(description = "持续时间", example = "1000") @Schema(description = "持续时间", example = "1000")
private Long durationInMillis; private Long durationInMillis;
@Schema(description = "提交的表单值", example = "{\"name\": \"芋艿\"}") @Schema(description = "提交的表单值", example = "{\"name\": \"ZT\"}")
private Map<String, Object> formVariables; private Map<String, Object> formVariables;
@Schema(description = "业务的唯一标识", example = "1") @Schema(description = "业务的唯一标识", example = "1")
@@ -77,7 +77,7 @@ public class BpmProcessInstanceRespDTO {
@Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id; private String id;
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048") @Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048")

View File

@@ -13,7 +13,7 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
@Data @Data
public class BpmTaskPageReqDTO extends PageParam { public class BpmTaskPageReqDTO extends PageParam {
@Schema(description = "流程任务名", example = "芋艿") @Schema(description = "流程任务名", example = "ZT")
private String name; private String name;
@Schema(description = "流程定义的编号", example = "2048") @Schema(description = "流程定义的编号", example = "2048")

View File

@@ -15,7 +15,7 @@ public class BpmTaskRespDTO {
@Schema(description = "任务编号", example = "1024") @Schema(description = "任务编号", example = "1024")
private String id; private String id;
@Schema(description = "任务名字", example = "芋艿") @Schema(description = "任务名字", example = "ZT")
private String name; private String name;
@Schema(description = "接收人的用户编号", example = "1") @Schema(description = "接收人的用户编号", example = "1")
@@ -60,7 +60,7 @@ public class BpmTaskRespDTO {
@Schema(description = "表单项的数组", example = "[]") @Schema(description = "表单项的数组", example = "[]")
private List<String> formFields; private List<String> formFields;
@Schema(description = "提交的表单值", example = "{\"name\": \"芋艿\"}") @Schema(description = "提交的表单值", example = "{\"name\": \"ZT\"}")
private Map<String, Object> formVariables; private Map<String, Object> formVariables;
@Schema(description = "任务负责人编号", example = "2048") @Schema(description = "任务负责人编号", example = "2048")
@@ -103,7 +103,7 @@ public class BpmTaskRespDTO {
@Schema(description = "流程实例编号", example = "1024") @Schema(description = "流程实例编号", example = "1024")
private String id; private String id;
@Schema(description = "流程实例名称", example = "芋道") @Schema(description = "流程实例名称", example = "ZT")
private String name; private String name;
@Schema(description = "提交时间") @Schema(description = "提交时间")

View File

@@ -10,7 +10,7 @@ public class UserSimpleDTO {
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id; private Long id;
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String nickname; private String nickname;
@Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png") @Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png")

View File

@@ -84,7 +84,7 @@
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> </dependency>
<!-- 服务保障相关 TODO 芋艿:暂时去掉 --> <!-- 服务保障相关 TODO ZT:暂时去掉 -->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>com.zt.plat</groupId>--> <!-- <groupId>com.zt.plat</groupId>-->
<!-- <artifactId>zt-spring-boot-starter-protection</artifactId>--> <!-- <artifactId>zt-spring-boot-starter-protection</artifactId>-->

View File

@@ -9,7 +9,7 @@ public class UserSimpleBaseVO {
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id; private Long id;
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String nickname; private String nickname;
@Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png") @Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png")
private String avatar; private String avatar;

View File

@@ -60,7 +60,7 @@ public class BpmModelController {
@GetMapping("/list") @GetMapping("/list")
@Operation(summary = "获得模型分页") @Operation(summary = "获得模型分页")
@Parameter(name = "name", description = "模型名称", example = "芋艿") @Parameter(name = "name", description = "模型名称", example = "ZT")
public CommonResult<List<BpmModelRespVO>> getModelList(@RequestParam(value = "name", required = false) String name) { public CommonResult<List<BpmModelRespVO>> getModelList(@RequestParam(value = "name", required = false) String name) {
List<Model> list = modelService.getModelList(name); List<Model> list = modelService.getModelList(name);
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {

View File

@@ -8,7 +8,7 @@ import lombok.Data;
@Data @Data
public class BpmFormPageReqVO extends PageParam { public class BpmFormPageReqVO extends PageParam {
@Schema(description = "表单名称", example = "芋道") @Schema(description = "表单名称", example = "ZT")
private String name; private String name;
} }

View File

@@ -14,7 +14,7 @@ public class BpmFormRespVO {
@Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id; private Long id;
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
@NotNull(message = "表单名称不能为空") @NotNull(message = "表单名称不能为空")
private String name; private String name;

View File

@@ -13,7 +13,7 @@ public class BpmFormSaveReqVO {
@Schema(description = "表单编号", example = "1024") @Schema(description = "表单编号", example = "1024")
private Long id; private Long id;
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
@NotNull(message = "表单名称不能为空") @NotNull(message = "表单名称不能为空")
private String name; private String name;

View File

@@ -15,7 +15,7 @@ public class BpmUserGroupPageReqVO extends PageParam {
@Schema(description = "编号", example = "1024") @Schema(description = "编号", example = "1024")
private Long id; private Long id;
@Schema(description = "组名", example = "芋道") @Schema(description = "组名", example = "ZT")
private String name; private String name;
@Schema(description = "状态", example = "1") @Schema(description = "状态", example = "1")

View File

@@ -13,10 +13,10 @@ public class BpmUserGroupRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id; private Long id;
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT源码")
private String description; private String description;
@Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")

View File

@@ -13,11 +13,11 @@ public class BpmUserGroupSaveReqVO {
@Schema(description = "编号", example = "1024") @Schema(description = "编号", example = "1024")
private Long id; private Long id;
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
@NotNull(message = "组名不能为空") @NotNull(message = "组名不能为空")
private String name; private String name;
@Schema(description = "描述", example = "芋道源码") @Schema(description = "描述", example = "ZT源码")
private String description; private String description;
@Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")

View File

@@ -20,7 +20,7 @@ public class BpmModelRespVO extends BpmModelMetaInfoVO {
@Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_zt") @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_zt")
private String key; private String key;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "流程图标", example = "https://www.iocoder.cn/zt.jpg") @Schema(description = "流程图标", example = "https://www.iocoder.cn/zt.jpg")

View File

@@ -17,7 +17,7 @@ public class BpmModelSaveReqVO extends BpmModelMetaInfoVO {
@NotEmpty(message = "流程标识不能为空") @NotEmpty(message = "流程标识不能为空")
private String key; private String key;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
@NotEmpty(message = "流程名称不能为空") @NotEmpty(message = "流程名称不能为空")
private String name; private String name;

View File

@@ -35,7 +35,7 @@ public class BpmSimpleModelNodeVO {
@Schema(description = "模型节点名称", example = "领导审批") @Schema(description = "模型节点名称", example = "领导审批")
private String name; private String name;
@Schema(description = "节点展示内容", example = "指定成员: 芋道源码") @Schema(description = "节点展示内容", example = "指定成员: ZT源码")
private String showText; private String showText;
@Schema(description = "子节点") @Schema(description = "子节点")

View File

@@ -17,7 +17,7 @@ public class BpmProcessDefinitionRespVO extends BpmModelMetaInfoVO {
@Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer version; private Integer version;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "youdao") @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "youdao")

View File

@@ -29,7 +29,7 @@ public class BpmOALeaveCreateReqVO {
@Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer type; private Integer type;
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读ZT源码")
private String reason; private String reason;
@Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}") @Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}")

View File

@@ -19,7 +19,7 @@ public class BpmOALeavePageReqVO extends PageParam {
@Schema(description = "请假类型,参见 bpm_oa_type", example = "1") @Schema(description = "请假类型,参见 bpm_oa_type", example = "1")
private Integer type; private Integer type;
@Schema(description = "原因,模糊匹配", example = "阅读芋道源码") @Schema(description = "原因,模糊匹配", example = "阅读ZT源码")
private String reason; private String reason;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)

View File

@@ -15,7 +15,7 @@ public class BpmOALeaveRespVO {
@Schema(description = "请假类型,参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "请假类型,参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer type; private Integer type;
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读ZT源码")
private String reason; private String reason;
@Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED)

View File

@@ -24,7 +24,7 @@ public class BpmApprovalDetailReqVO {
@Schema(description = "流程实例的编号", example = "1024") @Schema(description = "流程实例的编号", example = "1024")
private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID
// TODO @芋艿:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。 // TODO @ZT:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。
@Schema(description = "流程活动编号", example = "StartUserNode") @Schema(description = "流程活动编号", example = "StartUserNode")
private String activityId; // 用于获取表单权限。1发起流程时传“发起人节点” activityId 可获取发起人的表单权限2从抄送列表界面进来时传抄送的 activityId 可获取抄送人的表单权限; private String activityId; // 用于获取表单权限。1发起流程时传“发起人节点” activityId 可获取发起人的表单权限2从抄送列表界面进来时传抄送的 activityId 可获取抄送人的表单权限;

View File

@@ -13,7 +13,7 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
@Data @Data
public class BpmProcessInstanceCopyPageReqVO extends PageParam { public class BpmProcessInstanceCopyPageReqVO extends PageParam {
@Schema(description = "流程名称", example = "芋道") @Schema(description = "流程名称", example = "ZT")
private String processInstanceName; private String processInstanceName;
@Schema(description = "创建时间") @Schema(description = "创建时间")

View File

@@ -15,7 +15,7 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
@Data @Data
public class BpmProcessInstancePageReqVO extends PageParam { public class BpmProcessInstancePageReqVO extends PageParam {
@Schema(description = "流程名称", example = "芋道") @Schema(description = "流程名称", example = "ZT")
private String name; private String name;
@Schema(description = "流程定义的标识", example = "2048") @Schema(description = "流程定义的标识", example = "2048")

View File

@@ -18,7 +18,7 @@ public class BpmProcessInstanceRespVO {
@Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id; private String id;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "流程摘要") @Schema(description = "流程摘要")
@@ -71,7 +71,7 @@ public class BpmProcessInstanceRespVO {
@Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id; private String id;
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048") @Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048")

View File

@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
@Data @Data
public class BpmTaskPageReqVO extends PageParam { public class BpmTaskPageReqVO extends PageParam {
@Schema(description = "流程任务名", example = "芋道") @Schema(description = "流程任务名", example = "ZT")
private String name; private String name;
@Schema(description = "流程分类", example = "1") @Schema(description = "流程分类", example = "1")

View File

@@ -17,7 +17,7 @@ public class BpmTaskRespVO {
@Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id; private String id;
@Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -97,7 +97,7 @@ public class BpmTaskRespVO {
@Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id; private String id;
@Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") @Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
private String name; private String name;
@Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED)

View File

@@ -123,7 +123,7 @@ public class BpmnModelUtils {
public static Integer parseCandidateStrategy(FlowElement userTask) { public static Integer parseCandidateStrategy(FlowElement userTask) {
Integer candidateStrategy = NumberUtils.parseInt(userTask.getAttributeValue( Integer candidateStrategy = NumberUtils.parseInt(userTask.getAttributeValue(
BpmnModelConstants.NAMESPACE, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY)); BpmnModelConstants.NAMESPACE, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY));
// TODO @芋艿 尝试从 ExtensionElement 取. 后续相关扩展是否都可以 存 extensionElement。 如表单权限。 按钮权限 // TODO @ZT 尝试从 ExtensionElement 取. 后续相关扩展是否都可以 存 extensionElement。 如表单权限。 按钮权限
if (candidateStrategy == null) { if (candidateStrategy == null) {
ExtensionElement element = CollUtil.getFirst(userTask.getExtensionElements().get(BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY)); ExtensionElement element = CollUtil.getFirst(userTask.getExtensionElements().get(BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY));
candidateStrategy = element != null ? NumberUtils.parseInt(element.getElementText()) : null; candidateStrategy = element != null ? NumberUtils.parseInt(element.getElementText()) : null;

View File

@@ -208,7 +208,7 @@ public class SimpleModelUtils {
BpmSimpleModelNodeTypeEnum nodeType = BpmSimpleModelNodeTypeEnum.valueOf(node.getType()); BpmSimpleModelNodeTypeEnum nodeType = BpmSimpleModelNodeTypeEnum.valueOf(node.getType());
BpmSimpleModelNodeVO childNode = node.getChildNode(); BpmSimpleModelNodeVO childNode = node.getChildNode();
List<BpmSimpleModelNodeVO> conditionNodes = node.getConditionNodes(); List<BpmSimpleModelNodeVO> conditionNodes = node.getConditionNodes();
// TODO @芋艿 路由分支没有conditionNodes 这里注释会影响吗?@jason一起帮忙瞅瞅 // TODO @ZT 路由分支没有conditionNodes 这里注释会影响吗?@jason一起帮忙瞅瞅
// Assert.notEmpty(conditionNodes, "分支节点的条件节点不能为空"); // Assert.notEmpty(conditionNodes, "分支节点的条件节点不能为空");
// 分支终点节点 ID // 分支终点节点 ID
String branchEndNodeId = null; String branchEndNodeId = null;
@@ -277,8 +277,8 @@ public class SimpleModelUtils {
String conditionExpression) { String conditionExpression) {
Assert.notEmpty(sourceId, "sourceId 不能为空"); Assert.notEmpty(sourceId, "sourceId 不能为空");
Assert.notEmpty(targetId, "targetId 不能为空"); Assert.notEmpty(targetId, "targetId 不能为空");
// TODO @jason如果 sequenceFlowId 不存在的时候,是不是要生成一个默认的 sequenceFlowId @芋艿 貌似不需要,Flowable 会默认生成TODO @jason建议还是搞一个主要是后续好排查问题。 // TODO @jason如果 sequenceFlowId 不存在的时候,是不是要生成一个默认的 sequenceFlowId @ZT 貌似不需要,Flowable 会默认生成TODO @jason建议还是搞一个主要是后续好排查问题。
// TODO @jason如果 name 不存在的时候,是不是要生成一个默认的 name @芋艿 不需要生成默认的吧? 这个会在流程图展示的, 一般用户填写的。不好生成默认的吧TODO @jason建议还是搞一个主要是后续好排查问题。 // TODO @jason如果 name 不存在的时候,是不是要生成一个默认的 name @ZT 不需要生成默认的吧? 这个会在流程图展示的, 一般用户填写的。不好生成默认的吧TODO @jason建议还是搞一个主要是后续好排查问题。
SequenceFlow sequenceFlow = new SequenceFlow(sourceId, targetId); SequenceFlow sequenceFlow = new SequenceFlow(sourceId, targetId);
if (StrUtil.isNotEmpty(sequenceFlowId)) { if (StrUtil.isNotEmpty(sequenceFlowId)) {
sequenceFlow.setId(sequenceFlowId); sequenceFlow.setId(sequenceFlowId);
@@ -341,7 +341,7 @@ public class SimpleModelUtils {
EndEvent endEvent = new EndEvent(); EndEvent endEvent = new EndEvent();
endEvent.setId(node.getId()); endEvent.setId(node.getId());
endEvent.setName(node.getName()); endEvent.setName(node.getName());
// TODO @芋艿 + jason要不要加一个终止定义 // TODO @ZT + jason要不要加一个终止定义
return endEvent; return endEvent;
} }
@@ -369,7 +369,7 @@ public class SimpleModelUtils {
// 添加操作按钮配置属性元素 // 添加操作按钮配置属性元素
addButtonsSetting(node.getButtonsSetting(), userTask); addButtonsSetting(node.getButtonsSetting(), userTask);
// 使用自动通过策略 // 使用自动通过策略
// TODO @芋艿 复用了SKIP 是否需要新加一个策略TODO @芋艿:【回复】是不是应该类似飞书,搞个草稿状态。待定;还有一种策略,不标记自动通过,而是首次发起后,第一个节点,自动通过; // TODO @ZT 复用了SKIP 是否需要新加一个策略TODO @ZT:【回复】是不是应该类似飞书,搞个草稿状态。待定;还有一种策略,不标记自动通过,而是首次发起后,第一个节点,自动通过;
addAssignStartUserHandlerType(BpmUserTaskAssignStartUserHandlerTypeEnum.SKIP.getType(), userTask); addAssignStartUserHandlerType(BpmUserTaskAssignStartUserHandlerTypeEnum.SKIP.getType(), userTask);
return userTask; return userTask;
} }

View File

@@ -19,7 +19,7 @@ public class SecurityConfiguration {
@Override @Override
public void customize(AuthorizeHttpRequestsConfigurer<HttpSecurity>.AuthorizationManagerRequestMatcherRegistry registry) { public void customize(AuthorizeHttpRequestsConfigurer<HttpSecurity>.AuthorizationManagerRequestMatcherRegistry registry) {
// TODO 芋艿:这个每个项目都需要重复配置,得捉摸有没通用的方案 // TODO ZT:这个每个项目都需要重复配置,得捉摸有没通用的方案
// Swagger 接口文档 // Swagger 接口文档
registry.requestMatchers("/v3/api-docs/**").permitAll() registry.requestMatchers("/v3/api-docs/**").permitAll()
.requestMatchers("/webjars/**").permitAll() .requestMatchers("/webjars/**").permitAll()

View File

@@ -94,7 +94,7 @@ public class BpmFormServiceImpl implements BpmFormService {
* @param fields field 数组 * @param fields field 数组
*/ */
private void validateFields(List<String> fields) { private void validateFields(List<String> fields) {
if (true) { // TODO 芋艿:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验 if (true) { // TODO ZT:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验
return; return;
} }
Map<String, String> fieldMap = new HashMap<>(); // key 是 vModelvalue 是 label Map<String, String> fieldMap = new HashMap<>(); // key 是 vModelvalue 是 label

View File

@@ -9,7 +9,7 @@ import jakarta.validation.Valid;
/** /**
* BPM 消息 Service 接口 * BPM 消息 Service 接口
* *
* TODO 芋艿:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么; * TODO ZT:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么;
* *
* @author ZT * @author ZT
*/ */

View File

@@ -495,7 +495,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
for (HistoricActivityInstance activity : taskActivities) { for (HistoricActivityInstance activity : taskActivities) {
HistoricTaskInstance task = taskMap.get(activity.getTaskId()); HistoricTaskInstance task = taskMap.get(activity.getTaskId());
// 特殊情况:子流程节点 ChildProcess 仅存在于 activity 中,并且没有自身的 task需要跳过执行 // 特殊情况:子流程节点 ChildProcess 仅存在于 activity 中,并且没有自身的 task需要跳过执行
// TODO @芋艿:后续看看怎么优化! // TODO @ZT:后续看看怎么优化!
if (task == null) { if (task == null) {
continue; continue;
} }
@@ -535,7 +535,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
BpmProcessDefinitionInfoDO processDefinitionInfo, BpmProcessDefinitionInfoDO processDefinitionInfo,
Map<String, Object> processVariables, Map<String, Object> processVariables,
List<HistoricActivityInstance> activities) { List<HistoricActivityInstance> activities) {
// TODO @芋艿【可优化】在驳回场景下未来的预测准确性不高。原因是驳回后HistoricActivityInstance // TODO @ZT【可优化】在驳回场景下未来的预测准确性不高。原因是驳回后HistoricActivityInstance
// 包括了历史的操作,不是只有 startEvent 到当前节点的记录 // 包括了历史的操作,不是只有 startEvent 到当前节点的记录
Set<String> runActivityIds = convertSet(activities, HistoricActivityInstance::getActivityId); Set<String> runActivityIds = convertSet(activities, HistoricActivityInstance::getActivityId);
// 情况一BPMN 设计器 // 情况一BPMN 设计器
@@ -558,7 +558,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
private ActivityNode buildNotRunApproveNodeForSimple(Long startUserId, BpmnModel bpmnModel, private ActivityNode buildNotRunApproveNodeForSimple(Long startUserId, BpmnModel bpmnModel,
BpmProcessDefinitionInfoDO processDefinitionInfo, Map<String, Object> processVariables, BpmProcessDefinitionInfoDO processDefinitionInfo, Map<String, Object> processVariables,
BpmSimpleModelNodeVO node, Set<String> runActivityIds) { BpmSimpleModelNodeVO node, Set<String> runActivityIds) {
// TODO @芋艿【可优化】在驳回场景下未来的预测准确性不高。原因是驳回后HistoricActivityInstance // TODO @ZT【可优化】在驳回场景下未来的预测准确性不高。原因是驳回后HistoricActivityInstance
// 包括了历史的操作,不是只有 startEvent 到当前节点的记录 // 包括了历史的操作,不是只有 startEvent 到当前节点的记录
if (runActivityIds.contains(node.getId())) { if (runActivityIds.contains(node.getId())) {
return null; return null;

View File

@@ -1008,7 +1008,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
.changeState(); .changeState();
// 3. 特殊:如果跳转到 EndEvent 流程还未结束, 执行 deleteProcessInstance 方法 // 3. 特殊:如果跳转到 EndEvent 流程还未结束, 执行 deleteProcessInstance 方法
// TODO 芋艿:目前发现并行分支情况下,会存在这个情况,后续看看有没更好的方案; // TODO ZT:目前发现并行分支情况下,会存在这个情况,后续看看有没更好的方案;
List<Execution> executions = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list(); List<Execution> executions = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list();
if (CollUtil.isNotEmpty(executions)) { if (CollUtil.isNotEmpty(executions)) {
log.warn("[moveTaskToEnd][执行跳转到 EndEvent 后, 流程实例未结束,强制执行 deleteProcessInstance 方法]"); log.warn("[moveTaskToEnd][执行跳转到 EndEvent 后, 流程实例未结束,强制执行 deleteProcessInstance 方法]");
@@ -1331,7 +1331,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
return; return;
} }
// 自动去重,通过自动审批的方式 TODO @芋艿 驳回的情况得考虑一下;@lesan驳回后又自动审批么 // 自动去重,通过自动审批的方式 TODO @ZT 驳回的情况得考虑一下;@lesan驳回后又自动审批么
BpmProcessDefinitionInfoDO processDefinitionInfo = bpmProcessDefinitionService.getProcessDefinitionInfo(task.getProcessDefinitionId()); BpmProcessDefinitionInfoDO processDefinitionInfo = bpmProcessDefinitionService.getProcessDefinitionInfo(task.getProcessDefinitionId());
if (processDefinitionInfo == null) { if (processDefinitionInfo == null) {
log.error("[processTaskAssigned][taskId({}) 没有找到流程定义({})]", task.getId(), task.getProcessDefinitionId()); log.error("[processTaskAssigned][taskId({}) 没有找到流程定义({})]", task.getId(), task.getProcessDefinitionId());
@@ -1374,7 +1374,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
} }
FlowElement userTaskElement = BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey()); FlowElement userTaskElement = BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey());
// 判断是否为退回或者驳回:如果是退回或者驳回不走这个策略 // 判断是否为退回或者驳回:如果是退回或者驳回不走这个策略
// TODO 芋艿:【优化】未来有没更好的判断方式?!另外,还要考虑清理机制。就是说,下次处理了之后,就移除这个标识 // TODO ZT:【优化】未来有没更好的判断方式?!另外,还要考虑清理机制。就是说,下次处理了之后,就移除这个标识
Boolean returnTaskFlag = runtimeService.getVariable(processInstance.getProcessInstanceId(), Boolean returnTaskFlag = runtimeService.getVariable(processInstance.getProcessInstanceId(),
String.format(PROCESS_INSTANCE_VARIABLE_RETURN_FLAG, task.getTaskDefinitionKey()), Boolean.class); String.format(PROCESS_INSTANCE_VARIABLE_RETURN_FLAG, task.getTaskDefinitionKey()), Boolean.class);
Boolean skipStartUserNodeFlag = Convert.toBool(runtimeService.getVariable(processInstance.getProcessInstanceId(), Boolean skipStartUserNodeFlag = Convert.toBool(runtimeService.getVariable(processInstance.getProcessInstanceId(),

View File

@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
import static com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils.parseListenerConfig; import static com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils.parseListenerConfig;
// TODO @芋艿:可能会想换个包地址 // TODO @ZT:可能会想换个包地址
/** /**
* BPM 用户任务通用监听器 * BPM 用户任务通用监听器
* *
@@ -42,7 +42,7 @@ public class BpmUserTaskListener implements TaskListener {
BpmSimpleModelNodeVO.ListenerHandler listenerHandler = parseListenerConfig(listenerConfig); BpmSimpleModelNodeVO.ListenerHandler listenerHandler = parseListenerConfig(listenerConfig);
// 2. 发起请求 // 2. 发起请求
// TODO @芋艿:哪些默认参数,后续再调研下;感觉可以搞个 task 字段,把整个 delegateTask 放进去; // TODO @ZT:哪些默认参数,后续再调研下;感觉可以搞个 task 字段,把整个 delegateTask 放进去;
listenerHandler.getBody().add(new BpmSimpleModelNodeVO.HttpRequestParam().setKey("processInstanceId") listenerHandler.getBody().add(new BpmSimpleModelNodeVO.HttpRequestParam().setKey("processInstanceId")
.setType(BpmHttpRequestParamTypeEnum.FIXED_VALUE.getType()).setValue(delegateTask.getProcessInstanceId())); .setType(BpmHttpRequestParamTypeEnum.FIXED_VALUE.getType()).setValue(delegateTask.getProcessInstanceId()));
listenerHandler.getBody().add(new BpmSimpleModelNodeVO.HttpRequestParam().setKey("assignee") listenerHandler.getBody().add(new BpmSimpleModelNodeVO.HttpRequestParam().setKey("assignee")
@@ -54,6 +54,6 @@ public class BpmUserTaskListener implements TaskListener {
BpmHttpRequestUtils.executeBpmHttpRequest(processInstance, BpmHttpRequestUtils.executeBpmHttpRequest(processInstance,
listenerHandler.getPath(), listenerHandler.getHeader(), listenerHandler.getBody(), false, null); listenerHandler.getPath(), listenerHandler.getHeader(), listenerHandler.getBody(), false, null);
// 3. 是否需要后续操作TODO 芋艿:待定! // 3. 是否需要后续操作TODO ZT:待定!
} }
} }

View File

@@ -2,7 +2,7 @@ package com.zt.plat.module.bpm.service.task.trigger;
import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum; import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum;
// TODO @芋艿:可能会想换个包地址 // TODO @ZT:可能会想换个包地址
/** /**
* BPM 触发器接口 * BPM 触发器接口
* <p> * <p>

View File

@@ -89,6 +89,6 @@ spring:
instance: instance:
service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
--- #################### 芋道相关配置 #################### --- #################### ZT相关配置 ####################

View File

@@ -102,11 +102,11 @@ logging:
level: level:
# 配置自己写的 MyBatis Mapper 打印日志 # 配置自己写的 MyBatis Mapper 打印日志
com.zt.plat.module.bpm.dal.mysql: debug com.zt.plat.module.bpm.dal.mysql: debug
org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿先禁用Spring Boot 3.X 存在部分错误的 WARN 提示 org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO ZT先禁用Spring Boot 3.X 存在部分错误的 WARN 提示
--- #################### 芋道相关配置 #################### --- #################### ZT相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置 # ZT配置项,设置当前项目所有自定义的配置
zt: zt:
env: # 多环境的配置项 env: # 多环境的配置项
tag: ${HOSTNAME} tag: ${HOSTNAME}

View File

@@ -68,7 +68,7 @@ springdoc:
default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档 default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档
knife4j: knife4j:
enable: false # TODO 芋艿需要关闭增强具体原因见https://github.com/xiaoymin/knife4j/issues/874 enable: false # TODO ZT需要关闭增强具体原因见https://github.com/xiaoymin/knife4j/issues/874
setting: setting:
language: zh_cn language: zh_cn
@@ -127,7 +127,7 @@ xxl:
logpath: ${user.home}/logs/xxl-job/${spring.application.name} # 执行器运行日志文件存储磁盘路径 logpath: ${user.home}/logs/xxl-job/${spring.application.name} # 执行器运行日志文件存储磁盘路径
accessToken: default_token # 执行器通讯TOKEN accessToken: default_token # 执行器通讯TOKEN
--- #################### 芋道相关配置 #################### --- #################### ZT相关配置 ####################
zt: zt:
info: info:

View File

@@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
@Disabled // TODO 芋艿:临时注释 @Disabled // TODO ZT:临时注释
public class BpmTaskCandidateExpressionStrategyTest extends BaseMockitoUnitTest { public class BpmTaskCandidateExpressionStrategyTest extends BaseMockitoUnitTest {
@InjectMocks @InjectMocks

View File

@@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@Disabled // TODO 芋艿:临时注释 @Disabled // TODO ZT:临时注释
public class BpmTaskCandidateGroupStrategyTest extends BaseMockitoUnitTest { public class BpmTaskCandidateGroupStrategyTest extends BaseMockitoUnitTest {
@InjectMocks @InjectMocks

View File

@@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@Disabled // TODO 芋艿:临时注释 @Disabled // TODO ZT:临时注释
public class BpmTaskCandidatePostStrategyTest extends BaseMockitoUnitTest { public class BpmTaskCandidatePostStrategyTest extends BaseMockitoUnitTest {
@InjectMocks @InjectMocks

View File

@@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@Disabled // TODO 芋艿:临时注释 @Disabled // TODO ZT:临时注释
public class BpmTaskCandidateRoleStrategyTest extends BaseMockitoUnitTest { public class BpmTaskCandidateRoleStrategyTest extends BaseMockitoUnitTest {
@InjectMocks @InjectMocks

View File

@@ -10,7 +10,7 @@ import java.util.Set;
import static com.zt.plat.framework.common.util.collection.SetUtils.asSet; import static com.zt.plat.framework.common.util.collection.SetUtils.asSet;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
@Disabled // TODO 芋艿:临时注释 @Disabled // TODO ZT:临时注释
public class BpmTaskCandidateUserStrategyTest extends BaseMockitoUnitTest { public class BpmTaskCandidateUserStrategyTest extends BaseMockitoUnitTest {
@InjectMocks @InjectMocks

View File

@@ -117,14 +117,14 @@ public class BpmFormServiceTest extends BaseDbUnitTest {
public void testGetFormPage() { public void testGetFormPage() {
// mock 数据 // mock 数据
BpmFormDO dbForm = randomPojo(BpmFormDO.class, o -> { // 等会查询到 BpmFormDO dbForm = randomPojo(BpmFormDO.class, o -> { // 等会查询到
o.setName("芋道源码"); o.setName("ZT源码");
}); });
formMapper.insert(dbForm); formMapper.insert(dbForm);
// 测试 name 不匹配 // 测试 name 不匹配
formMapper.insert(cloneIgnoreId(dbForm, o -> o.setName("源码"))); formMapper.insert(cloneIgnoreId(dbForm, o -> o.setName("源码")));
// 准备参数 // 准备参数
BpmFormPageReqVO reqVO = new BpmFormPageReqVO(); BpmFormPageReqVO reqVO = new BpmFormPageReqVO();
reqVO.setName("芋道"); reqVO.setName("ZT");
// 调用 // 调用
PageResult<BpmFormDO> pageResult = formService.getFormPage(reqVO); PageResult<BpmFormDO> pageResult = formService.getFormPage(reqVO);

View File

@@ -101,13 +101,13 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest {
public void testGetUserGroupPage() { public void testGetUserGroupPage() {
// mock 数据 // mock 数据
BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到 BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到
o.setName("芋道源码"); o.setName("ZT源码");
o.setStatus(CommonStatusEnum.ENABLE.getStatus()); o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setCreateTime(buildTime(2021, 11, 11)); o.setCreateTime(buildTime(2021, 11, 11));
}); });
userGroupMapper.insert(dbUserGroup); userGroupMapper.insert(dbUserGroup);
// 测试 name 不匹配 // 测试 name 不匹配
userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("芋道"))); userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("ZT")));
// 测试 status 不匹配 // 测试 status 不匹配
userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
// 测试 createTime 不匹配 // 测试 createTime 不匹配

View File

@@ -37,9 +37,9 @@ mybatis-plus:
--- #################### 监控相关配置 #################### --- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 #################### --- #################### ZT相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置 # ZT配置项,设置当前项目所有自定义的配置
zt: zt:
info: info:
base-package: com.zt.plat.module.bpm base-package: com.zt.plat.module.bpm