Sfoglia il codice sorgente

公式相关:节点数据异常情况优化处理

yangyj 2 anni fa
parent
commit
bd2011a5ae

+ 5 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1212,7 +1212,11 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
         if(Func.isNotEmpty(listMap)){
             /*当前节点的某个元素存在多种作用域的公式,作用域范围越小优先级越高*/
             List<KeyMapper> list= listMap.stream().map(m->BeanUtil.toBean(m,KeyMapper.class)).collect(Collectors.toList());
-            String nodeIdStr=nodeIds.stream().map(Object::toString).collect(Collectors.joining(StringPool.COMMA));
+            String nodeIdStr=nodeIds.stream().map(Object::toString).distinct().collect(Collectors.joining(StringPool.COMMA));
+            if(Func.isBlank(nodeIdStr)){
+                /*暂时这么处理,严格上说要查找到项目级对应的节点*/
+                nodeIdStr="1";
+            }
             List<Map<String,Object>> efMap= this.jdbcTemplate.queryForList("select element_id elementId,formula_id formulaId,scope " +
                     "from m_element_formula_mapping " +
                     "where element_id in(" + list.stream().map(KeyMapper::getFieldId).map(Func::toStr).collect(Collectors.joining(",")) + ") " +