This commit is contained in:
Lemon
2025-11-06 11:26:05 +08:00
parent 87c5373430
commit 7ef90d05c2

View File

@@ -148,6 +148,9 @@ public class OrderService {
@Autowired
private PersonalChargingRecordService personalChargingRecordService;
@Autowired
private PileMsgRecordService pileMsgRecordService;
@Autowired
private RabbitTemplate rabbitTemplate;
@@ -765,17 +768,52 @@ public class OrderService {
List<String> merchantDeptIds = authorizedMap.getMerchantDeptIds();
}
// 初始化data
TransactionRecordsData data = null;
// 充电金额
String chargingAmount = dto.getChargingAmount();
// 充电度数
String chargingDegree = dto.getChargingDegree();
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();
// 先查交易记录
LocalDateTime localDateTime = DateUtils.date2LocalDateTime(orderBasicInfo.getSettlementTime());
// 开始时间为localDateTime减30秒
LocalDateTime startTime = localDateTime.minusSeconds(30);
// 结束时间为localDateTime加30秒
LocalDateTime endTime = localDateTime.plusSeconds(30);
// 查询这笔订单的交易记录原始数据
List<PileMsgRecord> pileFeedListV2 = pileMsgRecordService.getPileFeedListV2(orderBasicInfo.getPileSn(), "0x3B", startTime, endTime);
if (CollectionUtils.isEmpty(pileFeedListV2)) {
// 如果没有交易记录原始数据,则使用停止充电时间作为开始时间和结束时间再查一次
localDateTime = DateUtils.date2LocalDateTime(orderBasicInfo.getChargeEndTime());
startTime = localDateTime.minusSeconds(30);
endTime = localDateTime.plusSeconds(30);
pileFeedListV2 = pileMsgRecordService.getPileFeedListV2(orderBasicInfo.getPileSn(), "0x3B", startTime, endTime);
}
for (PileMsgRecord pileMsgRecord : pileFeedListV2) {
TransactionRecordsData parse = JSONObject.parseObject(pileMsgRecord.getJsonMsg(), TransactionRecordsData.class);
if (StringUtils.equals(parse.getTransactionCode(), orderBasicInfo.getTransactionCode())) {
data = parse;
data.setVinCode("");
}
}
// 如果订单的交易记录为空
if (data == null) {
data = new TransactionRecordsData();
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()); // 停止原因
}
}
}
@@ -805,10 +843,10 @@ public class OrderService {
} else {
// 汽车桩
// 组装交易记录数据
TransactionRecordsData data = new TransactionRecordsData();
data.setConsumptionAmount(chargingAmount); // 总消费金额
data.setTotalElectricity(chargingDegree); // 总用电量
data.setStopReasonMsg("人工结算订单,操作人:" + SecurityUtils.getUsername()); // 停止原因
// TransactionRecordsData data = new TransactionRecordsData();
// data.setConsumptionAmount(chargingAmount); // 总消费金额
// data.setTotalElectricity(chargingDegree); // 总用电量
// data.setStopReasonMsg("人工结算订单,操作人:" + SecurityUtils.getUsername()); // 停止原因
orderLogic.settleOrder(data, orderBasicInfo);
}