车辆bug修复

This commit is contained in:
guoshengxiong 2024-05-14 15:46:15 +08:00
parent d271c5c370
commit 6949d5ff44
4 changed files with 146 additions and 75 deletions

View File

@ -156,7 +156,7 @@ public class AsyncHikvision {
public void addCarInfoForHikvisionAsyc(CarInfo carInfo, Date now) { public void addCarInfoForHikvisionAsyc(CarInfo carInfo, Date now) {
try { try {
ThreadLocalUtil.addInKey("now", now); ThreadLocalUtil.addInKey("now", now);
hikvisionCall.addCarInfoFromHikvision(carInfo); hikvisionCall.saveCarInfoFromHikvision(carInfo);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForCar(carInfo, e, "添加"); sendNoticeForCar(carInfo, e, "添加");
@ -182,7 +182,7 @@ public class AsyncHikvision {
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) { public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
Date now = new Date(); Date now = new Date();
if (Objects.equals(carInfo.getCarModuleType(), 1)) { if (Objects.equals(carInfo.getCarModuleType(), 1)) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now)); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(2).setWhoId(carInfo.getId()).setCreateDate(now));
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now)); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now));
} else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) { } else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now)); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now));

View File

@ -10,7 +10,6 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenPromptException; import com.zhgd.jeecg.common.execption.OpenPromptException;
import com.zhgd.redis.lock.RedisRepository; import com.zhgd.redis.lock.RedisRepository;
@ -25,15 +24,11 @@ import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper;
import com.zhgd.xmgl.modules.car.mapper.CarPassRecordMapper; import com.zhgd.xmgl.modules.car.mapper.CarPassRecordMapper;
import com.zhgd.xmgl.modules.car.mapper.CarTypeMapper; import com.zhgd.xmgl.modules.car.mapper.CarTypeMapper;
import com.zhgd.xmgl.modules.car.service.impl.CarPassRecordServiceImpl; import com.zhgd.xmgl.modules.car.service.impl.CarPassRecordServiceImpl;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDev;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevService; import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevService;
import com.zhgd.xmgl.modules.frontier.service.IFrontierProtectionDevAlarmService; import com.zhgd.xmgl.modules.frontier.service.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig; import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService; import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService;
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService; import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService;
import com.zhgd.xmgl.modules.worker.entity.*; import com.zhgd.xmgl.modules.worker.entity.*;
@ -56,6 +51,7 @@ import lombok.extern.slf4j.Slf4j;
import net.javacrumbs.shedlock.core.SchedulerLock; import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
@ -139,6 +135,7 @@ public class HikvisionCall {
@Autowired @Autowired
private FrontierProtectionDevService frontierProtectionDevService; private FrontierProtectionDevService frontierProtectionDevService;
/** /**
* 获取图片 * 获取图片
* *
@ -1039,29 +1036,19 @@ public class HikvisionCall {
} }
} }
private void setSuccess(String projectSn, Long whoId, Integer type, Integer operate, String deviceSn) {
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(new LambdaQueryWrapper<XzHikvisionSync>()
.eq(XzHikvisionSync::getProjectSn, projectSn)
.eq(XzHikvisionSync::getWhoId, whoId)
.eq(XzHikvisionSync::getType, type)
.eq(XzHikvisionSync::getOperate, operate)
.eq(StringUtils.isNotBlank(deviceSn), XzHikvisionSync::getDeviceSn, deviceSn)
.orderByDesc(XzHikvisionSync::getCreateDate)
.last("limit 1")
);
xzHikvisionSync.setIsSuccess(1);
xzHikvisionSyncMapper.updateById(xzHikvisionSync);
}
private void setSuccessByNow(String projectSn, Long whoId, Integer type, Integer operate, Date now, String deviceSn) { private void setSuccessByNow(String projectSn, Long whoId, Integer type, Integer operate, Date now, String deviceSn) {
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(new LambdaQueryWrapper<XzHikvisionSync>() LambdaQueryWrapper<XzHikvisionSync> queryWrapper = new LambdaQueryWrapper<XzHikvisionSync>()
.eq(XzHikvisionSync::getProjectSn, projectSn) .eq(XzHikvisionSync::getProjectSn, projectSn)
.eq(XzHikvisionSync::getWhoId, whoId) .eq(XzHikvisionSync::getWhoId, whoId)
.eq(XzHikvisionSync::getType, type) .eq(XzHikvisionSync::getType, type)
.eq(XzHikvisionSync::getOperate, operate)
.eq(XzHikvisionSync::getCreateDate, now) .eq(XzHikvisionSync::getCreateDate, now)
.eq(StringUtils.isNotBlank(deviceSn), XzHikvisionSync::getDeviceSn, deviceSn) .eq(StringUtils.isNotBlank(deviceSn), XzHikvisionSync::getDeviceSn, deviceSn);
); if (operate == 3) {
queryWrapper.eq(XzHikvisionSync::getOperate, operate);
} else {
queryWrapper.ne(XzHikvisionSync::getOperate, 3);
}
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(queryWrapper);
if (xzHikvisionSync == null) { if (xzHikvisionSync == null) {
return; return;
} }
@ -1281,39 +1268,75 @@ public class HikvisionCall {
} }
/** /**
* 添加车辆 * 保存车辆
* *
* @param carInfo * @param carInfo
*/ */
public void addCarInfoFromHikvision(CarInfo carInfo) throws Exception { public void saveCarInfoFromHikvision(CarInfo carInfo) throws Exception {
deleteCarInfoForHikvision(carInfo);
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;
} }
cancelCharge(project, carInfo);
if (Objects.equals(carInfo.getCarModuleType(), 1)) { if (Objects.equals(carInfo.getCarModuleType(), 1)) {
addFixedCar(carInfo, project); //删除预约车辆
deleteReservationCarFromHttp(carInfo, project);
saveFixedCar(carInfo, project);
saveBindCategory(carInfo, project);
} else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) { } else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) {
reservationCar(project, carInfo); bindCarOrNot(project, 2, carInfo);
deleteFixedCarForHikvision(carInfo, project);
saveReservationCar(project, carInfo);
} }
} }
private void addFixedCar(CarInfo carInfo, Project project) throws Exception { /**
* 保存固定车
*
* @param carInfo
* @param project
* @throws Exception
*/
private void saveFixedCar(CarInfo carInfo, Project project) throws Exception {
//根据车牌号删除车辆
JSONObject oldCarInfo = searchCarInfoByCarNumberFromHttp(carInfo.getCarNumber(), project);
if (oldCarInfo != null) {
log.info("查询到海康车辆,车牌号:{}", oldCarInfo.getString("plateNo"));
carInfo.setHikvisionVehicleId(oldCarInfo.getString("vehicleId"));
editCarInfoFromHttp(carInfo, project);
} else {
log.info("未查询到海康车辆,车牌号:{}", oldCarInfo.getString("plateNo"));
//固定车 //固定车
addCarInfoFromHikvision(carInfo, project); addCarInfoFromHttp(carInfo, project);
}
}
/**
* 保存绑定群组关系
*
* @param carInfo
* @param project
* @throws Exception
*/
private void saveBindCategory(CarInfo carInfo, Project project) throws Exception {
String categoryCode = getCategoryCode(project, carInfo);
saveCarCategoryBind(project, categoryCode, String.valueOf(carInfo.getId()), carInfo);
}
@NotNull
private String getCategoryCode(Project project, 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)) {
log.error("获取固定车的categoryCode失败:车牌号:{}", carInfo.getCarNumber());
throw new OpenPromptException("获取固定车的categoryCode失败"); throw new OpenPromptException("获取固定车的categoryCode失败");
} }
if (StringUtils.isNotBlank(categoryCode)) { return categoryCode;
carCategoryBindOrNot(project, 1, categoryCode, String.valueOf(carInfo.getId()), carInfo);
}
} }
public void addCarInfoFromHikvision(CarInfo carInfo, Project project) throws Exception { public 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();
@ -1324,12 +1347,21 @@ public class HikvisionCall {
sendNoticeForCarInfo("添加车辆白名单到海康isc", rs, carInfo, 4, 1); sendNoticeForCarInfo("添加车辆白名单到海康isc", rs, carInfo, 4, 1);
} }
/**
* 查询车辆列表v2
*
* @param carNumber
* @param project
* @param pageNo
* @return
* @throws Exception
*/
private JSONObject getCarInfoListFromHttp(String carNumber, Project project, Integer pageNo) throws Exception { private JSONObject getCarInfoListFromHttp(String carNumber, Project project, Integer pageNo) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList"; final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("plateNo", carNumber); jo.put("plateNo", carNumber);//模糊查询
jo.put("pageNo", pageNo); jo.put("pageNo", pageNo);
jo.put("pageSize", 1000); jo.put("pageSize", 1000);
return JSONObject.parseObject(HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())); return JSONObject.parseObject(HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
@ -1337,7 +1369,7 @@ public class HikvisionCall {
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) { private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo(); HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
hikvisionCarInfo.setVehicleId(String.valueOf(carInfo.getId())); hikvisionCarInfo.setVehicleId(carInfo.getHikvisionVehicleId());
hikvisionCarInfo.setPlateNo(carInfo.getCarNumber()); hikvisionCarInfo.setPlateNo(carInfo.getCarNumber());
String[] driverList = StringUtils.split(carInfo.getDriverWorkerId(), ","); String[] driverList = StringUtils.split(carInfo.getDriverWorkerId(), ",");
if (driverList != null && driverList.length > 0) { if (driverList != null && driverList.length > 0) {
@ -1443,12 +1475,20 @@ public class HikvisionCall {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
deleteCarInfoForHikvision(carInfo); if (!Objects.equals(carInfo.getCarNumber(), old.getCarNumber())) {
//先删除再新增 //删除旧的车辆数据
deleteCarInfoForHikvision(old); deleteCarInfoForHikvision(old);
addCarInfoFromHikvision(carInfo); }
saveCarInfoFromHikvision(carInfo);
} }
/**
* 修改车辆
*
* @param carInfo
* @param project
* @throws Exception
*/
private void editCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception { private void editCarInfoFromHttp(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/single/update"; final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
@ -1458,13 +1498,17 @@ public class HikvisionCall {
sendNoticeForCarInfo("更新车辆白名单到海康isc", rs, carInfo, 4, 2); sendNoticeForCarInfo("更新车辆白名单到海康isc", rs, carInfo, 4, 2);
} }
/**
* 绑定/解绑车辆群组
*
* @param project
* @param operation 绑定操作类型1绑定2解绑
* @param carInfo
* @throws Exception
*/
private void bindCarOrNot(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 = getCategoryCode(project, carInfo);
String categoryCode = getFixedCarGroupName(ja); carCategoryBindOrNotFromHttp(project, operation, categoryCode, String.valueOf(carInfo.getId()), carInfo);
if (StringUtils.isBlank(categoryCode)) {
throw new OpenPromptException("获取固定车的categoryCode失败");
}
carCategoryBindOrNot(project, operation, categoryCode, String.valueOf(carInfo.getId()), carInfo);
} }
/** /**
@ -1495,30 +1539,34 @@ public class HikvisionCall {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
cancelCharge(project, carInfo);
bindCarOrNot(project, 2, carInfo); bindCarOrNot(project, 2, carInfo);
deleteCarInfoForHikvision(carInfo, project); deleteFixedCarForHikvision(carInfo, project);
//根据车牌号删除车辆 deleteReservationCarFromHttp(carInfo, project);
JSONObject oldCarInfo = getOldCarInfoFromHikvision(carInfo, project);
if (oldCarInfo != null) {
log.info("海康存在以前添加的车辆,车牌号:{}", oldCarInfo.getString("plateNo"));
deleteCarInfoFromHttp(oldCarInfo.getString("vehicleId"), project);
}
deleteReservationCarInfo(carInfo, project);
} }
private JSONObject getOldCarInfoFromHikvision(CarInfo carInfo, Project project) throws Exception { private void deleteFixedCarForHikvision(CarInfo carInfo, Project project) throws Exception {
//根据车牌号删除车辆
JSONObject oldCarInfo = searchCarInfoByCarNumberFromHttp(carInfo.getCarNumber(), project);
if (oldCarInfo != null) {
log.info("海康存在以前添加的车辆,车牌号:{}", oldCarInfo.getString("plateNo"));
deleteCarInfoByIdFromHttp(oldCarInfo.getString("vehicleId"), project);
}
}
private JSONObject searchCarInfoByCarNumberFromHttp(String carNumber, Project project) throws Exception {
long total = 0; long total = 0;
JSONObject o1 = null; JSONObject o1 = null;
int pageNo = 1; int pageNo = 1;
do { do {
JSONObject jo = getCarInfoListFromHttp(carInfo.getCarNumber(), project, pageNo++); JSONObject jo = getCarInfoListFromHttp(carNumber, project, pageNo++);
if (HikvisionUtil.isSuccess(jo)) { if (HikvisionUtil.isSuccess(jo)) {
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo); JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
total = dataJo.getInteger("total"); total = dataJo.getInteger("total");
JSONArray listJa = dataJo.getJSONArray("list"); JSONArray listJa = dataJo.getJSONArray("list");
Optional<Object> plateNoOpt = listJa.stream().filter(o -> { Optional<Object> plateNoOpt = listJa.stream().filter(o -> {
JSONObject j = (JSONObject) o; JSONObject j = (JSONObject) o;
return carInfo.getCarNumber().equals(j.getString("plateNo")); return carNumber.equals(j.getString("plateNo"));
}).findFirst(); }).findFirst();
if (plateNoOpt.isPresent()) { if (plateNoOpt.isPresent()) {
o1 = (JSONObject) plateNoOpt.get(); o1 = (JSONObject) plateNoOpt.get();
@ -1530,12 +1578,7 @@ public class HikvisionCall {
return o1; return o1;
} }
private void deleteCarInfoForHikvision(CarInfo carInfo, Project project) throws Exception { private String deleteCarInfoByIdFromHttp(String carId, Project project) throws Exception {
String rs = deleteCarInfoFromHttp(String.valueOf(carInfo.getId()), project);
sendNoticeForCarInfo("删除车辆白名单到海康isc", rs, carInfo, 4, 3);
}
private String deleteCarInfoFromHttp(String carId, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete"; final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1553,7 +1596,7 @@ public class HikvisionCall {
* @param carInfo * @param carInfo
* @param project * @param project
*/ */
private void deleteReservationCarInfo(CarInfo carInfo, Project project) throws Exception { private void deleteReservationCarFromHttp(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion"; final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -1917,19 +1960,29 @@ public class HikvisionCall {
/** /**
* 预约车辆 * 保存预约车辆
* *
* @param project * @param project
* @param carInfo * @param carInfo
*/ */
public void reservationCar(Project project, CarInfo carInfo) throws Exception { public void saveReservationCar(Project project, CarInfo carInfo) throws Exception {
//删除预约车辆 //删除预约车辆
deleteReservationCarInfo(carInfo, project); deleteReservationCarFromHttp(carInfo, project);
//临时车辆预约
reservationCarFromHttp(project, carInfo);
}
/**
* 取消车辆包期
*
* @param project
* @param carInfo
* @throws Exception
*/
private void cancelCharge(Project project, CarInfo carInfo) throws Exception {
//取消车辆包期 //取消车辆包期
String parkIndexCode = getProjectParkCode(project); String parkIndexCode = getProjectParkCode(project);
chargeDeletion(project, new ChargeDeletionParam(parkIndexCode, carInfo.getCarNumber())); chargeDeletion(project, new ChargeDeletionParam(parkIndexCode, carInfo.getCarNumber()));
//临时车辆预约
reservationCarFromHttp(project, carInfo);
} }
private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception { private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception {
@ -2026,7 +2079,21 @@ public class HikvisionCall {
} }
/** /**
* 车辆群组管理 * 保存车辆群组绑定关系
*
* @param project
* @param categoryCode
* @param vehicleIds
* @param carInfo
* @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);
}
/**
* 车辆群组管理解绑使用
* *
* @param project * @param project
* @param operation 绑定操作类型1绑定2解绑 * @param operation 绑定操作类型1绑定2解绑
@ -2034,7 +2101,7 @@ public class HikvisionCall {
* @param vehicleIds * @param vehicleIds
* @param carInfo * @param carInfo
*/ */
public void carCategoryBindOrNot(Project project, Integer operation, String categoryCode, String vehicleIds, CarInfo carInfo) throws Exception { public void carCategoryBindOrNotFromHttp(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;
} }

View File

@ -139,4 +139,8 @@ public class CarInfo implements Serializable {
@ApiModelProperty(value = "流程参与人") @ApiModelProperty(value = "流程参与人")
private List<String> userIds; private List<String> userIds;
@TableField(exist = false)
@ApiModelProperty(value = "海康车辆id")
private String hikvisionVehicleId;
} }

View File

@ -196,7 +196,7 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
.eq(Project::getSyncHikvision, 1) .eq(Project::getSyncHikvision, 1)
); );
if (xzHikvisionSync.getOperate() == 1) { if (xzHikvisionSync.getOperate() == 1) {
hikvisionCall.addCarInfoFromHikvision(carInfo); hikvisionCall.saveCarInfoFromHikvision(carInfo);
} else if (xzHikvisionSync.getOperate() == 2) { } else if (xzHikvisionSync.getOperate() == 2) {
hikvisionCall.editCarInfoForHikvision(carInfo, carInfo); hikvisionCall.editCarInfoForHikvision(carInfo, carInfo);
} else if (xzHikvisionSync.getOperate() == 3) { } else if (xzHikvisionSync.getOperate() == 3) {