Преглед изворни кода

质检-表单设置
1、试验表单保存不执行公式处理,数据隔离按试验编号隔离

LHB пре 1 недеља
родитељ
комит
143257da9e

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

@@ -585,7 +585,7 @@ public class FormulaController {
             ContractInfo contract = this.contractInfoService.getById(fo.getContractId());
             WbsTreeContract parent = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getId,fo.getParentId()).eq(WbsTreeContract::getContractId,fo.getContractId()).last("limit 1"));
 
-            List<KeyMapper> kms = this.service.getKeyMapperList(Collections.singletonList(fo.getPkeyId()), contract.getPId(), parent.getPKeyId().toString(), ExecuteType.INSPECTION);
+            List<KeyMapper> kms = this.service.getKeyMapperList(Collections.singletonList(fo.getPkeyId()), contract.getPId(), parent.getPKeyId().toString(), ExecuteType.INSPECTION, null);
             KeyMapper keyMapper = null;
             if (Func.isNotEmpty(kms)) {
                 Optional<KeyMapper> optionalKeyMapper = kms.stream().filter(e -> StringUtils.isEquals(e.getField(), key)).findFirst();

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

@@ -63,7 +63,7 @@ public interface IFormulaService extends BaseService<Formula> {
     /**
      * ids 表流水号 projectId项目 nodeId工序节点的pkeyId ExecuteType执行模式 质检或者试验 首件
      */
-    List<KeyMapper> getKeyMapperList(List<Long> ids, String projectId, String nodeId, ExecuteType executeType);
+    List<KeyMapper> getKeyMapperList(List<Long> ids, String projectId, String nodeId, ExecuteType executeType, String testGroupId);
 
    void formulaInto(List<FormData> curFormDatas, String projectId, String nodeId, ExecuteType executeType);
 

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

@@ -516,6 +516,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                 e.setClassify(example.getClassify());
                                 e.setProjectId(example.getProjectId());
                                 e.setGroupId(example.getGroupId());
+                                e.setTestGroupId(example.getTestGroupId());
                                 map.forEach((key, value) -> {
                                     if (key.startsWith("key_")) {
                                         e.getDataMap().put(key, Func.toStr(value));
@@ -529,7 +530,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     tableInfoList.sort(Comparator.comparingInt(a -> tableAllIds.indexOf(Long.parseLong(a.getPkeyId()))));
                 }
                 StopWatch stopWatch = new StopWatch();
-                List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(tableAll.stream().map(NodeTable::getPKeyId).filter(Func::isNotEmpty).collect(Collectors.toList()), tableInfoList.get(0).getProjectId(), String.valueOf(nodeId), type);
+                List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(tableAll.stream().map(NodeTable::getPKeyId).filter(Func::isNotEmpty).collect(Collectors.toList()), tableInfoList.get(0).getProjectId(), String.valueOf(nodeId), type, tableInfoList.get(0).getTestGroupId());
                 if (Func.isNotEmpty(keyMappers) && Func.isNotEmpty(tableAll)) {
                     Map<String, Map<String, String>> coordinateMap = createCoordinateMap(keyMappers, type);
                     stopWatch.start("公式处理");
@@ -1087,7 +1088,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
     @Override
     public void gsColor(Long pKeyId, String nodeId, String projectId, Document doc) {
         try {
-            List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(Collections.singletonList(pKeyId), projectId, nodeId, ExecuteType.INSPECTION);
+            List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(Collections.singletonList(pKeyId), projectId, nodeId, ExecuteType.INSPECTION, null);
             //扩展----根据父节点查询不允许执行的公式
             WbsTreeContractExtend byId = wbsTreeContractExtendService.getById(nodeId);
             List<String> list;

+ 11 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2507,12 +2507,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
     @Override
-    public List<KeyMapper> getKeyMapperList(List<Long> ids, String projectId, String nodeId, ExecuteType executeType) {
+    public List<KeyMapper> getKeyMapperList(List<Long> ids, String projectId, String nodeId, ExecuteType executeType, String testGroupId) {
         /*ids 表流水号 projectId项目 nodeId工序节点的pkeyId ExecuteType执行模式 质检或者试验 首件*/
         if (executeType.equals(ExecuteType.INSPECTION)) {
             return listForContract(ids, projectId, nodeId);
         } else if (executeType.equals(ExecuteType.TESTING) ) {
-            return listForPrivate(ids, projectId, nodeId);
+            return listForPrivate(ids, projectId, nodeId, testGroupId);
         } else if (executeType.equals(ExecuteType.LOGINFO) ) {
             return listForPrivateByLog(ids, projectId, nodeId);
         }
@@ -5311,9 +5311,17 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     }
 
-    private List<KeyMapper> listForPrivate(List<Long> ids, String projectId, String nodeId) {
+    private List<KeyMapper> listForPrivate(List<Long> ids, String projectId, String nodeId, String testGroupId) {
         /**/
         List<Map<String, Object>> listMap = listMap(ids, ExecuteType.TESTING);
+        if(StringUtil.isNotBlank(testGroupId)){
+            //根据节点id查询 合同段扩展表
+            WbsTreeContractExtend byId = wbsTreeContractExtendService.getById(testGroupId);
+            if (byId != null && StringUtils.isNotEmpty(byId.getFormulaConfig())) {
+                List<String> list = Arrays.asList(byId.getFormulaConfig().split(","));
+                listMap = listMap.stream().filter(m -> !list.contains(m.get("tableName").toString() + ":" + m.get("field").toString())).collect(Collectors.toList());
+            }
+        }
         List<KeyMapper> list = listMap.stream().map(m -> BeanUtil.toBean(m, KeyMapper.class)).collect(Collectors.toList());
         if (Func.isNotEmpty(listMap)) {
             WbsTreePrivate wtp = this.wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, nodeId));