bug修改
This commit is contained in:
parent
680651b0fc
commit
76d244fdb6
@ -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);
|
||||
|
||||
@ -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() + " 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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user