bug修改
This commit is contained in:
parent
1cd35fdc6e
commit
7812e57209
@ -92,7 +92,7 @@ public class AsyncHikvision {
|
||||
@Async
|
||||
public void addCarInfoForHikvision(CarInfo carInfo) {
|
||||
try {
|
||||
hikvisionCall.addCarInfoFromHttp(carInfo);
|
||||
hikvisionCall.addCarInfoFromHikvision(carInfo);
|
||||
} catch (Exception e) {
|
||||
log.error("海康:", e);
|
||||
sendNoticeForCar(carInfo, e, "添加");
|
||||
@ -109,9 +109,9 @@ public class AsyncHikvision {
|
||||
}
|
||||
|
||||
@Async
|
||||
public void editCarInfoForHikvision(CarInfo carInfo) {
|
||||
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
|
||||
try {
|
||||
hikvisionCall.editCarInfoForHikvision(carInfo);
|
||||
hikvisionCall.editCarInfoForHikvision(carInfo, old);
|
||||
} catch (Exception e) {
|
||||
log.error("海康:", e);
|
||||
sendNoticeForCar(carInfo, e, "编辑");
|
||||
|
||||
@ -1005,27 +1005,34 @@ public class HikvisionCall {
|
||||
*
|
||||
* @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()));
|
||||
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()), carInfo);
|
||||
}
|
||||
addFixedCar(carInfo, project);
|
||||
} else if (Objects.equals(carInfo.getCarModuleType(), 2)) {
|
||||
reservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
ifReservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
private void addCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
|
||||
private void addFixedCar(CarInfo carInfo, Project project) throws Exception {
|
||||
//固定车
|
||||
addCarInfoFromHikvision(carInfo, project);
|
||||
|
||||
//绑定固定的群组
|
||||
JSONArray ja = categorySearch(project);
|
||||
String categoryCode = getFixedCarGroupName(ja);
|
||||
if (StringUtils.isBlank(categoryCode)) {
|
||||
throw new OpenAlertException("获取固定车的categoryCode失败");
|
||||
}
|
||||
if (StringUtils.isNotBlank(categoryCode)) {
|
||||
carCategoryBindOrNot(project, 1, categoryCode, String.valueOf(carInfo.getId()), carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private void addCarInfoFromHikvision(CarInfo carInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -1149,35 +1156,16 @@ public class HikvisionCall {
|
||||
* 编辑车辆
|
||||
*
|
||||
* @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()));
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||
//固定车,需要添加群组
|
||||
String rs = getCarInfoListFromHttp(carInfo.getCarNumber(), project);
|
||||
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);
|
||||
//先删除再新增
|
||||
deleteCarInfoForHikvision(old);
|
||||
addCarInfoFromHikvision(carInfo);
|
||||
}
|
||||
|
||||
private void editCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
|
||||
@ -1189,12 +1177,13 @@ public class HikvisionCall {
|
||||
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);
|
||||
String categoryCode = getFixedCarGroupName(ja);
|
||||
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)) {
|
||||
return;
|
||||
}
|
||||
bindCarOrNot(project, 2, carInfo);
|
||||
deleteCarInfoForHikvision(carInfo, project);
|
||||
|
||||
deleteReservationCarInfo(carInfo, project);
|
||||
}
|
||||
|
||||
@ -1260,6 +1249,12 @@ public class HikvisionCall {
|
||||
JSONObject jsonObject1 = new JSONObject();
|
||||
jsonObject1.put("reserveOrderNo", reserveOrderNo);
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -1642,14 +1637,11 @@ public class HikvisionCall {
|
||||
* @param project
|
||||
* @param carInfo
|
||||
*/
|
||||
public void ifReservationCar(Project project, CarInfo carInfo) throws Exception {
|
||||
public void reservationCar(Project project, CarInfo carInfo) throws Exception {
|
||||
//删除预约车辆
|
||||
deleteReservationCarInfo(carInfo, project);
|
||||
|
||||
//临时车辆预约
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 2)) {
|
||||
reservationCarFromHttp(project, carInfo);
|
||||
}
|
||||
reservationCarFromHttp(project, carInfo);
|
||||
}
|
||||
|
||||
private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception {
|
||||
@ -1743,7 +1735,7 @@ public class HikvisionCall {
|
||||
* @param vehicleIds
|
||||
* @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)) {
|
||||
return;
|
||||
}
|
||||
@ -1756,9 +1748,9 @@ public class HikvisionCall {
|
||||
jo.put("categoryCode", categoryCode);
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
if (Objects.equals(operation, 1)) {
|
||||
sendNoticeForCarInfo("绑定固定车辆群组到海康isc", rs, carInfo);
|
||||
sendNoticeForCarInfo("绑定" + FIXED_CAR_GROUP_NAME + "到海康isc", rs, carInfo);
|
||||
} else if (Objects.equals(operation, 2)) {
|
||||
sendNoticeForCarInfo("解绑固定车辆群组到海康isc", rs, carInfo);
|
||||
sendNoticeForCarInfo("解绑" + FIXED_CAR_GROUP_NAME + "到海康isc", rs, carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -105,10 +105,11 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
if (count > 0) {
|
||||
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
|
||||
}
|
||||
CarInfo old = carInfoMapper.selectById(carInfo.getId());
|
||||
carInfoMapper.updateById(carInfo);
|
||||
|
||||
//同步海康
|
||||
asyncHikvision.editCarInfoForHikvision(carInfo);
|
||||
asyncHikvision.editCarInfoForHikvision(carInfo, old);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user