bugfix 人工结算订单空指针异常

This commit is contained in:
Lemon
2025-11-11 08:55:46 +08:00
parent c759305a02
commit 18e4c82299

View File

@@ -807,20 +807,36 @@ public class OrderService {
// 如果订单的交易记录为空
if (data == null) {
data = new TransactionRecordsData();
// TODO 以前端传的值为准,如果没有传值则查最后一次实时数据
if (StringUtils.equals(chargingAmount, Constants.ZERO) || StringUtils.equals(chargingDegree, Constants.ZERO)) {
// 获取最后一次实时数据
List<RealTimeMonitorData> chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode());
if (CollectionUtils.isNotEmpty(chargingRealTimeData)) {
RealTimeMonitorData realTimeMonitorData = chargingRealTimeData.get(0);
chargingAmount = realTimeMonitorData.getChargingAmount();
chargingDegree = realTimeMonitorData.getChargingDegree();
data.setConsumptionAmount(chargingAmount); // 总消费金额
data.setTotalElectricity(chargingDegree); // 总用电量
data.setStopReasonMsg("人工结算订单,操作人:" + SecurityUtils.getUsername()); // 停止原因
}
// 获取最后一次实时数据
List<RealTimeMonitorData> chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode());
// if (CollectionUtils.isEmpty(chargingRealTimeData)) {
// log.error("人工结算订单 最后一次实时数据为空 error");
// return false;
// }
// RealTimeMonitorData realTimeMonitorData = chargingRealTimeData.get(0);
// 以前端传的值为准,如果没有传值则查最后一次实时数据
if (StringUtils.equals(chargingAmount, Constants.ZERO) && CollectionUtils.isNotEmpty(chargingRealTimeData)) {
chargingAmount = chargingRealTimeData.get(0).getChargingAmount();
}
if (StringUtils.equals(chargingDegree, Constants.ZERO) && CollectionUtils.isNotEmpty(chargingRealTimeData)) {
chargingDegree = chargingRealTimeData.get(0).getChargingDegree();
}
data.setConsumptionAmount(chargingAmount); // 总消费金额
data.setTotalElectricity(chargingDegree); // 总用电量
data.setStopReasonMsg("人工结算订单,操作人:" + SecurityUtils.getUsername()); // 停止原因
// if (StringUtils.equals(chargingAmount, Constants.ZERO) || StringUtils.equals(chargingDegree, Constants.ZERO)) {
//
// if (CollectionUtils.isNotEmpty(chargingRealTimeData)) {
// RealTimeMonitorData realTimeMonitorData = chargingRealTimeData.get(0);
// chargingAmount = realTimeMonitorData.getChargingAmount();
// chargingDegree = realTimeMonitorData.getChargingDegree();
//
// data.setConsumptionAmount(chargingAmount); // 总消费金额
// data.setTotalElectricity(chargingDegree); // 总用电量
// data.setStopReasonMsg("人工结算订单,操作人:" + SecurityUtils.getUsername()); // 停止原因
// }
// }
}
// 查询订单退款记录,如存在退款说明已经结算过,不能再次结算