From b890afe0d93b9856bcfe6829ec51a69e232ce0d7 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期六, 31 八月 2024 18:01:27 +0800 Subject: [PATCH] 图像安全资源管理整合,车辆抓拍数据完整和准确计算公式修改 --- ycl-server/src/main/java/com/ycl/task/VideoTask.java | 61 ++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 1 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java index 3aa39a4..b8f8a53 100644 --- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java +++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java @@ -3,22 +3,34 @@ import com.ycl.calculate.CalculationStrategy; import com.ycl.factory.IndexCalculationFactory; +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.domain.result.UY.*; import com.ycl.platform.domain.vo.PlatformOnlineVO; import com.ycl.platform.domain.vo.TMonitorVO; +import com.ycl.platform.mapper.CheckIndexVideoMapper; +import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper; import com.ycl.platform.mapper.PlatformOnlineMapper; import com.ycl.platform.mapper.TMonitorMapper; +import com.ycl.platform.service.IImageResourceSecurityService; import com.ycl.utils.DateUtils; +import com.ycl.utils.DictUtils; import constant.CalculationStrategyConstants; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; /** * 瑙嗛璁$畻鑰冩牳鎸囨爣浠诲姟 @@ -26,6 +38,7 @@ */ @Slf4j @Component("videoTask") +@RequiredArgsConstructor public class VideoTask { @Autowired private MongoTemplate mongoTemplate; @@ -33,6 +46,11 @@ private PlatformOnlineMapper platformOnlineMapper; @Autowired private TMonitorMapper monitorMapper; + + private final IImageResourceSecurityService imageResourceSecurityService; + private final CheckIndexVideoMapper checkIndexVideoMapper; + private final ImageResourceSecurityDetailMapper imageResourceSecurityDetailMapper; + private static final BigDecimal NUM = new BigDecimal("0.15"); public void siteOnlineTask() { Date yesterday = DateUtils.addDays(new Date(), -1); @@ -67,7 +85,6 @@ public void oneMonitorQualifyTask(){ //璁$畻涓�鏈轰竴妗e悎鏍肩巼 Date yesterday = DateUtils.addDays(new Date(), -1); - Query query = new Query(); query.addCriteria(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))); @@ -92,4 +109,46 @@ calculator.calculate(results); } + /** + * 瑙嗛鍥惧儚璧勬簮瀹夊叏锛岄渶瑕佹帓鍦ㄥ钩鍙板湪绾跨巼鍚庨潰銆� + */ + @Transactional + public void videoSecurity() { + ArrayList<ImageResourceSecurity> imageResourceSecurities = new ArrayList<>(); + List<CheckIndexVideo> list = checkIndexVideoMapper.selectAndDeptName(); + List<ImageResourceSecurityDetail> detail = imageResourceSecurityDetailMapper.getList(); + + // 姣忎釜閮ㄩ棬寰幆涓�娆¤绠楁暟鎹� + for (CheckIndexVideo checkIndexVideo : list) { + ImageResourceSecurity imageResourceSecurity = new ImageResourceSecurity(); + imageResourceSecurity.setDeptId(checkIndexVideo.getDeptId()); + // 鐩存帴鍙栨寚鏍� + imageResourceSecurity.setPlatformOnline(checkIndexVideo.getPlatformOnline()); + imageResourceSecurity.setPropertyAccuracy(checkIndexVideo.getMonitorQualification()); + // 鑾峰彇褰撳墠閮ㄩ棬鐨刣etail杩涜璁$畻 + List<ImageResourceSecurityDetail> detailList = detail.stream().filter(imageResourceSecurityDetail -> Objects.equals(imageResourceSecurityDetail.getDeptId(), checkIndexVideo.getDeptId())).toList(); + int score = 100; + int count = 0; + // 寰幆detail璁$畻 + for (ImageResourceSecurityDetail imageResourceSecurityDetail : detailList) { + // 鎵i櫎鍒嗘暟 + score -= imageResourceSecurityDetail.getAlarmCategory().getScore(); + // 缁熻鏁伴噺 + 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); + + } } -- Gitblit v1.8.0