海康下发修改

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

@ -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,10 +1156,32 @@ 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;
@ -121,6 +119,7 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl<WorkerInfoAudi
//调用向正式表添加接口并下发设备 //调用向正式表添加接口并下发设备
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());