bug修改

This commit is contained in:
guoshengxiong 2024-04-17 20:35:49 +08:00
parent 1cd35fdc6e
commit 7812e57209
3 changed files with 45 additions and 52 deletions

View File

@ -92,7 +92,7 @@ public class AsyncHikvision {
@Async @Async
public void addCarInfoForHikvision(CarInfo carInfo) { public void addCarInfoForHikvision(CarInfo carInfo) {
try { try {
hikvisionCall.addCarInfoFromHttp(carInfo); hikvisionCall.addCarInfoFromHikvision(carInfo);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForCar(carInfo, e, "添加"); sendNoticeForCar(carInfo, e, "添加");
@ -109,9 +109,9 @@ public class AsyncHikvision {
} }
@Async @Async
public void editCarInfoForHikvision(CarInfo carInfo) { public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
try { try {
hikvisionCall.editCarInfoForHikvision(carInfo); hikvisionCall.editCarInfoForHikvision(carInfo, old);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForCar(carInfo, e, "编辑"); sendNoticeForCar(carInfo, e, "编辑");

View File

@ -1005,27 +1005,34 @@ public class HikvisionCall {
* *
* @param carInfo * @param carInfo
*/ */
public void addCarInfoFromHttp(CarInfo carInfo) throws Exception { public void addCarInfoFromHikvision(CarInfo carInfo) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
if (Objects.equals(carInfo.getCarModuleType(), 1)) { if (Objects.equals(carInfo.getCarModuleType(), 1)) {
addFixedCar(carInfo, project);
} else if (Objects.equals(carInfo.getCarModuleType(), 2)) {
reservationCar(project, carInfo);
}
}
private void addFixedCar(CarInfo carInfo, Project project) throws Exception {
//固定车 //固定车
addCarInfoFromHttp(carInfo, project); addCarInfoFromHikvision(carInfo, project);
//绑定固定的群组 //绑定固定的群组
JSONArray ja = categorySearch(project); JSONArray ja = categorySearch(project);
String categoryCode = getFixedCarGroupName(ja); String categoryCode = getFixedCarGroupName(ja);
if (StringUtils.isBlank(categoryCode)) {
throw new OpenAlertException("获取固定车的categoryCode失败");
}
if (StringUtils.isNotBlank(categoryCode)) { if (StringUtils.isNotBlank(categoryCode)) {
carCategoryBind(project, 1, categoryCode, String.valueOf(carInfo.getId()), carInfo); carCategoryBindOrNot(project, 1, categoryCode, String.valueOf(carInfo.getId()), carInfo);
} }
} }
ifReservationCar(project, carInfo); private void addCarInfoFromHikvision(CarInfo carInfo, Project project) throws Exception {
}
private void addCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add"; final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1149,35 +1156,16 @@ public class HikvisionCall {
* 编辑车辆 * 编辑车辆
* *
* @param carInfo * @param carInfo
* @param old
*/ */
public void editCarInfoForHikvision(CarInfo carInfo) throws Exception { public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn())); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
if (Objects.equals(carInfo.getCarModuleType(), 1)) { //先删除再新增
//固定车需要添加群组 deleteCarInfoForHikvision(old);
String rs = getCarInfoListFromHttp(carInfo.getCarNumber(), project); addCarInfoFromHikvision(carInfo);
JSONObject dJo = HikvisionUtil.getJSONObjectData(rs);
if (dJo != null) {
Integer total = dJo.getInteger("total");
if (total > 0) {
editCarInfoFromHttp(carInfo, project);
} else {
addCarInfoFromHttp(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) throws Exception { private void editCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
@ -1189,12 +1177,13 @@ public class HikvisionCall {
sendNoticeForCarInfo("更新车辆白名单到海康isc", rs, carInfo); sendNoticeForCarInfo("更新车辆白名单到海康isc", rs, carInfo);
} }
private void ifBindGroup(Project project, int operation, CarInfo carInfo) throws Exception { private void bindCarOrNot(Project project, int operation, CarInfo carInfo) throws Exception {
JSONArray ja = categorySearch(project); JSONArray ja = categorySearch(project);
String categoryCode = getFixedCarGroupName(ja); String categoryCode = getFixedCarGroupName(ja);
if (StringUtils.isBlank(categoryCode)) { if (StringUtils.isBlank(categoryCode)) {
carCategoryBind(project, operation, categoryCode, String.valueOf(carInfo.getId()), carInfo); throw new OpenAlertException("获取固定车的categoryCode失败");
} }
carCategoryBindOrNot(project, operation, categoryCode, String.valueOf(carInfo.getId()), carInfo);
} }
/** /**
@ -1225,8 +1214,8 @@ public class HikvisionCall {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
bindCarOrNot(project, 2, carInfo);
deleteCarInfoForHikvision(carInfo, project); deleteCarInfoForHikvision(carInfo, project);
deleteReservationCarInfo(carInfo, project); deleteReservationCarInfo(carInfo, project);
} }
@ -1260,6 +1249,12 @@ public class HikvisionCall {
JSONObject jsonObject1 = new JSONObject(); JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("reserveOrderNo", reserveOrderNo); jsonObject1.put("reserveOrderNo", reserveOrderNo);
String rs = HikvisionUtil.doPost(host, path, jsonObject1.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); String rs = HikvisionUtil.doPost(host, path, jsonObject1.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
JSONObject rsJo = JSON.parseObject(rs);
String code = rsJo.getString("code");
if (Objects.equals(code, "0x02e33900")) {
//reservation record not existed or overdued
return;
}
sendNoticeForCarInfo("取消车位预约到海康isc", rs, carInfo); sendNoticeForCarInfo("取消车位预约到海康isc", rs, carInfo);
} }
} }
@ -1642,15 +1637,12 @@ public class HikvisionCall {
* @param project * @param project
* @param carInfo * @param carInfo
*/ */
public void ifReservationCar(Project project, CarInfo carInfo) throws Exception { public void reservationCar(Project project, CarInfo carInfo) throws Exception {
//删除预约车辆 //删除预约车辆
deleteReservationCarInfo(carInfo, project); deleteReservationCarInfo(carInfo, project);
//临时车辆预约 //临时车辆预约
if (Objects.equals(carInfo.getCarModuleType(), 2)) {
reservationCarFromHttp(project, carInfo); reservationCarFromHttp(project, carInfo);
} }
}
private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception { private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
@ -1743,7 +1735,7 @@ public class HikvisionCall {
* @param vehicleIds * @param vehicleIds
* @param carInfo * @param carInfo
*/ */
public void carCategoryBind(Project project, Integer operation, String categoryCode, String vehicleIds, CarInfo carInfo) throws Exception { public void carCategoryBindOrNot(Project project, Integer operation, String categoryCode, String vehicleIds, CarInfo carInfo) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
@ -1756,9 +1748,9 @@ public class HikvisionCall {
jo.put("categoryCode", categoryCode); jo.put("categoryCode", categoryCode);
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());
if (Objects.equals(operation, 1)) { if (Objects.equals(operation, 1)) {
sendNoticeForCarInfo("绑定固定车辆群组到海康isc", rs, carInfo); sendNoticeForCarInfo("绑定" + FIXED_CAR_GROUP_NAME + "到海康isc", rs, carInfo);
} else if (Objects.equals(operation, 2)) { } else if (Objects.equals(operation, 2)) {
sendNoticeForCarInfo("解绑固定车辆群组到海康isc", rs, carInfo); sendNoticeForCarInfo("解绑" + FIXED_CAR_GROUP_NAME + "到海康isc", rs, carInfo);
} }
} }

View File

@ -105,10 +105,11 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
if (count > 0) { if (count > 0) {
throw new OpenAlertException(MessageUtil.get("carNumberExistErr")); throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
} }
CarInfo old = carInfoMapper.selectById(carInfo.getId());
carInfoMapper.updateById(carInfo); carInfoMapper.updateById(carInfo);
//同步海康 //同步海康
asyncHikvision.editCarInfoForHikvision(carInfo); asyncHikvision.editCarInfoForHikvision(carInfo, old);
} }
@Override @Override