bug修改

This commit is contained in:
guoshengxiong 2024-04-16 21:19:56 +08:00
parent 680651b0fc
commit 76d244fdb6
8 changed files with 377 additions and 122 deletions

View File

@ -242,7 +242,7 @@ public class AsyncHikvision {
* @param projectVideoConfig * @param projectVideoConfig
* @param indexCodes * @param indexCodes
*/ */
private void addVqdForHikvisionBatch(ProjectVideoConfig projectVideoConfig, ArrayList<String> indexCodes) { private void addVqdForHikvisionBatch(ProjectVideoConfig projectVideoConfig, ArrayList<String> indexCodes) throws Exception {
JSONObject requestParam = new JSONObject(); JSONObject requestParam = new JSONObject();
requestParam.put("pageNo", 1); requestParam.put("pageNo", 1);
requestParam.put("pageSize", 20); requestParam.put("pageSize", 20);
@ -264,14 +264,82 @@ public class AsyncHikvision {
} }
@Async @Async
public void addPersonAuth(WorkerInfo workerInfo, ProjectUfaceConfig tempProjectUfaceConfig, String devSn) { public void addPersonAuth(WorkerInfo workerInfo, String devSn) {
try { try {
if (StringUtils.isBlank(devSn)) { if (StringUtils.isBlank(devSn)) {
return; return;
} }
StringBuilder sucSb = new StringBuilder();
StringBuilder failSb = new StringBuilder();
String[] devSnArr = StringUtils.split(devSn, ","); String[] devSnArr = StringUtils.split(devSn, ",");
for (String ds : devSnArr) { try {
hikvisionCall.addPersonAuth(workerInfo, tempProjectUfaceConfig, ds); for (String ds : devSnArr) {
hikvisionCall.updatePersonAuth(workerInfo, ds, sucSb, failSb, 0);
}
} catch (Exception e) {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), e.getMessage(), "人员下发设备提醒", "1");
return;
}
if (SecurityUtils.getUser().getUserId() != null) {
String title = "人员下发设备提醒";
String type = "1";
String msg = "";
String sucSbStr = sucSb.toString();
if (StringUtils.isNotBlank(sucSbStr)) {
sucSbStr += "下发成功:";
msg += sucSbStr + "";
}
String failSbStr = failSb.toString();
if (StringUtils.isNotBlank(failSbStr)) {
failSbStr += "下发失败:";
msg += failSbStr + "";
}
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type);
}
} catch (Exception e) {
log.error("海康:", e);
}
}
/**
* 删除
*
* @param workerInfo
* @param devSn
*/
@Async
public void deletePersonAuth(WorkerInfo workerInfo, String devSn) {
try {
if (StringUtils.isBlank(devSn)) {
return;
}
StringBuilder sucSb = new StringBuilder();
StringBuilder failSb = new StringBuilder();
String[] devSnArr = StringUtils.split(devSn, ",");
try {
for (String ds : devSnArr) {
hikvisionCall.updatePersonAuth(workerInfo, ds, sucSb, failSb, 2);
}
} catch (Exception e) {
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), e.getMessage(), "人员下发设备提醒", "1");
}
if (SecurityUtils.getUser().getUserId() != null) {
String title = "人员下发设备提醒";
String type = "1";
String msg = "";
String sucSbStr = sucSb.toString();
if (StringUtils.isNotBlank(sucSbStr)) {
sucSbStr += "下发成功:";
msg += sucSbStr + "";
}
String failSbStr = failSb.toString();
if (StringUtils.isNotBlank(failSbStr)) {
failSbStr += "下发失败:";
msg += failSbStr + "";
}
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);

View File

@ -22,7 +22,6 @@ import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper;
import com.zhgd.xmgl.modules.car.mapper.CarPassRecordMapper; import com.zhgd.xmgl.modules.car.mapper.CarPassRecordMapper;
import com.zhgd.xmgl.modules.car.mapper.CarTypeMapper; import com.zhgd.xmgl.modules.car.mapper.CarTypeMapper;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig; import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.worker.entity.*; import com.zhgd.xmgl.modules.worker.entity.*;
@ -265,7 +264,7 @@ public class HikvisionCall {
@ApiOperation(value = "按事件类型订阅事件", notes = "按事件类型订阅事件", httpMethod = "POST") @ApiOperation(value = "按事件类型订阅事件", notes = "按事件类型订阅事件", httpMethod = "POST")
@PostMapping(value = "/subscribeEvent") @PostMapping(value = "/subscribeEvent")
public Result subscribeEvent(@ApiIgnore @RequestBody SubscribeEventQo qo) { public Result subscribeEvent(@ApiIgnore @RequestBody SubscribeEventQo qo) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/eventService/v1/eventSubscriptionByEventTypes"; final String path = ARTEMIS_PATH + "/api/eventService/v1/eventSubscriptionByEventTypes";
String host = "https://" + qo.getArtemisConfigHost(); String host = "https://" + qo.getArtemisConfigHost();
@ -311,7 +310,13 @@ public class HikvisionCall {
Integer total = 0; Integer total = 0;
JSONArray listJa = new JSONArray(); JSONArray listJa = new JSONArray();
do { do {
String rs = getDoorEventsForHttp(project, param); String rs = null;
try {
rs = getDoorEventsForHttp(project, param);
} catch (Exception e) {
log.error("err:", e);
return;
}
JSONObject joData = HikvisionUtil.getJSONObjectData(rs); JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
if (joData != null) { if (joData != null) {
total = joData.getInteger("total"); total = joData.getInteger("total");
@ -426,7 +431,13 @@ public class HikvisionCall {
CompletableFuture.runAsync(() -> { CompletableFuture.runAsync(() -> {
for (Project project : projects) { for (Project project : projects) {
param.put("pageNo", 1); param.put("pageNo", 1);
String projectParkCode = getProjectParkCode(project); String projectParkCode = null;
try {
projectParkCode = getProjectParkCode(project);
} catch (Exception e) {
log.error("err:", e);
return;
}
if (StringUtils.isBlank(projectParkCode)) { if (StringUtils.isBlank(projectParkCode)) {
continue; continue;
} }
@ -434,7 +445,13 @@ public class HikvisionCall {
Integer total = 0; Integer total = 0;
JSONArray listJa = new JSONArray(); JSONArray listJa = new JSONArray();
do { do {
String rs = getCrossRecordsForHttp(project, param); String rs = null;
try {
rs = getCrossRecordsForHttp(project, param);
} catch (Exception e) {
log.error("err:", e);
return;
}
JSONObject joData = HikvisionUtil.getJSONObjectData(rs); JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
if (joData != null) { if (joData != null) {
total = joData.getInteger("total"); total = joData.getInteger("total");
@ -525,7 +542,7 @@ public class HikvisionCall {
* @return * @return
*/ */
@GetMapping("/getOrg") @GetMapping("/getOrg")
public Result getOrg() { public Result getOrg() throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
getOrg(project); getOrg(project);
return null; return null;
@ -537,7 +554,7 @@ public class HikvisionCall {
* @return * @return
*/ */
@GetMapping("/getPark") @GetMapping("/getPark")
public Result getParkList() { public Result getParkList() throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
JSONArray parkList = getParkList(project); JSONArray parkList = getParkList(project);
return null; return null;
@ -549,7 +566,7 @@ public class HikvisionCall {
* @return * @return
*/ */
@GetMapping("/getCarList") @GetMapping("/getCarList")
public Result getCarList() { public Result getCarList() throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
getCarList(project); getCarList(project);
return null; return null;
@ -561,7 +578,7 @@ public class HikvisionCall {
* @return * @return
*/ */
@GetMapping("/getPic") @GetMapping("/getPic")
public Result getPic() { public Result getPic() throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
String svrIndex = null; String svrIndex = null;
String platePicUrl = null; String platePicUrl = null;
@ -575,7 +592,7 @@ public class HikvisionCall {
* @return * @return
*/ */
@GetMapping("/getWorkInfo") @GetMapping("/getWorkInfo")
public Result getWorkInfo() { public Result getWorkInfo() throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
String svrIndex = null; String svrIndex = null;
String platePicUrl = null; String platePicUrl = null;
@ -590,7 +607,7 @@ public class HikvisionCall {
* @return * @return
*/ */
@GetMapping("/categorySearch") @GetMapping("/categorySearch")
public Result categorySearch() { public Result categorySearch() throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
String svrIndex = null; String svrIndex = null;
String platePicUrl = null; String platePicUrl = null;
@ -694,7 +711,7 @@ public class HikvisionCall {
* *
* @param workerInfo * @param workerInfo
*/ */
public void addWorkerForHikvision(WorkerInfo workerInfo) { public void addWorkerForHikvision(WorkerInfo workerInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -702,7 +719,7 @@ public class HikvisionCall {
addWorkerFromHttp(workerInfo, project); addWorkerFromHttp(workerInfo, project);
} }
private void addWorkerFromHttp(WorkerInfo workerInfo, Project project) { private void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/person/single/add"; final String path = ARTEMIS_PATH + "/api/resource/v2/person/single/add";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -754,7 +771,7 @@ public class HikvisionCall {
* *
* @param workerInfo * @param workerInfo
*/ */
public void editWorkerForHikvision(WorkerInfo workerInfo) { public void editWorkerForHikvision(WorkerInfo workerInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -769,7 +786,7 @@ public class HikvisionCall {
} }
} }
private void editWorkerFromHttp(WorkerInfo workerInfo, Project project) { private void editWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update"; final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -784,7 +801,7 @@ public class HikvisionCall {
* @param workerInfo * @param workerInfo
* @param project * @param project
*/ */
private void addWorkerFace(WorkerInfo workerInfo, Project project) { private void addWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl(); String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl();
if (StringUtils.isNotBlank(fieldAcquisitionUrl)) { if (StringUtils.isNotBlank(fieldAcquisitionUrl)) {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
@ -861,7 +878,7 @@ public class HikvisionCall {
* @param workerInfo * @param workerInfo
* @param project * @param project
*/ */
private void editWorkerFace(WorkerInfo workerInfo, Project project) { private void editWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project); ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project);
if (CollUtil.isNotEmpty(workerFaceIds)) { if (CollUtil.isNotEmpty(workerFaceIds)) {
String workerFaceId = workerFaceIds.get(0); String workerFaceId = workerFaceIds.get(0);
@ -883,7 +900,7 @@ public class HikvisionCall {
* *
* @param workerInfo * @param workerInfo
*/ */
public void deleteWorkerForHikvision(WorkerInfo workerInfo) { public void deleteWorkerForHikvision(WorkerInfo workerInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -893,7 +910,7 @@ public class HikvisionCall {
deleteWorkerFromHttp(workerInfo, project); deleteWorkerFromHttp(workerInfo, project);
} }
private void deleteWorkerFromHttp(WorkerInfo workerInfo, Project project) { private void deleteWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete"; final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -904,7 +921,7 @@ public class HikvisionCall {
sendNoticeForWorker("删除人员到海康isc", rs, workerInfo); sendNoticeForWorker("删除人员到海康isc", rs, workerInfo);
} }
private void deleteWorkerFace(WorkerInfo workerInfo, Project project) { private void deleteWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project); ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project);
if (CollUtil.isNotEmpty(workerFaceIds)) { if (CollUtil.isNotEmpty(workerFaceIds)) {
for (String workerFaceId : workerFaceIds) { for (String workerFaceId : workerFaceIds) {
@ -919,7 +936,7 @@ public class HikvisionCall {
* @param project * @param project
* @param workerFaceId * @param workerFaceId
*/ */
private void sendDeleteWorkerFace(Project project, String workerFaceId) { private void sendDeleteWorkerFace(Project project, String workerFaceId) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/delete"; final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/delete";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -935,7 +952,7 @@ public class HikvisionCall {
* @param project * @param project
* @return * @return
*/ */
private ArrayList<String> getWorkerFaceIds(WorkerInfo workerInfo, Project project) { private ArrayList<String> getWorkerFaceIds(WorkerInfo workerInfo, Project project) throws Exception {
JSONObject joData = getWorkerInfo(workerInfo, project); JSONObject joData = getWorkerInfo(workerInfo, project);
ArrayList<String> ids = new ArrayList<>(); ArrayList<String> ids = new ArrayList<>();
if (joData != null) { if (joData != null) {
@ -957,7 +974,7 @@ public class HikvisionCall {
* @param project * @param project
* @return * @return
*/ */
private JSONObject getWorkerInfo(WorkerInfo workerInfo, Project project) { private JSONObject getWorkerInfo(WorkerInfo workerInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo"; final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -988,7 +1005,7 @@ public class HikvisionCall {
* *
* @param carInfo * @param carInfo
*/ */
public void addCarInfoFromHttp(CarInfo carInfo) { public void addCarInfoFromHttp(CarInfo carInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1008,7 +1025,7 @@ public class HikvisionCall {
ifReservationCar(project, carInfo); ifReservationCar(project, carInfo);
} }
private void addCarInfoFromHttp(CarInfo carInfo, Project project) { private void addCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add"; final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1019,7 +1036,7 @@ public class HikvisionCall {
sendNoticeForCarInfo("添加车辆白名单到海康isc", rs, carInfo); sendNoticeForCarInfo("添加车辆白名单到海康isc", rs, carInfo);
} }
private String getCarInfoListFromHttp(String carNumber, Project project) { private String getCarInfoListFromHttp(String carNumber, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList"; final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1133,7 +1150,7 @@ public class HikvisionCall {
* *
* @param carInfo * @param carInfo
*/ */
public void editCarInfoForHikvision(CarInfo carInfo) { public void editCarInfoForHikvision(CarInfo carInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1163,7 +1180,7 @@ public class HikvisionCall {
ifReservationCar(project, carInfo); ifReservationCar(project, carInfo);
} }
private void editCarInfoFromHttp(CarInfo carInfo, Project project) { private void editCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update"; final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1172,7 +1189,7 @@ public class HikvisionCall {
sendNoticeForCarInfo("更新车辆白名单到海康isc", rs, carInfo); sendNoticeForCarInfo("更新车辆白名单到海康isc", rs, carInfo);
} }
private void ifBindGroup(Project project, int operation, CarInfo carInfo) { private void ifBindGroup(Project project, int operation, CarInfo carInfo) throws Exception {
JSONArray ja = categorySearch(project); JSONArray ja = categorySearch(project);
String categoryCode = getFixedCarGroupName(ja); String categoryCode = getFixedCarGroupName(ja);
if (StringUtils.isBlank(categoryCode)) { if (StringUtils.isBlank(categoryCode)) {
@ -1203,7 +1220,7 @@ public class HikvisionCall {
* *
* @param carInfo * @param carInfo
*/ */
public void deleteCarInfoForHikvision(CarInfo carInfo) { public void deleteCarInfoForHikvision(CarInfo carInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1213,7 +1230,7 @@ public class HikvisionCall {
deleteReservationCarInfo(carInfo, project); deleteReservationCarInfo(carInfo, project);
} }
private void deleteCarInfoForHikvision(CarInfo carInfo, Project project) { private void deleteCarInfoForHikvision(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete"; final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1259,7 +1276,7 @@ public class HikvisionCall {
* @param carInfo * @param carInfo
* @param project * @param project
*/ */
private JSONArray getReservationCarInfoList(CarInfo carInfo, Project project) { private JSONArray getReservationCarInfoList(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page"; final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1274,7 +1291,7 @@ public class HikvisionCall {
return null; return null;
} }
private HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(CarInfo carInfo, Project project) { private HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(CarInfo carInfo, Project project) throws Exception {
JSONArray parkList = getParkList(project); JSONArray parkList = getParkList(project);
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo(); HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
if (parkList != null && parkList.size() > 0) { if (parkList != null && parkList.size() > 0) {
@ -1305,7 +1322,7 @@ public class HikvisionCall {
* @return * @return
*/ */
public static String getHikvisionEventsPicture(HikvisionEventsPictureRq rq, String artemisConfigHost, String public static String getHikvisionEventsPicture(HikvisionEventsPictureRq rq, String artemisConfigHost, String
artemisConfigAppKey, String artemisConfigAppSecret) {//获取视频事件的图片 artemisConfigAppKey, String artemisConfigAppSecret) throws Exception {//获取视频事件的图片
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/video/v1/events/picture"; final String path = ARTEMIS_PATH + "/api/video/v1/events/picture";
String host = "https://" + artemisConfigHost; String host = "https://" + artemisConfigHost;
@ -1327,7 +1344,7 @@ public class HikvisionCall {
* *
* @param enterpriseInfo * @param enterpriseInfo
*/ */
public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, enterpriseInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, enterpriseInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1350,7 +1367,7 @@ public class HikvisionCall {
* *
* @param enterpriseInfo * @param enterpriseInfo
*/ */
public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, enterpriseInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, enterpriseInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1369,7 +1386,7 @@ public class HikvisionCall {
* @param enterpriseId * @param enterpriseId
* @param projectSn * @param projectSn
*/ */
public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn) { public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, projectSn)); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, projectSn));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1391,7 +1408,7 @@ public class HikvisionCall {
* *
* @param teamInfo * @param teamInfo
*/ */
public void addTeamInfoForHikvision(TeamInfo teamInfo) { public void addTeamInfoForHikvision(TeamInfo teamInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, teamInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, teamInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1414,7 +1431,7 @@ public class HikvisionCall {
* *
* @param teamInfo * @param teamInfo
*/ */
public void editTeamInfoForHikvision(TeamInfo teamInfo) { public void editTeamInfoForHikvision(TeamInfo teamInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, teamInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, teamInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1427,7 +1444,7 @@ public class HikvisionCall {
} }
} }
private void editOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) { private void editOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/org/single/update"; final String path = ARTEMIS_PATH + "/api/resource/v1/org/single/update";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1435,7 +1452,7 @@ public class HikvisionCall {
sendNoticeForOrg("更新组织到海康isc", rs, hikvisionOrganization.getOrgName()); sendNoticeForOrg("更新组织到海康isc", rs, hikvisionOrganization.getOrgName());
} }
private void deleteOrgFromHttp(Project project, List<Long> idList, String orgName) { private void deleteOrgFromHttp(Project project, List<Long> idList, String orgName) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete"; final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1445,7 +1462,7 @@ public class HikvisionCall {
sendNoticeForOrg("删除组织到海康isc", rs, orgName); sendNoticeForOrg("删除组织到海康isc", rs, orgName);
} }
private void addOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) { private void addOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1460,7 +1477,7 @@ public class HikvisionCall {
* *
* @param teamInfo * @param teamInfo
*/ */
public void deleteTeamInfoForHikvision(TeamInfo teamInfo) { public void deleteTeamInfoForHikvision(TeamInfo teamInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, teamInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, teamInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1473,7 +1490,7 @@ public class HikvisionCall {
* *
* @param departmentInfo * @param departmentInfo
*/ */
public void addDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { public void addDepartmentInfoForHikvision(DepartmentInfo departmentInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, departmentInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, departmentInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1496,7 +1513,7 @@ public class HikvisionCall {
* *
* @param departmentInfo * @param departmentInfo
*/ */
public void editDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { public void editDepartmentInfoForHikvision(DepartmentInfo departmentInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, departmentInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, departmentInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1515,7 +1532,7 @@ public class HikvisionCall {
* *
* @param departmentInfo * @param departmentInfo
*/ */
public void deleteDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { public void deleteDepartmentInfoForHikvision(DepartmentInfo departmentInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, departmentInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, departmentInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
@ -1528,7 +1545,7 @@ public class HikvisionCall {
* *
* @param project * @param project
*/ */
public void editProjectForHikvision(Project project) { public void editProjectForHikvision(Project project) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
@ -1541,7 +1558,7 @@ public class HikvisionCall {
* *
* @param project * @param project
*/ */
public void getOrg(Project project) { public void getOrg(Project project) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
@ -1561,7 +1578,7 @@ public class HikvisionCall {
* @param project * @param project
* @param orgIndex * @param orgIndex
*/ */
public String getOrgV2(Project project, String orgIndex) { public String getOrgV2(Project project, String orgIndex) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
@ -1587,7 +1604,7 @@ public class HikvisionCall {
* @param orgIndex * @param orgIndex
* @return * @return
*/ */
public boolean existOrg(Project project, String orgIndex) { public boolean existOrg(Project project, String orgIndex) throws Exception {
String rs = getOrgV2(project, orgIndex); String rs = getOrgV2(project, orgIndex);
JSONObject jo = HikvisionUtil.getJSONObjectData(rs); JSONObject jo = HikvisionUtil.getJSONObjectData(rs);
return jo.getJSONArray("list").size() > 0; return jo.getJSONArray("list").size() > 0;
@ -1598,7 +1615,7 @@ public class HikvisionCall {
* *
* @param project * @param project
*/ */
public JSONArray getParkList(Project project) { public JSONArray getParkList(Project project) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
@ -1644,7 +1661,7 @@ public class HikvisionCall {
} }
} }
private void reservationCarFromHttp(Project project, CarInfo carInfo) { private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition"; final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1655,7 +1672,7 @@ public class HikvisionCall {
} }
} }
private ParkReservation getParkReservation(Project project, CarInfo carInfo) { private ParkReservation getParkReservation(Project project, CarInfo carInfo) throws Exception {
String parkIndexCode = getProjectParkCode(project); String parkIndexCode = getProjectParkCode(project);
if (StringUtils.isNotBlank(parkIndexCode)) { if (StringUtils.isNotBlank(parkIndexCode)) {
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId()); WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
@ -1681,7 +1698,7 @@ public class HikvisionCall {
* @param project * @param project
* @return * @return
*/ */
public String getProjectParkCode(Project project) { public String getProjectParkCode(Project project) throws Exception {
JSONArray parkList = getParkList(project); JSONArray parkList = getParkList(project);
if (parkList != null && parkList.size() > 0) { if (parkList != null && parkList.size() > 0) {
for (int i = 0; i < parkList.size(); i++) { for (int i = 0; i < parkList.size(); i++) {
@ -1701,7 +1718,7 @@ public class HikvisionCall {
* *
* @param project * @param project
*/ */
public void getCarList(Project project) { public void getCarList(Project project) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
@ -1739,7 +1756,7 @@ public class HikvisionCall {
* @param vehicleIds * @param vehicleIds
* @param carInfo * @param carInfo
*/ */
public void carCategoryBind(Project project, Integer operation, String categoryCode, String vehicleIds, CarInfo carInfo) { public void carCategoryBind(Project project, Integer operation, String categoryCode, String vehicleIds, CarInfo carInfo) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
@ -1761,7 +1778,7 @@ public class HikvisionCall {
/** /**
* 查询车辆分类 * 查询车辆分类
*/ */
public JSONArray categorySearch(Project project) { public JSONArray categorySearch(Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/pms/v1/car/category/search"; final String path = ARTEMIS_PATH + "/api/pms/v1/car/category/search";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1776,7 +1793,7 @@ public class HikvisionCall {
* *
* @param project * @param project
*/ */
public JSONObject getCameraOnline(Project project) { public JSONObject getCameraOnline(Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/nms/v1/online/camera/get"; final String path = ARTEMIS_PATH + "/api/nms/v1/online/camera/get";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1797,7 +1814,7 @@ public class HikvisionCall {
* *
* @param project * @param project
*/ */
public JSONObject getEncodeDeviceOnline(Project project) { public JSONObject getEncodeDeviceOnline(Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/nms/v1/online/encode_device/get"; final String path = ARTEMIS_PATH + "/api/nms/v1/online/encode_device/get";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1818,7 +1835,7 @@ public class HikvisionCall {
* *
* @param config * @param config
*/ */
public JSONObject getVqdForHikvision(ProjectVideoConfig config, JSONObject requestParam) { public JSONObject getVqdForHikvision(ProjectVideoConfig config, JSONObject requestParam) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/nms/v1/vqd/list"; final String path = ARTEMIS_PATH + "/api/nms/v1/vqd/list";
String host = "https://" + config.getAccount() + ":" + config.getPassword(); String host = "https://" + config.getAccount() + ":" + config.getPassword();
@ -1839,7 +1856,7 @@ public class HikvisionCall {
* @param project * @param project
* @param param * @param param
*/ */
public String getDoorEventsForHttp(Project project, JSONObject param) { public String getDoorEventsForHttp(Project project, JSONObject param) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
@ -1862,7 +1879,7 @@ public class HikvisionCall {
* @param project * @param project
* @param param * @param param
*/ */
public String getCrossRecordsForHttp(Project project, JSONObject param) { public String getCrossRecordsForHttp(Project project, JSONObject param) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
@ -1884,37 +1901,44 @@ public class HikvisionCall {
* *
* @param project * @param project
* @param param * @param param
* @return
*/ */
public String doorSearchV2ForHttp(Project project, JSONObject param) { public JSONObject doorSearchV2ForHttp(Project project, JSONObject param) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/door/search"; final String path = ARTEMIS_PATH + "/api/resource/v2/door/search";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
return HikvisionUtil.doPost(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); return JSON.parseObject(HikvisionUtil.doPost(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
} }
/** /**
* 简单同步权限下载_根据人员与设备通道指定下载 * 简单同步权限下载_根据人员与设备通道指定下载
* *
* @param project * @param project
* @return
*/ */
public String simpleDownload(Project project, String param) { public JSONObject simpleDownload(Project project, String param) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/simpleDownload"; final String path = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/simpleDownload";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
return HikvisionUtil.doPost(host, path, param, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); return JSON.parseObject(HikvisionUtil.doPost(host, path, param, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
} }
public void addPersonAuth(WorkerInfo workerInfo, ProjectUfaceConfig tempProjectUfaceConfig, String devSn) { /**
* @param i 0新增2删除
*/
public void updatePersonAuth(WorkerInfo workerInfo, String devSn, StringBuilder sucSb, StringBuilder failSb, int i) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
UfaceDev dev = ufaceDevMapper.selectOne(new LambdaQueryWrapper<UfaceDev>()
.eq(UfaceDev::getDevSn, devSn));
String json = "{\n" + String json = "{\n" +
" \"pageNo\": 1,\n" + " \"pageNo\": 1,\n" +
" \"pageSize\": 1,\n" + " \"pageSize\": 1,\n" +
@ -1928,13 +1952,15 @@ public class HikvisionCall {
" }\n" + " }\n" +
" ],\n" + " ],\n" +
"}"; "}";
String rs = doorSearchV2ForHttp(project, JSONObject.parseObject(json)); JSONObject rs = doorSearchV2ForHttp(project, JSONObject.parseObject(json));
if (rs == null) { if (HikvisionUtil.isFail(rs)) {
throw new OpenAlertException("添加人员权限网络超时name:" + workerInfo.getWorkerName() + ",devSn:" + devSn); failSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + " fail" + rs.toJSONString() + ",");
return;
} }
JSONObject jo = HikvisionUtil.getJSONObjectData(rs); JSONObject jo = HikvisionUtil.getJSONObjectData(rs);
JSONArray listJa = jo.getJSONArray("list"); JSONArray listJa = jo.getJSONArray("list");
if (CollUtil.isEmpty(listJa)) { if (CollUtil.isEmpty(listJa)) {
failSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + " failisc不存在该设备,");
return; return;
} }
String channelNo = listJa.getJSONObject(0).getString("channelNo"); String channelNo = listJa.getJSONObject(0).getString("channelNo");
@ -1947,14 +1973,21 @@ public class HikvisionCall {
"\t},\n" + "\t},\n" +
"\t\"personInfo\": {\n" + "\t\"personInfo\": {\n" +
"\t\t\"personId\": \"" + workerInfo.getId() + "\",\n" + "\t\t\"personId\": \"" + workerInfo.getId() + "\",\n" +
"\t\t\"operatorType\": 0\n" + "\t\t\"operatorType\": " + i + "\n" +
"\t}\n" + "\t}\n" +
"}"; "}";
String sdRs = simpleDownload(project, sdStr); JSONObject sdRs = simpleDownload(project, sdStr);
if (sdRs == null) { if (HikvisionUtil.isFail(sdRs)) {
throw new OpenAlertException("添加人员权限网络超时name:" + workerInfo.getWorkerName() + ",devSn:" + devSn); failSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + " fail" + sdRs.toJSONString() + ",");
return;
}
JSONObject sdRsJo = HikvisionUtil.getJSONObjectData(sdRs);
Integer downloadResult = sdRsJo.getJSONObject("resourceDownloadResult").getInteger("downloadResult");
if (downloadResult == 0) {
sucSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + ",");
} else {
failSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + ",fail" + sdRsJo.toJSONString());
} }
} }
} }

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.project.service.impl; package com.zhgd.xmgl.modules.project.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -137,6 +138,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
if (Objects.equals(workerInfo.getDevType(), 1)) { if (Objects.equals(workerInfo.getDevType(), 1)) {
param.put("devIds", workerInfo.getUfaceDevId()); param.put("devIds", workerInfo.getUfaceDevId());
} else if (Objects.equals(workerInfo.getDevType(), 2)) { } else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId(); String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StringUtils.isEmpty(ufaceDevGroupId)) { if (StringUtils.isEmpty(ufaceDevGroupId)) {
ufaceDevGroupId = "0"; ufaceDevGroupId = "0";
@ -222,9 +224,6 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
param.put("devIds", workerInfo.getUfaceDevId()); param.put("devIds", workerInfo.getUfaceDevId());
} }
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param); List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
/*QueryWrapper<UfaceDev> qw =new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getProjectSn, workerInfo.getProjectSn());
List<UfaceDev> list=ufaceDevMapper.selectList(qw);*/
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
StringBuilder devBuilder = new StringBuilder(); StringBuilder devBuilder = new StringBuilder();
StringBuilder devIdBuilder = new StringBuilder(); StringBuilder devIdBuilder = new StringBuilder();
@ -273,6 +272,64 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} }
} }
} }
if (tempProjectUfaceConfig.getSupplierType() == 9) {
//海康门禁isc
String devSns = "";
String notDevSns = "";
if (Objects.equals(workerInfo.getDevType(), 1)) {
devSns = workerInfo.getUfaceDevId();
if (StrUtil.isNotBlank(devSns)) {
List<UfaceDev> existList = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
.eq(UfaceDev::getProjectSn, workerInfo.getProjectSn())
.in(UfaceDev::getId, StrUtil.split(devSns, ","))
);
List<UfaceDev> notExistList = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
.eq(UfaceDev::getProjectSn, workerInfo.getProjectSn())
.notIn(UfaceDev::getId, StrUtil.split(devSns, ","))
);
if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns);
}
if (CollUtil.isNotEmpty(existList)) {
devSns = StrUtil.join(",", existList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.addPersonAuth(workerInfo, devSns);
}
} else {
//只删除
List<UfaceDev> notExistList = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
.eq(UfaceDev::getProjectSn, workerInfo.getProjectSn()));
if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns);
}
}
} else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StrUtil.isNotBlank(ufaceDevGroupId)) {
List<UfaceDev> listForIsc = ufaceDevMapper.getUfaceDevListForIsc(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn());
List<UfaceDev> notExistList = ufaceDevMapper.getUfaceDevListForIscNotExist(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn());
if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns);
}
if (CollUtil.isNotEmpty(listForIsc)) {
devSns = StrUtil.join(",", listForIsc.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.addPersonAuth(workerInfo, devSns);
}
} else {
//只删除
List<UfaceDev> notExistList = ufaceDevMapper.getUfaceDevListForIscNotExist(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn());
if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns);
}
}
}
}
} }
} }
@ -314,10 +371,43 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
String devSn = devBuilder.toString(); String devSn = devBuilder.toString();
String devId = devIdBuilder.toString(); String devId = devIdBuilder.toString();
log.info("准备下发人员名称:{}devSn:{},devId:{}", workerInfo.getWorkerName(), devSn, devId); log.info("准备下发人员名称:{}devSn:{},devId:{}", workerInfo.getWorkerName(), devSn, devId);
sendDev(projectUfaceConfig, workerInfo, devSn, devId); if (Objects.equals(workerInfo.getDevType(), 1)) {
sendDev(projectUfaceConfig, workerInfo, devSn, devId);
} else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StringUtils.isEmpty(ufaceDevGroupId)) {
ufaceDevGroupId = "0";
}
List<Long> ufaceIds = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper<UfaceDevToGroup>()
.in(UfaceDevToGroup::getUfaceDevGroupId, Arrays.asList(StringUtils.split(ufaceDevGroupId, ",")))).stream().map(UfaceDevToGroup::getUfaceDevId).collect(Collectors.toList());
if (CollUtil.isEmpty(ufaceIds)) {
ufaceIds.add(0L);
}
ufaceIds.stream().distinct();
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
param.put("devIds", StringUtils.join(ufaceIds, ","));
List<UfaceDev> list1 = ufaceDevMapper.selectUserUfaceDevList(param);
if (list1 != null && list1.size() > 0) {
StringBuilder devBuilder1 = new StringBuilder();
StringBuilder devIdBuilder1 = new StringBuilder();
for (UfaceDev dev : list1) {
if (devBuilder1.length() > 0) {
devBuilder1.append(",");
}
if (devIdBuilder1.length() > 0) {
devIdBuilder1.append(",");
}
devBuilder1.append(dev.getDevSn());
devIdBuilder1.append(dev.getDeviceId());
}
sendDev(projectUfaceConfig, workerInfo, devBuilder1.toString(), devIdBuilder1.toString());
}
}
} }
public void sendDev(ProjectUfaceConfig tempProjectUfaceConfig, WorkerInfo workerInfo, String devSn, String devId) { public void sendDev(ProjectUfaceConfig tempProjectUfaceConfig, WorkerInfo workerInfo, String devSns, String devIds) {
log.info("supplierType:{}", tempProjectUfaceConfig.getSupplierType()); log.info("supplierType:{}", tempProjectUfaceConfig.getSupplierType());
//1杭州宇泛智能科技,2用jdpush推送,3.mqtt,4.芊熠智能,5佳信捷,6佳信捷新设备 //1杭州宇泛智能科技,2用jdpush推送,3.mqtt,4.芊熠智能,5佳信捷,6佳信捷新设备
if (tempProjectUfaceConfig.getSupplierType() == 1) { if (tempProjectUfaceConfig.getSupplierType() == 1) {
@ -329,22 +419,22 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} }
UniUbiUtil.addPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(), UniUbiUtil.addPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(),
workerInfo.getWorkerName(), workerInfo.getAttendanceNumber(), workerInfo.getIdCard(), workerInfo.getWorkerName(), workerInfo.getAttendanceNumber(), workerInfo.getIdCard(),
image, devSn); image, devSns);
} else if (tempProjectUfaceConfig.getSupplierType() == 4) { } else if (tempProjectUfaceConfig.getSupplierType() == 4) {
QYUfaceUtil.addOrUpdatePerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppSecret(), 1, workerInfo.getIdCard(), workerInfo.getWorkerName(), QYUfaceUtil.addOrUpdatePerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppSecret(), 1, workerInfo.getIdCard(), workerInfo.getWorkerName(),
"", workerInfo.getPhoneNumber(), workerInfo.getIdCard(), workerInfo.getAttendanceNumber(), workerInfo.getNation(), workerInfo.getSex(), workerInfo.getBirthday(), devId.split(","), basePath + "/" + workerInfo.getFieldAcquisitionUrl()); "", workerInfo.getPhoneNumber(), workerInfo.getIdCard(), workerInfo.getAttendanceNumber(), workerInfo.getNation(), workerInfo.getSex(), workerInfo.getBirthday(), devIds.split(","), basePath + "/" + workerInfo.getFieldAcquisitionUrl());
} else if (tempProjectUfaceConfig.getSupplierType() == 5) { } else if (tempProjectUfaceConfig.getSupplierType() == 5) {
//佳信捷设备 //佳信捷设备
JxjUfaceUtil.addWorkerInfo(workerInfo, tempProjectUfaceConfig, serverUrl + "/image/"); JxjUfaceUtil.addWorkerInfo(workerInfo, tempProjectUfaceConfig, serverUrl + "/image/");
} else if (tempProjectUfaceConfig.getSupplierType() == 6) { } else if (tempProjectUfaceConfig.getSupplierType() == 6) {
//佳信捷新设备 //佳信捷新设备
JxjNewUfaceDevUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, basePath, devSn, jxjDevImageType); JxjNewUfaceDevUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, basePath, devSns, jxjDevImageType);
} else if (tempProjectUfaceConfig.getSupplierType() == 7) { } else if (tempProjectUfaceConfig.getSupplierType() == 7) {
//海康门禁sdk //海康门禁sdk
HikvisionUfaceSDKUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, devSn); HikvisionUfaceSDKUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, devSns);
} else if (tempProjectUfaceConfig.getSupplierType() == 9) { } else if (tempProjectUfaceConfig.getSupplierType() == 9) {
//海康门禁isc //海康门禁isc
asyncHikvision.addPersonAuth(workerInfo, tempProjectUfaceConfig, devSn); asyncHikvision.addPersonAuth(workerInfo, devSns);
} }
} }

View File

@ -62,7 +62,6 @@ public class UfaceDevGroupController {
@ApiOperation(value = "列表查询门禁设备-分组信息", notes = "列表查询门禁设备-分组信息", httpMethod = "GET") @ApiOperation(value = "列表查询门禁设备-分组信息", notes = "列表查询门禁设备-分组信息", httpMethod = "GET")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<List<UfaceDevGroup>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) { public Result<List<UfaceDevGroup>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
int i = 1 / 0;
return Result.success(ufaceDevGroupService.queryList(paramMap)); return Result.success(ufaceDevGroupService.queryList(paramMap));
} }

View File

@ -38,4 +38,8 @@ public interface UfaceDevMapper extends BaseMapper<UfaceDev> {
HashMap<String, Object> countUfaceDevOnOffline(String projectSn); HashMap<String, Object> countUfaceDevOnOffline(String projectSn);
List<UfaceDev> getUfaceDevList(@Param(Constants.WRAPPER) QueryWrapper<UfaceDev> qw); List<UfaceDev> getUfaceDevList(@Param(Constants.WRAPPER) QueryWrapper<UfaceDev> qw);
List<UfaceDev> getUfaceDevListForIsc(@Param("list") List<String> groupIdList, @Param("projectSn") String projectSn);
List<UfaceDev> getUfaceDevListForIscNotExist(@Param("list") List<String> groupIdList, @Param("projectSn") String projectSn);
} }

View File

@ -126,4 +126,28 @@
from uface_dev ud from uface_dev ud
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="getUfaceDevListForIsc" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev">
select distinct ud.* from uface_dev ud
join uface_dev_to_group udtg on ud.id = udtg.uface_dev_id
where udtg.uface_dev_group_id in
<foreach collection="list" item="item" index="index"
separator="," open="(" close=")">
#{item}
</foreach>
</select>
<select id="getUfaceDevListForIscNotExist" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev">
select distinct ud.* from uface_dev ud
LEFT join uface_dev_to_group udtg on ud.id = udtg.uface_dev_id
where (1=1
<if test="list != null">
and udtg.uface_dev_group_id not in
<foreach collection="list" item="item" index="index"
separator="," open="(" close=")">
#{item}
</foreach>
</if>
OR udtg.id is null)
and ud.project_sn =#{projectSn}
</select>
</mapper> </mapper>

View File

@ -21,8 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Description: 门禁设备-分组 * @Description: 门禁设备-分组
@ -64,9 +66,15 @@ public class UfaceDevGroupServiceImpl extends ServiceImpl<UfaceDevGroupMapper, U
private List<UfaceDevGroup> dealList(List<UfaceDevGroup> list) { private List<UfaceDevGroup> dealList(List<UfaceDevGroup> list) {
for (UfaceDevGroup group : list) { for (UfaceDevGroup group : list) {
Integer i = ufaceDevToGroupMapper.selectCount(new LambdaQueryWrapper<UfaceDevToGroup>() List<UfaceDevToGroup> toList = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper<UfaceDevToGroup>()
.eq(UfaceDevToGroup::getUfaceDevGroupId, group.getId())); .eq(UfaceDevToGroup::getUfaceDevGroupId, group.getId()));
group.setDevCount(i); group.setDevCount(toList.size());
List<UfaceDev> ufaceDevs = new ArrayList<>();
if (toList.size() != 0) {
ufaceDevs = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
.in(UfaceDev::getId, toList.stream().map(UfaceDevToGroup::getUfaceDevId).collect(Collectors.toList())));
}
group.setUfaceDevList(ufaceDevs);
} }
return list; return list;
} }

View File

@ -1,7 +1,6 @@
package com.zhgd.xmgl.util; package com.zhgd.xmgl.util;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hikvision.artemis.sdk.Client; import com.hikvision.artemis.sdk.Client;
@ -9,9 +8,7 @@ import com.hikvision.artemis.sdk.Request;
import com.hikvision.artemis.sdk.Response; import com.hikvision.artemis.sdk.Response;
import com.hikvision.artemis.sdk.constant.Constants; import com.hikvision.artemis.sdk.constant.Constants;
import com.hikvision.artemis.sdk.enums.Method; import com.hikvision.artemis.sdk.enums.Method;
import com.zhgd.xmgl.modules.basicdata.entity.HikvisionRequestRetry;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
@ -25,31 +22,20 @@ import java.util.Objects;
@Component @Component
public class HikvisionUtil { public class HikvisionUtil {
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) { public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) throws Exception {
return doPost(host, path, body, querys, appKey, appSecret, null);
}
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret, Long hikvisionRequestRetryId) {
log.info("HikvisionUtil#doPost.url:{}", host + path); log.info("HikvisionUtil#doPost.url:{}", host + path);
log.info("HikvisionUtil#doPost.body:{}", body); log.info("HikvisionUtil#doPost.body:{}", body);
String responseStr = null; Map<String, String> headers = new HashMap();
boolean isException = false; headers.put("Accept", "*/*");
try { headers.put("Content-Type", "application/json");
Map<String, String> headers = new HashMap(); //Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT);
headers.put("Accept", "*/*"); Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT * 10);
headers.put("Content-Type", "application/json"); request.setHeaders(headers);
//Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT); request.setQuerys(querys);
Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT * 10); request.setStringBody(body);
request.setHeaders(headers); Response response = Client.execute(request);
request.setQuerys(querys); String responseStr = getResponseResult(response);
request.setStringBody(body); log.info("HikvisionUtil#doPost.getResponseResult:{}", responseStr);
Response response = Client.execute(request);
responseStr = getResponseResult(response);
log.info("HikvisionUtil#doPost.getResponseResult:{}", responseStr);
} catch (Exception var10) {
isException = true;
log.error("HikvisionUtil#doPost.error:{}", var10.getMessage(), var10);
}
return responseStr; return responseStr;
} }
@ -66,15 +52,12 @@ public class HikvisionUtil {
} }
/** /**
* 获取data结果 * 成功后获取data结果
* *
* @param rs * @param rs
* @return * @return
*/ */
public static JSONObject getJSONObjectData(String rs) { public static JSONObject getJSONObjectData(String rs) {
if (StrUtil.isBlank(rs)) {
return null;
}
JSONObject rsJo = JSONObject.parseObject(rs); JSONObject rsJo = JSONObject.parseObject(rs);
String code = rsJo.getString("code"); String code = rsJo.getString("code");
if (Objects.equals(code, "0")) { if (Objects.equals(code, "0")) {
@ -85,6 +68,22 @@ public class HikvisionUtil {
} }
} }
/**
* 成功后获取data结果
*
* @param rsJo
* @return
*/
public static JSONObject getJSONObjectData(JSONObject rsJo) {
String code = rsJo.getString("code");
if (Objects.equals(code, "0")) {
return rsJo.getJSONObject("data");
} else {
log.error("海康解析结果失败:{}", rsJo.toJSONString());
return null;
}
}
public static JSONArray getJSONArrayData(String rs) { public static JSONArray getJSONArrayData(String rs) {
if (StrUtil.isBlank(rs)) { if (StrUtil.isBlank(rs)) {
return null; return null;
@ -115,5 +114,35 @@ public class HikvisionUtil {
} }
} }
/**
* 是否请求成功
*
* @param rsJo
* @return
*/
public static boolean isSuccess(JSONObject rsJo) {
String code = rsJo.getString("code");
if (Objects.equals(code, "0")) {
return true;
} else {
return false;
}
}
/**
* 是否请求成功
*
* @param rsJo
* @return
*/
public static boolean isFail(JSONObject rsJo) {
String code = rsJo.getString("code");
if (Objects.equals(code, "0")) {
return false;
} else {
return true;
}
}
} }