bug修复
This commit is contained in:
parent
f764c944f6
commit
b6f81d98a8
@ -97,10 +97,9 @@ public class AsyncHikvision {
|
||||
@Autowired
|
||||
private RedisRepository redisRepository;
|
||||
|
||||
public static Date getSyncTimeWithInitIfAbsent(int bigType, Long tableId) {
|
||||
public static Date getSyncTimeWithInitIfAbsent() {
|
||||
Date now = ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME);
|
||||
if (now == null) {
|
||||
//首次执行,清空以前同步记录
|
||||
now = new Date();
|
||||
ThreadLocalUtil.addInKey(XZ_HIKVISION_SYNC_TIME, now);
|
||||
}
|
||||
@ -164,6 +163,10 @@ public class AsyncHikvision {
|
||||
projectUfaceConfigService.updateWorkerInfo(workerInfo, workerInfo);
|
||||
}
|
||||
|
||||
public void saveWorker(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.saveWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
}
|
||||
|
||||
@Async("workerHkExecutor")
|
||||
public void saveWorkerAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
try {
|
||||
@ -490,10 +493,6 @@ public class AsyncHikvision {
|
||||
hikvisionCall.getDoorEvents(paramMap);
|
||||
}
|
||||
|
||||
public void sendBatchWorkerInfo(List<UfaceDev> allDevList, List<WorkerInfo> workerList, List<JSONObject> workerAndDevSnList, Long userId, String projectSn, boolean isRetry) {
|
||||
this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, false, true, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量下发人员
|
||||
*
|
||||
@ -541,7 +540,7 @@ public class AsyncHikvision {
|
||||
}));
|
||||
futures = new ArrayList<>();
|
||||
for (Map.Entry<String, List<JSONObject>> entry : devSnToJoMap.entrySet()) {
|
||||
Future future = asyncHikvision.sendBatchWorkersForOneDevAsync(workerIdMap, devSnMap, project, devSnToIscDevSnMap, entry, projectSn, sendNotice, workerList,flowStartUser);
|
||||
Future future = asyncHikvision.sendBatchWorkersForOneDevAsync(workerIdMap, devSnMap, project, devSnToIscDevSnMap, entry, projectSn, sendNotice, workerList, flowStartUser);
|
||||
futures.add(future);
|
||||
}
|
||||
for (Future future : futures) {
|
||||
@ -568,7 +567,7 @@ public class AsyncHikvision {
|
||||
log.error("批量下发权限失败:", e);
|
||||
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerList, 1, 1);
|
||||
hikvisionCall.updateAllFailStatusIfNullForAuth(projectSn, workerList, 1, 3);
|
||||
sendExcNotice(e, workerList, null, projectSn,flowStartUser);
|
||||
sendExcNotice(e, workerList, null, projectSn, flowStartUser);
|
||||
}
|
||||
}
|
||||
|
||||
@ -690,7 +689,7 @@ public class AsyncHikvision {
|
||||
Set<String> rtWorkerIdSet;
|
||||
if (CollUtil.isNotEmpty(qaiList)) {
|
||||
for (int i = 0; i < qaiList.size(); i++) {
|
||||
handlerBatchWorkersResult(workerIdMap, qaiList, i, devSn, projectSn, addAuthWorkerIds, sendNotice, dev,flowStartUser);
|
||||
handlerBatchWorkersResult(workerIdMap, qaiList, i, devSn, projectSn, addAuthWorkerIds, sendNotice, dev, flowStartUser);
|
||||
}
|
||||
rtWorkerIdSet = qaiList.stream().map(o -> ((JSONObject) o).getString("personId")).collect(Collectors.toSet());
|
||||
} else {
|
||||
|
||||
@ -99,7 +99,9 @@ public class CarInfo implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "报警推送人")
|
||||
private java.lang.String alarmPushWorkerId;
|
||||
|
||||
/**
|
||||
* 车辆类型(1、固定车,2、预约车辆(长期)3、预约车辆(临时)
|
||||
*/
|
||||
@ApiModelProperty(value = "车辆类型(1、固定车,2、预约车辆(长期)3、预约车辆(临时)")
|
||||
private Integer carModuleType;
|
||||
|
||||
|
||||
@ -615,7 +615,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
log.info("未找到设备,无需下发,人员:{}", workerInfo.getWorkerName());
|
||||
return;
|
||||
}
|
||||
asyncHikvision.sendBatchWorkerInfo(allDevList, Collections.singletonList(workerInfo), workerAndDevSnList, null, projectSn, isRetry);
|
||||
asyncHikvision.sendBatchWorkerInfoAsync(allDevList, Collections.singletonList(workerInfo), workerAndDevSnList, null, projectSn, false, true, null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2522,9 +2522,9 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
@Override
|
||||
@Async("workerHkExecutor")
|
||||
public Future editWorkerAsyncForSendBatchAuth(WorkerInfo workerInfo) {
|
||||
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(1).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
if (StrUtil.isNotBlank(workerInfo.getFieldAcquisitionUrl())) {
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).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()));
|
||||
}
|
||||
asyncHikvision.editWorker(workerInfo, true, true);
|
||||
return null;
|
||||
|
||||
@ -491,7 +491,7 @@ public class XzRiskPredictionController {
|
||||
int temLow = 0;
|
||||
int temHighLow = 0;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
com.gexin.fastjson.JSONObject jo = ja.getJSONObject(i);
|
||||
com.gexin.fastjson.JSONObject jo = ja.getJSONObject(i + 1);
|
||||
String winSpeed = jo.getString("win_speed");
|
||||
String weaImg = jo.getString("wea_img");
|
||||
Double temDay = jo.getDouble("tem_day");
|
||||
@ -591,7 +591,7 @@ public class XzRiskPredictionController {
|
||||
String weatherData = AqiUtil.getWeatherData(weathercityid);
|
||||
JSONArray ja = JSON.parseArray(weatherData);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
com.gexin.fastjson.JSONObject jo = ja.getJSONObject(i);
|
||||
com.gexin.fastjson.JSONObject jo = ja.getJSONObject(i + 1);
|
||||
String winSpeed = jo.getString("win_speed");
|
||||
String weaImg = jo.getString("wea_img");
|
||||
List<Integer> nums = NumberUtils.getIntegersInStr(winSpeed);
|
||||
|
||||
@ -33,7 +33,9 @@ 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.XzHikvisionCompareData;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
import com.zhgd.xmgl.task.HikvisionTask;
|
||||
@ -48,6 +50,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static com.zhgd.xmgl.async.AsyncHikvision.getSyncTimeWithInitIfAbsent;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康数据校验失败记录
|
||||
* @author: pds
|
||||
@ -98,6 +102,8 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
@Lazy
|
||||
@Autowired
|
||||
private RedisRepository redisRepository;
|
||||
@Autowired
|
||||
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
|
||||
|
||||
@Override
|
||||
public IPage<XzHikvisionCompareData> queryPageList(HashMap<String, Object> param) {
|
||||
@ -257,7 +263,6 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void syncDepartment(XzHikvisionCompareData data) throws Exception {
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
|
||||
DepartmentInfo departmentInfo = departmentInfoService.queryById(data.getUniqueId());
|
||||
@ -291,7 +296,6 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void syncWorker(XzHikvisionCompareData data) throws Exception {
|
||||
boolean isWorker = data.getOurType() == 4;
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
|
||||
@ -300,6 +304,13 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
//查询id是否存在平台,存在就更新,不存在就删除
|
||||
if (workerInfo != null) {
|
||||
//同步海康
|
||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 1)
|
||||
.eq(XzHikvisionSync::getWhoId, workerInfo.getId())
|
||||
);
|
||||
if (isWorker) {
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(isWorker ? 1 : 2).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
}
|
||||
asyncHikvision.saveWorkerAsync(workerInfo, isWorker, !isWorker);
|
||||
} else {
|
||||
workerInfo = new WorkerInfo();
|
||||
@ -314,6 +325,13 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
JSONObject rtJo = HikvisionUtil.queryWorkerByCondition(projectInfoBySn, param);
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 1)
|
||||
.eq(XzHikvisionSync::getWhoId, workerInfo.getId())
|
||||
);
|
||||
if (isWorker) {
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(isWorker ? 1 : 2).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
}
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
asyncHikvision.addWorkerAsync(workerInfo, isWorker, !isWorker);
|
||||
@ -335,15 +353,15 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
if (carInfo != null) {
|
||||
//同步海康
|
||||
if (Objects.equals(carInfo.getIsBlack(), 1)) {
|
||||
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
|
||||
deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, 1, true);
|
||||
} else {
|
||||
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
|
||||
editCarInfoForHikvisionAsync(carInfo);
|
||||
}
|
||||
} else {
|
||||
carInfo = new CarInfo();
|
||||
carInfo.setCarNumber(data.getCarNumber());
|
||||
carInfo.setProjectSn(data.getProjectSn());
|
||||
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, false);
|
||||
deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, 3, false);
|
||||
}
|
||||
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
|
||||
//查询id是否存在isc,存在就更新,不存在就新增
|
||||
@ -364,17 +382,22 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
|
||||
deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, 1, true);
|
||||
} else {
|
||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 2)
|
||||
.eq(XzHikvisionSync::getWhoId, carInfo.getId())
|
||||
);
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(Objects.equals(carInfo.getCarModuleType(), 1) ? 4 : 6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
asyncHikvision.addCarInfoForHikvisionAsync(carInfo);
|
||||
}
|
||||
} else {
|
||||
//更新
|
||||
//同步海康
|
||||
if (Objects.equals(carInfo.getIsBlack(), 1)) {
|
||||
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
|
||||
deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, 1, true);
|
||||
} else {
|
||||
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
|
||||
editCarInfoForHikvisionAsync(carInfo);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -384,6 +407,25 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteCarInfoAndSetBlackForHikvisionAsync(CarInfo carInfo, int operate, boolean isSetBlack) {
|
||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 2)
|
||||
.eq(XzHikvisionSync::getWhoId, carInfo.getId())
|
||||
);
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(Objects.equals(carInfo.getCarModuleType(), 1) ? 4 : 6).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(operate).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, isSetBlack);
|
||||
}
|
||||
|
||||
private void editCarInfoForHikvisionAsync(CarInfo carInfo) {
|
||||
xzHikvisionSyncMapper.delete(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 2)
|
||||
.eq(XzHikvisionSync::getWhoId, carInfo.getId())
|
||||
);
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(Objects.equals(carInfo.getCarModuleType(), 1) ? 4 : 6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
|
||||
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据校验重试失败
|
||||
*/
|
||||
|
||||
@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.redis.lock.redisson.DistributedLock;
|
||||
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
@ -245,17 +246,17 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
String redisKey = Cts.HK_SYNC_AUTH_SUCCESS_KEY + id;
|
||||
Object success = redisRepository.get(redisKey);
|
||||
redisRepository.del(redisKey);
|
||||
if (!Objects.equals(success,1)) {
|
||||
throw new OpenAlertException("重试失败");
|
||||
}
|
||||
return;
|
||||
//if (!Objects.equals(success,1)) {
|
||||
// throw new OpenAlertException("重试失败");
|
||||
//}
|
||||
//return;
|
||||
}
|
||||
}
|
||||
|
||||
XzHikvisionSync xzHikvisionSync1 = baseMapper.selectById(id);
|
||||
if (!Objects.equals(xzHikvisionSync1.getIsSuccess(), 1)) {
|
||||
throw new OpenAlertException("重试失败");
|
||||
}
|
||||
//XzHikvisionSync xzHikvisionSync1 = baseMapper.selectById(id);
|
||||
//if (!Objects.equals(xzHikvisionSync1.getIsSuccess(), 1)) {
|
||||
// throw new OpenAlertException("重试失败");
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user