Merge remote-tracking branch 'origin/guoshengxiong' into guoshengxiong
This commit is contained in:
commit
5a6c5cf5fc
@ -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
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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后,就会把到达的任务放到缓存队列当中;
|
||||
|
||||
@ -139,4 +139,8 @@ public class CarInfo implements Serializable {
|
||||
@ApiModelProperty(value = "流程参与人")
|
||||
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)
|
||||
);
|
||||
if (xzHikvisionSync.getOperate() == 1) {
|
||||
hikvisionCall.addCarInfoFromHikvision(carInfo);
|
||||
hikvisionCall.saveCarInfoFromHikvision(carInfo);
|
||||
} else if (xzHikvisionSync.getOperate() == 2) {
|
||||
hikvisionCall.editCarInfoForHikvision(carInfo, carInfo);
|
||||
} else if (xzHikvisionSync.getOperate() == 3) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user