diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfo.java index 0c4579ef..40455af7 100644 --- a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfo.java +++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfo.java @@ -12,6 +12,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.Transient; +import java.math.BigDecimal; import java.util.*; import static com.xhpc.common.core.utils.DateUtils.YYYY_MM_DD_HH_MM_SS; @@ -115,26 +116,41 @@ public class ChargeOrderInfo { this.startTime = DateUtil.date2String(xhpcHistoryOrder.getStartTime(), DateUtil.DATE_FORMAT_DATE_TIME); this.chargeModel = xhpcHistoryOrder.getChargeModelEvcs(); this.totalPower = xhpcHistoryOrder.getTotalPower(); - this.totalElecMoney = xhpcHistoryOrder.getPowerPriceTotal().doubleValue(); - this.totalSeviceMoney = xhpcHistoryOrder.getServicePriceTotal().doubleValue(); - this.totalMoney = xhpcHistoryOrder.getTotalPrice().doubleValue(); + final BigDecimal powerPriceTotal = xhpcHistoryOrder.getPowerPriceTotal(); + this.totalElecMoney = powerPriceTotal == null ? 0.0 : powerPriceTotal.doubleValue(); + final BigDecimal servicePriceTotal = xhpcHistoryOrder.getServicePriceTotal(); + this.totalSeviceMoney = servicePriceTotal == null ? 0.0 : servicePriceTotal.doubleValue(); + final BigDecimal totalPrice = xhpcHistoryOrder.getTotalPrice(); + this.totalMoney = totalPrice == null ? 0.0 : totalPrice.doubleValue(); this.stopReason = xhpcHistoryOrder.getStopReasonEvcs(); - this.sumPeriod = xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList().size(); - this.chargeDetails = translate(xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList()); + final List xhpcStatisticsTimeIntervalList = + xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList(); + this.sumPeriod = xhpcStatisticsTimeIntervalList == null ? 0 : xhpcStatisticsTimeIntervalList.size(); + this.chargeDetails = translate(xhpcStatisticsTimeIntervalList); Date starttime = xhpcHistoryOrder.getStartTime(); Date endtime = xhpcHistoryOrder.getEndTime(); int cl = 0; if (starttime != null && endtime != null) { cl = Math.toIntExact((endtime.getTime() - starttime.getTime()) / 1000); } + String starttimestr = DateUtil.date2StringDt(starttime); + String endtimestr = DateUtil.date2StringDt(endtime); + if (cl < 0) { + String tmp = endtimestr; + endtimestr = starttimestr; + starttimestr = tmp; + } + this.startTime = starttimestr; + this.endTime = endtimestr; } private ChargeDetails[] translate(List xhpcStatisticsTimeIntervalList) { List details = new LinkedList<>(); - for (XhpcStatisticsTimeInterval statistics : xhpcStatisticsTimeIntervalList) { - details.add(new ChargeDetails(statistics)); - } + if (xhpcStatisticsTimeIntervalList != null) + for (XhpcStatisticsTimeInterval statistics : xhpcStatisticsTimeIntervalList) { + details.add(new ChargeDetails(statistics)); + } ChargeDetails[] a = new ChargeDetails[details.size()]; return details.toArray(a); } diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfo4BonusTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfo4BonusTask.java index 4e18cbd1..c983a9e7 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfo4BonusTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfo4BonusTask.java @@ -110,7 +110,6 @@ public class NotificationChargeOrderInfo4BonusTask extends CoreDispatcher { EtOrderMapping etOrderMapping; EtOrderMapping om = new EtOrderMapping(); if (internetSerialNumber != null) { - om.setXhOrderNo(xhOrderNo); om.setEvcsOrderNo(internetSerialNumber); Example example = Example.of(om); etOrderMapping = orderMappingRepository.findOne(example).orElse(null);