| | |
| | | } |
| | | } |
| | | // 这里只需要查自身以及上一个节点(如果并行的有多个)的表单数据 |
| | | List<FormDetailVO> beforeNodes = taskCommonService.getBeforeNodeDefId(processDefId, processDefKey, sysFormService, Boolean.TRUE); |
| | | List<FormDetailVO> beforeNodes = taskCommonService.getBeforeNodeDefInfo(processDefId, processDefKey, sysFormService, Boolean.TRUE); |
| | | List<String> beforeNodeDefIds = beforeNodes.stream().filter(item -> !item.getCurrent() || currentNeedData).map(FormDetailVO::getBeforeNodeDefId).collect(Collectors.toList()); |
| | | Map<String, Object> newP = new HashMap<>(); |
| | | if (CollectionUtils.isNotEmpty(beforeNodeDefIds)) { |
| | | for (String key : parameters.keySet()) { |
| | | // 过滤目标数据,将目标表单数据放到新map中 |
| | | if (beforeNodeDefIds.stream().anyMatch(defId -> key.startsWith(defId))) { |
| | | if (key.contains(ProcessConstants.TASK_FORM_KEY)) { |
| | | newP.put(key, parameters.get(key)); |
| | | } |
| | | else { |
| | | newP.put(key.split("&")[1], parameters.get(key)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 拿到目标表单后,再处理每个表单的数据 |
| | | // 处理每个表单的数据 |
| | | for (FormDetailVO formDetailVO : beforeNodes) { |
| | | if (formDetailVO.getCurrent() && !currentNeedData) { |
| | | continue; // 跳过当前节点,因为当前节点在获取前置节点时已经设置过了(但表单数据没有给) |
| | | } |
| | | |
| | | Map<String, Object> newP = new HashMap<>(); |
| | | if (CollectionUtils.isNotEmpty(beforeNodeDefIds)) { |
| | | for (String key : parameters.keySet()) { |
| | | // 过滤拿到目标表单数据,将目标表单数据放到新map中 |
| | | if (key.startsWith(formDetailVO.getBeforeNodeDefId())) { |
| | | if (key.contains(ProcessConstants.TASK_FORM_KEY)) { |
| | | newP.put(key, parameters.get(key)); |
| | | } |
| | | else { |
| | | newP.put(key.split("&")[1], parameters.get(key)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | Object form = newP.get(formDetailVO.getBeforeNodeDefId() + "&" + ProcessConstants.TASK_FORM_KEY); |
| | | if (Objects.nonNull(form)) { |
| | | JSONObject formJson = JSONObject.parseObject(JSON.toJSONString(form)); |