车辆修改

This commit is contained in:
GUO 2024-05-31 21:57:30 +08:00
parent 4e5bf24b14
commit ea985ee01f
3 changed files with 53 additions and 37 deletions

View File

@ -1002,15 +1002,22 @@ public class HikvisionCall {
JSONObject jo = JSONObject.parseObject(rs);
String code = jo.getString("code");
if (callSuc) {
JSONObject dataJo = jo.getJSONObject("data");
Optional<JSONArray> fOp = Optional.ofNullable(dataJo).map(o -> o.getJSONArray("failures"));
if (fOp.isPresent() && fOp.get().size() != 0) {
if ("0x00052102".equals(fOp.get().getJSONObject(0).getString("code"))) {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因车辆绑定的人员在isc不存在";
title += "失败";
Object data = jo.get("data");
if (data instanceof JSONObject) {
JSONObject dataJo = jo.getJSONObject("data");
Optional<JSONArray> fOp = Optional.ofNullable(dataJo).map(o -> o.getJSONArray("failures"));
if (fOp.isPresent() && fOp.get().size() != 0) {
if ("0x00052102".equals(fOp.get().getJSONObject(0).getString("code"))) {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因车辆绑定的人员在isc不存在";
title += "失败";
} else {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
title += "失败";
}
} else {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
title += "失败";
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
title += "成功";
success = true;
}
} else {
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
@ -1426,9 +1433,6 @@ public class HikvisionCall {
if (carInfo.getIsBlack() == 0) {
handleAlarmCar(project, carInfo);
}
//根据车牌号删除车辆
JSONObject oldCarInfo = searchCarInfoByCarNumberFromHttp(carInfo.getCarNumber(), project);
cancelCharge(project, carInfo);
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
//删除预约车辆
@ -1570,8 +1574,7 @@ public class HikvisionCall {
private String getRemoteCarIdByCarNumber(String carNumber, Project project) throws Exception {
JSONObject oldCarInfo = searchCarInfoByCarNumberFromHttp(carNumber, project);
return oldCarInfo.getString("vehicleId");
return oldCarInfo == null ? null : oldCarInfo.getString("vehicleId");
}
@ -1583,14 +1586,14 @@ public class HikvisionCall {
* @throws Exception
*/
private void saveBindCategory(CarInfo carInfo, Project project) throws Exception {
String categoryCode = getCategoryCode(project, carInfo);
String categoryCode = getCategoryCode(project);
saveCarCategoryBind(project, categoryCode, carInfo.getHikvisionVehicleId(), carInfo);
}
@NotNull
private String getCategoryCode(Project project, CarInfo carInfo) throws Exception {
private String getCategoryCode(Project project) throws Exception {
//绑定固定的群组
JSONArray ja = HikvisionUtil.categorySearch(project);
JSONArray ja = HikvisionUtil.queryCategory(project);
return getFixedCarGroupName(ja);
}
@ -1622,7 +1625,7 @@ public class HikvisionCall {
jo.put("plateNo", carNumber);//模糊查询
jo.put("pageNo", pageNo);
jo.put("pageSize", 1000);
return JSONObject.parseObject(HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
return HikvisionUtil.doPostRtObj(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
@ -1765,8 +1768,8 @@ public class HikvisionCall {
* @throws Exception
*/
private void bindCarOrNot(Project project, int operation, CarInfo carInfo) throws Exception {
String categoryCode = getCategoryCode(project, carInfo);
carCategoryBindOrNotFromHttp(project, operation, categoryCode, carInfo.getHikvisionVehicleId(), carInfo);
String categoryCode = getCategoryCode(project);
bindOrNotCarCategory(project, operation, categoryCode, carInfo);
}
/**
@ -2318,8 +2321,8 @@ public class HikvisionCall {
* @throws Exception
*/
public void saveCarCategoryBind(Project project, String categoryCode, String vehicleIds, CarInfo carInfo) throws Exception {
carCategoryBindOrNotFromHttp(project, 2, categoryCode, vehicleIds, carInfo);
carCategoryBindOrNotFromHttp(project, 1, categoryCode, vehicleIds, carInfo);
bindOrNotCarCategory(project, 2, categoryCode, carInfo);
bindOrNotCarCategory(project, 1, categoryCode, carInfo);
}
/**
@ -2328,21 +2331,16 @@ public class HikvisionCall {
* @param project
* @param operation 绑定操作类型1绑定2解绑
* @param categoryCode 车辆分类标识
* @param vehicleIds
* @param carInfo
*/
public void carCategoryBindOrNotFromHttp(Project project, Integer operation, String categoryCode, String vehicleIds, CarInfo carInfo) throws Exception {
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);
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
public void bindOrNotCarCategory(Project project, Integer operation, String categoryCode, CarInfo carInfo) throws Exception {
String carId = this.getRemoteCarIdByCarNumber(carInfo.getCarNumber(), project);
JSONObject param = new JSONObject();
param.put("vehicleIds", carId == null ? carInfo.getId() : carId);
param.put("operation", operation);
param.put("categoryCode", categoryCode);
JSONObject jo = HikvisionUtil.bindCarCategory(project, param);
String rs = jo.toJSONString();
if (Objects.equals(operation, 1)) {
sendNoticeAndSetStatusForCarInfo("绑定" + FIXED_CAR_GROUP_NAME + "到海康isc", rs, carInfo, 5, 1);
} else if (Objects.equals(operation, 2)) {

View File

@ -3,9 +3,9 @@
<mapper namespace="com.zhgd.xmgl.modules.car.mapper.CarInfoMapper">
<sql id="selectTable">
SELECT if(t.car_module_type = 1 or t.car_module_type = 2, wi.id_card,
t.outside_driver_id_card) as outsideDriverIdCard,
t.outside_driver_id_card) as outside_driver_id_card,
if(t.car_module_type = 1 or t.car_module_type = 2, wi.worker_name,
t.driver_worker_name) as driverWorkerName,
t.driver_worker_name) as driver_worker_name,
t.*,
b.car_type_name,
ei.enterprise_name

View File

@ -170,7 +170,7 @@ public class HikvisionUtil {
/**
* 查询车辆分类
*/
public static JSONArray categorySearch(Project project) throws Exception {
public static JSONArray queryCategory(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();
@ -178,4 +178,22 @@ public class HikvisionUtil {
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
return getJSONArrayData(rs);
}
/**
* 车辆群组绑定
*
* @param project
* @param param
* @return
* @throws Exception
*/
public static JSONObject bindCarCategory(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/pms/v1/car/categoryBind";
String host = "https://" + project.getArtemisConfigHost();
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
}