Pārlūkot izejas kodu

截图定时优化

wyyay 1 gadu atpakaļ
vecāks
revīzija
36fcaa98c5

+ 1 - 1
business-service/src/main/java/com/ozs/service/service/impl/CameraCaptureService.java

@@ -50,7 +50,7 @@ public class CameraCaptureService {
             connection.setRequestProperty("Charsert", "UTF-8");
             //设置读取时间为30秒
             connection.setConnectTimeout(30 * 1000);
-            connection.setReadTimeout(30 * 1000);
+            connection.setReadTimeout(180 * 1000);
             connection.connect();
 
             // 返回流

+ 20 - 3
hazard-admin/src/main/java/com/ozs/web/controller/shotschedule/ShotPictureExecutors.java

@@ -1,5 +1,7 @@
 package com.ozs.web.controller.shotschedule;
 
+import com.ozs.common.core.domain.entity.SysDictData;
+import com.ozs.common.utils.DictUtils;
 import com.ozs.system.service.ISysDictDataService;
 import com.ozs.system.service.ISysDictTypeService;
 import lombok.extern.slf4j.Slf4j;
@@ -11,8 +13,10 @@ import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author wyy
@@ -43,8 +47,14 @@ public class ShotPictureExecutors {
     public synchronized void handleNormalPicture() {
 
         try {
-
-            this.threadPoolTaskExecutor.execute(taskService::getNormalPicture);
+            List<SysDictData> dataList = DictUtils.getDictCache("shot_switch");
+            if(CollectionUtils.isEmpty(dataList)){
+                dataList = iSysDictTypeService.selectDictDataByType("shot_switch");
+                DictUtils.setDictCache("shot_switch",dataList);
+            }
+            if(Boolean.parseBoolean(dataList.get(0).getDictLabel())){
+                this.threadPoolTaskExecutor.execute(taskService::getNormalPicture);
+            }
         } catch (Exception e) {
             e.getMessage();
             log.error("正常摄像机截图定时任务失败",e);
@@ -57,7 +67,14 @@ public class ShotPictureExecutors {
     @Scheduled(fixedRate = 500)
     public void handleAlarmPicture() {
         try {
-            this.threadPoolTaskExecutor.execute(taskService::getAlarmPicture);
+            List<SysDictData> dataList = DictUtils.getDictCache("shot_switch");
+            if(CollectionUtils.isEmpty(dataList)){
+                dataList = iSysDictTypeService.selectDictDataByType("shot_switch");
+                DictUtils.setDictCache("shot_switch",dataList);
+            }
+            if(Boolean.parseBoolean(dataList.get(0).getDictLabel())){
+                this.threadPoolTaskExecutor.execute(taskService::getAlarmPicture);
+            }
         } catch (Exception e) {
             e.getMessage();
             log.error("报警摄像机截图定时任务失败",e);

+ 4 - 22
hazard-admin/src/main/java/com/ozs/web/controller/shotschedule/TaskService.java

@@ -48,22 +48,13 @@ public class TaskService {
 
     public void getNormalPicture() {
         String address = storeAddress;
-        List<SysDictData> dataList = DictUtils.getDictCache("shot_switch");
-        if(CollectionUtils.isEmpty(dataList) || Objects.isNull(dataList.get(0))){
-            dataList = iSysDictTypeService.selectDictDataByType("shot_switch");
-            DictUtils.setDictCache("shot_switch",dataList);
-        }
         List<SysDictData> addressDataList = DictUtils.getDictCache("shot_address");
         if(CollectionUtils.isEmpty(addressDataList) || Objects.isNull(addressDataList.get(0))){
             addressDataList = iSysDictTypeService.selectDictDataByType("shot_address");
             DictUtils.setDictCache("shot_address",addressDataList);
         }
-        if(!CollectionUtils.isEmpty(dataList) && Objects.nonNull(dataList.get(0))){
-            if (Boolean.parseBoolean(dataList.get(0).getDictLabel())) {
-                if(!CollectionUtils.isEmpty(addressDataList) && Objects.nonNull(addressDataList.get(0))){
-                    address = addressDataList.get(0).getDictLabel();
-                }
-            }
+        if(!CollectionUtils.isEmpty(addressDataList) && Objects.nonNull(addressDataList.get(0))){
+            address = addressDataList.get(0).getDictLabel();
         }
         boolean isHasKeyNormal = redisService.hasKey(Constants.NORMAL_SET);
         if(!isHasKeyNormal){
@@ -101,22 +92,13 @@ public class TaskService {
 
     public void getAlarmPicture() {
         String address = storeAddress;
-        List<SysDictData> dataList = DictUtils.getDictCache("shot_switch");
-        if(CollectionUtils.isEmpty(dataList) || Objects.isNull(dataList.get(0))){
-            dataList = iSysDictTypeService.selectDictDataByType("shot_switch");
-            DictUtils.setDictCache("shot_switch",dataList);
-        }
         List<SysDictData> addressDataList = DictUtils.getDictCache("shot_address");
         if(CollectionUtils.isEmpty(addressDataList) || Objects.isNull(addressDataList.get(0))){
             addressDataList = iSysDictTypeService.selectDictDataByType("shot_address");
             DictUtils.setDictCache("shot_address",addressDataList);
         }
-        if(!CollectionUtils.isEmpty(dataList) && Objects.nonNull(dataList.get(0))){
-            if (Boolean.parseBoolean(dataList.get(0).getDictLabel())) {
-                if(!CollectionUtils.isEmpty(addressDataList) && Objects.nonNull(addressDataList.get(0))){
-                    address = addressDataList.get(0).getDictLabel();
-                }
-            }
+        if(!CollectionUtils.isEmpty(addressDataList) && Objects.nonNull(addressDataList.get(0))){
+            address = addressDataList.get(0).getDictLabel();
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         boolean isHasKeyAlarm = redisService.hasKey(Constants.ALARM_SET);

+ 3 - 1
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDictDataController.java

@@ -149,7 +149,9 @@ public class SysDictDataController extends BaseController {
     {
         dict.setUpdateBy(getUsername());
         if(StringUtils.equals(dict.getDictType(),"shot_switch")){
-            DictUtils.removeDictCache("shot_switch");
+            List<SysDictData> dataList = new ArrayList<>();
+            dataList.add(dict);
+            DictUtils.setDictCache("shot_switch",dataList);
         }
         return toAjax(dictDataService.updateDictData(dict));
     }