回滚明细计算逻辑
This commit is contained in:
parent
f279fb482a
commit
4c7c67602a
@ -105,6 +105,30 @@ public class ChargeOrderInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ChargeOrderInfo(XhpcHistoryOrder xhpcHistoryOrder) {
|
||||||
|
|
||||||
|
this.connectorID = xhpcHistoryOrder.getSerialNumber().substring(0, 16);
|
||||||
|
this.startChargeSeq = xhpcHistoryOrder.getInternetSerialNumber();
|
||||||
|
this.endTime = DateUtils.parseDateToStr(YYYY_MM_DD_HH_MM_SS, xhpcHistoryOrder.getEndTime());
|
||||||
|
this.connectorID = xhpcHistoryOrder.getSerialNumber().substring(0, 16);
|
||||||
|
this.endTime = DateUtil.date2String(xhpcHistoryOrder.getEndTime(), DateUtil.DATE_FORMAT_DATE_TIME);
|
||||||
|
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();
|
||||||
|
this.stopReason = xhpcHistoryOrder.getStopReasonEvcs();
|
||||||
|
this.sumPeriod = xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList().size();
|
||||||
|
this.chargeDetails = translate(xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList());
|
||||||
|
Date starttime = xhpcHistoryOrder.getStartTime();
|
||||||
|
Date endtime = xhpcHistoryOrder.getEndTime();
|
||||||
|
int cl = 0;
|
||||||
|
if (starttime != null && endtime != null) {
|
||||||
|
cl = Math.toIntExact((endtime.getTime() - starttime.getTime()) / 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ChargeDetails[] translate(List<XhpcStatisticsTimeInterval> xhpcStatisticsTimeIntervalList) {
|
private ChargeDetails[] translate(List<XhpcStatisticsTimeInterval> xhpcStatisticsTimeIntervalList) {
|
||||||
|
|
||||||
List<ChargeDetails> details = new LinkedList<>();
|
List<ChargeDetails> details = new LinkedList<>();
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
package com.xhpc.evcs.notification;
|
package com.xhpc.evcs.notification;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.xhpc.common.data.redis.CacheRateModel;
|
|
||||||
import com.xhpc.common.data.redis.CacheRealtimeData;
|
|
||||||
import com.xhpc.evcs.domain.AuthSecretToken;
|
import com.xhpc.evcs.domain.AuthSecretToken;
|
||||||
import com.xhpc.evcs.dto.*;
|
import com.xhpc.evcs.dto.ChargeOrderInfo;
|
||||||
|
import com.xhpc.evcs.dto.ChargeOrderInfoResponse;
|
||||||
|
import com.xhpc.evcs.dto.CommonRequest;
|
||||||
|
import com.xhpc.evcs.dto.DTOJsonHelper;
|
||||||
import com.xhpc.evcs.jpa.AuthSecretTokenRepository;
|
import com.xhpc.evcs.jpa.AuthSecretTokenRepository;
|
||||||
import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository;
|
import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository;
|
||||||
import com.xhpc.evcs.utils.DateUtil;
|
|
||||||
import com.xhpc.evcs.utils.JSONUtil;
|
import com.xhpc.evcs.utils.JSONUtil;
|
||||||
import com.xhpc.order.domain.XhpcHistoryOrder;
|
import com.xhpc.order.domain.XhpcHistoryOrder;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -16,13 +16,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
|
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
|
||||||
import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT;
|
import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT;
|
||||||
import static com.xhpc.evcs.notification.NotificationEquipChargeStatusTask.calculateEm;
|
|
||||||
import static com.xhpc.evcs.utils.DateUtil.DATE_FORMAT_DATE_TIME;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author HongYun on 2021/11/1
|
* @Author HongYun on 2021/11/1
|
||||||
@ -51,25 +48,7 @@ public class NotificationChargeOrderInfoTask extends CoreDispatcher {
|
|||||||
horder.getInternetSerialNumber().substring(0, 9);
|
horder.getInternetSerialNumber().substring(0, 9);
|
||||||
}
|
}
|
||||||
if (authSecretToken.getOperatorId3irdpty().equals(operatorId3rdptyEvcs)) {
|
if (authSecretToken.getOperatorId3irdpty().equals(operatorId3rdptyEvcs)) {
|
||||||
EquipChargeStatus equipChargeStatus = new EquipChargeStatus();
|
ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo(horder);
|
||||||
String orderkey = "order:".concat(horder.getSerialNumber());
|
|
||||||
CacheRealtimeData lord = REDIS.getCacheObject(orderkey.concat(".lord"));
|
|
||||||
String lordTime;
|
|
||||||
if (lord != null) {
|
|
||||||
lordTime = lord.getCreateTime();
|
|
||||||
} else {
|
|
||||||
lordTime = DateUtil.date2String(Calendar.getInstance().getTime(), DATE_FORMAT_DATE_TIME);
|
|
||||||
}
|
|
||||||
equipChargeStatus.setEndTime(lordTime);
|
|
||||||
equipChargeStatus.setTotalPower(horder.getTotalPower());
|
|
||||||
equipChargeStatus.setTotalMoney(horder.getTotalPrice().setScale(2).doubleValue());
|
|
||||||
Long rateModelId = horder.getRateModelId();
|
|
||||||
if (rateModelId == null)
|
|
||||||
rateModelId = REDIS.getCacheMapValue("gun:".concat(horder.getSerialNumber().substring(0, 14)),
|
|
||||||
"rateModelId");
|
|
||||||
final CacheRateModel cacheRateModel = REDIS.getCacheObject("rateModel:" + rateModelId);
|
|
||||||
calculateEm(equipChargeStatus, cacheRateModel);
|
|
||||||
ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo(horder, equipChargeStatus.getChargeDetails());
|
|
||||||
final ChargeOrderInfoResponse pushResp = notify(chargeOrderInfo, authSecretToken);
|
final ChargeOrderInfoResponse pushResp = notify(chargeOrderInfo, authSecretToken);
|
||||||
if (pushResp != null) {
|
if (pushResp != null) {
|
||||||
horder.setConfirmResult(pushResp.getConfirmResult());
|
horder.setConfirmResult(pushResp.getConfirmResult());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user