From dffa4edacd228bb7aa385525e4a30db2384bc78f Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 30 八月 2024 17:40:32 +0800
Subject: [PATCH] feat:更新图像资源到index表并展示

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java |   13 ++++++++++++-
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurity.java             |    4 ++++
 ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java                         |    9 ++++++++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java            |    6 +++++-
 ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml                          |    2 ++
 5 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurity.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurity.java
index 0863c47..2c5a08a 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurity.java
+++ b/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;
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
index fc39754..0385f2c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
+++ b/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());
 
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
index 68853c4..e1bc171 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
+++ b/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
diff --git a/ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java b/ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java
index 01111d5..644bf8b 100644
--- a/ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java
+++ b/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) {
                 // 鎵i櫎鍒嗘暟
                 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);
 
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
index 1c42656..0dbd85f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
+++ b/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,

--
Gitblit v1.8.0