车辆修改

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

View File

@ -217,6 +217,35 @@ public class HikvisionCall {
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")
@PostMapping(value = "/eventCallback")
public Result eventCallback(@ApiIgnore @RequestBody JSONObject jsonObject) {
@ -855,35 +884,6 @@ public class HikvisionCall {
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 {
updateFailStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
}
xzHikvisionCompareDataService.compareRetryStatus(carInfo, type, operate, setSuc);
if (isNotice) {
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, "24");
@ -1054,7 +1057,7 @@ public class HikvisionCall {
success = false;
}
if (success) {
xzHikvisionCompareDataService.compareRetrySuccess();
xzHikvisionCompareDataService.compareRetryStatus();
} else {
xzHikvisionCompareDataService.compareRetryFail();
}
@ -1123,7 +1126,7 @@ public class HikvisionCall {
}
if (success) {
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
xzHikvisionCompareDataService.compareRetrySuccess();
xzHikvisionCompareDataService.compareRetryStatus();
} else {
updateFailStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
xzHikvisionCompareDataService.compareRetryFail();

View File

@ -111,5 +111,6 @@
<include refid="selectTable">
</include>
where t.car_number = #{carNumber}
limit 1
</select>
</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)) {
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(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
@ -415,7 +415,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
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())));
}
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.baomidou.mybatisplus.core.metadata.IPage;
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.xz.entity.XzHikvisionCompareData;
@ -34,7 +35,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void compareRetryFail();
void compareRetrySuccess();
void compareRetryStatus();
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 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 {
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) {
//查询id是否存在平台存在就更新不存在就删除
if (carInfo != null) {
//同步海康
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo, true);
if (Objects.equals(carInfo.getIsBlack(), 1)) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else {
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
}
} else {
carInfo = new CarInfo();
carInfo.setCarNumber(data.getCarNumber());
carInfo.setProjectSn(data.getProjectSn());
asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, false, false);
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, false);
}
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
//查询id是否存在isc存在就更新不存在就新增
@ -359,62 +363,27 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
if (CollUtil.isEmpty(list)) {
//新增
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo, true);
if (carInfo.getIsBlack() == 1) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else {
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo);
}
} else {
//更新
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo, true);
//同步海康
if (Objects.equals(carInfo.getIsBlack(), 1)) {
asyncHikvision.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, true);
} else {
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
}
}
} else {
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
public void compareRetrySuccess() {
public void compareRetryStatus() {
XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class);
if (data != null) {
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
public void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId) {
XzHikvisionCompareData data = new XzHikvisionCompareData();
@ -603,4 +556,27 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
.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();
}
}
}
}