车辆bug修复
This commit is contained in:
parent
d271c5c370
commit
6949d5ff44
@ -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));
|
||||||
|
|||||||
@ -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 {
|
/**
|
||||||
//固定车
|
* 保存固定车
|
||||||
addCarInfoFromHikvision(carInfo, project);
|
*
|
||||||
|
* @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"));
|
||||||
|
//固定车
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user