diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index 1b3609610..0df76f220 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -1110,20 +1110,34 @@ public class TempService { String reCalculateFlag = dto.getReCalculateFlag(); String reCalculateFlagResult = orderCode + "本次未重新计算订单"; if (StringUtils.equals(reCalculateFlag, Constants.ONE)) { - LocalDateTime localDateTime = DateUtils.date2LocalDateTime(orderBasicInfo.getSettlementTime()); + // 获取订单结算时间 + Date settlementTime = orderBasicInfo.getSettlementTime(); + + // 获取订单停止充电时间 + Date chargeEndTime = orderBasicInfo.getChargeEndTime(); + + // 如果订单结算时间与订单停止充电时间都为空,则打印错误信息并返回 + if (settlementTime == null && chargeEndTime == null) { + logger.error("debugOrder, orderCode:{}, settlementTime:{}, chargeEndTime:{}", orderCode, settlementTime, chargeEndTime); + reCalculateFlagResult = orderCode + "订单结算时间和订单停止充电时间都为空"; + resultMap.put("reCalculate", ImmutableMap.of("value", reCalculateFlag, "message", reCalculateFlagResult)); + return resultMap; + } + + LocalDateTime localDateTime = DateUtils.date2LocalDateTime(settlementTime != null ? settlementTime : chargeEndTime); // 开始时间为localDateTime减30秒 LocalDateTime startTime = localDateTime.minusSeconds(30); // 结束时间为localDateTime加30秒 LocalDateTime endTime = localDateTime.plusSeconds(30); // 查询这笔订单的交易记录原始数据 List 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); - } + // if (CollectionUtils.isEmpty(pileFeedListV2)) { + // // 如果没有交易记录原始数据,则使用停止充电时间作为开始时间和结束时间再查一次 + // localDateTime = DateUtils.date2LocalDateTime(chargeEndTime); + // startTime = localDateTime.minusSeconds(30); + // endTime = localDateTime.plusSeconds(30); + // pileFeedListV2 = pileMsgRecordService.getPileFeedListV2(orderBasicInfo.getPileSn(), "0x3B", startTime, endTime); + // } TransactionRecordsData data = null; for (PileMsgRecord pileMsgRecord : pileFeedListV2) { TransactionRecordsData parse = JSONObject.parseObject(pileMsgRecord.getJsonMsg(), TransactionRecordsData.class); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 6c4db9491..e66c25841 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -3558,7 +3558,26 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ @Override public OrderDetail getOrderDetailByOrderCode(String orderCode) { - return orderBasicInfoMapper.getOrderDetailByOrderCode(orderCode); + OrderDetail orderDetail = orderBasicInfoMapper.getOrderDetailByOrderCode(orderCode); + if (orderDetail != null) { + // 如果尖时段耗电量为null, 则设置为0 + if (orderDetail.getSharpUsedElectricity() == null) { + orderDetail.setSharpUsedElectricity(BigDecimal.ZERO); + } + // 如果峰时段耗电量为null, 则设置为0 + if (orderDetail.getPeakUsedElectricity() == null) { + orderDetail.setPeakUsedElectricity(BigDecimal.ZERO); + } + // 如果谷时段耗电量为null, 则设置为0 + if (orderDetail.getValleyUsedElectricity() == null) { + orderDetail.setValleyUsedElectricity(BigDecimal.ZERO); + } + // 如果平时段耗电量为null, 则设置为0 + if (orderDetail.getFlatUsedElectricity() == null) { + orderDetail.setFlatUsedElectricity(BigDecimal.ZERO); + } + } + return orderDetail; } @Override