bug修复
This commit is contained in:
parent
1d3bd4b522
commit
af10a1fa0f
@ -6,6 +6,8 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class HikvisionCarInfo {
|
public class HikvisionCarInfo {
|
||||||
|
|
||||||
|
@JsonProperty("vehicleId")
|
||||||
|
private String vehicleId;
|
||||||
@JsonProperty("clientId")
|
@JsonProperty("clientId")
|
||||||
private Long clientId;
|
private Long clientId;
|
||||||
@JsonProperty("plateNo")
|
@JsonProperty("plateNo")
|
||||||
|
|||||||
@ -73,7 +73,8 @@ public class HikvisionCall {
|
|||||||
* 海康请求失败重试定时
|
* 海康请求失败重试定时
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron = "4 0 0 * * ?")
|
@Scheduled(cron = "4 0 0 * * ?")
|
||||||
public void getMonthAmmeterTask() {
|
@PostMapping(value = "/failRetry")
|
||||||
|
public void failRetry() {
|
||||||
List<HikvisionRequestRetry> hikvisionRequestRetries = hikvisionRequestRetryMapper.selectList(new LambdaQueryWrapper<HikvisionRequestRetry>()
|
List<HikvisionRequestRetry> hikvisionRequestRetries = hikvisionRequestRetryMapper.selectList(new LambdaQueryWrapper<HikvisionRequestRetry>()
|
||||||
.lt(HikvisionRequestRetry::getRequestNum, 4));
|
.lt(HikvisionRequestRetry::getRequestNum, 4));
|
||||||
for (HikvisionRequestRetry retry : hikvisionRequestRetries) {
|
for (HikvisionRequestRetry retry : hikvisionRequestRetries) {
|
||||||
@ -81,20 +82,6 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/getOrg")
|
|
||||||
public Result getOrg() {
|
|
||||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
|
|
||||||
getOrg(project);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/getPark")
|
|
||||||
public Result getParkList() {
|
|
||||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
|
|
||||||
JSONArray parkList = getParkList(project);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "海康事件回调", notes = "海康事件回调", httpMethod = "POST")
|
@ApiOperation(value = "海康事件回调", notes = "海康事件回调", httpMethod = "POST")
|
||||||
@PostMapping(value = "/eventCallback")
|
@PostMapping(value = "/eventCallback")
|
||||||
public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) {
|
public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) {
|
||||||
@ -186,6 +173,43 @@ public class HikvisionCall {
|
|||||||
return Result.ok();
|
return Result.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试查询组织
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/getOrg")
|
||||||
|
public Result getOrg() {
|
||||||
|
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
|
||||||
|
getOrg(project);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试查询停车场
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/getPark")
|
||||||
|
public Result getParkList() {
|
||||||
|
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
|
||||||
|
JSONArray parkList = getParkList(project);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询车辆列表v2
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/getCarList")
|
||||||
|
public Result getCarList() {
|
||||||
|
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
|
||||||
|
getCarList(project);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加人员
|
* 添加人员
|
||||||
*
|
*
|
||||||
@ -248,13 +272,18 @@ public class HikvisionCall {
|
|||||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
JSONObject wiJo = getWorkerInfo(workerInfo, project);
|
||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
if (wiJo != null) {
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
String body = getWorkerJson(workerInfo);
|
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
String body = getWorkerJson(workerInfo);
|
||||||
|
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
|
||||||
editWorkerFace(workerInfo, project);
|
editWorkerFace(workerInfo, project);
|
||||||
|
} else {
|
||||||
|
addWorkerForHikvision(workerInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -264,13 +293,18 @@ public class HikvisionCall {
|
|||||||
* @param project
|
* @param project
|
||||||
*/
|
*/
|
||||||
private void editWorkerFace(WorkerInfo workerInfo, Project project) {
|
private void editWorkerFace(WorkerInfo workerInfo, Project project) {
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project);
|
||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/update";
|
if (CollUtil.isNotEmpty(workerFaceIds)) {
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
for (String workerFaceId : workerFaceIds) {
|
||||||
JSONObject jo = new JSONObject();
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
jo.put("faceId", workerInfo.getId());
|
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/update";
|
||||||
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl())));
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("faceId", workerFaceId);
|
||||||
|
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl())));
|
||||||
|
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -319,8 +353,36 @@ public class HikvisionCall {
|
|||||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取人员人脸id列表
|
||||||
|
*
|
||||||
|
* @param workerInfo
|
||||||
|
* @param project
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private ArrayList<String> getWorkerFaceIds(WorkerInfo workerInfo, Project project) {
|
private ArrayList<String> getWorkerFaceIds(WorkerInfo workerInfo, Project project) {
|
||||||
|
JSONObject joData = getWorkerInfo(workerInfo, project);
|
||||||
|
ArrayList<String> ids = new ArrayList<>();
|
||||||
|
if (joData != null) {
|
||||||
|
JSONArray ppJa = joData.getJSONArray("personPhoto");
|
||||||
|
if (ppJa != null) {
|
||||||
|
for (int j = 0; j < ppJa.size(); j++) {
|
||||||
|
JSONObject jo1 = ppJa.getJSONObject(j);
|
||||||
|
ids.add(jo1.getString("personPhotoIndexCode"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取单个劳务人员信息,根据人员id
|
||||||
|
*
|
||||||
|
* @param workerInfo
|
||||||
|
* @param project
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private JSONObject getWorkerInfo(WorkerInfo workerInfo, Project project) {
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
|
final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
@ -329,21 +391,20 @@ public class HikvisionCall {
|
|||||||
jo.put("paramValue", Arrays.asList(String.valueOf(workerInfo.getId())));
|
jo.put("paramValue", Arrays.asList(String.valueOf(workerInfo.getId())));
|
||||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||||
ArrayList<String> ids = new ArrayList<>();
|
|
||||||
if (joData != null) {
|
if (joData != null) {
|
||||||
Integer total = joData.getInteger("total");
|
Integer total = joData.getInteger("total");
|
||||||
if (Objects.equals(total, 1)) {
|
if (Objects.equals(total, 1)) {
|
||||||
JSONArray jsonArray = joData.getJSONArray("list");
|
JSONArray jsonArray = joData.getJSONArray("list");
|
||||||
for (int i = 0; i < jsonArray.size(); i++) {
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||||
ids.add(jsonObject.getString("personPhotoIndexCode"));
|
return jsonObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ids;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加车辆
|
* 添加车辆
|
||||||
*
|
*
|
||||||
@ -367,9 +428,12 @@ public class HikvisionCall {
|
|||||||
|
|
||||||
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
|
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
|
||||||
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
|
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
|
||||||
hikvisionCarInfo.setClientId(carInfo.getId());
|
hikvisionCarInfo.setVehicleId(String.valueOf(carInfo.getId()));
|
||||||
hikvisionCarInfo.setPlateNo(carInfo.getCarNumber());
|
hikvisionCarInfo.setPlateNo(carInfo.getCarNumber());
|
||||||
hikvisionCarInfo.setPersonId(carInfo.getDriverWorkerId());
|
String[] driverList = StringUtils.split(carInfo.getDriverWorkerId(), ",");
|
||||||
|
if (driverList != null && driverList.length > 0) {
|
||||||
|
hikvisionCarInfo.setPersonId(driverList[0]);
|
||||||
|
}
|
||||||
hikvisionCarInfo.setPlateType(null);
|
hikvisionCarInfo.setPlateType(null);
|
||||||
hikvisionCarInfo.setPlateColor(getPlateColor(carInfo));
|
hikvisionCarInfo.setPlateColor(getPlateColor(carInfo));
|
||||||
hikvisionCarInfo.setVehicleType(getVehicleType(carInfo));
|
hikvisionCarInfo.setVehicleType(getVehicleType(carInfo));
|
||||||
@ -473,10 +537,9 @@ public class HikvisionCall {
|
|||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
|
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
HikvisionCarInfo hikvisionCarInfo = getHikvisionCarInfo(carInfo);
|
HikvisionCarInfo hikvisionCarInfo = getHikvisionCarInfo(carInfo);
|
||||||
ArrayList<HikvisionCarInfo> list = new ArrayList<>();
|
HikvisionUtil.doPost(host, path, JSON.toJSONString(hikvisionCarInfo), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
list.add(hikvisionCarInfo);
|
|
||||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(list), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
|
||||||
|
|
||||||
|
//预约车辆
|
||||||
reservationCar(project, carInfo);
|
reservationCar(project, carInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,11 +557,10 @@ public class HikvisionCall {
|
|||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
|
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
JsonArray array = new JsonArray();
|
ArrayList<String> list = new ArrayList<>();
|
||||||
String body = array.toString();
|
list.add(String.valueOf(carInfo.getId()));
|
||||||
array.add(carInfo.getId());
|
jo.put("vehicleIds", list);
|
||||||
jo.put("vehicleIds", array);
|
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
|
||||||
|
|
||||||
deleteReservationCarInfo(carInfo);
|
deleteReservationCarInfo(carInfo);
|
||||||
}
|
}
|
||||||
@ -575,7 +637,8 @@ public class HikvisionCall {
|
|||||||
* @param artemisConfigAppSecret
|
* @param artemisConfigAppSecret
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String getHikvisionEventsPicture(HikvisionEventsPictureRq rq, String artemisConfigHost, String artemisConfigAppKey, String artemisConfigAppSecret) {//获取视频事件的图片
|
public static String getHikvisionEventsPicture(HikvisionEventsPictureRq rq, String artemisConfigHost, String
|
||||||
|
artemisConfigAppKey, String artemisConfigAppSecret) {//获取视频事件的图片
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
final String path = ARTEMIS_PATH + "/api/video/v1/events/picture";
|
final String path = ARTEMIS_PATH + "/api/video/v1/events/picture";
|
||||||
String host = "https://" + artemisConfigHost;
|
String host = "https://" + artemisConfigHost;
|
||||||
@ -883,5 +946,22 @@ public class HikvisionCall {
|
|||||||
return parkReservation;
|
return parkReservation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询车辆列表v2
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
*/
|
||||||
|
public void getCarList(Project project) {
|
||||||
|
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
|
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("pageNo", 1);
|
||||||
|
jo.put("pageSize", 1000);
|
||||||
|
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1593,12 +1593,16 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
}
|
}
|
||||||
workerInfo.setId(oldWorkerInfo.getId());
|
workerInfo.setId(oldWorkerInfo.getId());
|
||||||
workerInfoMapper.updateById(workerInfo);
|
workerInfoMapper.updateById(workerInfo);
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.editWorkerForHikvision(workerInfo);
|
||||||
} else {
|
} else {
|
||||||
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
|
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
|
||||||
workerInfo.setPersonSn(uuid);
|
workerInfo.setPersonSn(uuid);
|
||||||
workerInfo.setAddTime(new Date());
|
workerInfo.setAddTime(new Date());
|
||||||
workerInfo.setAttendanceNumber(workerInfo.getIdCard());
|
workerInfo.setAttendanceNumber(workerInfo.getIdCard());
|
||||||
workerInfoMapper.insert(workerInfo);
|
workerInfoMapper.insert(workerInfo);
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.addWorkerForHikvision(workerInfo);
|
||||||
}
|
}
|
||||||
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user