WIP:三方对接逻辑

This commit is contained in:
ZZ 2021-11-11 11:50:10 +08:00
parent 89540ca832
commit e2cd9cea69
6 changed files with 28 additions and 14 deletions

View File

@ -68,7 +68,6 @@ public class QueryEquipChargeStatusController {
equipChargeStatus.setStartChargeSeqStat(startChargeSeqStat);
//充电设备接口编码
String connectorId = internalOrderNum.substring(0, 16);
// CacheOrderData cacheOrderData = (CacheOrderData) order.get("orderData");
//充电设备接口状态
Map<String, Object> cacheGunData = REDIS.getCacheMap("gun:" + connectorId);
String gunStatus = (String) cacheGunData.get("status");
@ -104,11 +103,13 @@ public class QueryEquipChargeStatusController {
String startTime = (String) order.get("startTime");
equipChargeStatus.setStartTime(startTime);
//本次采样时间 直接new一个当前时间的Date就可以了
equipChargeStatus.setEndTime(DateUtil.getNowDateStr());
equipChargeStatus.setEndTime(DateUtil.getYyyyMmDdHhMmSs());
final Integer chargeModel = (Integer) order.get("chargeModel");
equipChargeStatus.setChargeModel(chargeModel == null ? 0 : chargeModel);
//累计充电量
CacheRealtimeData orderLord = REDIS.getCacheObject("order:" + internalOrderNum + ".lord");
Double chargingDegree = Double.valueOf(orderLord.getChargingDegree());
equipChargeStatus.setTotalPower(chargingDegree);
equipChargeStatus.setTotalPower(chargingDegree / 10000);
// ChargeDetails detail = new ChargeDetails();
// detail.setDetailStartTime(equipChargeStatus.getStartTime());
@ -122,7 +123,7 @@ public class QueryEquipChargeStatusController {
CommonResponse response = new CommonResponse();
response.setRet(EvcsConst.RET_SUCC);
response.setData(JSONUtil.toJSONString(equipChargeStatus));
response.setMsg("操作成功");
response.setMsg("success");
return response;
}
}

View File

@ -339,7 +339,7 @@ public class QueryStationsInfoController {
cachePile.put("connectorType", xhpcChargingPile.getType() == null ? 4 : xhpcChargingPile.getType());
cachePile.put("voltageUpperLimits", xhpcChargingPile.getMaxVoltage().intValue());
cachePile.put("voltageLowerLimits", xhpcChargingPile.getMinVoltage().intValue());
cachePile.put("current", xhpcChargingPile.getCurrent());
cachePile.put("currentLimit", xhpcChargingPile.getCurrent());
cachePile.put("power", xhpcChargingPile.getPower());
cachePile.put("nationalStandard", xhpcChargingPile.getNationalStandard().equals("2011") ? 1 : 2);
cachePile.put("equipmentType", xhpcChargingPile.getType());

View File

@ -53,7 +53,8 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
if (isInteger(status)) {
final String orderkey = cacheGun.get("orderkey").toString();
EquipChargeStatus equipChargeStatus = new EquipChargeStatus();
// equipChargeStatus.setStartChargeSeq(transferInternetOrderNo(orderkey)); //todo
equipChargeStatus.setStartChargeSeq(REDIS.getCacheMapValue(orderkey.replace("order:", "pushOrder:"),
"internetSerialNumber"));
equipChargeStatus.setStartChargeSeqStat(2);
equipChargeStatus.setConnectorID(orderkey.substring(6, 22));
String current = REDIS.getCacheMapValue(gunkey, "current");
@ -98,7 +99,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
final String rtf = cacheRateModel.getTfPricesSeq()[tf];
BigDecimal timePeriodRatio = BigDecimal.valueOf(60).divide(minutes, 2, RoundingMode.HALF_UP);
BigDecimal tpPower = BigDecimal.valueOf(equipChargeStatusCD.getTotalPower()).multiply(timePeriodRatio);
calculateCD(equipChargeStatusCD, cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
calculateCD(cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
if (i == 0) {
cd.setDetailStartTime(equipChargeStatusCD.getStartTime());
} else {
@ -123,7 +124,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
BigDecimal tpPower = BigDecimal.valueOf(equipChargeStatusCD.getTotalPower())
.multiply(timePeriodRatio).divide(BigDecimal.valueOf(100000), 2, RoundingMode.HALF_UP);
ChargeDetails cd = new ChargeDetails();
calculateCD(equipChargeStatusCD, cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
calculateCD(cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
firstNElecMoney += cd.getDetailElecMoney();
cd.setDetailStartTime(firstNDT.toString(DATE_FORMAT_DATE_TIME));
chargeDetails.add(cd);
@ -134,7 +135,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
equipChargeStatusCD.setSeviceMoney(equipChargeStatusCD.getTotalMoney() - firstNElecMoney);
}
private void calculateCD(EquipChargeStatus equipChargeStatusCD, CacheRateModel cacheRateModel, String rtf,
private void calculateCD(CacheRateModel cacheRateModel, String rtf,
BigDecimal timePeriodRatio, BigDecimal tpPower, ChargeDetails cd) {
cd.setDetailPower(tpPower.multiply(timePeriodRatio).doubleValue());
@ -163,13 +164,13 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
public void notify(EquipChargeStatus equipChargeStatus, AuthSecretToken authSecretTokenOut) throws IOException {
String operatorIdEvcs = "MA6DFCTD5";
String data = JSONUtil.toJSONString(equipChargeStatus);
logger.debug(data);
CommonRequest<CDChargeOrderInfo4BonusReq> commonRequest = new CommonRequest<>();
commonRequest.setOperatorId(operatorIdEvcs);
final String operatorId = authSecretTokenOut.getOperatorId3irdpty().equals("765367656") ?
authSecretTokenOut.getOperatorId() : "MA6DFCTD5";
commonRequest.setOperatorId(operatorId);
commonRequest.setData(data);
String responseBody = ok(commonRequest, "/notification_equip_charge_status", authSecretTokenOut, operatorIdEvcs);
String responseBody = ok(commonRequest, "/notification_equip_charge_status", authSecretTokenOut, operatorId);
EquipChargeStatusRes equipChargeStatusRes = DTOJsonHelper.parseResponseData(responseBody,
EquipChargeStatusRes.class, authSecretTokenOut);
if (equipChargeStatusRes != null && equipChargeStatusRes.getSuccStat() != 0) {

View File

@ -473,6 +473,11 @@ public class DateUtil {
}
public static String getYyyyMmDdHhMmSs() {
return DateTime.now().toString(DATE_FORMAT_DATE_TIME);
}
public static String getYYYY() {
return String.valueOf(DateTime.now().getField(DateField.YEAR));

View File

@ -21,6 +21,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -257,6 +260,8 @@ public class ChargingController {
cacheOrder.put("gunId", startChargingData.getGunId());
cacheOrder.put("tel", startChargingData.getTel());
cacheOrder.put("stopSoc", startChargingData.getSoc());
cacheOrder.put("startTime",
DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss").withZone(ZoneId.systemDefault()).format(Instant.now()));
REDIS.setCacheMap(orderkey, cacheOrder);
return R.ok("充电指令已下发");
} catch (IOException e) {

View File

@ -57,7 +57,9 @@ public class RemoteStartReplyDataLogic implements ServiceLogic {
REDIS.setCacheMap(gunkey, cacheGun);
REDIS.setCacheMap(orderkey, cacheOrder);
if (HEX_01.equals(remoteStartReplyData.getStartResult())) {
cacheGun.put("orderstarttime", DateUtil.format(Calendar.getInstance().getTime(), NORM_DATETIME_FORMAT));
final String orderstarttime = DateUtil.format(Calendar.getInstance().getTime(), NORM_DATETIME_FORMAT);
cacheOrder.put("startTime", orderstarttime);
cacheGun.put("orderstarttime", orderstarttime);
cacheGun.put("orderstoptime", null);
cacheGun.put("orderkey", orderkey);
REDIS.setCacheMap(gunkey, cacheGun);