瀏覽代碼

公式相关

yangyj 2 年之前
父節點
當前提交
85d4327f74

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

@@ -16,6 +16,8 @@ import org.springblade.manager.dto.Coords;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.formula.ITableElementConverter;
 import org.springblade.manager.formula.KeyMapper;
+import org.springblade.manager.vo.AppWbsTreeContractVO;
+
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
@@ -43,9 +45,10 @@ public class TableElementConverter implements ITableElementConverter {
     Map<String,Map<String,String>> coordinateMap;
     Map<String,ElementData> elementDataMap = new HashMap<>();
     WbsTreeContract one;
+    List<AppWbsTreeContractVO> tableAll;
 
 
-    public TableElementConverter(List<TableInfo> tableInfoList, List<KeyMapper> keyMappers, List<Formula> formulas, Map<String,Map<String,String>> coordinateMap, WbsTreeContract wtc) {
+    public TableElementConverter(List<TableInfo> tableInfoList, List<KeyMapper> keyMappers, List<Formula> formulas, Map<String,Map<String,String>> coordinateMap, WbsTreeContract wtc,List<AppWbsTreeContractVO> tableAll) {
         this.tableInfoList = tableInfoList;
         this.keyMappers = keyMappers;
         this.formulas = formulas;
@@ -56,6 +59,7 @@ public class TableElementConverter implements ITableElementConverter {
             this.contractId = Long.parseLong(tableInfoList.get(0).getContractId());
         }
         this.one=wtc;
+        this.tableAll=tableAll;
     }
 
     public TableElementConverter() {

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

@@ -342,7 +342,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 stopWatch.start("公式处理");
                 List<Formula> formulas = this.formulaService.getFormulaList(keyMappers);
                 WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, nodeId));
-                TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas, coordinateMap, wtc);
+                TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas, coordinateMap,wtc,tableAll);
                 if (tec.isPresent()) {
                     tec.before();
                     this.formulaService.execute(tec);

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

@@ -162,6 +162,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
            this.env.formDataList.addAll(crossNodeFd);
         }
         /*实测值参数*/
+        List<Map<String,Object>>  textInfoMap= this.jdbcTemplate.queryForList("SELECT b.tab_id pkId, b.col_key ekey,b.col_name val ,c.init_table_name " +
+                "from m_wbs_tree_contract a " +
+                "inner join m_textdict_info b on a.p_key_id=b.tab_id  " +
+                "INNER JOIN m_wbs_tree c on (a.id=c.id or a.old_id=bc.id) " +
+                "where a.p_key_id in("+ this.env.tec.getTableAll().stream().map(AppWbsTreeContractVO::getPKeyId).map(Func::toStr).collect(Collectors.joining(","))+") and b.type=8");
 
         /*检查项目*/
         return this;