소스 검색

2023 10 24 bug修改

zhuwei 1 년 전
부모
커밋
f08b842833

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

@@ -26,7 +26,9 @@
     </delete>
 
     <select id="queryDataInfo" resultMap="taskBatchResultMap">
-        SELECT max(id) as id,task_parallel_id,json_data,create_user,create_dept,create_time,nick_name,is_deleted from u_task_batch  WHERE is_deleted =0 GROUP BY JSON_EXTRACT(json_data,'$.formDataId')  LIMIT 100
+        SELECT * from u_task_batch
+                 where id IN (SELECT max(id) from u_task_batch  WHERE is_deleted =0 GROUP BY JSON_EXTRACT(json_data,'$.formDataId')
+        ) LIMIT 100
     </select>
 
 </mapper>

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

@@ -18,20 +18,17 @@ import org.springblade.business.mapper.TaskMapper;
 import org.springblade.business.service.*;
 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.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.evisa.feign.EVisaClient;
-import org.springblade.evisa.redissionUtil.DistributedRedisLock;
 import org.springblade.evisa.vo.EVisaTaskApprovalVO;
 import org.springblade.flow.core.constant.ProcessConstant;
 import org.springblade.flow.core.entity.BladeFlow;
@@ -50,14 +47,11 @@ import org.springblade.manager.feign.ProjectClient;
 import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springblade.manager.vo.AppWbsTreeContractVO;
 import org.springblade.resource.feign.CommonFileClient;
-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.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -562,7 +556,11 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
 
             //保存批次
             TaskBatch taskBatch = new TaskBatch(null, JSONObject.toJSONString(taskApprovalVO));
-            taskBatch.setCreateUser(taskApprovalVO.getUserId());
+            if(taskApprovalVO.getUserId()==null || StringUtils.isEmpty(taskApprovalVO.getUserId()+"")){
+                taskBatch.setCreateUser(userId);
+            }else{
+                taskBatch.setCreateUser(taskApprovalVO.getUserId());
+            }
             taskBatch.setNickName(nickName);
             taskBatch.setCreateTime(new Date());
             taskList.add(taskBatch);
@@ -575,13 +573,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     public void SignInfo() {
         //执行代码
         logger.debug("扫描开始");
-
-      //  List<TaskBatch> maps = taskBatchService.getBaseMapper().selectList(Wrappers.<TaskBatch>lambdaQuery().eq(TaskBatch::getIsDeleted, 0)).stream().limit(50).collect(Collectors.toList());
-
         List<TaskBatch> maps = taskBatchService.queryDataInfo();
-
-
-        if (maps != null && maps.size() >= 1 && executor.getQueue().size()<=0) {
+        if (maps != null && maps.size() >= 1 ) {
             for (TaskBatch dataInfo : maps) {
                 String jsonData = dataInfo.getJsonData();
                 TaskApprovalVO taskApprovalVO = JSON.parseObject(jsonData, TaskApprovalVO.class);
@@ -590,7 +583,13 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 String nickName = dataInfo.getNickName();
 
                 Boolean istrue = true;
+                try {
+                    Thread.sleep(200);
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
                 Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
+                System.out.println(aBoolean);
                 if (aBoolean) {
                     istrue = false;
                 }
@@ -600,33 +599,30 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         break;
                     }
                     CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
-                        try {
-                            this.checkIsExsitTaskBatch(taskApprovalVO, taskBatchId, userId, nickName);
-                        } catch (FileNotFoundException e) {
+                       try {
+                           this.checkIsExsitTaskBatch(taskApprovalVO, taskBatchId, userId, nickName);
+                       }catch (FileNotFoundException e) {
                             e.printStackTrace();
                         }
                     }, executor);
-                    runAsync.join();
                 }
             }
+            System.out.println("队列数量" + executor.getQueue().size());
+            System.out.println("活跃数量" + executor.getActiveCount());
+            System.out.println("总共数量" + executor.getTaskCount());
+            System.out.println("完成数量" + executor.getCompletedTaskCount());
         }
     }
 
     private void checkIsExsitTaskBatch(TaskApprovalVO taskApprovalVO, String batchId, Long userId, String nickName) throws FileNotFoundException {
         logger.info("【任务审核】当前批次开始电签。批次ID:" + batchId);
-        //执行电签
-        System.out.println("队列数量" + executor.getQueue().size());
-        System.out.println("活跃数量" + executor.getActiveCount());
-        System.out.println("总共数量" + executor.getTaskCount());
-        System.out.println("完成数量" + executor.getCompletedTaskCount());
         taskApprovalVO.setId(batchId);
         taskApprovalVO.setUserId(userId);
         taskApprovalVO.setNickName(nickName);
-        RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 60, TimeUnit.SECONDS);
+        RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 125, TimeUnit.SECONDS);
 
         String pdfUrlEVisa = this.completeApprovalTask(taskApprovalVO);
 
-
         System.out.println("电签操作成功buss-----" + pdfUrlEVisa+"---batchId="+batchId);
         //TODO ============== 电签成功,修改试验状态,关联工程部位信息pdf(只有电签成功,才修改) liuYc 2023-03-16 ==============
         if ("OK".equals(taskApprovalVO.getFlag()) && StringUtils.isNotEmpty(pdfUrlEVisa)) {