代码规范
This commit is contained in:
parent
b8a3fd258a
commit
2f855d3d1e
@ -46,12 +46,13 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 海康
|
||||
* 异步海康
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class AsyncHikvision {
|
||||
public static final String XZ_HIKVISION_SYNC_TIME = "xzHikvisionSyncTime";
|
||||
public static final int MAX_PAGE_SIZE = 1000;
|
||||
@Lazy
|
||||
@Autowired
|
||||
public CarInfoServiceImpl carInfoService;
|
||||
@ -97,6 +98,11 @@ public class AsyncHikvision {
|
||||
@Autowired
|
||||
private RedisRepository redisRepository;
|
||||
|
||||
/**
|
||||
* 获取下发的时间,如果不存在就新建
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static Date getSyncTimeWithInitIfAbsent() {
|
||||
Date now = ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME);
|
||||
if (now == null) {
|
||||
@ -107,6 +113,8 @@ public class AsyncHikvision {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下发的时间,如果不存在就新建,并删除同步表中对应的数据
|
||||
*
|
||||
* @param bigType 1人员2车辆
|
||||
* @param tableId
|
||||
* @return
|
||||
@ -125,10 +133,23 @@ public class AsyncHikvision {
|
||||
return now;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取同步时间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static Date getSyncTime() {
|
||||
return ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加人员和权限
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
* @return
|
||||
*/
|
||||
@Async("workerHkExecutor")
|
||||
public Future addWorkerAndAuthAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.addWorkerAsync(workerInfo, true, true);
|
||||
@ -153,20 +174,48 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
public void addWorker(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.addWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑人员和权限
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
@Async("workerHkExecutor")
|
||||
public void editWorkerAndAuthAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.saveWorkerAsync(workerInfo, true, true);
|
||||
projectUfaceConfigService.updateWorkerInfo(workerInfo, workerInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
public void saveWorker(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.saveWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步保存人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
@Async("workerHkExecutor")
|
||||
public void saveWorkerAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
try {
|
||||
@ -177,10 +226,24 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
public void editWorker(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.saveWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为人员发送通知和设置下发状态
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param e
|
||||
* @param action
|
||||
*/
|
||||
private void sendNoticeForWorker(WorkerInfo workerInfo, Exception e, String action) {
|
||||
String title = action + "人员到海康isc失败";
|
||||
String type = "23";
|
||||
@ -198,6 +261,12 @@ public class AsyncHikvision {
|
||||
hikvisionCall.updateAllFailStatusIfNull(workerInfo.getProjectSn(), workerInfo.getId(), 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步删除人员
|
||||
*
|
||||
* @param uniqueId
|
||||
* @param workerInfo
|
||||
*/
|
||||
@Async("workerHkExecutor")
|
||||
public void deleteWorkerForHikvisionAsync(String uniqueId, WorkerInfo workerInfo) {
|
||||
try {
|
||||
@ -208,10 +277,21 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除人员
|
||||
*
|
||||
* @param uniqueId
|
||||
* @param workerInfo
|
||||
*/
|
||||
public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo) {
|
||||
this.deleteWorkerForHikvisionAsync(uniqueId, workerInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加车辆
|
||||
*
|
||||
* @param carInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void addCarInfoForHikvisionAsync(CarInfo carInfo) {
|
||||
try {
|
||||
@ -222,10 +302,22 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加车辆
|
||||
*
|
||||
* @param carInfo
|
||||
*/
|
||||
public void addCarInfoForHikvision(CarInfo carInfo) {
|
||||
this.addCarInfoForHikvisionAsync(carInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为车辆发送通知和设置下发状态
|
||||
*
|
||||
* @param carInfo
|
||||
* @param e
|
||||
* @param action
|
||||
*/
|
||||
private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) {
|
||||
String title = action + "车辆到海康isc失败";
|
||||
String type = "24";
|
||||
@ -243,6 +335,12 @@ public class AsyncHikvision {
|
||||
hikvisionCall.updateAllFailStatusIfNull(carInfo.getProjectSn(), carInfo.getId(), 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步编辑车辆
|
||||
*
|
||||
* @param carInfo
|
||||
* @param old
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void editCarInfoForHikvisionAsync(CarInfo carInfo, CarInfo old) {
|
||||
try {
|
||||
@ -253,10 +351,22 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑车辆
|
||||
*
|
||||
* @param carInfo
|
||||
* @param old
|
||||
*/
|
||||
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
|
||||
this.editCarInfoForHikvisionAsync(carInfo, old);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步删除车辆并设置车辆黑名单状态
|
||||
*
|
||||
* @param carInfo
|
||||
* @param isSetBlack
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void deleteCarInfoAndSetBlackForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) {
|
||||
try {
|
||||
@ -267,10 +377,21 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除车辆并设置车辆黑名单状态
|
||||
*
|
||||
* @param carInfo
|
||||
* @param isSetBlack
|
||||
*/
|
||||
public void deleteCarInfoAndSetBlackForHikvision(CarInfo carInfo, boolean isSetBlack) {
|
||||
this.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, isSetBlack);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加企业
|
||||
*
|
||||
* @param enterpriseInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) {
|
||||
try {
|
||||
@ -281,6 +402,13 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为组织发送通知和设置下发状态
|
||||
*
|
||||
* @param name
|
||||
* @param e
|
||||
* @param action
|
||||
*/
|
||||
private void sendNoticeForOrg(String name, Exception e, String action) {
|
||||
String title = action + "组织到海康isc失败";
|
||||
String type = "23";
|
||||
@ -298,6 +426,11 @@ public class AsyncHikvision {
|
||||
xzHikvisionCompareDataService.compareRetryFail();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑企业
|
||||
*
|
||||
* @param enterpriseInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) {
|
||||
try {
|
||||
@ -308,6 +441,12 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除企业
|
||||
*
|
||||
* @param projectSn
|
||||
* @param enterpriseName
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void deleteEnterpriseInfoForHikvision(String projectSn, String enterpriseName) {
|
||||
try {
|
||||
@ -318,6 +457,11 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步编辑班组
|
||||
*
|
||||
* @param teamInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void editTeamInfoForHikvision(TeamInfo teamInfo) {
|
||||
try {
|
||||
@ -328,6 +472,12 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步删除班组
|
||||
*
|
||||
* @param id
|
||||
* @param teamInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void deleteTeamInfoForHikvision(String id, TeamInfo teamInfo) {
|
||||
try {
|
||||
@ -338,6 +488,11 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加班组
|
||||
*
|
||||
* @param teamInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void addTeamInfoForHikvision(TeamInfo teamInfo) {
|
||||
try {
|
||||
@ -348,6 +503,11 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步编辑部门
|
||||
*
|
||||
* @param teamInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void editDepartmentInfoForHikvision(DepartmentInfo teamInfo) {
|
||||
try {
|
||||
@ -358,6 +518,11 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加部门
|
||||
*
|
||||
* @param teamInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void addDepartmentInfoForHikvision(DepartmentInfo teamInfo) {
|
||||
try {
|
||||
@ -368,6 +533,12 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步删除部门
|
||||
*
|
||||
* @param uniqueId
|
||||
* @param departmentInfo
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void deleteDepartmentInfoForHikvision(String uniqueId, DepartmentInfo departmentInfo) {
|
||||
try {
|
||||
@ -378,6 +549,11 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步编辑项目
|
||||
*
|
||||
* @param project
|
||||
*/
|
||||
@Async("carInfoExecutor")
|
||||
public void editProjectForHikvision(Project project) {
|
||||
try {
|
||||
@ -387,6 +563,12 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加人员权限
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param devSns
|
||||
*/
|
||||
@Async("hikvisionExecutor")
|
||||
public void addPersonAuthAsync(WorkerInfo workerInfo, String devSns) {
|
||||
try {
|
||||
@ -430,10 +612,12 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
public void addPersonAuth(WorkerInfo workerInfo, String devSns) {
|
||||
this.addPersonAuthAsync(workerInfo, devSns);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步删除人员权限
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param devSns
|
||||
*/
|
||||
@Async("hikvisionExecutor")
|
||||
public void deletePersonAuthAsync(WorkerInfo workerInfo, String devSns) {
|
||||
try {
|
||||
@ -479,15 +663,21 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
public void deletePersonAuth(WorkerInfo workerInfo, String devSn) {
|
||||
this.deletePersonAuthAsync(workerInfo, devSn);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步获取车辆通行数据
|
||||
*
|
||||
* @param paramMap
|
||||
*/
|
||||
@Async("getRecordForHikvisionTask")
|
||||
public void getCrossRecordsAsync(HashMap<String, Object> paramMap) {
|
||||
hikvisionCall.getCrossRecords(paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步获取人员通行数据
|
||||
*
|
||||
* @param paramMap
|
||||
*/
|
||||
@Async("getRecordForHikvisionTask")
|
||||
public void getDoorEventsAsync(HashMap<String, Object> paramMap) {
|
||||
hikvisionCall.getDoorEvents(paramMap);
|
||||
@ -527,7 +717,7 @@ public class AsyncHikvision {
|
||||
Map<String, UfaceDev> devSnMap = allDevList.stream().collect(Collectors.toMap(UfaceDev::getDevSn, Function.identity()));
|
||||
Map<String, List<JSONObject>> devSnToJoMap = workerAndDevSnList.stream().collect(Collectors.groupingBy(jsonObject -> jsonObject.getString("devSn")));
|
||||
JSONObject gdvJo = HikvisionUtil.getDoorsV2(project, HikvisionUtil.addPageParamIfAbsent(new JSONObject()));
|
||||
JSONObject gdvDataJo = HikvisionUtil.getJSONObjectData(gdvJo);
|
||||
JSONObject gdvDataJo = HikvisionUtil.getJsonObjectData(gdvJo);
|
||||
//门禁设备编号:parentIndexCode,门禁点编号:indexCode,门禁设备资源通道号:channelNo
|
||||
Map<String, JSONObject> devSnToIscDevSnMap = gdvDataJo.getJSONArray("list").stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("indexCode"), o -> (JSONObject) o));
|
||||
futures = new ArrayList<>();
|
||||
@ -596,6 +786,15 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取需要编辑的人员
|
||||
*
|
||||
* @param workerList
|
||||
* @param project
|
||||
* @param workerIdMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private ArrayList<WorkerInfo> getNeedEditWorkers(List<WorkerInfo> workerList, ProjectInfoExtVo project, Map<String, WorkerInfo> workerIdMap) throws Exception {
|
||||
ArrayList<WorkerInfo> needEditWorkers = new ArrayList<>();
|
||||
JSONArray plListJa = getPersonListByWorkerList(workerList, project);
|
||||
@ -618,15 +817,23 @@ public class AsyncHikvision {
|
||||
return needEditWorkers;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据人员列表获取isc人员列表
|
||||
*
|
||||
* @param workerList
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private JSONArray getPersonListByWorkerList(List<WorkerInfo> workerList, ProjectInfoExtVo project) throws Exception {
|
||||
JSONArray rtJa = new JSONArray();
|
||||
for (List<WorkerInfo> splitList : CollUtil.splitList(workerList, 1000)) {
|
||||
for (List<WorkerInfo> splitList : CollUtil.splitList(workerList, MAX_PAGE_SIZE)) {
|
||||
JSONObject plJo = HikvisionUtil.queryPersonList(project, new JoBuilder()
|
||||
.put("personIds", StrUtil.join(",", splitList.stream().map(WorkerInfo::getId).collect(Collectors.toList())))
|
||||
.put("pageNo", 1)
|
||||
.put("pageSize", 1000)
|
||||
.put("pageSize", MAX_PAGE_SIZE)
|
||||
.build());
|
||||
JSONObject plDataJo = HikvisionUtil.getJSONObjectData(plJo);
|
||||
JSONObject plDataJo = HikvisionUtil.getJsonObjectData(plJo);
|
||||
JSONArray plListJa = plDataJo.getJSONArray("list");
|
||||
rtJa.addAll(plListJa);
|
||||
}
|
||||
@ -665,15 +872,15 @@ public class AsyncHikvision {
|
||||
}
|
||||
//然后调用【根据出入权限配置快捷下载】(设备列表)(【添加权限配置】+【快捷下发】这是一个流程,你添加了几个权限,下发成功之后,就清零了)
|
||||
JSONObject daJo = HikvisionUtil.downloadAuth(project, getQueryDownloadProgressParam(devSnToJoEntry, devSnToIscDevSnMap));
|
||||
JSONObject daRtJo = HikvisionUtil.getJSONObjectData(daJo);
|
||||
JSONObject daRtJo = HikvisionUtil.getJsonObjectData(daJo);
|
||||
//然后调用【查询下载任务进度】(上面那个的任务)
|
||||
int totalPercent = 0;
|
||||
do {
|
||||
JSONObject qdpJo = HikvisionUtil.queryDownloadProgress(project, new JoBuilder()
|
||||
.put("taskId", daRtJo.getString("taskId"))
|
||||
.build());
|
||||
totalPercent = HikvisionUtil.getJSONObjectData(qdpJo).getInteger("totalPercent");
|
||||
Thread.sleep(1000);
|
||||
totalPercent = HikvisionUtil.getJsonObjectData(qdpJo).getInteger("totalPercent");
|
||||
Thread.sleep(MAX_PAGE_SIZE);
|
||||
} while (totalPercent != 100);
|
||||
//权限下发后(进度100后),用【查询权限条目列表】(人员列表,设备列表)接口去查,返回参数有权限状态,返回已下载的就是有权限
|
||||
List<String> workerIds = devSnToJoEntry.getValue().stream().map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
|
||||
@ -719,11 +926,21 @@ public class AsyncHikvision {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 为人员列表查询权限列表
|
||||
*
|
||||
* @param project
|
||||
* @param workerIds
|
||||
* @param devSnToJoEntry
|
||||
* @param devSnToIscDevSnMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private JSONArray queryAuthItemByWorkerList(ProjectInfoExtVo project, List<String> workerIds, Map.Entry<String, List<JSONObject>> devSnToJoEntry, Map<String, JSONObject> devSnToIscDevSnMap) throws Exception {
|
||||
JSONArray rtJa = new JSONArray();
|
||||
for (List<String> splitList : CollUtil.splitList(workerIds, 1000)) {
|
||||
for (List<String> splitList : CollUtil.splitList(workerIds, MAX_PAGE_SIZE)) {
|
||||
JSONObject qaiJo = HikvisionUtil.queryAuthItem(project, getQueryAuthItemParam(devSnToJoEntry, devSnToIscDevSnMap, splitList));
|
||||
JSONObject qaiRtJo = HikvisionUtil.getJSONObjectData(qaiJo);
|
||||
JSONObject qaiRtJo = HikvisionUtil.getJsonObjectData(qaiJo);
|
||||
JSONArray qaiList = qaiRtJo.getJSONArray("list");
|
||||
if (CollUtil.isNotEmpty(qaiList)) {
|
||||
rtJa.addAll(qaiList);
|
||||
@ -732,17 +949,35 @@ public class AsyncHikvision {
|
||||
return rtJa;
|
||||
}
|
||||
|
||||
/**
|
||||
* 为人员列表删除权限
|
||||
*
|
||||
* @param project
|
||||
* @param devSnToIscDevSnMap
|
||||
* @param devSnToJoEntry
|
||||
* @param deleteAuthWorkerIds
|
||||
* @throws Exception
|
||||
*/
|
||||
private void deleteAuthByWorkerList(ProjectInfoExtVo project, Map<String, JSONObject> devSnToIscDevSnMap, Map.Entry<String, List<JSONObject>> devSnToJoEntry, List<String> deleteAuthWorkerIds) throws Exception {
|
||||
for (List<String> splitWorkerIds : CollUtil.splitList(deleteAuthWorkerIds, 1000)) {
|
||||
JSONObject aaRJo = HikvisionUtil.deleteAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, splitWorkerIds, devSnToIscDevSnMap));
|
||||
HikvisionUtil.getJSONObjectData(aaRJo);
|
||||
for (List<String> splitWorkerIds : CollUtil.splitList(deleteAuthWorkerIds, MAX_PAGE_SIZE)) {
|
||||
JSONObject jo = HikvisionUtil.deleteAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, splitWorkerIds, devSnToIscDevSnMap));
|
||||
HikvisionUtil.getJsonObjectData(jo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为人员列表添加权限
|
||||
*
|
||||
* @param project
|
||||
* @param devSnToIscDevSnMap
|
||||
* @param devSnToJoEntry
|
||||
* @param addAuthWorkerIds
|
||||
* @throws Exception
|
||||
*/
|
||||
private void addAuthByWorkerList(ProjectInfoExtVo project, Map<String, JSONObject> devSnToIscDevSnMap, Map.Entry<String, List<JSONObject>> devSnToJoEntry, List<String> addAuthWorkerIds) throws Exception {
|
||||
for (List<String> splitWorkerIds : CollUtil.splitList(addAuthWorkerIds, 1000)) {
|
||||
JSONObject aaRJo = HikvisionUtil.addAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, splitWorkerIds, devSnToIscDevSnMap));
|
||||
HikvisionUtil.getJSONObjectData(aaRJo);
|
||||
for (List<String> splitWorkerIds : CollUtil.splitList(addAuthWorkerIds, MAX_PAGE_SIZE)) {
|
||||
JSONObject jo = HikvisionUtil.addAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, splitWorkerIds, devSnToIscDevSnMap));
|
||||
HikvisionUtil.getJsonObjectData(jo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -771,7 +1006,8 @@ public class AsyncHikvision {
|
||||
if (sendNotice) {
|
||||
if (addAuthWorkerIds.contains(personId)) {
|
||||
//添加权限
|
||||
if (Objects.equals(faceStatus, 3)) {
|
||||
int addAuth = 3;
|
||||
if (Objects.equals(faceStatus, addAuth)) {
|
||||
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(personId), 3, 1, dev.getDevSn());
|
||||
Long syncId = ThreadLocalUtil.getByKey(Cts.TL_HK_SYNC_ID, Long.class);
|
||||
if (syncId != null) {
|
||||
@ -791,7 +1027,8 @@ public class AsyncHikvision {
|
||||
}
|
||||
} else {
|
||||
//删除权限
|
||||
if (Objects.equals(faceStatus, 4)) {
|
||||
int deleteAuth = 4;
|
||||
if (Objects.equals(faceStatus, deleteAuth)) {
|
||||
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(personId), 3, 3, dev.getDevSn());
|
||||
} else {
|
||||
hikvisionCall.updateFailStatus(projectSn, Long.valueOf(personId), 3, 3, dev.getDevSn());
|
||||
@ -802,13 +1039,21 @@ public class AsyncHikvision {
|
||||
StrUtil.format("[{}]取消下发到[{}]{}",
|
||||
workerIdMap.get(personId).getWorkerName(),
|
||||
dev.getDevName(),
|
||||
Objects.equals(faceStatus, 4) ? "成功" : "失败,下发异常"),
|
||||
Objects.equals(faceStatus, deleteAuth) ? "成功" : "失败,下发异常"),
|
||||
"人员下发设备提醒", "1");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取添加或删除权限的参数
|
||||
*
|
||||
* @param entry
|
||||
* @param workerIds
|
||||
* @param devSnToIscDevSnMap
|
||||
* @return
|
||||
*/
|
||||
@NotNull
|
||||
private JSONObject getAddOrDeleteAuthParam(Map.Entry<String, List<JSONObject>> entry, List<String> workerIds, Map<String, JSONObject> devSnToIscDevSnMap) {
|
||||
JSONObject aaJo = new JSONObject();
|
||||
@ -820,6 +1065,13 @@ public class AsyncHikvision {
|
||||
return aaJo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取《删除权限配置》接口的设备请求的参数
|
||||
*
|
||||
* @param entry
|
||||
* @param devSnToIscDevSnMap
|
||||
* @return
|
||||
*/
|
||||
@NotNull
|
||||
private List<JSONObject> getDevRqParam(Map.Entry<String, List<JSONObject>> entry, Map<String, JSONObject> devSnToIscDevSnMap) {
|
||||
return Collections.singletonList(new JoBuilder()
|
||||
@ -829,6 +1081,13 @@ public class AsyncHikvision {
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取《根据出入权限配置快捷下载》接口的请求的参数
|
||||
*
|
||||
* @param entry
|
||||
* @param devSnToIscDevSnMap
|
||||
* @return
|
||||
*/
|
||||
private JSONObject getQueryDownloadProgressParam(Map.Entry<String, List<JSONObject>> entry, Map<String, JSONObject> devSnToIscDevSnMap) {
|
||||
JSONObject aaJo = new JSONObject();
|
||||
aaJo.put("taskType", 4);
|
||||
@ -836,6 +1095,14 @@ public class AsyncHikvision {
|
||||
return aaJo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取《查询权限条目列表》的请求参数
|
||||
*
|
||||
* @param entry
|
||||
* @param devSnToIscDevSnMap
|
||||
* @param workerIds
|
||||
* @return
|
||||
*/
|
||||
private JSONObject getQueryAuthItemParam(Map.Entry<String, List<JSONObject>> entry, Map<String, JSONObject> devSnToIscDevSnMap, List<String> workerIds) {
|
||||
JSONObject aaJo = new JSONObject();
|
||||
aaJo.put("personIds", workerIds);
|
||||
@ -846,7 +1113,7 @@ public class AsyncHikvision {
|
||||
.build()));
|
||||
aaJo.put("queryType", "acsDevice");
|
||||
aaJo.put("pageNo", 1);
|
||||
aaJo.put("pageSize", 1000);
|
||||
aaJo.put("pageSize", MAX_PAGE_SIZE);
|
||||
return aaJo;
|
||||
}
|
||||
|
||||
|
||||
@ -108,11 +108,13 @@ public class HikvisionCall {
|
||||
public static final String MSG = "msg";
|
||||
public static final String DATA = "data";
|
||||
public static final String X_00072002 = "0x00072002";
|
||||
public static final String Fail = "失败";
|
||||
public static final String FAIL = "失败";
|
||||
public static final String SUC = "成功";
|
||||
public static final String X_15403007 = "0x15403007";
|
||||
public static final String X_02401033 = "0x02401033";
|
||||
public static final String LIST = "list";
|
||||
public static final String EVENT_PMS = "event_pms";
|
||||
public static final String EVENT_VSS = "event_vss";
|
||||
private static final String FIXED_CAR_GROUP_NAME = "业主车辆";
|
||||
public AsyncHikvision asyncHikvision;
|
||||
@Autowired
|
||||
@ -289,8 +291,8 @@ public class HikvisionCall {
|
||||
if (Objects.equals(method, onEventNotify)) {
|
||||
JSONObject paramsJo = jsonObject.getJSONObject("params");
|
||||
String ability = paramsJo.getString("ability");
|
||||
String event_acs = "event_acs";
|
||||
if (Objects.equals(ability, event_acs)) {
|
||||
String eventAcs = "event_acs";
|
||||
if (Objects.equals(ability, eventAcs)) {
|
||||
log.info("人员通行记录事件");
|
||||
//人员通行记录
|
||||
JSONArray eventsJa = paramsJo.getJSONArray("events");
|
||||
@ -332,7 +334,7 @@ public class HikvisionCall {
|
||||
hikvisionCall.saveEventCallbackAttendanceAsync(dataJo, workerInfo, srcIndex, project, idCard, time, passType);
|
||||
}
|
||||
}
|
||||
} else if (Objects.equals(ability, "event_pms")) {
|
||||
} else if (Objects.equals(ability, EVENT_PMS)) {
|
||||
log.info("车辆出入场事件");
|
||||
//车辆入场压线(放行)、出场压线(放行)
|
||||
JSONArray eventsJa = paramsJo.getJSONArray("events");
|
||||
@ -388,7 +390,7 @@ public class HikvisionCall {
|
||||
JSONArray eventDetails = dataEvent.getJSONArray("eventDetails");
|
||||
JSONObject eventDetail = eventDetails.getJSONObject(0);
|
||||
ability = eventDetail.getString("ability");
|
||||
if (Objects.equals(ability, "event_vss")) {
|
||||
if (Objects.equals(ability, EVENT_VSS)) {
|
||||
log.info("AI识别告警=======" + paramsJo);
|
||||
//摄像机名称
|
||||
String srcName = eventDetail.getString("srcName");
|
||||
@ -408,7 +410,7 @@ public class HikvisionCall {
|
||||
hikvisionCall.saveEventCallbackAiAsync(dataEvent, srcName, eventType, imageUrl, srcIndex, dev);
|
||||
} else if (Objects.equals(ability, EVENT_IAS)) {
|
||||
log.info("临边防护告警=======" + paramsJo);
|
||||
String srcName = eventDetail.getString("srcName");//srcName
|
||||
String srcName = eventDetail.getString("srcName");
|
||||
String srcParentIndex = dataEvent.getString("srcParentIndex");
|
||||
String happenTime = dataEvent.getString("happenTime");
|
||||
String ds = srcName + "报警";
|
||||
@ -428,6 +430,11 @@ public class HikvisionCall {
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加红外对射预警数据
|
||||
*
|
||||
* @param paramsJo
|
||||
*/
|
||||
private void addFrontierProtectionNoNetData(JSONObject paramsJo) {
|
||||
log.info("临边防护告警事件========" + paramsJo);
|
||||
JSONArray eventsJa = paramsJo.getJSONArray("events");
|
||||
@ -435,6 +442,11 @@ public class HikvisionCall {
|
||||
hikvisionCall.saveEventCallbackIasAsync(dataEvent);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加红外对射预警数据
|
||||
*
|
||||
* @param dataEvent
|
||||
*/
|
||||
@Async("saveEventCallbackAiAsync")
|
||||
public void saveEventCallbackIasAsync(JSONObject dataEvent) {
|
||||
String devCode = dataEvent.getString("srcIndex");
|
||||
@ -456,6 +468,16 @@ public class HikvisionCall {
|
||||
frontierProtectionNoNetDataService.add(data1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步添加ai数据
|
||||
*
|
||||
* @param dataEvent
|
||||
* @param srcName
|
||||
* @param eventType
|
||||
* @param imageUrl
|
||||
* @param deviceId
|
||||
* @param dev
|
||||
*/
|
||||
@Async("saveEventCallbackAiAsync")
|
||||
public void saveEventCallbackAiAsync(JSONObject dataEvent, String srcName, String eventType, String imageUrl, String deviceId, AiAnalyseHardWareRecord dev) {
|
||||
String happenTime = dataEvent.getString("happenTime");
|
||||
@ -489,6 +511,15 @@ public class HikvisionCall {
|
||||
asyncAiAnalyse.sendAiAnalyse(record, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
}
|
||||
|
||||
/***
|
||||
* 异步添加车辆通行数据
|
||||
* @param dataJo
|
||||
* @param srcIndex
|
||||
* @param plateNo
|
||||
* @param carCamera
|
||||
* @param project
|
||||
* @param time
|
||||
*/
|
||||
@Async("saveEventCallbackCarPassRecord")
|
||||
public void saveEventCallbackCarPassRecordAsync(JSONObject dataJo, String srcIndex, String plateNo, CarCamera carCamera, Project project, String time) {
|
||||
CarPassRecord carPassRecord = new CarPassRecord();
|
||||
@ -543,9 +574,20 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步保存人员通行数据
|
||||
*
|
||||
* @param dataJo
|
||||
* @param workerInfo
|
||||
* @param srcIndex
|
||||
* @param project
|
||||
* @param idCard
|
||||
* @param time
|
||||
* @param passType
|
||||
*/
|
||||
@Async("saveEventCallbackAttendance")
|
||||
public void saveEventCallbackAttendanceAsync(JSONObject dataJo, WorkerInfo workerInfo, String srcIndex, Project project, String idCard, String time, int passType) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
HashMap<String, Object> map = new HashMap<>(16);
|
||||
map.put("passTime", time);
|
||||
map.put("idCard", idCard);
|
||||
map.put("attendanceNumber", workerInfo.getAttendanceNumber());
|
||||
@ -613,6 +655,15 @@ public class HikvisionCall {
|
||||
return Result.ok("已在后台同步人员数据,请耐心等待!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门禁事件的数据
|
||||
*
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param param
|
||||
* @param projectSn
|
||||
* @param projects
|
||||
*/
|
||||
@Async("getDoorEvents")
|
||||
public void getDoorEventsAsync(String startTime, String endTime, JSONObject param, String projectSn, List<Project> projects) {
|
||||
for (Project project : projects) {
|
||||
@ -633,7 +684,7 @@ public class HikvisionCall {
|
||||
log.error("err:", e);
|
||||
return;
|
||||
}
|
||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||
JSONObject joData = HikvisionUtil.getJsonObjectData(rs);
|
||||
if (joData != null) {
|
||||
total = joData.getInteger("total");
|
||||
if (!Objects.equals(total, 0)) {
|
||||
@ -651,7 +702,7 @@ public class HikvisionCall {
|
||||
log.error("未找到该人员信息,personName:{}", personName);
|
||||
continue;
|
||||
}
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
HashMap<String, Object> map = new HashMap<>(16);
|
||||
String time = DateUtil.formatDateTime(DateUtil.parse(eventTime));
|
||||
map.put("passTime", time);
|
||||
map.put("idCard", workerInfo.getIdCard());
|
||||
@ -721,6 +772,14 @@ public class HikvisionCall {
|
||||
return Result.ok("已在后台同步车辆通行数据,请耐心等待!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步同步车辆通行数据
|
||||
*
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param param
|
||||
* @param projects
|
||||
*/
|
||||
@Async("getCrossRecords")
|
||||
public void getCrossRecordsAsync(String startTime, String endTime, JSONObject param, List<Project> projects) {
|
||||
for (Project project : projects) {
|
||||
@ -744,7 +803,7 @@ public class HikvisionCall {
|
||||
log.error("err:", e);
|
||||
return;
|
||||
}
|
||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||
JSONObject joData = HikvisionUtil.getJsonObjectData(rs);
|
||||
if (joData != null) {
|
||||
total = joData.getInteger("total");
|
||||
if (!Objects.equals(total, 0)) {
|
||||
@ -892,6 +951,12 @@ public class HikvisionCall {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取进出类型
|
||||
*
|
||||
* @param passType
|
||||
* @return
|
||||
*/
|
||||
private Integer getPassType(Integer passType) {
|
||||
if (passType == null) {
|
||||
return null;
|
||||
@ -927,6 +992,13 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @throws Exception
|
||||
*/
|
||||
public void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
String rs = HikvisionUtil.addWorker(workerInfo, project);
|
||||
sendNoticeAndSetStatusForWorker("添加人员到海康isc", rs, workerInfo, 1, 1, true);
|
||||
@ -972,6 +1044,13 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @throws Exception
|
||||
*/
|
||||
public void editWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
String rs = HikvisionUtil.editWorker(workerInfo, project);
|
||||
sendNoticeAndSetStatusForWorker("更新人员到海康isc", rs, workerInfo, 1, 2, true);
|
||||
@ -991,6 +1070,17 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为车辆发送通知和设置下发状态
|
||||
*
|
||||
* @param title
|
||||
* @param rs
|
||||
* @param carInfo
|
||||
* @param type
|
||||
* @param operate
|
||||
* @param setSuc
|
||||
* @param isNotice
|
||||
*/
|
||||
public void sendNoticeAndSetStatusForCarInfo(String title, String rs, CarInfo carInfo, Integer type, Integer operate, Boolean setSuc, boolean isNotice) {
|
||||
String msg;
|
||||
if (setSuc == null) {
|
||||
@ -1006,10 +1096,10 @@ public class HikvisionCall {
|
||||
if (fOp.isPresent() && fOp.get().size() != 0) {
|
||||
if (X_00052102.equals(fOp.get().getJSONObject(0).getString(CODE))) {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆绑定的人员在isc不存在";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
} else {
|
||||
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
|
||||
@ -1039,30 +1129,31 @@ public class HikvisionCall {
|
||||
String errMsg = "Car reservation failed! The plateNo has reserved in the parking!";
|
||||
if (Objects.equals(msg1, errMsg)) {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆预约记录已存在";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
}
|
||||
} else if (Objects.equals(code, X_02_E_33400)) {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆属于黑名单内不能下发预约车";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else if (Objects.equals(code, X_00072003)) {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车牌格式不正确!";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else if (Objects.equals(code, X_00052301)) {
|
||||
String msg1 = jo.getString(MSG);
|
||||
if (Objects.equals(msg1, "PersonId Not Exists")) {
|
||||
String errMsg = "PersonId Not Exists";
|
||||
if (Objects.equals(msg1, errMsg)) {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆绑定的人员ID不存在";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
} else {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -1071,7 +1162,7 @@ public class HikvisionCall {
|
||||
title += SUC;
|
||||
} else {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1096,6 +1187,13 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为组织发送通知和设置下发状态
|
||||
*
|
||||
* @param title
|
||||
* @param rs
|
||||
* @param orgName
|
||||
*/
|
||||
private void sendNoticeForOrg(String title, String rs, String orgName) {
|
||||
if (StringUtils.isBlank(rs)) {
|
||||
return;
|
||||
@ -1111,11 +1209,11 @@ public class HikvisionCall {
|
||||
if (fOp.isPresent() && fOp.get().size() != 0) {
|
||||
if (X_00052102.equals(fOp.get().getJSONObject(0).getString(CODE))) {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:上级组织不存在";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
success = false;
|
||||
} else {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
success = false;
|
||||
}
|
||||
} else {
|
||||
@ -1128,11 +1226,11 @@ public class HikvisionCall {
|
||||
String errMsg = "Exists Child Org";
|
||||
if (X_00052102.equals(dataJa.getJSONObject(0).getString(CODE)) && errMsg.equals(dataJa.getJSONObject(0).getString(MSG))) {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:ISC存在下级组织";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
success = false;
|
||||
} else {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
success = false;
|
||||
}
|
||||
} else {
|
||||
@ -1145,7 +1243,7 @@ public class HikvisionCall {
|
||||
}
|
||||
} else {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:" + rs;
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
success = false;
|
||||
}
|
||||
if (success) {
|
||||
@ -1158,6 +1256,16 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为人员发送通知和设置下发状态
|
||||
*
|
||||
* @param title
|
||||
* @param rs
|
||||
* @param workerInfo
|
||||
* @param type
|
||||
* @param operate
|
||||
* @param sendNotice
|
||||
*/
|
||||
private void sendNoticeAndSetStatusForWorker(String title, String rs, WorkerInfo workerInfo, int type, int operate, boolean sendNotice) {
|
||||
boolean callSuc = HikvisionUtil.isSuccess(rs);
|
||||
String msg = "";
|
||||
@ -1175,10 +1283,10 @@ public class HikvisionCall {
|
||||
String errMsg = "Please Change Picture,Picture Max Size Is Limit 200KB";
|
||||
if (Objects.equals(msg1, errMsg)) {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:人脸图片不能大于200KB";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
} else if (Objects.equals(code, X_00052301)) {
|
||||
String msg1 = jo.getString(MSG);
|
||||
@ -1193,7 +1301,7 @@ public class HikvisionCall {
|
||||
pN = "部门";
|
||||
}
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:" + pN + "未同步成功";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else if (Objects.equals(msg1, personIdAlreadyInDb)) {
|
||||
//成功
|
||||
success = true;
|
||||
@ -1201,24 +1309,24 @@ public class HikvisionCall {
|
||||
title += SUC;
|
||||
} else if (Objects.equals(msg1, personNotExists)) {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:人员不存在";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
} else if (Objects.equals(code, X_00072003)) {
|
||||
String msg1 = jo.getString(MSG);
|
||||
String errMsg = "The format of parameter phoneNo is not correct.";
|
||||
if (Objects.equals(msg1, errMsg)) {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:手机号码格式不正确";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
} else {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
} else {
|
||||
msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:下发异常";
|
||||
title += Fail;
|
||||
title += FAIL;
|
||||
}
|
||||
}
|
||||
if (success) {
|
||||
@ -1271,6 +1379,14 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新某个为失败状态
|
||||
*
|
||||
* @param projectSn
|
||||
* @param whoId
|
||||
* @param bigType
|
||||
* @param operate
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateAllFailStatusIfNullForAuth(String projectSn, Long whoId, Integer bigType, Integer operate) {
|
||||
xzHikvisionSyncMapper.update(null, new LambdaUpdateWrapper<XzHikvisionSync>()
|
||||
@ -1284,6 +1400,13 @@ public class HikvisionCall {
|
||||
this.updateTotalStatus(projectSn, whoId, bigType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新某个为失败状态
|
||||
*
|
||||
* @param projectSn
|
||||
* @param whoId
|
||||
* @param bigType
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateAllFailStatusIfNull(String projectSn, Long whoId, Integer bigType) {
|
||||
xzHikvisionSyncMapper.update(null, new LambdaUpdateWrapper<XzHikvisionSync>()
|
||||
@ -1295,6 +1418,15 @@ public class HikvisionCall {
|
||||
updateTotalStatus(projectSn, whoId, bigType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新某个为失败状态
|
||||
*
|
||||
* @param projectSn
|
||||
* @param whoId
|
||||
* @param type
|
||||
* @param operate
|
||||
* @param deviceSn
|
||||
*/
|
||||
public void updateFailStatus(String projectSn, Long whoId, Integer type, Integer operate, String deviceSn) {
|
||||
updateStatus(projectSn, whoId, type, operate, deviceSn, false);
|
||||
}
|
||||
@ -1312,6 +1444,16 @@ public class HikvisionCall {
|
||||
updateStatus(projectSn, whoId, type, operate, deviceSn, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新某个状态
|
||||
*
|
||||
* @param projectSn
|
||||
* @param whoId
|
||||
* @param type
|
||||
* @param operate
|
||||
* @param deviceSn
|
||||
* @param isSuccess
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateStatus(String projectSn, Long whoId, Integer type, Integer operate, String deviceSn, Boolean isSuccess) {
|
||||
LambdaQueryWrapper<XzHikvisionSync> queryWrapper = new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
@ -1414,11 +1556,29 @@ public class HikvisionCall {
|
||||
deleteWorkerFromHttp(uniqueId, workerInfo, project, sendNotice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除人员到海康isc
|
||||
*
|
||||
* @param uniqueId
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @param sendNotice
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteWorkerFromHttp(String uniqueId, WorkerInfo workerInfo, Project project, boolean sendNotice) throws Exception {
|
||||
String rs = HikvisionUtil.deleteWorkerById(uniqueId, project).toJSONString();
|
||||
sendNoticeAndSetStatusForWorker("删除人员到海康isc", rs, workerInfo, 1, 3, sendNotice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除人员图片到海康isc
|
||||
*
|
||||
* @param uniqueId
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @param sendNotice
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteWorkerFace(String uniqueId, WorkerInfo workerInfo, Project project, boolean sendNotice) throws Exception {
|
||||
List<String> workerFaceIds = getWorkerFaceIds(uniqueId, project);
|
||||
if (CollUtil.isNotEmpty(workerFaceIds)) {
|
||||
@ -1492,7 +1652,7 @@ public class HikvisionCall {
|
||||
jo.put("pageSize", 1);
|
||||
JSONObject joRs = HikvisionUtil.getBlackCarList(project, jo);
|
||||
if (HikvisionUtil.isSuccess(joRs)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(joRs);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(joRs);
|
||||
JSONArray listJa = dataJo.getJSONArray(LIST);
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
@ -1526,6 +1686,11 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加车辆黑名单失败报警通知
|
||||
*
|
||||
* @param carInfo
|
||||
*/
|
||||
private void failAlarmNotice(CarInfo carInfo) {
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
sendNoticeAndSetStatusForCarInfo("车辆添加黑名单到海康isc", new JSONObject().toJSONString(), carInfo, 7, null, false, true);
|
||||
@ -1555,6 +1720,14 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过车牌号获取isc的车辆id
|
||||
*
|
||||
* @param carNumber
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private String getRemoteCarIdByCarNumber(String carNumber, Project project) throws Exception {
|
||||
JSONObject oldCarInfo = searchCarInfoByCarNumberFromHttp(carNumber, project);
|
||||
return oldCarInfo == null ? null : oldCarInfo.getString("vehicleId");
|
||||
@ -1571,6 +1744,13 @@ public class HikvisionCall {
|
||||
bindCar(project, carInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取绑定的固定车辆群组
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@NotNull
|
||||
private String getCategoryCode(Project project) throws Exception {
|
||||
//绑定固定的群组
|
||||
@ -1578,6 +1758,13 @@ public class HikvisionCall {
|
||||
return getFixedCarGroupName(ja);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加车辆
|
||||
*
|
||||
* @param carInfo
|
||||
* @param project
|
||||
* @throws Exception
|
||||
*/
|
||||
public void addCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/vehicle/batch/add";
|
||||
@ -1589,6 +1776,12 @@ public class HikvisionCall {
|
||||
sendNoticeAndSetStatusForCarInfo("添加车辆白名单到海康isc", rs, carInfo, 4, 1, null, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车辆
|
||||
*
|
||||
* @param carInfo
|
||||
* @return
|
||||
*/
|
||||
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
|
||||
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
|
||||
hikvisionCarInfo.setVehicleId(carInfo.getHikvisionVehicleId());
|
||||
@ -1605,6 +1798,12 @@ public class HikvisionCall {
|
||||
return hikvisionCarInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取isc的车牌颜色
|
||||
*
|
||||
* @param carInfo
|
||||
* @return
|
||||
*/
|
||||
private String getPlateColor(CarInfo carInfo) {
|
||||
String carColor = carInfo.getCarColor();
|
||||
if (StringUtils.isBlank(carColor)) {
|
||||
@ -1630,6 +1829,12 @@ public class HikvisionCall {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取isc的车辆类型
|
||||
*
|
||||
* @param carInfo
|
||||
* @return
|
||||
*/
|
||||
private String getVehicleType(CarInfo carInfo) {
|
||||
String carTypeName = carInfoMapper.getCarTypeName(carInfo);
|
||||
switch (carTypeName) {
|
||||
@ -1646,6 +1851,12 @@ public class HikvisionCall {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取isc的车辆颜色
|
||||
*
|
||||
* @param carColor
|
||||
* @return
|
||||
*/
|
||||
private String getVehicleColor(String carColor) {
|
||||
if (StringUtils.isBlank(carColor)) {
|
||||
return null;
|
||||
@ -1786,6 +1997,13 @@ public class HikvisionCall {
|
||||
handleAlarmCar(project, c);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除固定车
|
||||
*
|
||||
* @param carInfo
|
||||
* @param project
|
||||
* @throws Exception
|
||||
*/
|
||||
private void deleteFixedCarForHikvision(CarInfo carInfo, Project project) throws Exception {
|
||||
//根据车牌号删除车辆
|
||||
JSONObject oldCarInfo = searchCarInfoByCarNumberFromHttp(carInfo.getCarNumber(), project);
|
||||
@ -1798,6 +2016,14 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据车牌号查询车辆
|
||||
*
|
||||
* @param carNumber
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private JSONObject searchCarInfoByCarNumberFromHttp(String carNumber, Project project) throws Exception {
|
||||
long total = 0;
|
||||
JSONObject o1 = null;
|
||||
@ -1805,7 +2031,7 @@ public class HikvisionCall {
|
||||
do {
|
||||
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carNumber, project, ++pageNo);
|
||||
if (HikvisionUtil.isSuccess(jo)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(jo);
|
||||
total = dataJo.getInteger("total");
|
||||
JSONArray listJa = dataJo.getJSONArray(LIST);
|
||||
Optional<Object> plateNoOpt = listJa.stream().filter(o -> {
|
||||
@ -1864,6 +2090,13 @@ public class HikvisionCall {
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
/**
|
||||
* 映射isc的组织
|
||||
*
|
||||
* @param enterpriseInfo
|
||||
* @param orgIndexCode
|
||||
* @return
|
||||
*/
|
||||
private HikvisionOrganization getHikvisionOrganization(EnterpriseInfo enterpriseInfo, String orgIndexCode) {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
@ -1948,7 +2181,7 @@ public class HikvisionCall {
|
||||
param.put("orgName", orgName);
|
||||
param.put("parentOrgIndexCodes", project.getProjectSn());
|
||||
String rs = HikvisionUtil.getOrgV2(project, param);
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rs);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rs);
|
||||
JSONArray listJa = dataJo.getJSONArray(LIST);
|
||||
for (int i = 0; i < listJa.size(); i++) {
|
||||
JSONObject jo = listJa.getJSONObject(i);
|
||||
@ -1973,6 +2206,14 @@ public class HikvisionCall {
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
/**
|
||||
* 映射isc的组织
|
||||
*
|
||||
* @param teamInfo
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private HikvisionOrganization getHikvisionOrganization(TeamInfo teamInfo, Project project) throws Exception {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
@ -2000,16 +2241,38 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新组织到海康isc
|
||||
*
|
||||
* @param project
|
||||
* @param hikvisionOrganization
|
||||
* @throws Exception
|
||||
*/
|
||||
private void editOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
String rs = HikvisionUtil.editOrg(project, hikvisionOrganization);
|
||||
sendNoticeForOrg("更新组织到海康isc", rs, hikvisionOrganization.getOrgName());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组织到海康isc
|
||||
*
|
||||
* @param project
|
||||
* @param idList
|
||||
* @param orgName
|
||||
* @throws Exception
|
||||
*/
|
||||
private void deleteOrgFromHttp(Project project, List<String> idList, String orgName) throws Exception {
|
||||
String rs = HikvisionUtil.deleteOrgByIndexCodes(project, idList);
|
||||
sendNoticeForOrg("删除组织到海康isc", rs, orgName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加组织到海康isc
|
||||
*
|
||||
* @param project
|
||||
* @param hikvisionOrganization
|
||||
* @throws Exception
|
||||
*/
|
||||
private void addOrgNoticeFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
String rs = HikvisionUtil.addOrg(project, hikvisionOrganization);
|
||||
sendNoticeForOrg("添加组织到海康isc", rs, hikvisionOrganization.getOrgName());
|
||||
@ -2043,6 +2306,14 @@ public class HikvisionCall {
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
/**
|
||||
* 映射isc的组织
|
||||
*
|
||||
* @param departmentInfo
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private HikvisionOrganization getHikvisionOrganization(DepartmentInfo departmentInfo, Project project) throws Exception {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
@ -2126,10 +2397,16 @@ public class HikvisionCall {
|
||||
param.put("orgIndexCodes", orgIndexs);
|
||||
param.put("parentOrgIndexCodes", parentOrgIndexCode);
|
||||
String rs = HikvisionUtil.getOrgV2(project, param);
|
||||
JSONObject jo = HikvisionUtil.getJSONObjectData(rs);
|
||||
JSONObject jo = HikvisionUtil.getJsonObjectData(rs);
|
||||
return jo.getJSONArray(LIST);
|
||||
}
|
||||
|
||||
/**
|
||||
* 映射isc的组织
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
private HikvisionOrganization getHikvisionOrganization(Project project) {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
@ -2166,6 +2443,13 @@ public class HikvisionCall {
|
||||
HikvisionUtil.chargeDeletion(project, new ChargeDeletionParam(parkIndexCode, carInfo.getCarNumber()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加预约车辆到海康isc
|
||||
*
|
||||
* @param project
|
||||
* @param carInfo
|
||||
* @throws Exception
|
||||
*/
|
||||
private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception {
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v2/parkingSpace/reservations/addition";
|
||||
@ -2175,13 +2459,21 @@ public class HikvisionCall {
|
||||
sendNoticeAndSetStatusForCarInfo("添加预约车辆到海康isc", rs, carInfo, 6, 1, null, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 映射车辆预约信息
|
||||
*
|
||||
* @param project
|
||||
* @param carInfo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private ParkReservation getParkReservation(Project project, CarInfo carInfo) throws Exception {
|
||||
String parkIndexCode = HikvisionUtil.getProjectParkCode(project);
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
||||
ParkReservation parkReservation = new ParkReservation();
|
||||
parkReservation.setParkSyscode(parkIndexCode);
|
||||
parkReservation.setPlateNo(carInfo.getCarNumber());
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 3)) {
|
||||
if (Objects.equals(carInfo.getCarModuleType(), ParamEnum.CarInfoCarModuleTypeEnum.LS.getValue())) {
|
||||
parkReservation.setOwner(carInfo.getDriverWorkerName());
|
||||
} else if (workerInfo != null) {
|
||||
parkReservation.setOwner(workerInfo.getWorkerName());
|
||||
@ -2194,7 +2486,12 @@ public class HikvisionCall {
|
||||
return parkReservation;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存图片本体
|
||||
*
|
||||
* @param url
|
||||
* @return
|
||||
*/
|
||||
public String saveToLocal(String url) {
|
||||
return UrlUtil.saveToLocal(url, basePath, IdUtil.simpleUUID() + ".png");
|
||||
}
|
||||
@ -2250,6 +2547,14 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取isc的海康的车辆ids
|
||||
*
|
||||
* @param project
|
||||
* @param carInfo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@NotNull
|
||||
private Set<String> getHkCarIds(Project project, CarInfo carInfo) throws Exception {
|
||||
JSONObject param = new JSONObject();
|
||||
@ -2260,7 +2565,7 @@ public class HikvisionCall {
|
||||
do {
|
||||
param.put("pageNo", param.getInteger("pageNo") + 1);
|
||||
JSONObject hkFixCars = HikvisionUtil.getFixCarList(project, param);
|
||||
JSONObject jo = HikvisionUtil.getJSONObjectData(hkFixCars);
|
||||
JSONObject jo = HikvisionUtil.getJsonObjectData(hkFixCars);
|
||||
total = jo.getInteger("total");
|
||||
JSONArray oneList = jo.getJSONArray(LIST);
|
||||
listJa.addAll(oneList);
|
||||
@ -2290,7 +2595,7 @@ public class HikvisionCall {
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String rs = HikvisionUtil.doPost(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
if (HikvisionUtil.isSuccess(rs)) {
|
||||
JSONObject rsJo = HikvisionUtil.getJSONObjectData(rs);
|
||||
JSONObject rsJo = HikvisionUtil.getJsonObjectData(rs);
|
||||
return rsJo.getBoolean("checkResult");
|
||||
} else {
|
||||
return false;
|
||||
@ -2298,6 +2603,8 @@ public class HikvisionCall {
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新人员权限
|
||||
*
|
||||
* @param i 0新增,2删除
|
||||
*/
|
||||
public void updatePersonAuth(WorkerInfo workerInfo, String devSn, StringBuilder sucSb, StringBuilder failSb, int i) throws Exception {
|
||||
@ -2321,7 +2628,7 @@ public class HikvisionCall {
|
||||
" ],\n" +
|
||||
"}";
|
||||
JSONObject rs = HikvisionUtil.getDoorsV2(project, JSONObject.parseObject(json));
|
||||
JSONObject jo = HikvisionUtil.getJSONObjectData(rs);
|
||||
JSONObject jo = HikvisionUtil.getJsonObjectData(rs);
|
||||
JSONArray listJa = jo.getJSONArray(LIST);
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
throw new OpenAlertException("失败信息:isc不存在该设备");
|
||||
@ -2356,7 +2663,7 @@ public class HikvisionCall {
|
||||
}
|
||||
return;
|
||||
}
|
||||
JSONObject sdRsJo = HikvisionUtil.getJSONObjectData(sdRs);
|
||||
JSONObject sdRsJo = HikvisionUtil.getJsonObjectData(sdRs);
|
||||
Integer downloadResult = sdRsJo.getJSONObject("resourceDownloadResult").getInteger("downloadResult");
|
||||
if (downloadResult == 0) {
|
||||
updateSucForUpdatePersonAuth(workerInfo, devSn, i);
|
||||
@ -2367,6 +2674,13 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为人员权限设置成功下发状态
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param devSn
|
||||
* @param i
|
||||
*/
|
||||
private void updateSucForUpdatePersonAuth(WorkerInfo workerInfo, String devSn, int i) {
|
||||
updateSuccessStatus(workerInfo.getProjectSn(), workerInfo.getId(), 3, i == 0 ? 1 : 3, devSn);
|
||||
}
|
||||
|
||||
@ -218,7 +218,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
param.put("orgIndexCodes", Collections.singletonList(data.getUniqueId()));
|
||||
JSONObject rtJo = HikvisionUtil.getOrgListByIndex(projectInfoBySn, param);
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
asyncHikvision.addEnterpriseInfoForHikvision(enterpriseInfo);
|
||||
@ -252,7 +252,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
param.put("orgIndexCodes", Collections.singletonList(data.getUniqueId()));
|
||||
JSONObject rtJo = HikvisionUtil.getOrgListByIndex(projectInfoBySn, param);
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
asyncHikvision.addTeamInfoForHikvision(teamInfo);
|
||||
@ -286,7 +286,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
param.put("orgIndexCodes", Collections.singletonList(data.getUniqueId()));
|
||||
JSONObject rtJo = HikvisionUtil.getOrgListByIndex(projectInfoBySn, param);
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
asyncHikvision.addDepartmentInfoForHikvision(departmentInfo);
|
||||
@ -330,7 +330,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
param.put("paramValue", Collections.singletonList(data.getIdCard()));
|
||||
JSONObject rtJo = HikvisionUtil.queryWorkerByCondition(projectInfoBySn, param);
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 1)
|
||||
.eq(XzHikvisionSync::getType, type)
|
||||
@ -392,7 +392,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
rtJo = HikvisionUtil.getReservationCarInfoList(carInfo.getCarNumber(), projectInfoBySn);
|
||||
}
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
|
||||
@ -201,7 +201,7 @@ public class HikvisionTask {
|
||||
param.put("parentOrgIndexCode", project.getProjectSn());
|
||||
JSONObject rtJo = HikvisionUtil.getSubOrgListByParentOrg(project, param);
|
||||
List<EnterpriseInfo> enterpriseInfos = BeanUtil.copyToList(enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).build()), EnterpriseInfo.class);
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (EnterpriseInfo enterpriseInfo : enterpriseInfos) {
|
||||
@ -253,7 +253,7 @@ public class HikvisionTask {
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build());
|
||||
List<DepartmentInfo> departmentInfoList = departmentInfoMapper.getDepartmentInfoList(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build());
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (TeamInfo teamInfo : teamList) {
|
||||
@ -323,7 +323,7 @@ public class HikvisionTask {
|
||||
.put(type == 2, Cts.DEPARTMENT_ID, orgIndex)
|
||||
.build());
|
||||
List<WorkerInfo> workerInfoList = workerPage.getRecords();
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (WorkerInfo workerInfo : workerInfoList) {
|
||||
@ -381,7 +381,7 @@ public class HikvisionTask {
|
||||
.put("carModuleType", 1)
|
||||
.put("isBlack", 0)
|
||||
.build());
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
compareAndAddData(project, listJa, carInfoList, 1);
|
||||
}
|
||||
@ -417,7 +417,7 @@ public class HikvisionTask {
|
||||
jo.put("pageNo", 1);
|
||||
jo.put("pageSize", 1000);
|
||||
JSONObject joRs = HikvisionUtil.getBlackCarList(project, jo);
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(joRs);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(joRs);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
List<CarInfo> carInfoList = carInfoService.selectCarList(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn())
|
||||
|
||||
@ -102,7 +102,7 @@ public class VideoItemTask {
|
||||
jo.put("indexCodes", videoItems.stream().map(entityMap -> entityMap.get("serialNumber")).filter(Objects::nonNull).collect(Collectors.toList()));
|
||||
JSONObject rsJo = hikvisionVideoCall.getNmsRecordForHikvisionForHttp(project, jo);
|
||||
if (HikvisionUtil.isSuccess(rsJo)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rsJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rsJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
for (int i = 0; i < listJa.size(); i++) {
|
||||
JSONObject oneJo = listJa.getJSONObject(i);
|
||||
@ -155,7 +155,7 @@ public class VideoItemTask {
|
||||
jo.put("indexCodes", videoItems.stream().map(entityMap -> entityMap.get("serialNumber")).filter(Objects::nonNull).collect(Collectors.toList()));
|
||||
JSONObject rsJo = hikvisionVideoCall.getVqdForHikvisionForHttp(project, jo);
|
||||
if (HikvisionUtil.isSuccess(rsJo)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rsJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rsJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
for (int i = 0; i < listJa.size(); i++) {
|
||||
JSONObject oneJo = listJa.getJSONObject(i);
|
||||
@ -188,7 +188,7 @@ public class VideoItemTask {
|
||||
jo.put("indexCodes", videoItems.stream().map(entityMap -> entityMap.get("serialNumber")).filter(Objects::nonNull).collect(Collectors.toList()));
|
||||
JSONObject rsJo = hikvisionVideoCall.getCameraOnlineForHttp(project, jo);
|
||||
if (HikvisionUtil.isSuccess(rsJo)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rsJo);
|
||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rsJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
for (int i = 0; i < listJa.size(); i++) {
|
||||
JSONObject oneJo = listJa.getJSONObject(i);
|
||||
|
||||
@ -28,14 +28,40 @@ import java.util.*;
|
||||
@Component
|
||||
public class HikvisionUtil {
|
||||
|
||||
public static final String SUC_CODE = "0";
|
||||
|
||||
/**
|
||||
* 获取JSONObject的请求结果
|
||||
*
|
||||
* @param host
|
||||
* @param path
|
||||
* @param body
|
||||
* @param querys
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject doPostRtObj(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) throws Exception {
|
||||
return JSONObject.parseObject(doPost(host, path, body, querys, appKey, appSecret));
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送Post请求
|
||||
*
|
||||
* @param host
|
||||
* @param path
|
||||
* @param body
|
||||
* @param querys
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) throws Exception {
|
||||
log.info("调用海康接口.url:{}", host + path);
|
||||
log.info("调用海康接口.body:{}", body);
|
||||
Map<String, String> headers = new HashMap();
|
||||
Map<String, String> headers = new HashMap<>(16);
|
||||
headers.put("Accept", "*/*");
|
||||
headers.put("Content-Type", "application/json");
|
||||
Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT * 30);
|
||||
@ -48,10 +74,18 @@ public class HikvisionUtil {
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取响应结果
|
||||
*
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
private static String getResponseResult(Response response) {
|
||||
String responseStr = null;
|
||||
int statusCode = response.getStatusCode();
|
||||
if (!String.valueOf(statusCode).startsWith("2") && !String.valueOf(statusCode).startsWith("3")) {
|
||||
String prefix2 = "2";
|
||||
String prefix3 = "3";
|
||||
if (!String.valueOf(statusCode).startsWith(prefix2) && !String.valueOf(statusCode).startsWith(prefix3)) {
|
||||
responseStr = response.getBody();
|
||||
} else {
|
||||
responseStr = response.getBody();
|
||||
@ -66,10 +100,10 @@ public class HikvisionUtil {
|
||||
* @param rs
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject getJSONObjectData(String rs) {
|
||||
public static JSONObject getJsonObjectData(String rs) {
|
||||
JSONObject rsJo = JSONObject.parseObject(rs);
|
||||
String code = rsJo.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
if (Objects.equals(code, SUC_CODE)) {
|
||||
return rsJo.getJSONObject("data");
|
||||
} else {
|
||||
log.error("海康返回错误码:{}", rs);
|
||||
@ -83,9 +117,9 @@ public class HikvisionUtil {
|
||||
* @param rsJo
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject getJSONObjectData(JSONObject rsJo) {
|
||||
public static JSONObject getJsonObjectData(JSONObject rsJo) {
|
||||
String code = rsJo.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
if (Objects.equals(code, SUC_CODE)) {
|
||||
return rsJo.getJSONObject("data");
|
||||
} else {
|
||||
log.error("海康返回错误码:{}", rsJo.toJSONString());
|
||||
@ -93,10 +127,16 @@ public class HikvisionUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static JSONArray getJSONArrayData(String rs) {
|
||||
/**
|
||||
* 获取响应结果
|
||||
*
|
||||
* @param rs
|
||||
* @return
|
||||
*/
|
||||
public static JSONArray getJsonArrayData(String rs) {
|
||||
JSONObject rsJo = JSONArray.parseObject(rs);
|
||||
String code = rsJo.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
if (Objects.equals(code, SUC_CODE)) {
|
||||
return rsJo.getJSONArray("data");
|
||||
} else {
|
||||
log.error("海康返回错误码:{}", rs);
|
||||
@ -113,7 +153,7 @@ public class HikvisionUtil {
|
||||
public static boolean isSuccess(String rs) {
|
||||
JSONObject rsJo = JSONObject.parseObject(rs);
|
||||
String code = rsJo.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
if (Objects.equals(code, SUC_CODE)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@ -128,7 +168,7 @@ public class HikvisionUtil {
|
||||
*/
|
||||
public static boolean isSuccess(JSONObject rsJo) {
|
||||
String code = rsJo.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
if (Objects.equals(code, SUC_CODE)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@ -143,14 +183,19 @@ public class HikvisionUtil {
|
||||
*/
|
||||
public static boolean isFail(JSONObject rsJo) {
|
||||
String code = rsJo.getString("code");
|
||||
if (Objects.equals(code, "0")) {
|
||||
if (Objects.equals(code, SUC_CODE)) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加初始化分页
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject addPageParamIfAbsent(JSONObject param) {
|
||||
param.putIfAbsent("pageNo", 1);
|
||||
param.putIfAbsent("pageSize", 1000);
|
||||
@ -167,8 +212,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -195,12 +240,12 @@ public class HikvisionUtil {
|
||||
* 查询车辆分类
|
||||
*/
|
||||
public static JSONArray getCategoryList(Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/car/category/search";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/car/category/search";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return getJSONArrayData(rs);
|
||||
return getJsonArrayData(rs);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -215,8 +260,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/car/categoryBind";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/car/categoryBind";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -229,8 +274,8 @@ public class HikvisionUtil {
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject deleteWorkerFace(Project project, String workerFaceId) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/delete";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/face/single/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("faceId", workerFaceId);
|
||||
@ -247,8 +292,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject deleteWorkerById(String uniqueId, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/person/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jsonBody = new JSONObject();
|
||||
jsonBody.put("personIds", Arrays.asList(uniqueId));
|
||||
@ -264,8 +309,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject queryWorkerByCondition(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/person/condition/personInfo";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -279,12 +324,12 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/park/parkList";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/park/parkList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return getJSONArrayData(rs);
|
||||
return getJsonArrayData(rs);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -315,8 +360,8 @@ public class HikvisionUtil {
|
||||
* @param project
|
||||
*/
|
||||
public static JSONObject getReservationCarInfoList(String carNumber, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v2/reserveRecord/page";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
HikvisionReservationCarInfo info = getHikvisionReservationCarInfoObj(carNumber, project);
|
||||
return doPostRtObj(host, path, JSON.toJSONString(info), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
@ -330,10 +375,17 @@ public class HikvisionUtil {
|
||||
*/
|
||||
public static JSONArray getReservationCarInfoDataList(String carNumber, Project project) throws Exception {
|
||||
JSONObject jo = getReservationCarInfoList(carNumber, project);
|
||||
return getJSONObjectData(jo).getJSONArray("list");
|
||||
return getJsonObjectData(jo).getJSONArray("list");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 映射车辆预约信息
|
||||
*
|
||||
* @param carNumber
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private static HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(String carNumber, Project project) throws Exception {
|
||||
String projectParkCode = HikvisionUtil.getProjectParkCode(project);
|
||||
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
|
||||
@ -360,8 +412,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/org/advance/orgList";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v2/org/advance/orgList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -375,17 +427,25 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String addOrg(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/org/batch/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
ArrayList<HikvisionOrganization> list = new ArrayList<>();
|
||||
list.add(hikvisionOrganization);
|
||||
return doPost(host, path, JSON.toJSONString(list), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除组织
|
||||
*
|
||||
* @param project
|
||||
* @param indexCodes
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String deleteOrgByIndexCodes(Project project, List<String> indexCodes) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/org/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("indexCodes", indexCodes);
|
||||
@ -402,8 +462,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/page";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/alarmCar/page";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
@ -418,8 +478,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/person/orgIndexCode/personList";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v2/person/orgIndexCode/personList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
@ -434,8 +494,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/orgIndexCodes/orgInfo";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/org/orgIndexCodes/orgInfo";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
@ -450,8 +510,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/parentOrgIndexCode/subOrgList";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/org/parentOrgIndexCode/subOrgList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
@ -466,8 +526,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/car/charge/deletion";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/car/charge/deletion";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
@ -482,32 +542,56 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/simpleDownload";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acps/v1/authDownload/task/simpleDownload";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, param, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String addWorker(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/person/single/add";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v2/person/single/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String body = HikvisionCall.getWorkerJson(workerInfo);
|
||||
String rs = doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 编剧人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String editWorker(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/person/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String body = HikvisionCall.getWorkerJson(workerInfo);
|
||||
return doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加人脸
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String addWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/add";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/face/single/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("personId", String.valueOf(workerInfo.getId()));
|
||||
@ -525,8 +609,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/addition";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/alarmCar/addition";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
@ -541,15 +625,23 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/deletion";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/alarmCar/deletion";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除车辆
|
||||
*
|
||||
* @param carId
|
||||
* @param project
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String deleteCarInfoById(String carId, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/vehicle/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
@ -569,8 +661,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acs/v2/door/events";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acs/v2/door/events";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPost(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -585,8 +677,8 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/crossRecords/page";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/pms/v1/crossRecords/page";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("pageNo", param.getIntValue("pageNo"));
|
||||
@ -609,15 +701,23 @@ public class HikvisionUtil {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/door/search";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v2/door/search";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(doPost(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑组织
|
||||
*
|
||||
* @param project
|
||||
* @param hikvisionOrganization
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String editOrg(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/single/update";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/org/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String rs = doPost(host, path, JSONArray.toJSONString(hikvisionOrganization), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return rs;
|
||||
@ -632,8 +732,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject addAuth(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acps/v1/auth_config/add";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acps/v1/auth_config/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, JSONArray.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -647,8 +747,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject deleteAuth(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acps/v1/auth_config/delete";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acps/v1/auth_config/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, JSONArray.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -662,8 +762,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject downloadAuth(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acps/v1/authDownload/configuration/shortcut";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acps/v1/authDownload/configuration/shortcut";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, JSONArray.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -677,8 +777,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject queryDownloadProgress(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/progress";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acps/v1/authDownload/task/progress";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, JSONArray.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -693,8 +793,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject queryAuthItem(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/acps/v1/auth_item/list/search";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/acps/v1/auth_item/list/search";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, JSONArray.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -708,8 +808,8 @@ public class HikvisionUtil {
|
||||
* @throws Exception
|
||||
*/
|
||||
public static JSONObject queryPersonList(Project project, JSONObject param) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/person/advance/personList";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v2/person/advance/personList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, JSONArray.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
@ -722,14 +822,14 @@ public class HikvisionUtil {
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject getWorkerInfoByPersonId(String uniqueId, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/person/condition/personInfo";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("paramName", "personId");
|
||||
jo.put("paramValue", Collections.singletonList(uniqueId));
|
||||
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
JSONObject joData = getJSONObjectData(rs);
|
||||
JSONObject joData = getJsonObjectData(rs);
|
||||
Integer total = joData.getInteger("total");
|
||||
if (Objects.equals(total, 1)) {
|
||||
JSONArray jsonArray = joData.getJSONArray("list");
|
||||
@ -748,14 +848,14 @@ public class HikvisionUtil {
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject getWorkerInfoByCertificateNo(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
|
||||
final String artemisPath = "/artemis";
|
||||
final String path = artemisPath + "/api/resource/v1/person/condition/personInfo";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("paramName", "certificateNo");
|
||||
jo.put("paramValue", Collections.singletonList(String.valueOf(workerInfo.getIdCard())));
|
||||
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
JSONObject joData = getJSONObjectData(rs);
|
||||
JSONObject joData = getJsonObjectData(rs);
|
||||
Integer total = joData.getInteger("total");
|
||||
if (Objects.equals(total, 1)) {
|
||||
JSONArray jsonArray = joData.getJSONArray("list");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user