监控信息概览

This commit is contained in:
guanpeng 2025-02-28 19:36:21 +08:00
parent 7db70b3f0b
commit 3276b1d443
1 changed files with 333 additions and 0 deletions

View File

@ -0,0 +1,333 @@
package com.dkl.large.service.impl;
import java.util.Date;
import java.util.List;
import java.util.regex.Pattern;
import com.koal.kms.sdk.ed.KmsSdkException;
import com.dkl.common.core.domain.entity.SysDictData;
import com.dkl.common.core.domain.entity.SysUser;
import com.dkl.common.exception.ServiceException;
import com.dkl.common.utils.DateUtils;
import com.dkl.common.utils.SecurityUtils;
import com.dkl.common.utils.StringUtils;
import com.dkl.common.utils.bean.BeanValidators;
import com.dkl.large.domain.DklActivity;
import com.dkl.large.domain.DklMonitoringPoints;
import com.dkl.large.mapper.DklMonitoringPointsMapper;
import com.dkl.large.service.IDklMonitoringPointsService;
import com.dkl.large.utli.EnciphermentUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dkl.large.mapper.DklSecurityEquipmentMapper;
import com.dkl.large.domain.DklSecurityEquipment;
import com.dkl.large.service.IDklSecurityEquipmentService;
import static com.dkl.common.utils.SecurityUtils.getDeptId;
import static com.dkl.common.utils.SecurityUtils.getUsername;
import static org.springframework.util.SerializationUtils.serialize;
/**
* 安保力量()Service业务层处理
*
* @author Falling
* @date 2025-06-16
*/
@Service
public class DklSecurityEquipmentServiceImpl implements IDklSecurityEquipmentService
{
private static final Logger log = LoggerFactory.getLogger(DklSecurityEquipmentServiceImpl.class);
@Autowired
private DklSecurityEquipmentMapper dklSecurityEquipmentMapper;
@Autowired
private DklMonitoringPointsMapper dklMonitoringPointsMapper;
/**
* 查询安保力量()
*
* @param id 安保力量()主键
* @return 安保力量()
*/
@Override
public DklSecurityEquipment selectDklSecurityEquipmentById(Long id) throws KmsSdkException {
DklSecurityEquipment dklSecurityEquipmentInfo = dklSecurityEquipmentMapper.selectDklSecurityEquipmentById(id);
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getMaintenancePersonnel())){
String maintenancePersonnel = dklSecurityEquipmentInfo.getMaintenancePersonnel();
dklSecurityEquipmentInfo.setMaintenancePersonnel(EnciphermentUtil.kmsDencrypt(maintenancePersonnel));
}
return dklSecurityEquipmentInfo;
}
/**
* 查询安保力量()列表
*
* @param dklSecurityEquipment 安保力量()
* @return 安保力量()
*/
@Override
public List<DklSecurityEquipment> selectDklSecurityEquipmentList(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
List<DklSecurityEquipment> dklSecurityEquipmentList = dklSecurityEquipmentMapper.selectDklSecurityEquipmentList(dklSecurityEquipment);
for (DklSecurityEquipment dklSecurityEquipmentInfo : dklSecurityEquipmentList) {
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getMaintenancePersonnel())) {
String maintenancePersonnel = dklSecurityEquipmentInfo.getMaintenancePersonnel();
dklSecurityEquipmentInfo.setMaintenancePersonnel(EnciphermentUtil.kmsDencrypt(maintenancePersonnel));
}
}
return dklSecurityEquipmentList;
}
@Override
public String selectDklSecurityEquipmentListMessage(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
StringBuilder successMsg = new StringBuilder();
List<DklSecurityEquipment> dklSecurityEquipmentList = dklSecurityEquipmentMapper.selectDklSecurityEquipmentList(dklSecurityEquipment);
for (DklSecurityEquipment dklSecurityEquipmentInfo : dklSecurityEquipmentList) {
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getMaintenancePersonnel())) {
String maintenancePersonnel = dklSecurityEquipmentInfo.getMaintenancePersonnel();
dklSecurityEquipmentInfo.setMaintenancePersonnel(EnciphermentUtil.kmsDencrypt(maintenancePersonnel));
}
if (StringUtils.isNotEmpty(dklSecurityEquipmentInfo.getSigenCode()) && ("0").equals(dklSecurityEquipmentInfo.getDelFlag())) {
byte[] bytes = serialize(dklSecurityEquipmentInfo.getMaintenancePersonnel());
String isor = EnciphermentUtil.kmsSign(bytes);
if (!isor.equals(dklSecurityEquipmentInfo.getSigenCode())) {
successMsg.append("活名称为" + dklSecurityEquipmentInfo.getMaintenancePersonnel() + "的数据被篡改");
}
}
}
return successMsg.toString();
}
/**
* 新增安保力量()
*
* @param dklSecurityEquipment 安保力量()
* @return 结果
*/
@Override
public int insertDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
dklSecurityEquipment.setCreateTime(DateUtils.getNowDate());
if (StringUtils.isNotEmpty(dklSecurityEquipment.getMaintenancePersonnel())) {
String maintenancePersonnel = dklSecurityEquipment.getMaintenancePersonnel();
dklSecurityEquipment.setMaintenancePersonnel(EnciphermentUtil.kmsEncrypt(maintenancePersonnel));
// 序列化
byte[] bytes = serialize(maintenancePersonnel);
String sigenCode = EnciphermentUtil.kmsSign(bytes);
dklSecurityEquipment.setSigenCode(sigenCode);
}
return dklSecurityEquipmentMapper.insertDklSecurityEquipment(dklSecurityEquipment);
}
/**
* 修改安保力量()
*
* @param dklSecurityEquipment 安保力量()
* @return 结果
*/
@Override
public int updateDklSecurityEquipment(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException {
dklSecurityEquipment.setUpdateTime(DateUtils.getNowDate());
if (StringUtils.isNotEmpty(dklSecurityEquipment.getMaintenancePersonnel())) {
String maintenancePersonnel = dklSecurityEquipment.getMaintenancePersonnel();
dklSecurityEquipment.setMaintenancePersonnel(EnciphermentUtil.kmsEncrypt(maintenancePersonnel));
// 序列化
byte[] bytes = serialize(maintenancePersonnel);
String sigenCode = EnciphermentUtil.kmsSign(bytes);
dklSecurityEquipment.setSigenCode(sigenCode);
}
return dklSecurityEquipmentMapper.updateDklSecurityEquipment(dklSecurityEquipment);
}
/**
* 批量删除安保力量()
*
* @param ids 需要删除的安保力量()主键
* @return 结果
*/
@Override
public int deleteDklSecurityEquipmentByIds(Long[] ids)
{
return dklSecurityEquipmentMapper.deleteDklSecurityEquipmentByIds(ids);
}
/**
* 删除安保力量()信息
*
* @param id 安保力量()主键
* @return 结果
*/
@Override
public int deleteDklSecurityEquipmentById(Long id)
{
return dklSecurityEquipmentMapper.deleteDklSecurityEquipmentById(id);
}
/**
* 导入数据
*
* @param list 数据列表
* @param isUpdateSupport 是否更新支持如果已存在则进行更新数据
* @param operName 操作用户
* @return 结果
*/
@Override
public String importData(List<DklSecurityEquipment> list, Boolean isUpdateSupport, String operName) throws KmsSdkException {
DklMonitoringPoints points = new DklMonitoringPoints();
List<DklMonitoringPoints> pointsList = dklMonitoringPointsMapper.selectDklMonitoringPointsList(points);
if (StringUtils.isNull(list) || list.size() == 0) {
throw new ServiceException("导入数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
try
{
//设备名称
if (StringUtils.isEmpty(list.get(i).getDeviceName())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据设备名称为空");
}else{
if (list.get(i).getDeviceName().length()>=100){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据设备名称长度过长");
}
}
//型号
if (StringUtils.isEmpty(list.get(i).getModel())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据型号为空");
}else{
if (list.get(i).getModel().length()>=30){
failureNum++;
failureMsg.append("<br/> 第" +(i+1)+ "条数据型号长度过长");
}
}
//安装位置
if (StringUtils.isEmpty(list.get(i).getInstallationPosition())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据安装位置为空");
}else{
if (list.get(i).getInstallationPosition().length()>=255){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据安装位置长度过长");
}
}
//购置日期
if (StringUtils.isEmpty(list.get(i).getBuyTime().toString())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据购置时间为空,时间应该为yyyy-MM-dd");
} else if (list.get(i).getBuyTime() == null || list.get(i).getBuyTime().getTime() == 0) {
failureMsg.append("<br/> 第" + (i+1) + "条数据购置时间无效,时间应该为yyyy-MM-dd");
}
//价格
if (StringUtils.isEmpty(list.get(i).getPrice().toString())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据价格为空");
}else{
if (list.get(i).getInstallationPosition().length()>=9){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据价格长度过长");
}
}
//维护周期
if (StringUtils.isNotEmpty(list.get(i).getMaintenanceCycle()) && list.get(i).getMaintenanceCycle().length()>=30 ){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据维护周期长度过长");
}
//上次维护日期
if (StringUtils.isEmpty(list.get(i).getLastMaintenanceTime().toString())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据上次维护日期为空,时间应该为yyyy-MM-dd");
}else if (list.get(i).getLastMaintenanceTime() == null || list.get(i).getLastMaintenanceTime().getTime() == 0) {
failureMsg.append("<br/> 第" + (i+1) + "条数据上次维护日期无效,时间应该为yyyy-MM-dd");
}
//维护情况
if (StringUtils.isNotEmpty(list.get(i).getMaintenanceSituation()) && list.get(i).getMaintenanceSituation().length()>=255 ){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据维护周期长度过长");
}
//维护责任人
if (StringUtils.isNotEmpty(list.get(i).getMaintenancePersonnel()) && list.get(i).getMaintenancePersonnel().length()>=30 ){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据维护周期长度过长");
}
//状态
if (StringUtils.isEmpty(list.get(i).getState())){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据设备状态为空");
}else{
if (list.get(i).getState().length()>=9){
failureNum++;
failureMsg.append("<br/> 第" + (i+1) + "条数据设备状态长度过长");
}
}
//监控点
if (StringUtils.isNotEmpty(list.get(i).getPointName())){
for (DklMonitoringPoints monitoringPoints: pointsList){
if (monitoringPoints.getPointName().equals(list.get(i).getPointName())){
list.get(i).setMonitoringPointsId((long) monitoringPoints.getId());
}
}
if (StringUtils.isNull(String.valueOf(list.get(i).getMonitoringPointsId()))){
failureNum++;
failureMsg.append("<br/> 第" + (i+1)+ "条数据监控点名称找不到");
}
}
}
catch (Exception e)
{
failureNum++;
String msg = "<br/>" + failureNum + "导入失败请检查数据类型";
failureMsg.append(msg + e.getMessage());
}
}
if (failureNum > 0)
{
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
else
{
for (DklSecurityEquipment equipment :list){
//添加系统信息
equipment.setDelFlag("0");
equipment.setCreateTime(new Date());
equipment.setCreateBy(getUsername());
equipment.setDeptId(getDeptId());
equipment.setUpdateTime(new Date());
equipment.setUpdateBy(getUsername());
if (StringUtils.isNotEmpty(equipment.getMaintenancePersonnel())) {
String maintenancePersonnel = equipment.getMaintenancePersonnel();
equipment.setMaintenancePersonnel(EnciphermentUtil.kmsEncrypt(maintenancePersonnel));
// 序列化
byte[] bytes = serialize(maintenancePersonnel);
String sigenCode = EnciphermentUtil.kmsSign(bytes);
equipment.setSigenCode(sigenCode);
}
dklSecurityEquipmentMapper.insertDklSecurityEquipment(equipment);
}
successMsg.insert(0, "恭喜您,数据已全部导入成功!");
}
return successMsg.toString();
}
}