数据校验bug修复

This commit is contained in:
guoshengxiong 2024-06-27 10:07:05 +08:00
parent fac25ea1b6
commit 6e92b68ab7
11 changed files with 133 additions and 55 deletions

View File

@ -101,6 +101,7 @@ public class DataScopeHandler implements DataPermissionHandler {
tables.put("exam_course_record", "enterprise_id"); tables.put("exam_course_record", "enterprise_id");
tables.put("xz_worker_safe_watch_alarm", "enterprise_id"); tables.put("xz_worker_safe_watch_alarm", "enterprise_id");
tables.put("dangerous_engineering_record", "responsibility_company_id"); tables.put("dangerous_engineering_record", "responsibility_company_id");
tables.put("project_fine_record", "enterprise_id");
if (!environmentUtil.isBaise()) { if (!environmentUtil.isBaise()) {
tables.put("car_info", "enterprise_id"); tables.put("car_info", "enterprise_id");
tables.put("enterprise_info", "id"); tables.put("enterprise_info", "id");

View File

@ -309,9 +309,9 @@ public class AsyncHikvision {
} }
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn, String enterpriseName, Long projectEnterpriseId) { public void deleteEnterpriseInfoForHikvision(String projectSn, String enterpriseName) {
try { try {
hikvisionCall.deleteEnterpriseInfoForHikvision(enterpriseId, projectSn, enterpriseName, projectEnterpriseId); hikvisionCall.deleteEnterpriseInfoForHikvision(projectSn, enterpriseName);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForOrg(enterpriseName, e, "删除"); sendNoticeForOrg(enterpriseName, e, "删除");

View File

@ -1014,6 +1014,15 @@ public class HikvisionCall {
} else if (Objects.equals(code, "0x00072003")) { } else if (Objects.equals(code, "0x00072003")) {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车牌格式不正确!"; msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车牌格式不正确!";
title += "失败"; title += "失败";
} else if (Objects.equals(code, "0x00052301")) {
String msg1 = jo.getString("msg");
if (Objects.equals(msg1, "PersonId Not Exists")) {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因车辆绑定的人员ID不存在";
title += "失败";
} else {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
title += "失败";
}
} else { } else {
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常"; msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
title += "失败"; title += "失败";
@ -1035,7 +1044,7 @@ public class HikvisionCall {
updateFailStatus(carInfo.getProjectSn(), carInfo.getId(), type, operate, null); updateFailStatus(carInfo.getProjectSn(), carInfo.getId(), type, operate, null);
} }
xzHikvisionCompareDataService.compareRetryStatus(carInfo, type, operate, setSuc); xzHikvisionCompareDataService.compareRetryForCar(carInfo, type, operate, setSuc);
if (isNotice) { if (isNotice) {
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
@ -1076,6 +1085,22 @@ public class HikvisionCall {
msg = "同步成功,组织名称:" + orgName; msg = "同步成功,组织名称:" + orgName;
title += "成功"; title += "成功";
} }
} else if (jo.get("data") instanceof JSONArray) {
JSONArray dataJa = jo.getJSONArray("data");
if (CollUtil.isNotEmpty(dataJa)) {
if ("0x00052102".equals(dataJa.getJSONObject(0).getString("code")) && "Exists Child Org".equals(dataJa.getJSONObject(0).getString("msg"))) {
msg = "同步失败,组织名称:" + orgName + "。失败原因ISC存在下级组织";
title += "失败";
success = false;
} else {
msg = "同步失败,组织名称:" + orgName + "。失败原因:下发异常";
title += "失败";
success = false;
}
} else {
msg = "同步成功,组织名称:" + orgName;
title += "成功";
}
} else { } else {
msg = "同步成功,组织名称:" + orgName; msg = "同步成功,组织名称:" + orgName;
title += "成功"; title += "成功";
@ -1086,7 +1111,7 @@ public class HikvisionCall {
success = false; success = false;
} }
if (success) { if (success) {
xzHikvisionCompareDataService.compareRetryStatus(); xzHikvisionCompareDataService.compareRetrySuc();
} else { } else {
xzHikvisionCompareDataService.compareRetryFail(); xzHikvisionCompareDataService.compareRetryFail();
} }
@ -1155,7 +1180,7 @@ public class HikvisionCall {
} }
if (success) { if (success) {
updateSuccessStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null); updateSuccessStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null);
xzHikvisionCompareDataService.compareRetryStatus(); xzHikvisionCompareDataService.compareRetrySuc();
} else { } else {
updateFailStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null); updateFailStatus(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, null);
xzHikvisionCompareDataService.compareRetryFail(); xzHikvisionCompareDataService.compareRetryFail();
@ -1850,21 +1875,45 @@ public class HikvisionCall {
/** /**
* 删除组织 * 删除组织
* *
* @param enterpriseId
* @param projectSn * @param projectSn
* @param enterpriseName * @param enterpriseName
* @param projectEnterpriseId
*/ */
public void deleteEnterpriseInfoForHikvision(String enterpriseId, String projectSn, String enterpriseName, Long projectEnterpriseId) throws Exception { public void deleteEnterpriseInfoForHikvision(String projectSn, String enterpriseName) throws Exception {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, projectSn)); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, projectSn));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
Pair<Boolean, String> pair = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, String.valueOf(enterpriseId), projectEnterpriseId); String orgIndex = getOrgIndexByParentIndexAndName(project, enterpriseName);
String rs = HikvisionUtil.deleteOrgByIndexCodes(project, Collections.singletonList(pair.getRight())); String rs = HikvisionUtil.deleteOrgByIndexCodes(project, Collections.singletonList(orgIndex));
sendNoticeForOrg("删除组织到海康isc", rs, enterpriseName); sendNoticeForOrg("删除组织到海康isc", rs, enterpriseName);
} }
/**
* 根据父级索引和名称获取组织索引
*
* @param project
* @param orgName
* @return
* @throws Exception
*/
private String getOrgIndexByParentIndexAndName(Project project, String orgName) throws Exception {
JSONObject param = new JSONObject();
param.put("pageNo", 1);
param.put("pageSize", 1000);
param.put("orgName", orgName);
param.put("parentOrgIndexCodes", project.getProjectSn());
String rs = HikvisionUtil.getOrgV2(project, param);
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rs);
JSONArray listJa = dataJo.getJSONArray("list");
for (int i = 0; i < listJa.size(); i++) {
JSONObject jo = listJa.getJSONObject(i);
if (jo.getString("orgName").equals(orgName)) {
return jo.getString("orgIndexCode");
}
}
return null;
}
/** /**
* 添加组织 * 添加组织
* *
@ -2026,10 +2075,14 @@ public class HikvisionCall {
* @return * @return
*/ */
private JSONArray getOrgList(Project project, String orgIndexs, String parentOrgIndexCode) throws Exception { private JSONArray getOrgList(Project project, String orgIndexs, String parentOrgIndexCode) throws Exception {
String rs = HikvisionUtil.getOrgV2(project, orgIndexs, parentOrgIndexCode); JSONObject param = new JSONObject();
param.put("pageNo", 1);
param.put("pageSize", 1000);
param.put("orgIndexCodes", orgIndexs);
param.put("parentOrgIndexCodes", parentOrgIndexCode);
String rs = HikvisionUtil.getOrgV2(project, param);
JSONObject jo = HikvisionUtil.getJSONObjectData(rs); JSONObject jo = HikvisionUtil.getJSONObjectData(rs);
JSONArray list = jo.getJSONArray("list"); return jo.getJSONArray("list");
return list;
} }
private HikvisionOrganization getHikvisionOrganization(Project project) { private HikvisionOrganization getHikvisionOrganization(Project project) {

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.config; package com.zhgd.xmgl.config;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.zhgd.xmgl.util.LogMdcUtil; import com.zhgd.xmgl.util.LogMdcUtil;
import com.zhgd.xmgl.util.ThreadLocalUtil; import com.zhgd.xmgl.util.ThreadLocalUtil;
@ -22,13 +23,14 @@ public class MdcThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {
Map<String, String> context = MDC.getCopyOfContextMap(); //复制主线程MDC Map<String, String> context = MDC.getCopyOfContextMap(); //复制主线程MDC
JSONObject tlJo = ThreadLocalUtil.get(); JSONObject tlJo = ThreadLocalUtil.get();
log.info("MDC异步多线程..."); log.info("MDC异步多线程...");
JSONObject copyTl = BeanUtil.toBean(tlJo, JSONObject.class);
super.execute(() -> { super.execute(() -> {
if (null != context) { if (null != context) {
MDC.setContextMap(context); //主线程MDC赋予子线程 MDC.setContextMap(context); //主线程MDC赋予子线程
} else { } else {
LogMdcUtil.setRequestId(); //主线程没有MDC就自己生成一个 LogMdcUtil.setRequestId(); //主线程没有MDC就自己生成一个
} }
ThreadLocalUtil.set(tlJo); ThreadLocalUtil.set(copyTl);
try { try {
task.run(); task.run();
} finally { } finally {
@ -50,13 +52,14 @@ public class MdcThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {
Map<String, String> context = MDC.getCopyOfContextMap(); //复制主线程MDC Map<String, String> context = MDC.getCopyOfContextMap(); //复制主线程MDC
JSONObject tlJo = ThreadLocalUtil.get(); JSONObject tlJo = ThreadLocalUtil.get();
log.info("MDC异步多线程..."); log.info("MDC异步多线程...");
JSONObject copyTl = BeanUtil.toBean(tlJo, JSONObject.class);
return super.submit(() -> { return super.submit(() -> {
if (null != context) { if (null != context) {
MDC.setContextMap(context); //主线程MDC赋予子线程 MDC.setContextMap(context); //主线程MDC赋予子线程
} else { } else {
LogMdcUtil.setRequestId(); //主线程没有MDC就自己生成一个 LogMdcUtil.setRequestId(); //主线程没有MDC就自己生成一个
} }
ThreadLocalUtil.set(tlJo); ThreadLocalUtil.set(copyTl);
try { try {
return task.call(); return task.call();
} finally { } finally {

View File

@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.annotation.DataScope;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @version V1.0 * @version V1.0
*/ */
@Mapper @Mapper
@DataScope
public interface ProjectFineRecordMapper extends BaseMapper<ProjectFineRecord> { public interface ProjectFineRecordMapper extends BaseMapper<ProjectFineRecord> {
List<ProjectFineRecord> selectProjectFineRecordPageList(Page<ProjectFineRecord> page, @Param("param") Map<String, Object> map); List<ProjectFineRecord> selectProjectFineRecordPageList(Page<ProjectFineRecord> page, @Param("param") Map<String, Object> map);

View File

@ -312,7 +312,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
} }
EnterpriseInfo enterpriseInfo = baseMapper.selectById(enterpriseId); EnterpriseInfo enterpriseInfo = baseMapper.selectById(enterpriseId);
//同步海康 //同步海康
asyncHikvision.deleteEnterpriseInfoForHikvision(enterpriseId, projectSn, enterpriseInfo.getEnterpriseName(), projectEnterprise != null ? projectEnterprise.getId() : null); asyncHikvision.deleteEnterpriseInfoForHikvision(projectSn, enterpriseInfo.getEnterpriseName());
} }
@Override @Override

View File

@ -102,4 +102,9 @@ public class XzHikvisionCompareData implements Serializable {
*/ */
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private java.util.Date updateDate; private java.util.Date updateDate;
/**
* 车辆isc存在类型1固定车2预约车3黑名单
*/
@ApiModelProperty(value = "车辆isc存在类型1固定车2预约车3黑名单")
private java.lang.Integer carIscExistType;
} }

View File

@ -35,7 +35,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void compareRetryFail(); void compareRetryFail();
void compareRetryStatus(); void compareRetrySuc();
void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId); void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
@ -47,7 +47,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void addCompareDataForFace(Project project, String workerName, int existIsc, int existMyPlatform, String uniqueId, String idCard); void addCompareDataForFace(Project project, String workerName, int existIsc, int existMyPlatform, String uniqueId, String idCard);
void addCompareDataForCar(Project project, String carNumber, int existIsc, int existMyPlatform, String uniqueId); void addCompareDataForCar(Project project, String carNumber, int existIsc, int existMyPlatform, String uniqueId, Integer carIscExistType);
void addExceptionShowIfNull(String projectSn); void addExceptionShowIfNull(String projectSn);
@ -64,5 +64,5 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void deleteAllCompareData(Project project); void deleteAllCompareData(Project project);
void compareRetryStatus(CarInfo carInfo, Integer type, Integer operate, Boolean setSuc); void compareRetryForCar(CarInfo carInfo, Integer type, Integer operate, Boolean setSuc);
} }

View File

@ -46,6 +46,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
@ -165,6 +166,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
} }
@Override @Override
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void sync(String ids) throws Exception { public void sync(String ids) throws Exception {
List<String> idList = StrUtil.split(ids, ","); List<String> idList = StrUtil.split(ids, ",");
for (String id : idList) { for (String id : idList) {
@ -172,7 +174,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
if (data == null) { if (data == null) {
continue; continue;
} }
ThreadLocalUtil.addInKeyIfNotExist(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, data); ThreadLocalUtil.addInKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, data);
xzHikvisionCompareDataService.sync(data); xzHikvisionCompareDataService.sync(data);
} }
} }
@ -208,7 +210,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
//同步海康 //同步海康
asyncHikvision.editEnterpriseInfoForHikvision(enterpriseInfo); asyncHikvision.editEnterpriseInfoForHikvision(enterpriseInfo);
} else { } else {
asyncHikvision.deleteEnterpriseInfoForHikvision(data.getUniqueId(), data.getProjectSn(), data.getOrgName(), enterpriseInfo.getProjectEnterprise() != null ? enterpriseInfo.getProjectEnterprise().getId() : null); asyncHikvision.deleteEnterpriseInfoForHikvision(data.getProjectSn(), data.getOrgName());
} }
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) { } else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
//查询id是否存在isc存在就更新不存在就新增 //查询id是否存在isc存在就更新不存在就新增
@ -241,6 +243,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
} else { } else {
teamInfo = new TeamInfo(); teamInfo = new TeamInfo();
teamInfo.setTeamName(data.getOrgName()); teamInfo.setTeamName(data.getOrgName());
teamInfo.setProjectSn(data.getProjectSn());
asyncHikvision.deleteTeamInfoForHikvision(data.getUniqueId(), teamInfo); asyncHikvision.deleteTeamInfoForHikvision(data.getUniqueId(), teamInfo);
} }
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) { } else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
@ -274,6 +277,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
} else { } else {
departmentInfo = new DepartmentInfo(); departmentInfo = new DepartmentInfo();
departmentInfo.setDepartmentName(data.getOrgName()); departmentInfo.setDepartmentName(data.getOrgName());
departmentInfo.setProjectSn(data.getProjectSn());
asyncHikvision.deleteDepartmentInfoForHikvision(data.getUniqueId(), departmentInfo); asyncHikvision.deleteDepartmentInfoForHikvision(data.getUniqueId(), departmentInfo);
} }
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) { } else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
@ -313,6 +317,8 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
} else { } else {
workerInfo = new WorkerInfo(); workerInfo = new WorkerInfo();
workerInfo.setWorkerName(data.getWorkerName()); workerInfo.setWorkerName(data.getWorkerName());
workerInfo.setProjectSn(projectInfoBySn.getProjectSn());
workerInfo.setIdCard(data.getIdCard());
workerInfoService.deleteWorkerForHikvision(data.getUniqueId(), workerInfo); workerInfoService.deleteWorkerForHikvision(data.getUniqueId(), workerInfo);
} }
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) { } else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
@ -357,6 +363,15 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
carInfo = new CarInfo(); carInfo = new CarInfo();
carInfo.setCarNumber(data.getCarNumber()); carInfo.setCarNumber(data.getCarNumber());
carInfo.setProjectSn(data.getProjectSn()); carInfo.setProjectSn(data.getProjectSn());
if (Objects.equals(data.getCarIscExistType(), 1)) {
carInfo.setIsBlack(0);
carInfo.setCarModuleType(1);
} else if (Objects.equals(data.getCarIscExistType(), 2)) {
carInfo.setIsBlack(0);
carInfo.setCarModuleType(2);
} else if (Objects.equals(data.getCarIscExistType(), 3)) {
carInfo.setIsBlack(1);
}
deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, 3, false); deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, 3, false);
} }
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) { } else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
@ -385,6 +400,9 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
.eq(XzHikvisionSync::getWhoId, carInfo.getId()) .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())); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(Objects.equals(carInfo.getCarModuleType(), 1) ? 4 : 6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
}
asyncHikvision.addCarInfoForHikvisionAsync(carInfo); asyncHikvision.addCarInfoForHikvisionAsync(carInfo);
} }
} else { } else {
@ -419,6 +437,9 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
.eq(XzHikvisionSync::getWhoId, carInfo.getId()) .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())); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(Objects.equals(carInfo.getCarModuleType(), 1) ? 4 : 6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent()));
}
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo); asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
} }
@ -438,7 +459,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
* 数据校验重试成功 * 数据校验重试成功
*/ */
@Override @Override
public void compareRetryStatus() { public void compareRetrySuc() {
XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class); XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class);
if (data != null) { if (data != null) {
xzHikvisionCompareDataMapper.deleteById(data.getId()); xzHikvisionCompareDataMapper.deleteById(data.getId());
@ -513,7 +534,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
} }
@Override @Override
public void addCompareDataForCar(Project project, String carNumber, int existIsc, int existMyPlatform, String uniqueId) { public void addCompareDataForCar(Project project, String carNumber, int existIsc, int existMyPlatform, String uniqueId, Integer carIscExistType) {
XzHikvisionCompareData data = new XzHikvisionCompareData(); XzHikvisionCompareData data = new XzHikvisionCompareData();
data.setProjectSn(project.getProjectSn()); data.setProjectSn(project.getProjectSn());
data.setCarNumber(carNumber); data.setCarNumber(carNumber);
@ -522,6 +543,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
data.setType(4); data.setType(4);
data.setOurType(6); data.setOurType(6);
data.setUniqueId(uniqueId); data.setUniqueId(uniqueId);
data.setCarIscExistType(carIscExistType);
baseMapper.insert(data); baseMapper.insert(data);
} }
@ -598,23 +620,22 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
.eq(XzHikvisionCompareData::getProjectSn, project.getProjectSn())); .eq(XzHikvisionCompareData::getProjectSn, project.getProjectSn()));
} }
/**
* @param carInfo
* @param type 1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车7车辆布防
* @param operate
* @param setSuc
*/
@Override @Override
public void compareRetryStatus(CarInfo carInfo, Integer type, Integer operate, Boolean setSuc) { public void compareRetryForCar(CarInfo carInfo, Integer type, Integer operate, Boolean setSuc) {
if (Objects.equals(carInfo.getIsBlack(), 1) && Objects.equals(type, 7)) { XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class);
boolean isBlack = Objects.equals(carInfo.getIsBlack(), 1) && Objects.equals(type, 7);
boolean isFix = Objects.equals(carInfo.getCarModuleType(), 1) && Objects.equals(type, 4);
boolean isReservation = !Objects.equals(carInfo.getCarModuleType(), 1) && Objects.equals(type, 6) && Objects.equals(operate, 1);
boolean isCancelReservation = !Objects.equals(carInfo.getCarModuleType(), 1) && Objects.equals(type, 6) && Objects.equals(operate, 3) && data != null && (Objects.equals(data.getExistIsc(), 1) && Objects.equals(data.getExistMyPlatform(), 0));
if (isBlack || isFix || isReservation || isCancelReservation) {
if (setSuc) { if (setSuc) {
compareRetryStatus(); compareRetrySuc();
} else {
compareRetryFail();
}
} else if (Objects.equals(carInfo.getCarModuleType(), 1) && Objects.equals(type, 4)) {
if (setSuc) {
compareRetryStatus();
} else {
compareRetryFail();
}
} else if (!Objects.equals(carInfo.getCarModuleType(), 1) && Objects.equals(type, 6) && Objects.equals(operate, 1)) {
if (setSuc) {
compareRetryStatus();
} else { } else {
compareRetryFail(); compareRetryFail();
} }

View File

@ -355,7 +355,7 @@ public class HikvisionTask {
.build()); .build());
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo); JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
JSONArray listJa = dataJo.getJSONArray("list"); JSONArray listJa = dataJo.getJSONArray("list");
compareAndAddData(project, listJa, carInfoList); compareAndAddData(project, listJa, carInfoList, 1);
} }
public void compareHikvisionForReservationCar(Project project) throws Exception { public void compareHikvisionForReservationCar(Project project) throws Exception {
@ -367,7 +367,7 @@ public class HikvisionTask {
.put(Cts.RESERVATION_TYPE, 1) .put(Cts.RESERVATION_TYPE, 1)
.put("isBlack", 0) .put("isBlack", 0)
.build()); .build());
compareAndAddData(project, listJa, carInfoList); compareAndAddData(project, listJa, carInfoList, 2);
} }
public void compareHikvisionForBlackCar(Project project) throws Exception { public void compareHikvisionForBlackCar(Project project) throws Exception {
@ -383,13 +383,13 @@ public class HikvisionTask {
.put(Cts.PROJECT_SN, project.getProjectSn()) .put(Cts.PROJECT_SN, project.getProjectSn())
.put("isBlack", 1) .put("isBlack", 1)
.build()); .build());
compareAndAddData(project, listJa, carInfoList); compareAndAddData(project, listJa, carInfoList, 3);
} }
private void compareAndAddData(Project project, JSONArray listJa, List<CarInfo> carInfoList) { private void compareAndAddData(Project project, JSONArray listJa, List<CarInfo> carInfoList, int carIscExistType) {
if (CollUtil.isEmpty(listJa)) { if (CollUtil.isEmpty(listJa)) {
for (CarInfo carInfo : carInfoList) { for (CarInfo carInfo : carInfoList) {
xzHikvisionCompareDataService.addCompareDataForCar(project, carInfo.getCarNumber(), 0, 1, String.valueOf(carInfo.getId())); xzHikvisionCompareDataService.addCompareDataForCar(project, carInfo.getCarNumber(), 0, 1, String.valueOf(carInfo.getId()), null);
} }
} else { } else {
//isc存在平台也存在 //isc存在平台也存在
@ -402,10 +402,10 @@ public class HikvisionTask {
String uniqueId = null; String uniqueId = null;
if (myMap.containsKey(carNumber) && !iscMap.containsKey(carNumber)) { if (myMap.containsKey(carNumber) && !iscMap.containsKey(carNumber)) {
uniqueId = String.valueOf(myMap.get(carNumber).getId()); uniqueId = String.valueOf(myMap.get(carNumber).getId());
xzHikvisionCompareDataService.addCompareDataForCar(project, carNumber, 0, 1, uniqueId); xzHikvisionCompareDataService.addCompareDataForCar(project, carNumber, 0, 1, uniqueId, null);
} else if (!myMap.containsKey(carNumber) && iscMap.containsKey(carNumber)) { } else if (!myMap.containsKey(carNumber) && iscMap.containsKey(carNumber)) {
uniqueId = iscMap.get(carNumber).getString("vehicleId"); uniqueId = iscMap.get(carNumber).getString("vehicleId");
xzHikvisionCompareDataService.addCompareDataForCar(project, carNumber, 1, 0, uniqueId); xzHikvisionCompareDataService.addCompareDataForCar(project, carNumber, 1, 0, uniqueId, carIscExistType);
} }
} }
} }

View File

@ -354,23 +354,16 @@ public class HikvisionUtil {
* 获取组织列表v2 * 获取组织列表v2
* *
* @param project * @param project
* @param orgIndex * @param jo
* @param parentOrgIndexCode
*/ */
public static String getOrgV2(Project project, String orgIndex, String parentOrgIndexCode) throws Exception { public static String getOrgV2(Project project, JSONObject jo) throws Exception {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return null; return null;
} }
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/org/advance/orgList"; final String path = ARTEMIS_PATH + "/api/resource/v2/org/advance/orgList";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
JSONObject jo = new JSONObject(); return doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
jo.put("pageNo", 1);
jo.put("pageSize", 100);
jo.put("orgIndexCodes", orgIndex);
jo.put("parentOrgIndexCodes", parentOrgIndexCode);
String body = jo.toJSONString();
return doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
} }
/** /**