海康状态修改

This commit is contained in:
guoshengxiong 2024-06-11 14:47:06 +08:00
parent aadbcb74f3
commit 4281929c0a
7 changed files with 112 additions and 78 deletions

View File

@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl; import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.video.mapper.ProjectVideoHkVqdMapper; import com.zhgd.xmgl.modules.video.mapper.ProjectVideoHkVqdMapper;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper; import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
@ -34,7 +35,6 @@ import org.springframework.stereotype.Component;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Objects;
/** /**
* 海康 * 海康
@ -50,6 +50,7 @@ public class AsyncHikvision {
@Lazy @Lazy
public public
WorkerInfoServiceImpl workerInfoService; WorkerInfoServiceImpl workerInfoService;
public IProjectUfaceConfigService projectUfaceConfigService;
@Autowired @Autowired
@Lazy @Lazy
HikvisionCall hikvisionCall; HikvisionCall hikvisionCall;
@ -104,7 +105,6 @@ public class AsyncHikvision {
return ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME); return ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME);
} }
/** /**
* 添加劳务人员-海康 * 添加劳务人员-海康
* *
@ -122,6 +122,10 @@ public class AsyncHikvision {
} }
} }
public void addWorkerForHikvision(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
this.addWorkerForHikvisionAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
}
@Async("hikvisionExecutor") @Async("hikvisionExecutor")
public void editWorkerForHikvisionAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { public void editWorkerForHikvisionAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
try { try {
@ -132,6 +136,10 @@ public class AsyncHikvision {
} }
} }
public void editWorkerForHikvision(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
this.editWorkerForHikvisionAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
}
private void sendNoticeForWorker(WorkerInfo workerInfo, Exception e, String action) { private void sendNoticeForWorker(WorkerInfo workerInfo, Exception e, String action) {
String title = action + "人员到海康isc失败"; String title = action + "人员到海康isc失败";
String type = "23"; String type = "23";
@ -159,8 +167,12 @@ public class AsyncHikvision {
} }
} }
public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo) {
this.deleteWorkerForHikvisionAsync(uniqueId, workerInfo);
}
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void addCarInfoForHikvisionAsyc(CarInfo carInfo) { public void addCarInfoForHikvisionAsync(CarInfo carInfo) {
try { try {
hikvisionCall.saveCarInfoFromHikvision(carInfo); hikvisionCall.saveCarInfoFromHikvision(carInfo);
} catch (Exception e) { } catch (Exception e) {
@ -169,13 +181,8 @@ public class AsyncHikvision {
} }
} }
@Async("carInfoExecutor") public void addCarInfoForHikvision(CarInfo carInfo) {
public void handleAlarmCarForHikvision(CarInfo carInfo) { this.addCarInfoForHikvisionAsync(carInfo);
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
hikvisionCall.handleAlarmCar(project, carInfo);
} }
private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) { private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) {
@ -192,7 +199,7 @@ public class AsyncHikvision {
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, type); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, type);
} }
hikvisionCall.updateAllFailStatusIfNull(carInfo.getProjectSn(), carInfo.getId(), 4); hikvisionCall.updateAllFailStatusIfNull(carInfo.getProjectSn(), carInfo.getId(), 2);
} }
@Async("carInfoExecutor") @Async("carInfoExecutor")
@ -205,6 +212,10 @@ public class AsyncHikvision {
} }
} }
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
this.editCarInfoForHikvisionAsync(carInfo, old);
}
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void deleteCarInfoAndSetBlackForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) { public void deleteCarInfoAndSetBlackForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) {
try { try {
@ -215,6 +226,10 @@ public class AsyncHikvision {
} }
} }
public void deleteCarInfoAndSetBlackForHikvision(CarInfo carInfo, boolean isSetBlack) {
this.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, isSetBlack);
}
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) {
try { try {
@ -331,24 +346,12 @@ public class AsyncHikvision {
} }
} }
public void addPersonAuth(WorkerInfo workerInfo, String devSn) {
if (StringUtils.isBlank(devSn)) {
return;
}
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
String[] devSnArr = StringUtils.split(devSn, ",");
for (String ds : devSnArr) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
}
asyncHikvision.addPersonAuthAsync(workerInfo, devSn);
}
@Async("hikvisionExecutor") @Async("hikvisionExecutor")
public void addPersonAuthAsync(WorkerInfo workerInfo, String devSn) { public void addPersonAuthAsync(WorkerInfo workerInfo, String devSns) {
try { try {
StringBuilder sucSb = new StringBuilder(); StringBuilder sucSb = new StringBuilder();
StringBuilder failSb = new StringBuilder(); StringBuilder failSb = new StringBuilder();
String[] devSnArr = StringUtils.split(devSn, ","); String[] devSnArr = StringUtils.split(devSns, ",");
try { try {
for (String ds : devSnArr) { for (String ds : devSnArr) {
hikvisionCall.updatePersonAuth(workerInfo, ds, sucSb, failSb, 0); hikvisionCall.updatePersonAuth(workerInfo, ds, sucSb, failSb, 0);
@ -359,7 +362,7 @@ public class AsyncHikvision {
} else { } else {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), e.getMessage(), "人员下发设备提醒", "1"); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), e.getMessage(), "人员下发设备提醒", "1");
} }
hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId()));
return; return;
} }
@ -379,28 +382,14 @@ public class AsyncHikvision {
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type);
} }
hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId()));
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
} }
} }
/** public void addPersonAuth(WorkerInfo workerInfo, String devSns) {
* 删除 this.addPersonAuthAsync(workerInfo, devSns);
*
* @param workerInfo
* @param devSns
*/
public void deletePersonAuth(WorkerInfo workerInfo, String devSns) {
if (StringUtils.isBlank(devSns)) {
return;
}
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
String[] devSnArr = StringUtils.split(devSns, ",");
for (String ds : devSnArr) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(3).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
}
asyncHikvision.deletePersonAuthAsync(workerInfo, devSns);
} }
@Async("hikvisionExecutor") @Async("hikvisionExecutor")
@ -422,7 +411,7 @@ public class AsyncHikvision {
} else { } else {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), e.getMessage(), "人员下发设备提醒", "1"); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), e.getMessage(), "人员下发设备提醒", "1");
} }
hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId()));
return; return;
} }
@ -442,12 +431,16 @@ public class AsyncHikvision {
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type);
} }
hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId()));
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
} }
} }
public void deletePersonAuth(WorkerInfo workerInfo, String devSn) {
this.deletePersonAuthAsync(workerInfo, devSn);
}
@Async("getRecordForHikvisionTask") @Async("getRecordForHikvisionTask")
public void getCrossRecordsAsync(HashMap<String, Object> paramMap) { public void getCrossRecordsAsync(HashMap<String, Object> paramMap) {
hikvisionCall.getCrossRecords(paramMap); hikvisionCall.getCrossRecords(paramMap);

View File

@ -375,7 +375,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
} else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) { } else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
} }
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo); asyncHikvision.addCarInfoForHikvisionAsync(carInfo);
} }
} }

View File

@ -31,4 +31,8 @@ public interface IProjectUfaceConfigService extends IService<ProjectUfaceConfig>
void sendBatchWorkerInfo(WorkerInfo workerInfo, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> list); void sendBatchWorkerInfo(WorkerInfo workerInfo, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> list);
boolean isHikvisionConfig(String projectSn); boolean isHikvisionConfig(String projectSn);
void addPersonAuth(WorkerInfo workerInfo, String devSn);
void deletePersonAuth(WorkerInfo workerInfo, String devSns);
} }

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.modules.car.entity.ProjectCarCameraConfig;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig; import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
@ -18,6 +17,8 @@ import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevToGroupMapper; import com.zhgd.xmgl.modules.worker.mapper.UfaceDevToGroupMapper;
import com.zhgd.xmgl.modules.worker.mapper.UserDevAuthorityMapper; import com.zhgd.xmgl.modules.worker.mapper.UserDevAuthorityMapper;
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
import com.zhgd.xmgl.util.*; import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -30,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.zhgd.xmgl.async.AsyncHikvision.getSyncTimeWithInitIfAbsent;
/** /**
* @Description: 项目对应的人脸设备配置 * @Description: 项目对应的人脸设备配置
* @author pds * @author pds
@ -40,6 +43,8 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfigMapper, ProjectUfaceConfig> implements IProjectUfaceConfigService { public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfigMapper, ProjectUfaceConfig> implements IProjectUfaceConfigService {
@Autowired
XzHikvisionSyncMapper xzHikvisionSyncMapper;
@Lazy @Lazy
@Autowired @Autowired
private WorkerInfoServiceImpl workerInfoService; private WorkerInfoServiceImpl workerInfoService;
@ -53,7 +58,6 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
private UserDevAuthorityMapper userDevAuthorityMapper; private UserDevAuthorityMapper userDevAuthorityMapper;
@Autowired @Autowired
private AsyncHikvision asyncHikvision; private AsyncHikvision asyncHikvision;
@Value("${basePath}") @Value("${basePath}")
private String basePath; private String basePath;
@Value("${serverUrl}") @Value("${serverUrl}")
@ -237,7 +241,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} else if (tempProjectUfaceConfig.getSupplierType() == 9) { } else if (tempProjectUfaceConfig.getSupplierType() == 9) {
//海康门禁isc //海康门禁isc
String notDevSns = StrUtil.join(",", list.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); String notDevSns = StrUtil.join(",", list.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns); asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, notDevSns);
} }
} }
} }
@ -257,7 +261,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
.eq(UfaceDev::getProjectSn, workerInfo.getProjectSn())); .eq(UfaceDev::getProjectSn, workerInfo.getProjectSn()));
if (CollUtil.isNotEmpty(allList)) { if (CollUtil.isNotEmpty(allList)) {
String devSns = StrUtil.join(",", allList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); String devSns = StrUtil.join(",", allList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, devSns); asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, devSns);
} }
} else { } else {
//海康门禁isc //海康门禁isc
@ -276,11 +280,11 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
); );
if (CollUtil.isNotEmpty(notExistList)) { if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns); asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, notDevSns);
} }
if (CollUtil.isNotEmpty(existList)) { if (CollUtil.isNotEmpty(existList)) {
devSns = StrUtil.join(",", existList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); devSns = StrUtil.join(",", existList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.addPersonAuth(workerInfo, devSns); this.addPersonAuth(workerInfo, devSns);
} }
} else { } else {
//只删除 //只删除
@ -288,7 +292,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
.eq(UfaceDev::getProjectSn, workerInfo.getProjectSn())); .eq(UfaceDev::getProjectSn, workerInfo.getProjectSn()));
if (CollUtil.isNotEmpty(notExistList)) { if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns); asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, notDevSns);
} }
} }
} else if (Objects.equals(workerInfo.getDevType(), 2)) { } else if (Objects.equals(workerInfo.getDevType(), 2)) {
@ -299,11 +303,11 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
List<UfaceDev> notExistList = ufaceDevMapper.getUfaceDevListForIscNotExist(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn()); List<UfaceDev> notExistList = ufaceDevMapper.getUfaceDevListForIscNotExist(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn());
if (CollUtil.isNotEmpty(notExistList)) { if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns); asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, notDevSns);
} }
if (CollUtil.isNotEmpty(listForIsc)) { if (CollUtil.isNotEmpty(listForIsc)) {
devSns = StrUtil.join(",", listForIsc.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); devSns = StrUtil.join(",", listForIsc.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.addPersonAuth(workerInfo, devSns); this.addPersonAuth(workerInfo, devSns);
} }
} else { } else {
//只删除 //只删除
@ -312,7 +316,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
); );
if (CollUtil.isNotEmpty(notExistList)) { if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns); asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, notDevSns);
} }
} }
} }
@ -505,8 +509,40 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
log.info("安全评分红码不下发权限,名称:{}", workerInfo.getWorkerName()); log.info("安全评分红码不下发权限,名称:{}", workerInfo.getWorkerName());
return; return;
} }
asyncHikvision.addPersonAuth(workerInfo, devSns); this.addPersonAuth(workerInfo, devSns);
} }
} }
@Override
public void addPersonAuth(WorkerInfo workerInfo, String devSn) {
if (StringUtils.isBlank(devSn)) {
return;
}
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
String[] devSnArr = StringUtils.split(devSn, ",");
for (String ds : devSnArr) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
}
asyncHikvision.addPersonAuthAsync(workerInfo, devSn);
}
/**
* 删除
*
* @param workerInfo
* @param devSns
*/
@Override
public void deletePersonAuth(WorkerInfo workerInfo, String devSns) {
if (StringUtils.isBlank(devSns)) {
return;
}
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
String[] devSnArr = StringUtils.split(devSns, ",");
for (String ds : devSnArr) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(3).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
}
asyncHikvision.deletePersonAuthAsync(workerInfo, devSns);
}
} }

View File

@ -366,7 +366,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
if (carInfo.getIsBlack() == 1) { if (carInfo.getIsBlack() == 1) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true); asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else { } else {
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo); asyncHikvision.addCarInfoForHikvisionAsync(carInfo);
} }
} else { } else {
//更新 //更新

View File

@ -8,11 +8,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.call.HikvisionCall; import com.zhgd.xmgl.call.HikvisionCall;
import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper; import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
@ -43,6 +45,11 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
CarInfoMapper carInfoMapper; CarInfoMapper carInfoMapper;
@Lazy @Lazy
@Autowired @Autowired
AsyncHikvision asyncHikvision;
@Autowired
IProjectUfaceConfigService projectUfaceConfigService;
@Lazy
@Autowired
private HikvisionCall hikvisionCall; private HikvisionCall hikvisionCall;
@Autowired @Autowired
private XzHikvisionSyncMapper xzHikvisionSyncMapper; private XzHikvisionSyncMapper xzHikvisionSyncMapper;
@ -187,11 +194,11 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
return; return;
} }
if (xzHikvisionSync.getOperate() == 1) { if (xzHikvisionSync.getOperate() == 1) {
hikvisionCall.saveCarInfoFromHikvision(carInfo); asyncHikvision.addCarInfoForHikvision(carInfo);
} else if (xzHikvisionSync.getOperate() == 2) { } else if (xzHikvisionSync.getOperate() == 2) {
hikvisionCall.editCarInfoForHikvision(carInfo, carInfo); asyncHikvision.editCarInfoForHikvision(carInfo, carInfo);
} else if (xzHikvisionSync.getOperate() == 3) { } else if (xzHikvisionSync.getOperate() == 3) {
hikvisionCall.deleteCarInfoForHikvision(carInfo, false); asyncHikvision.deleteCarInfoAndSetBlackForHikvision(carInfo, false);
} }
} else { } else {
//人员 //人员
@ -200,41 +207,36 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
.eq(Project::getProjectSn, workerInfo.getProjectSn()) .eq(Project::getProjectSn, workerInfo.getProjectSn())
.eq(Project::getSyncHikvision, 1) .eq(Project::getSyncHikvision, 1)
); );
if (workerInfo == null) {
return;
}
if (p == null) { if (p == null) {
return; return;
} }
if (xzHikvisionSync.getType() == 1) { if (xzHikvisionSync.getType() == 1) {
if (xzHikvisionSync.getOperate() == 1) { if (xzHikvisionSync.getOperate() == 1) {
hikvisionCall.addWorkerFromHttp(workerInfo, p); asyncHikvision.addWorkerForHikvision(workerInfo, true, true);
} else if (xzHikvisionSync.getOperate() == 2) { } else if (xzHikvisionSync.getOperate() == 2) {
hikvisionCall.editWorkerFromHttp(workerInfo, p); asyncHikvision.editWorkerForHikvision(workerInfo, true, true);
} else if (xzHikvisionSync.getOperate() == 3) { } else if (xzHikvisionSync.getOperate() == 3) {
hikvisionCall.deleteWorkerFromHttp(String.valueOf(workerInfo.getId()), workerInfo, p); asyncHikvision.deleteWorkerForHikvision(String.valueOf(workerInfo.getId()), workerInfo);
} }
} else if (xzHikvisionSync.getType() == 2) { } else if (xzHikvisionSync.getType() == 2) {
if (xzHikvisionSync.getOperate() == 1) { if (xzHikvisionSync.getOperate() == 1) {
hikvisionCall.addWorkerFace(workerInfo, p); asyncHikvision.addWorkerForHikvision(workerInfo, false, true);
} else if (xzHikvisionSync.getOperate() == 2) { } else if (xzHikvisionSync.getOperate() == 2) {
hikvisionCall.editWorkerFace(workerInfo, p); asyncHikvision.editWorkerForHikvision(workerInfo, false, true);
} else if (xzHikvisionSync.getOperate() == 3) { } else if (xzHikvisionSync.getOperate() == 3) {
hikvisionCall.deleteWorkerFace(String.valueOf(workerInfo.getId()), workerInfo, p); asyncHikvision.deleteWorkerForHikvision(String.valueOf(workerInfo.getId()), workerInfo);
} }
} else if (xzHikvisionSync.getType() == 3) { } else if (xzHikvisionSync.getType() == 3) {
StringBuilder sucSb = new StringBuilder();
StringBuilder failSb = new StringBuilder();
if (xzHikvisionSync.getOperate() == 1) { if (xzHikvisionSync.getOperate() == 1) {
hikvisionCall.updatePersonAuth(workerInfo, xzHikvisionSync.getDeviceSn(), sucSb, failSb, 0); asyncHikvision.addPersonAuth(workerInfo, xzHikvisionSync.getDeviceSn());
} else if (xzHikvisionSync.getOperate() == 3) { } else if (xzHikvisionSync.getOperate() == 3) {
hikvisionCall.updatePersonAuth(workerInfo, xzHikvisionSync.getDeviceSn(), sucSb, failSb, 2); asyncHikvision.deletePersonAuth(workerInfo, xzHikvisionSync.getDeviceSn());
} }
} }
} }
XzHikvisionSync xzHikvisionSync1 = baseMapper.selectById(id); XzHikvisionSync xzHikvisionSync1 = baseMapper.selectById(id);
if (xzHikvisionSync1.getIsSuccess() == 0) { if (!Objects.equals(xzHikvisionSync1.getIsSuccess(), 1)) {
throw new OpenAlertException("重试失败"); throw new OpenAlertException("重试失败");
} }

View File

@ -304,10 +304,9 @@ public class HikvisionUtil {
return jo.getString("parkIndexCode"); return jo.getString("parkIndexCode");
} }
} }
//没有一样名字的就取第一个停车场 throw new OpenPromptException("未查询到对应项目的停车场信息");
return parkList.getJSONObject(0).getString("parkIndexCode");
} else { } else {
throw new OpenPromptException("未查询到停车场信息"); throw new OpenPromptException("停车场为空");
} }
} }