浏览代码

2023 12 23 保存更新

zhuwei 1 年之前
父节点
当前提交
8d0904d7d7
共有 15 个文件被更改,包括 119 次插入111 次删除
  1. 2 2
      blade-common/src/main/java/org/springblade/common/utils/AsyncConfigurer.java
  2. 5 3
      blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java
  3. 1 1
      blade-service-api/blade-e-visa-api/src/main/java/org/springblade/evisa/feign/EVisaClient.java
  4. 36 30
      blade-service-api/blade-e-visa-api/src/main/java/org/springblade/evisa/feign/EVisaClientFallBack.java
  5. 0 1
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileTaskController.java
  6. 0 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/UserOpinionController.java
  7. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskBatchMapper.xml
  8. 29 43
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  9. 1 0
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/EVisaApplication.java
  10. 28 23
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java
  11. 4 0
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java
  12. 8 3
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/utils/PDFUtils.java
  13. 2 2
      blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java
  14. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  15. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

+ 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 = 8;//Runtime.getRuntime().availableProcessors();
+    public static final int cpuNum =10 ;//Runtime.getRuntime().availableProcessors();
 
     /**
      * 线程池配置
@@ -26,7 +26,7 @@ public class AsyncConfigurer {
     public ThreadPoolExecutor getAsyncExecutor() {
         return new ThreadPoolMonitor(cpuNum
                 , 20
-                , 60
+                , 30
                 , TimeUnit.SECONDS
                 , new LinkedBlockingQueue<>(2000)
                 , new ThreadPoolExecutor.DiscardOldestPolicy(), "manager-thread-pool");

+ 5 - 3
blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@@ -112,12 +112,14 @@ public class CommonUtil {
      */
     public static InputStream getOSSInputStream(String urlStr) throws Exception {
         //获取OSS文件流
-//        urlStr = replaceOssUrl(urlStr);
         URL imageUrl = new URL(urlStr);
+        HttpURLConnection conn = null;
         try {
-            HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
+            conn = (HttpURLConnection) imageUrl.openConnection();
             conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
-            return conn.getInputStream();
+            InputStream inputStream = conn.getInputStream();
+
+            return inputStream;
         } catch (Exception e) {
             return null;
         }

+ 1 - 1
blade-service-api/blade-e-visa-api/src/main/java/org/springblade/evisa/feign/EVisaClient.java

@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
-@FeignClient(value = EVisaConstant.APPLICATION_WEATHER_NAME)
+@FeignClient(value = EVisaConstant.APPLICATION_WEATHER_NAME,fallbackFactory = EVisaClientFallBack.class)
 public interface EVisaClient {
 
     /**

+ 36 - 30
blade-service-api/blade-e-visa-api/src/main/java/org/springblade/evisa/feign/EVisaClientFallBack.java

@@ -6,41 +6,47 @@ import org.springblade.evisa.vo.CertBeanVO;
 import org.springblade.evisa.vo.EVisaMakeSealVO;
 import org.springblade.evisa.vo.EVisaTaskApprovalVO;
 import org.springblade.evisa.vo.TaskArchiveDTO;
+import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
 @Component
-public class EVisaClientFallBack implements EVisaClient {
-
+public class EVisaClientFallBack implements FallbackFactory<EVisaClient> {
     private static final Logger logger = LoggerFactory.getLogger(EVisaClientFallBack.class);
 
     @Override
-    public String eVisaContractSeal(EVisaTaskApprovalVO task, String finalPdfUrl) {
-        return null;
-    }
-
-    @Override
-    public String eVisa(EVisaTaskApprovalVO task) {
-        return null;
-    }
-
-    @Override
-    public String eVisaCustom(TaskArchiveDTO eVisaObj) {
-        logger.info("-----------------远程feign调用电签自定义签章服务EVisaCustom方法失败-----------------");
-        return "500";
-    }
-
-    @Override
-    public String createSeal(EVisaMakeSealVO vo) {
-        return null;
-    }
-
-    @Override
-    public String certification(String pdfUrl, String fileName, String contractId) {
-        return null;
-    }
-
-    @Override
-    public CertBeanVO onlineCheckSeal(String pdfUrl) {
-        return null;
+    public EVisaClient create(Throwable throwable) {
+        return new EVisaClient() {
+            @Override
+            public String eVisaContractSeal(EVisaTaskApprovalVO task, String finalPdfUrl) {
+                return null;
+            }
+
+            @Override
+            public String eVisa(EVisaTaskApprovalVO task) {
+                System.out.println("throwable.getMessage() = " + throwable.getMessage());
+                logger.info("throwable.getMessage() = " +throwable.getMessage());
+                return null;
+            }
+
+            @Override
+            public String eVisaCustom(TaskArchiveDTO eVisaObj) {
+                return null;
+            }
+
+            @Override
+            public String createSeal(EVisaMakeSealVO vo) {
+                return null;
+            }
+
+            @Override
+            public String certification(String pdfUrl, String fileName, String contractId) {
+                return null;
+            }
+
+            @Override
+            public CertBeanVO onlineCheckSeal(String pdfUrl) {
+                return null;
+            }
+        };
     }
 }

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

@@ -13,7 +13,6 @@ import org.springblade.archive.vo.ArchiveTaskPageVO;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.entity.Task;
 import org.springblade.business.entity.TaskParallel;
-import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;

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

@@ -41,7 +41,6 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springblade.system.vo.DictBizVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.business.entity.UserOpinion;
 import org.springblade.business.vo.UserOpinionVO;

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

@@ -26,7 +26,7 @@
     </delete>
 
     <select id="queryDataInfo" resultMap="taskBatchResultMap">
-        SELECT * from u_task_batch where is_deleted not in(4) LIMIT 40
+        SELECT DISTINCT JSON_EXTRACT(a.json_data, '$.formDataId') ,a.* from u_task_batch a GROUP BY JSON_EXTRACT(a.json_data, '$.formDataId') LIMIT 140
     </select>
 
 </mapper>

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

@@ -20,6 +20,7 @@ import org.springblade.business.vo.*;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.cloud.feign.EnableBladeFeign;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
@@ -51,6 +52,7 @@ import org.springblade.system.user.cache.UserCache;
 import org.springblade.system.user.entity.User;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -79,6 +81,7 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service
 @AllArgsConstructor
+@EnableFeignClients
 public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implements ITaskService {
 
     private static final Logger logger = LoggerFactory.getLogger(TaskServiceImpl.class);
@@ -388,7 +391,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
      */
     @Override
     public Map<String, String> getTaskCount(String projectId, String contractId, String userId) {
-        Map<String, String> map = new HashMap<>();
         if (StringUtils.isNotEmpty(projectId) && StringUtils.isNotEmpty(contractId)) {
             List<Task> tasks = this.baseMapper.selectList(Wrappers.<Task>lambdaQuery()
                     .select(Task::getProcessInstanceId)
@@ -423,7 +425,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             long messageCount3 = messageWarnings.stream().filter(f -> f.getType().equals(3)).count();
             long messageCount4 = messageWarnings.stream().filter(f -> f.getType().equals(4)).count();
             long messageCount5 = messageWarnings.stream().filter(f -> f.getType().equals(5)).count();
-
+            Map<String, String> map = new HashMap<>();
             map.put("allCount", String.valueOf(taskAllCount + messageWarnings.size()));//任务管理
             map.put("taskCount", String.valueOf(taskAllCount));//任务查看
             map.put("messageCount", String.valueOf(messageWarnings.size()));//消息提醒
@@ -433,15 +435,14 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             map.put("messageCount_4", String.valueOf(messageCount4));//工单反馈
             map.put("messageCount_5", String.valueOf(messageCount5));//系统消息
             map.put("userId", userId);
-        }
-        return map;
-        /*else {
+            return map;
+        } else {
             Map<String, String> map = new HashMap<>();
             List<BusinessUserOpinionVO> businessUserOpinionVOS = userOpinionService.getBaseMapper().queryManageUserOpinionList(userId).stream().filter(f -> f.getIsCurrent().equals(false)).collect(Collectors.toList());
             map.put("myMessageCount", String.valueOf(businessUserOpinionVOS.size()));//后管消息区-我的消息-未处理
             map.put("userId", userId);
             return map;
-        }*/
+        }
     }
 
     /**
@@ -454,7 +455,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
      */
     @Override
     public Map<String, String> getTaskCountArchive(String projectId, String contractId, String userId) {
-        Map<String, String> map = new HashMap<>();
         if (StringUtils.isNotEmpty(projectId) && StringUtils.isNotEmpty(contractId)) {
             List<Task> tasks = this.baseMapper.selectList(Wrappers.<Task>lambdaQuery()
                     .select(Task::getProcessInstanceId)
@@ -489,7 +489,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             long messageCount3 = messageWarnings.stream().filter(f -> f.getType().equals(3)).count();
             long messageCount4 = messageWarnings.stream().filter(f -> f.getType().equals(4)).count();
             long messageCount5 = messageWarnings.stream().filter(f -> f.getType().equals(5)).count();
-
+            Map<String, String> map = new HashMap<>();
             map.put("allCount", String.valueOf(taskAllCount + messageWarnings.size()));//任务管理
             map.put("taskCount", String.valueOf(taskAllCount));//任务查看
             map.put("messageCount", String.valueOf(messageWarnings.size()));//消息提醒
@@ -499,8 +499,14 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             map.put("messageCount_4", String.valueOf(messageCount4));//工单反馈
             map.put("messageCount_5", String.valueOf(messageCount5));//系统消息
             map.put("userId", userId);
+            return map;
+        } else {
+            Map<String, String> map = new HashMap<>();
+            List<BusinessUserOpinionVO> businessUserOpinionVOS = userOpinionService.getBaseMapper().queryManageUserOpinionList(userId).stream().filter(f -> f.getIsCurrent().equals(false)).collect(Collectors.toList());
+            map.put("myMessageCount", String.valueOf(businessUserOpinionVOS.size()));//后管消息区-我的消息-未处理
+            map.put("userId", userId);
+            return map;
         }
-        return map;
     }
 
     /**
@@ -573,12 +579,12 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     }
 
 
-    // @Scheduled(cron = "0 */1 * * * ?")
+    @Scheduled(cron = "0 */1 * * * ?")
     public void SignInfo() {
         //执行代码
         logger.debug("扫描开始");
         List<TaskBatch> maps = taskBatchService.queryDataInfo();
-        if (maps != null && maps.size() >= 1) {
+        if (maps != null && maps.size() >= 1 && executor.getQueue().size()<=200) {
             for (TaskBatch dataInfo : maps) {
                 String jsonData = dataInfo.getJsonData();
                 TaskApprovalVO taskApprovalVO = JSON.parseObject(jsonData, TaskApprovalVO.class);
@@ -586,36 +592,18 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 Long userId = dataInfo.getCreateUser();
                 String nickName = dataInfo.getNickName();
 
-                Boolean istrue = true;
-                try {
-                    Thread.sleep(500);
-                } catch (InterruptedException e) {
-                    throw new RuntimeException(e);
-                }
-
                 Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
-                System.out.println(taskApprovalVO.getFormDataId() + "---" + aBoolean);
-                if (aBoolean) {
-                    istrue = false;
-                }
-                if (istrue) {
-                    int wtask = executor.getQueue().size();
-                    if (wtask >= 200) {
-                        break;
-                    }
-                    // taskBatchService.update(Wrappers.<TaskBatch>update().set("is_deleted", 2).eq("id", taskBatchId));
-                    RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 70, TimeUnit.SECONDS);
+                System.out.println("---------"+aBoolean);
+                if (!aBoolean) {
+                    RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1");
                     CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
                         try {
-
                             /*===============执行批量任务===============*/
                             this.checkIsExsitTaskBatch(taskApprovalVO, taskBatchId, userId, nickName);
-
                         } catch (FileNotFoundException e) {
                             e.printStackTrace();
                         }
                     }, executor);
-
                 }
             }
         }
@@ -639,7 +627,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         /*===============试验自检任务相关===============*/
         this.trialSelfTaskRelated(taskApprovalVO, pdfUrlEVisa, batchId);
 
-        RedisTemplate.delete("sign-" + taskApprovalVO.getFormDataId());
     }
 
     // 电签主流程业务
@@ -659,29 +646,30 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             return "无当前分支信息";
         }
         //获取主流程
-        Task masterTask = this.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getIsDeleted, 0).eq(Task::getProcessInstanceId, currentLink.getProcessInstanceId()));
+        Task masterTask = getOne(Wrappers.<Task>lambdaQuery().eq(Task::getIsDeleted, 0).eq(Task::getProcessInstanceId, currentLink.getProcessInstanceId()));
 
         if ("OK".equals(taskApprovalVO.getFlag())) {
             //同意,执行签章
             //todo ============================ 执行电签区域 ============================
             //电签状态
-            String eVisaStatus = this.eVisaClient.eVisa(JSONObject.parseObject(JSONObject.toJSONString(taskApprovalVO), EVisaTaskApprovalVO.class));
-            System.out.println("+++++" + eVisaStatus);
+            System.out.println("++buess-开始+++" + taskApprovalVO.getFormDataId());
+            String eVisaStatus = eVisaClient.eVisa(JSONObject.parseObject(JSONObject.toJSONString(taskApprovalVO), EVisaTaskApprovalVO.class));
+            System.out.println("+++evsin-返回++"+ taskApprovalVO.getFormDataId()+"--"+ eVisaStatus);
             //todo ============================ 执行电签区域 ============================
 
             //电签状态分为success/notPfxOrFile/error,当状态为error时就需要重新提交请求
             if (eVisaStatus == null || StringUtils.isEmpty(eVisaStatus)) {
-                this.taskBatchService.update(Wrappers.<TaskBatch>lambdaUpdate()
+                taskBatchService.update(Wrappers.<TaskBatch>lambdaUpdate()
                         .set(TaskBatch::getIsDeleted, 4)
                         .eq(TaskBatch::getId, taskApprovalVO.getId())
                 );
-
+                RedisTemplate.delete("sign-" + taskApprovalVO.getFormDataId());
             } else if ("success".equals(eVisaStatus) || eVisaStatus.contains("success")) {
                 //审批通过会返回签章成功的文件,需要设置替换
                 //完成/审批当前分支流程
                 //    this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
                 //修改分支状态,改为已完成
-                this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
+                taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
                         .set(TaskParallel::getStatus, 2)
                         .set(TaskParallel::getEVisaStatus, 1)
                         .set(TaskParallel::getEVisaContent, "电签成功")
@@ -816,9 +804,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             this.abolishMessage(masterTask, currentLink, comment, taskApprovalVO.getNickName());
         }
 
-        /*//return前先删除合同段树redis缓存
-        informationQueryService.delAsyncWbsTree(masterTask.getContractId());*/
-
         return "";
     }
 
@@ -931,13 +916,14 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             this.iTrialSelfInspectionRecordService.updateTrialSelfInspectionRecordStatus(pdfUrlEVisa, taskApprovalVO);
             //executor删除掉对应批次
             this.taskBatchService.deletedById(batchId);
+            RedisTemplate.delete("sign-" + taskApprovalVO.getFormDataId());
         }
 
         if (!"OK".equals(taskApprovalVO.getFlag())) {
             //已废除
             this.iTrialSelfInspectionRecordService.updateTrialSelfInspectionRecordStatusFC(taskApprovalVO);
             //executor删除掉对应批次
-            this.taskBatchService.deletedById(batchId);
+            RedisTemplate.delete("sign-" + taskApprovalVO.getFormDataId());
         }
     }
 

+ 1 - 0
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/EVisaApplication.java

@@ -13,6 +13,7 @@ import org.springframework.cloud.client.SpringCloudApplication;
 public class EVisaApplication {
 
     public static void main(String[] args) {
+
         BladeApplication.run(EVisaConstant.APPLICATION_WEATHER_NAME, EVisaApplication.class, args);
     }
 

+ 28 - 23
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java

@@ -20,13 +20,13 @@ import java.io.BufferedReader;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.concurrent.*;
 
 import java.lang.management.ManagementFactory;
 import java.lang.management.OperatingSystemMXBean;
+import java.util.concurrent.locks.ReentrantLock;
+
 /**
  * 清表基础数据表 控制器
  *
@@ -49,10 +49,10 @@ public class EVisaController {
     @Resource(name = "taskExecutor1")
     private ThreadPoolExecutor executor;
 
-
     // 电签主类
-    @Scheduled(cron = "0 */1 * * * ?")
+  //  @Scheduled(cron = "0 */1 * * * ?")
     public void SignInfo() {
+
         //执行代码
         log.info("扫描开始");
         String sql = "SELECT * from u_task_batch where is_deleted =0 LIMIT 100";
@@ -64,29 +64,34 @@ public class EVisaController {
                 String taskBatchId = dataInfo.get("id").toString();
                 Long userId = Long.valueOf(dataInfo.get("create_user")+"");
                 String nickName = dataInfo.get("nick_name")+"";
-                String formDataId = taskApprovalVO.getFormDataId();
+                Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
+                System.out.println(aBoolean);
+
+                RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 600, TimeUnit.SECONDS);
 
-                CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
-                        try {
-                           this.checkIsExsitTaskBatch(taskApprovalVO, taskBatchId, userId, nickName);
-                        } catch (FileNotFoundException e) {
-                            e.printStackTrace();
+               /* String formDataId = taskApprovalVO.getFormDataId().substring(0,5);
+                synchronized (formDataId){
+                    executor.execute(new Runnable() {
+                        @Override
+                        public void run() {
+                            checkIsExsitTaskBatch(taskApprovalVO,formDataId,userId,nickName);
                         }
-                }, executor);
+                    });
+                }*/
             }
         }
     }
 
-    private void checkIsExsitTaskBatch(TaskApprovalVO taskApprovalVO, String batchId, Long userId, String nickName) throws FileNotFoundException {
-        synchronized (taskApprovalVO.getFormDataId()) {
-            try {
-                System.out.println(taskApprovalVO.getFormDataId());
-                Thread.sleep(8000);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
-            }
-        }
-        System.out.println();
+    public void checkIsExsitTaskBatch(TaskApprovalVO taskApprovalVO, String batchId, Long userId, String nickName){
+           synchronized (batchId){
+               try {
+                   System.out.println("开始执行-------");
+                   Thread.sleep(8000);
+                   System.out.println(batchId);
+                   System.out.println("结束执行-------");
+               } catch (InterruptedException e) {
+                   throw new RuntimeException(e);
+               }
+           }
     }
-
 }

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

@@ -511,6 +511,7 @@ public class EVisaServiceImpl implements EVisaService {
                             MultipartFile newFiles = new MockMultipartFile("file", SnowFlakeUtil.getId() + ".pdf", "text/plain", IOUtils.toByteArray(new ByteArrayInputStream((byte[]) result[0])));
                             //重新上传
                             BladeFile bladeFile = this.newIOSSClient.uploadFileByInputStream(newFiles);
+
                             if (bladeFile != null) {
                                 resultMessage = SUCCESS + "@@@@" + bladeFile.getLink();
                             } else {
@@ -532,6 +533,7 @@ public class EVisaServiceImpl implements EVisaService {
         //释放锁
         //  DistributedRedisLock.release(task.getUserId().toString());
 
+        System.out.println("bladeFile---eVisa"+task.getFormDataId()+"--"+resultMessage);
         return resultMessage;
     }
 
@@ -825,7 +827,9 @@ public class EVisaServiceImpl implements EVisaService {
 
             compoundSealPdfListDetachedRequest.setBody(requestBody);
             //****************************** 请求服务端进行签章 *********************************************
+            System.out.println("-----------------------"+new Date().toString()+"开始"+transactionNo +"----------------------------");
             ResponseDto responseDto = paperlessClient.execute(compoundSealPdfListDetachedRequest);
+            System.out.println("-----------------------"+new Date().toString()+"结束"+transactionNo +"----------------------------");
 
             //******************************解析响应结果 *********************************************
             CompoundSealPdfListDetachedResponse compoundSealPdfListDetachedResponse = (CompoundSealPdfListDetachedResponse) responseDto;

+ 8 - 3
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/utils/PDFUtils.java

@@ -11,6 +11,7 @@ import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.tool.utils.Func;
 
 import java.io.InputStream;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -65,7 +66,8 @@ public class PDFUtils {
         PdfDocument pdf = new PdfDocument();
         List<String> eVisaConfigList = new ArrayList<>();
         try {
-            InputStream ossInputStream = CommonUtil.getOSSInputStream(pdfUrl);
+            InputStream ossInputStream = CommonUtil.getOSSInputStream(pdfUrl);;
+          //  InputStream ossInputStream = new URL(pdfUrl).openStream();
             //加载PDF文档
             pdf.loadFromStream(ossInputStream);
 
@@ -81,12 +83,15 @@ public class PDFUtils {
                     }
                 }
             }
+
+
+            List<String> unique = eVisaConfigList.stream().distinct().collect(Collectors.toList());
             ossInputStream.close();
+            return unique;
         }catch (Exception e){
             e.printStackTrace();
         }
-        List<String> unique = eVisaConfigList.stream().distinct().collect(Collectors.toList());
-        return unique;
+        return null;
     }
 
     public static void main123(String[] args) {

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

@@ -2706,11 +2706,11 @@ public class CustomFunction {
             if (StringUtils.isEmpty(scale)) {
                 scale = 0;
             }
-            String delimiter = handleNull(matcherFindGroup("[^0-9./E\\-]", design.toString(), 0, false));
+            String delimiter = handleNull(matcherFindGroup("[^0-9./E]", design.toString(), 0, false));
             if (StringUtils.isEmpty(delimiter)) {
                 delimiter = CONCAT;
             }
-            String delimiter2 = handleNull(matcherFindGroup("[^0-9.E\\-]", data.toString(), 0, false));
+            String delimiter2 = handleNull(matcherFindGroup("[^0-9.E]", data.toString(), 0, false));
             if (StringUtils.isEmpty(delimiter2)) {
                 delimiter2 = CONCAT;
             }

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

@@ -314,7 +314,7 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "nodeId", value = "节点id", required = true)
     })
     public R putFileAttach(@RequestParam("file") MultipartFile file, Long nodeId) {
-        String file_path = FileUtils.getSysLocalFileUrl();
+        String file_path = "/Users/hongchuangyanfa/Desktop/";//FileUtils.getSysLocalFileUrl();
         ExcelTab detail = excelTabService.getById(nodeId);
 
         String filecode = SnowFlakeUtil.getId() + "";

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

@@ -2460,6 +2460,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         return R.fail("无数据");
     }
 
+
     String[] tabArr=new String[]{"计量报表","动员预付款报表","材料预付款报表"};
     @Override
     public void execute3(Long contractId,Long periodId ,Integer type) {