feat(data): 实现风险对象数据推送功能

- 在 WlcbDtoConvertMapper 中增加 dataId 到 id 的映射配置
- 修改 riskUnitId 映射源从 dataId 改为 workId
- 新增 pushRiskObjectData 方法处理风险分析对象数据推送逻辑
- 完善推送过程中对 workId 查询及设置的相关处理
- 调整条件判断顺序以优化代码可读性
- 增加对推送响应结果的判空处理,避免解析空字符串导致异常
- 推送成功后才更新第三方平台 ID 信息,防止脏数据写入
dev-wulanchabu
10396 2025-11-11 14:51:38 +08:00
parent a52d9e0a6c
commit cf1136384d
3 changed files with 72 additions and 63 deletions

View File

@ -49,6 +49,7 @@ public interface WlcbDtoConvertMapper {
* @param dtoList * @param dtoList
* @return DTO * @return DTO
*/ */
@Mapping(source = "dataId", target = "id")
@Mapping(source = "latitude", target = "latitude") @Mapping(source = "latitude", target = "latitude")
@Mapping(source = "longitude", target = "longitude") @Mapping(source = "longitude", target = "longitude")
@Mapping(source = "entId", target = "entId") @Mapping(source = "entId", target = "entId")
@ -57,11 +58,12 @@ public interface WlcbDtoConvertMapper {
@Mapping(source = "riskUnitName", target = "riskUnitName") @Mapping(source = "riskUnitName", target = "riskUnitName")
@Mapping(source = "unitState", target = "unitState") @Mapping(source = "unitState", target = "unitState")
@Mapping(source = "createDate", target = "identifyDate") @Mapping(source = "createDate", target = "identifyDate")
@Mapping(source = "dataId", target = "riskUnitId")
@Mapping(source = "riskLevel", target = "riskRating", qualifiedByName = "convertRiskLevel") @Mapping(source = "riskLevel", target = "riskRating", qualifiedByName = "convertRiskLevel")
@Mapping(source = "hazardCode", target = "riskUnitType") @Mapping(source = "hazardCode", target = "riskUnitType")
@Mapping(source = "workId", target = "riskUnitId")
WlcbRiskUnitReqDto convertSafeRiskUnitReqDto(DataRiskUnitEntity dtoList); WlcbRiskUnitReqDto convertSafeRiskUnitReqDto(DataRiskUnitEntity dtoList);
/**
/** /**
* *
* *

View File

@ -88,65 +88,6 @@ public class WlcbExchangeDataServiceImpl implements ExchangeDataCommonService {
@Autowired @Autowired
private DataAramService dataAramService; private DataAramService dataAramService;
@Override
public R pushRiskUnitData(DataRiskUnitReqDto reqDto) {
R r;
try {
String objectId = reqDto.getHazardId();
String unitId = reqDto.getDataId();
DataRiskObjectEntity dataRiskObjectEntity = dataServiceAggregate.dataRiskObjectService.getByDataId(objectId);
if (dataRiskObjectEntity != null && !dataRiskObjectEntity.getWorkId().isEmpty()) {
reqDto.setHazardId(dataRiskObjectEntity.getWorkId());
DataRiskUnitEntity dataRiskUnitEntity = dataServiceAggregate.dataRiskUnitService.getByDataId(unitId);
if (dataRiskUnitEntity != null && !dataRiskUnitEntity.getWorkId().isEmpty() && reqDto.getDeleted().equals("0")) {
reqDto.setWorkId(dataRiskUnitEntity.getWorkId());
r = processData(reqDto, DataRiskUnitEntity.class, WlcbReportV16Enum.secSecurityRiskUnitUpdate,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskUnitReqDto((DataRiskUnitEntity) entity),
dataServiceAggregate.dataRiskUnitService);
} else if (reqDto.getDeleted().equals("0") && dataRiskUnitEntity == null ){
reqDto.setWorkId(reqDto.getDataId());
r = processData(reqDto, DataRiskUnitEntity.class, WlcbReportV16Enum.secSecurityRiskUnit,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskUnitReqDto((DataRiskUnitEntity) entity),
dataServiceAggregate.dataRiskUnitService);
} else if (reqDto.getDeleted().equals("1") && dataRiskUnitEntity != null){
reqDto.setWorkId(dataRiskUnitEntity.getWorkId());
r = processData(reqDto, DataRiskUnitEntity.class, WlcbReportV16Enum.secSecurityRiskUnitDelete,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskUnitReqDto((DataRiskUnitEntity) entity),
dataServiceAggregate.dataRiskUnitService);
} else {
log.error("WlcbExchangeDataServiceImpl->pushRiskUnitData,{}推送上报安全风险分析单元数据异常,业务id={},异常信息:{}", BusThirdPlatformCodeEnum.WULANCHABU.getDesc(), reqDto.getDataId());
return R.error(500, BusThirdPlatformCodeEnum.WULANCHABU.getDesc()+"推送上报安全风险分析单元数据异常");
}
} else {
log.error("WlcbExchangeDataServiceImpl->pushRiskUnitData,{}推送上报安全风险分析单元数据异常,风险分析对象不存在");
return R.error();
}
} catch (Exception e) {
log.error("WlcbExchangeDataServiceImpl->pushRiskUnitData,{}推送上报安全风险分析单元数据异常,业务id={},异常信息:{}", BusThirdPlatformCodeEnum.WULANCHABU.getDesc(), reqDto.getDataId(), ExceptionUtils.getStackTrace(e));
e.printStackTrace();
return R.error(500, BusThirdPlatformCodeEnum.WULANCHABU.getDesc()+"推送上报安全风险分析单元数据异常");
}
return r;
}
@Override
public R pushRiskEventsData(DataRiskEventsReqDto reqDto) {
R r;
try {
r = processData(reqDto, DataRiskEventsEntity.class, WlcbReportV16Enum.secSecurityRiskEvents,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskEventsReqDto((DataRiskEventsEntity) entity),
dataServiceAggregate.dataRiskEventsService);
} catch (Exception e) {
log.error("WlcbExchangeDataServiceImpl->pushRiskEventsData,{}推送上报安全风险事件数据异常,业务id={},异常信息:{}", BusThirdPlatformCodeEnum.WULANCHABU.getDesc(), reqDto.getDataId(), ExceptionUtils.getStackTrace(e));
e.printStackTrace();
return R.error(500, BusThirdPlatformCodeEnum.WULANCHABU.getDesc()+"推送上报安全风险事件数据异常");
}
return r;
}
@Override @Override
public R pushRiskObjectData(DataRiskObjectReqDto dataRiskObjectReqDto) { public R pushRiskObjectData(DataRiskObjectReqDto dataRiskObjectReqDto) {
@ -198,6 +139,66 @@ public class WlcbExchangeDataServiceImpl implements ExchangeDataCommonService {
} }
return r; return r;
} }
@Override
public R pushRiskUnitData(DataRiskUnitReqDto reqDto) {
R r;
try {
String objectId = reqDto.getHazardId();
String unitId = reqDto.getDataId();
DataRiskObjectEntity dataRiskObjectEntity = dataServiceAggregate.dataRiskObjectService.getByDataId(objectId);
if (dataRiskObjectEntity != null && !dataRiskObjectEntity.getWorkId().isEmpty()) {
reqDto.setHazardId(dataRiskObjectEntity.getWorkId());
DataRiskUnitEntity dataRiskUnitEntity = dataServiceAggregate.dataRiskUnitService.getByDataId(unitId);
if (dataRiskUnitEntity != null && !dataRiskUnitEntity.getWorkId().isEmpty() && reqDto.getDeleted().equals("0")) {
reqDto.setWorkId(dataRiskUnitEntity.getWorkId());
r = processData(reqDto, DataRiskUnitEntity.class, WlcbReportV16Enum.secSecurityRiskUnitUpdate,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskUnitReqDto((DataRiskUnitEntity) entity),
dataServiceAggregate.dataRiskUnitService);
} else if (dataRiskUnitEntity == null && reqDto.getDeleted().equals("0") ){
reqDto.setWorkId(reqDto.getDataId());
r = processData(reqDto, DataRiskUnitEntity.class, WlcbReportV16Enum.secSecurityRiskUnit,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskUnitReqDto((DataRiskUnitEntity) entity),
dataServiceAggregate.dataRiskUnitService);
} else if (dataRiskUnitEntity != null && reqDto.getDeleted().equals("1")){
reqDto.setWorkId(dataRiskUnitEntity.getWorkId());
r = processData(reqDto, DataRiskUnitEntity.class, WlcbReportV16Enum.secSecurityRiskUnitDelete,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskUnitReqDto((DataRiskUnitEntity) entity),
dataServiceAggregate.dataRiskUnitService);
} else {
log.error("WlcbExchangeDataServiceImpl->pushRiskUnitData,{}推送上报安全风险分析单元数据异常,业务id={},异常信息:{}", BusThirdPlatformCodeEnum.WULANCHABU.getDesc(), reqDto.getDataId());
return R.error(500, BusThirdPlatformCodeEnum.WULANCHABU.getDesc()+"推送上报安全风险分析单元数据异常");
}
} else {
log.error("WlcbExchangeDataServiceImpl->pushRiskUnitData,{}推送上报安全风险分析单元数据异常,风险分析对象不存在");
return R.error();
}
} catch (Exception e) {
log.error("WlcbExchangeDataServiceImpl->pushRiskUnitData,{}推送上报安全风险分析单元数据异常,业务id={},异常信息:{}", BusThirdPlatformCodeEnum.WULANCHABU.getDesc(), reqDto.getDataId(), ExceptionUtils.getStackTrace(e));
e.printStackTrace();
return R.error(500, BusThirdPlatformCodeEnum.WULANCHABU.getDesc()+"推送上报安全风险分析单元数据异常");
}
return r;
}
@Override
public R pushRiskEventsData(DataRiskEventsReqDto reqDto) {
R r;
try {
r = processData(reqDto, DataRiskEventsEntity.class, WlcbReportV16Enum.secSecurityRiskEvents,
entity -> WlcbDtoConvertMapper.INSTANCE.convertSafeRiskEventsReqDto((DataRiskEventsEntity) entity),
dataServiceAggregate.dataRiskEventsService);
} catch (Exception e) {
log.error("WlcbExchangeDataServiceImpl->pushRiskEventsData,{}推送上报安全风险事件数据异常,业务id={},异常信息:{}", BusThirdPlatformCodeEnum.WULANCHABU.getDesc(), reqDto.getDataId(), ExceptionUtils.getStackTrace(e));
e.printStackTrace();
return R.error(500, BusThirdPlatformCodeEnum.WULANCHABU.getDesc()+"推送上报安全风险事件数据异常");
}
return r;
}
@Override @Override
public R pushRiskControlMeasureData(DataRiskControlMeasureReqDto dataRiskControlMeasureReqDto) { public R pushRiskControlMeasureData(DataRiskControlMeasureReqDto dataRiskControlMeasureReqDto) {
@ -1405,7 +1406,9 @@ public class WlcbExchangeDataServiceImpl implements ExchangeDataCommonService {
Integer status = pushResponse.getStatusCode(); Integer status = pushResponse.getStatusCode();
String thirdPlatId = pushResponse.getThirdPlatId(); String thirdPlatId = pushResponse.getThirdPlatId();
// 3. 获取 thirdPlatId仅成功时非 null // 3. 获取 thirdPlatId仅成功时非 null
if (status.equals(DataPushStatusEnum.SUCCESSFUL.getCode())) {
handleReportTypeAfterPush(entity, entityClass, reportEnum.getCode(), thirdPlatId, reqDto.getDataId()); handleReportTypeAfterPush(entity, entityClass, reportEnum.getCode(), thirdPlatId, reqDto.getDataId());
}
// 返回的是推送状态 // 返回的是推送状态
setEntityPushStatus(entity, entityClass, "setPushStatus", status); setEntityPushStatus(entity, entityClass, "setPushStatus", status);

View File

@ -273,10 +273,14 @@ public class WlcbReportUtilServiceImpl implements WlcbReportUtilService {
String respInfo = encryPut(url, wlcbEncryptionDto, jsonObject, String.class); String respInfo = encryPut(url, wlcbEncryptionDto, jsonObject, String.class);
log.info("调用乌兰察布推送数据接口返回信息dataId={},{}", logInfoYearEntity.getIndexReq(), JSON.toJSONString(respInfo)); log.info("调用乌兰察布推送数据接口返回信息dataId={},{}", logInfoYearEntity.getIndexReq(), JSON.toJSONString(respInfo));
if(!respInfo.isEmpty()){
objData = JSON.parseObject(respInfo, WlcbObjData.class); objData = JSON.parseObject(respInfo, WlcbObjData.class);
log.info("调用乌兰察布推送数据接口返回信息dataId={},{}", logInfoYearEntity.getIndexReq(), JSON.toJSONString(objData)); log.info("调用乌兰察布推送数据接口返回信息dataId={},{}", logInfoYearEntity.getIndexReq(), JSON.toJSONString(objData));
} else {
log.info("调用乌兰察布推送数据接口返回信息dataId={},{}", logInfoYearEntity.getIndexReq(), JSON.toJSONString(objData));
}
} }