瀏覽代碼

公式相关:直接取数判断

yangyj 2 年之前
父節點
當前提交
5c7122cc6d

+ 9 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -441,7 +441,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     fd.setFinished(Boolean.TRUE);
                     continue;
                 }
-                String tmp =fd.getFormula().getFormula();
+                String tmp =fd.getFormula().getFormula().replaceAll("[\\s]+","");
                 /*G8G10指令脱壳*/
                 if(tmp.contains("G8@")||tmp.contains("G10@")){
                   Matcher mg=  RegexUtils.matcher("FC.shell\\d{3}\\([^(FC.)]+,(G\\d+@\\w+)\\)",tmp);
@@ -451,7 +451,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                   }
                 }
                 /*假如是直接取数,则补充上非空过滤*/
-                if(tmp.matches("^E\\[m__[0-9]{14}_[0-9]{19}:key_[0-9]{0,3}]$")){
+                if(tmp.matches("^E\\[m_\\d{14}_\\d{19}:key_\\d{0,3}]$")){
                     tmp="FC.removeEmpty("+tmp+")";
                 }
                 tmp = tmp.replace(FC, CustomFunction.CLASS_CALL);
@@ -616,11 +616,14 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         tec.getCoordinateMap().put(subTabList.get(0).getInitTableName(), CustomFunction.getElementCell(first.getHtmlUrl()));
                         List<Map<String, Object>> elementMaps = this.jdbcTemplate.queryForList("select b.e_name name , CONCAT(a.tab_en_name,':',b.e_key) code  from m_table_info a join m_wbs_form_element b on a.id = b.f_id where a.tab_en_name='" + first.getInitTableName() + "' and b.is_deleted=0 ");
                         if (Func.isNotEmpty(elementMaps)) {
-                            elementMaps.forEach(e -> {
-                                String name = StringUtils.handleNull(e.get("name"));
-                                String code = StringUtils.handleNull(e.get("code"));
+//                            elementMaps.forEach(e -> {
+//                                String name = StringUtils.handleNull(e.get("name"));
+//                                String code = StringUtils.handleNull(e.get("code"));
+//                                tec.getFormDataMap().put(code, createFormDataFast(name, code, null));
+//                            });
+                            missingFill(elementMaps.stream().map(e->StringUtils.handleNull(e.get("code"))).collect(Collectors.toList()));
+                            elementMaps.forEach(e->{
 
-                                tec.getFormDataMap().put(code, createFormDataFast(name, code, null));
                             });
                         }
                     }