diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index 6ebd39058..6bff04fc7 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -242,7 +242,7 @@ public class AsyncHikvision { * @param projectVideoConfig * @param indexCodes */ - private void addVqdForHikvisionBatch(ProjectVideoConfig projectVideoConfig, ArrayList indexCodes) { + private void addVqdForHikvisionBatch(ProjectVideoConfig projectVideoConfig, ArrayList indexCodes) throws Exception { JSONObject requestParam = new JSONObject(); requestParam.put("pageNo", 1); requestParam.put("pageSize", 20); @@ -264,14 +264,82 @@ public class AsyncHikvision { } @Async - public void addPersonAuth(WorkerInfo workerInfo, ProjectUfaceConfig tempProjectUfaceConfig, String devSn) { + public void addPersonAuth(WorkerInfo workerInfo, String devSn) { try { if (StringUtils.isBlank(devSn)) { return; } + StringBuilder sucSb = new StringBuilder(); + StringBuilder failSb = new StringBuilder(); String[] devSnArr = StringUtils.split(devSn, ","); - for (String ds : devSnArr) { - hikvisionCall.addPersonAuth(workerInfo, tempProjectUfaceConfig, ds); + try { + 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) { log.error("海康:", e); diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index 3e4ec8fab..f37c83c5a 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -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.CarTypeMapper; 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.mapper.ProjectMapper; import com.zhgd.xmgl.modules.worker.entity.*; @@ -265,7 +264,7 @@ public class HikvisionCall { @ApiOperation(value = "按事件类型订阅事件", notes = "按事件类型订阅事件", httpMethod = "POST") @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 path = ARTEMIS_PATH + "/api/eventService/v1/eventSubscriptionByEventTypes"; String host = "https://" + qo.getArtemisConfigHost(); @@ -311,7 +310,13 @@ public class HikvisionCall { Integer total = 0; JSONArray listJa = new JSONArray(); 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); if (joData != null) { total = joData.getInteger("total"); @@ -426,7 +431,13 @@ public class HikvisionCall { CompletableFuture.runAsync(() -> { for (Project project : projects) { 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)) { continue; } @@ -434,7 +445,13 @@ public class HikvisionCall { Integer total = 0; JSONArray listJa = new JSONArray(); 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); if (joData != null) { total = joData.getInteger("total"); @@ -525,7 +542,7 @@ public class HikvisionCall { * @return */ @GetMapping("/getOrg") - public Result getOrg() { + public Result getOrg() throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); getOrg(project); return null; @@ -537,7 +554,7 @@ public class HikvisionCall { * @return */ @GetMapping("/getPark") - public Result getParkList() { + public Result getParkList() throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); JSONArray parkList = getParkList(project); return null; @@ -549,7 +566,7 @@ public class HikvisionCall { * @return */ @GetMapping("/getCarList") - public Result getCarList() { + public Result getCarList() throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); getCarList(project); return null; @@ -561,7 +578,7 @@ public class HikvisionCall { * @return */ @GetMapping("/getPic") - public Result getPic() { + public Result getPic() throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); String svrIndex = null; String platePicUrl = null; @@ -575,7 +592,7 @@ public class HikvisionCall { * @return */ @GetMapping("/getWorkInfo") - public Result getWorkInfo() { + public Result getWorkInfo() throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); String svrIndex = null; String platePicUrl = null; @@ -590,7 +607,7 @@ public class HikvisionCall { * @return */ @GetMapping("/categorySearch") - public Result categorySearch() { + public Result categorySearch() throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947")); String svrIndex = null; String platePicUrl = null; @@ -694,7 +711,7 @@ public class HikvisionCall { * * @param workerInfo */ - public void addWorkerForHikvision(WorkerInfo workerInfo) { + public void addWorkerForHikvision(WorkerInfo workerInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, workerInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -702,7 +719,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v2/person/single/add"; String host = "https://" + project.getArtemisConfigHost(); @@ -754,7 +771,7 @@ public class HikvisionCall { * * @param workerInfo */ - public void editWorkerForHikvision(WorkerInfo workerInfo) { + public void editWorkerForHikvision(WorkerInfo workerInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, workerInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { 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 path = ARTEMIS_PATH + "/api/resource/v1/person/single/update"; String host = "https://" + project.getArtemisConfigHost(); @@ -784,7 +801,7 @@ public class HikvisionCall { * @param workerInfo * @param project */ - private void addWorkerFace(WorkerInfo workerInfo, Project project) { + private void addWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl(); if (StringUtils.isNotBlank(fieldAcquisitionUrl)) { final String ARTEMIS_PATH = "/artemis"; @@ -861,7 +878,7 @@ public class HikvisionCall { * @param workerInfo * @param project */ - private void editWorkerFace(WorkerInfo workerInfo, Project project) { + private void editWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { ArrayList workerFaceIds = getWorkerFaceIds(workerInfo, project); if (CollUtil.isNotEmpty(workerFaceIds)) { String workerFaceId = workerFaceIds.get(0); @@ -883,7 +900,7 @@ public class HikvisionCall { * * @param workerInfo */ - public void deleteWorkerForHikvision(WorkerInfo workerInfo) { + public void deleteWorkerForHikvision(WorkerInfo workerInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, workerInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -893,7 +910,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete"; String host = "https://" + project.getArtemisConfigHost(); @@ -904,7 +921,7 @@ public class HikvisionCall { sendNoticeForWorker("删除人员到海康isc", rs, workerInfo); } - private void deleteWorkerFace(WorkerInfo workerInfo, Project project) { + private void deleteWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { ArrayList workerFaceIds = getWorkerFaceIds(workerInfo, project); if (CollUtil.isNotEmpty(workerFaceIds)) { for (String workerFaceId : workerFaceIds) { @@ -919,7 +936,7 @@ public class HikvisionCall { * @param project * @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 path = ARTEMIS_PATH + "/api/resource/v1/face/single/delete"; String host = "https://" + project.getArtemisConfigHost(); @@ -935,7 +952,7 @@ public class HikvisionCall { * @param project * @return */ - private ArrayList getWorkerFaceIds(WorkerInfo workerInfo, Project project) { + private ArrayList getWorkerFaceIds(WorkerInfo workerInfo, Project project) throws Exception { JSONObject joData = getWorkerInfo(workerInfo, project); ArrayList ids = new ArrayList<>(); if (joData != null) { @@ -957,7 +974,7 @@ public class HikvisionCall { * @param project * @return */ - private JSONObject getWorkerInfo(WorkerInfo workerInfo, Project project) { + private JSONObject getWorkerInfo(WorkerInfo workerInfo, Project project) throws Exception { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo"; String host = "https://" + project.getArtemisConfigHost(); @@ -988,7 +1005,7 @@ public class HikvisionCall { * * @param carInfo */ - public void addCarInfoFromHttp(CarInfo carInfo) { + public void addCarInfoFromHttp(CarInfo carInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, carInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1008,7 +1025,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add"; String host = "https://" + project.getArtemisConfigHost(); @@ -1019,7 +1036,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList"; String host = "https://" + project.getArtemisConfigHost(); @@ -1133,7 +1150,7 @@ public class HikvisionCall { * * @param carInfo */ - public void editCarInfoForHikvision(CarInfo carInfo) { + public void editCarInfoForHikvision(CarInfo carInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, carInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1163,7 +1180,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update"; String host = "https://" + project.getArtemisConfigHost(); @@ -1172,7 +1189,7 @@ public class HikvisionCall { 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); String categoryCode = getFixedCarGroupName(ja); if (StringUtils.isBlank(categoryCode)) { @@ -1203,7 +1220,7 @@ public class HikvisionCall { * * @param carInfo */ - public void deleteCarInfoForHikvision(CarInfo carInfo) { + public void deleteCarInfoForHikvision(CarInfo carInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, carInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1213,7 +1230,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete"; String host = "https://" + project.getArtemisConfigHost(); @@ -1259,7 +1276,7 @@ public class HikvisionCall { * @param carInfo * @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 path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page"; String host = "https://" + project.getArtemisConfigHost(); @@ -1274,7 +1291,7 @@ public class HikvisionCall { return null; } - private HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(CarInfo carInfo, Project project) { + private HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(CarInfo carInfo, Project project) throws Exception { JSONArray parkList = getParkList(project); HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo(); if (parkList != null && parkList.size() > 0) { @@ -1305,7 +1322,7 @@ public class HikvisionCall { * @return */ public static String getHikvisionEventsPicture(HikvisionEventsPictureRq rq, String artemisConfigHost, String - artemisConfigAppKey, String artemisConfigAppSecret) {//获取视频事件的图片 + artemisConfigAppKey, String artemisConfigAppSecret) throws Exception {//获取视频事件的图片 final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/video/v1/events/picture"; String host = "https://" + artemisConfigHost; @@ -1327,7 +1344,7 @@ public class HikvisionCall { * * @param enterpriseInfo */ - public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { + public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, enterpriseInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1350,7 +1367,7 @@ public class HikvisionCall { * * @param enterpriseInfo */ - public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { + public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, enterpriseInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1369,7 +1386,7 @@ public class HikvisionCall { * @param enterpriseId * @param projectSn */ - public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn) { + public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, projectSn)); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1391,7 +1408,7 @@ public class HikvisionCall { * * @param teamInfo */ - public void addTeamInfoForHikvision(TeamInfo teamInfo) { + public void addTeamInfoForHikvision(TeamInfo teamInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, teamInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1414,7 +1431,7 @@ public class HikvisionCall { * * @param teamInfo */ - public void editTeamInfoForHikvision(TeamInfo teamInfo) { + public void editTeamInfoForHikvision(TeamInfo teamInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, teamInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { 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 path = ARTEMIS_PATH + "/api/resource/v1/org/single/update"; String host = "https://" + project.getArtemisConfigHost(); @@ -1435,7 +1452,7 @@ public class HikvisionCall { sendNoticeForOrg("更新组织到海康isc", rs, hikvisionOrganization.getOrgName()); } - private void deleteOrgFromHttp(Project project, List idList, String orgName) { + private void deleteOrgFromHttp(Project project, List idList, String orgName) throws Exception { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete"; String host = "https://" + project.getArtemisConfigHost(); @@ -1445,7 +1462,7 @@ public class HikvisionCall { 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 path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; String host = "https://" + project.getArtemisConfigHost(); @@ -1460,7 +1477,7 @@ public class HikvisionCall { * * @param teamInfo */ - public void deleteTeamInfoForHikvision(TeamInfo teamInfo) { + public void deleteTeamInfoForHikvision(TeamInfo teamInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, teamInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1473,7 +1490,7 @@ public class HikvisionCall { * * @param departmentInfo */ - public void addDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { + public void addDepartmentInfoForHikvision(DepartmentInfo departmentInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, departmentInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1496,7 +1513,7 @@ public class HikvisionCall { * * @param departmentInfo */ - public void editDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { + public void editDepartmentInfoForHikvision(DepartmentInfo departmentInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, departmentInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1515,7 +1532,7 @@ public class HikvisionCall { * * @param departmentInfo */ - public void deleteDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { + public void deleteDepartmentInfoForHikvision(DepartmentInfo departmentInfo) throws Exception { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, departmentInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; @@ -1528,7 +1545,7 @@ public class HikvisionCall { * * @param project */ - public void editProjectForHikvision(Project project) { + public void editProjectForHikvision(Project project) throws Exception { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } @@ -1541,7 +1558,7 @@ public class HikvisionCall { * * @param project */ - public void getOrg(Project project) { + public void getOrg(Project project) throws Exception { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } @@ -1561,7 +1578,7 @@ public class HikvisionCall { * @param project * @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)) { return null; } @@ -1587,7 +1604,7 @@ public class HikvisionCall { * @param orgIndex * @return */ - public boolean existOrg(Project project, String orgIndex) { + public boolean existOrg(Project project, String orgIndex) throws Exception { String rs = getOrgV2(project, orgIndex); JSONObject jo = HikvisionUtil.getJSONObjectData(rs); return jo.getJSONArray("list").size() > 0; @@ -1598,7 +1615,7 @@ public class HikvisionCall { * * @param project */ - public JSONArray getParkList(Project project) { + public JSONArray getParkList(Project project) throws Exception { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { 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 path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition"; 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); if (StringUtils.isNotBlank(parkIndexCode)) { WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId()); @@ -1681,7 +1698,7 @@ public class HikvisionCall { * @param project * @return */ - public String getProjectParkCode(Project project) { + public String getProjectParkCode(Project project) throws Exception { JSONArray parkList = getParkList(project); if (parkList != null && parkList.size() > 0) { for (int i = 0; i < parkList.size(); i++) { @@ -1701,7 +1718,7 @@ public class HikvisionCall { * * @param project */ - public void getCarList(Project project) { + public void getCarList(Project project) throws Exception { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } @@ -1739,7 +1756,7 @@ public class HikvisionCall { * @param vehicleIds * @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)) { 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 path = ARTEMIS_PATH + "/api/pms/v1/car/category/search"; String host = "https://" + project.getArtemisConfigHost(); @@ -1776,7 +1793,7 @@ public class HikvisionCall { * * @param project */ - public JSONObject getCameraOnline(Project project) { + public JSONObject getCameraOnline(Project project) throws Exception { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/nms/v1/online/camera/get"; String host = "https://" + project.getArtemisConfigHost(); @@ -1797,7 +1814,7 @@ public class HikvisionCall { * * @param project */ - public JSONObject getEncodeDeviceOnline(Project project) { + public JSONObject getEncodeDeviceOnline(Project project) throws Exception { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/nms/v1/online/encode_device/get"; String host = "https://" + project.getArtemisConfigHost(); @@ -1818,7 +1835,7 @@ public class HikvisionCall { * * @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 path = ARTEMIS_PATH + "/api/nms/v1/vqd/list"; String host = "https://" + config.getAccount() + ":" + config.getPassword(); @@ -1839,7 +1856,7 @@ public class HikvisionCall { * @param project * @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)) { return null; } @@ -1862,7 +1879,7 @@ public class HikvisionCall { * @param project * @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)) { return null; } @@ -1884,37 +1901,44 @@ public class HikvisionCall { * * @param project * @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)) { return null; } final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/resource/v2/door/search"; 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 + * @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)) { return null; } final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/acps/v1/authDownload/task/simpleDownload"; 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().eq(Project::getProjectSn, workerInfo.getProjectSn())); if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } + UfaceDev dev = ufaceDevMapper.selectOne(new LambdaQueryWrapper() + .eq(UfaceDev::getDevSn, devSn)); String json = "{\n" + " \"pageNo\": 1,\n" + " \"pageSize\": 1,\n" + @@ -1928,13 +1952,15 @@ public class HikvisionCall { " }\n" + " ],\n" + "}"; - String rs = doorSearchV2ForHttp(project, JSONObject.parseObject(json)); - if (rs == null) { - throw new OpenAlertException("添加人员权限网络超时,name:" + workerInfo.getWorkerName() + ",devSn:" + devSn); + JSONObject rs = doorSearchV2ForHttp(project, JSONObject.parseObject(json)); + if (HikvisionUtil.isFail(rs)) { + failSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + " fail:" + rs.toJSONString() + ","); + return; } JSONObject jo = HikvisionUtil.getJSONObjectData(rs); JSONArray listJa = jo.getJSONArray("list"); if (CollUtil.isEmpty(listJa)) { + failSb.append(workerInfo.getWorkerName() + " " + dev.getDevName() + " fail:isc不存在该设备,"); return; } String channelNo = listJa.getJSONObject(0).getString("channelNo"); @@ -1947,14 +1973,21 @@ public class HikvisionCall { "\t},\n" + "\t\"personInfo\": {\n" + "\t\t\"personId\": \"" + workerInfo.getId() + "\",\n" + - "\t\t\"operatorType\": 0\n" + + "\t\t\"operatorType\": " + i + "\n" + "\t}\n" + "}"; - String sdRs = simpleDownload(project, sdStr); - if (sdRs == null) { - throw new OpenAlertException("添加人员权限网络超时,name:" + workerInfo.getWorkerName() + ",devSn:" + devSn); + JSONObject sdRs = simpleDownload(project, sdStr); + if (HikvisionUtil.isFail(sdRs)) { + 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()); } - } } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java index fd58b506a..47a14f92c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.project.service.impl; 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.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -137,6 +138,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl list = ufaceDevMapper.selectUserUfaceDevList(param); - /*QueryWrapper qw =new QueryWrapper<>(); - qw.lambda().eq(UfaceDev::getProjectSn, workerInfo.getProjectSn()); - List list=ufaceDevMapper.selectList(qw);*/ if (list != null && list.size() > 0) { StringBuilder devBuilder = new StringBuilder(); StringBuilder devIdBuilder = new StringBuilder(); @@ -273,6 +272,64 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl existList = ufaceDevMapper.selectList(new LambdaQueryWrapper() + .eq(UfaceDev::getProjectSn, workerInfo.getProjectSn()) + .in(UfaceDev::getId, StrUtil.split(devSns, ",")) + ); + List notExistList = ufaceDevMapper.selectList(new LambdaQueryWrapper() + .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 notExistList = ufaceDevMapper.selectList(new LambdaQueryWrapper() + .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 listForIsc = ufaceDevMapper.getUfaceDevListForIsc(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn()); + List 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 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 ufaceIds = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper() + .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 param = new HashMap<>(); + param.put("projectSn", workerInfo.getProjectSn()); + param.put("devIds", StringUtils.join(ufaceIds, ",")); + List 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()); //1杭州宇泛智能科技,2用jdpush推送,3.mqtt,4.芊熠智能,5佳信捷,6佳信捷新设备 if (tempProjectUfaceConfig.getSupplierType() == 1) { @@ -329,22 +419,22 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl> queryList(@ApiIgnore @RequestParam HashMap paramMap) { - int i = 1 / 0; return Result.success(ufaceDevGroupService.queryList(paramMap)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/UfaceDevMapper.java b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/UfaceDevMapper.java index 831dc99d1..8e26a30cd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/UfaceDevMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/UfaceDevMapper.java @@ -38,4 +38,8 @@ public interface UfaceDevMapper extends BaseMapper { HashMap countUfaceDevOnOffline(String projectSn); List getUfaceDevList(@Param(Constants.WRAPPER) QueryWrapper qw); + + List getUfaceDevListForIsc(@Param("list") List groupIdList, @Param("projectSn") String projectSn); + + List getUfaceDevListForIscNotExist(@Param("list") List groupIdList, @Param("projectSn") String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml index 8667c5421..60e382ba0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/UfaceDevMapper.xml @@ -126,4 +126,28 @@ from uface_dev ud ${ew.customSqlSegment} + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/UfaceDevGroupServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/UfaceDevGroupServiceImpl.java index f889f872b..1e2db1ddd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/UfaceDevGroupServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/UfaceDevGroupServiceImpl.java @@ -21,8 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; /** * @Description: 门禁设备-分组 @@ -64,9 +66,15 @@ public class UfaceDevGroupServiceImpl extends ServiceImpl dealList(List list) { for (UfaceDevGroup group : list) { - Integer i = ufaceDevToGroupMapper.selectCount(new LambdaQueryWrapper() + List toList = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper() .eq(UfaceDevToGroup::getUfaceDevGroupId, group.getId())); - group.setDevCount(i); + group.setDevCount(toList.size()); + List ufaceDevs = new ArrayList<>(); + if (toList.size() != 0) { + ufaceDevs = ufaceDevMapper.selectList(new LambdaQueryWrapper() + .in(UfaceDev::getId, toList.stream().map(UfaceDevToGroup::getUfaceDevId).collect(Collectors.toList()))); + } + group.setUfaceDevList(ufaceDevs); } return list; } diff --git a/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java b/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java index bd61f6b16..93e13e3dc 100644 --- a/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java @@ -1,7 +1,6 @@ package com.zhgd.xmgl.util; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; 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.constant.Constants; import com.hikvision.artemis.sdk.enums.Method; -import com.zhgd.xmgl.modules.basicdata.entity.HikvisionRequestRetry; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; @@ -25,31 +22,20 @@ import java.util.Objects; @Component public class HikvisionUtil { - public static String doPost(String host, String path, String body, Map querys, String appKey, String appSecret) { - return doPost(host, path, body, querys, appKey, appSecret, null); - } - - public static String doPost(String host, String path, String body, Map querys, String appKey, String appSecret, Long hikvisionRequestRetryId) { + public static String doPost(String host, String path, String body, Map querys, String appKey, String appSecret) throws Exception { log.info("HikvisionUtil#doPost.url:{}", host + path); log.info("HikvisionUtil#doPost.body:{}", body); - String responseStr = null; - boolean isException = false; - try { - Map headers = new HashMap(); - headers.put("Accept", "*/*"); - headers.put("Content-Type", "application/json"); - //Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT); - Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT * 10); - request.setHeaders(headers); - request.setQuerys(querys); - request.setStringBody(body); - 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); - } + Map headers = new HashMap(); + headers.put("Accept", "*/*"); + headers.put("Content-Type", "application/json"); + //Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT); + Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT * 10); + request.setHeaders(headers); + request.setQuerys(querys); + request.setStringBody(body); + Response response = Client.execute(request); + String responseStr = getResponseResult(response); + log.info("HikvisionUtil#doPost.getResponseResult:{}", responseStr); return responseStr; } @@ -66,15 +52,12 @@ public class HikvisionUtil { } /** - * 获取data结果 + * 成功后,获取data结果 * * @param rs * @return */ public static JSONObject getJSONObjectData(String rs) { - if (StrUtil.isBlank(rs)) { - return null; - } JSONObject rsJo = JSONObject.parseObject(rs); String code = rsJo.getString("code"); 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) { if (StrUtil.isBlank(rs)) { 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; + } + } + }