瀏覽代碼

修复异步线程缺陷

lyq 1 年之前
父節點
當前提交
3dffd598ba

+ 1 - 1
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/AlarmEventController.java

@@ -221,6 +221,6 @@ public class AlarmEventController {
                 i++;
             }
         }
-        return R.ok(i);// 489
+        return R.ok(i);// 3951
     }
 }

+ 13 - 4
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTEventcatalogueController.java

@@ -43,6 +43,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 
 import static com.sooka.sponest.event.utils.EventConstants.*;
@@ -209,7 +210,7 @@ public class CentereventTEventcatalogueController extends BaseController {
             centereventTEventcatalogue.setEventStatusValue("forest_event_status_2");
             centereventTEventcatalogue.setEventStatus("签收");
             SysUser user = SecurityUtils.getLoginUser().getSysUser();
-            CompletableFuture.runAsync(() -> {
+            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                 SysUser sysUser = SpringUtils.getBean(RemoteUserService.class).selectById(centereventTEventcatalogue.getUpdateBy()).getData();
                 if (null != sysUser) {
                     String message = "您申请办结的事件经县(市/区)指挥中心审核,未达到归档标准,请重新处置!如有疑问请联系县(市/区)指挥中心。审核人:"
@@ -217,6 +218,13 @@ public class CentereventTEventcatalogueController extends BaseController {
                     RemoteApiUtil.getInstance().sendMessage(new HashSet<>(Arrays.asList(sysUser.getPhonenumber())), message, centereventTEventcatalogue.getEventCode(), centereventTEventcatalogue.getEventName());
                 }
             });
+            try {
+                future.get();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage());
+            } catch (ExecutionException e) {
+                logger.error(e.getMessage());
+            }
         }
         // 审核后变更消息状态为已读
         RemoteApiUtil.getInstance().updateMessageByEventCode(centereventTEventcatalogue.getEventCode());
@@ -275,7 +283,7 @@ public class CentereventTEventcatalogueController extends BaseController {
         // 确认时更改附件路径
         try {
             if ("qr".equals(centereventtDeptEventBO.getEventStatus())) {
-                CompletableFuture.runAsync(() -> {
+                CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                     Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
                     paramMap.put("czlx", centereventtDeptEventBO.getCzlx());
                     CentereventTFireLog log = centereventTFireLogService.selectFirstCentereventTFireLogByEventCode(centereventtDeptEventBO.getEventCode());
@@ -283,6 +291,7 @@ public class CentereventTEventcatalogueController extends BaseController {
                     paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
                     remoteDataService.updateAttach(paramMap);
                 });
+                future.get();
             }
         } catch (Exception e) {
             logger.error(e.getMessage());
@@ -311,9 +320,9 @@ public class CentereventTEventcatalogueController extends BaseController {
         Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
         paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
         List<Map<String, Object>> list = centereventTEventcatalogueService.selectFailUpattah();
-        for (Map map:list) {
+        for (Map map : list) {
             paramMap.put("czlx", "AI");
-            paramMap.put("busId", MapUtils.getString(map,"busId"));
+            paramMap.put("busId", MapUtils.getString(map, "busId"));
             remoteDataService.updateAttach(paramMap);
         }
         return AjaxResult.success();

+ 1 - 1
src/main/java/com/sooka/sponest/event/centereventtreportmessage/mapper/CentereventTReportmessageMapper.java

@@ -21,7 +21,7 @@ public interface CentereventTReportmessageMapper {
      */
     List<CentereventTReportmessage> selectCentereventTReportmessageList(CentereventTReportmessage centereventTReportmessage);
 
-    List<CentereventTReportmessage> selectCentereventTReportmessageListRange(@Param("start") String start, @Param("end") String end, @Param("end") String source);
+    List<CentereventTReportmessage> selectCentereventTReportmessageListRange(@Param("start") String start, @Param("end") String end, @Param("source") String source);
 
     /**
      * 查询报文日志

+ 25 - 3
src/main/java/com/sooka/sponest/event/utils/RemoteApiUtil.java

@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
 
 /**
  * @Auther: mjq
@@ -138,7 +139,7 @@ public class RemoteApiUtil {
             messagePushrecordVo.setTitle("通知");
             messagePushrecordVo.setContent(message);
             messagePushrecordVo.setEventCode(StringUtils.isBlank(eventCode) ? "" : eventCode);
-            CompletableFuture.runAsync(() -> {
+            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                 RequestContextHolder.setRequestAttributes(attributes);
                 try {
                     SpringUtils.getBean(RemoteMessageService.class).insertCentermessageTPushrecord(messagePushrecordVo);
@@ -146,6 +147,13 @@ public class RemoteApiUtil {
                     logger.error(e.getMessage());
                 }
             });
+            try {
+                future.get();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage());
+            } catch (ExecutionException e) {
+                logger.error(e.getMessage());
+            }
         }
     }
 
@@ -157,7 +165,7 @@ public class RemoteApiUtil {
     public void updateMessageByEventCode(String eventCode) {
         if (StringUtils.isNotBlank(eventCode)) {
             RequestAttributes attributes = RequestContextHolder.getRequestAttributes();// 异步之前获取上下文
-            CompletableFuture.runAsync(() -> {
+            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                 RequestContextHolder.setRequestAttributes(attributes);
                 try {
                     SpringUtils.getBean(RemoteMessageService.class).updateMessageByEventCode(eventCode);
@@ -165,6 +173,13 @@ public class RemoteApiUtil {
                     logger.error(e.getMessage());
                 }
             });
+            try {
+                future.get();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage());
+            } catch (ExecutionException e) {
+                logger.error(e.getMessage());
+            }
         }
     }
 
@@ -203,7 +218,7 @@ public class RemoteApiUtil {
             evaluation.setEventName(centereventTEventcatalogue.getEventName());
             evaluation.setCreateBy(SecurityUtils.getUserId().toString());
             evaluation.setCreateName(user.getNickName());
-            CompletableFuture.runAsync(() -> {
+            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                 RequestContextHolder.setRequestAttributes(attributes);
                 try {
                     SpringUtils.getBean(RemoteEvaluationService.class).addFen(evaluation);
@@ -211,6 +226,13 @@ public class RemoteApiUtil {
                     logger.error(e.getMessage());
                 }
             });
+            try {
+                future.get();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage());
+            } catch (ExecutionException e) {
+                logger.error(e.getMessage());
+            }
         }
     }
 }