Browse Source

杭宁接口

chenr 9 months ago
parent
commit
d66dcf19a7
25 changed files with 721 additions and 509 deletions
  1. 2 0
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 2 2
      blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java
  3. 1 3
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/CustomAddContractNodeDTO.java
  4. 1 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/InformationQuery.java
  5. 12 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/InformationQueryClient.java
  6. 13 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/EvaluateDate.java
  7. 2 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java
  8. 3 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeContractLazyVO.java
  9. 66 62
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/JinLinPushApiController.java
  10. 205 210
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  11. 21 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/InformationQueryClientImpl.java
  12. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/ManagerApplication.java
  13. 34 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  14. 6 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java
  15. 27 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TableFileController.java
  16. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TableFileMapper.java
  17. 4 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TableFileMapper.xml
  18. 2 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IFormulaService.java
  19. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITableFileService.java
  20. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java
  21. 283 216
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java
  22. 6 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TableFileServiceImpl.java
  23. 0 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java
  24. 23 7
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  25. 2 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

+ 2 - 0
blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java

@@ -81,6 +81,8 @@ public interface LauncherConstant {
      * nacos dev 地址 215==172.31.222.127   192.168.0.109     127.0.0.1  210-=-172.30.224.81
      * nacos dev 地址 172.31.222.127   192.168.0.109     127.0.0.1    172.30.224.81(39.108.216.210) 152.168.2.11
      */
+    //更107服务器时打包的时候要改成192.168.0.109
+    //127.0.0.1
     String NACOS_DEV_ADDR = "127.0.0.1:8848";
 
     /**

+ 2 - 2
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java

@@ -84,8 +84,8 @@ public class OssBuilder {
     public OssTemplateRe template(String code) {
         String tenantId = AuthUtil.getTenantId();
         Oss oss = getOss(tenantId, code);
-        oss.setEndpoint("http://183.247.216.148:9000/");
-       //oss.setEndpoint("https://oss-cn-shenzhen.aliyuncs.com/");
+        //oss.setEndpoint("http://183.247.216.148:9000/");
+       oss.setEndpoint("https://oss-cn-shenzhen.aliyuncs.com/");
         Oss ossCached = ossPool.get(tenantId);
         OssTemplateRe template = templatePool.get(tenantId);
         // 若为空或者不一致,则重新加载

+ 1 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/CustomAddContractNodeDTO.java

@@ -40,8 +40,6 @@ public class CustomAddContractNodeDTO implements Serializable {
     private Integer unitNum;
 
     @ApiModelProperty(value = "自定义数字化节点的时间")
-    private Date digitizeTime;
-
-
+    private String digitizeTime;
 
 }

+ 1 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/InformationQuery.java

@@ -20,6 +20,7 @@ public class InformationQuery extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
+
     /**
      * 文件名称
      */

+ 12 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/InformationQueryClient.java

@@ -92,4 +92,16 @@ public interface InformationQueryClient {
 
     @PostMapping(API_PREFIX + "/getInformationByContractId1")
     void getInformationByContractId1(Long contractId);
+
+    @PostMapping(API_PREFIX+"/insertInformationQuery1")
+    void insert(@RequestBody InformationQuery iq);
+
+    @PostMapping(API_PREFIX+"/getInfoByWbsId")
+    InformationQuery getInfoByWbsId(@RequestParam Long wbsId);
+
+    @PostMapping(API_PREFIX+"/updateInformationQuery1")
+    void update(@RequestBody  InformationQuery iq);
+
+    @PostMapping(API_PREFIX+"/delInformation")
+    void delInformation(@RequestBody InformationQuery infoByWbsId);
 }

+ 13 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/EvaluateDate.java

@@ -0,0 +1,13 @@
+package org.springblade.manager.entity;
+
+import lombok.Data;
+
+@Data
+public class EvaluateDate {
+    private String unitName;
+    private String className;
+    private Integer unitNum;
+    private Integer qualifiedNum;
+    private Integer excellentNum;
+
+}

+ 2 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -303,6 +303,7 @@ public class WbsTreeContract extends BaseEntity {
     private Integer unitNum;
 
     @ApiModelProperty(value = "自定义数字化节点的上传时间")
-    private Date digitizeTime;
+    private String digitizeTime;
+
 
 }

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeContractLazyVO.java

@@ -118,4 +118,7 @@ public class WbsTreeContractLazyVO implements Serializable {
     @ApiModelProperty(value = "是否含单元评定0否1是")
     private Integer isClassifition;
 
+    @ApiModelProperty(value = "数字化节点的创建时间")
+    private Date digitizeTime;
+
 }

+ 66 - 62
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/JinLinPushApiController.java

@@ -70,22 +70,22 @@ public class JinLinPushApiController {
     @GetMapping("/test")
     public void JinlinApiPush() throws JsonProcessingException {
 //        //获取发送get请求的校验码
-//     String query = "clientSecretKey="+HJCLIENTSECRETKEY;
+//     String query = "clientSecretKey="+PYCLIENTSECRETKEY;
 //     String querySignature = DigestUtils.md5Hex(query).toUpperCase();
 //       // 获取吉林项目合同段的地址
 //     String queryUrl = "https://hgqs.jtyst.jl.gov.cn:6100/dock/openapi/hqsws/hqsprojpact/query";
 //     HashMap<String,String> queryHeaders=new HashMap<>();
 //        queryHeaders.put("Content-Type", "application/json");
-//        queryHeaders.put("clientId",HJCLIENTID);
+//        queryHeaders.put("clientId",PYCLIENTID);
 //        queryHeaders.put("signature",querySignature);
-//        queryHeaders.put("systemId",HJSYSTEMID);
+//        queryHeaders.put("systemId",PYSYSTEMID);
 //     String queryBody = HttpUtil.createGet(queryUrl).addHeaders(queryHeaders).execute().body();
 //     JSONObject jsonObject=JSONObject.parseObject(queryBody);
 //     //吉林蒲烟项目合同段信息
 //     List<PactAndProjDto> pactAndProjDtoList = JSONObject.parseArray(jsonObject.getString("data").toString(),PactAndProjDto.class);
 //
 //     //重庆吉林蒲烟项目合同段信息(中间表)
-//     List<ArchiveJiLinPush>archiveJiLinPushList= iArchiveJiLinPushService.getArchiveJiLinPush(jlHjProjId);
+//     List<ArchiveJiLinPush>archiveJiLinPushList= iArchiveJiLinPushService.getArchiveJiLinPush(jlPyProjId);
 //
 //     //中间项目合同中间集合
 //     List<JiLinQueryDto>dtos=new ArrayList<>();
@@ -104,9 +104,10 @@ public class JinLinPushApiController {
 //            }
 //        }
 //      //传入重庆的项目ID,和吉林需要的合同段集合 查出重庆的目录树
-//        Long projectId=cqHjProjectId;
+//        Long projectId=cqPyProjectId;
 //        List<ArchiveTreeContractDTO> archiveTreeContractDtos = archiveTreeContractClient.getArchiveTreeContractDto(dtos,projectId);
 //        System.out.println(archiveTreeContractDtos.size());
+//
 //      //构建需要传给吉林的目录树 数据
 //        List<JiLinPushTreeDto>jiLinPushTreeDtos=new ArrayList<>();
 //        for (ArchiveTreeContractDTO archiveTreeContractDto : archiveTreeContractDtos) {
@@ -118,7 +119,7 @@ public class JinLinPushApiController {
 //            jiLinPushTreeDto.setAddUserName(archiveTreeContractDto.getUpdateUserName());
 //            jiLinPushTreeDto.setPactId(archiveTreeContractDto.getContractId());
 //            //直接统一设置好目录树项目Id为吉林的项目ID
-//            jiLinPushTreeDto.setProjId(jlHjProjId);
+//            jiLinPushTreeDto.setProjId(jlPyProjId);
 //            jiLinPushTreeDtos.add(jiLinPushTreeDto);
 //
 //        }
@@ -168,41 +169,43 @@ public class JinLinPushApiController {
 //        System.out.println("档案:"+archiveAutoDtos.size());
 //        iJiLinArchiveAutoDtoService.saveBatch(archiveAutoDtos);
 
-            Long projId=jlHjProjId;
-        for (int j = 0; j <100 ; j++) {
-            Page<JiLinArchiveAutoDto> pages=iJiLinArchiveAutoDtoService.queryAll(j,500,projId);
-            List<JiLinArchiveAutoDto> archiveAutoDtos = pages.getRecords();
-            if(archiveAutoDtos.size()<500) {
-                System.out.println("最后一次数据大小:"+archiveAutoDtos.size());
-                j=101;
-            }
-            List<JiLinPushTomeDto> jiLinPushTomeDtoList = new ArrayList<>();
-            List<JiLinPushCatalogDto> jiLinPushCatalogDtoList = new ArrayList<>();
-            List<JiLinPushFileUrlDto> jiLinPushFileUrlDtoList = new ArrayList<>();
+            Long projId=jlPyProjId;
+        Page<JiLinArchiveAutoDto> pages=iJiLinArchiveAutoDtoService.queryAll(77,500,projId);
+        List<JiLinArchiveAutoDto> archiveAutoDtos = pages.getRecords();
+        List<JiLinPushCatalogDto> jiLinPushCatalogDtoList = new ArrayList<>();
+        List<JiLinPushFileUrlDto> jiLinPushFileUrlDtoList = new ArrayList<>();
+//        for (int j = 0; j <100 ; j++) {
+
+//            if(archiveAutoDtos.size()<500) {
+//                System.out.println("最后一次数据大小:"+archiveAutoDtos.size());
+//                j=101;
+//            }
+//            List<JiLinPushTomeDto> jiLinPushTomeDtoList = new ArrayList<>();
+
             for (int i = 0; i < archiveAutoDtos.size(); i++) {
-              String name=StringUtils.deleteWhitespace(archiveAutoDtos.get(i).getName());
-                //设置档案案卷
-                JiLinPushTomeDto jiLinPushTomeDto = new JiLinPushTomeDto();
-                jiLinPushTomeDto.setProjId(jlHjProjId);
-                jiLinPushTomeDto.setPactId(archiveAutoDtos.get(i).getContractId());
-                jiLinPushTomeDto.setKid(archiveAutoDtos.get(i).getTomeId());
-                jiLinPushTomeDto.setSortID(archiveAutoDtos.get(i).getNodeId());
-                jiLinPushTomeDto.setTomeSuper(name);
-                jiLinPushTomeDto.setRecordNum(archiveAutoDtos.get(i).getFileNumber());
-                jiLinPushTomeDto.setAddUserName(archiveAutoDtos.get(i).getUpdateUserName());
-                jiLinPushTomeDto.setAddTime(archiveAutoDtos.get(i).getCreateUserTime());
-                jiLinPushTomeDto.setBWeaveDate(archiveAutoDtos.get(i).getStartDate());
-                jiLinPushTomeDto.setEWeaveDate(archiveAutoDtos.get(i).getEndDate());
-                jiLinPushTomeDto.setKeepTerm(archiveAutoDtos.get(i).getStorageTime());
-                jiLinPushTomeDto.setSortOrder(i);
-                jiLinPushTomeDto.setMutualNum("0");
-                jiLinPushTomeDto.setWeaveUnit(archiveAutoDtos.get(i).getUnit());
-                jiLinPushTomeDto.setSecrecy(archiveAutoDtos.get(i).getSecretLevel());
-                jiLinPushTomeDto.setYear(Integer.parseInt(archiveAutoDtos.get(i).getStorageTime()));
-                jiLinPushTomeDtoList.add(jiLinPushTomeDto);
+                String name=StringUtils.deleteWhitespace(archiveAutoDtos.get(i).getName());
+//                //设置档案案卷
+//                JiLinPushTomeDto jiLinPushTomeDto = new JiLinPushTomeDto();
+//                jiLinPushTomeDto.setProjId(jlHjProjId);
+//                jiLinPushTomeDto.setPactId(archiveAutoDtos.get(i).getContractId());
+//                jiLinPushTomeDto.setKid(archiveAutoDtos.get(i).getTomeId());
+//                jiLinPushTomeDto.setSortID(archiveAutoDtos.get(i).getNodeId());
+//                jiLinPushTomeDto.setTomeSuper(name);
+//                jiLinPushTomeDto.setRecordNum(archiveAutoDtos.get(i).getFileNumber());
+//                jiLinPushTomeDto.setAddUserName(archiveAutoDtos.get(i).getUpdateUserName());
+//                jiLinPushTomeDto.setAddTime(archiveAutoDtos.get(i).getCreateUserTime());
+//                jiLinPushTomeDto.setBWeaveDate(archiveAutoDtos.get(i).getStartDate());
+//                jiLinPushTomeDto.setEWeaveDate(archiveAutoDtos.get(i).getEndDate());
+//                jiLinPushTomeDto.setKeepTerm(archiveAutoDtos.get(i).getStorageTime());
+//                jiLinPushTomeDto.setSortOrder(i);
+//                jiLinPushTomeDto.setMutualNum("0");
+//                jiLinPushTomeDto.setWeaveUnit(archiveAutoDtos.get(i).getUnit());
+//                jiLinPushTomeDto.setSecrecy(archiveAutoDtos.get(i).getSecretLevel());
+//                jiLinPushTomeDto.setYear(Integer.parseInt(archiveAutoDtos.get(i).getStorageTime()));
+//                jiLinPushTomeDtoList.add(jiLinPushTomeDto);
                 //    设置档案卷内目录
                 JiLinPushCatalogDto jiLinPushCatalogDto = new JiLinPushCatalogDto();
-                jiLinPushCatalogDto.setProjId(jlHjProjId);
+                jiLinPushCatalogDto.setProjId(jlPyProjId);
                 jiLinPushCatalogDto.setPactId(archiveAutoDtos.get(i).getContractId());
                 jiLinPushCatalogDto.setKid(archiveAutoDtos.get(i).getCatlogId());
                 jiLinPushCatalogDto.setSortId(archiveAutoDtos.get(i).getNodeId());
@@ -222,7 +225,7 @@ public class JinLinPushApiController {
                 jiLinPushCatalogDtoList.add(jiLinPushCatalogDto);
                 //设置档案文件
                 JiLinPushFileUrlDto jiLinPushFileUrlDto = new JiLinPushFileUrlDto();
-                jiLinPushFileUrlDto.setProjId(jlHjProjId);
+                jiLinPushFileUrlDto.setProjId(jlPyProjId);
                 jiLinPushFileUrlDto.setPactId(archiveAutoDtos.get(i).getContractId());
                 jiLinPushFileUrlDto.setKid(archiveAutoDtos.get(i).getId());
                 jiLinPushFileUrlDto.setCatalogID(archiveAutoDtos.get(i).getCatlogId());
@@ -236,44 +239,45 @@ public class JinLinPushApiController {
                 jiLinPushFileUrlDto.setAddTime(archiveAutoDtos.get(i).getUpdateUserTime());
                 jiLinPushFileUrlDtoList.add(jiLinPushFileUrlDto);
             }
-        //传输吉林档案案卷的地址
-        String tome=JSONObject.toJSONString(jiLinPushTomeDtoList);
-        String tomeMsg=tome+HJCLIENTSECRETKEY;
-        String tomeUrl="https://hgqs.jtyst.jl.gov.cn:6100/dock/openapi/veams/api/doc/tome";
-        String tomeSignature = DigestUtils.md5Hex(tomeMsg).toUpperCase();
-        HashMap<String,String> tomeHeaders=new HashMap<>();
-        tomeHeaders.put("Content-Type", "application/json");
-        tomeHeaders.put("clientId",HJCLIENTID);
-        tomeHeaders.put("signature",tomeSignature);
-        tomeHeaders.put("systemId",HJSYSTEMID);
-        String tomeBody = HttpUtil.createPost(tomeUrl).addHeaders(tomeHeaders).body(tome).contentType("application/json").execute().body();
-        System.out.println("第"+(j+1)+"次档案案卷"+tomeBody);
+//        //传输吉林档案案卷的地址
+//        String tome=JSONObject.toJSONString(jiLinPushTomeDtoList);
+//        String tomeMsg=tome+HJCLIENTSECRETKEY;
+//        String tomeUrl="https://hgqs.jtyst.jl.gov.cn:6100/dock/openapi/veams/api/doc/tome";
+//        String tomeSignature = DigestUtils.md5Hex(tomeMsg).toUpperCase();
+//        HashMap<String,String> tomeHeaders=new HashMap<>();
+//        tomeHeaders.put("Content-Type", "application/json");
+//        tomeHeaders.put("clientId",HJCLIENTID);
+//        tomeHeaders.put("signature",tomeSignature);
+//        tomeHeaders.put("systemId",HJSYSTEMID);
+//        String tomeBody = HttpUtil.createPost(tomeUrl).addHeaders(tomeHeaders).body(tome).contentType("application/json").execute().body();
+//        System.out.println("第"+(j+1)+"次档案案卷"+tomeBody);
         //传输吉林档案卷内目录
         String catLog=JSONObject.toJSONString(jiLinPushCatalogDtoList);
-        String catLogMsg=catLog+HJCLIENTSECRETKEY;
+        String catLogMsg=catLog+PYCLIENTSECRETKEY;
         String catLogUrl="https://hgqs.jtyst.jl.gov.cn:6100/dock/openapi/veams/api/doc/catalog";
         String catLogSignature = DigestUtils.md5Hex(catLogMsg).toUpperCase();
         HashMap<String,String> catLogHeaders=new HashMap<>();
         catLogHeaders.put("Content-Type", "application/json");
-        catLogHeaders.put("clientId",HJCLIENTID);
+        catLogHeaders.put("clientId",PYCLIENTID);
         catLogHeaders.put("signature",catLogSignature);
-        catLogHeaders.put("systemId",HJSYSTEMID);
+        catLogHeaders.put("systemId",PYSYSTEMID);
         String catLogBody = HttpUtil.createPost(catLogUrl).addHeaders(catLogHeaders).body(catLog).contentType("application/json").execute().body();
-        System.out.println("第"+(j+1)+"次卷内目录"+catLogBody);
+        System.out.println(catLogBody);
 
         //传输吉林档案文件
         String annex=JSONObject.toJSONString(jiLinPushFileUrlDtoList);
-        String annexMsg=annex+HJCLIENTSECRETKEY;
+        String annexMsg=annex+PYCLIENTSECRETKEY;
         String annexUrl="https://hgqs.jtyst.jl.gov.cn:6100/dock/openapi/veams/api/doc/annex";
         String annexSignature = DigestUtils.md5Hex(annexMsg).toUpperCase();
         HashMap<String,String> annexHeaders=new HashMap<>();
         annexHeaders.put("Content-Type", "application/json");
-        annexHeaders.put("clientId",HJCLIENTID);
+        annexHeaders.put("clientId",PYCLIENTID);
         annexHeaders.put("signature",annexSignature);
-        annexHeaders.put("systemId",HJSYSTEMID);
+        annexHeaders.put("systemId",PYSYSTEMID);
         String annexBody = HttpUtil.createPost(annexUrl).addHeaders(annexHeaders).body(annex).contentType("application/json").execute().body();
-        System.out.println("第"+(j+1)+"次档案文件"+annexBody);
-        }
-        System.out.println("烟长传输结束");
-   }
+        System.out.println(annexBody);
+
+    }
+//        System.out.println("烟长传输结束");
+//   }
 }

+ 205 - 210
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -18,7 +18,6 @@ import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.business.dto.CustomAddContractNodeDTO;
-import org.springblade.business.dto.CustomAddContractNodeDTO2;
 import org.springblade.business.entity.*;
 import org.springblade.business.feign.MessageWarningClient;
 import org.springblade.business.feign.OperationLogClient;
@@ -140,7 +139,7 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 29)
     @ApiOperation(value = "获取文件题名")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "queryId", value = "列表ID", required = true)
+        @ApiImplicitParam(name = "queryId", value = "列表ID", required = true)
     })
     public R<String> queryFirstDocumentTitle(@RequestParam String queryId) {
         InformationQuery query = this.informationQueryService.getById(queryId);
@@ -157,8 +156,8 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 28)
     @ApiOperation(value = "获取文件题名")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "primaryKeyId", value = "节点的primaryKeyId", required = true),
-            @ApiImplicitParam(name = "classify", value = "当前所选的类型", required = true)
+        @ApiImplicitParam(name = "primaryKeyId", value = "节点的primaryKeyId", required = true),
+        @ApiImplicitParam(name = "classify", value = "当前所选的类型", required = true)
     })
     public R<String> queryDocumentTitle(@RequestParam String primaryKeyId, @RequestParam Integer classify) {
         List<InformationQuery> result = this.informationQueryService.list(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getClassify, classify).eq(InformationQuery::getWbsId, primaryKeyId));
@@ -228,9 +227,9 @@ public class InformationWriteQueryController extends BladeController {
 
                         //根据id、nodeName去重
                         List<WbsTreeContract> resultNodeData = queryValueList.stream().collect(
-                                Collectors.collectingAndThen(
-                                        Collectors.toCollection(() -> new TreeSet<>(
-                                                Comparator.comparing(o -> o.getId() + ";" + o.getNodeName()))), ArrayList::new));
+                            Collectors.collectingAndThen(
+                                Collectors.toCollection(() -> new TreeSet<>(
+                                    Comparator.comparing(o -> o.getId() + ";" + o.getNodeName()))), ArrayList::new));
 
                         //处理参数
                         this.queryContractTree(associatedVONodeList, resultNodeData, 2);
@@ -303,9 +302,9 @@ public class InformationWriteQueryController extends BladeController {
 
                 //根据id、nodeName去重
                 List<WbsTreeContract> resultNodeData = queryValueList.stream().collect(
-                        Collectors.collectingAndThen(
-                                Collectors.toCollection(() -> new TreeSet<>(
-                                        Comparator.comparing(o -> o.getId() + ";" + o.getNodeName()))), ArrayList::new));
+                    Collectors.collectingAndThen(
+                        Collectors.toCollection(() -> new TreeSet<>(
+                            Comparator.comparing(o -> o.getId() + ";" + o.getNodeName()))), ArrayList::new));
 
                 this.queryContractTree(associatedVONodeList, resultNodeData, 1);
 
@@ -616,7 +615,7 @@ public class InformationWriteQueryController extends BladeController {
     public R<Object> abolishOneSJ(@RequestParam String primaryKeyId, @RequestParam String id, @RequestParam String projectId, @RequestParam String contractId) {
         //查询填报状态
         InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery()
-                .eq(InformationQuery::getId, id));
+            .eq(InformationQuery::getId, id));
         if (businessData != null) {
             //使用批量废除接口
             return this.batchAbolish(businessData.getId().toString(), primaryKeyId, projectId, contractId);
@@ -760,8 +759,8 @@ public class InformationWriteQueryController extends BladeController {
         String status = "1";
         //查询填报状态,type=3首件
         InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery()
-                .eq(InformationQuery::getId, id)
-                .eq(InformationQuery::getType, 3)
+            .eq(InformationQuery::getId, id)
+            .eq(InformationQuery::getType, 3)
         );
         if (businessData != null) {
             switch (businessData.getStatus()) {
@@ -826,7 +825,7 @@ public class InformationWriteQueryController extends BladeController {
         String status = "1";
         //查询填报状态,type=2试验
         InformationQuery businessData = this.informationQueryService.getBaseMapper().selectList(Wrappers.<InformationQuery>lambdaQuery()
-                .eq(InformationQuery::getWbsId, id).eq(InformationQuery::getClassify, classify).eq(InformationQuery::getType, 2)).stream().findAny().orElse(null);
+            .eq(InformationQuery::getWbsId, id).eq(InformationQuery::getClassify, classify).eq(InformationQuery::getType, 2)).stream().findAny().orElse(null);
         if (businessData != null) {
             switch (businessData.getStatus()) {
                 case 0:
@@ -1010,47 +1009,45 @@ public class InformationWriteQueryController extends BladeController {
             List<InformationQuery> result = this.informationQueryService.list(Wrappers.<InformationQuery>lambdaQuery().in(InformationQuery::getId, Arrays.asList(ids.split(","))));
 
 
-
             if (result != null && result.size() > 0) {
                 //删除掉pdfUrl和eVisaPdfUrl都为空的数据
                 /** 任务审批查看时,把节点附件列表跟在上报文件后面*/
 
 
-
                 result.removeIf(query -> StringUtils.isEmpty(query.getPdfUrl()) && StringUtils.isEmpty(query.getPdfUrl()));
                 if (result.size() > 0) {
                     List<String> urls = new ArrayList<>();
                  /*   result.forEach(query -> urls.add(
                             StringUtils.isNotEmpty(query.getNodePdfUrl()) ? query.getNodePdfUrl() + "@@@" + query.getName() + "-" + query.getId() : query.getPdfUrl() + "@@@" + query.getName() + "-" + query.getId()));
                    */
-                    for(InformationQuery query:result){
+                    for (InformationQuery query : result) {
                         String url_link = "";
-                        List<TaskApprovalVO.ApprovalFile> files = jdbcTemplate.query("select name as fileName,domain_url as fileUrl from m_table_file where is_deleted = 0 and type in(10,11,12)and tab_id = ?",new BeanPropertyRowMapper<>(TaskApprovalVO.ApprovalFile.class),query.getWbsId());
+                        List<TaskApprovalVO.ApprovalFile> files = jdbcTemplate.query("select name as fileName,domain_url as fileUrl from m_table_file where is_deleted = 0 and type in(10,11,12)and tab_id = ?", new BeanPropertyRowMapper<>(TaskApprovalVO.ApprovalFile.class), query.getWbsId());
                         List<String> url = new ArrayList();
-                        if (ObjectUtil.isNotEmpty(files)){
-                            for (TaskApprovalVO.ApprovalFile da:files){
+                        if (ObjectUtil.isNotEmpty(files)) {
+                            for (TaskApprovalVO.ApprovalFile da : files) {
                                 url.add(da.getFileUrl());
                             }
                         }
 
-                        if(query!=null && Func.isNull(query.getEVisaPdfUrl())){
+                        if (query != null && Func.isNull(query.getEVisaPdfUrl())) {
                             url.add(query.getEVisaPdfUrl());
-                        }else{
+                        } else {
                             url.add(query.getPdfUrl());
                         }
 
-                        if(urls!=null && urls.size()>1){
-                            String localUrl = FileUtils.getSysLocalFileUrl()+"\\" + query.getId()+".pdf";
-                            FileUtils.mergePdfPublicMethods(url,localUrl);
-                            BladeFile bladeFile = newIOSSClient.uploadFile(query.getId()+".pdf",localUrl);
+                        if (urls != null && urls.size() > 1) {
+                            String localUrl = FileUtils.getSysLocalFileUrl() + "\\" + query.getId() + ".pdf";
+                            FileUtils.mergePdfPublicMethods(url, localUrl);
+                            BladeFile bladeFile = newIOSSClient.uploadFile(query.getId() + ".pdf", localUrl);
                             if (bladeFile != null && ObjectUtils.isNotEmpty(bladeFile.getLink())) {
-                                url.add( bladeFile.getLink());
+                                url.add(bladeFile.getLink());
                             }
 
-                        }else if(urls!=null && urls.size()==1){
+                        } else if (urls != null && urls.size() == 1) {
                             url_link = url.get(0);
                         }
-                        url.add(url_link+ "@@@" + query.getName() + "-" + query.getId());
+                        url.add(url_link + "@@@" + query.getName() + "-" + query.getId());
                     }
 
                     //删除空数据
@@ -1082,9 +1079,9 @@ public class InformationWriteQueryController extends BladeController {
         if (taskList.size() == 0) {
             //试验
             List<InformationQuery> dataList = this.informationQueryService.getBaseMapper().selectList(Wrappers.<InformationQuery>lambdaQuery()
-                    .select(InformationQuery::getId)
-                    .eq(InformationQuery::getType, 2)
-                    .in(InformationQuery::getWbsId, Func.toStrList(ids)));
+                .select(InformationQuery::getId)
+                .eq(InformationQuery::getType, 2)
+                .in(InformationQuery::getWbsId, Func.toStrList(ids)));
             if (dataList.size() > 0) {
                 List<Long> dataIds = dataList.stream().map(InformationQuery::getId).collect(Collectors.toList());
                 taskList = this.taskClient.queryTaskListByFormDataId(StringUtils.join(dataIds, ","));
@@ -1156,18 +1153,18 @@ public class InformationWriteQueryController extends BladeController {
 
                                         //保存通知记录
                                         this.messageWarningClient.savePushUserMessageWarning(
-                                                new MessageWarningVO(
-                                                        query.getProjectId(),
-                                                        query.getContractId(),
-                                                        //废除通知
-                                                        3,
-                                                        //内容
-                                                        projectName + contractName + "的用户【" + AuthUtil.getNickName() + "】废除了【" + query.getName() + "】",
-                                                        //推送的目标人
-                                                        Long.parseLong(strs[0]),
-                                                        //默认未读
-                                                        0
-                                                ));
+                                            new MessageWarningVO(
+                                                query.getProjectId(),
+                                                query.getContractId(),
+                                                //废除通知
+                                                3,
+                                                //内容
+                                                projectName + contractName + "的用户【" + AuthUtil.getNickName() + "】废除了【" + query.getName() + "】",
+                                                //推送的目标人
+                                                Long.parseLong(strs[0]),
+                                                //默认未读
+                                                0
+                                            ));
 
                                         if (ObjectUtil.isNotEmpty(query.getProjectId()) && ObjectUtil.isNotEmpty(query.getContractId()) && ObjectUtil.isNotEmpty(strs[0])) {
                                             String param = strs[0] + "," + query.getProjectId() + "," + query.getContractId();
@@ -1187,16 +1184,16 @@ public class InformationWriteQueryController extends BladeController {
                                 List<MessageWarningVO> messageList = new ArrayList<>();
                                 for (TaskParallel taskParallel : linkList) {
                                     messageList.add(new MessageWarningVO(
-                                            Long.parseLong(task.getProjectId()),
-                                            Long.parseLong(task.getContractId()),
-                                            //废除通知
-                                            3,
-                                            //内容
-                                            (StringUtils.isNotEmpty(projectInfo.getProjectAlias()) ? projectInfo.getProjectAlias() : projectInfo.getProjectName()) + contractInfo.getContractName() + "的用户" + AuthUtil.getNickName() + "废除了【" + query.getName() + "】流程,请及时查看",
-                                            //推送的目标人
-                                            Long.parseLong(taskParallel.getTaskUser()),
-                                            //默认未读
-                                            0
+                                        Long.parseLong(task.getProjectId()),
+                                        Long.parseLong(task.getContractId()),
+                                        //废除通知
+                                        3,
+                                        //内容
+                                        (StringUtils.isNotEmpty(projectInfo.getProjectAlias()) ? projectInfo.getProjectAlias() : projectInfo.getProjectName()) + contractInfo.getContractName() + "的用户" + AuthUtil.getNickName() + "废除了【" + query.getName() + "】流程,请及时查看",
+                                        //推送的目标人
+                                        Long.parseLong(taskParallel.getTaskUser()),
+                                        //默认未读
+                                        0
                                     ));
                                 }
                                 if (messageList.size() > 0) {
@@ -1282,11 +1279,11 @@ public class InformationWriteQueryController extends BladeController {
                 //试验批量上报
                 String trialIds = "";
                 Map<Long, Long> mapKey = new HashMap<>();
-                if (queryList.size() == 0 ) {
+                if (queryList.size() == 0) {
                     //试验填报数据
                     queryList = new ArrayList<>(this.informationQueryService.list(Wrappers.<InformationQuery>lambdaQuery().in(InformationQuery::getWbsId, Arrays.asList(ids))));
                     //重新绑定trialSelfInspectionRecordId使用map
-                    if(appType == 1L){ // 试验上报
+                    if (appType == 1L) { // 试验上报
                         for (InformationQuery informationQuery : queryList) {
                             mapKey.put(informationQuery.getId(), informationQuery.getWbsId());
                         }
@@ -1328,9 +1325,9 @@ public class InformationWriteQueryController extends BladeController {
                         //设置数据源指向
                         taskVO.setFormDataId(id);
                         //设置上报类型
-                        if(appType!=null && appType==2L){
+                        if (appType != null && appType == 2L) {
                             taskVO.setApprovalType(8);
-                        }else{
+                        } else {
                             taskVO.setApprovalType(1);
                         }
 
@@ -1362,21 +1359,21 @@ public class InformationWriteQueryController extends BladeController {
                             }
 
                             // 为多单上报 状态修改
-                            if(appType!=null && appType == 2L){
+                            if (appType != null && appType == 2L) {
                                 //获取当前时间
                                 LocalDateTime now = LocalDateTime.now();
                                 //格式化时间
                                 String nowFormat = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-                                String sql = "update u_entrust_info set status = 2 , entrust_time = '"+ nowFormat + "' ,sample_status=1 where id = " + startTaskVO.getIds();
+                                String sql = "update u_entrust_info set status = 2 , entrust_time = '" + nowFormat + "' ,sample_status=1 where id = " + startTaskVO.getIds();
                                 jdbcTemplate.execute(sql);
                             }
                             var = true;
-                        }else{
+                        } else {
                             return R.fail("创建主流程失败");
                         }
                     }
 
-                    if (StringUtils.isNotEmpty(trialIds) && var && appType==1L) {
+                    if (StringUtils.isNotEmpty(trialIds) && var && appType == 1L) {
                         //修改试验记录上报任务状态(批量上报)
                         String sql = "update u_trial_self_inspection_record set task_status = '待审批' where id in(" + trialIds + ")";
                         jdbcTemplate.execute(sql);
@@ -1511,20 +1508,20 @@ public class InformationWriteQueryController extends BladeController {
                 Map<Long, Map<String, Object>> colMaps = new HashMap<>();
                 if (vo.getIsCopyData() == 1) {
                     List<String> tabNames = nodeChildAll.stream()
-                            .map(WbsTreeContract::getInitTableName)
-                            .filter(ObjectUtil::isNotEmpty)
-                            .distinct()
-                            .collect(Collectors.toList());
+                        .map(WbsTreeContract::getInitTableName)
+                        .filter(ObjectUtil::isNotEmpty)
+                        .distinct()
+                        .collect(Collectors.toList());
                     String inClausePlaceholders = String.join(",", Collections.nCopies(tabNames.size(), "?"));
                     String sql = "SELECT table_name AS queryType, GROUP_CONCAT(COLUMN_name) AS ancestors " +
-                            "FROM information_schema.COLUMNS WHERE table_name IN (" + inClausePlaceholders + ") " +
-                            "GROUP BY table_name";
+                        "FROM information_schema.COLUMNS WHERE table_name IN (" + inClausePlaceholders + ") " +
+                        "GROUP BY table_name";
                     Object[] params = tabNames.toArray();
                     List<Map<String, Object>> results = jdbcTemplate.queryForList(sql, params);
 
                     Map<String, List<WbsTreeContract>> tabsGroup = nodeChildAll.stream()
-                            .filter(f -> f.getType() == 2 && ObjectUtil.isNotEmpty(f.getInitTableName()))
-                            .collect(Collectors.groupingBy(WbsTreeContract::getInitTableName));
+                        .filter(f -> f.getType() == 2 && ObjectUtil.isNotEmpty(f.getInitTableName()))
+                        .collect(Collectors.groupingBy(WbsTreeContract::getInitTableName));
 
                     Set<Long> continuePkeyIds = new HashSet<>();
                     for (Map<String, Object> result : results) {
@@ -1535,8 +1532,8 @@ public class InformationWriteQueryController extends BladeController {
                         }
 
                         List<String> filteredList = Arrays.stream(col.split(","))
-                                .filter(value -> !value.equals("id") && !value.equals("p_key_id") && !value.equals("group_id"))
-                                .collect(Collectors.toList());
+                            .filter(value -> !value.equals("id") && !value.equals("p_key_id") && !value.equals("group_id"))
+                            .collect(Collectors.toList());
                         String keys = StringUtils.join(filteredList, ",");
                         List<WbsTreeContract> tabs = tabsGroup.get(tabName);
                         for (WbsTreeContract tab : tabs) {
@@ -1598,8 +1595,8 @@ public class InformationWriteQueryController extends BladeController {
 
                     /*处理复制表数据*/
                     if (nodeOld.getType() == 2 && vo.getIsCopyData() == 1
-                            && StringUtils.isNotEmpty(newData.getInitTableName())
-                            && tabOwner.contains(nodeOld.getTableOwner())) {
+                        && StringUtils.isNotEmpty(newData.getInitTableName())
+                        && tabOwner.contains(nodeOld.getTableOwner())) {
 
                         /*获取表对应的实体数据*/
                         Map<String, Object> resultMap = colMaps.getOrDefault(nodeOld.getPKeyId(), null);
@@ -1637,15 +1634,15 @@ public class InformationWriteQueryController extends BladeController {
                         String delSql = "DELETE FROM " + newData.getInitTableName() + " WHERE p_key_id = " + newData.getPKeyId() + " ; ";
                         //insert SQL
                         copySql.append(delSql)
-                                .append("INSERT INTO ")
-                                .append(newData.getInitTableName())
-                                .append(" (id,p_key_id,group_id")
-                                .append(keysHaveValue)
-                                .append(") VALUES (")
-                                .append(SnowFlakeUtil.getId()).append(",")
-                                .append(newData.getPKeyId()).append(",null")
-                                .append(newString)
-                                .append(");");
+                            .append("INSERT INTO ")
+                            .append(newData.getInitTableName())
+                            .append(" (id,p_key_id,group_id")
+                            .append(keysHaveValue)
+                            .append(") VALUES (")
+                            .append(SnowFlakeUtil.getId()).append(",")
+                            .append(newData.getPKeyId()).append(",null")
+                            .append(newString)
+                            .append(");");
                     }
                 }
             }
@@ -2034,11 +2031,11 @@ public class InformationWriteQueryController extends BladeController {
                     for (String k : colsList) {
                         if (p2.containsKey(k)) {
                             Object value = reviseValue(p2, k, origin.get(k));
-                            if (value != null ) {
-                                if( value.toString().contains("_^_")) {
+                            if (value != null) {
+                                if (value.toString().contains("_^_")) {
                                     value = "'" + value + "'";
                                     target.set(target.indexOf(k), value.toString());
-                                }else{
+                                } else {
                                     target.set(target.indexOf(k), StringPool.NULL);
                                 }
                             }
@@ -2148,11 +2145,11 @@ public class InformationWriteQueryController extends BladeController {
         List<WbsTreeContract> needCopyNodeTabs = this.getChildNodesTables(wbsTreeContractsNeed, needCopyNode.getContractId());
         List<WbsTreeContract> toCopyNodeTabs = this.getChildNodesTables(wbsTreeContractsTo, needCopyNode.getContractId());
         Map<String, WbsTreeContract> toCopyNodeTabsMaps = toCopyNodeTabs.stream()
-                .collect(Collectors.toMap(
-                        obj -> obj.getNodeName() + "-" + obj.getHtmlUrl(),
-                        Function.identity(),
-                        (existing, replacement) -> existing
-                ));
+            .collect(Collectors.toMap(
+                obj -> obj.getNodeName() + "-" + obj.getHtmlUrl(),
+                Function.identity(),
+                (existing, replacement) -> existing
+            ));
         if (needCopyNodeTabs.size() > 0) {
             for (WbsTreeContract needTab : needCopyNodeTabs) {
                 if (ObjectUtil.isNotEmpty(needTab.getHtmlUrl())) {
@@ -2494,7 +2491,7 @@ public class InformationWriteQueryController extends BladeController {
      * 递归获取所有子级节点
      */
     private void recursionGetChildNodes(List<WbsTreeContract> list, List<WbsTreeContract> result, String
-            contractId) {
+        contractId) {
         List<Long> ids = list.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
         if (ids.size() > 0) {
             List<WbsTreeContract> query = jdbcTemplate.query("select * from m_wbs_tree_contract where type = 1 and parent_id in(" + StringUtils.join(ids, ",") + ") and status = 1 and is_deleted = 0 and contract_id = " + contractId, new BeanPropertyRowMapper<>(WbsTreeContract.class));
@@ -2605,9 +2602,9 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 14)
     @ApiOperation(value = "导图结构树节点查询")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "parentId", value = "父节点,首次进入传0、null、''", required = true),
-            @ApiImplicitParam(name = "wbsType", value = "模板类型, 1质检,2试验", required = true),
-            @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
+        @ApiImplicitParam(name = "parentId", value = "父节点,首次进入传0、null、''", required = true),
+        @ApiImplicitParam(name = "wbsType", value = "模板类型, 1质检,2试验", required = true),
+        @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
     })
     public R<List<WbsTreeContractTreeVOS>> queryMappingStructureTree(@RequestParam String parentId,
                                                                      @RequestParam String contractId,
@@ -2659,54 +2656,54 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "修改节点信息")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "pKeyId", value = "节点的primaryKeyId", required = true),
-            @ApiImplicitParam(name = "nodeName", value = "节点的title", required = true),
-            @ApiImplicitParam(name = "partitionCode", value = "划分编号")
+        @ApiImplicitParam(name = "pKeyId", value = "节点的primaryKeyId", required = true),
+        @ApiImplicitParam(name = "nodeName", value = "节点的title", required = true),
+        @ApiImplicitParam(name = "partitionCode", value = "划分编号")
     })
     public R<Boolean> updateContractNodeParameter(@RequestParam Long pKeyId, @RequestParam String
-            nodeName, @RequestParam String partitionCode,@RequestParam(required=false) Integer className,
-             @RequestParam(required = false) Integer unitName,@RequestParam(required = false)Integer unitNum,@RequestParam(required = false)Integer excellentNum) {
+        nodeName, @RequestParam String partitionCode, @RequestParam(required = false) Integer className,
+                                                  @RequestParam(required = false) Integer unitName, @RequestParam(required = false) Integer excellentNum,
+                                                  @RequestParam(required = false) Integer unitNum) {
         WbsTreeContract node = new WbsTreeContract();
         node.setPKeyId(pKeyId);
         node.setNodeName(nodeName);
         node.setPartitionCode(partitionCode);
+
         //只允许修改节点名称
         if (StringUtils.isEmpty(node.getNodeName()) || "null".equals(String.valueOf(node.getPKeyId())) || StringUtils.isEmpty(String.valueOf(node.getPKeyId()))) {
             return R.data(-1, false, "缺少参数");
         }
 
         WbsTreeContract queries = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(pKeyId);
-
-        if(ObjectUtil.isNotEmpty(className)||ObjectUtil.isNotEmpty(unitName)){
+        if (ObjectUtil.isNotEmpty(className) || ObjectUtil.isNotEmpty(unitName)) {
             //查询当前节点的是否是子节点,以及当前节点父节点是否包含单元评定
-            String child="SELECT * FROM m_wbs_tree_contract WHERE parent_id="+queries.getId()+" AND is_deleted=0";
-           List<WbsTreeContract> childList = jdbcTemplate.query(child, new BeanPropertyRowMapper<>(WbsTreeContract.class));
-           if(childList.size()>0){
-               for (WbsTreeContract wbsTreeContract : childList) {
-                   if(ObjectUtil.isEmpty(wbsTreeContract.getInitTableName())){
-                       return R.fail("当前节点存在子节点,不能设置标准分类和单元名称");
-                   }
-               }
-
-           }
-           String father="SELECT * FROM m_wbs_tree_contract WHERE id="+queries.getParentId();
+            String child = "SELECT * FROM m_wbs_tree_contract WHERE parent_id=" + queries.getId() + " AND is_deleted=0";
+            List<WbsTreeContract> childList = jdbcTemplate.query(child, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+            if (childList.size() > 0) {
+                for (WbsTreeContract wbsTreeContract : childList) {
+                    if (ObjectUtil.isEmpty(wbsTreeContract.getInitTableName())) {
+                        return R.fail("当前节点存在子节点,不能设置标准分类和单元名称");
+                    }
+                }
+
+            }
+            String father = "SELECT * FROM m_wbs_tree_contract WHERE id=" + queries.getParentId();
             WbsTreeContract fatherNode = jdbcTemplate.queryForObject(father, new BeanPropertyRowMapper<>(WbsTreeContract.class));
-            if(ObjectUtil.isNotEmpty(fatherNode)){
-                if(fatherNode.getIsClassifition()==Integer.valueOf(1)){
+            if (ObjectUtil.isNotEmpty(fatherNode)) {
+                if (fatherNode.getIsClassifition() == Integer.valueOf(1)) {
                     return R.fail("当前节点的父节点包含单元评定");
                 }
             }
         }
-        if(ObjectUtil.isNotEmpty(unitName)&&ObjectUtil.isNotEmpty(className)){
+        if (ObjectUtil.isNotEmpty(unitName) && ObjectUtil.isNotEmpty(className)) {
             node.setIsClassifition(1);
             node.setClassName(className);
             node.setUnitName(unitName);
-            if(queries.getNodeClass()==Integer.valueOf(2)){
+            if (queries.getNodeClass() == Integer.valueOf(2)) {
                 node.setExcellentNum(excellentNum);
                 node.setUnitNum(unitNum);
             }
         }
-
         //保存操作记录
         try {
             JSONObject json = new JSONObject();
@@ -2772,6 +2769,7 @@ public class InformationWriteQueryController extends BladeController {
             }
         }
     }
+
     /**
      * 查询当前节点下的数据 是否包含监理填报数据
      */
@@ -2791,13 +2789,14 @@ public class InformationWriteQueryController extends BladeController {
         removeList.add(Long.parseLong(ids));
         if (removeList.size() > 0) {
             /** 判断是否子节点有上存在监理填报内容的资料,提示用户谨慎操作*/
-            List<WbsTreeContractTreeVOS> list =  this.wbsTreeContractClient.selectContractJLForm(removeList);
+            List<WbsTreeContractTreeVOS> list = this.wbsTreeContractClient.selectContractJLForm(removeList);
             if (list != null && list.size() >= 1) {
                 return R.data(300, false, "当前节点已存在监理资料,删除节点会把监理数据一并删除(永久删除),建议与监理方确认是否能删除该数据,请慎重删除!删除后果请自行负责。");
             }
         }
         return R.data(true);
     }
+
     /**
      * 删除节点
      *
@@ -2952,8 +2951,8 @@ public class InformationWriteQueryController extends BladeController {
 
                 //处理重复的数据
                 selectedNodeList = selectedNodeList.stream().collect(Collectors.collectingAndThen(
-                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(WbsTreePrivate::getId))),
-                        ArrayList::new
+                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(WbsTreePrivate::getId))),
+                    ArrayList::new
                 ));
             }
             //处理半选
@@ -2982,8 +2981,8 @@ public class InformationWriteQueryController extends BladeController {
 
                 //处理重复的数据
                 selectedNodeList = selectedNodeList.stream().collect(Collectors.collectingAndThen(
-                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(WbsTreePrivate::getId))),
-                        ArrayList::new
+                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(WbsTreePrivate::getId))),
+                    ArrayList::new
                 ));
             }
         }
@@ -2994,13 +2993,13 @@ public class InformationWriteQueryController extends BladeController {
 
         //封裝节点名称nodeName与id的Map
         Map<Long, String> idAndNodeNameMaps = query.stream()
-                .filter(wbsTreePrivate -> pKeyIds.contains(wbsTreePrivate.getPKeyId().toString()))
-                .collect(Collectors.toMap(WbsTreePrivate::getId,
-                        wbsTreePrivate -> selectList.stream()
-                                .filter(node -> node.getPrimaryKeyId().equals(wbsTreePrivate.getPKeyId().toString()))
-                                .findFirst()
-                                .map(AddContractTreeNodeVO.Node::getNodeName)
-                                .orElse("")));
+            .filter(wbsTreePrivate -> pKeyIds.contains(wbsTreePrivate.getPKeyId().toString()))
+            .collect(Collectors.toMap(WbsTreePrivate::getId,
+                wbsTreePrivate -> selectList.stream()
+                    .filter(node -> node.getPrimaryKeyId().equals(wbsTreePrivate.getPKeyId().toString()))
+                    .findFirst()
+                    .map(AddContractTreeNodeVO.Node::getNodeName)
+                    .orElse("")));
 
         //原始表ids,电签位置信息使用
         List<Long> oldTabIds = selectedNodeList.stream().filter(f -> new Integer(2).equals(f.getType())).map(WbsTreePrivate::getId).collect(Collectors.toList());
@@ -3053,19 +3052,19 @@ public class InformationWriteQueryController extends BladeController {
                             //自定义节点(非根节点才处理)
                             if (!newData.getParentId().equals(0L)) {
                                 newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId())
-                                        ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId())
-                                        ||
-                                        treeContract.getOldId().equals(half.getParentId().toString())
-                                        ? treeContract.getId() : SnowFlakeUtil.getId());
+                                    ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId())
+                                    ||
+                                    treeContract.getOldId().equals(half.getParentId().toString())
+                                    ? treeContract.getId() : SnowFlakeUtil.getId());
                             }
                         } else {
                             //非自定义节点
                             //同节点
                             newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId())
-                                    ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId())
-                                    ||
-                                    treeContract.getOldId().equals(half.getParentId().toString())
-                                    ? treeContract.getId() : SnowFlakeUtil.getId());
+                                ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId())
+                                ||
+                                treeContract.getOldId().equals(half.getParentId().toString())
+                                ? treeContract.getId() : SnowFlakeUtil.getId());
                         }
                     }
 
@@ -3182,9 +3181,9 @@ public class InformationWriteQueryController extends BladeController {
         }
         //找到最顶级节点设置parentId
         WbsTreeContract topLevelNode = findTopLevelNode(saveList);
-        if(ObjectUtils.isNotEmpty(topLevelNode)){
+        if (ObjectUtils.isNotEmpty(topLevelNode)) {
             for (WbsTreeContract wbsTreeContract : saveList) {
-                if(topLevelNode.getPKeyId().equals(wbsTreeContract.getPKeyId())){
+                if (topLevelNode.getPKeyId().equals(wbsTreeContract.getPKeyId())) {
                     wbsTreeContract.setParentId(treeContract.getId());
                 }
             }
@@ -3198,6 +3197,7 @@ public class InformationWriteQueryController extends BladeController {
 
         return booleanR;
     }
+
     public static WbsTreeContract findTopLevelNode(List<WbsTreeContract> saveList) {
         Set<Long> nodeIds = new HashSet<>();
         for (WbsTreeContract node : saveList) {
@@ -3277,18 +3277,18 @@ public class InformationWriteQueryController extends BladeController {
     }
 
     private List<WbsTreePrivateAddVO> unifiedCode
-            (List<AddContractTreeNodeVO.Node> allSelectedNodeList, WbsTreeContract treeContract, String
-                    saveType, List<WbsTreePrivate> queryResultP) {
+        (List<AddContractTreeNodeVO.Node> allSelectedNodeList, WbsTreeContract treeContract, String
+            saveType, List<WbsTreePrivate> queryResultP) {
         //获取项目节点树的主键
         List<Long> halfSelectedList = allSelectedNodeList.stream().map(AddContractTreeNodeVO.Node::getPrimaryKeyId).map(Long::parseLong).distinct().collect(Collectors.toList());
 
         //获取项目对应的合同段的树原始节点的信息
         List<WbsTreePrivateAddVO> query = jdbcTemplate.query("select *," +
-                        "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_contract b WHERE b.parent_id = a.id" +
-                        " AND b.type = 1 and b.status = 1 AND b.is_deleted = 0 AND b.project_id = " + treeContract.getProjectId() +
-                        " AND b.wbs_id = " + treeContract.getWbsId() + " AND b.wbs_type = " + treeContract.getWbsType() + ") AS low " +
-                        " FROM m_wbs_tree_private a WHERE p_key_id IN (" + StringUtils.join(halfSelectedList, ",") + ")",
-                new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
+                "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_contract b WHERE b.parent_id = a.id" +
+                " AND b.type = 1 and b.status = 1 AND b.is_deleted = 0 AND b.project_id = " + treeContract.getProjectId() +
+                " AND b.wbs_id = " + treeContract.getWbsId() + " AND b.wbs_type = " + treeContract.getWbsType() + ") AS low " +
+                " FROM m_wbs_tree_private a WHERE p_key_id IN (" + StringUtils.join(halfSelectedList, ",") + ")",
+            new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
 
         if (query.size() > 0) {
             //返回结果集,匹配节点名称使用
@@ -3311,18 +3311,18 @@ public class InformationWriteQueryController extends BladeController {
     }
 
     private List<WbsTreePrivateAddVO> unifiedCode2
-            (List<AddContractTreeNodeVO.Node> allSelectedNodeList, WbsTreeContract treeContract, String
-                    saveType, List<WbsTreePrivate> queryResultP) {
+        (List<AddContractTreeNodeVO.Node> allSelectedNodeList, WbsTreeContract treeContract, String
+            saveType, List<WbsTreePrivate> queryResultP) {
         //获取项目节点树的主键
         List<Long> halfSelectedList = allSelectedNodeList.stream().map(AddContractTreeNodeVO.Node::getPrimaryKeyId).map(Long::parseLong).distinct().collect(Collectors.toList());
 
         //获取项目对应的合同段的树原始节点的信息
         List<WbsTreePrivateAddVO> query = jdbcTemplate.query("select *," +
-                        "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_private b WHERE b.parent_id = a.id" +
-                        " AND b.type = 2 and b.status = 1 AND b.is_deleted = 0 AND b.project_id = " + treeContract.getProjectId() +
-                        ") AS low " +
-                        " FROM m_wbs_tree_private a WHERE p_key_id IN (" + StringUtils.join(halfSelectedList, ",") + ")",
-                new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
+                "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_private b WHERE b.parent_id = a.id" +
+                " AND b.type = 2 and b.status = 1 AND b.is_deleted = 0 AND b.project_id = " + treeContract.getProjectId() +
+                ") AS low " +
+                " FROM m_wbs_tree_private a WHERE p_key_id IN (" + StringUtils.join(halfSelectedList, ",") + ")",
+            new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
 
         if (query.size() > 0) {
             //返回结果集,匹配节点名称使用
@@ -3346,8 +3346,8 @@ public class InformationWriteQueryController extends BladeController {
 
     @NotNull
     public R<Boolean> saveOrCopyNodeTree
-            (List<WbsTreeContract> saveList, List<ConstructionLedger> saveLedger, Integer
-                    operationType, WbsTreeContract currentNode) {
+        (List<WbsTreeContract> saveList, List<ConstructionLedger> saveLedger, Integer
+            operationType, WbsTreeContract currentNode) {
         if (saveList.size() > 0) {
             //StringBuilder str = new StringBuilder();
             //str.append("-" + saveList.get(0).getFullName());
@@ -3394,8 +3394,8 @@ public class InformationWriteQueryController extends BladeController {
 
     @NotNull
     private R<Boolean> saveOrCopyNodeTree2
-            (List<WbsTreeContract> saveList, List<ConstructionLedger> saveLedger, Integer
-                    operationType, WbsTreeContract currentNode) {
+        (List<WbsTreeContract> saveList, List<ConstructionLedger> saveLedger, Integer
+            operationType, WbsTreeContract currentNode) {
         if (saveList.size() > 0) {
             //StringBuilder str = new StringBuilder();
             //str.append("-" + saveList.get(0).getFullName());
@@ -3459,7 +3459,7 @@ public class InformationWriteQueryController extends BladeController {
 
             //获取项目对应的合同段的树原始节点的信息
             List<WbsTreePrivateAddVO> query = jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id in(" + StringUtils.join(allSelectedList, ",") + ")",
-                    new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
+                new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
             if (query.size() > 0) {
                 //返回结果集,匹配节点名称使用
                 queryResultP.addAll(query);
@@ -3487,11 +3487,11 @@ public class InformationWriteQueryController extends BladeController {
      */
     private void foreachQueryChild(List<Long> parentIdsList, List<WbsTreePrivateAddVO> childList, WbsTreeContract wbsTreeContract) {
         List<WbsTreePrivateAddVO> childS = jdbcTemplate.query("select * from m_wbs_tree_private" +
-                " where parent_id in(" + StringUtils.join(parentIdsList, ",") + ")" +
-                " and project_id = " + wbsTreeContract.getProjectId() +
-                " and wbs_id = " + wbsTreeContract.getWbsId() +
-                " and wbs_type = " + wbsTreeContract.getWbsType() +
-                " and is_deleted = 0 and status = 1", new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
+            " where parent_id in(" + StringUtils.join(parentIdsList, ",") + ")" +
+            " and project_id = " + wbsTreeContract.getProjectId() +
+            " and wbs_id = " + wbsTreeContract.getWbsId() +
+            " and wbs_type = " + wbsTreeContract.getWbsType() +
+            " and is_deleted = 0 and status = 1", new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
         if (childS.size() > 0) {
             childList.addAll(childS);
         }
@@ -3508,11 +3508,11 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 9)
     @ApiOperation(value = "懒加载项目级工程划分树")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", value = "项目ID"),
-            @ApiImplicitParam(name = "id", value = "点击节点ID")
+        @ApiImplicitParam(name = "projectId", value = "项目ID"),
+        @ApiImplicitParam(name = "id", value = "点击节点ID")
     })
     public R<List<WbsTreeContractTreeVOS>> queryWbsTreePrivateByProjectIdAndId(@RequestParam String
-                                                                                       projectId, @RequestParam String id) {
+                                                                                   projectId, @RequestParam String id) {
         List<WbsTreeContractTreeVOS> result = new ArrayList<>();
 
         if (StringUtils.isNotEmpty(id)) {
@@ -3546,11 +3546,11 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 9)
     @ApiOperation(value = "懒加载合同段工程划分树")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "contractId", value = "合同段ID"),
-            @ApiImplicitParam(name = "id", value = "点击节点ID")
+        @ApiImplicitParam(name = "contractId", value = "合同段ID"),
+        @ApiImplicitParam(name = "id", value = "点击节点ID")
     })
     public R<List<WbsTreeContractTreeVOS>> queryWbsTreeContractByContractIdAndId(@RequestParam String
-                                                                                         contractId, @RequestParam String id) {
+                                                                                     contractId, @RequestParam String id) {
         List<WbsTreeContractTreeVOS> result = new ArrayList<>();
         if (StringUtils.isNotEmpty(id)) {
             WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();
@@ -3651,10 +3651,10 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "分页")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "size", value = "当前页条数", required = true),
-            @ApiImplicitParam(name = "current", value = "当前页", required = true),
-            @ApiImplicitParam(name = "wbsId", value = "节点ID", required = true),
-            @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
+        @ApiImplicitParam(name = "size", value = "当前页条数", required = true),
+        @ApiImplicitParam(name = "current", value = "当前页", required = true),
+        @ApiImplicitParam(name = "wbsId", value = "节点ID", required = true),
+        @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
     })
     public R<IPage<InformationQueryVO>> page(@RequestBody InformationQueryVO vo) {
         if (ObjectUtil.isEmpty(vo.getContractId())) {
@@ -3795,12 +3795,12 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 29)
     @ApiOperation(value = "获取当前合同段的划分树")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
-            @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
+        @ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
+        @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
     })
     public R<List<WbsTreeContractTreeVOS>> queryStandingBookContractWbsTree(@RequestParam String
-                                                                                    primaryKeyId, @RequestParam String parentId, @RequestParam String contractId, @RequestParam String
-                                                                                    contractIdRelation) {
+                                                                                primaryKeyId, @RequestParam String parentId, @RequestParam String contractId, @RequestParam String
+                                                                                contractIdRelation) {
         if (StringUtils.isNotEmpty(primaryKeyId)) {
             parentId = primaryKeyId;
         }
@@ -3819,12 +3819,12 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "获取当前合同段的划分树")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
-            @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true),
-            @ApiImplicitParam(name = "classifyType", value = "所属方,监理、总监办的资料查询使用,=1施工数据(默认),=2监理数据")
+        @ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
+        @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true),
+        @ApiImplicitParam(name = "classifyType", value = "所属方,监理、总监办的资料查询使用,=1施工数据(默认),=2监理数据")
     })
     public R<List<WbsTreeContractTreeVOS>> queryContractWbsTreeByContractIdAndType(@RequestParam String
-                                                                                           primaryKeyId,
+                                                                                       primaryKeyId,
                                                                                    @RequestParam String parentId,
                                                                                    @RequestParam String contractId,
                                                                                    @RequestParam String contractIdRelation,
@@ -3855,8 +3855,8 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "修改(只能修改编号和文件名)")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "name", value = "文件名称, 必须有值", required = true),
-            @ApiImplicitParam(name = "number", value = "文件编号,可以为空")
+        @ApiImplicitParam(name = "name", value = "文件名称, 必须有值", required = true),
+        @ApiImplicitParam(name = "number", value = "文件编号,可以为空")
     })
     public R<Boolean> update(@Valid @RequestBody InformationQuery informationQuery) {
         if ("null".equals(String.valueOf(informationQuery.getId())) || StringUtils.isEmpty(String.valueOf(informationQuery.getId()))) {
@@ -3886,11 +3886,11 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 28)
     @ApiOperation(value = "首件wbs树")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
-            @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
+        @ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
+        @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
     })
     public R<List<WbsTreeContractTreeVOS>> queryContractWbsTreeByFirstInfo(@RequestParam String
-                                                                                   parentId, @RequestParam String contractId, @RequestParam String contractIdRelation) {
+                                                                               parentId, @RequestParam String contractId, @RequestParam String contractIdRelation) {
         List<WbsTreeContractTreeVOS> rootTreeNode = informationQueryService.queryContractTree(parentId, contractId, contractIdRelation, null);
         //查询被标记为首件的数据
         rootTreeNode = rootTreeNode.stream().filter(WbsTreeContractTreeVOS::getIsFirst).collect(Collectors.toList());
@@ -3905,7 +3905,7 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperationSupport(order = 29)
     @ApiOperation(value = "分页")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "ids", value = "ids", required = true)
+        @ApiImplicitParam(name = "ids", value = "ids", required = true)
     })
     public R<String> getQueryInfoIds(String ids) {
         List<String> strList = Func.toStrList(ids);
@@ -3954,15 +3954,10 @@ public class InformationWriteQueryController extends BladeController {
         }
         WbsTreeContract parentNode = wbsTreeContractClient.getContractNodeByPrimaryKeyId(dto.getPrimaryKeyId());
         if (parentNode != null) {
-            if(parentNode.getNodeClass()==Integer.valueOf(2)){
-                throw new ServiceException("当前新增节点的父节点不能是自定义数字化上传节点");
-            }
-            if(parentNode.getIsClassifition()==Integer.valueOf(1)){
-                throw new ServiceException("当前新增节点的父节点不能包含单元评定");
-            }
             if (parentNode.getNodeType() < parentNode.getNodeType()) {
                 throw new ServiceException("当前新增选择的节点类型不能大于父级节点类型");
             }
+
             WbsTreeContract obj = new WbsTreeContract();
             obj.setPKeyId(SnowFlakeUtil.getId());
             obj.setId(SnowFlakeUtil.getId());
@@ -3973,14 +3968,14 @@ public class InformationWriteQueryController extends BladeController {
             obj.setWbsId(parentNode.getWbsId());
             obj.setNodeName(dto.getNodeName());
             obj.setFullName(dto.getNodeName());
+
             if (ObjectUtil.isNotEmpty(parentNode.getNodeType())) {
                 if (parentNode.getParentId().equals(0L)) {
                     obj.setNodeType(1);
                 } else {
-                    obj.setNodeType(parentNode.getNodeType().equals(6) ? 6 : parentNode.getNodeType() + 1);
+                    obj.setNodeType(parentNode.getNodeType().equals(6) ? 6 : dto.getNodeType());
                 }
             }
-
             obj.setPartitionCode(dto.getPartitionCode());
             obj.setParentId(parentNode.getId());
             obj.setAncestors(parentNode.getAncestors() + "," + parentNode.getId());
@@ -4003,41 +3998,41 @@ public class InformationWriteQueryController extends BladeController {
                 obj.setTenantId(SecureUtil.getTenantId());
             }
 
-            if(dto.getNodeClass()==Integer.valueOf(2)){
-                if(dto.getIsClassifition()==1){
-                    if(parentNode.getNodeClass()==Integer.valueOf(2)){
+            if (dto.getNodeClass() == Integer.valueOf(2)) {
+                if (dto.getIsClassifition() == 1) {
+                    if (parentNode.getNodeClass() == Integer.valueOf(2)) {
                         throw new ServiceException("当前节点的父节点已经是数字化上传节点");
                     }
-                    if(ObjectUtil.isEmpty(dto.getClassName())){
+                    if (ObjectUtil.isEmpty(dto.getClassName())) {
                         throw new ServiceException("请选择标准分类");
-                    }else {
-                        if(ObjectUtil.isEmpty(dto.getUnitName())){
+                    } else {
+                        if (ObjectUtil.isEmpty(dto.getUnitName())) {
                             throw new ServiceException("请选择单元名称");
                         }
                     }
-                    if(ObjectUtil.isNotEmpty(dto.getClassName())&&ObjectUtil.isNotEmpty(dto.getUnitName())){
+                    if (ObjectUtil.isNotEmpty(dto.getClassName()) && ObjectUtil.isNotEmpty(dto.getUnitName())) {
                         obj.setClassName(dto.getClassName());
                         obj.setUnitName(dto.getUnitName());
                         obj.setIsClassifition(dto.getIsClassifition());
                         obj.setExcellentNum(dto.getExcellentNum());
                         obj.setUnitNum(dto.getUnitNum());
 
-                    }else {
+                    } else {
                         throw new ServiceException("标准分类或单元名称选择有误");
                     }
                 }
                 obj.setNodeClass(dto.getNodeClass());
-                if(ObjectUtil.isEmpty(dto.getDigitizeTime())){
+                if (ObjectUtil.isEmpty(dto.getDigitizeTime())) {
                     throw new ServiceException("请选择节点时间");
                 }
                 obj.setDigitizeTime(dto.getDigitizeTime());
             }
-            if (wbsTreeContractClient.saveBatch(Collections.singletonList(obj))) {
-                informationQueryService.delAsyncWbsTree(parentNode.getContractId());
-                return R.success("操作成功");
-            }
+                if (wbsTreeContractClient.saveBatch(Collections.singletonList(obj))) {
+                    informationQueryService.delAsyncWbsTree(parentNode.getContractId());
+                    return R.success("操作成功");
+                }
+
         }
         return R.fail("未获取到当前选择节点信息");
     }
-
 }

+ 21 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/InformationQueryClientImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.business.feignClient;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
@@ -120,5 +121,25 @@ public class InformationQueryClientImpl implements InformationQueryClient {
          System.out.println("1111");
     }
 
+    @Override
+    public void insert(InformationQuery iq) {
+       informationQueryMapper.insert(iq);
+    }
+
+    @Override
+    public InformationQuery getInfoByWbsId(Long wbsId) {
+        return informationQueryMapper.selectOne(new QueryWrapper<InformationQuery>().eq("wbs_id",wbsId));
+    }
+
+    @Override
+    public void update(InformationQuery iq) {
+        informationQueryMapper.updateById(iq);
+    }
+
+    @Override
+    public void delInformation(InformationQuery infoByWbsId) {
+        informationQueryMapper.deleteById(infoByWbsId);
+    }
+
 
 }

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

@@ -5,6 +5,7 @@ import org.springblade.core.cloud.feign.EnableBladeFeign;
 import org.springblade.core.launch.BladeApplication;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.cloud.client.SpringCloudApplication;
+
 import org.springframework.scheduling.annotation.EnableAsync;
 
 @EnableBladeFeign

+ 34 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -165,6 +165,8 @@ public class ExcelTabController extends BladeController {
     private final TaskClient taskClient;
 
 
+
+
     // 线程池
     @Resource(name = "taskExecutor1")
     private ThreadPoolExecutor executor;
@@ -3944,7 +3946,7 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "nodeId", value = "nodeId", required = true),
 
     })
-    public R addBussFile(@RequestParam("file") MultipartFile[] file, String nodeId,Integer type,Long contractId,Integer classify) {
+    public R addBussFile(@RequestParam("file") MultipartFile[] file, String nodeId,Integer type,Long contractId,Integer classify,BladeUser b) {
         List<TableFile> fileList = new ArrayList<>();
         if (file != null && file.length >= 1) {
             for (MultipartFile multipartFile : file) {
@@ -3958,7 +3960,7 @@ public class ExcelTabController extends BladeController {
                 tableFile.setContractId(contractId);
                 tableFile.setName(multipartFile.getOriginalFilename());
                 tableFile.setType(type); //10 代表附件
-                if(type==10||type==11||type==12){
+                if(type==10||type==11||type==12||type==20||type==21||type==22){
                 tableFile.setDomainPdfUrl(bladeFile1.getLink());
                 }
                 tableFile.setDomainUrl(bladeFile1.getLink());
@@ -3968,6 +3970,36 @@ public class ExcelTabController extends BladeController {
                 fileList.add(tableFile);
             }
             tableFileService.saveOrUpdateBatch(fileList);
+            String sql="SELECT * FROM m_wbs_tree_contract WHERE p_key_id="+nodeId;
+            WbsTreeContract wbsTreeContract = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+            if(ObjectUtil.isNotEmpty(wbsTreeContract.getNodeClass())){
+                if(wbsTreeContract.getNodeClass().equals(Integer.valueOf(2))){
+                InformationQuery iq= informationQueryClient.getInfoByWbsId(wbsTreeContract.getPKeyId());
+                if(iq==null){
+                    iq=new InformationQuery();
+                    iq.setId(SnowFlakeUtil.getId());
+                    iq.setName(wbsTreeContract.getNodeName());
+                    iq.setProjectId(Long.valueOf(wbsTreeContract.getProjectId()));
+                    iq.setContractId(Long.valueOf(wbsTreeContract.getContractId()));
+                    iq.setClassify(classify);
+                    iq.setWbsId(wbsTreeContract.getPKeyId());
+                    iq.setFileUserIdAndName(b.getUserId()+"-"+b.getUserName());
+                    iq.setType(1);
+                    iq.setSourceType(2);
+                    iq.setCreateUser(wbsTreeContract.getCreateUser());
+                    iq.setCreateTime(new Date());
+                    iq.setUpdateUser(b.getUserId());
+                    iq.setUpdateTime(new Date());
+                    iq.setStatus(2);
+                    iq.setIsDeleted(0);
+                    informationQueryClient.insert(iq);
+                }else {
+                    iq.setUpdateTime(new Date());
+                    iq.setUpdateUser(b.getUserId());
+                    informationQueryClient.update(iq);
+                }
+                }
+            }
             return R.data("操作成功");
         } else {
             return R.data("请上传pdf");

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

@@ -867,7 +867,7 @@ public class FormulaController {
 
     //评定汇总(2024-10-10之后) 水利评定
     @GetMapping("/newEvaluate")
-    public R<Object> newEvaluate(@NotNull(message = "tablePkeyId 不能为空") Long tablePkeyId) {
+    public R<Object> newEvaluate(@NotNull(message = "tablePkeyId 不能为空") Long tablePkeyId) throws Exception {
         return this.service.newEvaluate(tablePkeyId);
     }
 
@@ -877,6 +877,11 @@ public class FormulaController {
         return R.data(this.service.isWaterProject(projectId));
     }
 
+    //节点同步工序资料(JS107)
+    @GetMapping("/syncWorkDate")
+    public R<Object> syncWorkDate(@NotNull(message = "节点ID不能为空")Long nodeId){
+        return R.data(this.service.syncWorkDate(nodeId));
+    }
     /*根据p_key_id 获取各个元素的执行公式*/
     @GetMapping("/formulaForNode")
     public R<Object> formulaForNode(@NotNull Long pkeyId,String tableName,String elementName){

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

@@ -16,6 +16,7 @@
  */
 package org.springblade.manager.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -25,7 +26,9 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 
 import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
+import org.springblade.business.entity.InformationQuery;
 import org.springblade.business.entity.TrialSelfInspectionRecord;
+import org.springblade.business.feign.InformationQueryClient;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
@@ -69,6 +72,11 @@ public class TableFileController extends BladeController {
     private final IWbsTreeContractService wbsTreeContractService;
     private final IWbsTreePrivateService wbsTreePrivateService;
 
+    private final InformationQueryClient informationQueryClient;
+
+
+
+
     // excel 基本信息表
     private final IExcelTabService excelTabService;
 
@@ -83,7 +91,6 @@ public class TableFileController extends BladeController {
     public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) throws Exception {
         // 查出基本信息
         TableFile tableFile = tableFileService.getById(ids);
-
         // 删除数据
         tableFileService.delDataById(ids, null);
         //如果为节点附件,则不去做其他处理,只删除
@@ -116,6 +123,25 @@ public class TableFileController extends BladeController {
             }
             excelTabService.getBussPdfs(wbsTreeContractP.getPKeyId() + "", classfy, wbsTreeContract.getContractId(), wbsTreeContract.getProjectId());
         }
+        if (tableFile.getType() == 20 || tableFile.getType() == 21||tableFile.getType() == 22) {
+            //查询当前节点 如果是数字化节点 需要删除上报信息,变成未填报
+            List<TableFileVO> fileVOList = tableFileService.selectTableFileList1(Long.parseLong(tableFile.getTabId()));
+            // 该文本无附件
+            if (fileVOList == null || fileVOList.size() <= 0) {
+                UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.in("p_key_id", tableFile.getTabId());
+                updateWrapper.set("tab_file_type", 1);
+                wbsTreeContractService.update(updateWrapper);
+                WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(new QueryWrapper<WbsTreeContract>().eq("p_key_id", tableFile.getTabId()));
+                if(wbsTreeContract.getNodeClass().equals(Integer.valueOf(2))){
+                    InformationQuery infoByWbsId = informationQueryClient.getInfoByWbsId(Long.valueOf(tableFile.getTabId()));
+                    if(ObjectUtil.isNotEmpty(infoByWbsId)){
+                        String sql="DELETE FROM u_information_query WHERE id="+infoByWbsId.getId();
+                        jdbcTemplate.execute(sql);
+                    }
+                }
+            }
+        }
         return R.status(true);
     }
 

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TableFileMapper.java

@@ -49,4 +49,6 @@ public interface TableFileMapper extends BaseMapper<TableFile> {
     void delDataById(String id, Long recordId);
 
     List<TableFile> getAllFileByIds(@Param("ids") List<Long> ids,@Param("classify") Integer classify);
+
+    List<TableFileVO> selectTableFileList1(String pKid);
 }

+ 4 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TableFileMapper.xml

@@ -53,4 +53,8 @@
     <select id="selectTableFileListByTen" resultMap="TableFileVO">
         select *,domain_url as url from m_table_file where is_deleted = 0  and classify = #{classify} and type in (10,11,12) and tab_id = #{pKid}
     </select>
+
+    <select id="selectTableFileList1" resultMap="TableFileVO">
+        select *,domain_url as url from m_table_file where is_deleted = 0 and (type=20 or type=21 or type=22) and tab_id = #{pKid}
+    </select>
 </mapper>

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

@@ -96,6 +96,7 @@ public interface IFormulaService extends BaseService<Formula> {
     R<Object>formulasForNode(Long pkeyId,String tableName,String elementName);
     /**获取当前节点的所有元素单元格坐标,可以按表和元素名筛选*/
     R<Object>analyzeForm(Long pkeyId,String elementName,Integer type);
-
+    /** 节点同步工序资料*/
+    R<Object> syncWorkDate(@NotNull(message = "节点ID不能为空") Long nodeId);
 
 }

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

@@ -49,4 +49,5 @@ public interface ITableFileService extends IService<TableFile> {
 
     List<TableFileVO> selectTableFileListByTen(Long pKid,Integer classify);
 
+    List<TableFileVO> selectTableFileList1(Long pKid);
 }

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -76,4 +76,6 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
     List<APIWbsContractNodeHzrcVo> apiTreeNodeHzrc(String contractId,Integer classType);
 
     List<ArchiveSyncWbsVO> getContractAllNode(Long contractId);
+
+
 }

+ 283 - 216
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -12,7 +12,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jfireel.expression.Expression;
 import com.mixsmart.utils.*;
-import jdk.nashorn.internal.ir.WhileNode;
 import lombok.RequiredArgsConstructor;
 import org.apache.poi.ss.usermodel.*;
 import org.jsoup.Jsoup;
@@ -31,6 +30,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.entity.EvaluateDate;
 import org.springblade.manager.enums.ExecuteType;
 import org.springblade.manager.formula.*;
 import org.springblade.manager.formula.impl.*;
@@ -52,6 +52,10 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.annotation.Transactional;
+
+
 import javax.validation.constraints.NotNull;
 import java.io.File;
 import java.io.FileInputStream;
@@ -80,6 +84,7 @@ import java.util.stream.Stream;
 @RequiredArgsConstructor
 @Lazy
 public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula> implements IFormulaService {
+
         private final IWbsParamService wpService;
         private final FormulaStrategyFactory formulaStrategyFactory;
         private final IWbsTreeContractService wbsTreeContractService;
@@ -94,12 +99,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         private final WbsTreeContractMapper wbsTreeContractMapper;
         private final IFormulaDao formulaDao;
         private final CertificateItemClient certificateItemClient;
-        @Autowired
         @Lazy
-        private   IExcelTabService  excelTabService;
-
-
-
+        @Autowired
+        private IExcelTabService excelTabService;
         public final static String WP="WP";
         public final static String CHAIN="trees";
         public final static String FC="FC.";
@@ -1987,6 +1989,67 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         return null;
     }
 
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R<Object> syncWorkDate(Long nodeId) {
+       Boolean b=false;
+       //先查找当前节点的表格,有JS107就删除
+        String nodeSql="SELECT * from m_wbs_tree_contract WHERE is_deleted=0 and p_key_id="+nodeId;
+        WbsTreeContract wbsTreeContract2 = jdbcTemplate.queryForObject(nodeSql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+        String sql="SELECT * from m_wbs_tree_contract WHERE is_deleted=0 and parent_id="+wbsTreeContract2.getId()+" AND contract_id="+wbsTreeContract2.getContractId()+" AND project_id="+wbsTreeContract2.getProjectId();
+        List<WbsTreeContract> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+        if(list.size()>0){
+            for (WbsTreeContract wbsTreeContract1 : list) {
+                if(wbsTreeContract1.getNodeName().indexOf("JS107")>=0){
+                    //逻辑删除
+                    String delete="Update m_wbs_tree_contract SET is_deleted=1 where p_key_id="+wbsTreeContract1.getPKeyId();
+                    jdbcTemplate.update(delete);
+                }
+            }
+        }
+        //查找父节点下所有的表单,如果有JS107及复制表,就复制到当前节点下
+        String fatherNodeSql="SELECT * FROM m_wbs_tree_contract WHERE id="+wbsTreeContract2.getParentId()+" AND is_deleted=0"+" AND contract_id="+wbsTreeContract2.getContractId()+" AND project_id="+wbsTreeContract2.getProjectId();
+        WbsTreeContract fatherNode = jdbcTemplate.queryForObject(fatherNodeSql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+        List <WbsTreeContract>list1=new ArrayList<>();
+        getAllChildNodes(fatherNode, list1);
+        if(list1.size()>0){
+            int i=0;
+            for (WbsTreeContract treeContract : list1) {
+                    long tabGroupId = SnowFlakeUtil.getId();
+                    long newPkId = SnowFlakeUtil.getId();
+                    WbsTreeContract wbsTreeContract = new WbsTreeContract();
+                    BeanUtil.copy(treeContract, wbsTreeContract);
+                    wbsTreeContract.setNodeName(treeContract.getNodeName());
+                    wbsTreeContract.setPKeyId(newPkId);
+                    wbsTreeContract.setCreateTime(new Date());
+                    wbsTreeContract.setTabGroupId(tabGroupId);
+                    wbsTreeContract.setParentId(wbsTreeContract2.getId());
+                    wbsTreeContract.setIsCopeTab(2);
+                    wbsTreeContract.setIsTabPdf(1); // pdf 不能预览
+                    wbsTreeContract.setIsBussShow(1); // 是否隐藏表
+                    wbsTreeContract.setTabFileType(1);//没有上传附件
+                    wbsTreeContract.setPdfUrl("");
+                    String tabName = wbsTreeContract.getInitTableName();
+                    // 字段查询 并去掉公式字段
+                    String colkeys = "SELECT GROUP_CONCAT(COLUMN_NAME) as colkeys from information_schema.COLUMNS c where c.table_name='" + tabName + "' and COLUMN_NAME not in('id','p_key_id')";
+                    Map<String, Object> stringObjectMap = jdbcTemplate.queryForMap(colkeys);
+                    colkeys = stringObjectMap.get("colkeys") + "";
+                    // 复制表数据
+                    String querySql = "insert into " + tabName + " (id,p_key_id," + colkeys + ") select '" + newPkId + "','" + newPkId + "'," + colkeys + " from " + tabName + " where p_key_id=" + treeContract.getPKeyId();
+                    jdbcTemplate.execute(querySql);
+                    wbsTreeContractService.save(wbsTreeContract);
+                    i++;
+                    b=true;
+            }
+        }
+        if(!b){
+            return R.data("请检查工序节点中是否包含JS107表");
+        }else {
+            return R.data("同步成功");
+        }
+    }
+
     @Override
     public void formulaInto(List<FormData> curFormDatas, String projectId, String nodeId, ExecuteType executeType) {
         if(executeType.equals(ExecuteType.INSPECTION)){
@@ -3387,7 +3450,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     //递归查询 子节点
     private List<WbsTreeContract> getAllChildNodes(WbsTreeContract fatherNode,List<WbsTreeContract>childrenNodes) {
 
-        String sql="SELECT * FROM m_wbs_tree_contract WHERE parent_id="+fatherNode.getId()+" AND is_deleted=0";
+        String sql="SELECT * FROM m_wbs_tree_contract WHERE parent_id="+fatherNode.getId()+" AND is_deleted=0 AND project_id="+fatherNode.getProjectId()+" AND contract_id="+fatherNode.getContractId();
         List<WbsTreeContract> childs = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
         if(childs.size()>0){
             childrenNodes.addAll(childs);
@@ -3415,105 +3478,116 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         return false;
     }
 
-    public R<Object> newEvaluate(Long tablePkeyId) {
+    @Transactional(rollbackFor = Exception.class)
+    public R<Object> newEvaluate(Long tablePkeyId) throws Exception {
         //先根据表单查出节点 然后查出父节点
-        if(StringUtils.isNumber(tablePkeyId)){
-             String queryParentNodeID="SELECT * from m_wbs_tree_contract WHERE p_key_id="+tablePkeyId;
-             WbsTreeContract wbsTreeContract1= jdbcTemplate.queryForObject(queryParentNodeID, new BeanPropertyRowMapper<>(WbsTreeContract.class));
-             if(ObjectUtil.isEmpty(wbsTreeContract1)){
-                 return R.fail("表单不存在");
-             }
-             if(wbsTreeContract1.getIsCopeTab()==Integer.valueOf(2)){
-                 return R.fail("该表不能评定汇总");
-             }
-             try {
-                 String biaodan="SELECT id from "+wbsTreeContract1.getInitTableName()+" where p_key_id="+wbsTreeContract1.getPKeyId();
-                 Long l = jdbcTemplate.queryForObject(biaodan, Long.class);
-             }catch (EmptyResultDataAccessException e){
-                 return R.fail("请先保存本表后再评定汇总");
-             }
-
-            String queryParentNode="SELECT * FROM m_wbs_tree_contract WHERE id="+wbsTreeContract1.getParentId();
+        if (StringUtils.isNumber(tablePkeyId)) {
+            String queryParentNodeID = "SELECT * from m_wbs_tree_contract WHERE p_key_id=" + tablePkeyId;
+            WbsTreeContract wbsTreeContract1 = jdbcTemplate.queryForObject(queryParentNodeID, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+            if (ObjectUtil.isEmpty(wbsTreeContract1)) {
+                return R.fail("表单不存在");
+            }
+            if (wbsTreeContract1.getIsCopeTab() == Integer.valueOf(2)) {
+                return R.fail("该表不能评定汇总");
+            }
+            try {
+                String biaodan = "SELECT id from " + wbsTreeContract1.getInitTableName() + " where p_key_id=" + wbsTreeContract1.getPKeyId();
+                Long l = jdbcTemplate.queryForObject(biaodan, Long.class);
+            } catch (EmptyResultDataAccessException e) {
+                return R.fail("请先保存本表后再评定汇总");
+            }
+            String queryParentNode = "SELECT * FROM m_wbs_tree_contract WHERE id=" + wbsTreeContract1.getParentId()+" and is_deleted=0 and project_id="+wbsTreeContract1.getProjectId()+" and contract_id="+wbsTreeContract1.getContractId();
             WbsTreeContract wbsTreeContract = jdbcTemplate.queryForObject(queryParentNode, new BeanPropertyRowMapper<>(WbsTreeContract.class));
-            if(ObjectUtil.isEmpty(wbsTreeContract)){
+            if (ObjectUtil.isEmpty(wbsTreeContract)) {
                 return R.fail("节点不存在");
-            }else {
-                if(!wbsTreeContract.getNodeName().contains("评定")){
+            } else {
+                if (!wbsTreeContract.getNodeName().contains("评定")) {
                     return R.fail("该节点不能评定");
                 }
             }
-            String queryProjectInfo="SELECT project_grade FROM m_project_info WHERE id="+wbsTreeContract.getProjectId();
+            String queryProjectInfo = "SELECT project_grade FROM m_project_info WHERE id=" + wbsTreeContract.getProjectId();
             String projectGrade = jdbcTemplate.queryForObject(queryProjectInfo, String.class);
-            if(StringUtils.isEmpty(projectGrade)){
+            if (StringUtils.isEmpty(projectGrade)) {
                 return R.fail("该项目不为水利项目");
-            }else {
-                if(!projectGrade.equals("6")){
+            } else {
+                if (!projectGrade.equals("6")) {
                     return R.fail("该项目不为水利项目");
                 }
             }
             //如果已评定并且有复制表,先删除所有的复制表
-            String queryNode="SELECT * from m_wbs_tree_contract where parent_id="+wbsTreeContract1.getParentId();
+            String queryNode = "SELECT * from m_wbs_tree_contract where parent_id=" + wbsTreeContract1.getParentId();
             List<WbsTreeContract> queryNodes = jdbcTemplate.query(queryNode, new BeanPropertyRowMapper<>(WbsTreeContract.class));
-            if(queryNodes.size()>1){
+            if (queryNodes.size() > 1) {
                 for (WbsTreeContract node : queryNodes) {
-                    if(node.getNodeName().indexOf(wbsTreeContract1.getNodeName()+"_")>=0){
+                    if (node.getNodeName().indexOf(wbsTreeContract1.getNodeName() + "_") >= 0) {
                         excelTabService.removeBussTabInfoById(node.getPKeyId().toString());
                     }
                 }
             }
             //查询当前节点的父节点
-            String queryFatherNodes="SELECT * from m_wbs_tree_contract where id="+wbsTreeContract.getParentId();
+            String queryFatherNodes = "SELECT * from m_wbs_tree_contract where id=" + wbsTreeContract.getParentId();
             WbsTreeContract fatherNode = jdbcTemplate.queryForObject(queryFatherNodes, new BeanPropertyRowMapper<>(WbsTreeContract.class));
             //当前节点的父节点所有的子节点
-            List<WbsTreeContract> childrenNodes=new ArrayList<>();
-             childrenNodes = getAllChildNodes(fatherNode,childrenNodes);
-            List<WbsTreeContract> list=new ArrayList<>();
+            List<WbsTreeContract> childrenNodes = new ArrayList<>();
+            childrenNodes = getAllChildNodes(fatherNode, childrenNodes);
+            List<WbsTreeContract> list = new ArrayList<>();
             //筛选出所有包含单元评定的节点
-            if(childrenNodes.size()>0){
+            if (childrenNodes.size() > 0) {
                 for (WbsTreeContract childrenNode : childrenNodes) {
-                    if(ObjectUtil.isNotEmpty(childrenNode.getIsClassifition())){
-                        if(childrenNode.getIsClassifition()==Integer.valueOf(1)){
-                            list.add(childrenNode);
+                    if (ObjectUtil.isNotEmpty(childrenNode.getIsClassifition())) {
+                        if (childrenNode.getIsClassifition() == Integer.valueOf(1)) {
+                            Integer status;
+                            //判断状态是否是已审批
+                            String infomationSql = "SELECT status FROM u_information_query where wbs_id=" + childrenNode.getPKeyId();
+                            try {
+                                status = jdbcTemplate.queryForObject(infomationSql, Integer.class);
+                            } catch (Exception e) {
+                                continue;
+                            }
+                            if (status == Integer.valueOf(2)) {
+                                list.add(childrenNode);
+                            }
                         }
                     }
                 }
             }
-            if(list.size()==0){
+            if (list.size() == 0) {
                 return R.success("成功");
             }
             //单元工程种类  <单元名称,个数>
-            Map<String,Integer> maps=new HashMap<>();
+            Map<String, Integer> maps = new HashMap<>();
             for (WbsTreeContract treeContract : list) {
                 String unitName = findUnitName(treeContract.getUnitName());
                 //如果包含单元名称就在原来的数量上加1,同时判断如果是自定义的节点就加自定义节点的单元数量
-                if(maps.containsKey(unitName)){
-                    if(treeContract.getNodeClass()==Integer.valueOf(2)){
-                        if(ObjectUtil.isNotEmpty(treeContract.getUnitNum())){
-                            maps.put(unitName,maps.get(unitName)+treeContract.getUnitNum());
+                if (maps.containsKey(unitName)) {
+                    if (treeContract.getNodeClass() == Integer.valueOf(2)) {
+                        if (ObjectUtil.isNotEmpty(treeContract.getUnitNum())) {
+                            maps.put(unitName, maps.get(unitName) + treeContract.getUnitNum());
                         }
 
-                    }else {
-                        maps.put(unitName,maps.get(unitName)+1);
+                    } else {
+                        maps.put(unitName, maps.get(unitName) + 1);
                     }
-                }else {
-                //不包含就放进map 同时判断是否是自定义的节点
-                    if(treeContract.getNodeClass()==Integer.valueOf(2)){
-                     if(ObjectUtil.isNotEmpty(treeContract.getUnitNum())){
-                         maps.put(unitName,treeContract.getUnitNum());
-                     }
-                    }else{
-                     maps.put(unitName, 1);
+                } else {
+                    //不包含就放进map 同时判断是否是自定义的节点
+                    if (treeContract.getNodeClass() == Integer.valueOf(2)) {
+                        if (ObjectUtil.isNotEmpty(treeContract.getUnitNum())) {
+                            maps.put(unitName, treeContract.getUnitNum());
+                        }
+                    } else {
+                        maps.put(unitName, 1);
                     }
                 }
+
             }
             //筛选出自定义数字化节点包含单元评定的节点
-            List<WbsTreeContract>list1=new ArrayList<>();
-            for (WbsTreeContract childrenNode : childrenNodes) {
-                if(childrenNode.getStatus()==Integer.valueOf(1)){
-                    if(ObjectUtil.isNotEmpty(childrenNode.getNodeClass())){
-                        if(childrenNode.getNodeClass()==Integer.valueOf(2)){
-                            if(ObjectUtil.isNotEmpty(childrenNode.getIsClassifition())){
-                                if(childrenNode.getIsClassifition()==Integer.valueOf(1)){
+            List<WbsTreeContract> list1 = new ArrayList<>();
+            for (WbsTreeContract childrenNode : list) {
+                if (childrenNode.getStatus() == Integer.valueOf(1)) {
+                    if (ObjectUtil.isNotEmpty(childrenNode.getNodeClass())) {
+                        if (childrenNode.getNodeClass() == Integer.valueOf(2)) {
+                            if (ObjectUtil.isNotEmpty(childrenNode.getIsClassifition())) {
+                                if (childrenNode.getIsClassifition() == Integer.valueOf(1)) {
                                     list1.add(childrenNode);
                                 }
                             }
@@ -3521,72 +3595,76 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     }
                 }
             }
-
             //自定义数字化节点 <单元名称,优良个数>
-            Map<String,Integer>maps1=new HashMap<>();
-            if(list1.size()>0){
+            Map<String, Integer> maps1 = new HashMap<>();
+            if (list1.size() > 0) {
                 for (WbsTreeContract treeContract : list1) {
                     String unitName = findUnitName(treeContract.getUnitName());
-                    if(maps1.containsKey(unitName)){
-                        maps1.put(unitName,maps1.get(unitName)+treeContract.getExcellentNum());
-                    }else {
-                        maps1.put(unitName,treeContract.getExcellentNum());
+                    if (maps1.containsKey(unitName)) {
+                        maps1.put(unitName, maps1.get(unitName) + treeContract.getExcellentNum());
+                    } else {
+                        maps1.put(unitName, treeContract.getExcellentNum());
                     }
                 }
             }
             //水利工程 拿到除了自定义数字化上传节点以外的其他所有节点的表单
-            List<WbsTreeContract>list2=new ArrayList<>();
-            for (WbsTreeContract childrenNode : childrenNodes) {
-                if(childrenNode.getStatus()==Integer.valueOf(1)){
-                    if(ObjectUtil.isNotEmpty(childrenNode.getInitTableName())){
-                        //判断表单父节点是否是自定义数字化节点
-                        if(!findFatherNode(childrenNode.getParentId())){
-                            list2.add(childrenNode);
-                        }
-                    }
+            List<WbsTreeContract> list2 = new ArrayList<>();
+            for (WbsTreeContract childrenNode : list) {
+                if (childrenNode.getNodeClass() != Integer.valueOf(2)) {
+                            String sql="SELECT * from m_wbs_tree_contract where parent_id="+childrenNode.getId()+" and is_deleted=0 and project_id="+childrenNode.getProjectId()+" and contract_id="+childrenNode.getContractId();
+                            List<WbsTreeContract> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+                            if(query.size()>0){
+                                for (WbsTreeContract treeContract : query) {
+                                    if(treeContract.getInitTableName()!=null){
+                                        list2.add(treeContract);
+                                    }
+                                }
+                            }
                 }
             }
 
             //拿到所有水利工程的表单,去循环查找表单中的元素,包含了评定等级的个数
-            Map<String,Integer>maps2=new HashMap<>();
-            if(list2.size()>0){
+            Map<String, Integer> maps2 = new HashMap<>();
+            if (list2.size() > 0) {
                 for (WbsTreeContract treeContract : list2) {
-                    String tableInfoSql="SELECT id from m_table_info Where tab_en_name="+ "'"+treeContract.getInitTableName()+"'";
-                    Long id =null;
+                    String tableInfoSql = "SELECT id from m_table_info Where tab_en_name=" + "'" + treeContract.getInitTableName() + "'";
+                    Long id = null;
                     try {
-                       id=jdbcTemplate.queryForObject(tableInfoSql, Long.class);
-                    }catch (Exception e){
+                        id = jdbcTemplate.queryForObject(tableInfoSql, Long.class);
+                    } catch (Exception e) {
                         continue;
                     }
-                    String elementSql="SELECT * from m_wbs_form_element where f_id="+id;
+                    String elementSql = "SELECT * from m_wbs_form_element where f_id=" + id;
                     List<WbsFormElement> elements = jdbcTemplate.query(elementSql, new BeanPropertyRowMapper<>(WbsFormElement.class));
-                    List<String>keys=new ArrayList<>();
+                    List<String> keys = new ArrayList<>();
                     //筛选出所有表单配置了评定等级的key
-                    if(elements!=null&&elements.size()>0){
+                    if (elements != null && elements.size() > 0) {
                         for (WbsFormElement element : elements) {
-                            if(element.getDynamicDict()==Integer.valueOf(600)){
+                            if (element.getDynamicDict().equals(Integer.valueOf(600))) {
                                 keys.add(element.getEKey());
                             }
                         }
                     }
-                    if(keys!=null&&keys.size()>0){
+                    if (keys != null && keys.size() > 0) {
                         //将拿到的key 去表单中查找元素 优良个数
-                        String querySql = "select * from " + wbsTreeContract.getInitTableName() + " where p_key_id=" + treeContract.getPKeyId();
+                        String querySql = "select * from "+ treeContract.getInitTableName() +" where p_key_id="+treeContract.getPKeyId();
+                        System.out.println(treeContract.getPKeyId());
+                        System.out.println(querySql);
                         List<Map<String, Object>> dataIn = jdbcTemplate.queryForList(querySql);
-                        if(dataIn != null && dataIn.size() >= 1){
+                        if (dataIn != null && dataIn.size() >= 1) {
                             Map<String, Object> mysqlData = dataIn.get(0);
                             for (String key : mysqlData.keySet()) {
                                 for (String s : keys) {
-                                    if(s.equals(key)){
+                                    if (s.equals(key)) {
                                         String tabVal = mysqlData.get(key) + "";
-                                        if(tabVal.indexOf("优良")>=0){
-                                            String sql="Select unit_name from m_wbs_tree_contract where id="+treeContract.getParentId();
+                                        if (tabVal.indexOf("优良") >= 0) {
+                                            String sql = "Select unit_name from m_wbs_tree_contract where id=" + treeContract.getParentId();
                                             Integer unitName = jdbcTemplate.queryForObject(sql, Integer.class);
                                             String unitName1 = findUnitName(unitName);
-                                            if(maps2.containsKey(unitName1)){
-                                                maps2.put(unitName1,maps2.get(unitName1)+1);
-                                            }else {
-                                                maps2.put(unitName1,1);
+                                            if (maps2.containsKey(unitName1)) {
+                                                maps2.put(unitName1, maps2.get(unitName1) + 1);
+                                            } else {
+                                                maps2.put(unitName1, 1);
                                             }
                                         }
                                     }
@@ -3598,18 +3676,18 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             }
             // 合并两个Map <单元名称,优良个数>
             Map<String, Integer> result = mergeMaps(maps1, maps2);
-            List<EvaluateDate> evaluateDates=new ArrayList<>();
-            for(String unitName:maps.keySet()){
+            List<EvaluateDate> evaluateDates = new ArrayList<>();
+            for (String unitName : maps.keySet()) {
                 EvaluateDate e = new EvaluateDate();
                 e.setUnitName(unitName);
                 e.setUnitNum(maps.get(unitName));
                 e.setQualifiedNum(maps.get(unitName));
                 evaluateDates.add(e);
             }
-            if(evaluateDates.size()>0){
+            if (evaluateDates.size() > 0) {
                 for (EvaluateDate evaluateDate : evaluateDates) {
                     for (String unitName : result.keySet()) {
-                        if(unitName.equals(evaluateDate.getUnitName())){
+                        if (unitName.equals(evaluateDate.getUnitName())) {
                             evaluateDate.setExcellentNum(result.get(unitName));
                         }
                     }
@@ -3624,11 +3702,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 Elements qualifiedNums = doc.select("el-input[placeholder~=合格个数]");
                 Elements excellentNums = doc.select("el-input[placeholder~=其中优良个数]");
 
-                Map<String, Object> reData=new HashMap<>();
-                List<String[]>unitNamesString=new ArrayList<>();
-                List<String[]>unitNumsString=new ArrayList<>();
-                List<String[]>qualifiedNumsString=new ArrayList<>();
-                List<String[]>excellentNumString=new ArrayList<>();
+                Map<String, Object> reData = new HashMap<>();
+                List<String[]> unitNamesString = new ArrayList<>();
+                List<String[]> unitNumsString = new ArrayList<>();
+                List<String[]> qualifiedNumsString = new ArrayList<>();
+                List<String[]> excellentNumString = new ArrayList<>();
                 for (Element unitName : unitNames) {
                     String keyName = unitName.attr("keyName");
                     String[] s = keyName.split("__");
@@ -3649,103 +3727,103 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     String[] s = keyName.split("__");
                     excellentNumString.add(s);
                 }
-                StringBuilder unitNameResult= new StringBuilder();
-                StringBuilder unitNumResult= new StringBuilder();
-                StringBuilder qualifiedNumResult= new StringBuilder();
-                StringBuilder excellentNumResult= new StringBuilder();
-                    for(int i=0;i<evaluateDates.size();i++){
-                        if(i>=8){
-                            break;
-                        }
-                        String[] strings1 = unitNamesString.get(i);
-                        unitNameResult.append("☆").append(evaluateDates.get(i).getUnitName()).append("_^_").append(strings1[1]);
-                        String[] strings2=unitNumsString.get(i);
-                        unitNumResult.append("☆").append(evaluateDates.get(i).getUnitNum()).append("_^_").append(strings2[1]);
-                        String[] strings3=qualifiedNumsString.get(i);
-                        qualifiedNumResult.append("☆").append(evaluateDates.get(i).getQualifiedNum()).append("_^_").append(strings3[1]);
-                        String[] strings4=excellentNumString.get(i);
-                        if(ObjectUtil.isNotEmpty(evaluateDates.get(i).getExcellentNum())){
-                            excellentNumResult.append("☆").append(evaluateDates.get(i).getExcellentNum()).append("_^_").append(strings4[1]);
-                        }
-                    }
-                    String[] strings1 = unitNamesString.get(0);
-                    String[] strings2=unitNumsString.get(0);
-                    String[] strings3=qualifiedNumsString.get(0);
-                    String[] strings4=excellentNumString.get(0);
-                    unitNameResult.deleteCharAt(0);
-                    unitNumResult.deleteCharAt(0);
-                    qualifiedNumResult.deleteCharAt(0);
-                    if(ObjectUtil.isNotEmpty(excellentNumResult)){
-                        excellentNumResult.deleteCharAt(0);
+                StringBuilder unitNameResult = new StringBuilder();
+                StringBuilder unitNumResult = new StringBuilder();
+                StringBuilder qualifiedNumResult = new StringBuilder();
+                StringBuilder excellentNumResult = new StringBuilder();
+                for (int i = 0; i < evaluateDates.size(); i++) {
+                    if (i >= 8) {
+                        break;
                     }
-                    reData.put(strings1[0],unitNameResult);
-                    reData.put(strings2[0],unitNumResult);
-                    reData.put(strings3[0],qualifiedNumResult);
-                    if(excellentNumResult.length()>0){
-                        reData.put(strings4[0],excellentNumResult);
+                    String[] strings1 = unitNamesString.get(i);
+                    unitNameResult.append("☆").append(evaluateDates.get(i).getUnitName()).append("_^_").append(strings1[1]);
+                    String[] strings2 = unitNumsString.get(i);
+                    unitNumResult.append("☆").append(evaluateDates.get(i).getUnitNum()).append("_^_").append(strings2[1]);
+                    String[] strings3 = qualifiedNumsString.get(i);
+                    qualifiedNumResult.append("☆").append(evaluateDates.get(i).getQualifiedNum()).append("_^_").append(strings3[1]);
+                    String[] strings4 = excellentNumString.get(i);
+                    if (ObjectUtil.isNotEmpty(evaluateDates.get(i).getExcellentNum())) {
+                        excellentNumResult.append("☆").append(evaluateDates.get(i).getExcellentNum()).append("_^_").append(strings4[1]);
                     }
-
-                  for (String key : reData.keySet()) {
-                    String sql1="Update "+wbsTreeContract1.getInitTableName()+" SET "+key+"="+ "'"+reData.get(key)+"'"+" WHERE p_key_id="+wbsTreeContract1.getPKeyId();
+                }
+                String[] strings1 = unitNamesString.get(0);
+                String[] strings2 = unitNumsString.get(0);
+                String[] strings3 = qualifiedNumsString.get(0);
+                String[] strings4 = excellentNumString.get(0);
+                unitNameResult.deleteCharAt(0);
+                unitNumResult.deleteCharAt(0);
+                qualifiedNumResult.deleteCharAt(0);
+                if (ObjectUtil.isNotEmpty(excellentNumResult)) {
+                    excellentNumResult.deleteCharAt(0);
+                }
+                reData.put(strings1[0], unitNameResult);
+                reData.put(strings2[0], unitNumResult);
+                reData.put(strings3[0], qualifiedNumResult);
+                if (excellentNumResult.length() > 0) {
+                    reData.put(strings4[0], excellentNumResult);
+                }
+
+                for (String key : reData.keySet()) {
+                    String sql1 = "Update " + wbsTreeContract1.getInitTableName() + " SET " + key + "=" + "'" + reData.get(key) + "'" + " WHERE p_key_id=" + wbsTreeContract1.getPKeyId();
                     jdbcTemplate.update(sql1);
-                  }
-                  if(evaluateDates.size()<=8){
-                      return R.success("成功");
-                  }else {
-                      int j;
-                      if(evaluateDates.size()%8==0){
-                          j=evaluateDates.size()/8;
-                      }else {
-                          j=evaluateDates.size()/8+1;
-                      }
-                      j=j-1;
-                      for (int x=0;x<j;x++){
-                          WbsTreeContract wbsTreeContract2 = this.copeBussTab(wbsTreeContract1.getPKeyId());
-                          evaluateDates.subList(0, 8).clear();
-                          unitNameResult. setLength(0);
-                          unitNumResult.setLength(0);
-                          qualifiedNumResult.setLength(0);
-                          if(ObjectUtil.isNotEmpty(excellentNumResult)){
-                              excellentNumResult.setLength(0);
-                          }
-                          for(int i=0;i<evaluateDates.size();i++){
-                              if(i>=8){
-                                  break;
-                              }
-                              String[] strings11 = unitNamesString.get(i);
-                              unitNameResult.append("☆").append(evaluateDates.get(i).getUnitName()).append("_^_").append(strings11[1]);
-                              String[] strings22=unitNumsString.get(i);
-                              unitNumResult.append("☆").append(evaluateDates.get(i).getUnitNum()).append("_^_").append(strings22[1]);
-                              String[] strings33=qualifiedNumsString.get(i);
-                              qualifiedNumResult.append("☆").append(evaluateDates.get(i).getQualifiedNum()).append("_^_").append(strings33[1]);
-                              String[] strings44=excellentNumString.get(i);
-                              if(ObjectUtil.isNotEmpty(evaluateDates.get(i).getExcellentNum())){
-                                  excellentNumResult.append("☆").append(evaluateDates.get(i).getExcellentNum()).append("_^_").append(strings44[1]);
-                              }
-                          }
-                          String[] strings11 = unitNamesString.get(0);
-                          String[] strings22=unitNumsString.get(0);
-                          String[] strings33=qualifiedNumsString.get(0);
-                          String[] strings44=excellentNumString.get(0);
-                          unitNameResult.deleteCharAt(0);
-                          unitNumResult.deleteCharAt(0);
-                          qualifiedNumResult.deleteCharAt(0);
-                          if(ObjectUtil.isNotEmpty(excellentNumResult)){
-                              excellentNumResult.deleteCharAt(0);
-                          }
-                          reData.put(strings11[0],unitNameResult);
-                          reData.put(strings22[0],unitNumResult);
-                          reData.put(strings33[0],qualifiedNumResult);
-                          if(excellentNumResult.length()>0){
-                              reData.put(strings44[0],excellentNumResult);
-                          }
-                          for (String key : reData.keySet()) {
-                              String sql1="Update "+wbsTreeContract2.getInitTableName()+" SET "+key+"="+ "'"+reData.get(key)+"'"+" WHERE p_key_id="+wbsTreeContract2.getPKeyId();
-                              jdbcTemplate.update(sql1);
-                          }
-                      }
-                      return R.success("成功");
-                  }
+                }
+                if (evaluateDates.size() <= 8) {
+                    return R.success("成功");
+                } else {
+                    int j;
+                    if (evaluateDates.size() % 8 == 0) {
+                        j = evaluateDates.size() / 8;
+                    } else {
+                        j = evaluateDates.size() / 8 + 1;
+                    }
+                    j = j - 1;
+                    for (int x = 0; x < j; x++) {
+                        WbsTreeContract wbsTreeContract2 = this.copeBussTab(wbsTreeContract1.getPKeyId());
+                        evaluateDates.subList(0, 8).clear();
+                        unitNameResult.setLength(0);
+                        unitNumResult.setLength(0);
+                        qualifiedNumResult.setLength(0);
+                        if (ObjectUtil.isNotEmpty(excellentNumResult)) {
+                            excellentNumResult.setLength(0);
+                        }
+                        for (int i = 0; i < evaluateDates.size(); i++) {
+                            if (i >= 8) {
+                                break;
+                            }
+                            String[] strings11 = unitNamesString.get(i);
+                            unitNameResult.append("☆").append(evaluateDates.get(i).getUnitName()).append("_^_").append(strings11[1]);
+                            String[] strings22 = unitNumsString.get(i);
+                            unitNumResult.append("☆").append(evaluateDates.get(i).getUnitNum()).append("_^_").append(strings22[1]);
+                            String[] strings33 = qualifiedNumsString.get(i);
+                            qualifiedNumResult.append("☆").append(evaluateDates.get(i).getQualifiedNum()).append("_^_").append(strings33[1]);
+                            String[] strings44 = excellentNumString.get(i);
+                            if (ObjectUtil.isNotEmpty(evaluateDates.get(i).getExcellentNum())) {
+                                excellentNumResult.append("☆").append(evaluateDates.get(i).getExcellentNum()).append("_^_").append(strings44[1]);
+                            }
+                        }
+                        String[] strings11 = unitNamesString.get(0);
+                        String[] strings22 = unitNumsString.get(0);
+                        String[] strings33 = qualifiedNumsString.get(0);
+                        String[] strings44 = excellentNumString.get(0);
+                        unitNameResult.deleteCharAt(0);
+                        unitNumResult.deleteCharAt(0);
+                        qualifiedNumResult.deleteCharAt(0);
+                        if (ObjectUtil.isNotEmpty(excellentNumResult)) {
+                            excellentNumResult.deleteCharAt(0);
+                        }
+                        reData.put(strings11[0], unitNameResult);
+                        reData.put(strings22[0], unitNumResult);
+                        reData.put(strings33[0], qualifiedNumResult);
+                        if (excellentNumResult.length() > 0) {
+                            reData.put(strings44[0], excellentNumResult);
+                        }
+                        for (String key : reData.keySet()) {
+                            String sql1="Update "+wbsTreeContract2.getInitTableName()+" SET "+key+"="+ "'"+reData.get(key)+"'"+" WHERE p_key_id="+wbsTreeContract2.getPKeyId();
+                            jdbcTemplate.update(sql1);
+                        }
+                    }
+                    return R.success("成功");
+                }
 
             }catch (Exception e){
                 e.printStackTrace();
@@ -3753,7 +3831,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         }
         return R.fail("失败");
     }
-
     public Map<String, Integer> mergeMaps(Map<String, Integer> map1, Map<String, Integer> map2) {
         Map<String, Integer> result = new HashMap<>();
 
@@ -3842,13 +3919,3 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         return wbsTreeContract;
     }
 }
-
-
-
-
-
-
-
-
-
-

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TableFileServiceImpl.java

@@ -24,6 +24,7 @@ import org.springblade.manager.service.ITableFileService;
 import org.springblade.manager.vo.TableFileVO;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -59,4 +60,9 @@ public class TableFileServiceImpl extends ServiceImpl<TableFileMapper, TableFile
     public List<TableFileVO> selectTableFileListByTen(Long pKid,Integer classify) {
         return baseMapper.selectTableFileListByTen(pKid + "",classify);
     }
+
+    @Override
+    public List<TableFileVO> selectTableFileList1(Long pKid) {
+        return baseMapper.selectTableFileList1(pKid+"");
+    }
 }

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

@@ -48,7 +48,6 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
     public static final String FILE_TITLE = "FILE_TITLE";
 
 
-
     @Override
     @Cacheable(cacheNames = "file_title", key = "#wtc.pKeyId+'@'+T(System).currentTimeMillis()/(1000*100)")
     public String createFileTitle(WbsTreeContract wtc) {

+ 23 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -127,10 +127,20 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
         //如果className,unitName不为空,则要判断该节点是否是最小节点
         if(ObjectUtil.isNotEmpty(wbsTree.getClassName())&&ObjectUtil.isNotEmpty(wbsTree.getUnitName())){
-            QueryWrapper<WbsTree> wrapper=new QueryWrapper<>();
-            wrapper.eq("parent_id",wbsTree.getId()).eq("is_deleted",0);
+            //id为空是新增节点,并且有标准分类,父节点不能有单元分类
+            if(ObjectUtil.isEmpty(wbsTree.getId())){
+                QueryWrapper<WbsTree>wrapper=new QueryWrapper<>();
+                wrapper.eq("id",wbsTree.getParentId()).eq("is_deleted",0);
+                WbsTree wbsTree1 = baseMapper.selectOne(wrapper);
+                if(wbsTree1.getIsClassifition()==Integer.valueOf(1)){
+                    throw new ServiceException("该节点的父节点已经包含单元评定");
+                }
+            }
+            //新增和编辑都只能是最小节点
+            QueryWrapper<WbsTree> Childeswrapper=new QueryWrapper<>();
+            Childeswrapper.eq("parent_id",wbsTree.getId()).eq("is_deleted",0);
             //查出当前节点所有子节点。如果子节点中没有节点,说明是最小节点
-            List<WbsTree> wbsTrees = baseMapper.selectList(wrapper);
+            List<WbsTree> wbsTrees = baseMapper.selectList(Childeswrapper);
             if(wbsTrees.size()>0){
                 //过滤出所有不为表单的节点,大于0,则不是最小节点
                 if(wbsTrees.stream().filter(o->o.getInitTableName()==null).collect(Collectors.toList()).size()>0){
@@ -169,12 +179,18 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             wbsTree.setSort(sort + 1);
         }
         boolean b = saveOrUpdate(wbsTree);
+        //保存成功
         if(b){
             if(wbsTree.getIsClassifition()==Integer.valueOf(1)){
-                String updateSql="UPDATE m_wbs_tree_private SET class_name="+wbsTree.getClassName()+",unit_name="+wbsTree.getUnitName()+",is_classifition="+wbsTree.getIsClassifition();
-                int update = jdbcTemplate.update(updateSql);
-                if(update!=1){
-                    b=false;
+                //先查询是否有项目级节点 引用了该节点,如果有就更新项目级节点的className,unitName;
+                String selectSql="SELECT * from m_wbs_tree_private WHERE id="+wbsTree.getId();
+                List<WbsTreePrivate> WbsTreePrivates = jdbcTemplate.query(selectSql, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
+                if(WbsTreePrivates.size()>0){
+                    String updateSql="UPDATE m_wbs_tree_private SET class_name="+wbsTree.getClassName()+",unit_name="+wbsTree.getUnitName()+",is_classifition="+wbsTree.getIsClassifition()+" WHERE id="+wbsTree.getId();
+                    int update = jdbcTemplate.update(updateSql);
+                    if(update<=0){
+                        b=false;
+                    }
                 }
             }
         }

+ 2 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -723,7 +723,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
                 if (new Integer(1).equals(contractInfo.getContractType())) {
                     String sql = "SELECT is_custom,p_key_id,contract_id," +
                             "(SELECT id FROM u_contract_tree_drawings WHERE process_id = p_key_id AND is_deleted = 0 limit 1) AS drawingsId," +
-                            "id,parent_id,node_type,type,wbs_type,is_buss_show as isBussShow,is_concrete,major_data_type,class_name,unit_name,node_class,unit_num,excellent_num,is_classifition,partition_code,old_id,contract_id_relation,is_concealed_works_node," +
+                            "id,parent_id,node_type,type,wbs_type,is_buss_show as isBussShow,is_concrete,major_data_type,class_name,unit_name,node_class,unit_num,excellent_num,is_classifition,digitize_time,partition_code,old_id,contract_id_relation,is_concealed_works_node," +
                             "CASE (SELECT count(1) FROM u_tree_contract_first AS tcf WHERE tcf.is_deleted = 0 AND tcf.wbs_node_id = a.p_key_id) " +
                             "WHEN 0 THEN 'false' ELSE 'true' END AS isFirst,IFNULL(if(length(trim(full_name))>0,full_name,node_name),node_name) AS title," +
                             "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_contract b WHERE b.parent_id = a.id AND b.type = 1" +
@@ -861,7 +861,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
                         if (sgContractInfo != null) {
                             String sql = "SELECT is_custom,p_key_id,contract_id," +
                                     "(SELECT id FROM u_contract_tree_drawings WHERE process_id = p_key_id AND is_deleted = 0 limit 1) AS drawingsId," +
-                                    "id,parent_id,node_type,type,wbs_type,is_concrete,major_data_type,partition_code,old_id,contract_id_relation,is_concealed_works_node," +
+                                    "id,parent_id,node_type,type,wbs_type,is_concrete,major_data_type,class_name,unit_name,node_class,unit_num,excellent_num,is_classifition,digitize_time,partition_code,old_id,contract_id_relation,is_concealed_works_node," +
                                     "CASE (SELECT count(1) FROM u_tree_contract_first AS tcf WHERE tcf.is_deleted = 0 AND tcf.wbs_node_id = a.p_key_id) " +
                                     "WHEN 0 THEN 'false' ELSE 'true' END AS isFirst,IFNULL(if(length(trim(full_name))>0,full_name,node_name),node_name) AS title," +
                                     "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_contract b WHERE b.parent_id = a.id AND b.type = 1" +