Browse Source

'优化监控电视墙实时数据接口,增加告警状态字段,以及告警属性列表(告警时间,告警内容);优化定时任务每天23点调用巡检计划分批次方法,新增分配创建巡检计划之前先判断数据库中是否已经存在这条计划记录'

james 1 year ago
parent
commit
ab1b883aef

+ 13 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/BaseAlarmVO.java

@@ -0,0 +1,13 @@
+package com.usky.backend.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class BaseAlarmVO implements Serializable {
+
+    private String alarmTime;
+
+    private String alarmContent;
+}

+ 2 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataTVResponseVO.java

@@ -21,4 +21,6 @@ public class DataTVResponseVO implements Serializable {
     private Integer alarmStatus;
     //设备属性集合
     private List<DeviceAttributeVO> dp;
+    //告警信息集合
+    private List<BaseAlarmVO> alarmList;
 }

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/TaskController.java

@@ -73,7 +73,7 @@ public class TaskController {
         demReportDataService.regularReportData();
     }
 
-    @Scheduled(cron = "0 0 23 * * ? ")////每天23点
+    @Scheduled(cron = "0 0 23 * * ? ")//每天23点
     public void task5(){
         System.out.println(Thread.currentThread().getName() + "巡检计划分批次创建执行中");
         patrolInspectionPlanService.addPatrolInspectionPlanSon();

+ 16 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/PatrolInspectionPlanServiceImpl.java

@@ -507,11 +507,24 @@ public class PatrolInspectionPlanServiceImpl extends AbstractCrudService<PatrolI
                 throw new BusinessException("无主计划地点关联信息");
             }
 
+            //分配创建巡检计划之前先判断数据库中是否已经存在这条计划记录
+            LocalDate inspectionDate = OnlineMethod.getDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), "yyyy-MM-dd", true, 7);
+            LambdaQueryWrapper<PatrolInspectionPlanSon> queryWrapper3 = Wrappers.lambdaQuery();
+            queryWrapper3.select(PatrolInspectionPlanSon::getPlanId)
+                    .eq(PatrolInspectionPlanSon::getInspectionDate,inspectionDate);
+            List<PatrolInspectionPlanSon> planSonList = patrolInspectionPlanSonService.list(queryWrapper3);
+            List<Integer> planSonPlanIdList = new ArrayList<>();
+            if(CollectionUtils.isNotEmpty(planSonList)){
+                for (int i = 0; i < planSonList.size(); i++) {
+                    planSonPlanIdList.add(planSonList.get(i).getPlanId());
+                }
+            }
+
             for (int m = 0; m < list.size(); m++) {
                 //子表数据添加
                 if (list.get(m).getPlanType() == 1) {//普通计划 当前日期+7天在巡检计划时间范围内,就创建一条当前日期+7天日期对应的巡检记录
                     for (int j = 0; j < scheduleList.size(); j++) {
-                        if(list.get(m).getId().equals(scheduleList.get(j).getPlanId())){
+                        if((list.get(m).getId().equals(scheduleList.get(j).getPlanId())) && (!planSonPlanIdList.contains(list.get(m).getId()))){
                             LocalDate s = OnlineMethod.getDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), "yyyy-MM-dd", true, 7);
                             Date date = Date.from(s.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());
                             String week = OnlineMethod.getWeekOfDate(date);
@@ -531,9 +544,9 @@ public class PatrolInspectionPlanServiceImpl extends AbstractCrudService<PatrolI
                                 patrolInspectionPlanSon.setPlanDescribe(list.get(m).getPlanDescribe());
                                 patrolInspectionPlanSon.setCompletion(0);
                                 patrolInspectionPlanSon.setCreateTime(LocalDateTime.now());
-                                patrolInspectionPlanSon.setCreator(SecurityUtils.getUsername());
+                                patrolInspectionPlanSon.setCreator(list.get(m).getCreator());
                                 patrolInspectionPlanSon.setAlternateField("0");
-                                patrolInspectionPlanSon.setTenantId(SecurityUtils.getTenantId());
+                                patrolInspectionPlanSon.setTenantId(list.get(m).getTenantId());
                                 patrolInspectionPlanSon.setCompanyId(list.get(m).getCompanyId());
                                 patrolInspectionPlanSonService.save(patrolInspectionPlanSon);
                                 Integer zfid = patrolInspectionPlanSon.getId();

+ 3 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/DmpDeviceInfoMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.backend.domain.ProductTVAttributeVO;
 import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.iot.domain.BaseAlarm;
 import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.domain.DmpProductInfo;
 import com.usky.iot.service.vo.DmpDeviceInfoRequest;
@@ -31,4 +32,6 @@ public interface DmpDeviceInfoMapper extends CrudMapper<DmpDeviceInfo> {
     Integer baseAlarmCount(@Param("deviceIdList") List<String> deviceIdList);
 
     Integer deviceOfflineCount(@Param("deviceIdList") List<String> deviceIdList);
+
+    List<BaseAlarm> baseAlarmList(@Param("deviceIdList") List<String> deviceIdList);
 }

+ 20 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java

@@ -607,6 +607,8 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
                 queryWrapper1.in(DmpDeviceStatus::getDeviceId,deviceIdList);
                 List<DmpDeviceStatus> deviceStatusList = dmpDeviceStatusService.list(queryWrapper1);
 
+                List<BaseAlarm> baseAlarmList = baseMapper.baseAlarmList(deviceIdList);
+
                 List<DataRealTimeResponseVO> dataRealList = deviceDataClient.data(null,deviceIdList);
                 for(int i=0;i<page.getRecords().size();i++){
                     DataTVResponseVO dataTVResponseVO = new DataTVResponseVO();
@@ -622,6 +624,24 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
                         }
                     }
 
+                    if(CollectionUtils.isNotEmpty(baseAlarmList)){
+                        for (int j = 0; j < baseAlarmList.size(); j++) {
+                            if(page.getRecords().get(i).getDeviceId().equals(baseAlarmList.get(j).getDeviceId())){
+                                List<BaseAlarmVO> list1 = new ArrayList<>();
+                                if(baseAlarmList.get(j).getAlarmType().equals("815")){
+                                    dataTVResponseVO.setAlarmStatus(2);
+                                }else{
+                                    dataTVResponseVO.setAlarmStatus(1);
+                                }
+                                BaseAlarmVO baseAlarmVO = new BaseAlarmVO();
+                                baseAlarmVO.setAlarmContent(baseAlarmList.get(j).getAlarmContent());
+                                baseAlarmVO.setAlarmTime((baseAlarmList.get(j).getAlarmTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                                list1.add(baseAlarmVO);
+                                dataTVResponseVO.setAlarmList(list1);
+                            }
+                        }
+                    }
+
                     List<DeviceAttributeVO> list1 = new ArrayList<>();
                     if(dataRealList.size() > 0){
                         for (int j = 0; j < dataRealList.size(); j++) {

+ 11 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceInfoMapper.xml

@@ -104,5 +104,16 @@
             </if>
         </where>
     </select>
+    <select id="baseAlarmList" resultType="com.usky.iot.domain.BaseAlarm">
+        select *
+        from base_alarm
+        <where>
+            and device_id|alarm_time in (select device_id|max(alarm_time) from base_alarm where device_id in
+            <foreach item="item" collection="deviceIdList" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            and handle_status = 0 group by device_id)
+        </where>
+    </select>
 
 </mapper>

+ 1 - 1
service-website/service-website-biz/src/main/java/com/usky/website/service/impl/SiteCategoryServiceImpl.java

@@ -108,7 +108,7 @@ public class SiteCategoryServiceImpl extends AbstractCrudService<SiteCategoryMap
 
     private List<SiteCategory> getChildrenData(SiteCategory root, List<SiteCategory> all) {
         List<SiteCategory> children = all.stream().filter(subjectVO ->
-                subjectVO.getPid() == root.getId() && !root.getCategoryName().equals("产品服务") && !root.getCategoryName().equals("客户案例")
+                subjectVO.getPid().equals(root.getId()) && !root.getCategoryName().equals("产品服务") && !root.getCategoryName().equals("客户案例")
         ).map(subjectVO -> {
             subjectVO.setChildren(getChildrenData(subjectVO, all));
             return subjectVO;