海康下发修改

This commit is contained in:
GUO 2024-06-16 19:20:50 +08:00
parent acd9d3e1a6
commit 0ac45efb65
4 changed files with 76 additions and 45 deletions

View File

@ -308,7 +308,7 @@ public class AsyncHikvision {
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn, String enterpriseName, Long projectEnterpriseId) { public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn, String enterpriseName, Long projectEnterpriseId) {
try { try {
hikvisionCall.deleteEnterpriseInfoForHikvision(enterpriseId, projectSn, enterpriseName,projectEnterpriseId); hikvisionCall.deleteEnterpriseInfoForHikvision(enterpriseId, projectSn, enterpriseName, projectEnterpriseId);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForOrg(enterpriseName, e, "删除"); sendNoticeForOrg(enterpriseName, e, "删除");
@ -594,8 +594,9 @@ public class AsyncHikvision {
.in(WorkerInfo::getId, workerList.stream().map(WorkerInfo::getId).collect(Collectors.toList())) .in(WorkerInfo::getId, workerList.stream().map(WorkerInfo::getId).collect(Collectors.toList()))
); );
for (WorkerInfo workerInfo : failWorkers) { for (WorkerInfo workerInfo : failWorkers) {
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { Set<Long> noticeUserIds = hikvisionCall.getNoticeUserIds(workerInfo.getNoticeUserId(), workerInfo.getProjectSn());
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), for (Long noticeUserId : noticeUserIds) {
noticeService.addUserNotice(noticeUserId,
StrUtil.format("[{}]下发{}设备权限失败{}", workerInfo.getWorkerName(), dev != null ? "[" + dev.getDevName() + "]" : "有些", exc), StrUtil.format("[{}]下发{}设备权限失败{}", workerInfo.getWorkerName(), dev != null ? "[" + dev.getDevName() + "]" : "有些", exc),
"人员下发设备提醒", "1"); "人员下发设备提醒", "1");
} }
@ -699,8 +700,9 @@ public class AsyncHikvision {
continue; continue;
} }
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(workerId), 3, 3, devSn); hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(workerId), 3, 3, devSn);
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { Set<Long> noticeUserIds = hikvisionCall.getNoticeUserIds(workerIdMap.get(workerId).getNoticeUserId(), projectSn);
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), for (Long noticeUserId : noticeUserIds) {
noticeService.addUserNotice(noticeUserId,
StrUtil.format("[{}]取消下发到[{}]{}", StrUtil.format("[{}]取消下发到[{}]{}",
workerIdMap.get(workerId).getWorkerName(), workerIdMap.get(workerId).getWorkerName(),
devSnMap.get(devSn).getDevName(), devSnMap.get(devSn).getDevName(),
@ -755,8 +757,9 @@ public class AsyncHikvision {
} else { } else {
hikvisionCall.updateFailStatus(projectSn, Long.valueOf(personId), 3, 1, dev.getDevSn()); hikvisionCall.updateFailStatus(projectSn, Long.valueOf(personId), 3, 1, dev.getDevSn());
} }
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { Set<Long> noticeUserIds = hikvisionCall.getNoticeUserIds(workerIdMap.get(personId).getNoticeUserId(), projectSn);
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), for (Long noticeUserId : noticeUserIds) {
noticeService.addUserNotice(noticeUserId,
StrUtil.format("[{}]下发到[{}]{}", StrUtil.format("[{}]下发到[{}]{}",
workerIdMap.get(personId).getWorkerName(), workerIdMap.get(personId).getWorkerName(),
dev.getDevName(), dev.getDevName(),
@ -770,8 +773,9 @@ public class AsyncHikvision {
} else { } else {
hikvisionCall.updateFailStatus(projectSn, Long.valueOf(personId), 3, 3, dev.getDevSn()); hikvisionCall.updateFailStatus(projectSn, Long.valueOf(personId), 3, 3, dev.getDevSn());
} }
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { Set<Long> noticeUserIds = hikvisionCall.getNoticeUserIds(workerIdMap.get(personId).getNoticeUserId(), projectSn);
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), for (Long noticeUserId : noticeUserIds) {
noticeService.addUserNotice(noticeUserId,
StrUtil.format("[{}]取消下发到[{}]{}", StrUtil.format("[{}]取消下发到[{}]{}",
workerIdMap.get(personId).getWorkerName(), workerIdMap.get(personId).getWorkerName(),
dev.getDevName(), dev.getDevName(),

View File

@ -23,6 +23,8 @@ import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.base.*; import com.zhgd.xmgl.base.*;
import com.zhgd.xmgl.call.entity.ChargeDeletionParam; import com.zhgd.xmgl.call.entity.ChargeDeletionParam;
import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.constant.Cts;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl; import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
import com.zhgd.xmgl.modules.car.entity.CarCamera; import com.zhgd.xmgl.modules.car.entity.CarCamera;
@ -89,6 +91,7 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@RestController @RestController
@ -200,6 +203,9 @@ public class HikvisionCall {
@Lazy @Lazy
@Resource @Resource
private IProjectUfaceConfigService projectUfaceConfigService; private IProjectUfaceConfigService projectUfaceConfigService;
@Lazy
@Autowired
private ISystemUserService systemUserService;
/** /**
* 获取图片 * 获取图片
@ -1150,11 +1156,33 @@ public class HikvisionCall {
updateFailStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null); updateFailStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null);
xzHikvisionCompareDataService.compareRetryFail(); xzHikvisionCompareDataService.compareRetryFail();
} }
if (sendNotice && ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { Set<Long> userIdSet = getNoticeUserIds(workerInfo.getNoticeUserId(), workerInfo.getProjectSn());
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, noticeType); if (sendNotice) {
for (Long userId : userIdSet) {
noticeService.addUserNotice(userId, msg, title, noticeType);
}
} }
} }
/**
* 通知发起人项目账号操作的人
*
* @param flowStartUser
* @param projectSn
* @return
*/
public Set<Long> getNoticeUserIds(Long flowStartUser, String projectSn) {
//项目级别账号
List<SystemUser> systemUsers = systemUserService.getSystemUsersBySn(new MapBuilder<String, Object>().put(Cts.SN, projectSn).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL).build());
Set<Long> userIdSet = systemUsers.stream().map(SystemUser::getUserId).collect(Collectors.toSet());
//审批的发起人
userIdSet.add(flowStartUser);
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
userIdSet.add(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId());
}
return userIdSet;
}
/** /**
* 更新所有未同步失败状态 * 更新所有未同步失败状态
* *

View File

@ -155,9 +155,9 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
public void addWorkerInfo(WorkerInfo workerInfo) { public void addWorkerInfo(WorkerInfo workerInfo) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>(); QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, workerInfo.getProjectSn()); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, workerInfo.getProjectSn());
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper); ProjectUfaceConfig ufaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
//判断是否配置并下发设备 //判断是否配置并下发设备
if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) { if (ufaceConfig != null && ufaceConfig.getIssueDev() == 1) {
String ufaceDevId = workerInfo.getUfaceDevId(); String ufaceDevId = workerInfo.getUfaceDevId();
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn()); param.put("projectSn", workerInfo.getProjectSn());
@ -183,7 +183,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
devBuilder.append(dev.getDevSn()); devBuilder.append(dev.getDevSn());
devIdBuilder.append(dev.getDeviceId()); devIdBuilder.append(dev.getDeviceId());
} }
sendDev(tempProjectUfaceConfig, workerInfo, devBuilder.toString(), devIdBuilder.toString()); sendDev(ufaceConfig, workerInfo, devBuilder.toString(), devIdBuilder.toString());
} }
} }
} }

View File

@ -4,10 +4,10 @@ import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.worker.entity.*; import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoAuditRecordMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoAuditRecordMapper;
import com.zhgd.xmgl.modules.worker.service.*; import com.zhgd.xmgl.modules.worker.service.*;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
@ -16,8 +16,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
@ -29,7 +27,7 @@ import java.util.Map;
/** /**
* @Description: 劳务人员-审核表 * @Description: 劳务人员-审核表
* @author pds * @author pds
* @date 2021-05-13 * @date 2021-05-13
* @version V1.0 * @version V1.0
*/ */
@Service @Service
@ -55,31 +53,31 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl<WorkerInfoAudi
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString()); int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString()); int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
Page<EntityMap> page = new Page<>(pageNo, pageSize); Page<EntityMap> page = new Page<>(pageNo, pageSize);
List<EntityMap> list=workerInfoAuditRecordMapper.selectWorkerInfoAuditList(page, map); List<EntityMap> list = workerInfoAuditRecordMapper.selectWorkerInfoAuditList(page, map);
return page.setRecords(list); return page.setRecords(list);
} }
@Override @Override
public List<EntityMap> getPassList(Map<String, Object> map) { public List<EntityMap> getPassList(Map<String, Object> map) {
Page<EntityMap> page = new Page<>(1, 1000); Page<EntityMap> page = new Page<>(1, 1000);
map.put("isExamPass", 1); map.put("isExamPass", 1);
return workerInfoAuditRecordMapper.selectWorkerInfoAuditList1(page, map); return workerInfoAuditRecordMapper.selectWorkerInfoAuditList1(page, map);
} }
@Override @Override
public void saveWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord) { public void saveWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord) {
QueryWrapper<WorkerInfo> queryWrapper=new QueryWrapper<>(); QueryWrapper<WorkerInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(WorkerInfo::getProjectSn,workerInfoAuditRecord.getProjectSn()) queryWrapper.lambda().eq(WorkerInfo::getProjectSn, workerInfoAuditRecord.getProjectSn())
.eq(WorkerInfo::getIdCard,workerInfoAuditRecord.getIdCard()); .eq(WorkerInfo::getIdCard, workerInfoAuditRecord.getIdCard());
int count=workerInfoService.count(queryWrapper); int count = workerInfoService.count(queryWrapper);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("existsIDCardErr")); throw new OpenAlertException(MessageUtil.get("existsIDCardErr"));
} }
QueryWrapper<WorkerInfoAuditRecord> queryWrapper2=new QueryWrapper<>(); QueryWrapper<WorkerInfoAuditRecord> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.lambda().eq(WorkerInfoAuditRecord::getProjectSn,workerInfoAuditRecord.getProjectSn()) queryWrapper2.lambda().eq(WorkerInfoAuditRecord::getProjectSn, workerInfoAuditRecord.getProjectSn())
.eq(WorkerInfoAuditRecord::getIdCard,workerInfoAuditRecord.getIdCard()); .eq(WorkerInfoAuditRecord::getIdCard, workerInfoAuditRecord.getIdCard());
WorkerInfoAuditRecord workerInfoAuditRecord1 = workerInfoAuditRecordMapper.selectOne(queryWrapper2); WorkerInfoAuditRecord workerInfoAuditRecord1 = workerInfoAuditRecordMapper.selectOne(queryWrapper2);
if(workerInfoAuditRecord1 != null){ if (workerInfoAuditRecord1 != null) {
if (workerInfoAuditRecord1.getIsExamPass() == 1) { if (workerInfoAuditRecord1.getIsExamPass() == 1) {
throw new OpenAlertException("人员已通过培训,请勿重新添加人员信息"); throw new OpenAlertException("人员已通过培训,请勿重新添加人员信息");
} else { } else {
@ -94,12 +92,12 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl<WorkerInfoAudi
@Override @Override
public void editWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord) { public void editWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord) {
QueryWrapper<WorkerInfoAuditRecord> queryWrapper=new QueryWrapper<>(); QueryWrapper<WorkerInfoAuditRecord> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(WorkerInfoAuditRecord::getProjectSn,workerInfoAuditRecord.getProjectSn()) queryWrapper.lambda().eq(WorkerInfoAuditRecord::getProjectSn, workerInfoAuditRecord.getProjectSn())
.eq(WorkerInfoAuditRecord::getIdCard,workerInfoAuditRecord.getIdCard()) .eq(WorkerInfoAuditRecord::getIdCard, workerInfoAuditRecord.getIdCard())
.ne(WorkerInfoAuditRecord::getId,workerInfoAuditRecord.getId()); .ne(WorkerInfoAuditRecord::getId, workerInfoAuditRecord.getId());
int count=workerInfoAuditRecordMapper.selectCount(queryWrapper); int count = workerInfoAuditRecordMapper.selectCount(queryWrapper);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("existsIDCardErr")); throw new OpenAlertException(MessageUtil.get("existsIDCardErr"));
} }
workerInfoAuditRecordMapper.updateById(workerInfoAuditRecord); workerInfoAuditRecordMapper.updateById(workerInfoAuditRecord);
@ -107,20 +105,21 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl<WorkerInfoAudi
@Override @Override
public String adoptWorkerInfo(Map<String, Object> map) { public String adoptWorkerInfo(Map<String, Object> map) {
WorkerInfoAuditRecord workerInfoAuditRecord=workerInfoAuditRecordMapper.selectById(MapUtils.getString(map,"id")); WorkerInfoAuditRecord workerInfoAuditRecord = workerInfoAuditRecordMapper.selectById(MapUtils.getString(map, "id"));
if(workerInfoAuditRecord==null){ if (workerInfoAuditRecord == null) {
throw new OpenAlertException(MessageUtil.get("notFindErr")); throw new OpenAlertException(MessageUtil.get("notFindErr"));
} }
WorkerInfo workerInfo=new WorkerInfo(); WorkerInfo workerInfo = new WorkerInfo();
BeanUtils.copyProperties(workerInfoAuditRecord, workerInfo); BeanUtils.copyProperties(workerInfoAuditRecord, workerInfo);
workerInfo.setRegisterType(MapUtils.getInteger(map,"registerType")); workerInfo.setRegisterType(MapUtils.getInteger(map, "registerType"));
workerInfo.setAccountType(MapUtils.getInteger(map,"accountType")); workerInfo.setAccountType(MapUtils.getInteger(map, "accountType"));
workerInfo.setUfaceDevId(MapUtils.getString(map,"ufaceDevId")); workerInfo.setUfaceDevId(MapUtils.getString(map, "ufaceDevId"));
workerInfo.setInserviceType(1); workerInfo.setInserviceType(1);
//调用向正式表添加接口并下发设备 //调用向正式表添加接口并下发设备
WorkerInfo workerInfo1 = new WorkerInfo(); WorkerInfo workerInfo1 = new WorkerInfo();
try { try {
workerInfo1.setNoticeUserId(Long.valueOf(MapUtils.getString(map, "startUser")));
workerInfo1 = workerInfoService.saveWorkerInfo(workerInfo); workerInfo1 = workerInfoService.saveWorkerInfo(workerInfo);
} catch (Exception e) { } catch (Exception e) {
log.error("同步人员信息失败:" + workerInfo.getWorkerName() + e.getMessage()); log.error("同步人员信息失败:" + workerInfo.getWorkerName() + e.getMessage());
@ -151,17 +150,17 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl<WorkerInfoAudi
workerInsuranceService.saveBatch(workerInsurances); workerInsuranceService.saveBatch(workerInsurances);
} }
//删除审核表记录 //删除审核表记录
workerInfoAuditRecordMapper.deleteById(MapUtils.getString(map,"id")); workerInfoAuditRecordMapper.deleteById(MapUtils.getString(map, "id"));
return null; return null;
} }
@Override @Override
public void rejectWorkerInfo(Map<String, Object> map) { public void rejectWorkerInfo(Map<String, Object> map) {
WorkerInfoAuditRecord workerInfoAuditRecord=workerInfoAuditRecordMapper.selectById(MapUtils.getString(map,"id")); WorkerInfoAuditRecord workerInfoAuditRecord = workerInfoAuditRecordMapper.selectById(MapUtils.getString(map, "id"));
if(workerInfoAuditRecord==null){ if (workerInfoAuditRecord == null) {
throw new OpenAlertException(MessageUtil.get("notFindErr")); throw new OpenAlertException(MessageUtil.get("notFindErr"));
} }
workerInfoAuditRecordMapper.deleteById(MapUtils.getString(map,"id")); workerInfoAuditRecordMapper.deleteById(MapUtils.getString(map, "id"));
} }
@Override @Override