From 3276b1d4437f64fd5e4b075e7c1c7d3be22ad74f Mon Sep 17 00:00:00 2001 From: guanpeng Date: Fri, 28 Feb 2025 19:36:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=91=E6=8E=A7=E4=BF=A1=E6=81=AF=E6=A6=82?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DklSecurityEquipmentServiceImpl.java | 333 ++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklSecurityEquipmentServiceImpl.java diff --git a/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklSecurityEquipmentServiceImpl.java b/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklSecurityEquipmentServiceImpl.java new file mode 100644 index 0000000..993725e --- /dev/null +++ b/Dkl-Vue-master/dkl-large/src/main/java/com/dkl/large/service/impl/DklSecurityEquipmentServiceImpl.java @@ -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 selectDklSecurityEquipmentList(DklSecurityEquipment dklSecurityEquipment) throws KmsSdkException { + List 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 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 list, Boolean isUpdateSupport, String operName) throws KmsSdkException { + DklMonitoringPoints points = new DklMonitoringPoints(); + List 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("
第" + (i+1) + "条数据设备名称为空"); + }else{ + if (list.get(i).getDeviceName().length()>=100){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据设备名称长度过长"); + } + } + + //型号 + if (StringUtils.isEmpty(list.get(i).getModel())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据型号为空"); + }else{ + if (list.get(i).getModel().length()>=30){ + failureNum++; + failureMsg.append("
第" +(i+1)+ "条数据型号长度过长"); + } + } + + //安装位置 + if (StringUtils.isEmpty(list.get(i).getInstallationPosition())){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据安装位置为空"); + }else{ + if (list.get(i).getInstallationPosition().length()>=255){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据安装位置长度过长"); + } + } + + //购置日期 + if (StringUtils.isEmpty(list.get(i).getBuyTime().toString())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据购置时间为空,时间应该为yyyy-MM-dd"); + } else if (list.get(i).getBuyTime() == null || list.get(i).getBuyTime().getTime() == 0) { + failureMsg.append("
第" + (i+1) + "条数据购置时间无效,时间应该为yyyy-MM-dd"); + } + + //价格 + if (StringUtils.isEmpty(list.get(i).getPrice().toString())){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据价格为空"); + }else{ + if (list.get(i).getInstallationPosition().length()>=9){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据价格长度过长"); + } + } + + //维护周期 + if (StringUtils.isNotEmpty(list.get(i).getMaintenanceCycle()) && list.get(i).getMaintenanceCycle().length()>=30 ){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据维护周期长度过长"); + } + + //上次维护日期 + if (StringUtils.isEmpty(list.get(i).getLastMaintenanceTime().toString())){ + failureNum++; + failureMsg.append("
第" + (i+1) + "条数据上次维护日期为空,时间应该为yyyy-MM-dd"); + }else if (list.get(i).getLastMaintenanceTime() == null || list.get(i).getLastMaintenanceTime().getTime() == 0) { + failureMsg.append("
第" + (i+1) + "条数据上次维护日期无效,时间应该为yyyy-MM-dd"); + } + + //维护情况 + if (StringUtils.isNotEmpty(list.get(i).getMaintenanceSituation()) && list.get(i).getMaintenanceSituation().length()>=255 ){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据维护周期长度过长"); + } + //维护责任人 + if (StringUtils.isNotEmpty(list.get(i).getMaintenancePersonnel()) && list.get(i).getMaintenancePersonnel().length()>=30 ){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据维护周期长度过长"); + } + + //状态 + if (StringUtils.isEmpty(list.get(i).getState())){ + failureNum++; + failureMsg.append("
第" + (i+1)+ "条数据设备状态为空"); + }else{ + if (list.get(i).getState().length()>=9){ + failureNum++; + failureMsg.append("
第" + (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("
第" + (i+1)+ "条数据监控点名称找不到"); + } + } + + } + catch (Exception e) + { + failureNum++; + String msg = "
" + 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(); + } +}