Commit 0eb60e00da9d8a056f5baef2b81073b9d4f7107b

Authored by YunaiV
1 parent 3686ef82

!1519 条件节点添加包含和不包含操作符

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(),
... ...