下发修改

This commit is contained in:
guoshengxiong 2024-06-15 22:19:09 +08:00
parent 85561d3506
commit 5c4ea16ad9
8 changed files with 128 additions and 79 deletions

View File

@ -128,9 +128,9 @@ public class AsyncHikvision {
return ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME); return ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME);
} }
@Async("sendWorkerExecutor") @Async("workerHkExecutor")
public Future addWorkerAndAuthAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { public Future addWorkerAndAuthAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
addWorkerAsync(workerInfo, true, true); this.addWorkerAsync(workerInfo, true, true);
projectUfaceConfigService.addWorkerInfo(workerInfo); projectUfaceConfigService.addWorkerInfo(workerInfo);
return null; return null;
} }
@ -142,7 +142,7 @@ public class AsyncHikvision {
* @param isSaveWorker * @param isSaveWorker
* @param isSaveWorkerFace * @param isSaveWorkerFace
*/ */
@Async("sendWorkerExecutor") @Async("workerHkExecutor")
public void addWorkerAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { public void addWorkerAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
try { try {
hikvisionCall.saveWorker(workerInfo, isSaveWorker, isSaveWorkerFace); hikvisionCall.saveWorker(workerInfo, isSaveWorker, isSaveWorkerFace);
@ -156,13 +156,13 @@ public class AsyncHikvision {
this.addWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace); this.addWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
} }
@Async("sendWorkerExecutor") @Async("workerHkExecutor")
public void editWorkerAndAuthAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { public void editWorkerAndAuthAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
this.saveWorkerAsync(workerInfo, true, true); this.saveWorkerAsync(workerInfo, true, true);
projectUfaceConfigService.updateWorkerInfo(workerInfo, workerInfo); projectUfaceConfigService.updateWorkerInfo(workerInfo, workerInfo);
} }
@Async("sendWorkerExecutor") @Async("workerHkExecutor")
public void saveWorkerAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { public void saveWorkerAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
try { try {
hikvisionCall.saveWorker(workerInfo, isSaveWorker, isSaveWorkerFace); hikvisionCall.saveWorker(workerInfo, isSaveWorker, isSaveWorkerFace);
@ -193,10 +193,10 @@ public class AsyncHikvision {
hikvisionCall.updateAllFailStatusIfNull(workerInfo.getProjectSn(), workerInfo.getId(), 1); hikvisionCall.updateAllFailStatusIfNull(workerInfo.getProjectSn(), workerInfo.getId(), 1);
} }
@Async("sendWorkerExecutor") @Async("workerHkExecutor")
public void deleteWorkerForHikvisionAsync(String uniqueId, WorkerInfo workerInfo) { public void deleteWorkerForHikvisionAsync(String uniqueId, WorkerInfo workerInfo) {
try { try {
hikvisionCall.deleteWorkerForHikvision(uniqueId, workerInfo); hikvisionCall.deleteWorkerForHikvision(uniqueId, workerInfo, true);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForWorker(workerInfo, e, "删除"); sendNoticeForWorker(workerInfo, e, "删除");
@ -489,7 +489,7 @@ public class AsyncHikvision {
} }
public void sendBatchWorkerInfo(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn) { public void sendBatchWorkerInfo(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn) {
this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, true); this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, true, true);
} }
/** /**
@ -500,9 +500,10 @@ public class AsyncHikvision {
* @param workerAndDevSnList 构建的下发的人员和设备的关系 * @param workerAndDevSnList 构建的下发的人员和设备的关系
* @param userId * @param userId
* @param checkEditWorkers * @param checkEditWorkers
* @param sendNotice
*/ */
@Async("sendBatchExecutor") @Async("workerAuthHkExecutor")
public void sendBatchWorkerInfoAsync(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn, boolean checkEditWorkers) { public void sendBatchWorkerInfoAsync(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn, boolean checkEditWorkers, boolean sendNotice) {
try { try {
if (CollUtil.isNotEmpty(workerAndDevSnList)) { if (CollUtil.isNotEmpty(workerAndDevSnList)) {
ProjectInfoExtVo project = projectService.getProjectInfoBySn(projectSn); ProjectInfoExtVo project = projectService.getProjectInfoBySn(projectSn);
@ -532,7 +533,7 @@ public class AsyncHikvision {
})); }));
ArrayList<Future> futures = new ArrayList<>(); ArrayList<Future> futures = new ArrayList<>();
for (Map.Entry<String, List<JSONObject>> entry : devSnToJoMap.entrySet()) { for (Map.Entry<String, List<JSONObject>> entry : devSnToJoMap.entrySet()) {
Future future = asyncHikvision.sendBatchWorkersForOneDevAsync(workerIdMap, devSnMap, project, devSnToIscDevSnMap, iscDevSnToMyMap, entry, projectSn); Future future = asyncHikvision.sendBatchWorkersForOneDevAsync(workerIdMap, devSnMap, project, devSnToIscDevSnMap, iscDevSnToMyMap, entry, projectSn, sendNotice);
futures.add(future); futures.add(future);
} }
for (Future future : futures) { for (Future future : futures) {
@ -600,9 +601,10 @@ public class AsyncHikvision {
* @param devSnToIscDevSnMap * @param devSnToIscDevSnMap
* @param iscDevSnToMyMap * @param iscDevSnToMyMap
* @param devSnToJoEntry * @param devSnToJoEntry
* @param sendNotice
*/ */
@Async("sendBatchExecutor") @Async("workerAuthHkExecutor")
public Future sendBatchWorkersForOneDevAsync(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, ProjectInfoExtVo project, Map<String, JSONObject> devSnToIscDevSnMap, Map<String, Map<String, JSONObject>> iscDevSnToMyMap, Map.Entry<String, List<JSONObject>> devSnToJoEntry, String projectSn) { public Future sendBatchWorkersForOneDevAsync(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, ProjectInfoExtVo project, Map<String, JSONObject> devSnToIscDevSnMap, Map<String, Map<String, JSONObject>> iscDevSnToMyMap, Map.Entry<String, List<JSONObject>> devSnToJoEntry, String projectSn, boolean sendNotice) {
try { try {
//添加权限配置人员列表设备列表这个接口只要没报错你就直接去下一步就行了 //添加权限配置人员列表设备列表这个接口只要没报错你就直接去下一步就行了
List<String> addAuthWorkerIds = devSnToJoEntry.getValue().stream().filter(jo -> jo.getBoolean(Cts.IS_ADD_AUTH)).map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList()); List<String> addAuthWorkerIds = devSnToJoEntry.getValue().stream().filter(jo -> jo.getBoolean(Cts.IS_ADD_AUTH)).map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
@ -639,7 +641,7 @@ public class AsyncHikvision {
Set<String> rtWorkerIdSet; Set<String> rtWorkerIdSet;
if (CollUtil.isNotEmpty(qaiList)) { if (CollUtil.isNotEmpty(qaiList)) {
for (int i = 0; i < qaiList.size(); i++) { for (int i = 0; i < qaiList.size(); i++) {
handlerBatchWorkersResult(workerIdMap, devSnMap, qaiList, i, devSn, projectSn, addAuthWorkerIds); handlerBatchWorkersResult(workerIdMap, devSnMap, qaiList, i, devSn, projectSn, addAuthWorkerIds,sendNotice);
} }
rtWorkerIdSet = qaiList.stream().map(o -> ((JSONObject) o).getString("personId")).collect(Collectors.toSet()); rtWorkerIdSet = qaiList.stream().map(o -> ((JSONObject) o).getString("personId")).collect(Collectors.toSet());
} else { } else {
@ -650,7 +652,7 @@ public class AsyncHikvision {
//2. 删除以后删除的权限状态是 4未配置 //2. 删除以后删除的权限状态是 4未配置
//3. 这个人的权限都没了以后你就查不到这个权限条目了 //3. 这个人的权限都没了以后你就查不到这个权限条目了
//handlerBatchWorkersResultForDeleteAuth(); //handlerBatchWorkersResultForDeleteAuth();
if (CollUtil.isNotEmpty(deleteAuthWorkerIds)) { if (sendNotice && CollUtil.isNotEmpty(deleteAuthWorkerIds)) {
for (String workerId : deleteAuthWorkerIds) { for (String workerId : deleteAuthWorkerIds) {
if (rtWorkerIdSet.contains(workerId)) { if (rtWorkerIdSet.contains(workerId)) {
//已经处理过了 //已经处理过了
@ -685,9 +687,10 @@ public class AsyncHikvision {
* @param devSn * @param devSn
* @param projectSn * @param projectSn
* @param addAuthWorkerIds * @param addAuthWorkerIds
* @param sendNotice
*/ */
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, JSONArray qaiList, int i, String devSn, String projectSn, List<String> addAuthWorkerIds) { public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, JSONArray qaiList, int i, String devSn, String projectSn, List<String> addAuthWorkerIds, boolean sendNotice) {
JSONObject jo = qaiList.getJSONObject(i); JSONObject jo = qaiList.getJSONObject(i);
String personId = jo.getString("personId"); String personId = jo.getString("personId");
//人脸状态 //人脸状态
@ -701,6 +704,7 @@ public class AsyncHikvision {
//3. 这个人的权限都没了以后你就查不到这个权限条目了 //3. 这个人的权限都没了以后你就查不到这个权限条目了
Integer faceStatus = jo.getInteger("faceStatus"); Integer faceStatus = jo.getInteger("faceStatus");
UfaceDev dev = devSnMap.get(devSn); UfaceDev dev = devSnMap.get(devSn);
if (sendNotice) {
if (addAuthWorkerIds.contains(personId)) { if (addAuthWorkerIds.contains(personId)) {
//添加权限 //添加权限
if (Objects.equals(faceStatus, 3)) { if (Objects.equals(faceStatus, 3)) {
@ -733,6 +737,7 @@ public class AsyncHikvision {
} }
} }
} }
}
@NotNull @NotNull
private JSONObject getAddOrDeleteAuthParam(Map.Entry<String, List<JSONObject>> entry, List<String> workerIds, Map<String, JSONObject> devSnToIscDevSnMap) { private JSONObject getAddOrDeleteAuthParam(Map.Entry<String, List<JSONObject>> entry, List<String> workerIds, Map<String, JSONObject> devSnToIscDevSnMap) {

View File

@ -77,7 +77,7 @@ public class AsyncWorker {
* *
* @param * @param
*/ */
@Async("sendWorkerExecutor") @Async("workerAuthHkExecutor")
public void sendBatchWokerDevAsync(Map<String, Object> map, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList) { public void sendBatchWokerDevAsync(Map<String, Object> map, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList) {
try { try {
Long userId = MapUtils.getLong(map, "userId"); Long userId = MapUtils.getLong(map, "userId");

View File

@ -887,7 +887,7 @@ public class HikvisionCall {
public void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception { public void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
String rs = HikvisionUtil.addWorker(workerInfo, project); String rs = HikvisionUtil.addWorker(workerInfo, project);
sendNoticeAndSetStatusForWorker("添加人员到海康isc", rs, workerInfo, 1, 1); sendNoticeAndSetStatusForWorker("添加人员到海康isc", rs, workerInfo, 1, 1, true);
} }
/** /**
@ -921,8 +921,8 @@ public class HikvisionCall {
} else { } else {
//海康门禁isc //海康门禁isc
List<UfaceDev> ufaceDevs = ufaceDevService.getAllDevsByProjectSn(workerInfo.getProjectSn()); List<UfaceDev> ufaceDevs = ufaceDevService.getAllDevsByProjectSn(workerInfo.getProjectSn());
projectUfaceConfigService.buildAndSendOneWorkerForHk(ufaceDevs, workerInfo, 3, workerInfo.getProjectSn()); projectUfaceConfigService.buildAndSendOneWorkerForHk(ufaceDevs, workerInfo, 3, workerInfo.getProjectSn(), false);
deleteWorkerForHikvision(iscPersonId + "", workerInfo); deleteWorkerForHikvision(iscPersonId + "", workerInfo, false);
addWorkerForHikvision(workerInfo, isSaveWorker, isSaveWorkerFace); addWorkerForHikvision(workerInfo, isSaveWorker, isSaveWorkerFace);
} }
} else { } else {
@ -932,7 +932,7 @@ public class HikvisionCall {
public void editWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception { public void editWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
String rs = HikvisionUtil.editWorker(workerInfo, project); String rs = HikvisionUtil.editWorker(workerInfo, project);
sendNoticeAndSetStatusForWorker("更新人员到海康isc", rs, workerInfo, 1, 2); sendNoticeAndSetStatusForWorker("更新人员到海康isc", rs, workerInfo, 1, 2, true);
} }
/** /**
@ -945,7 +945,7 @@ public class HikvisionCall {
String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl(); String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl();
if (StringUtils.isNotBlank(fieldAcquisitionUrl)) { if (StringUtils.isNotBlank(fieldAcquisitionUrl)) {
String rs = HikvisionUtil.addWorkerFace(workerInfo, project); String rs = HikvisionUtil.addWorkerFace(workerInfo, project);
sendNoticeAndSetStatusForWorker("添加人员照片到海康isc", rs, workerInfo, 2, 1); sendNoticeAndSetStatusForWorker("添加人员照片到海康isc", rs, workerInfo, 2, 1, true);
} }
} }
@ -1086,7 +1086,7 @@ public class HikvisionCall {
} }
} }
private void sendNoticeAndSetStatusForWorker(String title, String rs, WorkerInfo workerInfo, int type, int operate) { private void sendNoticeAndSetStatusForWorker(String title, String rs, WorkerInfo workerInfo, int type, int operate, boolean sendNotice) {
boolean callSuc = HikvisionUtil.isSuccess(rs); boolean callSuc = HikvisionUtil.isSuccess(rs);
String msg = ""; String msg = "";
String noticeType = "23"; String noticeType = "23";
@ -1151,7 +1151,7 @@ public class HikvisionCall {
updateFailStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null); updateFailStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null);
xzHikvisionCompareDataService.compareRetryFail(); xzHikvisionCompareDataService.compareRetryFail();
} }
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { if (sendNotice && ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, noticeType); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, noticeType);
} }
} }
@ -1226,11 +1226,13 @@ public class HikvisionCall {
queryWrapper.ne(XzHikvisionSync::getOperate, 3); queryWrapper.ne(XzHikvisionSync::getOperate, 3);
} }
} }
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(queryWrapper); List<XzHikvisionSync> xzHikvisionSyncs = xzHikvisionSyncMapper.selectList(queryWrapper);
if (xzHikvisionSync != null) { if (CollUtil.isNotEmpty(xzHikvisionSyncs)) {
for (XzHikvisionSync xzHikvisionSync : xzHikvisionSyncs) {
xzHikvisionSync.setIsSuccess(isSuccess ? 1 : 0); xzHikvisionSync.setIsSuccess(isSuccess ? 1 : 0);
xzHikvisionSyncMapper.updateById(xzHikvisionSync); xzHikvisionSyncMapper.updateById(xzHikvisionSync);
updateTotalStatus(projectSn, whoId, xzHikvisionSync.getBigType()); }
updateTotalStatus(projectSn, whoId, xzHikvisionSyncs.get(0).getBigType());
} }
} }
@ -1287,7 +1289,7 @@ public class HikvisionCall {
jo.put("faceId", workerFaceId); jo.put("faceId", workerFaceId);
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl()))); jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl())));
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
sendNoticeAndSetStatusForWorker("更新人员照片到海康isc", rs, workerInfo, 2, 2); sendNoticeAndSetStatusForWorker("更新人员照片到海康isc", rs, workerInfo, 2, 2, true);
} else { } else {
addWorkerFace(workerInfo, project); addWorkerFace(workerInfo, project);
} }
@ -1298,28 +1300,29 @@ public class HikvisionCall {
* *
* @param uniqueId * @param uniqueId
* @param workerInfo * @param workerInfo
* @param sendNotice
*/ */
public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo) throws Exception { public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo, boolean sendNotice) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
deleteWorkerFace(uniqueId, workerInfo, project); deleteWorkerFace(uniqueId, workerInfo, project, sendNotice);
deleteWorkerFromHttp(uniqueId, workerInfo, project); deleteWorkerFromHttp(uniqueId, workerInfo, project, sendNotice);
} }
public void deleteWorkerFromHttp(String uniqueId, WorkerInfo workerInfo, Project project) throws Exception { public void deleteWorkerFromHttp(String uniqueId, WorkerInfo workerInfo, Project project, boolean sendNotice) throws Exception {
String rs = HikvisionUtil.deleteWorkerById(uniqueId, project).toJSONString(); String rs = HikvisionUtil.deleteWorkerById(uniqueId, project).toJSONString();
sendNoticeAndSetStatusForWorker("删除人员到海康isc", rs, workerInfo, 1, 3); sendNoticeAndSetStatusForWorker("删除人员到海康isc", rs, workerInfo, 1, 3, sendNotice);
} }
public void deleteWorkerFace(String uniqueId, WorkerInfo workerInfo, Project project) throws Exception { public void deleteWorkerFace(String uniqueId, WorkerInfo workerInfo, Project project, boolean sendNotice) throws Exception {
ArrayList<String> workerFaceIds = getWorkerFaceIds(uniqueId, project); ArrayList<String> workerFaceIds = getWorkerFaceIds(uniqueId, project);
if (CollUtil.isNotEmpty(workerFaceIds)) { if (CollUtil.isNotEmpty(workerFaceIds)) {
for (String workerFaceId : workerFaceIds) { for (String workerFaceId : workerFaceIds) {
JSONObject rsJo = HikvisionUtil.deleteWorkerFace(project, workerFaceId); JSONObject rsJo = HikvisionUtil.deleteWorkerFace(project, workerFaceId);
sendNoticeAndSetStatusForWorker("删除人员图片到海康isc", rsJo.toJSONString(), workerInfo, 2, 3); sendNoticeAndSetStatusForWorker("删除人员图片到海康isc", rsJo.toJSONString(), workerInfo, 2, 3, sendNotice);
} }
} }
} }

View File

@ -128,10 +128,10 @@ public class AsyncConfig {
public ThreadPoolTaskExecutor sendWorkerExecutor() { public ThreadPoolTaskExecutor sendWorkerExecutor() {
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor(); MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
/** 核心线程数(默认线程数) */ /** 核心线程数(默认线程数) */
executor.setCorePoolSize(corePoolSize * 10); executor.setCorePoolSize(corePoolSize);
/** 最大线程数 */ /** 最大线程数 */
executor.setMaxPoolSize(maxPoolSize * 10); executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity * 10); executor.setQueueCapacity(queueCapacity);
/** 允许线程空闲时间(单位:默认为秒) */ /** 允许线程空闲时间(单位:默认为秒) */
executor.setKeepAliveSeconds(60); executor.setKeepAliveSeconds(60);
/** 线程池名前缀 */ /** 线程池名前缀 */
@ -515,9 +515,9 @@ public class AsyncConfig {
public ThreadPoolTaskExecutor sendBatchExecutor() { public ThreadPoolTaskExecutor sendBatchExecutor() {
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor(); MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
/** 核心线程数(默认线程数) */ /** 核心线程数(默认线程数) */
executor.setCorePoolSize(maxPoolSize * 10); executor.setCorePoolSize(maxPoolSize * 5);
/** 最大线程数 */ /** 最大线程数 */
executor.setMaxPoolSize(maxPoolSize * 10); executor.setMaxPoolSize(maxPoolSize * 5);
executor.setQueueCapacity(queueCapacity * 10); executor.setQueueCapacity(queueCapacity * 10);
/** 允许线程空闲时间(单位:默认为秒) */ /** 允许线程空闲时间(单位:默认为秒) */
executor.setKeepAliveSeconds(60); executor.setKeepAliveSeconds(60);
@ -530,4 +530,42 @@ public class AsyncConfig {
return executor; return executor;
} }
@Bean("workerHkExecutor")
public ThreadPoolTaskExecutor workerHkExecutor() {
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
/** 核心线程数(默认线程数) */
executor.setCorePoolSize(maxPoolSize);
/** 最大线程数 */
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
/** 允许线程空闲时间(单位:默认为秒) */
executor.setKeepAliveSeconds(60);
/** 线程池名前缀 */
executor.setThreadNamePrefix("workerHkExecutor-");
// 线程池对拒绝任务的处理策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
// 初始化
executor.initialize();
return executor;
}
@Bean("workerAuthHkExecutor")
public ThreadPoolTaskExecutor workerAuthHkExecutor() {
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
/** 核心线程数(默认线程数) */
executor.setCorePoolSize(maxPoolSize);
/** 最大线程数 */
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity * 10);
/** 允许线程空闲时间(单位:默认为秒) */
executor.setKeepAliveSeconds(60);
/** 线程池名前缀 */
executor.setThreadNamePrefix("workerAuthHkExecutor-");
// 线程池对拒绝任务的处理策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
// 初始化
executor.initialize();
return executor;
}
} }

View File

@ -37,7 +37,7 @@ public interface IProjectUfaceConfigService extends IService<ProjectUfaceConfig>
void buildAndSendBatchWorkerForHk(ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList, List<WorkerInfo> workerList, Long userId); void buildAndSendBatchWorkerForHk(ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> allDevList, List<WorkerInfo> workerList, Long userId);
void buildAndSendOneWorkerForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int model, String projectSn); void buildAndSendOneWorkerForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int model, String projectSn, boolean sendNotice);
void buildAndSendOneWorkerAndDevForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn); void buildAndSendOneWorkerAndDevForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn);

View File

@ -211,7 +211,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
//海康门禁isc //海康门禁isc
List<UfaceDev> ufaceDevs = ufaceDevService.getAllDevsByProjectSn(ufaceConfig.getProjectSn()); List<UfaceDev> ufaceDevs = ufaceDevService.getAllDevsByProjectSn(ufaceConfig.getProjectSn());
this.deleteHkSyncRecordAndResetStatusForDev(workerInfo, ufaceDevs); this.deleteHkSyncRecordAndResetStatusForDev(workerInfo, ufaceDevs);
this.buildAndSendOneWorkerForHk(ufaceDevs, workerInfo, 3, ufaceConfig.getProjectSn()); this.buildAndSendOneWorkerForHk(ufaceDevs, workerInfo, 3, ufaceConfig.getProjectSn(), true);
} }
} }
} }
@ -226,7 +226,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
if (ufaceConfig != null && ufaceConfig.getIssueDev() == 1) { if (ufaceConfig != null && ufaceConfig.getIssueDev() == 1) {
if (ufaceConfig.getSupplierType() == 9) { if (ufaceConfig.getSupplierType() == 9) {
List<UfaceDev> list = ufaceDevService.getAllDevsByProjectSn(workerInfo.getProjectSn()); List<UfaceDev> list = ufaceDevService.getAllDevsByProjectSn(workerInfo.getProjectSn());
this.buildAndSendOneWorkerForHk(list, workerInfo, 2, workerInfo.getProjectSn()); this.buildAndSendOneWorkerForHk(list, workerInfo, 2, workerInfo.getProjectSn(), true);
workerInfoService.updateWorkerHkStatus(workerInfo); workerInfoService.updateWorkerHkStatus(workerInfo);
} else { } else {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
@ -474,7 +474,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} else if (ufaceConfig.getSupplierType() == 9) { } else if (ufaceConfig.getSupplierType() == 9) {
//海康门禁isc //海康门禁isc
List<UfaceDev> list = ufaceDevService.getAllDevsByProjectSn(ufaceConfig.getProjectSn()); List<UfaceDev> list = ufaceDevService.getAllDevsByProjectSn(ufaceConfig.getProjectSn());
this.buildAndSendOneWorkerForHk(list, workerInfo, 1, ufaceConfig.getProjectSn()); this.buildAndSendOneWorkerForHk(list, workerInfo, 1, ufaceConfig.getProjectSn(), true);
} }
} }
@ -530,7 +530,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} }
} }
asyncHikvision.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectUfaceConfig.getProjectSn(), true); asyncHikvision.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectUfaceConfig.getProjectSn(), true, true);
} }
/** /**
@ -539,9 +539,10 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
* @param allDevList * @param allDevList
* @param workerInfo * @param workerInfo
* @param model 1只下发有权限的2下发有的权限和删除没有的权限3删除所有权限 * @param model 1只下发有权限的2下发有的权限和删除没有的权限3删除所有权限
* @param sendNotice
*/ */
@Override @Override
public void buildAndSendOneWorkerForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int model, String projectSn) { public void buildAndSendOneWorkerForHk(List<UfaceDev> allDevList, WorkerInfo workerInfo, int model, String projectSn, boolean sendNotice) {
List<JSONObject> workerAndDevSnList = new ArrayList<>(); List<JSONObject> workerAndDevSnList = new ArrayList<>();
if (model == 2 || model == 1) { if (model == 2 || model == 1) {
Pair<String, String> sendAndDeleteDevSnsPair = getSendAndDeleteDevSns(workerInfo); Pair<String, String> sendAndDeleteDevSnsPair = getSendAndDeleteDevSns(workerInfo);
@ -579,7 +580,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
log.info("未找到设备,无需下发,人员:{}", workerInfo.getWorkerName()); log.info("未找到设备,无需下发,人员:{}", workerInfo.getWorkerName());
return; return;
} }
asyncHikvision.sendBatchWorkerInfoAsync(allDevList, Collections.singletonList(workerInfo), workerAndDevSnList, null, projectSn, false); asyncHikvision.sendBatchWorkerInfoAsync(allDevList, Collections.singletonList(workerInfo), workerAndDevSnList, null, projectSn, false, sendNotice);
} }
/** /**

View File

@ -172,9 +172,9 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
} }
switch (operate) { switch (operate) {
case 1: case 1:
return "新增"; return "保存";
case 2: case 2:
return "修改"; return "保存";
case 3: case 3:
return "删除"; return "删除";
} }

View File

@ -98,3 +98,5 @@ magic-api.web=/xmgl/magic/web
magic-api.resource.location=C:/jxj/prod/backEnd/itbgpImage/data/magic-api magic-api.resource.location=C:/jxj/prod/backEnd/itbgpImage/data/magic-api
#上传的图片的url前缀 #上传的图片的url前缀
upload.image.url.prefix=http://192.168.34.221:11111/image/ upload.image.url.prefix=http://192.168.34.221:11111/image/
#内网的服务图片的url前缀
xingzong.inner.upload.image.url.prefix=http://10.168.2.104:9809/image/