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 indexCodes
*/
private void addVqdForHikvisionBatch(ProjectVideoConfig projectVideoConfig, ArrayList<String> indexCodes) {
private void addVqdForHikvisionBatch(ProjectVideoConfig projectVideoConfig, ArrayList<String> 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);

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.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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<String> 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<Project>().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<String> 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<String> getWorkerFaceIds(WorkerInfo workerInfo, Project project) {
private ArrayList<String> getWorkerFaceIds(WorkerInfo workerInfo, Project project) throws Exception {
JSONObject joData = getWorkerInfo(workerInfo, project);
ArrayList<String> 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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().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<Long> idList, String orgName) {
private void deleteOrgFromHttp(Project project, List<Long> 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<Project>().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<Project>().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<Project>().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<Project>().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<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
UfaceDev dev = ufaceDevMapper.selectOne(new LambdaQueryWrapper<UfaceDev>()
.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() + " failisc不存在该设备,");
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());
}
}
}

View File

@ -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<ProjectUfaceConfi
if (Objects.equals(workerInfo.getDevType(), 1)) {
param.put("devIds", workerInfo.getUfaceDevId());
} else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StringUtils.isEmpty(ufaceDevGroupId)) {
ufaceDevGroupId = "0";
@ -222,9 +224,6 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
param.put("devIds", workerInfo.getUfaceDevId());
}
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) {
StringBuilder devBuilder = 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 devId = devIdBuilder.toString();
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());
//1杭州宇泛智能科技,2用jdpush推送,3.mqtt,4.芊熠智能,5佳信捷,6佳信捷新设备
if (tempProjectUfaceConfig.getSupplierType() == 1) {
@ -329,22 +419,22 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
}
UniUbiUtil.addPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(),
workerInfo.getWorkerName(), workerInfo.getAttendanceNumber(), workerInfo.getIdCard(),
image, devSn);
image, devSns);
} else if (tempProjectUfaceConfig.getSupplierType() == 4) {
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) {
//佳信捷设备
JxjUfaceUtil.addWorkerInfo(workerInfo, tempProjectUfaceConfig, serverUrl + "/image/");
} else if (tempProjectUfaceConfig.getSupplierType() == 6) {
//佳信捷新设备
JxjNewUfaceDevUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, basePath, devSn, jxjDevImageType);
JxjNewUfaceDevUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, basePath, devSns, jxjDevImageType);
} else if (tempProjectUfaceConfig.getSupplierType() == 7) {
//海康门禁sdk
HikvisionUfaceSDKUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, devSn);
HikvisionUfaceSDKUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, devSns);
} else if (tempProjectUfaceConfig.getSupplierType() == 9) {
//海康门禁isc
asyncHikvision.addPersonAuth(workerInfo, tempProjectUfaceConfig, devSn);
asyncHikvision.addPersonAuth(workerInfo, devSns);
}
}

View File

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

View File

@ -38,4 +38,8 @@ public interface UfaceDevMapper extends BaseMapper<UfaceDev> {
HashMap<String, Object> countUfaceDevOnOffline(String projectSn);
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
${ew.customSqlSegment}
</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>

View File

@ -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<UfaceDevGroupMapper, U
private List<UfaceDevGroup> dealList(List<UfaceDevGroup> 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()));
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;
}

View File

@ -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<String, String> 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<String, String> querys, String appKey, String appSecret, Long hikvisionRequestRetryId) {
public static String doPost(String host, String path, String body, Map<String, String> 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<String, String> 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<String, String> 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;
}
}
}