1. 剔除掉多余的文档以及标记
This commit is contained in:
@@ -79,7 +79,7 @@
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- 服务保障相关 TODO 芋艿:暂时去掉 -->
|
||||
<!-- 服务保障相关 TODO ZT:暂时去掉 -->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.zt.plat</groupId>-->
|
||||
<!-- <artifactId>zt-spring-boot-starter-protection</artifactId>-->
|
||||
|
||||
@@ -9,7 +9,7 @@ public class UserSimpleBaseVO {
|
||||
|
||||
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Long id;
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String nickname;
|
||||
@Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png")
|
||||
private String avatar;
|
||||
|
||||
@@ -60,7 +60,7 @@ public class BpmModelController {
|
||||
|
||||
@GetMapping("/list")
|
||||
@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) {
|
||||
List<Model> list = modelService.getModelList(name);
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class BpmFormPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "表单名称", example = "芋道")
|
||||
@Schema(description = "表单名称", example = "ZT")
|
||||
private String name;
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class BpmFormRespVO {
|
||||
@Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
@NotNull(message = "表单名称不能为空")
|
||||
private String name;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ public class BpmFormSaveReqVO {
|
||||
@Schema(description = "表单编号", example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
@NotNull(message = "表单名称不能为空")
|
||||
private String name;
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ public class BpmUserGroupPageReqVO extends PageParam {
|
||||
@Schema(description = "编号", example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "组名", example = "芋道")
|
||||
@Schema(description = "组名", example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "状态", example = "1")
|
||||
|
||||
@@ -13,10 +13,10 @@ public class BpmUserGroupRespVO {
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
|
||||
@Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT源码")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")
|
||||
|
||||
@@ -13,11 +13,11 @@ public class BpmUserGroupSaveReqVO {
|
||||
@Schema(description = "编号", example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
@NotNull(message = "组名不能为空")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "描述", example = "芋道源码")
|
||||
@Schema(description = "描述", example = "ZT源码")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")
|
||||
|
||||
@@ -20,7 +20,7 @@ public class BpmModelRespVO extends BpmModelMetaInfoVO {
|
||||
@Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_zt")
|
||||
private String key;
|
||||
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "流程图标", example = "https://www.iocoder.cn/zt.jpg")
|
||||
|
||||
@@ -17,7 +17,7 @@ public class BpmModelSaveReqVO extends BpmModelMetaInfoVO {
|
||||
@NotEmpty(message = "流程标识不能为空")
|
||||
private String key;
|
||||
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
@NotEmpty(message = "流程名称不能为空")
|
||||
private String name;
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ public class BpmSimpleModelNodeVO {
|
||||
@Schema(description = "模型节点名称", example = "领导审批")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "节点展示内容", example = "指定成员: 芋道源码")
|
||||
@Schema(description = "节点展示内容", example = "指定成员: ZT源码")
|
||||
private String showText;
|
||||
|
||||
@Schema(description = "子节点")
|
||||
|
||||
@@ -17,7 +17,7 @@ public class BpmProcessDefinitionRespVO extends BpmModelMetaInfoVO {
|
||||
@Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Integer version;
|
||||
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "youdao")
|
||||
|
||||
@@ -29,7 +29,7 @@ public class BpmOALeaveCreateReqVO {
|
||||
@Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Integer type;
|
||||
|
||||
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码")
|
||||
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读ZT源码")
|
||||
private String reason;
|
||||
|
||||
@Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}")
|
||||
|
||||
@@ -19,7 +19,7 @@ public class BpmOALeavePageReqVO extends PageParam {
|
||||
@Schema(description = "请假类型,参见 bpm_oa_type", example = "1")
|
||||
private Integer type;
|
||||
|
||||
@Schema(description = "原因,模糊匹配", example = "阅读芋道源码")
|
||||
@Schema(description = "原因,模糊匹配", example = "阅读ZT源码")
|
||||
private String reason;
|
||||
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
|
||||
@@ -15,7 +15,7 @@ public class BpmOALeaveRespVO {
|
||||
@Schema(description = "请假类型,参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Integer type;
|
||||
|
||||
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码")
|
||||
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读ZT源码")
|
||||
private String reason;
|
||||
|
||||
@Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
@@ -24,7 +24,7 @@ public class BpmApprovalDetailReqVO {
|
||||
@Schema(description = "流程实例的编号", example = "1024")
|
||||
private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID
|
||||
|
||||
// TODO @芋艿:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。
|
||||
// TODO @ZT:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。
|
||||
@Schema(description = "流程活动编号", example = "StartUserNode")
|
||||
private String activityId; // 用于获取表单权限。1)发起流程时,传“发起人节点” activityId 可获取发起人的表单权限;2)从抄送列表界面进来时,传抄送的 activityId 可获取抄送人的表单权限;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
@Data
|
||||
public class BpmProcessInstanceCopyPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "流程名称", example = "芋道")
|
||||
@Schema(description = "流程名称", example = "ZT")
|
||||
private String processInstanceName;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
|
||||
@@ -15,7 +15,7 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
@Data
|
||||
public class BpmProcessInstancePageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "流程名称", example = "芋道")
|
||||
@Schema(description = "流程名称", example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "流程定义的标识", example = "2048")
|
||||
|
||||
@@ -18,7 +18,7 @@ public class BpmProcessInstanceRespVO {
|
||||
@Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "流程摘要")
|
||||
@@ -71,7 +71,7 @@ public class BpmProcessInstanceRespVO {
|
||||
@Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048")
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
|
||||
@Data
|
||||
public class BpmTaskPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "流程任务名", example = "芋道")
|
||||
@Schema(description = "流程任务名", example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "流程分类", example = "1")
|
||||
|
||||
@@ -17,7 +17,7 @@ public class BpmTaskRespVO {
|
||||
@Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@@ -97,7 +97,7 @@ public class BpmTaskRespVO {
|
||||
@Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ZT")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<http://www.iocoder.cn/Spring-Boot/MapStruct/?zt>
|
||||
@@ -123,7 +123,7 @@ public class BpmnModelUtils {
|
||||
public static Integer parseCandidateStrategy(FlowElement userTask) {
|
||||
Integer candidateStrategy = NumberUtils.parseInt(userTask.getAttributeValue(
|
||||
BpmnModelConstants.NAMESPACE, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY));
|
||||
// TODO @芋艿 尝试从 ExtensionElement 取. 后续相关扩展是否都可以 存 extensionElement。 如表单权限。 按钮权限
|
||||
// TODO @ZT 尝试从 ExtensionElement 取. 后续相关扩展是否都可以 存 extensionElement。 如表单权限。 按钮权限
|
||||
if (candidateStrategy == null) {
|
||||
ExtensionElement element = CollUtil.getFirst(userTask.getExtensionElements().get(BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY));
|
||||
candidateStrategy = element != null ? NumberUtils.parseInt(element.getElementText()) : null;
|
||||
|
||||
@@ -208,7 +208,7 @@ public class SimpleModelUtils {
|
||||
BpmSimpleModelNodeTypeEnum nodeType = BpmSimpleModelNodeTypeEnum.valueOf(node.getType());
|
||||
BpmSimpleModelNodeVO childNode = node.getChildNode();
|
||||
List<BpmSimpleModelNodeVO> conditionNodes = node.getConditionNodes();
|
||||
// TODO @芋艿 路由分支没有conditionNodes 这里注释会影响吗?@jason:一起帮忙瞅瞅!
|
||||
// TODO @ZT 路由分支没有conditionNodes 这里注释会影响吗?@jason:一起帮忙瞅瞅!
|
||||
// Assert.notEmpty(conditionNodes, "分支节点的条件节点不能为空");
|
||||
// 分支终点节点 ID
|
||||
String branchEndNodeId = null;
|
||||
@@ -277,8 +277,8 @@ public class SimpleModelUtils {
|
||||
String conditionExpression) {
|
||||
Assert.notEmpty(sourceId, "sourceId 不能为空");
|
||||
Assert.notEmpty(targetId, "targetId 不能为空");
|
||||
// TODO @jason:如果 sequenceFlowId 不存在的时候,是不是要生成一个默认的 sequenceFlowId? @芋艿: 貌似不需要,Flowable 会默认生成;TODO @jason:建议还是搞一个,主要是后续好排查问题。
|
||||
// TODO @jason:如果 name 不存在的时候,是不是要生成一个默认的 name? @芋艿: 不需要生成默认的吧? 这个会在流程图展示的, 一般用户填写的。不好生成默认的吧;TODO @jason:建议还是搞一个,主要是后续好排查问题。
|
||||
// TODO @jason:如果 sequenceFlowId 不存在的时候,是不是要生成一个默认的 sequenceFlowId? @ZT: 貌似不需要,Flowable 会默认生成;TODO @jason:建议还是搞一个,主要是后续好排查问题。
|
||||
// TODO @jason:如果 name 不存在的时候,是不是要生成一个默认的 name? @ZT: 不需要生成默认的吧? 这个会在流程图展示的, 一般用户填写的。不好生成默认的吧;TODO @jason:建议还是搞一个,主要是后续好排查问题。
|
||||
SequenceFlow sequenceFlow = new SequenceFlow(sourceId, targetId);
|
||||
if (StrUtil.isNotEmpty(sequenceFlowId)) {
|
||||
sequenceFlow.setId(sequenceFlowId);
|
||||
@@ -341,7 +341,7 @@ public class SimpleModelUtils {
|
||||
EndEvent endEvent = new EndEvent();
|
||||
endEvent.setId(node.getId());
|
||||
endEvent.setName(node.getName());
|
||||
// TODO @芋艿 + jason:要不要加一个终止定义?
|
||||
// TODO @ZT + jason:要不要加一个终止定义?
|
||||
return endEvent;
|
||||
}
|
||||
|
||||
@@ -369,7 +369,7 @@ public class SimpleModelUtils {
|
||||
// 添加操作按钮配置属性元素
|
||||
addButtonsSetting(node.getButtonsSetting(), userTask);
|
||||
// 使用自动通过策略
|
||||
// TODO @芋艿 复用了SKIP, 是否需要新加一个策略;TODO @芋艿:【回复】是不是应该类似飞书,搞个草稿状态。待定;还有一种策略,不标记自动通过,而是首次发起后,第一个节点,自动通过;
|
||||
// TODO @ZT 复用了SKIP, 是否需要新加一个策略;TODO @ZT:【回复】是不是应该类似飞书,搞个草稿状态。待定;还有一种策略,不标记自动通过,而是首次发起后,第一个节点,自动通过;
|
||||
addAssignStartUserHandlerType(BpmUserTaskAssignStartUserHandlerTypeEnum.SKIP.getType(), userTask);
|
||||
return userTask;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class SecurityConfiguration {
|
||||
|
||||
@Override
|
||||
public void customize(AuthorizeHttpRequestsConfigurer<HttpSecurity>.AuthorizationManagerRequestMatcherRegistry registry) {
|
||||
// TODO 芋艿:这个每个项目都需要重复配置,得捉摸有没通用的方案
|
||||
// TODO ZT:这个每个项目都需要重复配置,得捉摸有没通用的方案
|
||||
// Swagger 接口文档
|
||||
registry.requestMatchers("/v3/api-docs/**").permitAll()
|
||||
.requestMatchers("/webjars/**").permitAll()
|
||||
|
||||
@@ -94,7 +94,7 @@ public class BpmFormServiceImpl implements BpmFormService {
|
||||
* @param fields field 数组
|
||||
*/
|
||||
private void validateFields(List<String> fields) {
|
||||
if (true) { // TODO 芋艿:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验
|
||||
if (true) { // TODO ZT:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验
|
||||
return;
|
||||
}
|
||||
Map<String, String> fieldMap = new HashMap<>(); // key 是 vModel,value 是 label
|
||||
|
||||
@@ -9,7 +9,7 @@ import jakarta.validation.Valid;
|
||||
/**
|
||||
* BPM 消息 Service 接口
|
||||
*
|
||||
* TODO 芋艿:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么;
|
||||
* TODO ZT:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么;
|
||||
*
|
||||
* @author ZT
|
||||
*/
|
||||
|
||||
@@ -495,7 +495,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
for (HistoricActivityInstance activity : taskActivities) {
|
||||
HistoricTaskInstance task = taskMap.get(activity.getTaskId());
|
||||
// 特殊情况:子流程节点 ChildProcess 仅存在于 activity 中,并且没有自身的 task,需要跳过执行
|
||||
// TODO @芋艿:后续看看怎么优化!
|
||||
// TODO @ZT:后续看看怎么优化!
|
||||
if (task == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -535,7 +535,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
BpmProcessDefinitionInfoDO processDefinitionInfo,
|
||||
Map<String, Object> processVariables,
|
||||
List<HistoricActivityInstance> activities) {
|
||||
// TODO @芋艿:【可优化】在驳回场景下,未来的预测准确性不高。原因是,驳回后,HistoricActivityInstance
|
||||
// TODO @ZT:【可优化】在驳回场景下,未来的预测准确性不高。原因是,驳回后,HistoricActivityInstance
|
||||
// 包括了历史的操作,不是只有 startEvent 到当前节点的记录
|
||||
Set<String> runActivityIds = convertSet(activities, HistoricActivityInstance::getActivityId);
|
||||
// 情况一:BPMN 设计器
|
||||
@@ -558,7 +558,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
private ActivityNode buildNotRunApproveNodeForSimple(Long startUserId, BpmnModel bpmnModel,
|
||||
BpmProcessDefinitionInfoDO processDefinitionInfo, Map<String, Object> processVariables,
|
||||
BpmSimpleModelNodeVO node, Set<String> runActivityIds) {
|
||||
// TODO @芋艿:【可优化】在驳回场景下,未来的预测准确性不高。原因是,驳回后,HistoricActivityInstance
|
||||
// TODO @ZT:【可优化】在驳回场景下,未来的预测准确性不高。原因是,驳回后,HistoricActivityInstance
|
||||
// 包括了历史的操作,不是只有 startEvent 到当前节点的记录
|
||||
if (runActivityIds.contains(node.getId())) {
|
||||
return null;
|
||||
|
||||
@@ -1008,7 +1008,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
.changeState();
|
||||
|
||||
// 3. 特殊:如果跳转到 EndEvent 流程还未结束, 执行 deleteProcessInstance 方法
|
||||
// TODO 芋艿:目前发现并行分支情况下,会存在这个情况,后续看看有没更好的方案;
|
||||
// TODO ZT:目前发现并行分支情况下,会存在这个情况,后续看看有没更好的方案;
|
||||
List<Execution> executions = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list();
|
||||
if (CollUtil.isNotEmpty(executions)) {
|
||||
log.warn("[moveTaskToEnd][执行跳转到 EndEvent 后, 流程实例未结束,强制执行 deleteProcessInstance 方法]");
|
||||
@@ -1331,7 +1331,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
return;
|
||||
}
|
||||
|
||||
// 自动去重,通过自动审批的方式 TODO @芋艿 驳回的情况得考虑一下;@lesan:驳回后,又自动审批么?
|
||||
// 自动去重,通过自动审批的方式 TODO @ZT 驳回的情况得考虑一下;@lesan:驳回后,又自动审批么?
|
||||
BpmProcessDefinitionInfoDO processDefinitionInfo = bpmProcessDefinitionService.getProcessDefinitionInfo(task.getProcessDefinitionId());
|
||||
if (processDefinitionInfo == null) {
|
||||
log.error("[processTaskAssigned][taskId({}) 没有找到流程定义({})]", task.getId(), task.getProcessDefinitionId());
|
||||
@@ -1374,7 +1374,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
FlowElement userTaskElement = BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey());
|
||||
// 判断是否为退回或者驳回:如果是退回或者驳回不走这个策略
|
||||
// TODO 芋艿:【优化】未来有没更好的判断方式?!另外,还要考虑清理机制。就是说,下次处理了之后,就移除这个标识
|
||||
// TODO ZT:【优化】未来有没更好的判断方式?!另外,还要考虑清理机制。就是说,下次处理了之后,就移除这个标识
|
||||
Boolean returnTaskFlag = runtimeService.getVariable(processInstance.getProcessInstanceId(),
|
||||
String.format(PROCESS_INSTANCE_VARIABLE_RETURN_FLAG, task.getTaskDefinitionKey()), Boolean.class);
|
||||
Boolean skipStartUserNodeFlag = Convert.toBool(runtimeService.getVariable(processInstance.getProcessInstanceId(),
|
||||
|
||||
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import static com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils.parseListenerConfig;
|
||||
|
||||
// TODO @芋艿:可能会想换个包地址
|
||||
// TODO @ZT:可能会想换个包地址
|
||||
/**
|
||||
* BPM 用户任务通用监听器
|
||||
*
|
||||
@@ -42,7 +42,7 @@ public class BpmUserTaskListener implements TaskListener {
|
||||
BpmSimpleModelNodeVO.ListenerHandler listenerHandler = parseListenerConfig(listenerConfig);
|
||||
|
||||
// 2. 发起请求
|
||||
// TODO @芋艿:哪些默认参数,后续再调研下;感觉可以搞个 task 字段,把整个 delegateTask 放进去;
|
||||
// TODO @ZT:哪些默认参数,后续再调研下;感觉可以搞个 task 字段,把整个 delegateTask 放进去;
|
||||
listenerHandler.getBody().add(new BpmSimpleModelNodeVO.HttpRequestParam().setKey("processInstanceId")
|
||||
.setType(BpmHttpRequestParamTypeEnum.FIXED_VALUE.getType()).setValue(delegateTask.getProcessInstanceId()));
|
||||
listenerHandler.getBody().add(new BpmSimpleModelNodeVO.HttpRequestParam().setKey("assignee")
|
||||
@@ -54,6 +54,6 @@ public class BpmUserTaskListener implements TaskListener {
|
||||
BpmHttpRequestUtils.executeBpmHttpRequest(processInstance,
|
||||
listenerHandler.getPath(), listenerHandler.getHeader(), listenerHandler.getBody(), false, null);
|
||||
|
||||
// 3. 是否需要后续操作?TODO 芋艿:待定!
|
||||
// 3. 是否需要后续操作?TODO ZT:待定!
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package com.zt.plat.module.bpm.service.task.trigger;
|
||||
|
||||
import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum;
|
||||
|
||||
// TODO @芋艿:可能会想换个包地址
|
||||
// TODO @ZT:可能会想换个包地址
|
||||
/**
|
||||
* BPM 触发器接口
|
||||
* <p>
|
||||
|
||||
@@ -89,6 +89,6 @@ spring:
|
||||
instance:
|
||||
service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
|
||||
|
||||
--- #################### 芋道相关配置 ####################
|
||||
--- #################### ZT相关配置 ####################
|
||||
|
||||
|
||||
|
||||
@@ -102,11 +102,11 @@ logging:
|
||||
level:
|
||||
# 配置自己写的 MyBatis Mapper 打印日志
|
||||
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:
|
||||
env: # 多环境的配置项
|
||||
tag: ${HOSTNAME}
|
||||
|
||||
@@ -68,7 +68,7 @@ springdoc:
|
||||
default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档
|
||||
|
||||
knife4j:
|
||||
enable: false # TODO 芋艿:需要关闭增强,具体原因见:https://github.com/xiaoymin/knife4j/issues/874
|
||||
enable: false # TODO ZT:需要关闭增强,具体原因见:https://github.com/xiaoymin/knife4j/issues/874
|
||||
setting:
|
||||
language: zh_cn
|
||||
|
||||
@@ -127,7 +127,7 @@ xxl:
|
||||
logpath: ${user.home}/logs/xxl-job/${spring.application.name} # 执行器运行日志文件存储磁盘路径
|
||||
accessToken: default_token # 执行器通讯TOKEN
|
||||
|
||||
--- #################### 芋道相关配置 ####################
|
||||
--- #################### ZT相关配置 ####################
|
||||
|
||||
zt:
|
||||
info:
|
||||
|
||||
@@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@Disabled // TODO 芋艿:临时注释
|
||||
@Disabled // TODO ZT:临时注释
|
||||
public class BpmTaskCandidateExpressionStrategyTest extends BaseMockitoUnitTest {
|
||||
|
||||
@InjectMocks
|
||||
|
||||
@@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@Disabled // TODO 芋艿:临时注释
|
||||
@Disabled // TODO ZT:临时注释
|
||||
public class BpmTaskCandidateGroupStrategyTest extends BaseMockitoUnitTest {
|
||||
|
||||
@InjectMocks
|
||||
|
||||
@@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@Disabled // TODO 芋艿:临时注释
|
||||
@Disabled // TODO ZT:临时注释
|
||||
public class BpmTaskCandidatePostStrategyTest extends BaseMockitoUnitTest {
|
||||
|
||||
@InjectMocks
|
||||
|
||||
@@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@Disabled // TODO 芋艿:临时注释
|
||||
@Disabled // TODO ZT:临时注释
|
||||
public class BpmTaskCandidateRoleStrategyTest extends BaseMockitoUnitTest {
|
||||
|
||||
@InjectMocks
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.Set;
|
||||
import static com.zt.plat.framework.common.util.collection.SetUtils.asSet;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
@Disabled // TODO 芋艿:临时注释
|
||||
@Disabled // TODO ZT:临时注释
|
||||
public class BpmTaskCandidateUserStrategyTest extends BaseMockitoUnitTest {
|
||||
|
||||
@InjectMocks
|
||||
|
||||
@@ -117,14 +117,14 @@ public class BpmFormServiceTest extends BaseDbUnitTest {
|
||||
public void testGetFormPage() {
|
||||
// mock 数据
|
||||
BpmFormDO dbForm = randomPojo(BpmFormDO.class, o -> { // 等会查询到
|
||||
o.setName("芋道源码");
|
||||
o.setName("ZT源码");
|
||||
});
|
||||
formMapper.insert(dbForm);
|
||||
// 测试 name 不匹配
|
||||
formMapper.insert(cloneIgnoreId(dbForm, o -> o.setName("源码")));
|
||||
// 准备参数
|
||||
BpmFormPageReqVO reqVO = new BpmFormPageReqVO();
|
||||
reqVO.setName("芋道");
|
||||
reqVO.setName("ZT");
|
||||
|
||||
// 调用
|
||||
PageResult<BpmFormDO> pageResult = formService.getFormPage(reqVO);
|
||||
|
||||
@@ -102,13 +102,13 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest {
|
||||
public void testGetUserGroupPage() {
|
||||
// mock 数据
|
||||
BpmUserGroupDO dbUserGroup = RandomUtils.randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到
|
||||
o.setName("芋道源码");
|
||||
o.setName("ZT源码");
|
||||
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
o.setCreateTime(buildTime(2021, 11, 11));
|
||||
});
|
||||
userGroupMapper.insert(dbUserGroup);
|
||||
// 测试 name 不匹配
|
||||
userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("芋道")));
|
||||
userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("ZT")));
|
||||
// 测试 status 不匹配
|
||||
userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
// 测试 createTime 不匹配
|
||||
|
||||
@@ -37,9 +37,9 @@ mybatis-plus:
|
||||
|
||||
--- #################### 监控相关配置 ####################
|
||||
|
||||
--- #################### 芋道相关配置 ####################
|
||||
--- #################### ZT相关配置 ####################
|
||||
|
||||
# 芋道配置项,设置当前项目所有自定义的配置
|
||||
# ZT配置项,设置当前项目所有自定义的配置
|
||||
zt:
|
||||
info:
|
||||
base-package: com.zt.plat.module.bpm
|
||||
|
||||
Reference in New Issue
Block a user