Merge remote-tracking branch 'origin/guoshengxiong' into guoshengxiong

This commit is contained in:
pengjie 2024-05-14 18:31:31 +08:00
commit 5a6c5cf5fc
6 changed files with 171 additions and 83 deletions

View File

@ -41,7 +41,6 @@ public class WisdomSiteApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(WisdomSiteApplication.class, args);
SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);
}
@Bean

View File

@ -156,7 +156,7 @@ public class AsyncHikvision {
public void addCarInfoForHikvisionAsyc(CarInfo carInfo, Date now) {
try {
ThreadLocalUtil.addInKey("now", now);
hikvisionCall.addCarInfoFromHikvision(carInfo);
hikvisionCall.saveCarInfoFromHikvision(carInfo);
} catch (Exception e) {
log.error("海康:", e);
sendNoticeForCar(carInfo, e, "添加");
@ -182,7 +182,7 @@ public class AsyncHikvision {
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
Date now = new Date();
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));
} 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));

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.QueryWrapper;
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.execption.OpenPromptException;
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.CarTypeMapper;
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.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig;
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.IAiAnalyseHardWareRecordService;
import com.zhgd.xmgl.modules.worker.entity.*;
@ -56,6 +51,7 @@ import lombok.extern.slf4j.Slf4j;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
@ -139,6 +135,7 @@ public class HikvisionCall {
@Autowired
private FrontierProtectionDevService frontierProtectionDevService;
/**
* 获取图片
*
@ -956,14 +953,24 @@ public class HikvisionCall {
if (success) {
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
title += "成功";
setSuccessByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
updateSuccessStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
} else {
JSONObject jo = JSONObject.parseObject(rs);
String code = jo.getString("code");
if (Objects.equals(code, "0x00072202")) {
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
title += "成功";
setSuccessByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
updateSuccessStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
} else if (Objects.equals(code, "0x02e33900")) {
String msg1 = jo.getString("msg");
if (Objects.equals(msg1, "reservation record not existed or overdued!")) {
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
title += "成功";
updateSuccessStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
} else {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
title += "失败";
}
} else {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
title += "失败";
@ -1003,7 +1010,7 @@ public class HikvisionCall {
String msg = "";
String noticeType = "23";
if (success) {
setSuccessByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
msg = "同步成功,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard();
title += "成功";
} else {
@ -1025,7 +1032,7 @@ public class HikvisionCall {
title += "失败";
} else if (Objects.equals(msg1, "PersonId Already In Db")) {
//成功
setSuccessByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null);
msg = "同步成功,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard();
title += "成功";
}
@ -1039,29 +1046,19 @@ public class HikvisionCall {
}
}
private void setSuccess(String projectSn, Long whoId, Integer type, Integer operate, String deviceSn) {
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(new LambdaQueryWrapper<XzHikvisionSync>()
private void updateSuccessStatusByNow(String projectSn, Long whoId, Integer type, Integer operate, Date now, String deviceSn) {
LambdaQueryWrapper<XzHikvisionSync> queryWrapper = 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) {
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(new LambdaQueryWrapper<XzHikvisionSync>()
.eq(XzHikvisionSync::getProjectSn, projectSn)
.eq(XzHikvisionSync::getWhoId, whoId)
.eq(XzHikvisionSync::getType, type)
.eq(XzHikvisionSync::getOperate, operate)
.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) {
return;
}
@ -1281,39 +1278,75 @@ public class HikvisionCall {
}
/**
* 添加车辆
* 保存车辆
*
* @param carInfo
*/
public void addCarInfoFromHikvision(CarInfo carInfo) throws Exception {
deleteCarInfoForHikvision(carInfo);
public void saveCarInfoFromHikvision(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;
}
cancelCharge(project, carInfo);
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)) {
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("查询到海康车辆,车牌号:{}", carInfo.getCarNumber());
carInfo.setHikvisionVehicleId(oldCarInfo.getString("vehicleId"));
editCarInfoFromHttp(carInfo, project);
} else {
log.info("未查询到海康车辆,车牌号:{}", carInfo.getCarNumber());
//固定车
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);
String categoryCode = getFixedCarGroupName(ja);
if (StringUtils.isBlank(categoryCode)) {
log.error("获取固定车的categoryCode失败:车牌号:{}", carInfo.getCarNumber());
throw new OpenPromptException("获取固定车的categoryCode失败");
}
if (StringUtils.isNotBlank(categoryCode)) {
carCategoryBindOrNot(project, 1, categoryCode, String.valueOf(carInfo.getId()), carInfo);
}
return categoryCode;
}
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 path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add";
String host = "https://" + project.getArtemisConfigHost();
@ -1324,12 +1357,21 @@ public class HikvisionCall {
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 {
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
String host = "https://" + project.getArtemisConfigHost();
JSONObject jo = new JSONObject();
jo.put("plateNo", carNumber);
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()));
@ -1337,7 +1379,7 @@ public class HikvisionCall {
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
hikvisionCarInfo.setVehicleId(String.valueOf(carInfo.getId()));
hikvisionCarInfo.setVehicleId(carInfo.getHikvisionVehicleId());
hikvisionCarInfo.setPlateNo(carInfo.getCarNumber());
String[] driverList = StringUtils.split(carInfo.getDriverWorkerId(), ",");
if (driverList != null && driverList.length > 0) {
@ -1443,12 +1485,20 @@ public class HikvisionCall {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
deleteCarInfoForHikvision(carInfo);
//先删除再新增
deleteCarInfoForHikvision(old);
addCarInfoFromHikvision(carInfo);
if (!Objects.equals(carInfo.getCarNumber(), old.getCarNumber())) {
//删除旧的车辆数据
deleteCarInfoForHikvision(old);
}
saveCarInfoFromHikvision(carInfo);
}
/**
* 修改车辆
*
* @param carInfo
* @param project
* @throws Exception
*/
private void editCarInfoFromHttp(CarInfo carInfo, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
@ -1458,13 +1508,17 @@ public class HikvisionCall {
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 {
JSONArray ja = categorySearch(project);
String categoryCode = getFixedCarGroupName(ja);
if (StringUtils.isBlank(categoryCode)) {
throw new OpenPromptException("获取固定车的categoryCode失败");
}
carCategoryBindOrNot(project, operation, categoryCode, String.valueOf(carInfo.getId()), carInfo);
String categoryCode = getCategoryCode(project, carInfo);
carCategoryBindOrNotFromHttp(project, operation, categoryCode, String.valueOf(carInfo.getId()), carInfo);
}
/**
@ -1495,30 +1549,35 @@ public class HikvisionCall {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
cancelCharge(project, carInfo);
bindCarOrNot(project, 2, carInfo);
deleteCarInfoForHikvision(carInfo, project);
//根据车牌号删除车辆
JSONObject oldCarInfo = getOldCarInfoFromHikvision(carInfo, project);
if (oldCarInfo != null) {
log.info("海康存在以前添加的车辆,车牌号:{}", oldCarInfo.getString("plateNo"));
deleteCarInfoFromHttp(oldCarInfo.getString("vehicleId"), project);
}
deleteReservationCarInfo(carInfo, project);
deleteFixedCarForHikvision(carInfo, project);
deleteReservationCarFromHttp(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"));
String rs = deleteCarInfoByIdFromHttp(oldCarInfo.getString("vehicleId"), project);
sendNoticeForCarInfo("删除车辆白名单到海康isc", rs, carInfo, 4, 3);
}
}
private JSONObject searchCarInfoByCarNumberFromHttp(String carNumber, Project project) throws Exception {
long total = 0;
JSONObject o1 = null;
int pageNo = 1;
do {
JSONObject jo = getCarInfoListFromHttp(carInfo.getCarNumber(), project, pageNo++);
JSONObject jo = getCarInfoListFromHttp(carNumber, project, pageNo++);
if (HikvisionUtil.isSuccess(jo)) {
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
total = dataJo.getInteger("total");
JSONArray listJa = dataJo.getJSONArray("list");
Optional<Object> plateNoOpt = listJa.stream().filter(o -> {
JSONObject j = (JSONObject) o;
return carInfo.getCarNumber().equals(j.getString("plateNo"));
return carNumber.equals(j.getString("plateNo"));
}).findFirst();
if (plateNoOpt.isPresent()) {
o1 = (JSONObject) plateNoOpt.get();
@ -1530,12 +1589,7 @@ public class HikvisionCall {
return o1;
}
private void deleteCarInfoForHikvision(CarInfo carInfo, 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 {
private String deleteCarInfoByIdFromHttp(String carId, Project project) throws Exception {
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/delete";
String host = "https://" + project.getArtemisConfigHost();
@ -1553,7 +1607,7 @@ public class HikvisionCall {
* @param carInfo
* @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 path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
String host = "https://" + project.getArtemisConfigHost();
@ -1917,19 +1971,29 @@ public class HikvisionCall {
/**
* 预约车辆
* 保存预约车辆
*
* @param project
* @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);
chargeDeletion(project, new ChargeDeletionParam(parkIndexCode, carInfo.getCarNumber()));
//临时车辆预约
reservationCarFromHttp(project, carInfo);
}
private void reservationCarFromHttp(Project project, CarInfo carInfo) throws Exception {
@ -2026,7 +2090,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 operation 绑定操作类型1绑定2解绑
@ -2034,7 +2112,7 @@ public class HikvisionCall {
* @param vehicleIds
* @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)) {
return;
}
@ -2261,7 +2339,7 @@ public class HikvisionCall {
String code = sdRs.getString("code");
if (Objects.equals(code, "0x15403007")) {
//已存在权限下发成功
setSuccessByNow(workerInfo.getProjectSn(), workerInfo.getId(), 3, i == 0 ? 1 : 3, ThreadLocalUtil.getNotNull().getDate("now"), devSn);
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), 3, i == 0 ? 1 : 3, ThreadLocalUtil.getNotNull().getDate("now"), devSn);
sucSb.append(workerInfo.getWorkerName() + "" + dev.getDevName() + "");
return;
}
@ -2275,7 +2353,7 @@ public class HikvisionCall {
JSONObject sdRsJo = HikvisionUtil.getJSONObjectData(sdRs);
Integer downloadResult = sdRsJo.getJSONObject("resourceDownloadResult").getInteger("downloadResult");
if (downloadResult == 0) {
setSuccessByNow(workerInfo.getProjectSn(), workerInfo.getId(), 3, i == 0 ? 1 : 3, ThreadLocalUtil.getNotNull().getDate("now"), devSn);
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), 3, i == 0 ? 1 : 3, ThreadLocalUtil.getNotNull().getDate("now"), devSn);
sucSb.append(workerInfo.getWorkerName() + "" + dev.getDevName() + "");
} else {
log.error(workerInfo.getWorkerName() + "" + dev.getDevName() + ",fail" + sdRsJo.toJSONString());

View File

@ -1,9 +1,11 @@
package com.zhgd.xmgl.config;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.concurrent.ThreadPoolExecutor;
@ -28,6 +30,11 @@ public class AsyncConfig {
*/
private int queueCapacity = 200;
@Bean
public InitializingBean initializingBean() {
return () -> SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);
}
/**
* 默认情况下在创建了线程池后线程池中的线程数为0当有任务来之后就会创建一个线程去执行任务
* 当线程池中的线程数目达到corePoolSize后就会把到达的任务放到缓存队列当中

View File

@ -139,4 +139,8 @@ public class CarInfo implements Serializable {
@ApiModelProperty(value = "流程参与人")
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)
);
if (xzHikvisionSync.getOperate() == 1) {
hikvisionCall.addCarInfoFromHikvision(carInfo);
hikvisionCall.saveCarInfoFromHikvision(carInfo);
} else if (xzHikvisionSync.getOperate() == 2) {
hikvisionCall.editCarInfoForHikvision(carInfo, carInfo);
} else if (xzHikvisionSync.getOperate() == 3) {