Commit 0eb60e00da9d8a056f5baef2b81073b9d4f7107b
1 parent
3686ef82
!1519 条件节点添加包含和不包含操作符
Showing
5 changed files
with
9 additions
and
12 deletions
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceCopyController.java
| ... | ... | @@ -66,15 +66,15 @@ public class BpmProcessInstanceCopyController { |
| 66 | 66 | Map<String, HistoricProcessInstance> processInstanceMap = processInstanceService.getHistoricProcessInstanceMap( |
| 67 | 67 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId)); |
| 68 | 68 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(), |
| 69 | - copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator())))); | |
| 69 | + copy -> Stream.of(copy.getStartUserId(), copy.getUserId()))); | |
| 70 | 70 | Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( |
| 71 | 71 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessDefinitionId)); |
| 72 | 72 | return success(convertPage(pageResult, copy -> { |
| 73 | 73 | BpmProcessInstanceCopyRespVO copyVO = BeanUtils.toBean(copy, BpmProcessInstanceCopyRespVO.class); |
| 74 | - MapUtils.findAndThen(userMap, Long.valueOf(copy.getCreator()), | |
| 75 | - user -> copyVO.setStartUser(BeanUtils.toBean(user, UserSimpleBaseVO.class))); | |
| 76 | - MapUtils.findAndThen(userMap, copy.getStartUserId(), | |
| 74 | + MapUtils.findAndThen(userMap, copy.getUserId(), | |
| 77 | 75 | user -> copyVO.setCreateUser(BeanUtils.toBean(user, UserSimpleBaseVO.class))); |
| 76 | + MapUtils.findAndThen(userMap, copy.getStartUserId(), | |
| 77 | + user -> copyVO.setStartUser(BeanUtils.toBean(user, UserSimpleBaseVO.class))); | |
| 78 | 78 | MapUtils.findAndThen(processInstanceMap, copyVO.getProcessInstanceId(), |
| 79 | 79 | processInstance -> { |
| 80 | 80 | copyVO.setSummary(FlowableUtils.getSummary( | ... | ... |
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmConditionOpCodeEnum.java
| ... | ... | @@ -11,12 +11,14 @@ import lombok.RequiredArgsConstructor; |
| 11 | 11 | @RequiredArgsConstructor |
| 12 | 12 | @Getter |
| 13 | 13 | public enum BpmConditionOpCodeEnum { |
| 14 | + | |
| 14 | 15 | EQ("==", "等于", " var:getOrDefault(%s, null) == %s "), |
| 15 | 16 | NE("!=", "不等于", " var:getOrDefault(%s, null) != %s "), |
| 16 | 17 | GT(">", "大于", " var:getOrDefault(%s, null) > %s "), |
| 17 | 18 | GE(">=", "大于等于", " var:getOrDefault(%s, null) >= %s "), |
| 18 | 19 | LT("<", "小于", " var:getOrDefault(%s, null) < %s "), |
| 19 | 20 | LE("<=", "小于等于", " var:getOrDefault(%s, null) <= %s "), |
| 21 | + | |
| 20 | 22 | CONTAINS("contain", "包含", " var:contains(%s, %s) "), |
| 21 | 23 | NOT_CONTAINS("!contain", "不包含", " !var:contains(%s, %s) "); |
| 22 | 24 | ... | ... |
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/el/VariableConvertByTypeExpressionFunction.java
| ... | ... | @@ -7,10 +7,10 @@ import org.springframework.stereotype.Component; |
| 7 | 7 | /** |
| 8 | 8 | * 根据流程变量 variable 的类型,转换参数的值 |
| 9 | 9 | * |
| 10 | - * 目前用于 ConditionNodeConvert 的 buildConditionExpression 方法中 | |
| 11 | - * | |
| 10 | + * @deprecated 已无调用方 | |
| 12 | 11 | * @author jason |
| 13 | 12 | */ |
| 13 | +@Deprecated // TODO @芋艿:兼容老版本,预计 27 年删除; | |
| 14 | 14 | @Component |
| 15 | 15 | public class VariableConvertByTypeExpressionFunction extends AbstractFlowableVariableExpressionFunction { |
| 16 | 16 | ... | ... |
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java
| ... | ... | @@ -275,13 +275,10 @@ public class FlowableUtils { |
| 275 | 275 | /** |
| 276 | 276 | * 递归解析表单字段 |
| 277 | 277 | */ |
| 278 | - private static void parseFormField(BpmFormFieldVO formField, | |
| 279 | - Map<String, BpmFormFieldVO> formFieldsMap) { | |
| 280 | - | |
| 278 | + private static void parseFormField(BpmFormFieldVO formField, Map<String, BpmFormFieldVO> formFieldsMap) { | |
| 281 | 279 | if (formField == null) { |
| 282 | 280 | return; |
| 283 | 281 | } |
| 284 | - | |
| 285 | 282 | // 如果存在 children -> 说明是布局组件 |
| 286 | 283 | if (formField.getChildren() != null && !formField.getChildren().isEmpty()) { |
| 287 | 284 | for (BpmFormFieldVO child : formField.getChildren()) { |
| ... | ... | @@ -289,7 +286,6 @@ public class FlowableUtils { |
| 289 | 286 | } |
| 290 | 287 | return; |
| 291 | 288 | } |
| 292 | - | |
| 293 | 289 | // 真实字段才加入 map |
| 294 | 290 | if (StrUtil.isNotBlank(formField.getField())) { |
| 295 | 291 | formFieldsMap.put(formField.getField(), formField); | ... | ... |
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
| ... | ... | @@ -705,7 +705,6 @@ public class SimpleModelUtils { |
| 705 | 705 | } |
| 706 | 706 | // 构造规则表达式 |
| 707 | 707 | List<String> list = convertList(item.getRules(), (rule) -> { |
| 708 | - // TODO @芋艿:官方文档中无convertByType方法,https://flowable.me/blog/2025/04/02/back-end-expressions/ | |
| 709 | 708 | String rightSide = NumberUtil.isNumber(rule.getRightSide()) ? rule.getRightSide() |
| 710 | 709 | : "\"" + rule.getRightSide() + "\""; // 如果非数值类型加引号 |
| 711 | 710 | return String.format(BpmConditionOpCodeEnum.fromCode(rule.getOpCode()).getSymbol(), | ... | ... |