Pārlūkot izejas kodu

公式相关:试验公式流程

yangyj 2 gadi atpakaļ
vecāks
revīzija
85d94e4e5e

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -23,6 +23,7 @@ import org.springblade.core.tool.utils.RegexUtil;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.*;
+import org.springblade.manager.enums.ExecuteType;
 import org.springblade.manager.formula.KeyMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.service.impl.FormulaServiceImpl;
@@ -348,7 +349,7 @@ public class FormulaController {
              Map<String,Object> result = new LinkedHashMap<>();
              String  key=fo.getKey().replaceAll("__[\\d_]+","");
               ContractInfo contract = this.contractInfoService.getById(fo.getContractId());
-              List<KeyMapper> kms =  this.service.getKeyMapperList(Collections.singletonList(fo.getPkeyId()),contract.getPId(),"");
+              List<KeyMapper> kms =  this.service.getKeyMapperList(Collections.singletonList(fo.getPkeyId()),contract.getPId(),"", ExecuteType.INSPECTION);
               KeyMapper keyMapper=null;
               if(Func.isNotEmpty(kms)){
                 Optional<KeyMapper> optionalKeyMapper=  kms.stream().filter(e->StringUtils.isEquals(e.getField(),key)).findFirst();

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IFormulaService.java

@@ -3,6 +3,7 @@ package org.springblade.manager.service;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.manager.dto.FormData;
 import org.springblade.manager.entity.Formula;
+import org.springblade.manager.enums.ExecuteType;
 import org.springblade.manager.formula.KeyMapper;
 import org.springblade.manager.formula.impl.TableElementConverter;
 
@@ -34,6 +35,6 @@ public interface IFormulaService extends BaseService<Formula> {
     void format();
 
     List<Formula> getFormulaList(List<KeyMapper> keyMapperList);
-    List<KeyMapper> getKeyMapperList(List<Long> ids,String projectId,String nodeId);
+    List<KeyMapper> getKeyMapperList(List<Long> ids, String projectId, String nodeId, ExecuteType executeType);
     Map<String,Object> getElementInfoByCodes(String codes);
 }

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

@@ -331,7 +331,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 /*每次都是部分表单提交,保证跨节点跨表取数正常,其次是反向依赖的被动刷新*/
                 List<NodeTable> tableAll = createNodeTables(nodeId,tableInfoList.get(0).getContractId(),tableInfoList.get(0).getProjectId(),type);
                 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));
+                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),type);
                 if (Func.isNotEmpty(keyMappers)) {
                     Map<String, Map<String, String>> coordinateMap = createCoordinateMap(keyMappers);
                     stopWatch.start("公式处理");

+ 36 - 10
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -22,6 +22,7 @@ import org.springblade.core.tool.utils.*;
 import org.springblade.manager.bean.TableInfo;
 import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.*;
+import org.springblade.manager.enums.ExecuteType;
 import org.springblade.manager.formula.*;
 import org.springblade.manager.formula.impl.CompositeDataAccess;
 import org.springblade.manager.formula.impl.Measurement;
@@ -1142,8 +1143,18 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
     }
 
     @Override
-    public List<KeyMapper> getKeyMapperList(List<Long> ids,String projectId,String nodeId) {
+    public List<KeyMapper> getKeyMapperList(List<Long> ids, String projectId, String nodeId, ExecuteType executeType) {
         /*表名,pkeyId,元素名,元素id 映射对象*/
+        if(executeType.equals(ExecuteType.INSPECTION)){
+            return listForContract(ids,projectId,nodeId);
+        }else if(executeType.equals(ExecuteType.TESTING)){
+            return listForPrivate(ids,projectId,nodeId);
+        }
+        return Collections.emptyList();
+    }
+
+
+    private List<KeyMapper> listForContract(List<Long> ids,String projectId,String nodeId){
         String pkIds=ids.stream().map(String::valueOf).collect(Collectors.joining(","));
         List<Map<String,Object>> listMap = this.jdbcTemplate.queryForList(" select a.init_table_name as tableName,a.p_key_id as pkId ,c.e_key as field,c.e_name as eName,c.id  as fieldId ,c.e_type eType , e_allow_deviation as eAllowDeviation  " +
                 "from m_wbs_tree_contract a " +
@@ -1196,15 +1207,15 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
                         }
                     }
                     if(Func.isNotEmpty(total)){
-                      List<ElementFormulaMapping> mappingList =  this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().in(ElementFormulaMapping::getParamId,total.stream().map(WbsParam::getId).collect(Collectors.toList())));
-                      if(Func.isNotEmpty(mappingList)){
-                          list.forEach(e->{
-                              mappingList.stream().filter(m->StringUtils.isEquals(m.getElementId(),e.getFieldId())).findAny().ifPresent(d->{
-                                  e.setFormulaId(d.getFormulaId());
-                              });
-                          });
-
-                      }
+                        List<ElementFormulaMapping> mappingList =  this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().in(ElementFormulaMapping::getParamId,total.stream().map(WbsParam::getId).collect(Collectors.toList())));
+                        if(Func.isNotEmpty(mappingList)){
+                            list.forEach(e->{
+                                mappingList.stream().filter(m->StringUtils.isEquals(m.getElementId(),e.getFieldId())).findAny().ifPresent(d->{
+                                    e.setFormulaId(d.getFormulaId());
+                                });
+                            });
+
+                        }
                     }
                 }
             }
@@ -1215,6 +1226,21 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
         return Collections.emptyList();
     }
 
+    private List<KeyMapper> listForPrivate(List<Long> ids,String projectId,String nodeId){
+        /**/
+        String pkIds=ids.stream().map(String::valueOf).collect(Collectors.joining(","));
+        List<Map<String,Object>> listMap = this.jdbcTemplate.queryForList(" select a.init_table_name as tableName,a.p_key_id as pkId ,c.e_key as field,c.e_name as eName,c.id  as fieldId ,c.e_type eType , e_allow_deviation as eAllowDeviation  " +
+                "from m_wbs_tree_private a " +
+                "inner join m_table_info b on a.init_table_name=b.tab_en_name " +
+                "INNER JOIN m_wbs_form_element c on b.id=c.f_id " +
+                "where a.p_key_id in("+pkIds+")  ORDER BY field(a.p_key_id,"+pkIds+")");
+        if(Func.isNotEmpty(listMap)){
+
+        }
+        return Collections.emptyList();
+    }
+
+
     @Override
     public List<Formula> getFormulaList(List<KeyMapper> keyMapperList) {
         if(Func.isNotEmpty(keyMapperList)){