From 3f10aa699267f13d8575b92a9634f2c037c1f183 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 26 八月 2024 19:42:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ycl-server/src/main/java/com/ycl/handler/ImageResourceHandler.java | 40 +++
ycl-server/src/main/java/com/ycl/platform/controller/ImageResourceSecurityController.java | 23 ++
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurityDetail.java | 61 +++-
ycl-common/src/main/java/enumeration/general/AlarmCategoryEnum.java | 32 ++
ycl-common/src/main/java/enumeration/general/AlarmLevelEnum.java | 30 ++
ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityDetailMapper.java | 15 +
ycl-common/src/main/java/enumeration/converter/RuleDeductCategoryConverter.java | 8
ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityDetailMapper.xml | 35 ++
ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityMapper.java | 7
ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java | 105 ++++----
ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityMapper.xml | 63 +++--
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurity.java | 2
ycl-common/src/main/java/enumeration/converter/AlarmCategoryConverter.java | 53 ++++
ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java | 65 +++++
ycl-server/src/main/java/com/ycl/platform/service/IImageResourceSecurityService.java | 22 ++
ycl-common/src/main/java/enumeration/converter/AlarmLevelConverter.java | 50 ++++
16 files changed, 501 insertions(+), 110 deletions(-)
diff --git a/ycl-common/src/main/java/enumeration/converter/AlarmCategoryConverter.java b/ycl-common/src/main/java/enumeration/converter/AlarmCategoryConverter.java
new file mode 100644
index 0000000..ff132f9
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/converter/AlarmCategoryConverter.java
@@ -0,0 +1,53 @@
+package enumeration.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import enumeration.general.AlarmCategoryEnum;
+
+/**
+ * @author gonghl
+ * @since 2024/8/26 涓嬪崍 4:00
+ */
+public class AlarmCategoryConverter implements Converter<AlarmCategoryEnum> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Converter.super.supportJavaTypeKey();
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return Converter.super.supportExcelTypeKey();
+ }
+
+ @Override
+ public AlarmCategoryEnum convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+ String value = cellData.getStringValue();
+ if (AlarmCategoryEnum.SSH.getDesc().equals(value)) {
+ return AlarmCategoryEnum.SSH;
+ }
+ if (AlarmCategoryEnum.TELNET.getDesc().equals(value)) {
+ return AlarmCategoryEnum.TELNET;
+ }
+ if (AlarmCategoryEnum.RDP.getDesc().equals(value)) {
+ return AlarmCategoryEnum.RDP;
+ }
+ if (AlarmCategoryEnum.FTP.getDesc().equals(value)) {
+ return AlarmCategoryEnum.FTP;
+ }
+ if (AlarmCategoryEnum.DATABASE.getDesc().equals(value)) {
+ return AlarmCategoryEnum.DATABASE;
+ }
+ return null;
+ }
+
+ @Override
+ public WriteCellData<AlarmCategoryEnum> convertToExcelData(AlarmCategoryEnum value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+ return new WriteCellData<>(value.getDesc());
+ }
+
+}
diff --git a/ycl-common/src/main/java/enumeration/converter/AlarmLevelConverter.java b/ycl-common/src/main/java/enumeration/converter/AlarmLevelConverter.java
new file mode 100644
index 0000000..2784688
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/converter/AlarmLevelConverter.java
@@ -0,0 +1,50 @@
+package enumeration.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import enumeration.general.AlarmLevelEnum;
+
+/**
+ * @author gonghl
+ * @since 2024/8/26 涓嬪崍 4:00
+ */
+public class AlarmLevelConverter implements Converter<AlarmLevelEnum> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Converter.super.supportJavaTypeKey();
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return Converter.super.supportExcelTypeKey();
+ }
+
+ @Override
+ public AlarmLevelEnum convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+ String value = cellData.getStringValue();
+ if (AlarmLevelEnum.LOW.getDesc().equals(value)) {
+ return AlarmLevelEnum.LOW;
+ }
+ if (AlarmLevelEnum.MIDDLE.getDesc().equals(value)) {
+ return AlarmLevelEnum.MIDDLE;
+ }
+ if (AlarmLevelEnum.HIGH.getDesc().equals(value)) {
+ return AlarmLevelEnum.HIGH;
+ }
+ if (AlarmLevelEnum.VERY_HIGH.getDesc().equals(value)) {
+ return AlarmLevelEnum.VERY_HIGH;
+ }
+ return null;
+ }
+
+ @Override
+ public WriteCellData<AlarmLevelEnum> convertToExcelData(AlarmLevelEnum value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+ return new WriteCellData<>(value.getDesc());
+ }
+
+}
diff --git a/ycl-common/src/main/java/enumeration/converter/RuleDeductCategoryConverter.java b/ycl-common/src/main/java/enumeration/converter/RuleDeductCategoryConverter.java
index a972243..98cdc28 100644
--- a/ycl-common/src/main/java/enumeration/converter/RuleDeductCategoryConverter.java
+++ b/ycl-common/src/main/java/enumeration/converter/RuleDeductCategoryConverter.java
@@ -7,14 +7,12 @@
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import enumeration.general.RuleDeductCategoryEnum;
-import lombok.extern.slf4j.Slf4j;
/**
* 鎵e垎绫诲瀷鏋氫妇瑁呮崲鍣�
*
* @author gonghl
*/
-@Slf4j
public class RuleDeductCategoryConverter implements Converter<RuleDeductCategoryEnum> {
@Override
@@ -28,7 +26,7 @@
}
@Override
- public RuleDeductCategoryEnum convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+ public RuleDeductCategoryEnum convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
if (cellData.getStringValue().equals(RuleDeductCategoryEnum.DEDUCT_POINTS.getDesc())) {
return RuleDeductCategoryEnum.DEDUCT_POINTS;
} else if (cellData.getStringValue().equals(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY.getDesc())) {
@@ -41,7 +39,7 @@
}
@Override
- public WriteCellData convertToExcelData(RuleDeductCategoryEnum value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
- return new WriteCellData(value.getDesc());
+ public WriteCellData<RuleDeductCategoryEnum> convertToExcelData(RuleDeductCategoryEnum value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+ return new WriteCellData<>(value.getDesc());
}
}
\ No newline at end of file
diff --git a/ycl-common/src/main/java/enumeration/general/AlarmCategoryEnum.java b/ycl-common/src/main/java/enumeration/general/AlarmCategoryEnum.java
new file mode 100644
index 0000000..ff85036
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/AlarmCategoryEnum.java
@@ -0,0 +1,32 @@
+package enumeration.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * @author gonghl
+ * @since 2024/8/26 涓嬪崍 3:47
+ */
+@Getter
+public enum AlarmCategoryEnum {
+
+ SSH("1", "SSH寮卞彛浠�", 2),
+ TELNET("2", "Telnet寮卞彛浠�", 2),
+ RDP("3", "RDP寮卞彛浠�", 2),
+ FTP("4", "FTP寮卞彛浠�", 6),
+ DATABASE("5", "鏁版嵁搴撳急鍙d护", 6);
+
+ @EnumValue
+ private final String value;
+ @JsonValue
+ private final String desc;
+ private final Integer score;
+
+ AlarmCategoryEnum(String value, String desc, Integer score) {
+ this.value = value;
+ this.desc = desc;
+ this.score = score;
+ }
+
+}
diff --git a/ycl-common/src/main/java/enumeration/general/AlarmLevelEnum.java b/ycl-common/src/main/java/enumeration/general/AlarmLevelEnum.java
new file mode 100644
index 0000000..da16f42
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/AlarmLevelEnum.java
@@ -0,0 +1,30 @@
+package enumeration.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * @author gonghl
+ * @since 2024/8/26 涓嬪崍 3:47
+ */
+@Getter
+public enum AlarmLevelEnum {
+
+ LOW("1", "浣庡嵄"),
+ MIDDLE("2", "涓嵄"),
+ HIGH("3", "楂樺嵄"),
+ VERY_HIGH("4", "瓒呭嵄");
+
+ @EnumValue
+ private final String value;
+ @JsonValue
+ private final String desc;
+
+ AlarmLevelEnum(String value, String desc) {
+ this.value = value;
+ this.desc = desc;
+ }
+
+
+}
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 4c905f8..0863c47 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
@@ -24,6 +24,8 @@
@Excel(name = "閮ㄩ棬id")
private Long deptId;
+ private String deptName;
+
/** 骞冲彴杩愯鐜� */
@Excel(name = "骞冲彴杩愯鐜�")
private BigDecimal platformOnline;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurityDetail.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurityDetail.java
index 3684114..e417a6f 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurityDetail.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ImageResourceSecurityDetail.java
@@ -1,10 +1,17 @@
package com.ycl.platform.domain.entity;
-import annotation.Excel;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ycl.system.entity.BaseEntity;
+import enumeration.converter.AlarmCategoryConverter;
+import enumeration.converter.AlarmLevelConverter;
+import enumeration.general.AlarmCategoryEnum;
+import enumeration.general.AlarmLevelEnum;
import lombok.Data;
+import java.time.LocalDateTime;
import java.util.Date;
/**
@@ -14,37 +21,51 @@
* @date 2024-08-24
*/
@Data
-public class ImageResourceSecurityDetail extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
+@ColumnWidth(20)
+public class ImageResourceSecurityDetail {
- /** $column.columnComment */
+ @ExcelIgnore
private Long id;
- /** $column.columnComment */
- @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+ @ExcelProperty("IP鍦板潃")
private String ip;
- /** 閮ㄩ棬id */
- @Excel(name = "閮ㄩ棬id")
+ /**
+ * 閮ㄩ棬id
+ */
+ @ExcelIgnore
private Long deptId;
- /** 鎶ヨ绫诲瀷 */
- @Excel(name = "鎶ヨ绫诲瀷")
- private String alarmCategory;
+ @ExcelProperty("閮ㄩ棬鍚嶇О")
+ @TableField(exist = false)
+ private String deptName;
- /** 鎶ヨ绾у埆 */
- @Excel(name = "鎶ヨ绾у埆")
- private Long alarmLevel;
+ /**
+ * 鎶ヨ绫诲瀷
+ */
+ @ExcelProperty(value = "鎶ヨ绫诲瀷", converter = AlarmCategoryConverter.class)
+ private AlarmCategoryEnum alarmCategory;
- /** 鎶ヨ娆℃暟 */
- @Excel(name = "鎶ヨ娆℃暟")
+ /**
+ * 鎶ヨ绾у埆
+ */
+ @ExcelProperty(value = "鎶ヨ绾у埆", converter = AlarmLevelConverter.class)
+ private AlarmLevelEnum alarmLevel;
+
+ /**
+ * 鎶ヨ娆℃暟
+ */
+ @ExcelProperty("鎶ヨ娆℃暟")
private Long num;
- /** 鎶ヨ鏃堕棿 */
+ /**
+ * 鎶ヨ鏃堕棿
+ */
@JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "鎶ヨ鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+ @ExcelProperty("鎶ヨ鏃堕棿")
private Date alarmTime;
+ @ExcelIgnore
+ private LocalDateTime createTime;
}
diff --git a/ycl-server/src/main/java/com/ycl/handler/ImageResourceHandler.java b/ycl-server/src/main/java/com/ycl/handler/ImageResourceHandler.java
new file mode 100644
index 0000000..348f114
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/handler/ImageResourceHandler.java
@@ -0,0 +1,40 @@
+package com.ycl.handler;
+
+import com.alibaba.excel.write.handler.SheetWriteHandler;
+import com.alibaba.excel.write.handler.context.SheetWriteHandlerContext;
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.util.CellRangeAddressList;
+
+/**
+ * @author gonghl
+ * @since 2024/8/26 涓嬪崍 1:38
+ */
+public class ImageResourceHandler implements SheetWriteHandler {
+
+ @Override
+ public void afterSheetCreate(SheetWriteHandlerContext context) {
+ Sheet sheet = context.getWriteSheetHolder().getSheet();
+ // 鍖哄煙/鍗曚綅鍚嶇О
+ CellRangeAddressList cellRangeAddressList3 = new CellRangeAddressList(1, 9999, 1, 1);
+ DataValidationHelper helper3 = context.getWriteSheetHolder().getSheet().getDataValidationHelper();
+ DataValidationConstraint constraint3 = helper3.createExplicitListConstraint(new String[]{"瀵岄『鍘垮叕瀹夊眬", "澶у畨鍖哄叕瀹夊眬", "鑷祦浜曞尯鍏畨灞�", "璐′簳鍖哄叕瀹夊眬", "鑽e幙鍏畨灞�", "鑷础甯傚叕瀹夊眬", "楂樻柊鍖哄叕瀹夊眬", "娌挎哗鍖哄叕瀹夊眬"});
+ DataValidation dataValidation3 = helper3.createValidation(constraint3, cellRangeAddressList3);
+ // 鎶ヨ绫诲瀷
+ CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 9999, 2, 2);
+ DataValidationHelper helper = context.getWriteSheetHolder().getSheet().getDataValidationHelper();
+ DataValidationConstraint constraint = helper.createExplicitListConstraint(new String[]{"SSH寮卞彛浠�", "Telnet寮卞彛浠�", "RDP寮卞彛浠�", "FTP寮卞彛浠�", "鏁版嵁搴撳急鍙d护"});
+ DataValidation dataValidation = helper.createValidation(constraint, cellRangeAddressList);
+ // 鎶ヨ绾у埆
+ CellRangeAddressList cellRangeAddressList2 = new CellRangeAddressList(1, 9999, 3, 3);
+ DataValidationHelper helper2 = context.getWriteSheetHolder().getSheet().getDataValidationHelper();
+ DataValidationConstraint constraint2 = helper2.createExplicitListConstraint(new String[]{"浣庡嵄", "涓嵄", "楂樺嵄", "瓒呭嵄"});
+ DataValidation dataValidation2 = helper2.createValidation(constraint2, cellRangeAddressList2);
+ sheet.addValidationData(dataValidation);
+ sheet.addValidationData(dataValidation2);
+ sheet.addValidationData(dataValidation3);
+ }
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/ImageResourceSecurityController.java b/ycl-server/src/main/java/com/ycl/platform/controller/ImageResourceSecurityController.java
index 8edd3dd..91d5731 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/ImageResourceSecurityController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/ImageResourceSecurityController.java
@@ -6,12 +6,12 @@
import com.ycl.system.AjaxResult;
import com.ycl.system.controller.BaseController;
import com.ycl.system.page.TableDataInfo;
-import com.ycl.utils.poi.ExcelUtil;
import enumeration.BusinessType;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -60,4 +60,25 @@
{
return toAjax(imageResourceSecurityService.updateImageResourceSecurity(imageResourceSecurity));
}
+
+ /**
+ * 瀵煎叆妯℃澘
+ */
+ @PreAuthorize("@ss.hasPermi('platform:security:list')")
+ @Log(title = "瀵煎叆妯℃澘", businessType = BusinessType.IMPORT)
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response) {
+ imageResourceSecurityService.importTemplate(response);
+ }
+
+ /**
+ * 瀵煎叆鏁版嵁
+ */
+ @PreAuthorize("@ss.hasPermi('platform:security:list')")
+ @Log(title = "瀵煎叆", businessType = BusinessType.IMPORT)
+ @PostMapping("/importData")
+ public AjaxResult importData(MultipartFile file) {
+ return toAjax(imageResourceSecurityService.importData(file));
+ }
+
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityDetailMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityDetailMapper.java
index 45e1889..e35795b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityDetailMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityDetailMapper.java
@@ -1,7 +1,9 @@
package com.ycl.platform.mapper;
import com.ycl.platform.domain.entity.ImageResourceSecurityDetail;
+import org.apache.ibatis.annotations.Select;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -59,4 +61,17 @@
* @return 缁撴灉
*/
public int deleteImageResourceSecurityDetailByIds(Long[] ids);
+
+ /**
+ * 鎵归噺鎻掑叆
+ * @param list 鏁版嵁
+ */
+ void saveBatch(ArrayList<ImageResourceSecurityDetail> list);
+
+ /**
+ * 瀹氭椂浠诲姟鑾峰彇璇︽儏璁$畻
+ * @return 鏁版嵁
+ */
+ @Select("select dept_id, alarm_category, alarm_level, num from t_image_resource_security_detail")
+ List<ImageResourceSecurityDetail> getList();
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityMapper.java
index 4958662..3b433f9 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ImageResourceSecurityMapper.java
@@ -2,6 +2,7 @@
import com.ycl.platform.domain.entity.ImageResourceSecurity;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -59,4 +60,10 @@
* @return 缁撴灉
*/
public int deleteImageResourceSecurityByIds(Long[] ids);
+
+ /**
+ * 鎵归噺淇濆瓨
+ * @param imageResourceSecurities 鏁版嵁闆嗗悎
+ */
+ void saveBatch(ArrayList<ImageResourceSecurity> imageResourceSecurities);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/IImageResourceSecurityService.java b/ycl-server/src/main/java/com/ycl/platform/service/IImageResourceSecurityService.java
index 090586b..4303294 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/IImageResourceSecurityService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/IImageResourceSecurityService.java
@@ -1,7 +1,10 @@
package com.ycl.platform.service;
import com.ycl.platform.domain.entity.ImageResourceSecurity;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -59,4 +62,23 @@
* @return 缁撴灉
*/
public int deleteImageResourceSecurityById(Long id);
+
+ /**
+ * 瀵煎叆妯℃澘
+ * @param response 鏂囦欢
+ */
+ void importTemplate(HttpServletResponse response);
+
+ /**
+ * 瀵煎叆鏁版嵁
+ * @param file 鏁版嵁
+ * @return 缁撴灉
+ */
+ Boolean importData(MultipartFile file);
+
+ /**
+ * 鎵归噺淇濆瓨
+ * @param imageResourceSecurities 鏁版嵁闆嗗悎
+ */
+ void saveBatch(ArrayList<ImageResourceSecurity> imageResourceSecurities);
}
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 d2fc697..68853c4 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
@@ -1,12 +1,24 @@
package com.ycl.platform.service.impl;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.read.listener.PageReadListener;
+import com.ycl.handler.ImageResourceHandler;
import com.ycl.platform.domain.entity.ImageResourceSecurity;
+import com.ycl.platform.domain.entity.ImageResourceSecurityDetail;
+import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper;
import com.ycl.platform.mapper.ImageResourceSecurityMapper;
import com.ycl.platform.service.IImageResourceSecurityService;
+import com.ycl.system.entity.SysDept;
+import com.ycl.system.service.ISysDeptService;
import com.ycl.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
/**
@@ -16,81 +28,68 @@
* @date 2024-08-24
*/
@Service
-public class ImageResourceSecurityServiceImpl implements IImageResourceSecurityService
-{
- @Autowired
- private ImageResourceSecurityMapper imageResourceSecurityMapper;
+@RequiredArgsConstructor
+public class ImageResourceSecurityServiceImpl implements IImageResourceSecurityService {
- /**
- * 鏌ヨplatform
- *
- * @param id platform涓婚敭
- * @return platform
- */
+ private final ImageResourceSecurityMapper imageResourceSecurityMapper;
+ private final ImageResourceSecurityDetailMapper imageResourceSecurityDetailMapper;
+ private final ISysDeptService deptService;
+
@Override
- public ImageResourceSecurity selectImageResourceSecurityById(Long id)
- {
+ public ImageResourceSecurity selectImageResourceSecurityById(Long id) {
return imageResourceSecurityMapper.selectImageResourceSecurityById(id);
}
- /**
- * 鏌ヨplatform鍒楄〃
- *
- * @param imageResourceSecurity platform
- * @return platform
- */
@Override
- public List<ImageResourceSecurity> selectImageResourceSecurityList(ImageResourceSecurity imageResourceSecurity)
- {
+ public List<ImageResourceSecurity> selectImageResourceSecurityList(ImageResourceSecurity imageResourceSecurity) {
return imageResourceSecurityMapper.selectImageResourceSecurityList(imageResourceSecurity);
}
- /**
- * 鏂板platform
- *
- * @param imageResourceSecurity platform
- * @return 缁撴灉
- */
@Override
- public int insertImageResourceSecurity(ImageResourceSecurity imageResourceSecurity)
- {
+ public int insertImageResourceSecurity(ImageResourceSecurity imageResourceSecurity) {
imageResourceSecurity.setCreateTime(DateUtils.getNowDate());
return imageResourceSecurityMapper.insertImageResourceSecurity(imageResourceSecurity);
}
- /**
- * 淇敼platform
- *
- * @param imageResourceSecurity platform
- * @return 缁撴灉
- */
@Override
- public int updateImageResourceSecurity(ImageResourceSecurity imageResourceSecurity)
- {
+ public int updateImageResourceSecurity(ImageResourceSecurity imageResourceSecurity) {
return imageResourceSecurityMapper.updateImageResourceSecurity(imageResourceSecurity);
}
- /**
- * 鎵归噺鍒犻櫎platform
- *
- * @param ids 闇�瑕佸垹闄ょ殑platform涓婚敭
- * @return 缁撴灉
- */
@Override
- public int deleteImageResourceSecurityByIds(Long[] ids)
- {
+ public int deleteImageResourceSecurityByIds(Long[] ids) {
return imageResourceSecurityMapper.deleteImageResourceSecurityByIds(ids);
}
- /**
- * 鍒犻櫎platform淇℃伅
- *
- * @param id platform涓婚敭
- * @return 缁撴灉
- */
@Override
- public int deleteImageResourceSecurityById(Long id)
- {
+ public int deleteImageResourceSecurityById(Long id) {
return imageResourceSecurityMapper.deleteImageResourceSecurityById(id);
}
+
+ @Override
+ @SneakyThrows
+ public void importTemplate(HttpServletResponse response) {
+ EasyExcel.write(response.getOutputStream(), ImageResourceSecurityDetail.class).sheet("妯℃澘").registerWriteHandler(new ImageResourceHandler()).doWrite(Collections.emptyList());
+ }
+
+ @Override
+ @SneakyThrows
+ public Boolean importData(MultipartFile file) {
+ ArrayList<ImageResourceSecurityDetail> list = new ArrayList<>();
+ List<SysDept> sysDept = deptService.selectDeptList(new SysDept());
+ EasyExcel.read(file.getInputStream(), ImageResourceSecurityDetail.class, new PageReadListener<ImageResourceSecurityDetail>(dataList -> {
+ for (ImageResourceSecurityDetail detail : dataList) {
+ SysDept sysDept1 = sysDept.stream().filter(dept -> dept.getDeptName().equals(detail.getDeptName())).findFirst().orElseThrow(() -> new RuntimeException(detail.getDeptName() + "涓嶅瓨鍦�"));
+ detail.setDeptId(sysDept1.getDeptId());
+ list.add(detail);
+ }
+ })).sheet().doRead();
+ imageResourceSecurityDetailMapper.saveBatch(list);
+ return true;
+ }
+
+ @Override
+ public void saveBatch(ArrayList<ImageResourceSecurity> imageResourceSecurities) {
+ imageResourceSecurityMapper.saveBatch(imageResourceSecurities);
+ }
}
diff --git a/ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java b/ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java
new file mode 100644
index 0000000..514a042
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/task/ImageResourceSecurityTask.java
@@ -0,0 +1,65 @@
+package com.ycl.task;
+
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.ycl.platform.base.CheckIndex;
+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.service.IImageResourceSecurityService;
+import jakarta.annotation.PostConstruct;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author gonghl
+ * @since 2024/8/26 涓嬪崍 4:43
+ */
+@Component("ImageResourceSecurityTask")
+@RequiredArgsConstructor
+public class ImageResourceSecurityTask {
+
+ private final IImageResourceSecurityService imageResourceSecurityService;
+ private final CheckIndexVideoMapper checkIndexVideoMapper;
+ private final ImageResourceSecurityDetailMapper imageResourceSecurityDetailMapper;
+
+ @PostConstruct
+ public void calc() {
+ ArrayList<ImageResourceSecurity> imageResourceSecurities = new ArrayList<>();
+ List<CheckIndexVideo> list = new LambdaQueryChainWrapper<>(checkIndexVideoMapper)
+ .select(CheckIndexVideo::getPlatformOnline, CheckIndexVideo::getMonitorQualification, CheckIndexVideo::getDeptId)
+ // .eq(CheckIndex::getCreateTime, LocalDate.now().minusDays(1))
+ .orderByDesc(CheckIndex::getCreateTime)
+ .last("limit 7")
+ .list();
+ List<ImageResourceSecurityDetail> detail = imageResourceSecurityDetailMapper.getList();
+
+ // 姣忎釜閮ㄩ棬寰幆涓�娆�
+ list.forEach(checkIndexVideo -> {
+ 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();
+ // 寰幆detail璁$畻
+ detailList.forEach(imageResourceSecurityDetail -> {
+ int score = 100;
+ score -= imageResourceSecurityDetail.getAlarmCategory().getScore();
+ imageResourceSecurity.setWeakPassword(BigDecimal.valueOf(score));
+ });
+ // TODO 宸竴涓�
+ imageResourceSecurities.add(imageResourceSecurity);
+ });
+ imageResourceSecurityService.saveBatch(imageResourceSecurities);
+
+ }
+
+}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityDetailMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityDetailMapper.xml
index 7cf6eed..56f3aef 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityDetailMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityDetailMapper.xml
@@ -16,7 +16,7 @@
</resultMap>
<sql id="selectImageResourceSecurityDetailVo">
- select id,
+ SELECT id,
ip,
dept_id,
alarm_category,
@@ -24,14 +24,24 @@
num,
alarm_time,
create_time
- from t_image_resource_security_detail
+ FROM t_image_resource_security_detail
</sql>
- <select id="selectImageResourceSecurityDetailList" resultMap="ImageResourceSecurityDetailResult">
- <include refid="selectImageResourceSecurityDetailVo"/>
+ <select id="selectImageResourceSecurityDetailList" resultType="com.ycl.platform.domain.entity.ImageResourceSecurityDetail">
+ select id,
+ ip,
+ a.dept_id,
+ dept_name,
+ alarm_category,
+ alarm_level,
+ num,
+ alarm_time,
+ a.create_time
+ from t_image_resource_security_detail a
+ LEFT JOIN sys_dept b ON a.dept_id = b.dept_id AND b.del_flag = 0
<where>
<if test="ip != null and ip != ''">and ip = #{ip}</if>
- <if test="deptId != null ">and dept_id = #{deptId}</if>
+ <if test="deptId != null ">and a.dept_id = #{deptId}</if>
<if test="alarmCategory != null and alarmCategory != ''">and alarm_category = #{alarmCategory}</if>
<if test="alarmLevel != null ">and alarm_level = #{alarmLevel}</if>
<if test="num != null ">and num = #{num}</if>
@@ -40,7 +50,7 @@
</select>
<select id="selectImageResourceSecurityDetailById">
- resultMap="ImageResourceSecurityDetailResult">
+ resultMap="ImageResourceSecurityDetailResult">
<include refid="selectImageResourceSecurityDetailVo"/>
where id = #{id}
</select>
@@ -67,6 +77,13 @@
</trim>
</insert>
+ <insert id="saveBatch">
+ INSERT INTO t_image_resource_security_detail (ip, dept_id, alarm_category, alarm_level, num, alarm_time, create_time) VALUES
+ <foreach collection="list" item="item" index="index" separator=",">
+ (#{item.ip}, #{item.deptId}, #{item.alarmCategory}, #{item.alarmLevel}, #{item.num}, #{item.alarmTime}, NOW())
+ </foreach>
+ </insert>
+
<update id="updateImageResourceSecurityDetail">
update t_image_resource_security_detail
<trim prefix="SET" suffixOverrides=",">
@@ -82,9 +99,9 @@
</update>
<delete id="deleteImageResourceSecurityDetailById">
- delete
- from t_image_resource_security_detail
- where id = #{id}
+ DELETE
+ FROM t_image_resource_security_detail
+ WHERE id = #{id}
</delete>
<delete id="deleteImageResourceSecurityDetailByIds">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityMapper.xml
index 74b5a0e..64ce52b 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/ImageResourceSecurityMapper.xml
@@ -1,34 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycl.platform.mapper.ImageResourceSecurityMapper">
<resultMap type="com.ycl.platform.domain.entity.ImageResourceSecurity" id="ImageResourceSecurityResult">
- <result property="id" column="id" />
- <result property="deptId" column="dept_id" />
- <result property="platformOnline" column="platform_online" />
- <result property="propertyAccuracy" column="property_accuracy" />
- <result property="weakPassword" column="weak_password" />
- <result property="riskProperty" column="risk_property" />
- <result property="boundaryIntegrity" column="boundary_integrity" />
- <result property="createTime" column="create_time" />
+ <result property="id" column="id"/>
+ <result property="deptId" column="dept_id"/>
+ <result property="platformOnline" column="platform_online"/>
+ <result property="propertyAccuracy" column="property_accuracy"/>
+ <result property="weakPassword" column="weak_password"/>
+ <result property="riskProperty" column="risk_property"/>
+ <result property="boundaryIntegrity" column="boundary_integrity"/>
+ <result property="createTime" column="create_time"/>
</resultMap>
<sql id="selectImageResourceSecurityVo">
- select id, dept_id, platform_online, property_accuracy, weak_password, risk_property, boundary_integrity, create_time from t_image_resource_security
+ SELECT id,
+ dept_id,
+ platform_online,
+ property_accuracy,
+ weak_password,
+ risk_property,
+ boundary_integrity,
+ create_time
+ FROM t_image_resource_security
</sql>
- <select id="selectImageResourceSecurityList" resultMap="ImageResourceSecurityResult">
- <include refid="selectImageResourceSecurityVo"/>
+ <select id="selectImageResourceSecurityList" resultType="com.ycl.platform.domain.entity.ImageResourceSecurity">
+ select id, a.dept_id, dept_name, platform_online, property_accuracy, weak_password, risk_property, boundary_integrity from t_image_resource_security a
+ LEFT JOIN sys_dept b ON a.dept_id = b.dept_id AND b.del_flag = 0
<where>
- <if test="deptId != null "> and dept_id = #{deptId}</if>
- <if test="platformOnline != null "> and platform_online = #{platformOnline}</if>
- <if test="propertyAccuracy != null "> and property_accuracy = #{propertyAccuracy}</if>
- <if test="weakPassword != null "> and weak_password = #{weakPassword}</if>
- <if test="riskProperty != null "> and risk_property = #{riskProperty}</if>
- <if test="boundaryIntegrity != null "> and boundary_integrity = #{boundaryIntegrity}</if>
+ <if test="platformOnline != null ">and platform_online = #{platformOnline}</if>
+ <if test="propertyAccuracy != null ">and property_accuracy = #{propertyAccuracy}</if>
+ <if test="weakPassword != null ">and weak_password = #{weakPassword}</if>
+ <if test="riskProperty != null ">and risk_property = #{riskProperty}</if>
+ <if test="boundaryIntegrity != null ">and boundary_integrity = #{boundaryIntegrity}</if>
</where>
+ ORDER BY a.create_time DESC
+ limit 7
</select>
<select id="selectImageResourceSecurityById" resultMap="ImageResourceSecurityResult">
@@ -46,7 +56,7 @@
<if test="riskProperty != null">risk_property,</if>
<if test="boundaryIntegrity != null">boundary_integrity,</if>
<if test="createTime != null">create_time,</if>
- </trim>
+ </trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deptId != null">#{deptId},</if>
<if test="platformOnline != null">#{platformOnline},</if>
@@ -55,7 +65,14 @@
<if test="riskProperty != null">#{riskProperty},</if>
<if test="boundaryIntegrity != null">#{boundaryIntegrity},</if>
<if test="createTime != null">#{createTime},</if>
- </trim>
+ </trim>
+ </insert>
+
+ <insert id="saveBatch">
+ insert into t_image_resource_security (dept_id, platform_online, property_accuracy, weak_password, risk_property, boundary_integrity, create_time) VALUES
+ <foreach collection="list" item="item" separator=",">
+ (#{item.deptId}, #{item.platformOnline}, #{item.propertyAccuracy}, #{item.weakPassword}, #{item.riskProperty}, #{item.boundaryIntegrity}, NOW())
+ </foreach>
</insert>
<update id="updateImageResourceSecurity">
@@ -73,7 +90,9 @@
</update>
<delete id="deleteImageResourceSecurityById">
- delete from t_image_resource_security where id = #{id}
+ DELETE
+ FROM t_image_resource_security
+ WHERE id = #{id}
</delete>
<delete id="deleteImageResourceSecurityByIds">
--
Gitblit v1.8.0