Kaynağa Gözat

2024 8 9 号

zhuwei 3 ay önce
ebeveyn
işleme
28b1b31db0
30 değiştirilmiş dosya ile 329 ekleme ve 81 silme
  1. 6 0
      .idea/inspectionProfiles/Project_Default.xml
  2. 11 0
      .idea/modules.xml
  3. 124 0
      .idea/uiDesigner.xml
  4. 6 0
      .idea/vcs.xml
  5. 2 2
      blade-common/src/main/java/org/springblade/common/utils/AsyncConfigurer.java
  6. 8 7
      blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java
  7. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ContractInfo.java
  8. 1 1
      blade-service/blade-archive/pom.xml
  9. 1 1
      blade-service/blade-business/pom.xml
  10. 22 2
      blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java
  11. 1 14
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.xml
  12. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java
  13. 26 10
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  14. 5 0
      blade-service/blade-business/src/main/java/org/springblade/business/utils/FileUtils.java
  15. 1 1
      blade-service/blade-control/pom.xml
  16. 2 2
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java
  17. 1 1
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java
  18. 20 1
      blade-service/blade-manager/pom.xml
  19. 15 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/APIController.java
  20. 13 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  21. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml
  22. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml
  23. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml
  24. 6 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java
  25. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java
  26. 0 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java
  27. 15 7
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  28. 14 15
      blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java
  29. 3 3
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java
  30. 14 3
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

+ 6 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="SqlDialectInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+  </profile>
+</component>

+ 11 - 0
.idea/modules.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/blade-auth/blade-auth.iml" filepath="$PROJECT_DIR$/blade-auth/blade-auth.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-desk/blade-desk.iml" filepath="$PROJECT_DIR$/blade-service/blade-desk/blade-desk.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-system/blade-system.iml" filepath="$PROJECT_DIR$/blade-service/blade-system/blade-system.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-user-api/blade-user-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-user-api/blade-user-api.iml" />
+    </modules>
+  </component>
+</project>

+ 124 - 0
.idea/uiDesigner.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>

+ 2 - 2
blade-common/src/main/java/org/springblade/common/utils/AsyncConfigurer.java

@@ -15,7 +15,7 @@ public class AsyncConfigurer {
     /**
      * cpu 核心数量
      */
-    public static final int cpuNum =12 ;//Runtime.getRuntime().availableProcessors();
+    public static final int cpuNum =2 ;//Runtime.getRuntime().availableProcessors();
 
     /**
      * 线程池配置
@@ -25,7 +25,7 @@ public class AsyncConfigurer {
     @Bean("taskExecutor1")
     public ThreadPoolExecutor getAsyncExecutor() {
         return new ThreadPoolMonitor(cpuNum
-                , 25
+                , 4
                 , 30
                 , TimeUnit.SECONDS
                 , new LinkedBlockingQueue<>(2000)

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

@@ -115,7 +115,7 @@ public class CommonUtil {
     public static synchronized InputStream getOSSInputStream(String urlStr) throws Exception {
         //获取OSS文件流
         if(urlStr!=null && urlStr.indexOf("183.247.216.148:9000")>=0){// nimio 甬台温 本地部署修改
-            urlStr = urlStr.replace("183.247.216.148:9000","152.168.2.15:9000");
+            urlStr = urlStr.replace("https:","http:").replace("183.247.216.148:9000","152.168.2.15:9000");
         }
         URL url =new URL(urlStr);
         final URLConnection conn = url.openConnection();
@@ -123,7 +123,8 @@ public class CommonUtil {
         try {
             return conn.getInputStream();
         } catch (Exception e){
-            System.out.println("zw"+urlStr);
+            System.out.println("zw-----------");
+            e.printStackTrace();
             return null;
         }
     }
@@ -515,7 +516,8 @@ public class CommonUtil {
         }
 
         // 缩放图像
-        String formatName = "JPEG";
+       // String formatName = "JPEG";
+        String formatName = "JPG";
         ByteArrayInputStream bais = new ByteArrayInputStream(imageData);
         BufferedImage originalImage = ImageIO.read(bais);
         long sizeLimit = 366912; //358KB
@@ -611,7 +613,7 @@ public class CommonUtil {
         if (osName != null && osName.toLowerCase().contains("Cloud Linux")) {
             // 如果当前操作系统是Linux系统
             Map<String, String> envMap = System.getenv();
-            if (!envMap.containsKey("linuxtesttest")) {
+            if (!envMap.containsKey("linuxtesttest") && url.indexOf("-internal")<0) {
                 // 如果当前环境变量不包含linuxtesttest,则替换URL中的oss路径
                 url = url.replace(".aliyuncs.com", "-internal.aliyuncs.com");
             }
@@ -619,10 +621,9 @@ public class CommonUtil {
         //本地部署- 甬台温
         if (url.indexOf("183.247.216.148")>=0) {
             // 如果当前环境变量不包含linuxtesttest,则替换URL中的oss路径
-            url = url.replace("https","http").replace("183.247.216.148:9000","152.168.2.15:9000");
+            url = url.replace("https://","http://").replace("183.247.216.148:9000","152.168.2.15:9000");
         }
-        //后续删除
-        System.out.println("replaceOssUrl " + url);
         return url;
     }
+
 }

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

@@ -152,6 +152,12 @@ public class ContractInfo extends BaseEntity {
     @ApiModelProperty(value = "是否开启试验模块 '0'否 '1'是")
     private Integer isTestModule;
 
+    /**
+     * 是否强制引用记录/报告编号 '0'否 '1'是
+     */
+    @ApiModelProperty(value = "是否强制引用记录/报告编号 '0'否 '1'是")
+    private Integer isTestRecord;
+
     /**
      * 是否引用编号 '0'否 '1'是
      */

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

@@ -155,7 +155,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-business/pom.xml

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

+ 22 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -110,7 +110,7 @@ public class ImageClassificationFileController extends BladeController {
     private final ContractClient contractClient;
 
     /**
-     * 批量下载
+     * 批量下载 图片
      */
     @PostMapping("/batchDownloadFileToZip")
     @ApiOperationSupport(order = 13)
@@ -125,12 +125,32 @@ public class ImageClassificationFileController extends BladeController {
                     urls.addAll(Arrays.asList(file.getImageUrl().split(",")));
                 }
             }
-
             //打包下载
             FileUtils.batchDownloadFileToZip(urls, response);
         }
     }
 
+    /**
+     * 批量下载 -- pdf
+     */
+    @PostMapping("/batchDownloadPDFFileToZip")
+    @ApiOperationSupport(order = 13)
+    @ApiOperation(value = "批量下载")
+    public void batchDownloadPDFFileToZip(String ids, HttpServletResponse response) {
+        if (StringUtils.isNotEmpty(ids)) {
+            //查询数据
+            List<ImageClassificationFile> result = this.imageClassificationFileService.list(Wrappers.<ImageClassificationFile>lambdaQuery().in(ImageClassificationFile::getId, Arrays.asList(ids.split(","))));
+            List<String> urls = new ArrayList<>();
+            for (ImageClassificationFile file : result) {
+                if (StringUtils.isNotEmpty(file.getImageUrl())) {
+                    urls.add( CommonUtil.replaceOssUrl(file.getMargePdfUrl()) +"____"+file.getTitle());
+                }
+            }
+
+            //打包下载
+            FileUtils.batchDownloadFileToZip(urls, response);
+        }
+    }
     /**
      * 影音资料览(图片)
      */

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

@@ -119,20 +119,7 @@
         <if test="param2.endTime != null and param2.endTime != '' ">
             and a.playTime &lt;= #{param2.endTime}
         </if>
-        <!-- 引用 &ndash;&gt;
-        <if test="param2.dataStatus != null and param2.dataStatus != '' ">
-            and a.playTime &lt;= #{param2.endTime}
-        </if>
-
-        &lt;!&ndash; 合格 &ndash;&gt;
-        <if test="param2.dataQualified != null and param2.dataQualified != '' ">
-            and a.dataStatus &lt;= #{param2.endTime}
-        </if>
-
-        &lt;!&ndash; 合同段 &ndash;&gt;
-        <if test="param2.contractId != null and param2.contractId != '' ">
-            and a.dataStatus &lt;= #{param2.endTime}
-        </if>-->
+        order by testDate desc;
 
     </select>
 

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

@@ -159,7 +159,7 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
         }
         for (ArchiveFile vo : list) {
             // 修改所有的认证状态,如果是不需要认证就设置为已认证,如果是需要认证就设置为未认证
-            if (vo.getIsNeedCertification() == 0){
+            if (Func.isNotEmpty(vo.getIsNeedCertification()) && vo.getIsNeedCertification() == 0){
                 vo.setIsCertification(1);
             }
             //循环查看是否把需要审批改为不需要审批,  不可能把不需要审批改为需要审批

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

@@ -17,6 +17,7 @@ import org.springblade.business.entity.*;
 import org.springblade.business.mapper.TaskMapper;
 import org.springblade.business.service.*;
 import org.springblade.business.vo.*;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
@@ -45,6 +46,7 @@ import org.springblade.manager.entity.*;
 import org.springblade.manager.feign.*;
 import org.springblade.manager.vo.AppWbsTreeContractVO;
 import org.springblade.resource.feign.CommonFileClient;
+import org.springblade.system.cache.ParamCache;
 import org.springblade.system.user.cache.UserCache;
 import org.springblade.system.user.entity.User;
 import org.springframework.beans.BeanUtils;
@@ -226,17 +228,19 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 //首件,首件的资料由三个部分组成:封面、关联资料、总结报告
                 if (StringUtils.isNotEmpty(query.getEVisaPdfUrl()) || StringUtils.isNotEmpty(query.getPdfUrl())) {
                     //封面
-                    vo.setApprovalFileList(query.getName(), StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl());
+                    String url = StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl();
+                    String s = getHppsToHttp(url);
+                    vo.setApprovalFileList(query.getName(), s);
                 }
                 //不是签章时再查关联资料,因为关联资料都是审批好的pdf,存在关键字,不能再执行签 字/章
                 if (!isTask) {
                     //关联资料
                     if (StringUtils.isNotEmpty(query.getLinkMergePdfUrl())) {
-                        vo.setApprovalFileList("首件关联资料", query.getLinkMergePdfUrl());
+                        vo.setApprovalFileList("首件关联资料", this.getHppsToHttp(query.getLinkMergePdfUrl()));
                     }
                     InformationQueryFile queryFile = this.informationQueryFileService.getOne(Wrappers.<InformationQueryFile>lambdaQuery().eq(InformationQueryFile::getQueryId, query.getId()));
                     if (queryFile != null) {
-                        vo.setApprovalFileList(queryFile.getName(), queryFile.getPdfUrl());
+                        vo.setApprovalFileList(queryFile.getName(), getHppsToHttp(queryFile.getPdfUrl()));
                     }
                 }
 
@@ -257,7 +261,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     }
 
                     //资料填报原始pdf
-                    vo.setApprovalFileList(query.getName(), StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl());
+                    String approvalPdf = StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl();
+                    vo.setApprovalFileList(query.getName(), this.getHppsToHttp(approvalPdf));
 
                     //试验关联文件合并pdf
                     if (StringUtils.isNotEmpty(query.getPdfTrialUrl())) {
@@ -265,7 +270,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         if (StringUtils.isNotEmpty(replaceHTTPURL)) {
                             query.setPdfTrialUrl(replaceHTTPURL);
                         }
-                        vo.setApprovalFileList(query.getName() + "(关联试验文件)", StringUtils.isNotEmpty(query.getPdfTrialUrl()) ? query.getPdfTrialUrl() : null);
+                        String trialPdf = StringUtils.isNotEmpty(query.getPdfTrialUrl()) ? query.getPdfTrialUrl() : null;
+                        vo.setApprovalFileList(query.getName() + "(关联试验文件)", getHppsToHttp(trialPdf));
                     }
 
                     //试验关联的工程部位信息合并pdf
@@ -274,7 +280,9 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         if (StringUtils.isNotEmpty(replaceHTTPURL)) {
                             query.setPdfTrialUrlPosition(replaceHTTPURL);
                         }
-                        vo.setApprovalFileList(query.getName() + "(关联试验工程部位信息文件)", StringUtils.isNotEmpty(query.getPdfTrialUrlPosition()) ? query.getPdfTrialUrlPosition() : null);
+
+                        String trailpdf = StringUtils.isNotEmpty(query.getPdfTrialUrlPosition()) ? query.getPdfTrialUrlPosition() : null;
+                        vo.setApprovalFileList(query.getName() + "(关联试验工程部位信息文件)", getHppsToHttp(trailpdf));
                     }
 
                     /** 任务审批查看时,把节点附件列表跟在上报文件后面*/
@@ -282,7 +290,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     if (ObjectUtil.isNotEmpty(files)){
                         List<TaskApprovalVO.ApprovalFile> fileList = vo.getApprovalFileList();
                         fileList.addAll(files);
-
                     }
                 }
             } else if (new Integer("2").equals(query.getType())) {
@@ -302,7 +309,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     }
 
                     //试验原始pdf
-                    vo.setApprovalFileList(query.getName(), StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl());
+                    String approvalPdf = StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() : query.getPdfUrl();
+                    vo.setApprovalFileList(query.getName(), getHppsToHttp(approvalPdf));
 
                     //试验关联的原材料检测报告合并pdf (wbsId=试验记录id)
                     String sqlRecord = "select old_pdf_url from u_trial_raw_material_self_record where self_record_id =" + query.getWbsId();
@@ -314,7 +322,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                                 recordObj.setOldPdfUrl(replaceHTTPURL);
                             }
                         }
-                        vo.setApprovalFileList(query.getName() + "(原材料检测报告)", StringUtils.isNotEmpty(recordObj.getOldPdfUrl()) ? recordObj.getOldPdfUrl() : null);
+                        String clPdf = StringUtils.isNotEmpty(recordObj.getOldPdfUrl()) ? recordObj.getOldPdfUrl() : null;
+                        vo.setApprovalFileList(query.getName() + "(原材料检测报告)", getHppsToHttp(clPdf));
                     }
                 }
             }
@@ -344,7 +353,14 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         if (!url.contains("https:")) {
             return url.replace("http:", "https:");
         }
-        return "";
+        return url;
+    }
+    private String getHppsToHttp(String url) {
+        String sys_isonline = ParamCache.getValue(CommonConstant.SYS_ISONLINE);
+        if (url.contains("https:") && sys_isonline.equals("20")) {
+            return url.replace("https:", "http:");
+        }
+        return url;
     }
 
     @Override

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

@@ -78,6 +78,11 @@ public class FileUtils {
                 if (StringUtils.isNotEmpty(url)) {
                     try {
                         String fileName = null, symbol = "";
+                        if(url.indexOf("____")>=0){
+                            fileName  = url.split("____")[1]+".pdf";
+                            url  = url.split("____")[0];
+                        }
+
                         if (url.contains("@@@")) {
                             String[] array = url.split("@@@");
                             url = array[0];

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

@@ -100,7 +100,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-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java

@@ -56,11 +56,11 @@ public class EVisaController {
 
     // 电签主类
 
-    @Scheduled(cron = "0/20 * * * * ?")
+    @Scheduled(cron = "0/10 * * * * ?")
     public void SignInfo() {
         //执行代码
         log.info("扫描开始");
-        String sql = "SELECT * from u_task_batch where is_deleted<>5  LIMIT 40";
+        String sql = "SELECT * from u_task_batch where is_deleted<>5  LIMIT 10";
         List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
         if (maps != null && maps.size() >= 1) {
             for (Map<String, Object> dataInfo : maps) {

+ 1 - 1
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java

@@ -503,7 +503,7 @@ public class EVisaServiceImpl implements EVisaService {
                            // daMa.put("sealOffsetY",-15);
                            // daMa.put("sealOffsetX",-30);
                             byte[] fileByte;
-                            if (fileUrl.indexOf("aliyuncs.com") >= 0) {
+                            if (fileUrl.indexOf("aliyuncs.com") >= 0 || fileUrl.indexOf("183.247.216.148") >= 0 || fileUrl.indexOf("152.168.2.15") >= 0) {
                                 URL url =new URL(pdfUrl);
                                 fileByte = IOUtils.toByteArray(url);
                             } else {

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

@@ -96,6 +96,7 @@
             <artifactId>jsoup</artifactId>
             <version>1.10.2</version>
         </dependency>
+
         <!--汉字转全拼-->
         <dependency>
             <groupId>com.belerweb</groupId>
@@ -173,6 +174,12 @@
             <version>3.7</version>
         </dependency>
 
+        <dependency>
+            <groupId>e-iceblue</groupId>
+            <artifactId>spire.office.free</artifactId>
+            <version>5.3.1</version>
+        </dependency>
+
         <!--计量-->
         <dependency>
             <groupId>org.springblade</groupId>
@@ -180,6 +187,18 @@
             <version>2.9.1.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.pdfbox</groupId>
+            <artifactId>pdfbox</artifactId>
+            <version>2.0.24</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.pdfbox</groupId>
+            <artifactId>pdfbox</artifactId>
+            <version>2.0.24</version>
+            <scope>compile</scope>
+        </dependency>
 
     </dependencies>
     <build>
@@ -207,7 +226,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>

+ 15 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/APIController.java

@@ -15,6 +15,7 @@ import org.springblade.manager.vo.APIWbsContractNodeVo;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -55,8 +56,14 @@ public class APIController extends BladeController {
     })
     public R<List<APIWbsContractNodeVo>> tree(String contractId) {
         List<APIWbsContractNodeVo> tree = iWbsTreeContractService.apiTreeNode(contractId);
+        List<APIWbsContractNodeVo> retu = new ArrayList<>();
         if (tree != null && tree.size() > 0) {
-            return R.data(tree);
+            for(APIWbsContractNodeVo va:tree){
+                if(va.getChildren().size()>=0 && va.getParentId()==0L){
+                    retu.add(va);
+                }
+            }
+            return R.data(retu);
         }
         return R.fail(200, "未查询到信息");
     }
@@ -73,8 +80,14 @@ public class APIController extends BladeController {
     })
     public R<List<APIWbsContractNodeHzrcVo>> treeHzrc(String contractId,Integer classType) {
         List<APIWbsContractNodeHzrcVo> tree = iWbsTreeContractService.apiTreeNodeHzrc(contractId,classType);
+        List<APIWbsContractNodeHzrcVo> retu = new ArrayList<>();
         if (tree != null && tree.size() > 0) {
-            return R.data(tree);
+            for(APIWbsContractNodeHzrcVo va:tree){
+                if(va.getChildren().size()>=0 && va.getParentId()==0L){
+                    retu.add(va);
+                }
+            }
+            return R.data(retu);
         }
         return R.fail(200, "未查询到信息");
     }

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

@@ -845,7 +845,7 @@ public class ExcelTabController extends BladeController {
         ExcelTab dataInfo = excelTabService.getById(wbsTreePrivate.getExcelId());
         // 添加标题显示
         Elements trs = table.select("tr");
-        if(dataInfo.getTabType()!=100L) {
+        if( Func.isNotEmpty(dataInfo) && dataInfo.getTabType()!=100L) {
             for (int i = 1; i < 6; i++) {
                 Element tr = trs.get(i);
                 Elements tds = tr.select("td");
@@ -1781,6 +1781,7 @@ public class ExcelTabController extends BladeController {
     })
     public R getPdfS(String nodeId, String classify, String contractId) throws FileNotFoundException {
         String file_path = FileUtils.getSysLocalFileUrl();
+        String sys_isonline = ParamCache.getValue(CommonConstant.SYS_ISONLINE);
         Boolean aBoolean = RedisTemplate.hasKey("pdf-" + nodeId + "-" + classify);
         if (aBoolean) {
             Long expire = RedisTemplate.getExpire("pdf-" + nodeId + "-" + classify);
@@ -1809,6 +1810,7 @@ public class ExcelTabController extends BladeController {
                 // 由于独立附件 需要追加最后
                 List<TableFileVO> data = tableFileService.selectTableFileListByTen(Long.valueOf(nodeId + ""));
                 List<String> datainfo = new ArrayList<>();
+
                 datainfo.add(pdfUrl);
                 if (data != null && data.size() >= 1) {
                     for (TableFileVO tabsx : data) {
@@ -1819,9 +1821,18 @@ public class ExcelTabController extends BladeController {
                     if (tabpdf2.exists()) {
                         tabpdf2.delete();
                     }
+
                     FileUtils.mergePdfPublicMethods(datainfo, listPdf);
+                    String netUrl = "";
+                    if(sys_isonline.equals("20")){
+                        BladeFile bladeFile = this.newIOSSClient.uploadFile(nodeId + ".pdf", listPdf);
+                        if (bladeFile != null && ObjectUtils.isNotEmpty(bladeFile.getLink())) {
+                            netUrl = bladeFile.getLink();
+                        }
+                    }else{
+                        netUrl = FileUtils.getNetUrl(listPdf);
+                    }
 
-                    String netUrl = FileUtils.getNetUrl(listPdf);
                     return R.data(netUrl);
                 } else {
                     return R.data(pdfUrl);

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -38,6 +38,7 @@
         <result column="archive_auto_node_id" property="archiveAutoNodeId"/>
         <result column="archive_auto_group_select" property="archiveAutoGroupSelect"/>
         <result column="archive_auto_group_id" property="archiveAutoGroupId"/>
+
         <result column="is_upload_file_display_configuration_tree" property="isUploadFileDisplayConfigurationTree"/>
     </resultMap>
 

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

@@ -41,6 +41,7 @@
         <result column="is_electronic_signature" property="isElectronicSignature"/>
         <result column="is_test_module" property="isTestModule"/>
         <result column="is_reference_number" property="isReferenceNumber"/>
+        <result column="isTestRecord" property="is_test_record"/>
     </resultMap>
 
     <resultMap id="contractInfoResultMap1" type="org.springblade.manager.vo.ContractlnfoCountVO">
@@ -94,6 +95,7 @@
         <result column="nodeName" property="nodeName"/>
         <result column="fullName" property="fullName"/>
         <result column="contractId" property="contractId"/>
+        <result column="isTestRecord" property="is_test_record"/>
     </resultMap>
 
     <resultMap id="resultMap2" type="org.springblade.manager.vo.ContractInfoVO">

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

@@ -851,7 +851,7 @@
                         AS isMea,
                         a.partition_Code as partitionCode,
                         b.taskStatus
-        from m_wbs_tree_contract a LEFT JOIN (SELECT c.*,d.`status` as taskStatus from u_information_query c,u_task d where d.form_data_id=c.id and  c.contract_id = 1792766434089168898 and c.classify = 2)  b on a.p_key_id = b.wbs_id
+        from m_wbs_tree_contract a LEFT JOIN (SELECT c.e_visa_pdf_url ,d.`status` as taskStatus,c.wbs_id from u_information_query c,u_task d where d.form_data_id=c.id and  c.contract_id = #{contractId} and c.classify = #{classType})  b on a.p_key_id = b.wbs_id
         where
             a.is_deleted = 0
           and a.status = 1

+ 6 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -422,7 +422,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 			return false;
 		}
 
-		//取出
+		//取出 -- 系统级 wbs树的数据
 		List<ArchiveTreeVO2> srcTrees = archiveTreeService.tree2(AuthUtil.getTenantId(), dstNode.getProjectId(),
 				null, null,null,false);
 		ArchiveTreeVO2 srcTree = srcTrees.get(0);
@@ -433,16 +433,20 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 //		ArchiveTreeVO2 subTree = ForestNodeMergerEx.getSubTree(srcTree,srcNode.getId());
 //		UpdateByArchiveTree(dstNode.getProjectId(),subTree);
 
-
+		// 合同段 归档树
 		List<ArchiveTreeContractVO2> dstTrees = this.tree2Root(AuthUtil.getTenantId(),null,null,dstNode.getProjectId(),null);
+		// 新增 wbs树
 		List<ArchiveTreeContract> saveList = new ArrayList<>();
+		// 修改 wbs树
 		List<ArchiveTreeContract> upList = new ArrayList<>();
+		//需要添加的合同段信息
 		List<ArchiveTreeContract> saveContractList = new ArrayList<>();
 		ArchiveTreeContractVO2 dstTree = dstTrees.get(0);
 		if (dstTree == null ) {
 			return false;
 		}
 
+		// 质检 下 有多少合同段
 		List<ContractInfo> contractInfos = contractInfoService.selectContractInfoPageByPid(dstNode.getProjectId().toString());
 
 		boolean bHasContract = true;

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

@@ -625,7 +625,7 @@ public class ArchiveTreeContractSyncImpl {
     public List<InformationQuery>  getInformationQuerys(Long contractId,Integer classify) {
         //获取某个合同段所有的电签完成的文件题名,取 id wbsid name,eVisaPdfUrl
 //        List<InformationQuery> informationQueryList = new ArrayList<>();
-        informationQueryClient.getInformationByContractId1(contractId);
+      //  informationQueryClient.getInformationByContractId1(contractId);
         List<InformationQuery> informationQueryList = informationQueryClient.getInformationByContractId(contractId,classify);
         return informationQueryList;
 

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

@@ -817,8 +817,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
                         baseMapper.insertContractRelationJLYZ(SnowFlakeUtil.getId(), contractInfo.getId(), info.getContractId());
                     }
                 }
-
-
             }
             /*总承包合同段(计量合同段)*/
             //else if (contractInfo.getContractType().equals(4)) {

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

@@ -2083,8 +2083,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
                                 InputStream imageIn = CommonUtil.getOSSInputStream(myData);
                                 if (imageIn != null) {
-                                    byte[] byteNew = IOUtils.toByteArray(imageIn);
-                                    byte[] bytes = CommonUtil.compressImage(byteNew);
+                                  //  byte[] byteNew = IOUtils.toByteArray(imageIn);
+                                    byte[] bytes = IOUtils.toByteArray(imageIn);
+                                //    byte[] bytes = CommonUtil.compressImage(byteNew);
                                     // 这里根据实际需求选择图片类型
                                     int pictureIdx = workbook.addPicture(bytes, 6);
                                     CreationHelper helper = workbook.getCreationHelper();
@@ -2472,7 +2473,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             Elements wtName = doc.select("el-input[placeholderxx~=委托单位.*]");
             Elements htdName = doc.select("el-input[placeholderxx~=合同段/工区.*]");
 
-            ContractInfo contractInfo = jdbcTemplate.query("select construction_unit_name,supervision_unit_name,contract_name,laboratory_name from m_contract_info where id = " + contractId, new BeanPropertyRowMapper<>(ContractInfo.class)).stream().findAny().orElse(null);
+            ContractInfo contractInfo = jdbcTemplate.query("select construction_unit_name,supervision_unit_name,contract_name,laboratory_name,is_test_record from m_contract_info where id = " + contractId, new BeanPropertyRowMapper<>(ContractInfo.class)).stream().findAny().orElse(null);
             if (contractInfo != null) {
                 //承包单位
                 if (cbdwBH.size() >= 1) {
@@ -2556,11 +2557,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     for (String key : mysqlData.keySet()) {
                         String tabVal = mysqlData.get(key) + "";
 
-                        if (tabVal.contains("BG-") || tabVal.contains("JL-")) {
+                        if ((tabVal.contains("BG-") || tabVal.contains("JL-")) && Func.isNotEmpty(contractInfo.getIsTestRecord()) && contractInfo.getIsTestRecord()==1) {
                             //重新生成自己的编号,不引用旧编号
                             continue;
                         }
-
                         // 时间段处理
                         if (StringUtils.isNotEmpty(tabVal) && !tabVal.equals("null")) {
                             if (tabVal.contains("T") && tabVal.contains(".000Z]")) {
@@ -2612,7 +2612,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                     if (tabVal.contains("[") && tabVal.contains("年")) {
                                         String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
                                         reData.put(key + "__" + tabData[1], strings);
-                                    }else if (tabVal.contains("[") && tabVal.contains("]") && tabVal.indexOf(",") >= 0) {
+                                    }else if (tabVal.contains("[") && tabVal.contains("]") ) {
                                         String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
                                         reData.put(key + "__" + tabData[1], strings);
                                     } else {
@@ -2689,7 +2689,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             e.printStackTrace();
         }
     }
-
+    
     /**
      * 试验 获取填报信息 - 施工关联试验数据
      */
@@ -3020,6 +3020,14 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                             }
                                         }
 
+                                        // 特殊处理多选框
+                                      /*  if(data.toString().indexOf("el-select")>=0 && myData.indexOf("[")>=0 && myData.indexOf(",")<0){
+                                            System.out.println("123123");
+                                            myData = myData.replace("[","").replace("]","");
+                                        }*/
+
+
+
                                         //https:bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20220819/b53cb6700db369381e3b03d7737bcdec.jpg__16_1
                                         //http:bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20220819/b53cb6700db369381e3b03d7737bcdec.jpg__16_1 可能是http
                                         if (myData.contains("http") && myData.contains("aliyuncs")) {

+ 14 - 15
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java

@@ -163,19 +163,6 @@ public class FileUtils {
         return -1;
     }
 
- /*   public static void main(String[] args) throws IOException, InvalidFormatException {
-        String exceUrl = "/Users/hongchuangyanfa/Downloads/c884eee1164699711fc783c5fe59d51f.xlsx";
-        File file = new File(exceUrl);
-        org.apache.poi.ss.usermodel.Workbook workbook = new XSSFWorkbook(file);
-        Sheet sheet = workbook.getSheetAt(0);
-
-         Row row = sheet.getRow(12 - 1);
-         if (row != null) {
-             Cell cell = row.getCell(4 - 1);
-             System.out.println(cell);
-         }
-
-    }*/
 
     /**
      * 合并方法
@@ -194,8 +181,6 @@ public class FileUtils {
                 try {
                     //获取OSS文件输入流
                     reader = new PdfReader(Objects.requireNonNull(CommonUtil.getOSSInputStream(urlStr)));
-                   // reader = new PdfReader(Objects.requireNonNull(FileUtils.getInputStreamByUrl(urlStr)));
-
                     pageCount = reader.getNumberOfPages();
 
                     for (int i = 0; i < pageCount; ++i) {
@@ -222,6 +207,20 @@ public class FileUtils {
         }
     }
 
+/*    public static void main(String[] args) throws FileNotFoundException {
+        ArrayList<String>  data = new ArrayList<>();
+        String listPdf ="/Users/hongchuangyanfa/Desktop/pdf/123456.pdf";
+        File tabpdf2 = ResourceUtil.getFile(listPdf);
+        if (tabpdf2.exists()) {
+            tabpdf2.delete();
+        }
+        data.add("http://183.247.216.148:9000/minio-oss-chongqing/upload/20240802/f5745a5a785a23fbea576e0dfd494864.pdf");
+        data.add("https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240708/dde27fe7d38520573ff1eb2014f01287.pdf");
+        data.add("https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240708/b1091cee377a5ca6874a4c00b259535e.pdf");
+        data.add("https://blade-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240708/b630ebfb0347e27e312f3c1c7db096e4.pdf");
+        mergePdfPublicMethods(data,listPdf);
+
+    }*/
 
     /**
      * excel 转pdf

+ 3 - 3
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -3932,13 +3932,13 @@ public class TaskController extends BladeController {
     public void addSignTaskBatch(Report report) {
         try {
             // 修改个人电签状态
-            String UPSql = "update u_task_parallel a set a.status=1,e_visa_status=null,e_visa_content=null where a.process_instance_id = (select b.process_instance_id from u_task b where  b.`status` in(1,2) and b.form_data_id=" + report.getPeriodId() + " and b.meter_task_type=" + (Func.toInt(report.getType()) + 1) + ") ";
+            String UPSql = "update u_task_parallel a set a.e_visa_status=null,e_visa_content=null where a.process_instance_id = (select b.process_instance_id from u_task b where  b.`status` in(1,2) and b.form_data_id=" + report.getPeriodId() + " and b.meter_task_type=" + (Func.toInt(report.getType()) + 1) + ") ";
             String DeSql = "delete from u_task_batch where task_parallel_id = (select b.process_instance_id from u_task b where b.`status` in(1,2) and b.form_data_id=" + report.getPeriodId() + " and b.meter_task_type=" + (Func.toInt(report.getType()) + 1) + ")";
-            jdbcTemplate.execute(UPSql);
             //删除以前存在的电签
-            jdbcTemplate.execute(DeSql);
             String sql = " insert INTO u_task_batch(id,task_parallel_id,json_data,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,nick_name) " + " SELECT a.id,a.process_instance_id,json_object('approvalFileList',json_array(),'approvalType',4+b.meter_task_type,'comment','','flag','OK','formDataId',b.form_data_id,'parallelProcessInstanceId',a.parallel_process_instance_id,'pass',true,'taskId',b.id) as  json_data,a.task_user,a.create_dept,a.create_time,a.update_user,a.update_time,1 as status,0 as is_deleted,a.task_user_name as nick_name " + " from u_task_parallel a,u_task b where b.`status` in(1,2) and a.status=2 and  a.process_instance_id=b.process_instance_id and b.form_data_id=" + report.getPeriodId() + " and b.meter_task_type=" + (Func.toInt(report.getType()) + 1);
             jdbcTemplate.execute(sql);
+            jdbcTemplate.execute(DeSql);
+            jdbcTemplate.execute(UPSql);
         } catch (Exception e) {
             StaticLog.error(e.getMessage());
         }

+ 14 - 3
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -42,6 +42,7 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.message.BasicNameValuePair;
 import org.springblade.common.cache.CacheNames;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.excel.util.ExcelUtil;
@@ -62,6 +63,7 @@ import org.springblade.manager.entity.TextdictInfo;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.feign.SaveUserInfoByProjectClient;
+import org.springblade.system.cache.ParamCache;
 import org.springblade.system.user.dto.UserDTO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.excel.UserExcel;
@@ -487,10 +489,14 @@ public class UserController {
     @ApiOperationSupport(order = 20)
     @ApiOperation(value = "token验证加密", notes = "token验证登录")
     public R loginByToken(String token, HttpServletRequest request) {
-
+        String sys_isonline = ParamCache.getValue(CommonConstant.SYS_ISONLINE);
         token = "bearer " + token;
         HttpClient httpClient = HttpClientBuilder.create().build();
-        HttpGet httpPost = new HttpGet("http://152.168.2.11:8090/blade-auth/oauth/user-info");
+        HttpGet httpPost = new HttpGet("http://user.hcxxy.com:8090/blade-auth/oauth/user-info");
+        if("20".equals(sys_isonline)){
+            httpPost =new HttpGet("http://152.168.2.11:8090/blade-auth/oauth/user-info");
+        }
+
         httpPost.setHeader("Authorization", token); //这个需要 client:
         List<NameValuePair> params = new ArrayList<NameValuePair>();
 
@@ -580,7 +586,12 @@ public class UserController {
         System.out.println("密码" + md5Pass);
 
         HttpClient httpClient = HttpClientBuilder.create().build();
-        HttpPost httpPost = new HttpPost("http://152.168.2.11:8090/blade-auth/oauth/token");
+        String url = "http://user.hcxxy.com:8090/blade-auth/oauth/token";
+        String sys_isonline = ParamCache.getValue(CommonConstant.SYS_ISONLINE);
+        if("20".equals(sys_isonline)){
+            url = "http://152.168.2.11:8090/blade-auth/oauth/token";
+        }
+        HttpPost httpPost = new HttpPost(url);
         httpPost.setHeader("Authorization", Authorization);
         httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
         httpPost.setHeader("Tenant-Id", tenId);