Browse Source

Merge remote-tracking branch 'origin/master'

liuyc 2 years ago
parent
commit
c49cf25de4
27 changed files with 214 additions and 138 deletions
  1. 7 8
      blade-auth/blade-auth.iml
  2. 8 0
      blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java
  3. 1 1
      blade-ops/blade-xxljob-admin/doc/db/tables_xxl_job.sql
  4. 0 1
      blade-service-api/blade-user-api/blade-user-api.iml
  5. 1 1
      blade-service/blade-archive/pom.xml
  6. 1 1
      blade-service/blade-archive/src/main/java/org/springblade/archive/config/ThreadPoolConfig.java
  7. 2 2
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java
  8. 2 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java
  9. 14 1
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml
  10. 23 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java
  11. 1 1
      blade-service/blade-business/pom.xml
  12. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java
  13. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  14. 0 1
      blade-service/blade-desk/blade-desk.iml
  15. 6 6
      blade-service/blade-manager/pom.xml
  16. 7 4
      blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java
  17. 19 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/LinkdataInfoController.java
  18. 8 26
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java
  19. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml
  20. 23 28
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  21. 63 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FTPUtils.java
  22. 22 48
      blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java
  23. 0 1
      blade-service/blade-system/blade-system.iml
  24. BIN
      logs/backup/2023-06-01/cfca-logging-environment.20230601.0.log.zip
  25. BIN
      logs/backup/2023-06-01/cfca-logging-error.20230601.0.log.zip
  26. BIN
      logs/backup/2023-06-01/cfca-logging-info.20230601.0.log.zip
  27. BIN
      logs/backup/2023-06-02/cfca-logging-info.20230602.0.log.zip

+ 7 - 8
blade-auth/blade-auth.iml

@@ -70,6 +70,12 @@
     <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.5.30" level="project" />
     <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.7" level="project" />
     <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
+    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.4" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
     <orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.7" level="project" />
     <orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" />
     <orderEntry type="library" name="Maven: io.opentracing:opentracing-api:0.33.0" level="project" />
@@ -93,6 +99,7 @@
     <orderEntry type="library" name="Maven: io.protostuff:protostuff-runtime:1.6.0" level="project" />
     <orderEntry type="library" name="Maven: io.protostuff:protostuff-collectionschema:1.6.0" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
     <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.3.12.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.1.7.Final" level="project" />
@@ -202,7 +209,6 @@
     <orderEntry type="library" name="Maven: io.prometheus:simpleclient_common:0.9.0" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.8.3" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.8" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-redis:2.9.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-jwt:2.9.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-impl:0.11.2" level="project" />
@@ -269,13 +275,6 @@
     <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-security:2.2.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.3.12.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
-    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.4" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.security.oauth:spring-security-oauth2:2.3.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.15.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.15.RELEASE" level="project" />

+ 8 - 0
blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@@ -449,4 +449,12 @@ public class CommonUtil {
         return baos.toByteArray();
     }
 
+
+    // 上传文件路径获取
+    public String getSysFileUrl() {
+
+
+        return "";
+    }
+
 }

+ 1 - 1
blade-ops/blade-xxljob-admin/doc/db/tables_xxl_job.sql

@@ -125,7 +125,7 @@ INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_cron`, `job_desc`, `add_time`
                            `alarm_email`, `executor_route_strategy`, `executor_handler`, `executor_param`,
                            `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`,
                            `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`)
-VALUES (1, 1, '0 0 0 * * ? *', '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'FIRST',
+VALUES (1, 1, '0 0 0 keyword error:', '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'FIRST',
         'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '');
 INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`)
 VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);

+ 0 - 1
blade-service-api/blade-user-api/blade-user-api.iml

@@ -172,7 +172,6 @@
     <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.15.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.15.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.8" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-tenant:2.9.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.3.6" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.9.RELEASE" level="project" />

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

@@ -145,7 +145,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>

+ 1 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/config/ThreadPoolConfig.java

@@ -13,7 +13,7 @@ public class ThreadPoolConfig {
 
     @Bean(name = "executorService")
     public ExecutorService executorService() {
-        return Executors.newFixedThreadPool(10);
+        return Executors.newFixedThreadPool(20);
     }
 
 }

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

@@ -382,10 +382,10 @@ public class ArchivesAutoController extends BladeController {
 			contractClient.updateIsArchivesAutoById(contractId,1);
 
 			archivesAutoService.archiveAutoMethodThread(projectId,contractId,nodeId);
-			return R.data("自动组卷中,请耐心等待");
+			return R.data("开始自动组卷中,请耐心等待");
 		}catch (Exception e){
 			e.printStackTrace();
-			log.error("自动组卷错。"+e.getMessage()+"--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+			log.error("自动组卷错。"+e.getMessage()+"--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
 			//设置自动组卷结束
 			contractClient.updateIsArchivesAutoById(contractId,0);
 			return R.fail(e.getMessage());

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java

@@ -128,6 +128,8 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 
     List<ArchivesAutoVO> getArchivesCabinet(@Param("vo") ArchivesAutoVO archivesAuto);
 
+    List<ArchivesAutoVO> getArchivesCabinet2(@Param("vo") ArchivesAutoVO archivesAuto);
+
 	List<ArchivesAutoVO> pageByArchivesAuto3(IPage page, @Param("vo") ArchivesAutoVO vo);
 
 	List<ArchivesAutoVO> pageByArchivesAuto4(@Param("vo") ArchivesAutoVO vo);

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

@@ -542,6 +542,18 @@
         ) matc left join u_archives_auto uaa on matc.id = uaa.node_id left join u_archive_file uaf on uaa.id =
         uaf.archive_id
         where uaa.is_deleted = 0 and uaa.is_archive = 1
+        GROUP BY uaa.id
+        order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
+--         order by uaa.id
+    </select>
+
+    <select id="getArchivesCabinet2" resultMap="archivesAutoResultMap">
+        select uaa.id from
+        (SELECT id FROM m_archive_tree_contract WHERE project_id =#{vo.projectId}
+        and  ancestors like concat('%',#{vo.nodeId},'%')
+        ) matc left join u_archives_auto uaa on matc.id = uaa.node_id left join u_archive_file uaf on uaa.id =
+        uaf.archive_id
+        where uaa.is_deleted = 0 and uaa.is_archive = 1
         <if test="vo.searchType == 1 and vo.queryValue != null and vo.queryValue != ''">
             and uaa.name like concat('%',#{vo.queryValue},'%')
         </if>
@@ -579,7 +591,8 @@
             </foreach>
         </if>
         GROUP BY uaa.id
-        order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
+                order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
+--         order by uaa.id
     </select>
 
     <select id="getAllArchiveByContractType" resultType="org.springblade.archive.vo.ArchivesAutoVO">

+ 23 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
@@ -39,6 +40,7 @@ import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -242,9 +244,21 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	public List<Map<String,List<Map<String,String>>>> getArchivesCabinet(ArchivesAutoVO archivesAuto) {
 		//获取单位首节点
 		ArchiveTreeContract	contract = archiveTreeContractClient.getFirstNodeByTreeCode(archivesAuto.getProjectId(),archivesAuto.getArchiveType());
+		if (contract == null){
+			throw new ServiceException("归档树节点错误");
+		}
+		//如果没有获取到对应单位,则提示
 		archivesAuto.setNodeId(contract.getId());
 		//根据单位查询所有档案
 		List<ArchivesAutoVO> archivesAutos = baseMapper.getArchivesCabinet(archivesAuto);
+		//根据选择条件查询所有档案
+		List<ArchivesAutoVO> selectAutos = baseMapper.getArchivesCabinet2(archivesAuto);
+		List<Long> ids = new ArrayList<>();
+		if (selectAutos != null && selectAutos.size() > 0) {
+			ids = selectAutos.stream().map(l -> l.getId()).collect(Collectors.toList());
+		}else {
+			ids.add(-1L);
+		}
 		if (archivesAutos != null && archivesAutos.size() > 0) {
 			List<List<ArchivesAutoVO>> listList = CommonUtil.splitList(archivesAutos, 160);
 			//所有页,所有柜子
@@ -254,6 +268,13 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			int CabinetTotal = 1;
 			//把所有档案分成柜子
 			for (List<ArchivesAutoVO> list : listList) {
+				String status = "0";
+				for (ArchivesAutoVO vo : list) {
+					if (ids.contains(vo.getId())){
+						status = "1";
+						break;
+					}
+				}
 				//一个柜子
 				Map<String, String> map = new HashMap<>();
 				map.put("id",CabinetTotal+"");
@@ -262,9 +283,11 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 				}else {
 					map.put("name",CabinetTotal+"");
 				}
+				CabinetTotal++;
 				String[] min = list.get(0).getFileNumber().split("_");
 				String[] max = list.get(list.size()-1).getFileNumber().split("_");
 				map.put("content","档号"+min[min.length-1]+"~"+"档号"+max[max.length-1]);
+				map.put("status",status);
 				//把每一个柜子都添加
 				allCabinet.add(map);
 			}

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

@@ -179,7 +179,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-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -99,8 +99,8 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
                 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()) || node.getHtmlUrl() == null);
+                //删除掉无法溯源的数据   和 隐藏节点数据
+                tableList.removeIf(node -> node.getIsTypePrivatePid() == null || node.getIsTypePrivatePid() <= 0 || StringUtils.isEmpty(node.getIsTypePrivatePid().toString()) || node.getHtmlUrl() == null || node.getStatus() != 1);
                 List<Long> privatePIdList = tableList.stream().map(WbsTreeContract::getIsTypePrivatePid).distinct().collect(Collectors.toList());
                 return JSONArray.parseArray(JSONObject.toJSONString(privatePIdList), String.class);
 

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -511,7 +511,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     }
 
 
-    @Scheduled(cron = "0 */3 * * * ?")
+    @Scheduled(cron = "0 */2 * * * ?")
     public void SignInfo() {
         //执行代码
         logger.debug("扫描开始");
@@ -556,7 +556,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             for (TaskApprovalVO taskApprovalVO : taskApprovalVOS) {
                 taskApprovalVO.setUserId(userId);
                 taskApprovalVO.setNickName(nickName);
-                RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 300, TimeUnit.SECONDS);
+                RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 150, TimeUnit.SECONDS);
 
                 String pdfUrlEVisa = this.completeApprovalTask(taskApprovalVO);
                 //TODO ============== 电签成功,修改试验状态,关联工程部位信息pdf(只有电签成功,才修改) liuYc 2023-03-16 ==============

+ 0 - 1
blade-service/blade-desk/blade-desk.iml

@@ -306,7 +306,6 @@
     <orderEntry type="library" name="Maven: io.prometheus:simpleclient_common:0.9.0" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.8.3" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.8" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-tenant:2.9.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.3.6" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-api-crypto:2.9.1.RELEASE" level="project" />

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

@@ -167,11 +167,11 @@
             <artifactId>jfreechart</artifactId>
             <version>1.0.13</version>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.apache.commons</groupId>-->
-<!--            <artifactId>commons-math3</artifactId>-->
-<!--            <version>3.6.1</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>commons-net</groupId>
+            <artifactId>commons-net</artifactId>
+            <version>3.7</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
@@ -198,7 +198,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>

+ 7 - 4
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -31,6 +31,8 @@ import org.springblade.manager.dto.Coords;
 import org.springblade.manager.dto.ElementData;
 import org.springblade.manager.dto.FormData;
 import org.springblade.manager.entity.Formula;
+import org.springblade.manager.utils.FileUtils;
+
 import java.awt.*;
 import java.awt.Font;
 import java.awt.geom.Ellipse2D;
@@ -478,12 +480,13 @@ public class FormulaUtils {
 
     public static Map<String, String> getElementCell(String uri) {
         try {
-            return  Jsoup.parse(IoUtil.readToString(new FileInputStream(ResourceUtil.getFile(uri))))
+            InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl(uri);
+            return Jsoup.parse(IoUtil.readToString(inputStreamByUrl))
                     .select("table").first()
                     .select("tr").stream()
-                    .flatMap(tr->tr.select("td").stream())
-                    .filter(d->!d.children().isEmpty())
-                    .map(d->d.children().get(0)).map(d->d.attr("keyname")).filter(StringUtils::isNotEmpty).map(e->e.split("__"))
+                    .flatMap(tr -> tr.select("td").stream())
+                    .filter(d -> !d.children().isEmpty())
+                    .map(d -> d.children().get(0)).map(d -> d.attr("keyname")).filter(StringUtils::isNotEmpty).map(e -> e.split("__"))
                     .collect(
                             Collectors.toMap(
                                     b -> b[0],

+ 19 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/LinkdataInfoController.java

@@ -21,6 +21,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -38,12 +39,15 @@ import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.ILinkdataInfoService;
 import org.springblade.manager.service.IWbsFormElementService;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 清表解析字段信息 控制器
@@ -63,6 +67,7 @@ public class LinkdataInfoController extends BladeController {
 
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
 
+    private final JdbcTemplate jdbcTemplate;
     /**
      * 详情
      */
@@ -183,7 +188,7 @@ public class LinkdataInfoController extends BladeController {
         Element table = doc.select("table").first();
         Elements trs = table.select("tr");
         Element element = trs.get(linkdataInfo.getTrIndex()).select("td").get(linkdataInfo.getTdIndex());
-
+        String keyId = "";
         if (linkdataInfo.getColName().equals("/")) {
             element.empty();
         } else {
@@ -202,6 +207,7 @@ public class LinkdataInfoController extends BladeController {
                 element1.removeAttr("weighing");
                 element1.removeAttr("v-model");
                 element1.removeAttr("@focus");
+                keyId = element1.attr("keyName");
                 element1 = element.children().get(0).children().get(0);
             }
 
@@ -211,7 +217,7 @@ public class LinkdataInfoController extends BladeController {
             element1.removeAttr("weighing");
             element1.removeAttr("v-model");
             element1.removeAttr("@focus");
-
+            keyId = element1.attr("keyName");
             if (element.html().indexOf("hc-form-checkbox-group") >= 0) {
                 element1.removeAttr(":val");
                 element1.attr(":val", "formData." + dataInfo2);
@@ -226,6 +232,17 @@ public class LinkdataInfoController extends BladeController {
         File writefile = new File(wbsTreePrivate.getHtmlUrl());
         FileUtil.writeToFile(writefile, doc.html(), Boolean.parseBoolean("UTF-8"));
         inputStream.close();
+
+        // 清空数据
+        if (StringUtils.isNotEmpty(keyId)) {
+            String tabName = wbsTreePrivate.getInitTableName();
+            String isExitSql = " select * from information_schema.TABLES where TABLE_NAME='" + tabName + "'";
+            List<Map<String, Object>> tablist = jdbcTemplate.queryForList(isExitSql);
+            if (tablist != null && tablist.size() > 0 && wbsTreePrivate.getType() != 10) {
+                String clarSql = "update  " + tabName + " set " + keyId.split("__")[0] + "=null where p_key_id in(SELECT p_key_id FROM m_wbs_tree_contract WHERE id ='" + wbsTreePrivate.getId() + "' and project_id='" + wbsTreePrivate.getProjectId() + "' )";
+                jdbcTemplate.execute(clarSql);
+            }
+        }
         return R.success("操作成功");
     }
 

+ 8 - 26
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -29,13 +29,13 @@ import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.net.ftp.FTPClient;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
-import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.common.utils.SystemUtils;
 import org.springblade.core.log.exception.ServiceException;
@@ -49,6 +49,7 @@ import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
 import org.springblade.manager.service.impl.WbsTreePrivateServiceImpl;
+import org.springblade.manager.utils.FileUtils;
 import org.springblade.manager.vo.TextdictBy345VO;
 import org.springblade.manager.vo.TextdictDataInfoVO;
 import org.springblade.manager.vo.TextdictInfo_vo;
@@ -375,7 +376,7 @@ public class TextdictInfoController extends BladeController {
     @PostMapping("/save_sigInfo")
     @ApiOperationSupport(order = 7)
     @ApiOperation(value = "保存电签", notes = "保存电签")
-    public R<String> saveSigInfo(@Valid @RequestBody JSONObject dataInfo) throws IOException {
+    public R<String> saveSigInfo(@Valid @RequestBody JSONObject dataInfo) throws Exception {
         String redisValue = bladeRedis.get("save-eVis-lock:" + SecureUtil.getUserId());
         if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
             throw new ServiceException("请勿重复提交,请3秒后再尝试");
@@ -400,8 +401,10 @@ public class TextdictInfoController extends BladeController {
         }
 
         // 读取html页面信息
-        File file1 = ResourceUtil.getFile(wbsTreePrivate.getHtmlUrl());
-        String htmlString = IoUtil.readToString(new FileInputStream(file1));
+        // File file1 = ResourceUtil.getFile(wbsTreePrivate.getHtmlUrl());
+
+        InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl(wbsTreePrivate.getHtmlUrl());
+        String htmlString = IoUtil.readToString(inputStreamByUrl);
 
         // 样式集合
         Document doc = Jsoup.parse(htmlString);
@@ -466,6 +469,7 @@ public class TextdictInfoController extends BladeController {
         }
 
         //写入excel
+        FileUtils.getSysLocalFileUrl();
         File writeFile = new File(wbsTreePrivate.getHtmlUrl());
         FileUtil.writeToFile(writeFile, doc.html(), Boolean.parseBoolean("UTF-8"));
 
@@ -623,26 +627,4 @@ public class TextdictInfoController extends BladeController {
         return R.success("操作成功");
     }
 
-    /*public static void main(String[] args) throws FileNotFoundException {
-		File file1 = ResourceUtil.getFile("/Users/hongchuangyanfa/Desktop/privateUrl/1567789917445029888.html");
-		String htmlString =  IoUtil.readToString(new FileInputStream(file1));
-		// 样式集合
-		Document doc = Jsoup.parse(htmlString);
-		//解析
-		Element table = doc.select("table").first();
-		Elements trs = table.select("tr");
-		Element element = trs.get(3).select("td").get(1);
-		System.out.println(element.html());
-		if(element.html().indexOf("el-tooltip")>=0){
-			element.children().attr("content","111");
-		}
-
-		String lastHmtl = " <el-tooltip content='Bottom center' effect='customized'>"+element.html()+"</el-tooltip>";
-		element.empty().append(lastHmtl);
-		File writefile = new File("/Users/hongchuangyanfa/Desktop/privateUrl/1567789917445029888.html");
-		FileUtil.writeToFile(writefile, doc.html(), Boolean.parseBoolean("UTF-8"));
-
-		System.out.println();
-	}*/
-
 }

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

@@ -441,11 +441,11 @@
     <select id="getFirstNodeByTreeCode" resultType="org.springblade.manager.entity.ArchiveTreeContract">
         select * from m_archive_tree_contract
         WHERE parent_id = (select id from m_archive_tree_contract WHERE parent_id = 0 and project_id = #{projectId})
-          and tree_code is NULL
+          and is_deleted = 0 and tree_code is NULL
     </select>
     <select id="getFirstNodeByTreeCode2" resultType="org.springblade.manager.entity.ArchiveTreeContract">
         select * from m_archive_tree_contract
         WHERE parent_id = (select id from m_archive_tree_contract WHERE parent_id = 0 and project_id = #{projectId})
-          and tree_code = #{type}
+          and is_deleted = 0 and tree_code = #{type}
     </select>
 </mapper>

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

@@ -1284,8 +1284,8 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
     @Override
     public R getBussPdfInfo(Long pkeyId) throws Exception {
-        String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
-        String sys_net_url = ParamCache.getValue(CommonConstant.SYS_FILE_NET_URL);
+        String file_path = FileUtils.getSysLocalFileUrl();
+
         WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
 
@@ -1298,6 +1298,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
         String pdfPath = file_path + "/pdf//" + pkeyId + ".pdf";
         String excelPath = file_path + "/pdf//" + pkeyId + ".xlsx";
+
         File tabPdf = ResourceUtil.getFile(pdfPath);
         if (tabPdf.exists()) {
             tabPdf.delete();
@@ -1364,23 +1365,23 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
         //数据不为空
         if (StringUtils.isNotEmpty(wbsTreeContract.getHtmlUrl())) {
-            File htmlFile = ResourceUtil.getFile(wbsTreeContract.getHtmlUrl());
-            if (htmlFile.exists()) {
-                String htmlString = IoUtil.readToString(new FileInputStream(htmlFile));
-                Document doc = Jsoup.parse(htmlString);
-                Element table = doc.select("table").first();
-                Elements trs = table.select("tr");
-                Elements cols = table.select("col");
-
-                if (ObjectUtil.isNotEmpty(DataInfo)) {
-                    for (String val : DataInfo.keySet()) {
-                        if (val.indexOf("__") >= 0) {
-                            String[] DataVal = val.split("__");
-                            String[] xy = DataVal[1].split("_");
-                            if (Integer.parseInt(xy[0]) < trs.size()) {
-                                Element ytzData = trs.get(Integer.parseInt(xy[0]));
-                                if (ytzData != null) {
-                                    Elements tdsx = ytzData.select("td");
+            InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl(wbsTreeContract.getHtmlUrl());
+            String htmlString = IoUtil.readToString(inputStreamByUrl);
+
+            Document doc = Jsoup.parse(htmlString);
+            Element table = doc.select("table").first();
+            Elements trs = table.select("tr");
+            Elements cols = table.select("col");
+
+            if (ObjectUtil.isNotEmpty(DataInfo)) {
+                for (String val : DataInfo.keySet()) {
+                    if (val.indexOf("__") >= 0) {
+                        String[] DataVal = val.split("__");
+                        String[] xy = DataVal[1].split("_");
+                        if (Integer.parseInt(xy[0]) < trs.size()) {
+                            Element ytzData = trs.get(Integer.parseInt(xy[0]));
+                            if (ytzData != null) {
+                                Elements tdsx = ytzData.select("td");
                                     if (Integer.parseInt(xy[1]) < tdsx.size()) {
                                         Element data = ytzData.select("td").get(Integer.parseInt(xy[1]));
                                         if (data != null) {
@@ -1422,13 +1423,13 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                                         }
                                                     } else {
                                                         String[] dataStr = myData.split("T")[0].split("-");
-                                                        myData = StringUtil.format("{}年{}月{}日", dataStr[0], dataStr[1], Integer.parseInt(dataStr[2]));
+                                                        if (dataStr.length == 3) {
+                                                            myData = StringUtil.format("{}年{}月{}日", dataStr[0], dataStr[1], Integer.parseInt(dataStr[2]));
+                                                        }
                                                     }
                                                 }
 
                                                 if (myData.indexOf("lang.String") >= 0) {
-                                                    /*String[]  dataDate = (String[]) DataInfo.get(val);
-                                                    myData = dataDate[0]+" - "+dataDate[1].trim();*/
                                                     Object obj = DataInfo.get(val);
                                                     if (obj instanceof String[]) {
                                                         String[] dataDate = (String[]) obj;
@@ -1440,14 +1441,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                                 if ((myData.indexOf("https") >= 0 || myData.indexOf("http") >= 0) && myData.indexOf("aliyuncs") >= 0) {
 
                                                     InputStream imageIn = CommonUtil.getOSSInputStream(myData);
-
                                                     byte[] byteNew = IOUtils.toByteArray(imageIn);
-
                                                     byte[] bytes = CommonUtil.compressImage(byteNew);
-
                                                     // 这里根据实际需求选择图片类型
                                                     int pictureIdx = workbook.addPicture(bytes, 6);
-
                                                     CreationHelper helper = workbook.getCreationHelper();
                                                     ClientAnchor anchor = helper.createClientAnchor();
                                                     anchor.setCol1(x1); // param1是列号
@@ -1543,11 +1540,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                         }
                     }
                 }
-            }
         }
         //输出流
 
-
         FileOutputStream outputStream = new FileOutputStream(excelPath);
         workbook.write(outputStream);
         FileUtils.setExcelScaleToPdf(excelPath, pdfPath);

+ 63 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FTPUtils.java

@@ -0,0 +1,63 @@
+package org.springblade.manager.utils;
+
+import org.apache.commons.net.ftp.FTPClient;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class FTPUtils {
+    String hostname = "192.168.0.109";
+    int port = 21;
+    String username = "fileadmin";
+    String password = "DpE5aYNybfeDEMcD";
+
+    // 获取ftp 客户端
+    public FTPClient getFTPClinet(){
+        FTPClient ftp = new FTPClient();
+        ftp.setControlEncoding("UTF-8");
+        System.out.println("准备连接到ftp");
+        try {
+            //连接
+            ftp.connect(hostname, port);
+            //登录
+            boolean loginS = ftp.login(username, password);
+            if (!loginS) {
+                System.out.println("ftp登录失败,用户名或密码错误");
+                return null;
+            }else{
+                System.out.println("ftp登录成功");
+            }
+            return ftp;
+        } catch (IOException e) {
+            System.out.println("ftp连接失败");
+            return null;
+        }
+    }
+
+    //文件覆盖上传
+/*    public static void main(String[] args) throws Exception {
+
+        InputStream input = FileUtils.getInputStreamByUrl("http://192.168.0.109:6371/1534807810770993152.html");
+
+        FTPUtils ftpUtils = new FTPUtils();
+        try {
+            FTPClient ftp = ftpUtils.getFTPClinet();
+            // 获取本地文件并上传
+
+            ftp.changeWorkingDirectory("/Desktop/");//跳转目录
+            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);//必须要设置以二进制的方式传输文件
+            ftp.enterLocalPassiveMode();//被动模式
+
+            if (!ftp.storeFile("1534807810770993152.html", input)) {
+                System.out.println("失败,服务器返回:" + ftp.getReplyString());//获取上传失败的原因
+            } else {
+                System.out.println("文件:1534807810770993152.html 上传成功");
+            }
+            input.close();
+            ftp.logout();
+        } catch (IOException e) {
+            System.out.println("ftp连接失败");
+        }
+    }*/
+
+}

+ 22 - 48
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java

@@ -26,6 +26,7 @@ import org.jsoup.select.Elements;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.common.utils.SystemUtils;
 import org.springblade.common.vo.DataVO;
 import org.springblade.core.tool.api.ResultCode;
 import org.springblade.core.tool.utils.FileUtil;
@@ -368,56 +369,29 @@ public class FileUtils {
     }
 
 
-    public static void main123(String[] args) throws Exception {
-
-
-        //  String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
-        String sys_file_net_url = "http://192.168.0.109:6371/12345.pdf";
-        File file = new File(sys_file_net_url);
-        file.mkdir();
-
-
+    // 获取本地 或 远程工作流ParamCache
+    public static InputStream getInputStreamByUrl(String fileUrl) throws Exception {
+        String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+        String sys_file_net_url = ParamCache.getValue(CommonConstant.SYS_FILE_NET_URL);
+        File file1 = new File(fileUrl);
+        InputStream fileInputStream = null;
+        if (file1.exists()) {
+            fileInputStream = new FileInputStream(file1);
+        } else {
+            String path = sys_file_net_url + fileUrl.replaceAll("//", "/").replaceAll(file_path, "");
+            fileInputStream = CommonUtil.getOSSInputStream(path);
+        }
+        return fileInputStream;
     }
 
-
-    public static void main11(String[] args) throws FileNotFoundException {
-       /* double a= 2;
-        double maxData = Math.ceil(a/7);
-        System.out.println(maxData);*/
-
-        /*File file1 = ResourceUtil.getFile("/Users/hongchuangyanfa/fsdownload/1633774811681390592.html");
-        FileInputStream fileInputStream = new FileInputStream(file1);
-        String htmlString = IoUtil.readToString(fileInputStream);
-        // 解析 style
-        org.jsoup.nodes.Document doc = Jsoup.parse(htmlString);
-        Element table = doc.select("table").first();
-        Elements trs = table.select("tr");
-
-
-        List<List<String>> redata = new ArrayList<>();
-        for (int i = 0; i < trs.size(); i++) {
-            Element tr = trs.get(i);
-            Elements tds = tr.select("td");
-            List<String> tdList = new ArrayList<>();
-            for (int j = 0; j < tds.size(); j++) {
-                Element element = tds.get(j);
-                if (element.html().indexOf("el-tooltip") >= 0) {
-                    element = element.children().get(0);
-                }
-                if (element.children().size() >= 1) {
-                    String keyname = element.children().get(0).attr("keyname");
-                    if (StringUtils.isNotEmpty(keyname)) {
-                        tdList.add(keyname);
-                    }
-                }
-            }
-            redata.add(tdList) ;
+    public static String getSysLocalFileUrl() {
+        String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+        if (SystemUtils.isMacOs()) {
+            file_path = "/Users/hongchuangyanfa/Desktop/";
+        } else if (SystemUtils.isWindows()) {
+            file_path = "C://upload";
         }
-
-        String[][] res = new String[redata.size()][]; // 存放转换结果的 二维数组
-        for(int i=0; i<res.length; i++){ // 转换方法
-            res[i] = redata.get(i).toArray(new String[redata.get(i).size()]);
-        }*/
-
+        return file_path;
     }
+
 }

+ 0 - 1
blade-service/blade-system/blade-system.iml

@@ -306,7 +306,6 @@
     <orderEntry type="library" name="Maven: io.prometheus:simpleclient_common:0.9.0" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.8.3" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.8" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-tenant:2.9.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.3.6" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-api-crypto:2.9.1.RELEASE" level="project" />

BIN
logs/backup/2023-06-01/cfca-logging-environment.20230601.0.log.zip


BIN
logs/backup/2023-06-01/cfca-logging-error.20230601.0.log.zip


BIN
logs/backup/2023-06-01/cfca-logging-info.20230601.0.log.zip


BIN
logs/backup/2023-06-02/cfca-logging-info.20230602.0.log.zip