移动方法
This commit is contained in:
parent
8e129ca026
commit
35b4f5425a
@ -33,6 +33,7 @@ import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@ -444,4 +445,14 @@ public class AsyncHikvision {
|
||||
log.error("海康:", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Async("getRecordForHikvisionTask")
|
||||
public void getCrossRecordsAsync(HashMap<String, Object> paramMap) {
|
||||
hikvisionCall.getCrossRecords(paramMap);
|
||||
}
|
||||
|
||||
@Async("getRecordForHikvisionTask")
|
||||
public void getDoorEventsAsync(HashMap<String, Object> paramMap) {
|
||||
hikvisionCall.getDoorEvents(paramMap);
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,7 +67,6 @@ import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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;
|
||||
@ -75,7 +74,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -89,7 +87,7 @@ import java.util.*;
|
||||
@RequestMapping("/xmgl/hikvision")
|
||||
public class HikvisionCall {
|
||||
private static final String FIXED_CAR_GROUP_NAME = "业主车辆";
|
||||
static String pageNo = "pageNo";
|
||||
public AsyncHikvision asyncHikvision;
|
||||
@Autowired
|
||||
XzHikvisionSyncServiceImpl xzHikvisionSyncService;
|
||||
@Lazy
|
||||
@ -166,13 +164,10 @@ public class HikvisionCall {
|
||||
private UfaceDevMapper ufaceDevMapper;
|
||||
@Autowired
|
||||
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
|
||||
|
||||
@Autowired
|
||||
private IAiAnalyseHardWareRecordService aiAnalyseHardWareRecordService;
|
||||
|
||||
@Autowired
|
||||
private IFrontierProtectionNoNetDevService frontierProtectionNoNetDevService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService;
|
||||
@ -185,12 +180,10 @@ public class HikvisionCall {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private FrontierProtectionNoNetDataServiceImpl frontierProtectionNoNetDataService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IXzHikvisionCompareDataService xzHikvisionCompareDataService;
|
||||
|
||||
|
||||
/**
|
||||
* 获取图片
|
||||
*
|
||||
@ -544,7 +537,7 @@ public class HikvisionCall {
|
||||
.eq(UfaceDev::getProjectSn, project.getProjectSn()));
|
||||
for (UfaceDev ufaceDev : ufaceDevs) {
|
||||
param.put("doorIndexCodes", Collections.singletonList(ufaceDev.getDevSn()));
|
||||
param.put(pageNo, 0);
|
||||
param.put(Cts.PAGE_NO, 0);
|
||||
param.put("pageSize", 1000);
|
||||
Integer total = 0;
|
||||
JSONArray listJa = new JSONArray();
|
||||
@ -605,7 +598,7 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (total > param.getInteger(pageNo) * 1000);
|
||||
} while (total > param.getInteger(Cts.PAGE_NO) * 1000);
|
||||
}
|
||||
try {
|
||||
workerAttendancePresenceService.addNowAllWorkerAttendancePresence(projectSn);
|
||||
@ -661,10 +654,10 @@ public class HikvisionCall {
|
||||
param.put("parkSyscode", projectParkCode);
|
||||
Integer total = 0;
|
||||
JSONArray listJa = new JSONArray();
|
||||
param.put(pageNo, 0);
|
||||
param.put(Cts.PAGE_NO, 0);
|
||||
do {
|
||||
String rs = null;
|
||||
param.put(pageNo, param.getIntValue(pageNo) + 1);
|
||||
param.put(Cts.PAGE_NO, param.getIntValue(Cts.PAGE_NO) + 1);
|
||||
try {
|
||||
rs = getCrossRecordsForHttp(project, param);
|
||||
} catch (Exception e) {
|
||||
@ -730,67 +723,11 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (total > param.getInteger(pageNo) * 1000);
|
||||
} while (total > param.getInteger(Cts.PAGE_NO) * 1000);
|
||||
}
|
||||
log.info("服务挂了主动获取车辆事件的车辆通行记录执行完成,startTime:{},endTime:{}", startTime, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时一分钟获取海康数据
|
||||
*/
|
||||
@SchedulerLock(name = "getRecordForHikvision", lockAtMostFor = 1000 * 30, lockAtLeastFor = 1000 * 30)
|
||||
@Scheduled(cron = "0 */1 * * * ?")
|
||||
@RequestMapping("getRecordForHikvision")
|
||||
public void getRecordForHikvision() {
|
||||
String startTime = DateUtil.formatDateTime(DateUtil.offsetMinute(new Date(), -2));
|
||||
String endTime = DateUtil.formatDateTime(new Date());
|
||||
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getSyncHikvision, 1));
|
||||
for (Project project : projects) {
|
||||
log.info("定时获取海康记录,{}", project.getProjectName());
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("projectSn", project.getProjectSn());
|
||||
map.put("startTime", startTime);
|
||||
map.put("endTime", endTime);
|
||||
hikvisionCall.getDoorEventsAsync(map);
|
||||
hikvisionCall.getCrossRecordsAsync(map);
|
||||
}
|
||||
}
|
||||
|
||||
@Async("getRecordForHikvisionTask")
|
||||
public void getDoorEventsAsync(HashMap<String, Object> paramMap) {
|
||||
getDoorEvents(paramMap);
|
||||
}
|
||||
|
||||
@Async("getRecordForHikvisionTask")
|
||||
public void getCrossRecordsAsync(HashMap<String, Object> paramMap) {
|
||||
getCrossRecords(paramMap);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 定时重试失败的记录
|
||||
*/
|
||||
@SchedulerLock(name = "retrySyncHikvision", lockAtMostFor = 1000 * 30, lockAtLeastFor = 1000 * 30)
|
||||
@Scheduled(cron = "0 */10 * * * ?")
|
||||
@RequestMapping("retrySyncHikvision")
|
||||
public void retrySyncHikvision() throws Exception {
|
||||
HashMap<String, Object> newListMap = new HashMap<>();
|
||||
newListMap.put("isSuccess", 0);
|
||||
newListMap.put("createDateBegin", DateUtil.formatDateTime(DateUtil.offsetHour(new Date(), -1)));
|
||||
List<XzHikvisionSync> newestList = xzHikvisionSyncService.getNewestList(newListMap);
|
||||
for (XzHikvisionSync xzHikvisionSync : newestList) {
|
||||
log.info("海康同步的定时重试失败的记录,id:{}", xzHikvisionSync.getId());
|
||||
HashMap<String, Object> retryMap = new HashMap<>();
|
||||
retryMap.put("id", xzHikvisionSync.getId());
|
||||
try {
|
||||
xzHikvisionSyncService.retry(retryMap);
|
||||
} catch (Exception e) {
|
||||
log.error("海康同步的定时重试失败的记录:error:", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车辆颜色
|
||||
*
|
||||
|
||||
@ -45,4 +45,5 @@ public interface Cts {
|
||||
String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
|
||||
String YYYY_MM_DD = "yyyy-MM-dd";
|
||||
String TL_AUTH_USER = "authUser";
|
||||
String PAGE_NO = "pageNo";
|
||||
}
|
||||
|
||||
@ -29,4 +29,5 @@ public interface IProjectCarCameraConfigService extends IService<ProjectCarCamer
|
||||
|
||||
void saveProjectCarCameraConfig(ProjectCarCameraConfig projectCarCameraConfig);
|
||||
|
||||
boolean isHikvisionConfig(String projectSn);
|
||||
}
|
||||
|
||||
@ -46,14 +46,18 @@ import static com.zhgd.xmgl.async.AsyncHikvision.getSyncTimeWithInitIfAbsent;
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Slf4j
|
||||
public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> implements ICarInfoService {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
|
||||
ProjectCarCameraConfigMapper projectCarCameraConfigMapper;
|
||||
@Autowired
|
||||
CarInfoApprovalFlowMapper carInfoApprovalFlowMapper;
|
||||
@Autowired
|
||||
ProjectMapper projectMapper;
|
||||
@Autowired
|
||||
ProjectCarCameraConfigServiceImpl projectCarCameraConfigService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
|
||||
@Autowired
|
||||
private EnterpriseInfoServiceImpl enterpriseInfoService;
|
||||
@Autowired
|
||||
private SystemUserServiceImpl systemUserService;
|
||||
@ -327,6 +331,11 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
|
||||
@Override
|
||||
public void addCarInfoForHikvision(CarInfo carInfo, AsyncHikvision asyncHikvision) {
|
||||
boolean hikvisionConfig = projectCarCameraConfigService.isHikvisionConfig(carInfo.getProjectSn());
|
||||
if (!hikvisionConfig) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
deleteCarInfoForHikvision(carInfo, true);
|
||||
} else {
|
||||
@ -342,6 +351,10 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
|
||||
@Override
|
||||
public void deleteCarInfoForHikvision(CarInfo carInfo, boolean isSetBlack) {
|
||||
boolean hikvisionConfig = projectCarCameraConfigService.isHikvisionConfig(carInfo.getProjectSn());
|
||||
if (!hikvisionConfig) {
|
||||
return;
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
|
||||
@ -351,6 +364,11 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
|
||||
@Override
|
||||
public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) {
|
||||
boolean hikvisionConfig = projectCarCameraConfigService.isHikvisionConfig(carInfo.getProjectSn());
|
||||
if (!hikvisionConfig) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
deleteCarInfoForHikvision(carInfo, true);
|
||||
} else {
|
||||
|
||||
@ -15,7 +15,6 @@ import com.zhgd.xmgl.util.RefUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -102,4 +101,13 @@ public class ProjectCarCameraConfigServiceImpl extends ServiceImpl<ProjectCarCam
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHikvisionConfig(String projectSn) {
|
||||
Integer c = projectCarCameraConfigMapper.selectCount(new LambdaQueryWrapper<ProjectCarCameraConfig>()
|
||||
.eq(ProjectCarCameraConfig::getProjectSn, projectSn)
|
||||
.eq(ProjectCarCameraConfig::getSupplierType, 1)
|
||||
);
|
||||
return c > 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -26,7 +26,9 @@ public interface IProjectUfaceConfigService extends IService<ProjectUfaceConfig>
|
||||
|
||||
void deleteWorkerInfo(WorkerInfo workerInfo);
|
||||
|
||||
void updateWorkerInfo(WorkerInfo newWorkerInfo,WorkerInfo oldWorkerInfo);
|
||||
void updateWorkerInfo(WorkerInfo newWorkerInfo, WorkerInfo oldWorkerInfo);
|
||||
|
||||
void sendBatchWorkerInfo(WorkerInfo workerInfo, ProjectUfaceConfig projectUfaceConfig, List<UfaceDev> list);
|
||||
|
||||
boolean isHikvisionConfig(String projectSn);
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||
import com.zhgd.xmgl.modules.car.entity.ProjectCarCameraConfig;
|
||||
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper;
|
||||
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
|
||||
@ -464,6 +465,15 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHikvisionConfig(String projectSn) {
|
||||
Integer c = baseMapper.selectCount(new LambdaQueryWrapper<ProjectUfaceConfig>()
|
||||
.eq(ProjectUfaceConfig::getProjectSn, projectSn)
|
||||
.eq(ProjectUfaceConfig::getSupplierType, 9)
|
||||
);
|
||||
return c > 0;
|
||||
}
|
||||
|
||||
public void sendDev(ProjectUfaceConfig tempProjectUfaceConfig, WorkerInfo workerInfo, String devSns, String devIds) {
|
||||
log.info("supplierType:{}", tempProjectUfaceConfig.getSupplierType());
|
||||
//1杭州宇泛智能科技,2用jdpush推送,3.mqtt,4.芊熠智能,5佳信捷,6佳信捷新设备
|
||||
|
||||
@ -2339,7 +2339,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
|
||||
@Override
|
||||
public void addWorkerForHikvision(WorkerInfo workerInfo) {
|
||||
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
|
||||
boolean hikvisionConfig = projectUfaceConfigService.isHikvisionConfig(workerInfo.getProjectSn());
|
||||
if (!hikvisionConfig) {
|
||||
return;
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
asyncHikvision.addWorkerForHikvisionAsync(workerInfo);
|
||||
@ -2347,7 +2350,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
|
||||
@Override
|
||||
public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo) {
|
||||
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
|
||||
boolean hikvisionConfig = projectUfaceConfigService.isHikvisionConfig(workerInfo.getProjectSn());
|
||||
if (!hikvisionConfig) {
|
||||
return;
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(3).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(3).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
asyncHikvision.deleteWorkerForHikvisionAsync(uniqueId, workerInfo);
|
||||
@ -2355,7 +2361,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
|
||||
@Override
|
||||
public void editWorkerForHikvision(WorkerInfo workerInfo) {
|
||||
getSyncTimeWithInitIfAbsent(1, workerInfo.getId());
|
||||
boolean hikvisionConfig = projectUfaceConfigService.isHikvisionConfig(workerInfo.getProjectSn());
|
||||
if (!hikvisionConfig) {
|
||||
return;
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
asyncHikvision.editWorkerForHikvisionAsync(workerInfo);
|
||||
|
||||
@ -2,18 +2,22 @@ package com.zhgd.xmgl.task;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.car.entity.CarInfo;
|
||||
import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.car.service.impl.ProjectCarCameraConfigServiceImpl;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.project.service.impl.ProjectUfaceConfigServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.TeamInfo;
|
||||
@ -23,8 +27,10 @@ import com.zhgd.xmgl.modules.worker.service.ITeamInfoService;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.DepartmentInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService;
|
||||
import com.zhgd.xmgl.modules.xz.service.impl.XzHikvisionSyncServiceImpl;
|
||||
import com.zhgd.xmgl.util.HikvisionUtil;
|
||||
import com.zhgd.xmgl.util.MapBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -35,18 +41,17 @@ import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("xmgl/task")
|
||||
@RequestMapping(value = {"xmgl/task", "xmgl/hikvision"})
|
||||
public class HikvisionTask {
|
||||
|
||||
@Autowired
|
||||
XzHikvisionSyncServiceImpl xzHikvisionSyncService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private HikvisionCall hikvisionCall;
|
||||
@ -68,7 +73,6 @@ public class HikvisionTask {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private WorkerInfoServiceImpl workerInfoService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
|
||||
@ -81,6 +85,68 @@ public class HikvisionTask {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private DepartmentInfoMapper departmentInfoMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ProjectCarCameraConfigServiceImpl projectCarCameraConfigService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ProjectUfaceConfigServiceImpl projectUfaceConfigService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private AsyncHikvision asyncHikvision;
|
||||
|
||||
/**
|
||||
* 定时一分钟获取海康数据
|
||||
*/
|
||||
@SchedulerLock(name = "getRecordForHikvision", lockAtMostFor = 1000 * 30, lockAtLeastFor = 1000 * 30)
|
||||
@Scheduled(cron = "0 */1 * * * ?")
|
||||
@RequestMapping("getRecordForHikvision")
|
||||
public void getRecordForHikvision() {
|
||||
String startTime = DateUtil.formatDateTime(DateUtil.offsetMinute(new Date(), -2));
|
||||
String endTime = DateUtil.formatDateTime(new Date());
|
||||
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getSyncHikvision, 1));
|
||||
for (Project project : projects) {
|
||||
log.info("定时获取海康记录,{}", project.getProjectName());
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("projectSn", project.getProjectSn());
|
||||
map.put("startTime", startTime);
|
||||
map.put("endTime", endTime);
|
||||
String projectSn = project.getProjectSn();
|
||||
boolean carConfig = projectCarCameraConfigService.isHikvisionConfig(projectSn);
|
||||
boolean ufaceConfig = projectUfaceConfigService.isHikvisionConfig(projectSn);
|
||||
if (carConfig) {
|
||||
asyncHikvision.getCrossRecordsAsync(map);
|
||||
}
|
||||
if (ufaceConfig) {
|
||||
asyncHikvision.getDoorEventsAsync(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时重试失败的记录
|
||||
*/
|
||||
@SchedulerLock(name = "retrySyncHikvision", lockAtMostFor = 1000 * 30, lockAtLeastFor = 1000 * 30)
|
||||
@Scheduled(cron = "0 */10 * * * ?")
|
||||
@RequestMapping("retrySyncHikvision")
|
||||
public void retrySyncHikvision() throws Exception {
|
||||
HashMap<String, Object> newListMap = new HashMap<>();
|
||||
newListMap.put("isSuccess", 0);
|
||||
newListMap.put("createDateBegin", DateUtil.formatDateTime(DateUtil.offsetHour(new Date(), -1)));
|
||||
List<XzHikvisionSync> newestList = xzHikvisionSyncService.getNewestList(newListMap);
|
||||
for (XzHikvisionSync xzHikvisionSync : newestList) {
|
||||
log.info("海康同步的定时重试失败的记录,id:{}", xzHikvisionSync.getId());
|
||||
HashMap<String, Object> retryMap = new HashMap<>();
|
||||
retryMap.put("id", xzHikvisionSync.getId());
|
||||
try {
|
||||
xzHikvisionSyncService.retry(retryMap);
|
||||
} catch (Exception e) {
|
||||
log.error("海康同步的定时重试失败的记录:error:", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 数据校验同步
|
||||
@ -93,8 +159,14 @@ public class HikvisionTask {
|
||||
for (Project project : projects) {
|
||||
try {
|
||||
xzHikvisionCompareDataService.deleteAllCompareData(project);
|
||||
compareHikvisionForEnterpriseEtc(project);
|
||||
compareHikvisionForCar(project);
|
||||
boolean ufaceConfig = projectUfaceConfigService.isHikvisionConfig(project.getProjectSn());
|
||||
if (ufaceConfig) {
|
||||
compareHikvisionForEnterpriseEtc(project);
|
||||
}
|
||||
boolean carConfig = projectCarCameraConfigService.isHikvisionConfig(project.getProjectSn());
|
||||
if (carConfig) {
|
||||
compareHikvisionForCar(project);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("数据校验同步失败,projectSn:{} ", project.getProjectSn(), e);
|
||||
xzHikvisionCompareDataService.addExceptionShowIfNull(project.getProjectSn());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user