Browse Source

公式相关:项目名称解析优化

yangyj 2 years ago
parent
commit
89dfe4b5e1

+ 32 - 33
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -349,7 +349,7 @@ public class FormulaUtils {
 
 
     private static boolean isContainKeywords(String s) {
-        List<String> keywords = Arrays.asList("或", "每", "个","附录","抽查","测","求");
+        List<String> keywords = Arrays.asList("或", "每", "个","附录","抽查","测","求","小于","大于","检查","仪");
         return keywords.stream().anyMatch(s::contains);
     }
 
@@ -382,38 +382,37 @@ public class FormulaUtils {
 
 
 
-
-    public static void mainK(String[] args) {
-        List<String> list =Arrays.asList(
-                ""
-//                ,"压 实 度 (%)下路床 特重、极重交通荷载等级 设计值"
-//                ,"1△_压 实 度 (%)_下路床_轻、中及重交通 荷载等级_0.3m~0.8m_≧96_≧95_≧94_实测值或实测偏差值"
-//                ,"1△_压 实 度 (%)_下路提_轻、中及重交通 荷载等级_&gt;1.5m_≧93_≧92_≧90_实测值或实测偏差值"
-//                ,"1△_压 实 度 (%)_上路提_轻、中及重交通 荷载等级_0.8m~1.5m_≧94_≧94_≧93_实测值或实测偏差值"
-//                ,"压 实 度 (%)下路提 轻、中及重交通荷载等级 设计值"
-//                ,"压 实 度 (%)下路床 特重、极重交通荷载等级 合格率"
-//                ,"压 实 度 (%)下路提 轻、中及重交通荷载等级\t合格率"
-//                ,"5△_保护层 厚度 (mm)_基础、锚碇、墩台身、墩柱_±10_实测值或实测偏差值"
-//                ,"钢筋骨架尺寸宽、高或直径 (mm)_尺量:按骨架总数30%抽测_±5_实测值或实测偏差值"
-//                ,"钢筋骨架尺寸长 (mm)_±10_尺量:按骨架总数30%抽测_实测值或实测偏差值"
-//               , "受力钢筋间距 (mm)同排 梁、板、拱肋及拱上建筑	设计值"
-//               ,"受力钢筋间距 (mm)同排 梁、板、拱肋及拱上建筑	合格率"
-//               ," 箍筋、构造钢筋、螺旋筋间距(mm)	设计值"
-//               ,"箍筋、构造钢筋、螺旋筋间距(mm)	合格率"
-//                ,"实测项目_桩位 (mm)_群桩_≤100_质量评定_合格判定"
-//                 ,"实测项目_桩位 (mm)_群桩_≤100_实测值或实测偏差值"
-//                ,"实测项目_桩位 (mm)_排架桩_实测值或实测偏差值"
-//                ,"实测项目_桩位 (mm)_排架桩_质量评定_合格判定"
-//                ,"实测项目_桩位 (mm)_群桩_≤100_质量评定_合格率(%)"
-//                ,"实测项目_桩位 (mm)_排架桩_质量评定_合格率(%)"
-                ,"3△_支座高程(mm)_满足设计要求;设 计未要求时±5_水准仪:测每支座中心线_实测值或实测偏差值"
-        );
-        list= Arrays.asList(("实 测 项 目_2△_草坪、草本地被覆盖率(%)_取弃土场绿 地_≥90_实测值或实测偏差值@" +
-                "实 测 项 目_花卉数量_满足设计要求_实测值或实测偏差值@" +
-                "实 测 项 目_4△_花卉成活率(%)_≥95_实测值或实测偏差值@" +
-                "实 测 项 目_草坪、草本地被面积_满足设计要求_实测值或实测偏差值@" +
-                "实 测 项 目_2△_草坪、草本地被覆盖率(%)_其他绿地_≥95_实测值或实测偏差值").split("@"));
-        list.stream().map(FormulaUtils::parseItemName).forEach(System.out::println);
+    public static List<String> itemNames =Arrays.asList(
+            ""
+            ,"压 实 度 (%)下路床 特重、极重交通荷载等级 设计值"
+            ,"1△_压 实 度 (%)_下路床_轻、中及重交通 荷载等级_0.3m~0.8m_≧96_≧95_≧94_实测值或实测偏差值"
+            ,"1△_压 实 度 (%)_下路提_轻、中及重交通 荷载等级_&gt;1.5m_≧93_≧92_≧90_实测值或实测偏差值"
+            ,"1△_压 实 度 (%)_上路提_轻、中及重交通 荷载等级_0.8m~1.5m_≧94_≧94_≧93_实测值或实测偏差值"
+            ,"压 实 度 (%)下路提 轻、中及重交通荷载等级 设计值"
+            ,"压 实 度 (%)下路床 特重、极重交通荷载等级 合格率"
+            ,"压 实 度 (%)下路提 轻、中及重交通荷载等级\t合格率"
+            ,"5△_保护层 厚度 (mm)_基础、锚碇、墩台身、墩柱_±10_实测值或实测偏差值"
+            ,"钢筋骨架尺寸宽、高或直径 (mm)_尺量:按骨架总数30%抽测_±5_实测值或实测偏差值"
+            ,"钢筋骨架尺寸长 (mm)_±10_尺量:按骨架总数30%抽测_实测值或实测偏差值"
+            , "受力钢筋间距 (mm)同排 梁、板、拱肋及拱上建筑	设计值"
+            ,"受力钢筋间距 (mm)同排 梁、板、拱肋及拱上建筑	合格率"
+            ," 箍筋、构造钢筋、螺旋筋间距(mm)	设计值"
+            ,"箍筋、构造钢筋、螺旋筋间距(mm)	合格率"
+            ,"实测项目_桩位 (mm)_群桩_≤100_质量评定_合格判定"
+            ,"实测项目_桩位 (mm)_群桩_≤100_实测值或实测偏差值"
+            ,"实测项目_桩位 (mm)_排架桩_实测值或实测偏差值"
+            ,"实测项目_桩位 (mm)_排架桩_质量评定_合格判定"
+            ,"实测项目_桩位 (mm)_群桩_≤100_质量评定_合格率(%)"
+            ,"实测项目_桩位 (mm)_排架桩_质量评定_合格率(%)"
+            ,"3△_支座高程(mm)_满足设计要求;设 计未要求时±5_水准仪:测每支座中心线_实测值或实测偏差值"
+            ,"基底承载力(KPa)_不小于设计_直观或动力触探试验_实测值或实测偏差值"
+            ,"实 测 项 目_花卉数量_满足设计要求_实测值或实测偏差值"
+            ,"实 测 项 目_2△_草坪、草本地被覆盖率(%)_取弃土场绿 地_≥90_实测值或实测偏差值"
+            ,"轴线偏位(mm)_全站仪:20m检查3点_实测值或实测偏差值"
+    );
+
+    public static void maink(String[] args) {
+        itemNames.stream().map(FormulaUtils::parseItemName).forEach(System.out::println);
     }
 
 

+ 25 - 17
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -329,17 +329,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             StopWatch stopWatch = new StopWatch();
             List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(tableInfoList.stream().map(TableInfo::getPkeyId).filter(Func::isNotEmpty).map(Long::parseLong).collect(Collectors.toList()), tableInfoList.get(0).getProjectId(), String.valueOf(nodeId));
             if (Func.isNotEmpty(keyMappers)) {
-                Map<String, Map<String, String>> coordinateMap = new HashMap<>(keyMappers.size() * 2);
-                keyMappers.forEach(e -> {
-                    try {
-                        if (!coordinateMap.containsKey(e.getTableName())) {
-                            /*不包含定位信息的情况执行*/
-                            coordinateMap.put(e.getTableName(), getTablbCols(e.getPkId().toString(), null));
-                        }
-                    } catch (FileNotFoundException fileNotFoundException) {
-                        fileNotFoundException.printStackTrace();
-                    }
-                });
+                Map<String, Map<String, String>> coordinateMap = createCoordinateMap(keyMappers);
                 stopWatch.start("公式处理");
                 List<Formula> formulas = this.formulaService.getFormulaList(keyMappers);
                 WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, nodeId));
@@ -357,17 +347,35 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 Long totalTime = stopWatch.getTotalTimeMillis();
                 log.append("公式执行消耗时间:").append(totalTime);
                 StaticLog.info("公式执行用时:{}", totalTime);
+                updateFormulaLog(log, wtc);
+            }
+        }
+    }
+
+    private Map<String, Map<String, String>> createCoordinateMap(List<KeyMapper> keyMappers) {
+        Map<String, Map<String, String>> coordinateMap = new HashMap<>(keyMappers.size() * 2);
+        for (KeyMapper keyMapper : keyMappers) {
+            if (!coordinateMap.containsKey(keyMapper.getTableName())) {
                 try {
-                    String[] sql = new String[]{
-                            "delete from m_formula_log where id =" + wtc.getPKeyId(),
-                            "INSERT INTO m_formula_log (id,content) VALUES (" + wtc.getPKeyId() + ", '" + log + "')"
-                    };
-                    this.jdbcTemplate.batchUpdate(sql);
-                } catch (Exception e) {
+                    coordinateMap.put(keyMapper.getTableName(), getTablbCols(keyMapper.getPkId().toString(), null));
+                } catch (FileNotFoundException e) {
                     e.printStackTrace();
                 }
             }
         }
+        return coordinateMap;
+    }
+
+    private void updateFormulaLog(StringBuilder log, WbsTreeContract wtc) {
+        try {
+            String[] sql = new String[]{
+                    "delete from m_formula_log where id =" + wtc.getPKeyId(),
+                    "INSERT INTO m_formula_log (id,content) VALUES (" + wtc.getPKeyId() + ", '" + log + "')"
+            };
+            this.jdbcTemplate.batchUpdate(sql);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     public CurrentNode createCurrentNode(WbsTreeContract wtc) {