fix NPE & dup entry error

This commit is contained in:
zz 2021-12-09 10:27:20 +08:00
parent 934bc941dc
commit 0ac70127bf
2 changed files with 24 additions and 9 deletions

View File

@ -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<XhpcStatisticsTimeInterval> 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<XhpcStatisticsTimeInterval> xhpcStatisticsTimeIntervalList) {
List<ChargeDetails> 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);
}

View File

@ -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<EtOrderMapping> example = Example.of(om);
etOrderMapping = orderMappingRepository.findOne(example).orElse(null);