安保力量人
This commit is contained in:
parent
a87f96e231
commit
c4c07b1eaa
|
|
@ -0,0 +1,308 @@
|
||||||
|
package com.dkl.large.service.impl;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import com.koal.kms.sdk.ed.KmsSdkException;
|
||||||
|
import com.dkl.common.exception.ServiceException;
|
||||||
|
import com.dkl.common.utils.DateUtils;
|
||||||
|
import com.dkl.common.utils.StringUtils;
|
||||||
|
import com.dkl.large.domain.DklMonitoringPoints;
|
||||||
|
import com.dkl.large.domain.DklSecurityEquipment;
|
||||||
|
import com.dkl.large.mapper.DklMonitoringPointsMapper;
|
||||||
|
import com.dkl.large.utli.EnciphermentUtil;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.dkl.large.mapper.DklSecurityPersonnelMapper;
|
||||||
|
import com.dkl.large.domain.DklSecurityPersonnel;
|
||||||
|
import com.dkl.large.service.IDklSecurityPersonnelService;
|
||||||
|
|
||||||
|
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 DklSecurityPersonnelServiceImpl implements IDklSecurityPersonnelService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private DklSecurityPersonnelMapper dklSecurityPersonnelMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DklMonitoringPointsMapper dklMonitoringPointsMapper;
|
||||||
|
|
||||||
|
|
||||||
|
//身份证号码正则
|
||||||
|
private static final String CODE_REGEX = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询安保力量(人员)
|
||||||
|
*
|
||||||
|
* @param id 安保力量(人员)主键
|
||||||
|
* @return 安保力量(人员)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public DklSecurityPersonnel selectDklSecurityPersonnelById(Long id) throws KmsSdkException {
|
||||||
|
|
||||||
|
DklSecurityPersonnel dklSecurityPersonnelInfo= dklSecurityPersonnelMapper.selectDklSecurityPersonnelById(id);
|
||||||
|
String code = dklSecurityPersonnelInfo.getCode();
|
||||||
|
String phone = dklSecurityPersonnelInfo.getPhone();
|
||||||
|
dklSecurityPersonnelInfo.setCode(EnciphermentUtil.kmsDencrypt(code));
|
||||||
|
dklSecurityPersonnelInfo.setPhone(EnciphermentUtil.kmsDencrypt(phone));
|
||||||
|
return dklSecurityPersonnelInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询安保力量(人员)列表
|
||||||
|
*
|
||||||
|
* @param dklSecurityPersonnel 安保力量(人员)
|
||||||
|
* @return 安保力量(人员)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<DklSecurityPersonnel> selectDklSecurityPersonnelList(DklSecurityPersonnel dklSecurityPersonnel) throws KmsSdkException {
|
||||||
|
List<DklSecurityPersonnel> list = dklSecurityPersonnelMapper.selectDklSecurityPersonnelList(dklSecurityPersonnel);
|
||||||
|
for (DklSecurityPersonnel dklSecurityPersonnelInfo : list) {
|
||||||
|
String code = dklSecurityPersonnelInfo.getCode();
|
||||||
|
String phone = dklSecurityPersonnelInfo.getPhone();
|
||||||
|
dklSecurityPersonnelInfo.setCode(EnciphermentUtil.kmsDencrypt(code));
|
||||||
|
dklSecurityPersonnelInfo.setPhone(EnciphermentUtil.kmsDencrypt(phone));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String selectDklSecurityPersonnelListMessage(DklSecurityPersonnel dklSecurityPersonnel) throws KmsSdkException {
|
||||||
|
StringBuilder successMsg = new StringBuilder();
|
||||||
|
List<DklSecurityPersonnel> list = dklSecurityPersonnelMapper.selectDklSecurityPersonnelList(dklSecurityPersonnel);
|
||||||
|
for (DklSecurityPersonnel dklSecurityPersonnelInfo : list) {
|
||||||
|
String code = dklSecurityPersonnelInfo.getCode();
|
||||||
|
String phone = dklSecurityPersonnelInfo.getPhone();
|
||||||
|
dklSecurityPersonnelInfo.setCode(EnciphermentUtil.kmsDencrypt(code));
|
||||||
|
dklSecurityPersonnelInfo.setPhone(EnciphermentUtil.kmsDencrypt(phone));
|
||||||
|
byte[] bytes = serialize(dklSecurityPersonnelInfo.getName()+","+dklSecurityPersonnelInfo.getCode()+","+dklSecurityPersonnelInfo.getPhone());
|
||||||
|
String isor = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
if (!isor.equals(dklSecurityPersonnelInfo.getSigenCode())) {
|
||||||
|
successMsg.append("名称为"+dklSecurityPersonnelInfo.getName()+"的数据被篡改");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增安保力量(人员)
|
||||||
|
*
|
||||||
|
* @param dklSecurityPersonnel 安保力量(人员)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertDklSecurityPersonnel(DklSecurityPersonnel dklSecurityPersonnel) throws KmsSdkException {
|
||||||
|
dklSecurityPersonnel.setCreateTime(DateUtils.getNowDate());
|
||||||
|
|
||||||
|
String code = dklSecurityPersonnel.getCode();
|
||||||
|
String phone = dklSecurityPersonnel.getPhone();
|
||||||
|
dklSecurityPersonnel.setCode(EnciphermentUtil.kmsEncrypt(code));
|
||||||
|
dklSecurityPersonnel.setPhone(EnciphermentUtil.kmsEncrypt(phone));
|
||||||
|
// (序列化)
|
||||||
|
byte[] bytes = serialize(code+","+phone);
|
||||||
|
String sigenCode = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
dklSecurityPersonnel.setSigenCode(sigenCode);
|
||||||
|
return dklSecurityPersonnelMapper.insertDklSecurityPersonnel(dklSecurityPersonnel);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改安保力量(人员)
|
||||||
|
*
|
||||||
|
* @param dklSecurityPersonnel 安保力量(人员)
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateDklSecurityPersonnel(DklSecurityPersonnel dklSecurityPersonnel) throws KmsSdkException {
|
||||||
|
dklSecurityPersonnel.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
String code = dklSecurityPersonnel.getCode();
|
||||||
|
String phone = dklSecurityPersonnel.getPhone();
|
||||||
|
dklSecurityPersonnel.setCode(EnciphermentUtil.kmsEncrypt(code));
|
||||||
|
dklSecurityPersonnel.setPhone(EnciphermentUtil.kmsEncrypt(phone));
|
||||||
|
// (序列化)
|
||||||
|
byte[] bytes = serialize(code+","+phone);
|
||||||
|
String sigenCode = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
dklSecurityPersonnel.setSigenCode(sigenCode);
|
||||||
|
return dklSecurityPersonnelMapper.updateDklSecurityPersonnel(dklSecurityPersonnel);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除安保力量(人员)
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的安保力量(人员)主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteDklSecurityPersonnelByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return dklSecurityPersonnelMapper.deleteDklSecurityPersonnelByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除安保力量(人员)信息
|
||||||
|
*
|
||||||
|
* @param id 安保力量(人员)主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteDklSecurityPersonnelById(Long id)
|
||||||
|
{
|
||||||
|
return dklSecurityPersonnelMapper.deleteDklSecurityPersonnelById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入数据
|
||||||
|
*
|
||||||
|
* @param list 数据列表
|
||||||
|
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
|
||||||
|
* @param operName 操作用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String importData(List<DklSecurityPersonnel> 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).getName())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据姓名为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getName().length()>=100){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据姓名长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//身份证号码
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getCode())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据身份证号码为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getCode().length()>=30){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据身份证号码长度过长");
|
||||||
|
}else if (!Pattern.matches(CODE_REGEX, list.get(i).getCode())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据身份证号码有误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//联系方式
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getPhone())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据联系方式为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getPhone().length()>=30){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据联系方式长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//入职日期
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getEntryTime().toString())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据入职日期为空,时间应该为yyyy-MM-dd");
|
||||||
|
}else if (list.get(i).getEntryTime() == null || list.get(i).getEntryTime().getTime() == 0) {
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据入职日期无效,时间应该为yyyy-MM-dd");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//岗位
|
||||||
|
if (StringUtils.isEmpty(list.get(i).getPost())){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据岗位为空");
|
||||||
|
}else{
|
||||||
|
if (list.get(i).getPost().length()>=10){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1) + "条数据岗位长度过长");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//证书名称
|
||||||
|
if (StringUtils.isNotEmpty(list.get(i).getCertificate()) && list.get(i).getCertificate().length()>=30 ){
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/> 第" + (i+1)+ "条数据证书名称长度过长");
|
||||||
|
}
|
||||||
|
|
||||||
|
//证书编号
|
||||||
|
if (StringUtils.isNotEmpty(list.get(i).getCertificateCode()) && list.get(i).getCertificateCode().length()>=50 ){
|
||||||
|
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 (DklSecurityPersonnel personnel :list){
|
||||||
|
//添加系统信息
|
||||||
|
personnel.setDelFlag("0");
|
||||||
|
personnel.setCreateTime(new Date());
|
||||||
|
personnel.setCreateBy(getUsername());
|
||||||
|
personnel.setDeptId(getDeptId());
|
||||||
|
personnel.setUpdateTime(new Date());
|
||||||
|
personnel.setUpdateBy(getUsername());
|
||||||
|
String name = personnel.getName();
|
||||||
|
String code = personnel.getCode();
|
||||||
|
String phone = personnel.getPhone();
|
||||||
|
personnel.setCode(EnciphermentUtil.kmsEncrypt(code));
|
||||||
|
personnel.setPhone(EnciphermentUtil.kmsEncrypt(phone));
|
||||||
|
// (序列化)
|
||||||
|
byte[] bytes = serialize(code+","+phone);
|
||||||
|
String sigenCode = EnciphermentUtil.kmsSign(bytes);
|
||||||
|
personnel.setSigenCode(sigenCode);
|
||||||
|
dklSecurityPersonnelMapper.insertDklSecurityPersonnel(personnel);
|
||||||
|
}
|
||||||
|
successMsg.insert(0, "恭喜您,数据已全部导入成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue