Просмотр исходного кода

Merge remote-tracking branch 'origin/master' into master

yangyj 2 лет назад
Родитель
Сommit
7fe31f6228
48 измененных файлов с 501 добавлено и 191 удалено
  1. 4 0
      blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
  2. 2 0
      blade-common/src/main/java/org/springblade/common/constant/BusinessConstant.java
  3. 1 1
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  4. 2 0
      blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/LargeFileEndpoint.java
  5. 3 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java
  6. 1 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSamplingRecordVO.java
  7. 13 0
      blade-service-api/blade-control-api/pom.xml
  8. 23 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/PlanInfo.java
  9. 4 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/feign/test.java
  10. 4 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/test.java
  11. 20 8
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTreeContract.java
  12. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java
  13. 2 2
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileAutoController.java
  14. 17 8
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileController.java
  15. 1 1
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java
  16. 21 14
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml
  17. 24 36
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  18. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialDetectionController.java
  19. 5 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java
  20. 10 7
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  21. 2 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/IArchiveFileService.java
  22. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialSelfInspectionRecordService.java
  23. 26 8
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java
  24. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDetectionDataServiceImpl.java
  25. 7 4
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java
  26. 17 16
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java
  27. 34 0
      blade-service/blade-control/pom.xml
  28. 22 0
      blade-service/blade-control/src/main/java/org/springblade/ControlApplication.java
  29. 30 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/PlanInfoController.java
  30. 7 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanInfoMapper.java
  31. 19 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanInfoMapper.xml
  32. 10 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/PlanInfoService.java
  33. 14 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInfoServiceImpl.java
  34. 4 0
      blade-service/blade-control/src/main/java/org/springblade/control/wrapper/test.java
  35. 13 0
      blade-service/blade-control/src/main/resources/application-dev.yml
  36. 10 0
      blade-service/blade-control/src/main/resources/application-prod.yml
  37. 10 0
      blade-service/blade-control/src/main/resources/application-test.yml
  38. 13 0
      blade-service/blade-control/target/classes/application-dev.yml
  39. 10 0
      blade-service/blade-control/target/classes/application-prod.yml
  40. 10 0
      blade-service/blade-control/target/classes/application-test.yml
  41. BIN
      blade-service/blade-control/target/classes/org/springblade/control/ControlApplication.class
  42. 2 4
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  43. 5 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java
  44. 26 37
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ExcelTabClientImpl.java
  45. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java
  46. 13 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml
  47. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java
  48. 33 38
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

+ 4 - 0
blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java

@@ -256,6 +256,9 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService {
                 case "saber":
                 case "saber":
                     result = "4"; //manger=后管
                     result = "4"; //manger=后管
                     break;
                     break;
+                case "hac":
+                    result = "5"; //hac=成本管控系统
+                    break;
             }
             }
         }
         }
 
 
@@ -263,6 +266,7 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService {
                 || (("2").equals(result) && user.getUserType().contains("2")) //app
                 || (("2").equals(result) && user.getUserType().contains("2")) //app
                 || (("3").equals(result) && user.getUserType().contains("3")) //档案
                 || (("3").equals(result) && user.getUserType().contains("3")) //档案
                 || (("4").equals(result) && user.getUserType().contains("4")) //后管
                 || (("4").equals(result) && user.getUserType().contains("4")) //后管
+                || (("5").equals(result)) // 成本管控系统
         ) {
         ) {
             //放行
             //放行
             return;
             return;

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

@@ -4,6 +4,8 @@ public interface BusinessConstant {
 
 
     String APPLICATION_WEATHER_NAME = "blade-business";
     String APPLICATION_WEATHER_NAME = "blade-business";
 
 
+    String APPLICATION_CONTROL_NAME = "blade-control";
+
     //redis树
     //redis树
     String CONTRACT_CACHE_WBSTREE = "contract:wbstree:";
     String CONTRACT_CACHE_WBSTREE = "contract:wbstree:";
 }
 }

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

@@ -46,7 +46,7 @@ public interface LauncherConstant {
 	String APPLICATION_XXLJOB_ADMIN_NAME = APPLICATION_NAME_PREFIX + "xxljob-admin";
 	String APPLICATION_XXLJOB_ADMIN_NAME = APPLICATION_NAME_PREFIX + "xxljob-admin";
 
 
 	/**
 	/**
-	 * nacos dev 地址
+	 * nacos dev 地址 172.31.222.127
 	 */
 	 */
 	String NACOS_DEV_ADDR = "127.0.0.1:8848";
 	String NACOS_DEV_ADDR = "127.0.0.1:8848";
 
 

+ 2 - 0
blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/LargeFileEndpoint.java

@@ -359,6 +359,8 @@ public class LargeFileEndpoint {
 				long l = System.currentTimeMillis();
 				long l = System.currentTimeMillis();
 				System.out.println("kaishi===================================="+l);
 				System.out.println("kaishi===================================="+l);
 				BladeFile bladeFile = ossBuilder.template().putFile(param.getFilename(),inputStream);
 				BladeFile bladeFile = ossBuilder.template().putFile(param.getFilename(),inputStream);
+				System.out.println("param.getFilename()===================================="+param.getFilename());
+				System.out.println("bladeFile===================================="+bladeFile.getOriginalName());
 				long l1 = System.currentTimeMillis();
 				long l1 = System.currentTimeMillis();
 				System.out.println("jieshu===================================="+(l1-l));
 				System.out.println("jieshu===================================="+(l1-l));
 
 

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -108,4 +108,7 @@ public interface ArchiveFileClient {
      */
      */
     @PostMapping(API_PREFIX + "/getAllPdfFileUrlByProjectIdAndFileType")
     @PostMapping(API_PREFIX + "/getAllPdfFileUrlByProjectIdAndFileType")
     List<ArchiveFile> getAllPdfFileUrlByProjectIdAndFileType(@RequestParam Long projectId);
     List<ArchiveFile> getAllPdfFileUrlByProjectIdAndFileType(@RequestParam Long projectId);
+
+    @PostMapping(API_PREFIX + "/updateArchiveFileByBoxNameOne")
+    boolean updateArchiveFileByBoxNameOne(@RequestParam String boxName,@RequestParam Integer boxNumber);
 }
 }

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSamplingRecordVO.java

@@ -40,7 +40,7 @@ public class TrialSamplingRecordVO implements Serializable {
     /**
     /**
      * 试样数量
      * 试样数量
      */
      */
-    private Integer materialCount;
+    private String materialCount;
 
 
     /**
     /**
      * 是否委外 '0'=否 '1'=是
      * 是否委外 '0'=否 '1'=是

+ 13 - 0
blade-service-api/blade-control-api/pom.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>blade-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>2.9.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>blade-control-api</artifactId>
+    <version>${bladex.project.version}</version>
+</project>

+ 23 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/PlanInfo.java

@@ -0,0 +1,23 @@
+package org.springblade.control.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.util.Date;
+
+@Data
+@TableName("c_control_plan_info")
+@EqualsAndHashCode(callSuper = true)
+public class PlanInfo extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+    private String planName;
+    private String planNumber;
+    private Integer planDept;
+    private Integer planType;
+    private Date planStartDate;
+    private Date planEndDate;
+
+}

+ 4 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/feign/test.java

@@ -0,0 +1,4 @@
+package org.springblade.control.feign;
+
+public class test {
+}

+ 4 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/test.java

@@ -0,0 +1,4 @@
+package org.springblade.control.vo;
+
+public class test {
+}

+ 20 - 8
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTreeContract.java

@@ -83,23 +83,26 @@ public class ArchiveTreeContract extends BaseEntity {
 	*/
 	*/
 	private String fullName;
 	private String fullName;
 	/**
 	/**
-	* 节点类型
+	* 节点类型,1 关联电子原生文件 2 数组化上传文件
 	*/
 	*/
 	private Integer nodeType;
 	private Integer nodeType;
 	/**
 	/**
-	* 岗位类型
+	* 岗位类型 见 blade_role表 :业主,施工单位,监理单位
 	*/
 	*/
 	private String postType;
 	private String postType;
 	/**
 	/**
 	* 关联类型
 	* 关联类型
+	 * 1 质检资料 2 试验资料 3 影像资料 4 台账资料 5 首件资料 6 日志文件
 	*/
 	*/
 	private Integer associationType;
 	private Integer associationType;
 	/**
 	/**
 	* 内业资料类型
 	* 内业资料类型
+	 * 1 开工报告 2 工序资料 3 质量评定 4 中间交工
 	*/
 	*/
 	private String majorDataType;
 	private String majorDataType;
 	/**
 	/**
 	* 显示层级
 	* 显示层级
+	 * 1单位工程2分部工程 3子分部工程 4分项工程5子分项工程 6工序 
 	*/
 	*/
 	private String displayHierarchy;
 	private String displayHierarchy;
 	/**
 	/**
@@ -116,6 +119,7 @@ public class ArchiveTreeContract extends BaseEntity {
 	private Integer isInterfaceNode;
 	private Integer isInterfaceNode;
 	/**
 	/**
 	* 接口类型
 	* 接口类型
+	 * 1 试验接口 2 计量接口
 	*/
 	*/
 	private Integer interfaceType;
 	private Integer interfaceType;
 	/**
 	/**
@@ -128,18 +132,21 @@ public class ArchiveTreeContract extends BaseEntity {
 	private String remark;
 	private String remark;
 	/**
 	/**
 	* 工程类型
 	* 工程类型
+	 * 1 公路工程  2  水利水电工程 3  全部
 	*/
 	*/
 	private Integer projectType;
 	private Integer projectType;
-	/**
-	* 关联类型
+	/** 存储类型
+	* 1 普通 2竣工图 3 计量 4 质检 5 声像 6 试验 7 隐蔽 8 管理文件 9 变更令
+	 *  todo 档案和档案树节点下文件的类型,取决于这个
 	*/
 	*/
 	private Integer storageType;
 	private Integer storageType;
 	/**
 	/**
 	* 扩展类型
 	* 扩展类型
+	 *  1 wbs 动态节点  2  施工单位和监理单位大节点下,XXX合同段,这种扩展节点
 	*/
 	*/
 	private Integer extType;
 	private Integer extType;
 	/**
 	/**
-	* 扩展Id,如动态工序节点的wbsid
+	* 扩展Id,如动态工序节点的wbs树的id
 	*/
 	*/
 	private Long extId;
 	private Long extId;
 
 
@@ -174,22 +181,27 @@ public class ArchiveTreeContract extends BaseEntity {
 	 */
 	 */
 	private Long fromId;
 	private Long fromId;
 	/**
 	/**
-	 * 扩展Id铆钉的树节点id
+	 * 扩展Id铆钉的树节点id,暂未使用
 	 */
 	 */
 	private Long extAttachId;
 	private Long extAttachId;
 
 
 	/**
 	/**
 	 * 试验资料类型
 	 * 试验资料类型
+	 * 1 配合比 2 原材 3 汇总 4 设备 5外委
 	 */
 	 */
 	private String expDataType;
 	private String expDataType;
 
 
-	//权限编码
+	/*、
+	  施工树: tree_code  = “C“  +  tree_code=对应合同段ID节点  + 根节点
+      监理树   tree_code  = “S“  +  tree_code=对应合同段ID节点  + 根节点
+      建设单位树, tree_code = "" 的节点 (或者全部节点)
+	 */
 	private String treeCode;
 	private String treeCode;
 
 
 	//树形排序
 	//树形排序
 	private String treeSort;
 	private String treeSort;
 
 
-	//---节点基础信息,自动组卷需要这些参数来确定
+	//---节点基础信息,自动组卷需要这些参数来确定,为空的则从合同段对应的字段取
 	//档号前缀
 	//档号前缀
 	private String fileNumberPrefix;
 	private String fileNumberPrefix;
 	//保管期限
 	//保管期限

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

@@ -18,7 +18,7 @@ public interface ArchiveTreeContractClient {
     String API_PREFIX = "/api/manager/archiveContract";
     String API_PREFIX = "/api/manager/archiveContract";
 
 
     @PostMapping(API_PREFIX + "/queryAllChildByAncestors")
     @PostMapping(API_PREFIX + "/queryAllChildByAncestors")
-    List<ArchiveTreeContract> queryAllChildByAncestors(@RequestParam String id);
+    List<ArchiveTreeContract> queryAllChildByAncestors(@RequestParam String id,@RequestParam(required = false) Long contractId);
 
 
 
 
     @PostMapping(API_PREFIX + "/getHavedFileNodeByProjectID")
     @PostMapping(API_PREFIX + "/getHavedFileNodeByProjectID")

+ 2 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileAutoController.java

@@ -98,7 +98,7 @@ public class ArchiveFileAutoController extends BladeController {
                     this.archiveFileClient.saveArchiveFile(saveVos);
                     this.archiveFileClient.saveArchiveFile(saveVos);
                     archive.setFileN(saveVos.getSize());
                     archive.setFileN(saveVos.getSize());
                     archive.setPageN(pageN);
                     archive.setPageN(pageN);
-                    List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(saveVos.getNodeId());
+                    List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(saveVos.getNodeId(),saveVos.getContractId() == null?null:Long.parseLong(saveVos.getContractId()));
                     if(archiveTreeContracts != null && archiveTreeContracts.size() >0){
                     if(archiveTreeContracts != null && archiveTreeContracts.size() >0){
                         archive.setTreeSort(archiveTreeContracts.get(0).getTreeSort());
                         archive.setTreeSort(archiveTreeContracts.get(0).getTreeSort());
                         if (archiveTreeContracts.get(0).getStorageType()!= null){
                         if (archiveTreeContracts.get(0).getStorageType()!= null){
@@ -132,7 +132,7 @@ public class ArchiveFileAutoController extends BladeController {
         if(queryVo.getNodeIds() == null || queryVo.getNodeIds().equals("")){
         if(queryVo.getNodeIds() == null || queryVo.getNodeIds().equals("")){
             return  R.data(null);
             return  R.data(null);
         }
         }
-        List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds());
+        List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds(),queryVo.getContractId());
         if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
         if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
             List<String> ids = JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
             List<String> ids = JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
             ids.add(queryVo.getNodeIds());
             ids.add(queryVo.getNodeIds());

+ 17 - 8
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileController.java

@@ -113,15 +113,15 @@ public class ArchiveFileController extends BladeController {
     @ApiOperation(value = "分页")
     @ApiOperation(value = "分页")
     public R<Object> page( ArchiveFileVO queryVo){
     public R<Object> page( ArchiveFileVO queryVo){
         if(queryVo.getNodeIds().isEmpty() || queryVo.getNodeIds().equals("")){
         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);
-        }
 
 
+        }else {
+            List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds(), queryVo.getContractId() == null ? null : Long.parseLong(queryVo.getContractId()));
+            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));
         return R.data(this.archiveFileClient.selectArchiveFilePage(queryVo));
     }
     }
     /**
     /**
@@ -311,4 +311,13 @@ public class ArchiveFileController extends BladeController {
         }
         }
         return R.data(true);
         return R.data(true);
     }
     }
+    /**
+     * 删除分盒
+     */
+    @PostMapping("/removeAllocation")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "删除分盒", notes = "传入ids")
+    public R removeAllocation(@RequestParam String boxName,@RequestParam Integer boxNumber) {
+        return R.status(this.archiveFileClient.updateArchiveFileByBoxNameOne(boxName,boxNumber));
+    }
 }
 }

+ 1 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -101,7 +101,7 @@ public class ArchivesAutoController extends BladeController {
 		if(queryVo.getNodeIds() == null || queryVo.getNodeIds().equals("")){
 		if(queryVo.getNodeIds() == null || queryVo.getNodeIds().equals("")){
 			return  R.data(null);
 			return  R.data(null);
 		}
 		}
-		List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds());
+		List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds(),queryVo.getContractId());
 		if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
 		if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
 			List<String> ids = JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
 			List<String> ids = JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
 			ids.add(queryVo.getNodeIds());
 			ids.add(queryVo.getNodeIds());

+ 21 - 14
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -67,26 +67,29 @@
 
 
 
 
     <select id="selectArchivesAutoFileCount" resultType="java.lang.Integer">
     <select id="selectArchivesAutoFileCount" resultType="java.lang.Integer">
-        select count(id) from u_archives_auto where is_deleted = 0 and is_archive = 1
+        select count(id) from u_archives_auto u where u.is_deleted = 0
         <if test="vo.projectId != null and vo.projectId != ''">
         <if test="vo.projectId != null and vo.projectId != ''">
-            and project_id = #{vo.projectId}
+            and u.project_id = #{vo.projectId}
+        </if>
+        <if test="vo.queryValue != null and vo.queryValue != ''">
+            and (u.name  like concat('%',#{vo.queryValue},'%') or u.file_number  like concat('%',#{vo.queryValue},'%'))
         </if>
         </if>
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
-            and is_auto_file = #{vo.isAutoFile}
+            and u.is_auto_file = #{vo.isAutoFile}
         </if>
         </if>
         <choose>
         <choose>
             <when test="vo.isArchive != null and vo.isArchive != ''">
             <when test="vo.isArchive != null and vo.isArchive != ''">
-                and  is_auto_file = #{vo.isArchive}
+                and  u.is_archive = #{vo.isArchive}
             </when>
             </when>
             <otherwise>
             <otherwise>
-                and (is_auto_file is null or is_auto_file != 1)
+                and (u.is_archive is null or u.is_archive != 1)
             </otherwise>
             </otherwise>
         </choose>
         </choose>
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
-            and is_auto_file = #{vo.isAutoFile}
+            and u.is_auto_file = #{vo.isAutoFile}
         </if>
         </if>
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
-            and node_id in
+            and u.node_id in
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
                 #{nodeId}
                 #{nodeId}
             </foreach>
             </foreach>
@@ -94,28 +97,32 @@
     </select>
     </select>
 
 
     <select id="selectArchivesAutoFilePage" resultMap="archivesAutoResultMap">
     <select id="selectArchivesAutoFilePage" resultMap="archivesAutoResultMap">
-        select * from u_archives_auto where is_deleted = 0
+        select * from u_archives_auto u where u.is_deleted = 0
         <if test="vo.projectId != null and vo.projectId != ''">
         <if test="vo.projectId != null and vo.projectId != ''">
-            and project_id = #{vo.projectId}
+            and u.project_id = #{vo.projectId}
+        </if>
+        <if test="vo.queryValue != null and vo.queryValue != ''">
+            and (u.name  like concat('%',#{vo.queryValue},'%') or u.file_number  like concat('%',#{vo.queryValue},'%'))
         </if>
         </if>
         <choose>
         <choose>
             <when test="vo.isArchive != null and vo.isArchive != ''">
             <when test="vo.isArchive != null and vo.isArchive != ''">
-                and  is_auto_file = #{vo.isArchive}
+                and  u.is_archive = #{vo.isArchive}
             </when>
             </when>
             <otherwise>
             <otherwise>
-                and (is_auto_file is null or is_auto_file != 1)
+                and (u.is_archive is null or u.is_archive != 1)
             </otherwise>
             </otherwise>
         </choose>
         </choose>
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
-            and is_auto_file = #{vo.isAutoFile}
+            and u.is_auto_file = #{vo.isAutoFile}
         </if>
         </if>
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
-            and node_id in
+            and u.node_id in
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
                 #{nodeId}
                 #{nodeId}
             </foreach>
             </foreach>
         </if>
         </if>
-        order by tree_sort,auto_file_sort,file_number asc
+        order by u.tree_sort,u.auto_file_sort,u.file_number asc
+        limit #{current}, #{size}
     </select>
     </select>
 
 
     <update id="updateArchivesAutoFileByNodeId" >
     <update id="updateArchivesAutoFileByNodeId" >

+ 24 - 36
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -8,17 +8,10 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 import org.springblade.business.entity.*;
 import org.springblade.business.entity.*;
@@ -33,6 +26,7 @@ import org.springblade.business.vo.*;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.mp.support.Query;
@@ -57,14 +51,11 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springblade.core.boot.ctrl.BladeController;
 
 
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.*;
 import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -1362,7 +1353,6 @@ public class InformationWriteQueryController extends BladeController {
             if (ObjectUtil.isEmpty(needCopyChildNodes) || needCopyChildNodes.size() == 0) {
             if (ObjectUtil.isEmpty(needCopyChildNodes) || needCopyChildNodes.size() == 0) {
                 //最下层级节点复制
                 //最下层级节点复制
                 needCopyChildNodes = new ArrayList<>();
                 needCopyChildNodes = new ArrayList<>();
-                needCopyChildNodes.add(needCopyNode);
             }
             }
             needCopyChildNodes.add(needCopyNode);
             needCopyChildNodes.add(needCopyNode);
             List<WbsTreeContract> nodeChildAll = new ArrayList<>(needCopyChildNodes);
             List<WbsTreeContract> nodeChildAll = new ArrayList<>(needCopyChildNodes);
@@ -1664,12 +1654,10 @@ public class InformationWriteQueryController extends BladeController {
      */
      */
     private List<WbsTreeContract> reBuildAncestors(List<WbsTreeContract> list) {
     private List<WbsTreeContract> reBuildAncestors(List<WbsTreeContract> list) {
         List<WbsTreeContract> result = new ArrayList<>();
         List<WbsTreeContract> result = new ArrayList<>();
-        List<WbsTreeContract> sortedResult = list.stream()
-                .sorted(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getType, Comparator.nullsLast(Comparator.naturalOrder())))
-                        .thenComparing(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getNodeType, Comparator.nullsLast(Comparator.naturalOrder()))))
-                        .thenComparing(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getId, Comparator.nullsLast(Comparator.naturalOrder()))))
-                        .thenComparing(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getCreateTime, Comparator.nullsLast(Comparator.naturalOrder())))))
-                .collect(Collectors.toList());
+        //根据pKeyId排序,pKeyId是由雪花算法-时间戳递增的顺序来生成的id
+        List<WbsTreeContract> sortedResult = new ArrayList<>(list);
+        sortedResult.sort(Comparator.comparingLong(WbsTreeContract::getPKeyId));
+
         Map<Long, WbsTreeContract> newMap = BeanUtil.copyProperties(result, WbsTreeContract.class).stream().collect(Collectors.toMap(WbsTreeContract::getId, Function.identity()));
         Map<Long, WbsTreeContract> newMap = BeanUtil.copyProperties(result, WbsTreeContract.class).stream().collect(Collectors.toMap(WbsTreeContract::getId, Function.identity()));
         for (WbsTreeContract obj : sortedResult) {
         for (WbsTreeContract obj : sortedResult) {
             if (obj != null && ObjectUtil.isNotEmpty(obj.getParentId())) {
             if (obj != null && ObjectUtil.isNotEmpty(obj.getParentId())) {
@@ -1922,6 +1910,11 @@ public class InformationWriteQueryController extends BladeController {
             //根节点id
             //根节点id
             Long needCopyNodeOldId = needCopyNode.getId();
             Long needCopyNodeOldId = needCopyNode.getId();
             needCopyNode.setId(SnowFlakeUtil.getId());
             needCopyNode.setId(SnowFlakeUtil.getId());
+            needCopyNode.setPKeyId(SnowFlakeUtil.getId());
+            needCopyNode.setNodeName(toCopyNode.getNodeName());
+            needCopyNode.setFullName(toCopyNode.getNodeName());
+            needCopyNode.setPartitionCode(toCopyNode.getPartitionCode());
+            needCopyNode.setCreateTime(new Date());
 
 
             Map<Long, Long> parentIdToId = new HashMap<>();
             Map<Long, Long> parentIdToId = new HashMap<>();
             Map<Long, List<WbsTreeContract>> tabMap = needTabs.stream().collect(Collectors.groupingBy(WbsTreeContract::getParentId));
             Map<Long, List<WbsTreeContract>> tabMap = needTabs.stream().collect(Collectors.groupingBy(WbsTreeContract::getParentId));
@@ -2022,13 +2015,7 @@ public class InformationWriteQueryController extends BladeController {
                 //跨节点
                 //跨节点
                 needCopyNode.setParentId(toCopyNode.getId());
                 needCopyNode.setParentId(toCopyNode.getId());
             }
             }
-            needCopyNode.setPKeyId(SnowFlakeUtil.getId());
-            needCopyNode.setNodeName(toCopyNode.getNodeName());
-            needCopyNode.setFullName(toCopyNode.getNodeName());
-            needCopyNode.setPartitionCode(toCopyNode.getPartitionCode());
-            needCopyNode.setCreateTime(new Date());
-
-            addNodeList.add(needCopyNode);
+            addNodeList.add(0, needCopyNode);
         }
         }
     }
     }
 
 
@@ -2823,16 +2810,17 @@ public class InformationWriteQueryController extends BladeController {
 
 
         if (saveList.size() > 0) {
         if (saveList.size() > 0) {
             StringBuilder str = new StringBuilder();
             StringBuilder str = new StringBuilder();
+            str.append("-"+saveList.get(0).getFullName());
             //保存施工日志
             //保存施工日志
-            if (saveLedger.size() > 0) {
-                this.constructionLedgerService.saveBatch(saveLedger, 1000);
-                str.append("-[");
-                for (ConstructionLedger ledger : saveLedger) {
-                    str.append(ledger.getSite() + ",");
-                }
-                str.deleteCharAt(str.length() - 1);
-                str.append("]");
-            }
+//            if (saveLedger.size() > 0) {
+//                this.constructionLedgerService.saveBatch(saveLedger, 1000);
+//                str.append("-[");
+//                for (ConstructionLedger ledger : saveLedger) {
+//                    str.append(ledger.getSite() + ",");
+//                }
+//                str.deleteCharAt(str.length() - 1);
+//                str.append("]");
+//            }
 
 
             try {
             try {
                 //获取当前节点的所有父节点
                 //获取当前节点的所有父节点

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialDetectionController.java

@@ -139,7 +139,7 @@ public class TrialDetectionController extends BladeController {
     @PostMapping("/self/submit")
     @PostMapping("/self/submit")
     @ApiOperationSupport(order = 11)
     @ApiOperationSupport(order = 11)
     @ApiOperation(value = "自检记录新增或修改", notes = "传入TrialSelfInspectionRecordDTO")
     @ApiOperation(value = "自检记录新增或修改", notes = "传入TrialSelfInspectionRecordDTO")
-    public R<Object> selfSubmit(@Valid @RequestBody TrialSelfInspectionRecordDTO dto) throws FileNotFoundException {
+    public R<Object> selfSubmit(@Valid @RequestBody TrialSelfInspectionRecordDTO dto){
         return R.data(iTrialSelfInspectionRecordService.selfSubmit(dto));
         return R.data(iTrialSelfInspectionRecordService.selfSubmit(dto));
     }
     }
 
 

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

@@ -232,5 +232,10 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         return fileMapper.getAllPdfFileUrlByProjectIdAndFileType(projectId);
         return fileMapper.getAllPdfFileUrlByProjectIdAndFileType(projectId);
     }
     }
 
 
+    @Override
+    public boolean updateArchiveFileByBoxNameOne(String boxName, Integer boxNumber) {
+        return this.iArchiveFileService.updateArchiveFileByBoxNameOne(boxName,boxNumber);
+    }
+
 
 
 }
 }

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

@@ -84,6 +84,9 @@
             <when test="vo.isArchive != null and vo.isArchive != ''">
             <when test="vo.isArchive != null and vo.isArchive != ''">
                 and  is_auto_file = #{vo.isArchive}
                 and  is_auto_file = #{vo.isArchive}
             </when>
             </when>
+            <when test="vo.archiveId != null and vo.archiveId != ''">
+                and 1=1
+            </when>
             <otherwise>
             <otherwise>
                 and (is_auto_file is null or is_auto_file != 1)
                 and (is_auto_file is null or is_auto_file != 1)
             </otherwise>
             </otherwise>
@@ -124,6 +127,9 @@
             <when test="vo.isArchive != null and vo.isArchive != ''">
             <when test="vo.isArchive != null and vo.isArchive != ''">
                 and  is_auto_file = #{vo.isArchive}
                 and  is_auto_file = #{vo.isArchive}
             </when>
             </when>
+            <when test="vo.archiveId != null and vo.archiveId != ''">
+                and 1=1
+            </when>
             <otherwise>
             <otherwise>
                 and (is_auto_file is null or is_auto_file != 1)
                 and (is_auto_file is null or is_auto_file != 1)
             </otherwise>
             </otherwise>
@@ -145,6 +151,7 @@
             )
             )
         </if>
         </if>
         order by sort,create_time DESC
         order by sort,create_time DESC
+        limit #{current}, #{size}
     </select>
     </select>
 
 
     <select id="selectArchiveFilePageByBoxNameCount" resultType="java.lang.Integer">
     <select id="selectArchiveFilePageByBoxNameCount" resultType="java.lang.Integer">
@@ -158,9 +165,6 @@
         <if test="vo.projectId != null and vo.projectId != ''">
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
             and project_id = #{vo.projectId}
         </if>
         </if>
-        <if test="vo.contractId != null and vo.contractId != ''">
-            and contract_id = #{vo.contractId}
-        </if>
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
             and node_id in
             and node_id in
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
@@ -188,6 +192,7 @@
             )
             )
         </if>
         </if>
         order by box_number,sort,create_time DESC
         order by box_number,sort,create_time DESC
+
     </select>
     </select>
     <select id="selectArchiveFilePageByBoxName" resultMap="archiveFileResultMap">
     <select id="selectArchiveFilePageByBoxName" resultMap="archiveFileResultMap">
         select * from u_archive_file where is_deleted = 0 and (is_auto_file is null or is_auto_file != 1)
         select * from u_archive_file where is_deleted = 0 and (is_auto_file is null or is_auto_file != 1)
@@ -200,9 +205,6 @@
         <if test="vo.projectId != null and vo.projectId != ''">
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
             and project_id = #{vo.projectId}
         </if>
         </if>
-        <if test="vo.contractId != null and vo.contractId != ''">
-            and contract_id = #{vo.contractId}
-        </if>
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
         <if test="vo.nodeIds != null and vo.nodeIds != ''">
             and node_id in
             and node_id in
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
             <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
@@ -230,6 +232,7 @@
             )
             )
         </if>
         </if>
         order by box_number,sort,create_time DESC
         order by box_number,sort,create_time DESC
+        limit #{current}, #{size}
     </select>
     </select>
     <select id="getDeleteDataByIds" resultType="org.springblade.business.entity.ArchiveFile">
     <select id="getDeleteDataByIds" resultType="org.springblade.business.entity.ArchiveFile">
         select * from u_archive_file where id in
         select * from u_archive_file where id in
@@ -256,7 +259,7 @@
 
 
     <select id="selectBoxNameAndBoxNumber" resultType="java.util.Map">
     <select id="selectBoxNameAndBoxNumber" resultType="java.util.Map">
         select box_name as boxName,box_number as boxNumber,group_concat(DISTINCT id ORDER BY id ASC SEPARATOR ',') as ids
         select box_name as boxName,box_number as boxNumber,group_concat(DISTINCT id ORDER BY id ASC SEPARATOR ',') as ids
-         from u_archive_file where node_id = #{nodeId} and box_number is not null
+         from u_archive_file where node_id = #{nodeId} and (box_number is not null or box_number != '')
          group by box_name order by box_number asc
          group by box_name order by box_number asc
     </select>
     </select>
 
 

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IArchiveFileService.java

@@ -67,4 +67,6 @@ public interface IArchiveFileService extends BaseService<ArchiveFile> {
 	boolean updateArchiveFileByNodeId(String ids, String nodeId);
 	boolean updateArchiveFileByNodeId(String ids, String nodeId);
 
 
 	List<ArchiveFile> getArchiveFileByArchivesId(String archivesIds,String fileIds);
 	List<ArchiveFile> getArchiveFileByArchivesId(String archivesIds,String fileIds);
+
+	boolean updateArchiveFileByBoxNameOne(String boxName, Integer boxNumber);
 }
 }

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialSelfInspectionRecordService.java

@@ -15,7 +15,7 @@ public interface ITrialSelfInspectionRecordService extends BaseService<TrialSelf
 
 
     IPage<TrialSelfInspectionRecordVO> selfPage(IPage<TrialSelfInspectionRecord> page, TrialSelfInspectionRecordPageDTO dto) throws FileNotFoundException;
     IPage<TrialSelfInspectionRecordVO> selfPage(IPage<TrialSelfInspectionRecord> page, TrialSelfInspectionRecordPageDTO dto) throws FileNotFoundException;
 
 
-    String selfSubmit(TrialSelfInspectionRecordDTO dto) throws FileNotFoundException;
+    String selfSubmit(TrialSelfInspectionRecordDTO dto);
 
 
     List<TrialSampleInfoVO> selfSampleList(String id);
     List<TrialSampleInfoVO> selfSampleList(String id);
 
 

+ 26 - 8
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java

@@ -17,10 +17,7 @@ import org.springblade.system.feign.IDictBizClient;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**
 /**
  *  服务实现类
  *  服务实现类
@@ -98,7 +95,21 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
 
 
 	@Override
 	@Override
 	public void updateArchiveFileSort(List<ArchiveFileVO> list) {
 	public void updateArchiveFileSort(List<ArchiveFileVO> list) {
-
+		List<Integer> listInt = new ArrayList<>();
+		for(int i=0;i<list.size();i++){
+			listInt.add(list.get(i).getSort());
+		}
+		//按照从大到小进行排序
+//		Collections.sort(listInt, new Comparator<Integer>() {
+//			@Override
+//			public int compare(Integer integer, Integer t1) {
+//				return integer-t1;
+//			}
+//		});
+		Collections.sort(listInt);
+		for(int i=0;i<list.size();i++){
+			list.get(i).setSort(listInt.get(i));
+		}
 		this.updateBatchById(JSONArray.parseArray(JSONObject.toJSONString(list), ArchiveFile.class));
 		this.updateBatchById(JSONArray.parseArray(JSONObject.toJSONString(list), ArchiveFile.class));
 	}
 	}
 
 
@@ -107,14 +118,16 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
 		List<Object> list = (List< Object>) jsons.get("list");
 		List<Object> list = (List< Object>) jsons.get("list");
 		for(int i = 0 ;i<list.size();i++){
 		for(int i = 0 ;i<list.size();i++){
 			Map<String,Object> map = (Map<String, Object>) list.get(i);
 			Map<String,Object> map = (Map<String, Object>) list.get(i);
-			String ids = (String) map.get("ids");
 			String boxName = (String) map.get("boxName");
 			String boxName = (String) map.get("boxName");
 			Integer boxNumber = (Integer) map.get("boxNumber");
 			Integer boxNumber = (Integer) map.get("boxNumber");
-			if(ids == null || boxName == null || boxNumber == null){
+			if(boxName == null || boxNumber == null){
 				continue;
 				continue;
 			}
 			}
 			baseMapper.updateArchiveFileByBoxNameOne(boxName,boxNumber);
 			baseMapper.updateArchiveFileByBoxNameOne(boxName,boxNumber);
-			baseMapper.updateArchiveFileByBoxName(Func.toLongList(ids),boxName,boxNumber);
+			if(map.get("ids") != null ) {
+				String ids = (String) map.get("ids");
+				baseMapper.updateArchiveFileByBoxName(Func.toLongList(ids), boxName, boxNumber);
+			}
 		}
 		}
 		return true;
 		return true;
 	}
 	}
@@ -156,6 +169,11 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
 		}
 		}
 	}
 	}
 
 
+	@Override
+	public boolean updateArchiveFileByBoxNameOne(String boxName, Integer boxNumber) {
+		return baseMapper.updateArchiveFileByBoxNameOne(boxName,boxNumber);
+	}
+
 
 
 	@Override
 	@Override
 	public IPage<ArchiveFileVO> selectArchiveFilePageByBoxName(ArchiveFileVO vo) {
 	public IPage<ArchiveFileVO> selectArchiveFilePageByBoxName(ArchiveFileVO vo) {

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDetectionDataServiceImpl.java

@@ -224,7 +224,7 @@ public class TrialDetectionDataServiceImpl extends BaseServiceImpl<TrialDetectio
 
 
         List<Map<String, String>> resultMapList = new ArrayList<>();
         List<Map<String, String>> resultMapList = new ArrayList<>();
         //获取当前合同段下的试验节点下的表
         //获取当前合同段下的试验节点下的表
-        WbsTreePrivate trialNode = jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id =" + nodePKeyId, new BeanPropertyRowMapper<>(WbsTreePrivate.class)).stream().findAny().orElse(null);
+        WbsTreePrivate trialNode = jdbcTemplate.query("select id,project_id,wbs_id,wbs_type from m_wbs_tree_private where p_key_id =" + nodePKeyId, new BeanPropertyRowMapper<>(WbsTreePrivate.class)).stream().findAny().orElse(null);
         if (trialNode != null) {
         if (trialNode != null) {
             List<WbsTreePrivate> trialNodeTabs = jdbcTemplate.query("select p_key_id,html_url from m_wbs_tree_private where html_url is not null and is_deleted = 0 and status = 1 and type = 2 and parent_id =" + trialNode.getId() + " and project_id =" + trialNode.getProjectId() + " and wbs_id = " + trialNode.getWbsId() + " and wbs_type = " + trialNode.getWbsType() + " and (trial_tab_contract_id is null OR (trial_tab_contract_id = " + contractId + "))", new BeanPropertyRowMapper<>(WbsTreePrivate.class));
             List<WbsTreePrivate> trialNodeTabs = jdbcTemplate.query("select p_key_id,html_url from m_wbs_tree_private where html_url is not null and is_deleted = 0 and status = 1 and type = 2 and parent_id =" + trialNode.getId() + " and project_id =" + trialNode.getProjectId() + " and wbs_id = " + trialNode.getWbsId() + " and wbs_type = " + trialNode.getWbsType() + " and (trial_tab_contract_id is null OR (trial_tab_contract_id = " + contractId + "))", new BeanPropertyRowMapper<>(WbsTreePrivate.class));
             for (WbsTreePrivate trialNodeTab : trialNodeTabs) {
             for (WbsTreePrivate trialNodeTab : trialNodeTabs) {

+ 7 - 4
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java

@@ -184,11 +184,11 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
             }
             }
             this.saveOrUpdate(trialSampleInfo);
             this.saveOrUpdate(trialSampleInfo);
 
 
-            if (obj.getId() != null && obj.getMobilizationId() != null && obj.getMobilizationId() != -1) {
-                TrialSamplingRecord trialSamplingRecord = trialSamplingRecordMapper.selectByMobilizationIdAndSampleInfoId(obj.getMobilizationId(), obj.getId());
+            if (trialSampleInfo.getId() != null && obj.getMobilizationId() != null && obj.getMobilizationId() != -1) {
+                TrialSamplingRecord trialSamplingRecord = trialSamplingRecordMapper.selectByMobilizationIdAndSampleInfoId(obj.getMobilizationId(), trialSampleInfo.getId());
                 if (trialSamplingRecord == null) {
                 if (trialSamplingRecord == null) {
-                    trialSamplingRecordMapper.deleteBySampleInfoId(obj.getId());
-                    trialSamplingRecordMapper.insertRecord(SnowFlakeUtil.getId(), obj.getMobilizationId(), obj.getId());
+                    trialSamplingRecordMapper.deleteBySampleInfoId(trialSampleInfo.getId());
+                    trialSamplingRecordMapper.insertRecord(SnowFlakeUtil.getId(), obj.getMobilizationId(), trialSampleInfo.getId());
                 }
                 }
             }
             }
         }
         }
@@ -267,6 +267,9 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
         data.forEach(excel -> {
         data.forEach(excel -> {
             TrialSampleInfo trialSampleInfo = BeanUtil.copyProperties(excel, TrialSampleInfo.class);
             TrialSampleInfo trialSampleInfo = BeanUtil.copyProperties(excel, TrialSampleInfo.class);
             if (trialSampleInfo != null) {
             if (trialSampleInfo != null) {
+                if (StringUtils.isNotEmpty(excel.getMaterialCount())) {
+                    trialSampleInfo.setMaterialCount(excel.getMaterialCount());
+                }
                 List<TrialSampleInfo> query = jdbcTemplate.query("select id,material_name from u_trial_sample_info where is_deleted = 0 and specification_number = '" + trialSampleInfo.getSpecificationNumber() + "' and contract_id = " + contractId, new BeanPropertyRowMapper<>(TrialSampleInfo.class));
                 List<TrialSampleInfo> query = jdbcTemplate.query("select id,material_name from u_trial_sample_info where is_deleted = 0 and specification_number = '" + trialSampleInfo.getSpecificationNumber() + "' and contract_id = " + contractId, new BeanPropertyRowMapper<>(TrialSampleInfo.class));
                 if (query.size() > 0) {
                 if (query.size() > 0) {
                     TrialSampleInfo obj = query.stream().findAny().orElse(null);
                     TrialSampleInfo obj = query.stream().findAny().orElse(null);

+ 17 - 16
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java

@@ -45,6 +45,7 @@ import org.springblade.system.entity.Dict;
 import org.springblade.system.feign.IDictClient;
 import org.springblade.system.feign.IDictClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springblade.system.user.feign.IUserClient;
+import org.springframework.cloud.openfeign.BladeFeignClientsRegistrar;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -872,7 +873,7 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
-    public String selfSubmit(TrialSelfInspectionRecordDTO dto) throws FileNotFoundException {
+    public String selfSubmit(TrialSelfInspectionRecordDTO dto){
         //------初始当前填报的表pKeyIds------
         //------初始当前填报的表pKeyIds------
         this.initTrialTabIds(dto);
         this.initTrialTabIds(dto);
 
 
@@ -885,26 +886,26 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
         if (ObjectUtil.isNotEmpty(dto.getId())) {
         if (ObjectUtil.isNotEmpty(dto.getId())) {
             //------获取最新试验记录------
             //------获取最新试验记录------
             TrialSelfInspectionRecord obj = baseMapper.selectById(dto.getId());
             TrialSelfInspectionRecord obj = baseMapper.selectById(dto.getId());
-
-            //------编辑时记录表编号或报告单编号为Null的重新生成------
-            this.reBuildNumber(obj, dto);
-
-            //------保存实体表数据、试验记录信息、生成PDF------
             try {
             try {
+                //------编辑时记录表编号或报告单编号为Null的重新生成------
+                this.reBuildNumber(obj, dto);
+
+                //------保存实体表数据、试验记录信息、生成PDF------
                 this.submitTrialData(obj, dto);
                 this.submitTrialData(obj, dto);
-            } catch (Exception e) {
-                e.printStackTrace();
-                throw new RuntimeException("保存试验记录信息失败,请联系管理员 " + e.getMessage());
-            }
 
 
-            //------关联原材料检测报告------
-            this.rawMaterialSubmitRelation(dto, obj);
+                //------关联原材料检测报告------
+                this.rawMaterialSubmitRelation(dto, obj);
+
+                //------关联取样信息------
+                this.recordSampleSubmit(dto, obj);
 
 
-            //------关联取样信息------
-            this.recordSampleSubmit(dto, obj);
+                //------关联新增设备使用记录信息------
+                this.trialDeviceUseService.addDeviceUseInfo(dto);
 
 
-            //------关联新增设备使用记录信息------
-            this.trialDeviceUseService.addDeviceUseInfo(dto);
+            } catch (Exception e) {
+                e.printStackTrace();
+                throw new RuntimeException(e.getMessage());
+            }
         }
         }
         return dto.getId().toString();
         return dto.getId().toString();
     }
     }

+ 34 - 0
blade-service/blade-control/pom.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>blade-service</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>2.9.1.RELEASE</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>blade-control</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-control-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+</project>

+ 22 - 0
blade-service/blade-control/src/main/java/org/springblade/ControlApplication.java

@@ -0,0 +1,22 @@
+package org.springblade;
+
+import org.springblade.common.constant.BusinessConstant;
+import org.springblade.core.cloud.feign.EnableBladeFeign;
+import org.springblade.core.launch.BladeApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+
+/**
+ * 客户端启动类
+ */
+@EnableAsync
+@EnableBladeFeign
+@SpringCloudApplication
+public class ControlApplication {
+
+    public static void main(String[] args){
+        BladeApplication.run(BusinessConstant.APPLICATION_CONTROL_NAME, ControlApplication.class, args);
+    }
+
+}

+ 30 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/PlanInfoController.java

@@ -0,0 +1,30 @@
+package org.springblade.control.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.PlanInfo;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/plan")
+@Api(value = "计划接口", tags = "计划接口")
+public class PlanInfoController extends BladeController {
+
+    @PostMapping("/page")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "计划分页查询")
+    public IPage<PlanInfo> page(@RequestBody PlanInfo vo) {
+        return null;
+    }
+
+}

+ 7 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanInfoMapper.java

@@ -0,0 +1,7 @@
+package org.springblade.control.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.control.entity.PlanInfo;
+
+public interface PlanInfoMapper extends BaseMapper<PlanInfo> {
+}

+ 19 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanInfoMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.control.mapper.PlanInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="resultMap" type="org.springblade.control.entity.PlanInfo">
+        <result column="id" property="id"/>
+        <result column="plan_name" property="planName"/>
+        <result column="plan_number" property="planNumber"/>
+        <result column="plan_dept" property="planDept"/>
+        <result column="plan_type" property="planType"/>
+        <result column="plan_start_date" property="planStartDate"/>
+        <result column="plan_end_date" property="planEndDate"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+</mapper>

+ 10 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/PlanInfoService.java

@@ -0,0 +1,10 @@
+package org.springblade.control.service;
+
+import org.springblade.control.entity.PlanInfo;
+import org.springblade.core.mp.base.BaseService;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface PlanInfoService extends BaseService<PlanInfo> {
+
+}

+ 14 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInfoServiceImpl.java

@@ -0,0 +1,14 @@
+package org.springblade.control.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.PlanInfo;
+import org.springblade.control.mapper.PlanInfoMapper;
+import org.springblade.control.service.PlanInfoService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service
+public class PlanInfoServiceImpl extends BaseServiceImpl<PlanInfoMapper, PlanInfo> implements PlanInfoService {
+
+}

+ 4 - 0
blade-service/blade-control/src/main/java/org/springblade/control/wrapper/test.java

@@ -0,0 +1,4 @@
+package org.springblade.control.wrapper;
+
+public class test {
+}

+ 13 - 0
blade-service/blade-control/src/main/resources/application-dev.yml

@@ -0,0 +1,13 @@
+#服务器端口
+server:
+  port: 8687
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
+
+
+

+ 10 - 0
blade-service/blade-control/src/main/resources/application-prod.yml

@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8686
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}

+ 10 - 0
blade-service/blade-control/src/main/resources/application-test.yml

@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8686
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}

+ 13 - 0
blade-service/blade-control/target/classes/application-dev.yml

@@ -0,0 +1,13 @@
+#服务器端口
+server:
+  port: 8687
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
+
+
+

+ 10 - 0
blade-service/blade-control/target/classes/application-prod.yml

@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8686
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}

+ 10 - 0
blade-service/blade-control/target/classes/application-test.yml

@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8686
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}

BIN
blade-service/blade-control/target/classes/org/springblade/control/ControlApplication.class


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

@@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import com.spire.xls.CellRange;
-import com.spire.xls.ExcelPicture;
-import com.spire.xls.Workbook;
-import com.spire.xls.Worksheet;
+import com.spire.xls.*;
 import com.spire.xls.core.spreadsheet.HTMLOptions;
 import com.spire.xls.core.spreadsheet.HTMLOptions;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
@@ -1864,6 +1861,7 @@ public class ExcelTabController extends BladeController {
                                     cellRange.getStyle().setWrapText(true);
                                     cellRange.getStyle().setWrapText(true);
                                 }
                                 }
                                 cellRange.getStyle().getFont().setSize(18);
                                 cellRange.getStyle().getFont().setSize(18);
+                                cellRange.getStyle().setHorizontalAlignment(HorizontalAlignType.Center);
                                 cellRange.setText(projectInfo.getProjectName());
                                 cellRange.setText(projectInfo.getProjectName());
                                 break;
                                 break;
                             }
                             }

+ 5 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -19,8 +19,11 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
     private ArchiveTreeContractMapper archiveTreeContractMapper;
     private ArchiveTreeContractMapper archiveTreeContractMapper;
 
 
     @Override
     @Override
-    public List<ArchiveTreeContract> queryAllChildByAncestors(String id) {
-        List<ArchiveTreeContract> archiveTreeList = this.archiveTreeContractService.list(Wrappers.<ArchiveTreeContract>lambdaQuery().like(ArchiveTreeContract::getAncestors, id));
+    public List<ArchiveTreeContract> queryAllChildByAncestors(String id,Long contractId) {
+        String authCode = this.archiveTreeContractService.getAuthCode(contractId);
+
+//        List<ArchiveTreeContract> archiveTreeList = this.archiveTreeContractService.list(Wrappers.<ArchiveTreeContract>lambdaQuery().like(ArchiveTreeContract::getAncestors, id));
+        List<ArchiveTreeContract> archiveTreeList = archiveTreeContractMapper.getAuthCodeList(id,authCode,contractId);
         if(archiveTreeList == null || archiveTreeList.size() <= 0){
         if(archiveTreeList == null || archiveTreeList.size() <= 0){
             //有可能已经是最底节点
             //有可能已经是最底节点
             archiveTreeList = new ArrayList<>();
             archiveTreeList = new ArrayList<>();

+ 26 - 37
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ExcelTabClientImpl.java

@@ -3,6 +3,7 @@ package org.springblade.manager.feign;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
 import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
 import org.springblade.business.entity.InformationQuery;
 import org.springblade.business.entity.InformationQuery;
 import org.springblade.business.entity.TrialSelfInspectionRecord;
 import org.springblade.business.entity.TrialSelfInspectionRecord;
@@ -74,47 +75,35 @@ public class ExcelTabClientImpl implements ExcelTabClient {
             TableInfo tableInfo = tableInfoList.stream().findAny().orElse(null);
             TableInfo tableInfo = tableInfoList.stream().findAny().orElse(null);
             if (tableInfo != null && tabIds.contains(tableInfo.getPkeyId())) {
             if (tableInfo != null && tabIds.contains(tableInfo.getPkeyId())) {
                 //构造pdf
                 //构造pdf
-                excelTabService.getBussPDFTrial(Long.valueOf(tableInfo.getPkeyId()), contractId, id, 0, 0, dto);
-
-                //重新合并pdf
-                List<TrialSelfDataRecord> query = jdbcTemplate.query("select pdf_url from u_trial_self_data_record where record_id = " + id, new BeanPropertyRowMapper<>(TrialSelfDataRecord.class));
-                List<String> pdfList = query.stream().map(TrialSelfDataRecord::getPdfUrl).collect(Collectors.toList());
-
-                String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
-                String pdfPath = file_path + "/pdf//" + id + "_2.pdf";
-                File tabPdf = ResourceUtil.getFile(pdfPath);
-                if (tabPdf.exists()) {
-                    tabPdf.delete();
-                }
-                FileUtils.mergePdfPublicMethods(pdfList, pdfPath);
-                BladeFile bladeFile = newIOSSClient.uploadFile(id + "2.pdf", pdfPath);
-
-                jdbcTemplate.execute("update u_trial_self_inspection_record set pdf_url = '" + bladeFile.getLink() + "' where id = " + id);
-
-                //获取试验记录id的试验项目名称,重新合并pdf集合(解决单表保存后上报找不到题名问题)
-                TrialSelfInspectionRecord obj = jdbcTemplate.query("select trial_project_name from u_trial_self_inspection_record where id = " + id, new BeanPropertyRowMapper<>(TrialSelfInspectionRecord.class)).stream().findAny().orElse(null);
-                List<InformationQuery> query2 = jdbcTemplate.query("select id from u_information_query where classify ='" + type + "' and wbs_id ='" + id + "' and contract_id ='" + contractId + "'", new BeanPropertyRowMapper<>(InformationQuery.class));
-                if (obj != null && query2.size() > 0) {
-                    jdbcTemplate.execute("update u_information_query set pdf_url ='" + bladeFile.getLink() + "', name ='" + obj.getTrialProjectName() + "'  where classify='" + type + "' and  wbs_id='" + id + "' and contract_id ='" + contractId + "'");
-                } else {
-                    if (obj != null) {
-                        informationQueryClient.saveData(id.toString(), projectId, contractId, type.toString(), bladeFile.getLink(), obj.getTrialProjectName());
+                String bussPDFTrial = excelTabService.getBussPDFTrial(Long.valueOf(tableInfo.getPkeyId()), contractId, id, 0, 0, dto);
+                if (StringUtils.isNotEmpty(bussPDFTrial)){
+                    //重新合并pdf
+                    List<TrialSelfDataRecord> query = jdbcTemplate.query("select pdf_url from u_trial_self_data_record where record_id = " + id, new BeanPropertyRowMapper<>(TrialSelfDataRecord.class));
+                    List<String> pdfList = query.stream().map(TrialSelfDataRecord::getPdfUrl).collect(Collectors.toList());
+                    String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+                    String pdfPath = file_path + "/pdf//" + id + "_2.pdf";
+                    File tabPdf = ResourceUtil.getFile(pdfPath);
+                    if (tabPdf.exists()) {
+                        tabPdf.delete();
+                    }
+                    FileUtils.mergePdfPublicMethods(pdfList, pdfPath);
+                    BladeFile bladeFile = newIOSSClient.uploadFile(id + "2.pdf", pdfPath);
+                    if (bladeFile != null) {
+                        //重新合并pdf集合(解决单表保存后上报找不到题名问题)
+                        List<InformationQuery> query2 = jdbcTemplate.query("select id from u_information_query where classify ='" + type + "' and wbs_id ='" + id + "' and contract_id ='" + contractId + "'", new BeanPropertyRowMapper<>(InformationQuery.class));
+                        if (query2.size() > 0) {
+                            jdbcTemplate.execute("update u_information_query set pdf_url ='" + bladeFile.getLink() + "', name ='" + (StringUtils.isNotEmpty(dto.getTrialProjectName()) ? dto.getTrialProjectName() : "") + "'  where classify='" + type + "' and  wbs_id='" + id + "' and contract_id ='" + contractId + "'");
+                        } else {
+                            informationQueryClient.saveData(id.toString(), projectId, contractId, type.toString(), bladeFile.getLink(), (StringUtils.isNotEmpty(dto.getTrialProjectName()) ? dto.getTrialProjectName() : ""));
+                        }
+                        pdfUrl = bladeFile.getLink();
                     }
                     }
                 }
                 }
             }
             }
 
 
         } else if (isBatchSave == 1) {
         } else if (isBatchSave == 1) {
-            /**
-             * ------多表PDF保存------
-             * tableType=表类型 1=记录表 2=报告单
-             * type=所属方 1=施工质检 2=监理抽检
-             * contractId=合同段id
-             * projectId=项目id
-             * id=记录id
-             * tabIds=表的pKeyIds
-             */
-            pdfUrl = excelTabService.getBussPDFSTrial(nodeId, tableType, String.valueOf(type), contractId, projectId, id, tabIds,dto);
-
+            //------多表PDF保存------
+            pdfUrl = excelTabService.getBussPDFSTrial(nodeId, tableType, String.valueOf(type), contractId, projectId, id, tabIds, dto);
         }
         }
         return pdfUrl;
         return pdfUrl;
     }
     }
@@ -126,7 +115,7 @@ public class ExcelTabClientImpl implements ExcelTabClient {
 
 
     @Override
     @Override
     public String getBussPDFSTrial(String nodeId, String tableType, String classify, String contractId, String projectId, String id, String tabIds) throws Exception {
     public String getBussPDFSTrial(String nodeId, String tableType, String classify, String contractId, String projectId, String id, String tabIds) throws Exception {
-        return excelTabService.getBussPDFSTrial(nodeId, tableType, classify, contractId, projectId, Long.parseLong(id), tabIds,null);
+        return excelTabService.getBussPDFSTrial(nodeId, tableType, classify, contractId, projectId, Long.parseLong(id), tabIds, null);
     }
     }
 
 
 
 

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

@@ -84,4 +84,6 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
     List<ArchiveTreeContractVO3> getArchiveTreeByNodeType2(@Param("projectId")Long projectId);
     List<ArchiveTreeContractVO3> getArchiveTreeByNodeType2(@Param("projectId")Long projectId);
 
 
 	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(@Param("nodeId") Long nodeId);
 	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(@Param("nodeId") Long nodeId);
+
+	List<ArchiveTreeContract> getAuthCodeList(@Param("id") String id,@Param("authCode") String authCode,@Param("contractId") Long contractId);
 }
 }

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -394,5 +394,18 @@
             as notExsitChild
             as notExsitChild
         from m_archive_tree_contract matc1 WHERE matc1.parent_id = #{nodeId} and matc1.is_deleted =0
         from m_archive_tree_contract matc1 WHERE matc1.parent_id = #{nodeId} and matc1.is_deleted =0
     </select>
     </select>
+    <select id="getAuthCodeList" resultMap="archiveTreeContractResultMap">
+        SELECT
+        d.id
+        FROM
+        m_archive_tree_contract d
+        WHERE
+        d.is_deleted = 0
+        AND d.ancestors like concat('%',#{id},'%')
 
 
+        <if test="authCode !=null and authCode !=''">
+            AND (d.tree_code = #{authCode} or d.tree_code = #{contractId} or d.parent_id = 0)
+        </if>
+        ORDER BY d.sort
+    </select>
 </mapper>
 </mapper>

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

@@ -99,4 +99,5 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
     List<ArchiveTreeContractVO3> getArchiveTreeByNodeType(Long projectId, Long nodeType);
     List<ArchiveTreeContractVO3> getArchiveTreeByNodeType(Long projectId, Long nodeType);
 
 
 	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(Long nodeId);
 	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(Long nodeId);
+	String getAuthCode(Long contractId);
 }
 }

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

@@ -388,10 +388,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     list.forEach(e-> coordinateMap.computeIfAbsent(e.getInitTableName(), k -> FormulaUtils.getElementCell(e.getHtmlUrl())));
                     list.forEach(e-> coordinateMap.computeIfAbsent(e.getInitTableName(), k -> FormulaUtils.getElementCell(e.getHtmlUrl())));
                 }
                 }
             }
             }
-
         }
         }
-
-
         return coordinateMap;
         return coordinateMap;
     }
     }
 
 
@@ -967,29 +964,29 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         if(file1.exists()){
         if(file1.exists()){
 
 
 
 
-        FileInputStream fileInputStream = new FileInputStream(file1);
-        String htmlString = IoUtil.readToString(fileInputStream);
-        Document doc = Jsoup.parse(htmlString);
-        Element table = doc.select("table").first();
-        Elements trs = table.select("tr");
-
-        for (int i = 0; i <= trs.size() - 1; i++) {
-            Element tr = trs.get(i);
-            Elements tds = tr.select("td");
-            for (int j = 0; j < tds.size(); j++) {
-                Element data = tds.get(j);
-                if (!data.children().isEmpty()) {
-                    String keyVal = i + "_" + j;
-                    String keyname = data.children().get(0).attr("keyname");
-                    if (StringUtils.isNotEmpty(keyname)) {
-                        String[] keys = keyname.split("__");
-                        String datakey = keys[0];
-                        dataMap.merge(datakey, keyVal, (v1, v2) -> v1 + ";" + v2);
+            FileInputStream fileInputStream = new FileInputStream(file1);
+            String htmlString = IoUtil.readToString(fileInputStream);
+            Document doc = Jsoup.parse(htmlString);
+            Element table = doc.select("table").first();
+            Elements trs = table.select("tr");
+
+            for (int i = 0; i <= trs.size() - 1; i++) {
+                Element tr = trs.get(i);
+                Elements tds = tr.select("td");
+                for (int j = 0; j < tds.size(); j++) {
+                    Element data = tds.get(j);
+                    if (!data.children().isEmpty()) {
+                        String keyVal = i + "_" + j;
+                        String keyname = data.children().get(0).attr("keyname");
+                        if (StringUtils.isNotEmpty(keyname)) {
+                            String[] keys = keyname.split("__");
+                            String datakey = keys[0];
+                            dataMap.merge(datakey, keyVal, (v1, v2) -> v1 + ";" + v2);
+                        }
                     }
                     }
                 }
                 }
             }
             }
         }
         }
-        }
         return dataMap;
         return dataMap;
     }
     }
 
 
@@ -2044,7 +2041,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             DataInfo.putAll(bussDataInfoTrial.stream().findAny().orElse(null));
             DataInfo.putAll(bussDataInfoTrial.stream().findAny().orElse(null));
         }
         }
 
 
-        org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(CommonUtil.getOSSInputStream(excelTab.getFileUrl()));
+        org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(Objects.requireNonNull(CommonUtil.getOSSInputStream(excelTab.getFileUrl())));
         Sheet sheet = workbook.getSheetAt(0);
         Sheet sheet = workbook.getSheetAt(0);
         sheet.setForceFormulaRecalculation(true);
         sheet.setForceFormulaRecalculation(true);
         Header header = sheet.getHeader();
         Header header = sheet.getHeader();
@@ -2394,7 +2391,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     //没有excel表单的不生成pdf
                     //没有excel表单的不生成pdf
                     if (StringUtils.isNotEmpty(record.getHtmlUrl())) {
                     if (StringUtils.isNotEmpty(record.getHtmlUrl())) {
                         //生成记录表pdf
                         //生成记录表pdf
-                        String bussPdfInfo = this.getBussPDFTrial(record.getPKeyId(), contractId, id, recordPageNumber++, recordPageNumberCount,null);
+                        String bussPdfInfo = this.getBussPDFTrial(record.getPKeyId(), contractId, id, recordPageNumber++, recordPageNumberCount, null);
                         if (StringUtils.isNotEmpty(bussPdfInfo)) {
                         if (StringUtils.isNotEmpty(bussPdfInfo)) {
                             dataPdfUrls.add(bussPdfInfo);
                             dataPdfUrls.add(bussPdfInfo);
                         }
                         }
@@ -2410,21 +2407,19 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
         }
         FileUtils.mergePdfPublicMethods(dataPdfUrls, listPdf);
         FileUtils.mergePdfPublicMethods(dataPdfUrls, listPdf);
         BladeFile bladeFile = this.newIOSSClient.uploadFile(nodeId + ".pdf", listPdf);
         BladeFile bladeFile = this.newIOSSClient.uploadFile(nodeId + ".pdf", listPdf);
-
-        //获取试验记录id的试验项目名称
-        String trialProjectName = baseMapper.selectTrialRecordOne(id);
-
-        //修改合并后的pdf路径
-        String querySql = "select id from u_information_query where classify ='" + classify + "' and wbs_id ='" + id + "' and contract_id ='" + contractId + "'";
-        List<InformationQuery> query = jdbcTemplate.query(querySql, new BeanPropertyRowMapper<>(InformationQuery.class));
-        if (query.size() > 0) {
-            String updateSql = "update u_information_query set pdf_url ='" + bladeFile.getLink() + "', name ='" + (StringUtils.isNotEmpty(trialProjectName) ? trialProjectName : "") + "'  where classify='" + classify + "' and  wbs_id='" + id + "' and contract_id ='" + contractId + "'";
-            jdbcTemplate.execute(updateSql);
-        } else {
-            informationQueryClient.saveData(id.toString(), projectId, contractId, classify, bladeFile.getLink(), StringUtils.isNotEmpty(trialProjectName) ? trialProjectName : "");
+        if (bladeFile != null) {
+            //修改合并后的pdf路径
+            String querySql = "select id from u_information_query where classify ='" + classify + "' and wbs_id ='" + id + "' and contract_id ='" + contractId + "'";
+            List<InformationQuery> query = jdbcTemplate.query(querySql, new BeanPropertyRowMapper<>(InformationQuery.class));
+            if (query.size() > 0) {
+                String updateSql = "update u_information_query set pdf_url ='" + bladeFile.getLink() + "', name ='" + (StringUtils.isNotEmpty(dto.getTrialProjectName()) ? dto.getTrialProjectName() : "") + "'  where classify='" + classify + "' and  wbs_id='" + id + "' and contract_id ='" + contractId + "'";
+                jdbcTemplate.execute(updateSql);
+            } else {
+                informationQueryClient.saveData(id.toString(), projectId, contractId, classify, bladeFile.getLink(), StringUtils.isNotEmpty(dto.getTrialProjectName()) ? dto.getTrialProjectName() : "");
+            }
+            return bladeFile.getLink();
         }
         }
-
-        return bladeFile.getLink();
+        return "";
     }
     }
 
 
     /**
     /**