车辆修改

This commit is contained in:
guoshengxiong 2024-06-07 20:25:28 +08:00
parent 8e1aa06145
commit aa82cd85ca
6 changed files with 88 additions and 111 deletions

View File

@ -160,14 +160,12 @@ public class AsyncHikvision {
} }
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void addCarInfoForHikvisionAsyc(CarInfo carInfo, Boolean existIsc) { public void addCarInfoForHikvisionAsyc(CarInfo carInfo) {
try { try {
hikvisionCall.saveCarInfoFromHikvision(carInfo); hikvisionCall.saveCarInfoFromHikvision(carInfo);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForCar(carInfo, e, "添加"); sendNoticeForCar(carInfo, e, "添加");
} finally {
xzHikvisionCompareDataService.compareRetrySuccess(existIsc, carInfo);
} }
} }
@ -198,26 +196,22 @@ public class AsyncHikvision {
} }
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void editCarInfoForHikvisionAsync(CarInfo carInfo, CarInfo old, Boolean existIsc) { public void editCarInfoForHikvisionAsync(CarInfo carInfo, CarInfo old) {
try { try {
hikvisionCall.editCarInfoForHikvision(carInfo, old); hikvisionCall.editCarInfoForHikvision(carInfo, old);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForCar(carInfo, e, "编辑"); sendNoticeForCar(carInfo, e, "编辑");
} finally {
xzHikvisionCompareDataService.compareRetrySuccess(existIsc, carInfo);
} }
} }
@Async("carInfoExecutor") @Async("carInfoExecutor")
public void deleteCarInfoForHikvisionAsync(CarInfo carInfo, boolean isSetBlack, Boolean existIsc) { public void deleteCarInfoAndSetBlackForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) {
try { try {
hikvisionCall.deleteCarInfoForHikvision(carInfo, isSetBlack); hikvisionCall.deleteCarInfoForHikvision(carInfo, isSetBlack);
} catch (Exception e) { } catch (Exception e) {
log.error("海康:", e); log.error("海康:", e);
sendNoticeForCar(carInfo, e, "删除"); sendNoticeForCar(carInfo, e, "删除");
} finally {
xzHikvisionCompareDataService.compareRetrySuccess(existIsc, carInfo);
} }
} }

View File

@ -217,6 +217,35 @@ public class HikvisionCall {
return null; return null;
} }
public static String getWorkerJson(WorkerInfo workerInfo) {
JSONObject jsonBody = new JSONObject();
jsonBody.put("personId", workerInfo.getId());
jsonBody.put("personName", workerInfo.getWorkerName());
jsonBody.put("gender", workerInfo.getSex());
jsonBody.put("orgIndexCode", getOrgIndexCode(workerInfo));
jsonBody.put("birthday", workerInfo.getBirthday());
jsonBody.put("phoneNo", workerInfo.getPhoneNumber());
jsonBody.put("email", workerInfo.getPersonMail());
jsonBody.put("certificateType", "111");
jsonBody.put("certificateNo", workerInfo.getIdCard());
jsonBody.put("jobNo", workerInfo.getPersonSn());
return jsonBody.toJSONString();
}
private static String getOrgIndexCode(WorkerInfo workerInfo) {
if (workerInfo == null) {
return null;
}
if (Objects.equals(workerInfo.getPersonType(), 1)) {
return String.valueOf(workerInfo.getTeamId());
} else if (Objects.equals(workerInfo.getPersonType(), 2)) {
return String.valueOf(workerInfo.getDepartmentId());
} else if (Objects.equals(workerInfo.getPersonType(), 3)) {
return String.valueOf(workerInfo.getProjectSn());
}
return null;
}
@ApiOperation(value = "海康事件回调", notes = "海康事件回调", httpMethod = "POST") @ApiOperation(value = "海康事件回调", notes = "海康事件回调", httpMethod = "POST")
@PostMapping(value = "/eventCallback") @PostMapping(value = "/eventCallback")
public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) { public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) {
@ -855,35 +884,6 @@ public class HikvisionCall {
sendNoticeAndSetStatusForWorker("添加人员到海康isc", rs, workerInfo, 1, 1); sendNoticeAndSetStatusForWorker("添加人员到海康isc", rs, workerInfo, 1, 1);
} }
public static String getWorkerJson(WorkerInfo workerInfo) {
JSONObject jsonBody = new JSONObject();
jsonBody.put("personId", workerInfo.getId());
jsonBody.put("personName", workerInfo.getWorkerName());
jsonBody.put("gender", workerInfo.getSex());
jsonBody.put("orgIndexCode", getOrgIndexCode(workerInfo));
jsonBody.put("birthday", workerInfo.getBirthday());
jsonBody.put("phoneNo", workerInfo.getPhoneNumber());
jsonBody.put("email", workerInfo.getPersonMail());
jsonBody.put("certificateType", "111");
jsonBody.put("certificateNo", workerInfo.getIdCard());
jsonBody.put("jobNo", workerInfo.getPersonSn());
return jsonBody.toJSONString();
}
private static String getOrgIndexCode(WorkerInfo workerInfo) {
if (workerInfo == null) {
return null;
}
if (Objects.equals(workerInfo.getPersonType(), 1)) {
return String.valueOf(workerInfo.getTeamId());
} else if (Objects.equals(workerInfo.getPersonType(), 2)) {
return String.valueOf(workerInfo.getDepartmentId());
} else if (Objects.equals(workerInfo.getPersonType(), 3)) {
return String.valueOf(workerInfo.getProjectSn());
}
return null;
}
/** /**
* 编辑人员 * 编辑人员
* *
@ -1005,6 +1005,9 @@ public class HikvisionCall {
} else { } else {
updateFailStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null); updateFailStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
} }
xzHikvisionCompareDataService.compareRetryStatus(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) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, "24"); noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, "24");
@ -1054,7 +1057,7 @@ public class HikvisionCall {
success = false; success = false;
} }
if (success) { if (success) {
xzHikvisionCompareDataService.compareRetrySuccess(); xzHikvisionCompareDataService.compareRetryStatus();
} else { } else {
xzHikvisionCompareDataService.compareRetryFail(); xzHikvisionCompareDataService.compareRetryFail();
} }
@ -1123,7 +1126,7 @@ public class HikvisionCall {
} }
if (success) { if (success) {
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null); updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
xzHikvisionCompareDataService.compareRetrySuccess(); xzHikvisionCompareDataService.compareRetryStatus();
} else { } else {
updateFailStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null); updateFailStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
xzHikvisionCompareDataService.compareRetryFail(); xzHikvisionCompareDataService.compareRetryFail();

View File

@ -111,5 +111,6 @@
<include refid="selectTable"> <include refid="selectTable">
</include> </include>
where t.car_number = #{carNumber} where t.car_number = #{carNumber}
limit 1
</select> </select>
</mapper> </mapper>

View File

@ -375,7 +375,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
} else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) { } 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()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
} }
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo, null); asyncHikvision.addCarInfoForHikvisionAsyc(carInfo);
} }
} }
@ -393,7 +393,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).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())));
} }
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(isSetBlack ? 1 : 3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(isSetBlack ? 1 : 3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, isSetBlack, null); asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, isSetBlack);
} }
@Override @Override
@ -415,7 +415,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
if (old.getIsBlack() == 1) { if (old.getIsBlack() == 1) {
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId())));
} }
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old, null); asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old);
} }
} }

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.xz.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionCompareData; import com.zhgd.xmgl.modules.xz.entity.XzHikvisionCompareData;
@ -34,7 +35,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void compareRetryFail(); void compareRetryFail();
void compareRetrySuccess(); void compareRetryStatus();
void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId); void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
@ -62,4 +63,6 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void manualCompareData(Map<String, Object> param) throws Exception; void manualCompareData(Map<String, Object> param) throws Exception;
void deleteAllCompareData(Project project); void deleteAllCompareData(Project project);
void compareRetryStatus(CarInfo carInfo, Integer type, Integer operate, Boolean setSuc);
} }

View File

@ -329,17 +329,21 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
private void syncCar(XzHikvisionCompareData data) throws Exception { private void syncCar(XzHikvisionCompareData data) throws Exception {
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn()); ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
CarInfo carInfo = carInfoService.queryById(data.getUniqueId()); CarInfo carInfo = carInfoService.queryByCarNumber(data.getCarNumber());
if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) { if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) {
//查询id是否存在平台存在就更新不存在就删除 //查询id是否存在平台存在就更新不存在就删除
if (carInfo != null) { if (carInfo != null) {
//同步海康 //同步海康
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo, true); if (Objects.equals(carInfo.getIsBlack(), 1)) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else {
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
}
} else { } else {
carInfo = new CarInfo(); carInfo = new CarInfo();
carInfo.setCarNumber(data.getCarNumber()); carInfo.setCarNumber(data.getCarNumber());
carInfo.setProjectSn(data.getProjectSn()); carInfo.setProjectSn(data.getProjectSn());
asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, false, false); asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, false);
} }
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) { } else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
//查询id是否存在isc存在就更新不存在就新增 //查询id是否存在isc存在就更新不存在就新增
@ -359,62 +363,27 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list"); JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
//新增 //新增
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo, true); if (carInfo.getIsBlack() == 1) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else {
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo);
}
} else { } else {
//更新 //更新
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo, true); //同步海康
if (Objects.equals(carInfo.getIsBlack(), 1)) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else {
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
}
} }
} else { } else {
log.error("校验数据同步海康失败,失败原因:{}", rtJo.toJSONString()); log.error("校验数据同步海康失败,失败原因:{}", rtJo.toJSONString());
compareRetrySuccess(projectInfoBySn, carInfo, false); compareRetryFail();
} }
} }
} }
/**
* @param projectInfoBySn
* @param carInfo
* @param existSuc isc存在车辆就成功反之
* @throws Exception
*/
public void compareRetrySuccess(ProjectInfoExtVo projectInfoBySn, CarInfo carInfo, boolean existSuc) throws Exception {
//验证执行是否成功
JSONArray listJa;
if (carInfo.getCarModuleType() == null) {
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carInfo.getCarNumber(), projectInfoBySn, 1);
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
listJa = dataJo.getJSONArray("list");
listJa.addAll(HikvisionUtil.getReservationCarInfoDataList(carInfo.getCarNumber(), projectInfoBySn));
} else if (Objects.equals(carInfo.getCarModuleType(), 1)) {
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carInfo.getCarNumber(), projectInfoBySn, 1);
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
listJa = dataJo.getJSONArray("list");
} else {
listJa = HikvisionUtil.getReservationCarInfoDataList(carInfo.getCarNumber(), projectInfoBySn);
}
if (existSuc) {
setExistSuc(listJa);
} else {
setEmptySuc(listJa);
}
}
private void setExistSuc(JSONArray listJa) {
if (CollUtil.isNotEmpty(listJa)) {
this.compareRetrySuccess();
} else {
this.compareRetryFail();
}
}
private void setEmptySuc(JSONArray listJa) {
if (CollUtil.isEmpty(listJa)) {
this.compareRetrySuccess();
} else {
this.compareRetryFail();
}
}
/** /**
* 数据校验重试失败 * 数据校验重试失败
*/ */
@ -431,29 +400,13 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
* 数据校验重试成功 * 数据校验重试成功
*/ */
@Override @Override
public void compareRetrySuccess() { public void compareRetryStatus() {
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());
} }
} }
/**
* 是否从数据校验这里来
*
* @return
*/
public void compareRetrySuccess(Boolean existIsc, CarInfo carInfo) {
try {
if (existIsc != null) {
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(carInfo.getProjectSn());
xzHikvisionCompareDataService.compareRetrySuccess(projectInfoBySn, carInfo, existIsc);
}
} catch (Exception e) {
log.error("", e);
}
}
@Override @Override
public void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId) { public void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId) {
XzHikvisionCompareData data = new XzHikvisionCompareData(); XzHikvisionCompareData data = new XzHikvisionCompareData();
@ -603,4 +556,27 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
.eq(XzHikvisionCompareData::getProjectSn, project.getProjectSn())); .eq(XzHikvisionCompareData::getProjectSn, project.getProjectSn()));
} }
@Override
public void compareRetryStatus(CarInfo carInfo, Integer type, Integer operate, Boolean setSuc) {
if (Objects.equals(carInfo.getIsBlack(), 1) && Objects.equals(type, 7)) {
if (setSuc) {
compareRetryStatus();
} 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 {
compareRetryFail();
}
}
}
} }