ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurity.java
@@ -1,6 +1,7 @@ package com.ycl.platform.domain.entity; import annotation.Excel; import com.baomidou.mybatisplus.annotation.TableField; import com.ycl.system.entity.BaseEntity; import lombok.Data; @@ -46,4 +47,7 @@ @Excel(name = "视频传输网边界完整性检测扣分项") private BigDecimal boundaryIntegrity; @TableField(exist = false) private BigDecimal imageResourceSecurity; } ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -1017,7 +1017,11 @@ Page<ImageResourceSecurityDetail> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()); securityDetailMapper.selectImageResourceSecurityDetailList(imageResourceSecurityDetail); return Result.ok().data(page.getResult()).total(page.getTotal()); // 统计数 HashMap<String, Object> map = new HashMap<>(); map.put("count", CollectionUtils.EMPTY_COLLECTION); map.put("list", page); return Result.ok().data(map).total(page.getTotal()); } } ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
@@ -2,9 +2,12 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.read.listener.PageReadListener; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.ycl.handler.ImageResourceHandler; import com.ycl.platform.domain.entity.CheckIndexVideo; import com.ycl.platform.domain.entity.ImageResourceSecurity; import com.ycl.platform.domain.entity.ImageResourceSecurityDetail; import com.ycl.platform.mapper.CheckIndexVideoMapper; import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper; import com.ycl.platform.mapper.ImageResourceSecurityMapper; import com.ycl.platform.service.IImageResourceSecurityService; @@ -34,6 +37,7 @@ private final ImageResourceSecurityMapper imageResourceSecurityMapper; private final ImageResourceSecurityDetailMapper imageResourceSecurityDetailMapper; private final ISysDeptService deptService; private final CheckIndexVideoMapper checkIndexVideoMapper; @Override public ImageResourceSecurity selectImageResourceSecurityById(Long id) { @@ -42,7 +46,14 @@ @Override public List<ImageResourceSecurity> selectImageResourceSecurityList(ImageResourceSecurity imageResourceSecurity) { return imageResourceSecurityMapper.selectImageResourceSecurityList(imageResourceSecurity); List<ImageResourceSecurity> list = imageResourceSecurityMapper.selectImageResourceSecurityList(imageResourceSecurity); list.forEach(item -> item.setImageResourceSecurity(new LambdaQueryChainWrapper<>(checkIndexVideoMapper) .eq(CheckIndexVideo::getDeptId, item.getDeptId()) .orderByDesc(CheckIndexVideo::getCreateTime, CheckIndexVideo::getImageResourceSecurity) .last("limit 1") .one() .getImageResourceSecurity())); return list; } @Override ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java
@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.ArrayList; @@ -29,9 +30,12 @@ private final CheckIndexVideoMapper checkIndexVideoMapper; private final ImageResourceSecurityDetailMapper imageResourceSecurityDetailMapper; private static final BigDecimal NUM = new BigDecimal("0.15"); /** * 每天晚上1点执行 */ @Transactional @Scheduled(cron = "0 0 1 * * ?") public void calc() { ArrayList<ImageResourceSecurity> imageResourceSecurities = new ArrayList<>(); @@ -53,17 +57,20 @@ for (ImageResourceSecurityDetail imageResourceSecurityDetail : detailList) { // 扣除分数 score -= imageResourceSecurityDetail.getAlarmCategory().getScore(); imageResourceSecurity.setWeakPassword(BigDecimal.valueOf(score)); // 统计数量 if (Integer.parseInt(imageResourceSecurityDetail.getAlarmLevel().getValue()) > 1) { count++; } } imageResourceSecurity.setWeakPassword(BigDecimal.valueOf(score)); // 获取字典值-总数 int onlineAssetsTotal = Integer.parseInt(DictUtils.getDictValue("online_assets_total", checkIndexVideo.getDeptName())); imageResourceSecurity.setRiskProperty(BigDecimal.valueOf(count / onlineAssetsTotal)); imageResourceSecurity.setCreateTime(DateUtils.getNowDate()); imageResourceSecurities.add(imageResourceSecurity); // 更新指标数据 checkIndexVideo.setImageResourceSecurity(imageResourceSecurity.getPlatformOnline().add(imageResourceSecurity.getPropertyAccuracy().add(imageResourceSecurity.getWeakPassword().add(imageResourceSecurity.getRiskProperty()))).multiply(NUM)); checkIndexVideoMapper.updateById(checkIndexVideo); } imageResourceSecurityService.saveBatch(imageResourceSecurities); ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -185,6 +185,7 @@ <select id="selectAndDeptName" resultType="com.ycl.platform.domain.entity.CheckIndexVideo"> WITH temp AS ( SELECT r.id, r.dept_id, r.platform_online, r.monitor_qualification, @@ -196,6 +197,7 @@ sys_dept d ON r.dept_id = d.dept_id ) SELECT id, dept_id, area as deptName, platform_online,