Browse Source

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf 2 years ago
parent
commit
17db7d677b
33 changed files with 526 additions and 129 deletions
  1. 5 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java
  2. 6 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java
  3. 3 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/CopyContractTreeNodeVO.java
  4. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java
  5. 24 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java
  6. 5 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java
  7. 1 1
      blade-service/blade-archive/pom.xml
  8. 36 6
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileController.java
  9. 1 1
      blade-service/blade-business/pom.xml
  10. 187 33
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  11. 29 24
      blade-service/blade-business/src/main/java/org/springblade/business/controller/NeiYeController.java
  12. 8 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java
  13. 0 1
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/TaskClientImpl.java
  14. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  15. 4 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.java
  16. 26 5
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml
  17. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/MetadataClassificationMapper.xml
  18. 5 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/IInformationQueryService.java
  19. 23 12
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java
  20. 1 1
      blade-service/blade-manager/pom.xml
  21. 2 2
      blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java
  22. 13 9
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FirstController.java
  23. 0 6
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java
  24. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java
  25. 32 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java
  26. 15 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java
  27. 4 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml
  28. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IFormulaService.java
  29. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeService.java
  30. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  31. 74 11
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java
  32. 3 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  33. 7 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java

+ 5 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java

@@ -223,5 +223,9 @@ public class ArchiveFile extends BaseEntity {
 	@ApiModelProperty("删除时间")
 	private LocalDateTime delTime;
 
-
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty("排序")
+	private Integer sort;
 }

+ 6 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -1,5 +1,7 @@
 package org.springblade.business.feign;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.business.vo.ArchiveFileVO;
 import org.springblade.common.constant.BusinessConstant;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -16,6 +18,9 @@ public interface ArchiveFileClient {
      * 接口前缀
      */
     String API_PREFIX = "/api/business";
-    @PostMapping(API_PREFIX + "/savePushUserMessageWarning")
+    @PostMapping(API_PREFIX + "/saveArchiveFile")
     void saveArchiveFile(@RequestBody ArchiveFileVO vo);
+
+    @PostMapping(API_PREFIX + "/selectArchiveFilePage")
+    JSONObject selectArchiveFilePage(@RequestBody ArchiveFileVO archiveFile);
 }

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/CopyContractTreeNodeVO.java

@@ -30,6 +30,9 @@ public class CopyContractTreeNodeVO {
     @ApiModelProperty("所属方,1=施工,2=监理,字符串拼接,复制数据")
     private String classify;
 
+    @ApiModelProperty("划分编号,单份复制")
+    private String partitionCode;
+
     public void setCopyBatchToPaths(String primaryKeyId, String nodeName, String partitionCode) {
         this.copyBatchToPaths.add(new CopyBatch(primaryKeyId, nodeName, partitionCode));
     }

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -252,4 +252,10 @@ public class WbsTreeContract extends BaseEntity {
     @ApiModelProperty(value = "配合比试验ids")
     private String mixRatioTestIds;
 
+    /**
+     * 是否为引用元素
+     */
+    @ApiModelProperty(value = "是否为引用元素 1是 2否")
+    private Integer isEle;
+
 }

+ 24 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java

@@ -0,0 +1,24 @@
+package org.springblade.manager.feign;
+
+import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
+
+@FeignClient(value = APPLICATION_NAME_PREFIX + "manager")
+public interface ArchiveTreeContractClient {
+
+    /**
+     * 接口前缀
+     */
+    String API_PREFIX = "/api/manager/archiveContract";
+
+    @PostMapping(API_PREFIX + "/queryAllChildByAncestors")
+    List<ArchiveTreeContract> queryAllChildByAncestors(@RequestParam String id);
+
+
+}

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -145,4 +145,9 @@ public interface WbsTreeContractClient {
 
     @PostMapping(API_PREFIX + "/diySort")
     boolean diySort(@RequestBody List<String> sortLists);
+
+    // 获取合同端 收件信息表
+    @PostMapping(API_PREFIX + "/queryContractFirstTab")
+    List<WbsTreeContract> queryContractFirstTab(@RequestParam String contractId, @RequestParam String tabType);
+
 }

+ 1 - 1
blade-service/blade-archive/pom.xml

@@ -113,7 +113,7 @@
                     <target>${java.version}</target>
                     <encoding>${project.build.sourceEncoding}</encoding>
                     <compilerArguments>
-                        <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar:${java.home}/lib/jsse.jar
+                        <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar;${java.home}/lib/jsse.jar
                         </bootclasspath>
                     </compilerArguments>
                 </configuration>

+ 36 - 6
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileController.java

@@ -2,6 +2,7 @@ package org.springblade.archive.controller;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -16,11 +17,15 @@ import org.springblade.core.boot.ctrl.BladeController;
 
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.tool.api.R;
+import org.springblade.manager.entity.ArchiveTree;
+import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.manager.feign.ArchiveTreeContractClient;
 import org.springblade.resource.feign.IOSSClient;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -37,6 +42,7 @@ public class ArchiveFileController extends BladeController {
 
 	private final ArchiveFileClient archiveFileClient;
     private final IOSSClient iossClient;
+    private final ArchiveTreeContractClient archiveTreeContractClient;
     /**
      * 上传文件
      *
@@ -63,14 +69,38 @@ public class ArchiveFileController extends BladeController {
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "批量新增")
     public R<Boolean> batchSave(@RequestBody ArchiveFileVO vo){
-        List<ArchiveFileVO> saveList = vo.getList();
-        if(saveList != null && saveList.size() > 0){
-            for(ArchiveFileVO saveVo : saveList){
-                saveVo.setStatus(new Integer("0").equals(saveVo.getIsApproval()) ? 2 : 0);
-                saveVo.setIsCertification(new Integer("0").equals(saveVo.getIsNeedCertification()) ? 1 : 0);
+        try {
+            List<ArchiveFileVO> saveList = vo.getList();
+            if(saveList != null && saveList.size() > 0){
+                for(ArchiveFileVO saveVo : saveList){
+                    saveVo.setStatus(new Integer("0").equals(saveVo.getIsApproval()) ? 2 : 0);
+                    saveVo.setIsCertification(new Integer("0").equals(saveVo.getIsNeedCertification()) ? 1 : 0);
+                }
             }
+            this.archiveFileClient.saveArchiveFile(vo);
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            return R.data(false);
         }
-        archiveFileClient.saveArchiveFile(vo);
         return R.data(true);
     }
+    /**
+     * 分页
+     */
+    @PostMapping("/page")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "分页")
+    public R<Object> page(ArchiveFileVO queryVo){
+        if(queryVo.getNodeIds().isEmpty() || queryVo.getNodeIds().equals("")){
+            return  R.data(null);
+        }
+        List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds());
+        if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
+            List<String> ids = JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
+            ids.add(queryVo.getNodeIds());
+            queryVo.setNodeIdArray(ids);
+        }
+
+        return R.data(this.archiveFileClient.selectArchiveFilePage(queryVo));
+    }
 }

+ 1 - 1
blade-service/blade-business/pom.xml

@@ -157,7 +157,7 @@
                     <target>${java.version}</target>
                     <encoding>${project.build.sourceEncoding}</encoding>
                     <compilerArguments>
-                        <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar:${java.home}/lib/jsse.jar
+                        <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar;${java.home}/lib/jsse.jar
                         </bootclasspath>
                     </compilerArguments>
                 </configuration>

+ 187 - 33
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -3,8 +3,10 @@ package org.springblade.business.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -20,9 +22,7 @@ import org.springblade.business.feign.MessageWarningClient;
 import org.springblade.business.feign.OperationLogClient;
 import org.springblade.business.feign.RecycleBinClient;
 import org.springblade.business.feign.TaskClient;
-import org.springblade.business.service.IConstructionLedgerService;
-import org.springblade.business.service.IInformationQueryFileService;
-import org.springblade.business.service.ITaskService;
+import org.springblade.business.service.*;
 import org.springblade.business.socket.WebSocket;
 import org.springblade.business.utils.FileUtils;
 import org.springblade.business.vo.*;
@@ -52,7 +52,6 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
-import org.springblade.business.service.IInformationQueryService;
 import org.springblade.core.boot.ctrl.BladeController;
 
 import java.io.IOException;
@@ -107,6 +106,8 @@ public class InformationWriteQueryController extends BladeController {
 
     private final TableFileClient tableFileClient;
 
+    private final ITreeContractFirstService treeContractFirstService;
+
     /**
      * 获取文件题名
      */
@@ -539,7 +540,7 @@ public class InformationWriteQueryController extends BladeController {
      */
     @PostMapping("/queryNodeStatus")
     @ApiOperationSupport(order = 23)
-    @ApiOperation(value = "/查询节点状态")
+    @ApiOperation(value = "/查询节点状态-施工")
     public R<String> queryNodeStatus(@RequestParam String primaryKeyId, @RequestParam String classify) {
         //记录状态
         String status = "1";
@@ -561,28 +562,162 @@ public class InformationWriteQueryController extends BladeController {
                     //如果不匹配,默认为未填报
                     status = "1";
                     //查询表格
-                    List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable", classify);
-                    if (tableList != null && tableList.size() > 0) {
-                        for (WbsTreeContract table : tableList) {
-                            if (new Integer("2").equals(table.getIsTabPdf())) {
-                                //这些表格中,但凡有一个能够预览,就开放预览
-                                status = "2";
-                                break;
+                    WbsTreeContract obj = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId);
+                    if (ObjectUtils.isNotEmpty(obj)) {
+                        List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(obj, "queryTable", classify);
+                        if (tableList != null && tableList.size() > 0) {
+                            for (WbsTreeContract table : tableList) {
+                                if (new Integer("2").equals(table.getIsTabPdf())) {
+                                    //这些表格中,但凡有一个能够预览,就开放预览
+                                    status = "2";
+                                    break;
+                                }
                             }
                         }
+                        break;
+                    }
+            }
+        } else {
+            //查询表格
+            WbsTreeContract obj = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId);
+            if (ObjectUtils.isNotEmpty(obj)) {
+                List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(obj, "queryTable", classify);
+                if (tableList != null && tableList.size() > 0) {
+                    for (WbsTreeContract table : tableList) {
+                        if (new Integer("2").equals(table.getIsTabPdf())) {
+                            //这些表格中,但凡有一个能够预览,就开放预览
+                            status = "2";
+                            break;
+                        }
                     }
+                }
+            }
+        }
+
+        return R.data(status);
+    }
+
+    /**
+     * 查询节点状态-监理
+     */
+    @PostMapping("/queryNodeStatus-jl")
+    @ApiOperationSupport(order = 23)
+    @ApiOperation(value = "/查询节点状态-监理")
+    public R<String> queryNodeStatusJl(@RequestParam String primaryKeyId, @RequestParam String classify) {
+        //记录状态
+        String status = "1";
+        //查询填报状态,type=1资料填报
+        InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, primaryKeyId).eq(InformationQuery::getClassify, classify).eq(InformationQuery::getType, 1));
+        if (businessData != null) {
+            switch (businessData.getStatus()) {
+                case 0:
+                case 3:
+                    //0属于未上报,3属于已废除,统一为待上报
+                    status = "2";
+                    break;
+                case 1:
+                case 2:
+                    //1属于待审批,2属于已审批,统一为已上报
+                    status = "3";
                     break;
+                default:
+                    //如果不匹配,默认为未填报
+                    status = "1";
+                    //查询表格
+                    WbsTreeContract obj = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId);
+                    if (ObjectUtils.isNotEmpty(obj)) {
+                        List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(obj, "queryTable", classify);
+                        if (tableList != null && tableList.size() > 0) {
+                            for (WbsTreeContract table : tableList) {
+                                if (new Integer("2").equals(table.getIsTabPdf())) {
+                                    //这些表格中,但凡有一个能够预览,就开放预览
+                                    status = "2";
+                                    break;
+                                }
+                            }
+                        }
+                        break;
+                    }
             }
         } else {
             //查询表格
-            List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable", classify);
-            if (tableList != null && tableList.size() > 0) {
-                for (WbsTreeContract table : tableList) {
-                    if (new Integer("2").equals(table.getIsTabPdf())) {
-                        //这些表格中,但凡有一个能够预览,就开放预览
-                        status = "2";
+            WbsTreeContract obj = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId);
+            if (ObjectUtils.isNotEmpty(obj)) {
+                List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(obj, "queryTable", classify);
+                if (tableList != null && tableList.size() > 0) {
+                    for (WbsTreeContract table : tableList) {
+                        if (new Integer("2").equals(table.getIsTabPdf())) {
+                            //这些表格中,但凡有一个能够预览,就开放预览
+                            status = "2";
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        return R.data(status);
+    }
+
+    /**
+     * 查询节点状态-首件
+     */
+    @PostMapping("/queryNodeStatus-sj")
+    @ApiOperationSupport(order = 23)
+    @ApiOperation(value = "/查询节点状态-首件")
+    @ApiModelProperty(value = "id",notes = "当前该条首件的记录id")
+    public R<String> queryNodeStatusSj(@RequestParam String primaryKeyId, @RequestParam String classify,String id) {
+        //记录状态
+        String status = "1";
+        //查询填报状态,type=3首件
+        InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery()
+                .eq(InformationQuery::getId,id)
+                .eq(InformationQuery::getType, 3)
+        );
+        if (businessData != null) {
+            switch (businessData.getStatus()) {
+                case 0:
+                case 3:
+                    //0属于未上报,3属于已废除,统一为待上报
+                    status = "2";
+                    break;
+                case 1:
+                case 2:
+                    //1属于待审批,2属于已审批,统一为已上报
+                    status = "3";
+                    break;
+                default:
+                    //如果不匹配,默认为未填报
+                    status = "1";
+                    //查询表格
+                    WbsTreeContract obj = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId);
+                    if (ObjectUtils.isNotEmpty(obj)) {
+                        List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(obj, "queryTable", classify);
+                        if (tableList != null && tableList.size() > 0) {
+                            for (WbsTreeContract table : tableList) {
+                                if (new Integer("2").equals(table.getIsTabPdf())) {
+                                    //这些表格中,但凡有一个能够预览,就开放预览
+                                    status = "2";
+                                    break;
+                                }
+                            }
+                        }
                         break;
                     }
+            }
+        } else {
+            //查询表格
+            WbsTreeContract obj = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId);
+            if (ObjectUtils.isNotEmpty(obj)) {
+                List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(obj, "queryTable", classify);
+                if (tableList != null && tableList.size() > 0) {
+                    for (WbsTreeContract table : tableList) {
+                        if (new Integer("2").equals(table.getIsTabPdf())) {
+                            //这些表格中,但凡有一个能够预览,就开放预览
+                            status = "2";
+                            break;
+                        }
+                    }
                 }
             }
         }
@@ -590,6 +725,7 @@ public class InformationWriteQueryController extends BladeController {
         return R.data(status);
     }
 
+
     /**
      * 查询节点状态-试验
      */
@@ -1127,6 +1263,9 @@ public class InformationWriteQueryController extends BladeController {
                     if (new Integer("1").equals(node.getType())) {
                         //如果是节点类型才重塑ID
                         newData.setId(oldToNewIdMap.containsKey(node.getId()) ? oldToNewIdMap.get(node.getId()) : SnowFlakeUtil.getId());
+
+                        //划分编号
+                        newData.setPartitionCode(StringUtils.isNotEmpty(vo.getPartitionCode()) ? vo.getPartitionCode() : null);
                     }
                     //设置父节点ID
                     if (vo.getNeedCopyPrimaryKeyId().equals(node.getPKeyId().toString())) {
@@ -1149,8 +1288,6 @@ public class InformationWriteQueryController extends BladeController {
                     //初始化PDF路径
                     newData.setPdfUrl(null);
                     newData.setCreateUser(AuthUtil.getUserId());
-                    //划分编号
-                    newData.setPartitionCode(StringUtils.isNotEmpty(node.getPartitionCode()) ? node.getPartitionCode() : null);
 
                     //获取当前所有复制的节点的最大sort
                     String sql = "select sort from m_wbs_tree_contract where contract_id = '" + node.getContractId() + "' and (id = '" + node.getId() + "' or old_id = '" + node.getId() + "')";
@@ -1202,6 +1339,9 @@ public class InformationWriteQueryController extends BladeController {
                         //设置新ID
                         if (new Integer("1").equals(node.getType())) {
                             newData.setId(oldToNewIdMap.containsKey(node.getId()) ? oldToNewIdMap.get(node.getId()) : SnowFlakeUtil.getId());
+
+                            //划分编号
+                            newData.setPartitionCode(StringUtils.isNotEmpty(node.getPartitionCode()) ? node.getPartitionCode() : null);
                         }
                         //设置父节点ID
                         if (vo.getNeedCopyPrimaryKeyId().equals(node.getPKeyId().toString())) {
@@ -1224,8 +1364,6 @@ public class InformationWriteQueryController extends BladeController {
                         newData.setIsTabPdf(1);
                         //初始化PDF路径
                         newData.setPdfUrl(null);
-                        //划分编号
-                        newData.setPartitionCode(StringUtils.isNotEmpty(copyBatch.getPartitionCode()) ? copyBatch.getPartitionCode() : null);
 
                         //获取当前所有复制的节点的最大sort
                         String sql = "select sort from m_wbs_tree_contract where contract_id = '" + node.getContractId() + "' and (id = '" + node.getId() + "' or old_id = '" + node.getId() + "')";
@@ -1956,28 +2094,44 @@ public class InformationWriteQueryController extends BladeController {
             //这一步主要是为了兼容监理合同段
             node = this.wbsTreeContractClient.getContractWbsTreeByContractIdAndId(vo.getWbsId(), Long.parseLong(vo.getContractIdRelation()));
         }
-
+        List<QueryProcessDataVO> queryDataResult = new ArrayList<>();
         if (!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())) {
             //不是工序,则查询当前节点下的所有填报节点
             if (node.getParentId() == 0) {
                 String contractId = node.getContractId();
                 List<WbsTreeContract> treeS = wbsTreeContractClient.getContractWbsTreeByParentId(node.getId().toString(), contractId);
                 for (WbsTreeContract tree : treeS) {
-                    List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(tree.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
-                    if (queryDataResult != null && queryDataResult.size() > 0) {
-                        submitNodeKeyIds.addAll(queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList()));
-                        queryDataResult.clear();
+                    List<QueryProcessDataVO> Result = this.informationQueryService.queryProcessDataByParentIdAndContractIdTwo(tree.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
+                    if (Result != null && Result.size() > 0) {
+                        queryDataResult.addAll(Result);
+                        Result.clear();
                     }
                 }
             } else {
-                List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(node.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
-                if (StringUtils.isNotEmpty(vo.getIsFirst())) {
-                    //如果是首件列表请求,则删掉没有标记为首件的数据
-                    queryDataResult.removeIf(data -> StringUtils.isEmpty(data.getFirstId()));
+                List<QueryProcessDataVO> Result = this.informationQueryService.queryProcessDataByParentIdAndContractIdTwo(node.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
+                if (Result != null && Result.size() > 0) {
+                    queryDataResult.addAll(Result);
+                    Result.clear();
                 }
-                if (queryDataResult != null && queryDataResult.size() > 0) {
-                    submitNodeKeyIds.addAll(queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList()));
+            }
+            //如果是首件列表请求,则删掉没有标记为首件的数据
+            if (queryDataResult != null && queryDataResult.size() > 0) {
+                if (StringUtils.isNotEmpty(vo.getIsFirst())) {
+                    List<String> treeIds = queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList());
+                    //通过合同段主键在首件关联表中查询出所有数据
+                    List<TreeContractFirst> firstList = treeContractFirstService.list(new LambdaQueryWrapper<TreeContractFirst>().in(TreeContractFirst::getWbsNodeId, treeIds));
+                    List<String> list = firstList.stream().map(fl -> (fl.getWbsNodeId()+"")).collect(Collectors.toList());
+                    queryDataResult = queryDataResult.stream().filter(qdr->list.contains(qdr.getPrimaryKeyId())).collect(Collectors.toList());
+//                    for (QueryProcessDataVO queryProcessDataVO : queryDataResult) {
+//                        TreeContractFirst first = treeContractFirstService.getOne(new LambdaQueryWrapper<TreeContractFirst>()
+//                                .eq(TreeContractFirst::getWbsNodeId, queryProcessDataVO.getPrimaryKeyId()));
+//                        if (first != null){
+//                            queryProcessDataVO.setFirstId(first.getId()+"");
+//                        }
+//                    }
+//                    queryDataResult.removeIf(data -> StringUtils.isEmpty(data.getFirstId()));
                 }
+                submitNodeKeyIds.addAll(queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList()));
             }
         }
         //设置进集合中

+ 29 - 24
blade-service/blade-business/src/main/java/org/springblade/business/controller/NeiYeController.java

@@ -78,20 +78,22 @@ public class NeiYeController {
             }
             //不是工序,则查询当前节点下的所有填报节点
             List<QueryProcessDataVO> queryDataResult = new ArrayList<>();
-            if(!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())){
+            //有些填报节点的MajorDataType为0
+            if(!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())
+                    && !node.getNodeName().contains("开工报告")&& !node.getNodeName().contains("质量检验评定表")){
                 //非填报节点
                 if (node.getParentId() == 0){
                     String contractI = node.getContractId();
                     List<WbsTreeContract> treeS = wbsTreeContractClient.getContractWbsTreeByParentId(node.getId().toString(),contractI);
                     for (WbsTreeContract tree : treeS) {
-                        List<QueryProcessDataVO> dataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(tree.getId().toString(), contract.getContractType(), contractId);
+                        List<QueryProcessDataVO> dataResult = this.informationQueryService.queryProcessDataByParentIdAndContractIdTwo(tree.getId().toString(), contract.getContractType(), contractId);
                         if (dataResult != null && dataResult.size() > 0) {
                             queryDataResult.addAll(dataResult);
                             dataResult.clear();
                         }
                     }
                 }else {
-                    queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(node.getId().toString(), contract.getContractType(), contractId);
+                    queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractIdTwo(node.getId().toString(), contract.getContractType(), contractId);
                 }
             } else {
                 //填报节点
@@ -101,32 +103,35 @@ public class NeiYeController {
             if (queryDataResult != null && queryDataResult.size() > 0) {
                 //删除掉首件
                 queryDataResult.removeIf(query -> StringUtils.isNotEmpty(query.getQueryType()) && "3".equals(query.getQueryType()));
-                //过滤Evaluate
-                queryDataResult.stream().forEach(qdr->{
-                    Integer status = qdr.getStatus();
-                    if (status == null){
-                        qdr.setStatus(0);
-                        qdr.setEvaluate("false");
-                    }else if (status.equals(2)){
-                        qdr.setEvaluate("true");
-                    }else {
-                        qdr.setEvaluate("false");
+                //设置评定值
+                queryDataResult.stream().forEach(qdr->qdr.setEvaluate("false"));
+                List<QueryProcessDataVO> vos = queryDataResult.stream().filter(qdr -> qdr.getTitle().contains("质量检验评定表"))
+                        .filter(qdr -> "2".equals(qdr.getStatus() + "")).collect(Collectors.toList());
+                if (vos != null && vos.size() > 0){
+                    //获取父节点,为所有子节点设置已评定
+                    for (QueryProcessDataVO vo : vos) {
+                        String parentId = vo.getParentId();
+                        queryDataResult.stream().forEach(qdr->{
+                            if (qdr.getAncestors().contains(parentId)){
+                                qdr.setEvaluate("true");
+                            }
+                        });
                     }
-                });
-                String isEvaluate = String.valueOf(queryVO.getIsEvaluate());
-                if (!"".equals(isEvaluate) && !"null".equals(isEvaluate) && isEvaluate != null) {
-                        queryDataResult = queryDataResult.stream()
-                                .filter(qdr->isEvaluate.equals(qdr.getEvaluate())).collect(Collectors.toList());
-                }
-                if (queryDataResult.size() <= 0){
-                    return R.data(300, null, "未查询到数据");
                 }
                 //审批状态
                 String taskStatus = queryVO.getTaskStatus();
                 if (!"".equals(taskStatus) && !"null".equals(taskStatus) && taskStatus != null) {
-                    Integer sta = Integer.valueOf(taskStatus) -1;
                     queryDataResult = queryDataResult.stream()
-                            .filter(qdr->sta.equals(qdr.getStatus())).collect(Collectors.toList());
+                            .filter(qdr->taskStatus.equals(qdr.getStatus()+"")).collect(Collectors.toList());
+                }
+                if (queryDataResult.size() <= 0){
+                    return R.data(300, null, "未查询到数据");
+                }
+                //过滤Evaluate是否评定
+                String isEvaluate = String.valueOf(queryVO.getIsEvaluate());
+                if (!"".equals(isEvaluate) && !"null".equals(isEvaluate) && isEvaluate != null) {
+                        queryDataResult = queryDataResult.stream()
+                                .filter(qdr->isEvaluate.equals(qdr.getEvaluate())).collect(Collectors.toList());
                 }
                 if (queryDataResult.size() <= 0){
                     return R.data(300, null, "未查询到数据");
@@ -157,7 +162,7 @@ public class NeiYeController {
                 if (queryDataResult.size() <= 0){
                     return R.data(300, null, "未查询到数据");
                 }
-                //上报批次
+                //上报批次  ,保存节点的时候没有上传批次,只能去流程查
                 for (QueryProcessDataVO vo : queryDataResult) {
                     if (vo.getInformationQueryId() != null && vo.getStatus() != 0){
                         List<Task> tasks = taskClient.queryTaskListByFormDataId(vo.getInformationQueryId());

+ 8 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -1,5 +1,7 @@
 package org.springblade.business.feignClient;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.AllArgsConstructor;
 import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.business.service.IArchiveFileService;
@@ -18,4 +20,10 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
     public void saveArchiveFile(ArchiveFileVO vo) {
         this.iArchiveFileService.saveArchiveFile(vo.getList());
     }
+
+    @Override
+    public JSONObject selectArchiveFilePage(ArchiveFileVO archiveFile) {
+        IPage<ArchiveFileVO> archiveFileVOIPage = this.iArchiveFileService.selectArchiveFilePage(archiveFile);
+        return JSONObject.parseObject(JSONObject.toJSONString(archiveFileVOIPage));
+    }
 }

+ 0 - 1
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/TaskClientImpl.java

@@ -46,7 +46,6 @@ public class TaskClientImpl implements TaskClient {
         if(task != null){
             //存在任务,根据formDataId查询(获取 私有项目的 p_key_ids)
             List<String> privatePrimaryKeyIds = this.informationQueryService.queryBusinessTableData(task.getFormDataId());
-
             if(privatePrimaryKeyIds != null && privatePrimaryKeyIds.size() > 0){
                 //查询这些表格的电签配置
                 return this.eVisaConfigClient.queryEVisaConfigByTableIds(privatePrimaryKeyIds, task.getContractId(), isFinal);

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -55,7 +55,7 @@
         </foreach>
     </update>
 
-    <select id="selectArchiveFileCount" resultMap="archiveFileResultMap">
+    <select id="selectArchiveFileCount" resultType="java.lang.Integer">
         select count(id) from u_archive_file where is_deleted = 0
         <if test="vo.isApprovalValue != null and vo.isApprovalValue != ''">
             and status = #{vo.isApprovalValue}

+ 4 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.java

@@ -44,6 +44,10 @@ public interface InformationQueryMapper extends BaseMapper<InformationQuery> {
 	 * 查询工序节点的填报记录
 	 */
 	List<QueryProcessDataVO> queryProcessDataByParentIdAndContractId(@Param("parentId") String parentId, @Param("classify") Integer classify, @Param("contractId") String contractId);
+	/**
+	 * 查询工序节点的填报记录
+	 */
+	List<QueryProcessDataVO> queryProcessDataByParentIdAndContractIdTwo(@Param("parentId") String parentId, @Param("classify") Integer classify, @Param("contractId") String contractId);
 
 	/**
 	 * 根据节点ID及其填报的类型获取填报记录

+ 26 - 5
blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml

@@ -253,12 +253,11 @@
                 group by wtc.p_key_id
             ) AS querys
         ) AS querys ON wtc.p_key_id = querys.pKeyId
-        WHERE
-            wtc.contract_id = #{contractId}
-        AND wtc.type = 1
-        AND wtc.parent_id = #{parentId}
+        WHERE wtc.type = 1
+        AND wtc.is_deleted= 0
         AND wtc.node_type != 111
-        AND wtc.is_deleted= '0'
+        AND wtc.parent_id = #{parentId}
+        AND wtc.contract_id = #{contractId}
         ORDER BY wtc.sort,wtc.create_time
     </select>
 
@@ -449,5 +448,27 @@
     <select id="getContractWbsTreeAll" resultType="org.springblade.manager.entity.WbsTreeContract">
         select p_key_id,id,node_name,node_type,parent_id,sort from m_wbs_tree_contract where project_id = #{obj.projectId} and contract_id = #{obj.contractId} and `type` = 1 and status = 1 and node_type in (1,2,3,4,5,6) order by sort
     </select>
+    <select id="queryProcessDataByParentIdAndContractIdTwo" resultMap="queryProcessDataMap">
+        SELECT
+            wtc.id AS treeId,
+            wtc.p_key_id,
+            wtc.ancestors,
+            wtc.major_data_type,
+            wtc.node_type AS nodeType,
+            IFNULL(if(length(trim(wtc.full_name)) > 0, wtc.full_name, wtc.node_name),wtc.node_name) AS title,
+            wtc.parent_id AS parentId,
+            uiq.id AS informationQueryId,
+            IFNULL(uiq.status,0) AS status,
+            uiq.type AS queryType
+        FROM
+            m_wbs_tree_contract AS wtc
+            LEFT JOIN u_information_query AS uiq ON wtc.p_key_id = uiq.wbs_id AND uiq.classify = #{classify} and uiq.is_deleted = 0
+        WHERE
+            wtc.type = 1
+          AND wtc.major_data_type in(1,2,3,4)
+          AND wtc.ancestors like concat('%',#{parentId},'%')
+          AND wtc.contract_id = #{contractId}
+          AND wtc.is_deleted = 0
+    </select>
 
 </mapper>

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/MetadataClassificationMapper.xml

@@ -63,7 +63,7 @@
     </select>
 
     <select id="classificationDetail" resultMap="ResultEntityMap">
-        select * from u_metadata_classification where file_storage_type = #{type} order by create_time desc
+        select * from u_metadata_classification where locate(#{type},file_storage_type) > 0 order by create_time desc
     </select>
     <select id="selectMetadaOne" resultMap="ResultEntityMap">
         select * from u_metadata_classification where (container_name = #{containerName} or code = #{code} or field_key = #{fieldKey} )

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IInformationQueryService.java

@@ -61,6 +61,11 @@ public interface IInformationQueryService extends BaseService<InformationQuery>
 	 */
 	List<QueryProcessDataVO> queryProcessDataByParentIdAndContractId(String parentId, Integer classify, String contractId);
 
+	/**
+	 * 查询工序节点的填报记录2
+	 */
+	List<QueryProcessDataVO> queryProcessDataByParentIdAndContractIdTwo(String parentId, Integer classify, String contractId);
+
 	/**
 	 * 保存填报时新增或修改填报资料记录表数据
 	 * @param wbsId 当前填报节点

+ 23 - 12
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -68,18 +68,22 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
 
         //查询这个业务数据绑定的表格,需要区分监理和施工
         if (query != null) {
-            // 获取wbs
-            WbsTreeContract tree = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(query.getWbsId());
-            // 获取 合同端信息表
-            List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(tree, "queryTable", String.valueOf(query.getClassify()));
-            if (tableList != null && tableList.size() > 0) {
-                //删除掉无法溯源的数据
-                tableList.removeIf(node -> node.getIsTypePrivatePid() == null || node.getIsTypePrivatePid() <= 0 || StringUtils.isEmpty(node.getIsTypePrivatePid().toString()));
-
-                List<Long> privatePIdList = tableList.stream().map(WbsTreeContract::getIsTypePrivatePid).distinct().collect(Collectors.toList());
-
-                return JSONArray.parseArray(JSONObject.toJSONString(privatePIdList), String.class);
-            }
+                // 获取wbs
+                WbsTreeContract tree = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(query.getWbsId());
+                List<WbsTreeContract> tableList = new ArrayList<>();
+                if(query.getType()==1){ //质检
+                    // 获取 合同端信息表
+                    tableList= this.wbsTreeContractClient.queryChildByParentId(tree, "queryTable", String.valueOf(query.getClassify()));
+                }else if(query.getType()==3){ //首件数据
+                    // 获取首件 数据节点信息
+                   tableList = this.wbsTreeContractClient.queryContractFirstTab(tree.getContractId(), "111");
+                }
+                if (tableList != null && tableList.size() > 0) {
+                    //删除掉无法溯源的数据
+                    tableList.removeIf(node -> node.getIsTypePrivatePid() == null || node.getIsTypePrivatePid() <= 0 || StringUtils.isEmpty(node.getIsTypePrivatePid().toString()));
+                    List<Long> privatePIdList = tableList.stream().map(WbsTreeContract::getIsTypePrivatePid).distinct().collect(Collectors.toList());
+                    return JSONArray.parseArray(JSONObject.toJSONString(privatePIdList), String.class);
+                }
         } else {
             //那么就可能是日志,检查是不是日志
             ContractLog log = this.contractLogService.getById(formDataId);
@@ -116,6 +120,13 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
         return result;
     }
 
+    @Override
+    public List<QueryProcessDataVO> queryProcessDataByParentIdAndContractIdTwo(String parentId, Integer classify, String contractId) {
+        List<QueryProcessDataVO> result = this.baseMapper.queryProcessDataByParentIdAndContractIdTwo(parentId, classify, contractId);
+        return result;
+    }
+
+
     private List<FirstInformation> setFirstLinkData(List<JSONObject> linkDataList, String businessId) {
         List<FirstInformation> linkList = new ArrayList<>();
 

+ 1 - 1
blade-service/blade-manager/pom.xml

@@ -170,7 +170,7 @@
                     <target>${java.version}</target>
                     <encoding>${project.build.sourceEncoding}</encoding>
                     <compilerArguments>
-                        <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar:${java.home}/lib/jsse.jar
+                        <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar;${java.home}/lib/jsse.jar
                         </bootclasspath>
                     </compilerArguments>
                 </configuration>

+ 2 - 2
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -2801,9 +2801,9 @@ public class CustomFunction {
 		return "";
 	}
 
-	public static void main(String[] args) {
+	/*public static void main(String[] args) {
 		System.out.println();
-	}
+	}*/
 
 
 

+ 13 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FirstController.java

@@ -14,6 +14,7 @@ import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.usermodel.Cell;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -197,6 +198,9 @@ public class FirstController extends BladeController {
 
             //获取配置的路径
             String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+            //String file_path = "/Users/hongchuangyanfa/Desktop/";//ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+
+
             //获取数据
             JSONObject firstJson = this.informationQueryClient.queryFirstBusinessDataByFirstId(firstId);
             if (firstJson != null) {
@@ -246,9 +250,9 @@ public class FirstController extends BladeController {
                                     for (int i = 0; i < columns.length; i++) {
                                         CellRange cellRange = columns[i];
                                         System.out.println(cellRange.getStyle().getFont().getSize());
-                                        if (cellRange.getStyle().getFont().getSize() >= 12 && StringUtils.isNotEmpty(cellRange.getText())) {
+                                        if (cellRange.getStyle().getFont().getSize() > 12 && StringUtils.isBlank(cellRange.getText())) {
                                             cellRange.setText(projectInfo.getProjectName());
-                                            cellRange.getStyle().getFont().setSize(20);
+                                            cellRange.getStyle().getFont().setSize(14);
                                             break;
                                         }
                                     }
@@ -310,7 +314,12 @@ public class FirstController extends BladeController {
                                                         pic.setHeight(Height);
                                                         sheet.getCellRange(y1, x1).getStyle().setShrinkToFit(true);
 
-                                                    } else {
+                                                    } else if(myData.equals("1") && data.html().indexOf("hc-form-checkbox-group")>=0){
+                                                         CellRange cell = sheet.getCellRange(y1, x1);
+                                                        String exceVal = cell.getText().replaceAll(" ","");
+                                                        cell.getCellStyle().getExcelFont().setFontName("EUDC");
+                                                        cell.setText(exceVal.replace("□","\u2611"));
+                                                    }else {
                                                         final CellRange cellRange = sheet.getCellRange(y1, x1);
                                                         cellRange.setText(myData);
                                                     }
@@ -355,7 +364,6 @@ public class FirstController extends BladeController {
                             BladeFile bladeFile = this.newIOSSClient.uploadFile(fileName + ".pdf", onePdfPath);
 
                             pdfUrls.add(bladeFile.getLink());
-
                             //将封面的pdf修改
                             String updatePdfUrl = "UPDATE u_information_query SET pdf_url = '" + bladeFile.getLink() + "' WHERE id = " + firstId;
                             this.jdbcTemplate.execute(updatePdfUrl);
@@ -442,8 +450,6 @@ public class FirstController extends BladeController {
                 Elements sgTitle1 = doc.select("el-input[placeholder=安装单位]");
                 sgTitle.addAll(sgTitle1);
                 Elements htdTitle = doc.select("el-input[placeholder~=.*合同段:");
-                /*Elements htdTitle1 = doc.select("el-input[placeholder~=合同名称.*]");
-                htdTitle.addAll(htdTitle1);*/
                 Elements jlTitle = doc.select("el-input[placeholder~=监理单位.*]");
                 Elements bhTitle = doc.select("el-input[placeholder~=^编号]");
                 Elements bhTitle1 = doc.select("el-input[placeholder~=合同编号.*]");
@@ -607,9 +613,7 @@ public class FirstController extends BladeController {
                 Elements sgTitle = doc.select("el-input[placeholder~=^施工单位]");
                 Elements sgTitle1 = doc.select("el-input[placeholder=安装单位]");
                 sgTitle.addAll(sgTitle1);
-                Elements htdTitle = doc.select("el-input[placeholder~=.*合同段.*]");
-                Elements htdTitle1 = doc.select("el-input[placeholder~=合同名称.*]");
-                htdTitle.addAll(htdTitle1);
+                Elements htdTitle = doc.select("el-input[placeholder~=.*合同段:]");
                 Elements jlTitle = doc.select("el-input[placeholder~=监理单位.*]");
                 Elements bhTitle = doc.select("el-input[placeholder~=^编号]");
                 Elements bhTitle1 = doc.select("el-input[placeholder~=合同编号.*]");

+ 0 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -117,12 +117,6 @@ public class WbsTreeContractController extends BladeController {
             @ApiImplicitParam(name = "stats", value = "状态码", required = true)
     })
     public R remove(@RequestParam("id") String id,@RequestParam("stats") String stats) {
-
-        WbsTreeContract wbsTreeContract = iWbsTreeContractService.getOne(Wrappers.<WbsTreeContract>query().lambda()
-                .eq(WbsTreeContract::getPKeyId, id).eq(WbsTreeContract::getIsDeleted,0) );
-        if(StringUtils.isEmpty(wbsTreeContract.getPdfUrl()) && stats.equals("0")){
-            return R.data(300,"1","该节点下有数据");
-        }
         return R.status(iWbsTreeContractService.remove(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, id).eq(WbsTreeContract::getIsDeleted,0)));
     }

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

@@ -208,7 +208,7 @@ public class WbsTreeController extends BladeController {
     public R<List<WbsFormElementVO>> selectFormElements(@RequestParam("id") String id, Long nodeId, String search,Integer type) {
         List<WbsFormElementVO> wbsFormElements = null;
         if (StringUtils.isNotEmpty(id)) {
-            wbsFormElements = wbsTreeService.selectFormElements(id, nodeId,type);
+            wbsFormElements = wbsTreeService.selectFormElements(id,type);
             if (wbsFormElements.size() > 0) {
                 if (StringUtils.isNotEmpty(search)) {
                     wbsFormElements = wbsFormElements.stream().filter(e -> e.getEName().contains(search)).collect(Collectors.toList());

+ 32 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -0,0 +1,32 @@
+package org.springblade.manager.feign;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.manager.service.IArchiveTreeContractService;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
+
+    private final IArchiveTreeContractService archiveTreeContractService;
+
+    @Override
+    public List<ArchiveTreeContract> queryAllChildByAncestors(String id) {
+        List<ArchiveTreeContract> archiveTreeList = this.archiveTreeContractService.list(Wrappers.<ArchiveTreeContract>lambdaQuery().like(ArchiveTreeContract::getAncestors, id));
+        if(archiveTreeList == null || archiveTreeList.size() <= 0){
+            //有可能已经是最底节点
+            archiveTreeList = new ArrayList<>();
+            ArchiveTreeContract archiveTree = this.archiveTreeContractService.getById(id);
+            if(archiveTree != null){
+                archiveTreeList.add(archiveTree);
+            }
+        }
+
+        return archiveTreeList;
+    }
+}

+ 15 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -11,9 +11,11 @@ import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.ContractRelationJlyz;
+import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IWbsTreeContractService;
+import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
 import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeContractTreeVO3;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
@@ -32,6 +34,8 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     private final IWbsTreeContractService wbsTreeContractService;
 
+    private final WbsTreeContractServiceImpl wbsTreeContractServiceImpl;
+
     private final IDictBizClient dictBizClient;
 
     private final ISysClient sysClient;
@@ -88,7 +92,7 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
     public List<WbsTreeContract> queryChildByParentId(WbsTreeContract treeNode, String queryTable, String classify) {
         if ("queryTable".equals(queryTable)) {
             LambdaQueryWrapper<WbsTreeContract> wrapper = Wrappers.lambdaQuery();
-            wrapper.eq(WbsTreeContract::getParentId, treeNode.getId()).eq(WbsTreeContract::getContractId, treeNode.getContractId()).eq(WbsTreeContract::getType, "2");
+            wrapper.eq(WbsTreeContract::getParentId, treeNode.getId()).eq(WbsTreeContract::getContractId, treeNode.getContractId()).in(WbsTreeContract::getType, Arrays.asList("2,111".split(",")));
             if (StringUtils.isNotEmpty(classify)) {
                 wrapper.in(WbsTreeContract::getTableOwner, "1".equals(classify) ? Arrays.asList("1,2,3".split(",")) : Arrays.asList("4,5,6".split(",")));
             }
@@ -101,7 +105,7 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     @Override
     public Boolean saveBatch(List<WbsTreeContract> list) {
-        return this.wbsTreeContractService.saveBatch(list);
+        return this.wbsTreeContractServiceImpl.insertBatch(list,1000);
     }
 
     @Override
@@ -217,6 +221,15 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
         return true;
     }
 
+    @Override
+    public List<WbsTreeContract> queryContractFirstTab(String contractId, String tabType) {
+        LambdaQueryWrapper<WbsTreeContract> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(WbsTreeContract::getContractId, contractId);
+        wrapper.eq(WbsTreeContract::getTableType, tabType);
+        wrapper.eq(WbsTreeContract::getIsDeleted, "0");
+        return this.wbsTreeContractService.list(wrapper);
+    }
+
     @Override
     public List<WbsTreeContractTreeVOS> queryCurrentContractLogList(String contractId) {
         ContractInfo contract = this.contractInfoService.getById(contractId);

+ 4 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -49,6 +49,7 @@
         <result column="is_import_identification_node" property="isImportIdentificationNode"/>
         <result column="import_matching_info" property="importMatchingInfo"/>
         <result column="is_concealed_works_node" property="isConcealedWorksNode"/>
+        <result column="is_ele" property="isEle"/>
     </resultMap>
 
 
@@ -99,6 +100,7 @@
         <result column="is_import_identification_node" property="isImportIdentificationNode"/>
         <result column="import_matching_info" property="importMatchingInfo"/>
         <result column="is_concealed_works_node" property="isConcealedWorksNode"/>
+        <result column="is_ele" property="isEle"/>
         <collection property="appUserList" javaType="java.util.List" ofType="org.springblade.manager.entity.AppUser"
                     select="getuserInfoByaccount"
                     column="{sonId=p_key_id}">
@@ -138,7 +140,7 @@
                                         table_type, create_time, create_user, create_dept, update_user, update_time,
                                         `STATUS`, is_deleted,
                                         unique_code, partition_code, is_expernode, is_concrete, table_owner,
-                                        major_data_type, init_table_name, is_link_table, excel_id, html_url,is_type_private_pid)
+                                        major_data_type, init_table_name, is_link_table, excel_id, html_url,is_type_private_pid,is_ele)
         VALUES (#{pKeyId}, #{wbsTree.id}, #{wbsTree.wbsId}, #{wbsType}, #{wbsTree.projectId}, #{contractId}, 1,
                 #{wbsTree.tenantId}, #{wbsTree.parentId}, #{wbsTree.ancestors},
                 #{wbsTree.nodeType}, #{wbsTree.nodeName}, #{wbsTree.fullName}, #{wbsTree.sort}, #{wbsTree.remark},
@@ -148,7 +150,7 @@
                 #{wbsTree.status}, #{wbsTree.isDeleted}, #{wbsTree.uniqueCode}, #{wbsTree.partitionCode},
                 #{wbsTree.isExpernode}, #{wbsTree.isConcrete},
                 #{wbsTree.tableOwner}, #{wbsTree.majorDataType}, #{wbsTree.initTableName}, #{wbsTree.isLinkTable},
-                #{wbsTree.excelId},#{wbsTree.htmlUrl},#{wbsTree.pKeyId})
+                #{wbsTree.excelId},#{wbsTree.htmlUrl},#{wbsTree.pKeyId},1)
     </insert>
 
     <update id="deleteBatch">

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

@@ -33,5 +33,5 @@ public interface IFormulaService extends BaseService<Formula> {
     void format();
 
     List<Formula> getFormulaList(List<KeyMapper> keyMapperList);
-    List<KeyMapper> getKeyMapperList(List<Long> ids,Long projectId);
+    List<KeyMapper> getKeyMapperList(List<Long> ids,String projectId);
 }

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

@@ -35,7 +35,7 @@ public interface IWbsTreeService extends BaseService<WbsTree> {
 
     boolean removeTableById(String id);
 
-    List<WbsFormElementVO> selectFormElements(String id,Long nodeId,Integer type);
+    List<WbsFormElementVO> selectFormElements(String id,Integer type);
     List<WbsFormElementVO> selectFormElements4Formula(String id);
     // 项目级
     List<WbsFormElementVO> selectPrivateFormElements(String id);

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

@@ -338,7 +338,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             /*每次都是部分表单提交,保证跨节点跨表取数正常,其次是反向依赖的被动刷新*/
             List<AppWbsTreeContractVO> tableAll = wbsTreeContractService.searchNodeAllTable(nodeId.toString(), "1", tableInfoList.get(0).getContractId(), tableInfoList.get(0).getProjectId());
             StopWatch stopWatch = new StopWatch();
-            List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(tableInfoList.stream().map(TableInfo::getPkeyId).filter(Func::isNotEmpty).map(Long::parseLong).collect(Collectors.toList()), null);
+            List<KeyMapper> keyMappers = this.formulaService.getKeyMapperList(tableInfoList.stream().map(TableInfo::getPkeyId).filter(Func::isNotEmpty).map(Long::parseLong).collect(Collectors.toList()), tableInfoList.get(0).getProjectId());
             if (Func.isNotEmpty(keyMappers)) {
                 Map<String, Map<String, String>> coordinateMap = new HashMap<>(keyMappers.size() * 2);
                 keyMappers.forEach(e -> {

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

@@ -12,8 +12,10 @@ import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.tool.utils.*;
+import org.springblade.manager.bean.TableInfo;
 import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.Formula;
@@ -174,7 +176,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     String tableName = nodeList.get(0).getInitTableName();
                     try {
                         if(!this.tec.getCoordinateMap().containsKey(tableName)){
-                            this.tec.getCoordinateMap().put(tableName, getTableCols(nodeList.get(0), null));
+                            this.tec.getCoordinateMap().put(tableName, getTableCols(nodeList.get(0)));
                         }
                     } catch (FileNotFoundException e) {
                         e.printStackTrace();
@@ -244,7 +246,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         return null;
     }
 
-    public Map<String, String> getTableCols(AppWbsTreeContractVO wbsTreeContract, String colkey) throws FileNotFoundException {
+    public Map<String, String> getTableCols(AppWbsTreeContractVO wbsTreeContract) throws FileNotFoundException {
         Map<String, String> dataMap = new HashMap<>();
         if (Func.isEmpty(wbsTreeContract.getHtmlUrl())) {
             return dataMap;
@@ -500,8 +502,16 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         if(data instanceof List){
             List<Object> values = (List<Object>) data;
             if(values.size()>fd.getValues().size()){
-                /*当生成的数据超过实际容量的时候,会自动合并到第一个单元格*/
-                fd.getValues().get(0).setValue(values.stream().map(StringUtils::handleNull).collect(Collectors.joining("、")));
+                /*当生成的数据超过实际容量的时候,会自动追加页数*/
+                if(fd.getCoordsList().size()==1){
+                    fd.getValues().get(0).setValue(values.stream().map(StringUtils::handleNull).collect(Collectors.joining("、")));
+                }else{
+                    copy(fd,values);
+                    for(int n=0;n<fd.getValues().size();n++){
+                        fd.getValues().get(n).setValue(values.get(n));
+                    }
+                }
+
             }else{
                 for(int n=0;n<values.size();n++){
                     fd.getValues().get(n).setValue(values.get(n));
@@ -518,6 +528,58 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     }
 
+    /**加页增容*/
+   public void copy(FormData fd, List<Object> values){
+       WbsTreeContract  origin =  this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId,fd.getTableIds().get(fd.getTableIds().size()-1)));
+       if(origin!=null){
+           int pageSize = fd.getCoordsList().size();
+           int pageAdd=(int)Math.ceil((double)(values.size()-fd.getValues().size())/(double) pageSize);
+           for(int i=0;i<pageAdd;i++){
+               /*复制表*/
+               WbsTreeContract target = new WbsTreeContract();
+               BeanUtil.copy(origin,target);
+               target.setPKeyId(SnowFlakeUtil.getId());
+               this.wbsTreeContractService.saveOrUpdate(target);
+               tec.getKeyMappers().stream().filter(e->e.getPkId().equals(origin.getPKeyId())).findFirst().ifPresent(d->{
+                   /*添加KeyMapper映射关系*/
+                   KeyMapper km = new KeyMapper();
+                   BeanUtil.copy(d,km);
+                   km.setPkId(target.getPKeyId());
+                   tec.getKeyMappers().add(km);
+                   tec.getTableInfoList().stream().filter(o->StringUtils.isEquals(o.getPkeyId(),origin.getPKeyId())).findFirst().ifPresent(tb->{
+                       /*表单数据复制*/
+                       TableInfo tableInfo = new TableInfo();
+                       BeanUtil.copy(tb,tableInfo);
+                       tableInfo.setDataMap(new LinkedHashMap<>());
+                       tec.getTableInfoList().add(tec.getTableInfoList().indexOf(tb)+1,tableInfo);
+                   });
+               });
+           }
+           enlarge(fd,pageAdd);
+       }
+   }
+
+   public void enlarge(FormData fd,int pageAdd){
+       List<FormData> targetList = tec.getFormDataMap().values().stream().filter(e->StringUtils.isEquals(fd.getTableName(),e.getTableName())).collect(Collectors.toList());
+        targetList.forEach(tmp->{
+          if(tmp!=null){
+              List<Coords> list = tmp.getCoordsList();
+              ElementData last = tmp.getValues().get(tmp.getValues().size()-1);
+              int index =last.getIndex();
+              int groupId=last.getGroupId();
+              Object data=null;
+              if(Formula.FULL.equals(tmp.getFormula().getOutm())){
+                  data=tmp.getValues().get(tmp.getValues().size()-1);
+              }
+              for(int i=0;i<pageAdd;i++){
+                  int finalIndex = index;
+                  Object finalData = data;
+                  tmp.getValues().addAll(list.stream().map(c-> new ElementData(finalIndex,groupId, finalData,c.getX(),c.getY())).collect(Collectors.toList()));
+                  index++;
+              }
+          }
+        });
+   }
 
 
 
@@ -541,19 +603,21 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
     @Override
-    public List<KeyMapper> getKeyMapperList(List<Long> ids,Long projectId) {
+    public List<KeyMapper> getKeyMapperList(List<Long> ids,String projectId) {
         /*表名,pkeyId,元素名,元素id 映射对象*/
+        String pkIds=ids.stream().map(String::valueOf).collect(Collectors.joining(","));
         List<Map<String,Object>> listMap = this.jdbcTemplate.queryForList(" select a.init_table_name as tableName,a.p_key_id as pkId ,c.e_key as field,c.e_name as eName,c.id  as fieldId   " +
                 "from m_wbs_tree_contract a " +
                 "inner join m_table_info b on a.init_table_name=b.tab_en_name " +
                 "INNER JOIN m_wbs_form_element c on b.id=c.f_id " +
-                "where a.p_key_id in("+ids.stream().map(String::valueOf).collect(Collectors.joining(","))+")  ORDER BY a.init_table_name");
+                "where a.p_key_id in("+pkIds+")  ORDER BY a.init_table_name");
+        List<Long> nodeIds= this.jdbcTemplate.queryForList("select b.parent_id from m_wbs_tree_contract  a join m_wbs_tree_private b on a.is_type_private_pid=b.p_key_id where a.p_key_id in("+pkIds+")",Long.class);
         if(Func.isNotEmpty(listMap)){
             /*当前节点的某个元素存在多种作用域的公式,作用域范围越小优先级越高*/
             List<KeyMapper> list= listMap.stream().map(m->BeanUtil.toBean(m,KeyMapper.class)).collect(Collectors.toList());
-            Set<KeyMapper> set = new HashSet<>(list.size()*2);
+            String nodeIdStr=nodeIds.stream().map(Object::toString).collect(Collectors.joining(StringPool.COMMA));
             StringBuilder sb = new StringBuilder("select element_id elementId,formula_id formulaId,scope from m_element_formula_mapping where element_id in("+list.stream().map(KeyMapper::getFieldId).map(Func::toStr).collect(Collectors.joining(","))+") and is_deleted=0 ");
-            sb.append(" and ( scope<2 or (scope =10 and node_id) ");
+            sb.append(" and ( scope<2 or (scope=2 and node_id in(").append(nodeIdStr).append(")) or (scope =10 and project_id = ").append(projectId).append(") or (scope=20 and project_id =").append(projectId).append(" and node_id in (").append(nodeIdStr).append(")))");
             List<Map<String,Object>> efMap= this.jdbcTemplate.queryForList(sb.toString());
             if(Func.isNotEmpty(efMap)){
                 Map<Long,List<Map<String,Object>>> efGroup= efMap.stream().collect(Collectors.groupingBy(e->Func.toLong(e.get("elementId"))));
@@ -562,13 +626,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     if(Func.isNotEmpty(tmp)){
                         tmp.stream().max(Comparator.comparing(oo->Func.toInt(oo.get("scope")))).ifPresent(d->{
                             e.setFormulaId(Func.toLong(d.get("formulaId")));
-                            set.add(e);
                         });
                     }
                 });
             }
-            if(set.size()>0){
-                return new ArrayList<>(set);
+            if(list.size()>0){
+                return list;
             }
         }
         return Collections.emptyList();

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

@@ -399,7 +399,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     }
 
     @Override
-    public List<WbsFormElementVO> selectFormElements(String id, Long nodeId,Integer type) {
+    public List<WbsFormElementVO> selectFormElements(String id,Integer type) {
         List<WbsFormElementVO> wbsFormElements = wbsTreeMapper.selectFormElements(id);
         ;
 //        if (Func.isEmpty(wbsFormElements)) {
@@ -426,7 +426,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             if(com.mixsmart.utils.StringUtils.isEquals(type,1)){
                 sql="select c.element_id from m_wbs_tree a INNER JOIN m_wbs_tree b on a.parent_id=b.id INNER JOIN m_element_formula_mapping c on b.id=c.node_id where  a.id=" + id + " and c.scope="+scopeB+" and c.element_id in(" + elementIds + ")";
             }else{
-                sql="select c.element_id from m_wbs_tree_private a INNER JOIN m_wbs_tree b on a.parent_id=b.id INNER JOIN m_element_formula_mapping c on b.id=c.node_id where  a.p_key_id=" + id + " and c.scope="+scopeB+" and c.element_id in(" + elementIds + ")";
+                WbsTreePrivate treePrivate= this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId,id));
+                sql="select c.element_id from m_wbs_tree_private a INNER JOIN m_wbs_tree b on a.parent_id=b.id INNER JOIN m_element_formula_mapping c on b.id=c.node_id where  a.p_key_id=" + id + " and c.scope="+scopeB+" and c.element_id in(" + elementIds + ")  and c.project_id="+treePrivate.getProjectId();
             }
             List<Long> longs2 = this.jdbcTemplate.queryForList(sql, Long.class);
             wbsFormElements.forEach(e -> {

+ 7 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java

@@ -301,8 +301,12 @@ public class FileUtils {
 
 
     public static void main11(String[] args) throws Exception {
-
-        String excelPath="/Users/hongchuangyanfa/Desktop/pdf/1625671101419880450.xlsx";
+            String data = "";
+        for(int i=1;i<=100;i++){
+            data +="name"+i+"  VARCHAR(500),";
+        }
+        System.out.println(data);
+  /*      String excelPath="/Users/hongchuangyanfa/Desktop/pdf/1625671101419880450.xlsx";
         File file_out = ResourceUtil.getFile("/Users/hongchuangyanfa/Desktop/pdf/123.xlsx");
         InputStream exceInp = new FileInputStream(file_out);//CommonUtil.getOSSInputStream("https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20230130/2d98b5a4d6270d5d4f98847216c17888.xlsx");
         final org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(exceInp);
@@ -345,7 +349,7 @@ public class FileUtils {
         }
         if (workbook != null) {
             IoUtil.closeQuietly(workbook);
-        }
+        }*/
 
     }
 }