Quellcode durchsuchen

截图代码修改

wyyay vor 1 Jahr
Ursprung
Commit
8b96ee3bd5

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

@@ -35,6 +35,8 @@ public class ShotPictureExecutors {
     private String storeAddress;
     @Resource
     private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+    @Autowired
+    private ISysDictTypeService iSysDictTypeService;
 
     /**
      * 处理非预警摄像头截图
@@ -44,8 +46,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);
@@ -58,7 +66,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);

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

@@ -47,22 +47,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){
@@ -70,6 +61,9 @@ public class TaskService {
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Set<BaseCameraVO> normalSet = redisService.getSetMembers(Constants.NORMAL_SET);
+        if (log.isDebugEnabled()) {
+            log.debug("正常摄像机数量:"+normalSet.size());
+        }
         if (!CollectionUtils.isEmpty(normalSet)) {
             String finalAddress = address;
             normalSet.forEach(item -> {
@@ -100,22 +94,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);
@@ -123,6 +108,9 @@ public class TaskService {
             msgAlarmService.initializationCameraCache();
         }
         Set<BaseCameraVO> alarmSet = redisService.getSetMembers(Constants.ALARM_SET);
+        if (log.isDebugEnabled()) {
+            log.debug("报警摄像机数量:"+alarmSet.size());
+        }
         if(!CollectionUtils.isEmpty(alarmSet)){
             String finalAddress = address;
             alarmSet.forEach(item -> {

+ 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));
     }