bug修复
This commit is contained in:
parent
1d3bd4b522
commit
af10a1fa0f
@ -6,6 +6,8 @@ import lombok.Data;
|
||||
@Data
|
||||
public class HikvisionCarInfo {
|
||||
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
@JsonProperty("clientId")
|
||||
private Long clientId;
|
||||
@JsonProperty("plateNo")
|
||||
|
||||
@ -73,7 +73,8 @@ public class HikvisionCall {
|
||||
* 海康请求失败重试定时
|
||||
*/
|
||||
@Scheduled(cron = "4 0 0 * * ?")
|
||||
public void getMonthAmmeterTask() {
|
||||
@PostMapping(value = "/failRetry")
|
||||
public void failRetry() {
|
||||
List<HikvisionRequestRetry> hikvisionRequestRetries = hikvisionRequestRetryMapper.selectList(new LambdaQueryWrapper<HikvisionRequestRetry>()
|
||||
.lt(HikvisionRequestRetry::getRequestNum, 4));
|
||||
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")
|
||||
@PostMapping(value = "/eventCallback")
|
||||
public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) {
|
||||
@ -186,6 +173,43 @@ public class HikvisionCall {
|
||||
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,6 +272,8 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
JSONObject wiJo = getWorkerInfo(workerInfo, project);
|
||||
if (wiJo != null) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -255,6 +281,9 @@ public class HikvisionCall {
|
||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
|
||||
editWorkerFace(workerInfo, project);
|
||||
} else {
|
||||
addWorkerForHikvision(workerInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -264,14 +293,19 @@ public class HikvisionCall {
|
||||
* @param project
|
||||
*/
|
||||
private void editWorkerFace(WorkerInfo workerInfo, Project project) {
|
||||
ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project);
|
||||
if (CollUtil.isNotEmpty(workerFaceIds)) {
|
||||
for (String workerFaceId : workerFaceIds) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("faceId", workerInfo.getId());
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取人员人脸id列表
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
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 path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -329,20 +391,19 @@ public class HikvisionCall {
|
||||
jo.put("paramValue", Arrays.asList(String.valueOf(workerInfo.getId())));
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||
ArrayList<String> ids = new ArrayList<>();
|
||||
if (joData != null) {
|
||||
Integer total = joData.getInteger("total");
|
||||
if (Objects.equals(total, 1)) {
|
||||
JSONArray jsonArray = joData.getJSONArray("list");
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
ids.add(jsonObject.getString("personPhotoIndexCode"));
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加车辆
|
||||
@ -367,9 +428,12 @@ public class HikvisionCall {
|
||||
|
||||
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
|
||||
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
|
||||
hikvisionCarInfo.setClientId(carInfo.getId());
|
||||
hikvisionCarInfo.setVehicleId(String.valueOf(carInfo.getId()));
|
||||
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.setPlateColor(getPlateColor(carInfo));
|
||||
hikvisionCarInfo.setVehicleType(getVehicleType(carInfo));
|
||||
@ -473,10 +537,9 @@ public class HikvisionCall {
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
HikvisionCarInfo hikvisionCarInfo = getHikvisionCarInfo(carInfo);
|
||||
ArrayList<HikvisionCarInfo> list = new ArrayList<>();
|
||||
list.add(hikvisionCarInfo);
|
||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(list), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(hikvisionCarInfo), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
|
||||
//预约车辆
|
||||
reservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
@ -494,11 +557,10 @@ public class HikvisionCall {
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
JsonArray array = new JsonArray();
|
||||
String body = array.toString();
|
||||
array.add(carInfo.getId());
|
||||
jo.put("vehicleIds", array);
|
||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
list.add(String.valueOf(carInfo.getId()));
|
||||
jo.put("vehicleIds", list);
|
||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
|
||||
deleteReservationCarInfo(carInfo);
|
||||
}
|
||||
@ -575,7 +637,8 @@ public class HikvisionCall {
|
||||
* @param artemisConfigAppSecret
|
||||
* @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 path = ARTEMIS_PATH + "/api/video/v1/events/picture";
|
||||
String host = "https://" + artemisConfigHost;
|
||||
@ -883,5 +946,22 @@ public class HikvisionCall {
|
||||
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());
|
||||
workerInfoMapper.updateById(workerInfo);
|
||||
//同步海康
|
||||
asyncHikvision.editWorkerForHikvision(workerInfo);
|
||||
} else {
|
||||
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
|
||||
workerInfo.setPersonSn(uuid);
|
||||
workerInfo.setAddTime(new Date());
|
||||
workerInfo.setAttendanceNumber(workerInfo.getIdCard());
|
||||
workerInfoMapper.insert(workerInfo);
|
||||
//同步海康
|
||||
asyncHikvision.addWorkerForHikvision(workerInfo);
|
||||
}
|
||||
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user