isc的bug修改
This commit is contained in:
parent
7b0fa14af4
commit
ea2acf105b
@ -55,7 +55,7 @@ public class AsyncHikvision {
|
||||
@Async
|
||||
public void addCarInfoForHikvision(CarInfo carInfo) {
|
||||
try {
|
||||
hikvisionCall.addCarInfoForHikvision(carInfo);
|
||||
hikvisionCall.addCarInfoFromHttp(carInfo);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@ -48,6 +48,8 @@ import java.util.concurrent.CompletableFuture;
|
||||
@RestController
|
||||
@RequestMapping("/xmgl/hikvision")
|
||||
public class HikvisionCall {
|
||||
private static String FIXED_CAR_GROUP_NAME = "固定车永久通行";
|
||||
|
||||
@Value("${upload.image.url.prefix:}")
|
||||
private String imageUrlPrefix;
|
||||
@Value("${basePath:}")
|
||||
@ -77,6 +79,7 @@ public class HikvisionCall {
|
||||
@Lazy
|
||||
private CarInfoMapper carInfoMapper;
|
||||
|
||||
|
||||
@ApiOperation(value = "海康事件回调", notes = "海康事件回调", httpMethod = "POST")
|
||||
@PostMapping(value = "/eventCallback")
|
||||
public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) {
|
||||
@ -284,6 +287,20 @@ public class HikvisionCall {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆分类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/categorySearch")
|
||||
public Result categorySearch() {
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, "B717CB992D054A878FDAFB4A5C169947"));
|
||||
String svrIndex = null;
|
||||
String platePicUrl = null;
|
||||
categorySearch(project);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车辆颜色
|
||||
*
|
||||
@ -385,6 +402,10 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
addWorkerFromHttp(workerInfo, project);
|
||||
}
|
||||
|
||||
private void addWorkerFromHttp(WorkerInfo workerInfo, Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/person/single/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -441,11 +462,7 @@ public class HikvisionCall {
|
||||
}
|
||||
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();
|
||||
String body = getWorkerJson(workerInfo);
|
||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
editWorkerFromHttp(workerInfo, project);
|
||||
|
||||
editWorkerFace(workerInfo, project);
|
||||
} else {
|
||||
@ -453,6 +470,14 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
private void editWorkerFromHttp(WorkerInfo workerInfo, Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String body = getWorkerJson(workerInfo);
|
||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加人脸
|
||||
*
|
||||
@ -506,6 +531,10 @@ public class HikvisionCall {
|
||||
}
|
||||
deleteWorkerFace(workerInfo, project);
|
||||
|
||||
deleteWorkerFromHttp(workerInfo, project);
|
||||
}
|
||||
|
||||
private void deleteWorkerFromHttp(WorkerInfo workerInfo, Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -596,11 +625,27 @@ public class HikvisionCall {
|
||||
*
|
||||
* @param carInfo
|
||||
*/
|
||||
public void addCarInfoForHikvision(CarInfo carInfo) {
|
||||
public void addCarInfoFromHttp(CarInfo carInfo) {
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||
//固定车
|
||||
addCarInfoFromHttp(carInfo, project);
|
||||
|
||||
//绑定固定的群组
|
||||
JSONArray ja = categorySearch(project);
|
||||
String categoryCode = getFixedCarGroupName(ja);
|
||||
if (StringUtils.isNotBlank(categoryCode)) {
|
||||
carCategoryBind(project, 1, categoryCode, String.valueOf(carInfo.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
ifReservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
private void addCarInfoFromHttp(CarInfo carInfo, Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -608,8 +653,6 @@ public class HikvisionCall {
|
||||
ArrayList<HikvisionCarInfo> list = new ArrayList<>();
|
||||
list.add(hikvisionCarInfo);
|
||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(list), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
|
||||
reservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
|
||||
@ -719,14 +762,56 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||
addCarInfoFromHttp(carInfo, project);
|
||||
|
||||
//固定车,需要添加群组
|
||||
editCarInfoFromHttp(carInfo, project);
|
||||
|
||||
//绑定车辆群组
|
||||
ifBindGroup(project, 1, carInfo);
|
||||
} else if (Objects.equals(carInfo.getCarModuleType(), 2)) {
|
||||
//解绑车辆群组
|
||||
ifBindGroup(project, 2, carInfo);
|
||||
|
||||
deleteCarInfoForHikvision(carInfo, project);
|
||||
}
|
||||
//预约车辆
|
||||
ifReservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
private void editCarInfoFromHttp(CarInfo carInfo, Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
HikvisionCarInfo hikvisionCarInfo = getHikvisionCarInfo(carInfo);
|
||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(hikvisionCarInfo), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
//预约车辆
|
||||
reservationCar(project, carInfo);
|
||||
private void ifBindGroup(Project project, int operation, CarInfo carInfo) {
|
||||
JSONArray ja = categorySearch(project);
|
||||
String categoryCode = getFixedCarGroupName(ja);
|
||||
if (StringUtils.isBlank(categoryCode)) {
|
||||
carCategoryBind(project, operation, categoryCode, String.valueOf(carInfo.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取固定车的categoryCode
|
||||
*
|
||||
* @param ja
|
||||
*/
|
||||
private String getFixedCarGroupName(JSONArray ja) {
|
||||
if (ja != null) {
|
||||
for (int i = 0; i < ja.size(); i++) {
|
||||
JSONObject jo = ja.getJSONObject(i);
|
||||
String categoryName = jo.getString("categoryName");
|
||||
if (Objects.equals(categoryName, FIXED_CAR_GROUP_NAME)) {
|
||||
return jo.getString("categoryCode");
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -739,6 +824,12 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
deleteCarInfoForHikvision(carInfo, project);
|
||||
|
||||
deleteReservationCarInfo(carInfo, project);
|
||||
}
|
||||
|
||||
private void deleteCarInfoForHikvision(CarInfo carInfo, Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -747,8 +838,6 @@ public class HikvisionCall {
|
||||
list.add(String.valueOf(carInfo.getId()));
|
||||
jo.put("vehicleIds", list);
|
||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
|
||||
deleteReservationCarInfo(carInfo, project);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1121,31 +1210,33 @@ public class HikvisionCall {
|
||||
* @param project
|
||||
* @param carInfo
|
||||
*/
|
||||
public void reservationCar(Project project, CarInfo carInfo) {
|
||||
public void ifReservationCar(Project project, CarInfo carInfo) {
|
||||
try {
|
||||
//删除预约车辆
|
||||
deleteReservationCarInfo(carInfo, project);
|
||||
|
||||
//临时车辆预约
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 2)) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
ParkReservation parkReservation = getParkReservation(project, carInfo);
|
||||
if (parkReservation != null) {
|
||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(parkReservation), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
} else {
|
||||
//删除预约车辆
|
||||
deleteReservationCarInfo(carInfo, project);
|
||||
reservationCarFromHttp(project, carInfo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void reservationCarFromHttp(Project project, CarInfo carInfo) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
ParkReservation parkReservation = getParkReservation(project, carInfo);
|
||||
if (parkReservation != null) {
|
||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(parkReservation), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
}
|
||||
|
||||
private ParkReservation getParkReservation(Project project, CarInfo carInfo) {
|
||||
JSONArray parkList = getParkList(project);
|
||||
if (parkList != null && parkList.size() > 0) {
|
||||
JSONObject jo = parkList.getJSONObject(0);
|
||||
String parkIndexCode = jo.getString("parkIndexCode");
|
||||
String parkIndexCode = getProjectParkCode(project);
|
||||
if (StringUtils.isNotBlank(parkIndexCode)) {
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
||||
ParkReservation parkReservation = new ParkReservation();
|
||||
parkReservation.setParkSyscode(parkIndexCode);
|
||||
@ -1163,6 +1254,23 @@ public class HikvisionCall {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目名称的停车场的parkIndexCode
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
public String getProjectParkCode(Project project) {
|
||||
JSONArray parkList = getParkList(project);
|
||||
if (parkList != null && parkList.size() > 0) {
|
||||
JSONObject jo = parkList.getJSONObject(0);
|
||||
if (Objects.equals(jo.getString("parkName"), project.getProjectName())) {
|
||||
return jo.getString("parkIndexCode");
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss+'Z'"));
|
||||
}
|
||||
@ -1200,4 +1308,40 @@ public class HikvisionCall {
|
||||
});
|
||||
return fileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆群组管理
|
||||
*
|
||||
* @param project
|
||||
* @param operation 绑定操作类型,1绑定、2解绑
|
||||
* @param categoryCode 车辆分类标识
|
||||
* @param vehicleIds
|
||||
*/
|
||||
public void carCategoryBind(Project project, Integer operation, String categoryCode, String vehicleIds) {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/car/categoryBind";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("vehicleIds", vehicleIds);
|
||||
jo.put("operation", operation);
|
||||
jo.put("categoryCode", categoryCode);
|
||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆分类
|
||||
*/
|
||||
public JSONArray categorySearch(Project project) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/car/category/search";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return HikvisionUtil.getJSONArrayData(rs);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user