WIP:三方对接逻辑
This commit is contained in:
parent
89540ca832
commit
e2cd9cea69
@ -68,7 +68,6 @@ public class QueryEquipChargeStatusController {
|
|||||||
equipChargeStatus.setStartChargeSeqStat(startChargeSeqStat);
|
equipChargeStatus.setStartChargeSeqStat(startChargeSeqStat);
|
||||||
//充电设备接口编码
|
//充电设备接口编码
|
||||||
String connectorId = internalOrderNum.substring(0, 16);
|
String connectorId = internalOrderNum.substring(0, 16);
|
||||||
// CacheOrderData cacheOrderData = (CacheOrderData) order.get("orderData");
|
|
||||||
//充电设备接口状态
|
//充电设备接口状态
|
||||||
Map<String, Object> cacheGunData = REDIS.getCacheMap("gun:" + connectorId);
|
Map<String, Object> cacheGunData = REDIS.getCacheMap("gun:" + connectorId);
|
||||||
String gunStatus = (String) cacheGunData.get("status");
|
String gunStatus = (String) cacheGunData.get("status");
|
||||||
@ -104,11 +103,13 @@ public class QueryEquipChargeStatusController {
|
|||||||
String startTime = (String) order.get("startTime");
|
String startTime = (String) order.get("startTime");
|
||||||
equipChargeStatus.setStartTime(startTime);
|
equipChargeStatus.setStartTime(startTime);
|
||||||
//本次采样时间 直接new一个当前时间的Date就可以了
|
//本次采样时间 直接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");
|
CacheRealtimeData orderLord = REDIS.getCacheObject("order:" + internalOrderNum + ".lord");
|
||||||
Double chargingDegree = Double.valueOf(orderLord.getChargingDegree());
|
Double chargingDegree = Double.valueOf(orderLord.getChargingDegree());
|
||||||
equipChargeStatus.setTotalPower(chargingDegree);
|
equipChargeStatus.setTotalPower(chargingDegree / 10000);
|
||||||
|
|
||||||
// ChargeDetails detail = new ChargeDetails();
|
// ChargeDetails detail = new ChargeDetails();
|
||||||
// detail.setDetailStartTime(equipChargeStatus.getStartTime());
|
// detail.setDetailStartTime(equipChargeStatus.getStartTime());
|
||||||
@ -122,7 +123,7 @@ public class QueryEquipChargeStatusController {
|
|||||||
CommonResponse response = new CommonResponse();
|
CommonResponse response = new CommonResponse();
|
||||||
response.setRet(EvcsConst.RET_SUCC);
|
response.setRet(EvcsConst.RET_SUCC);
|
||||||
response.setData(JSONUtil.toJSONString(equipChargeStatus));
|
response.setData(JSONUtil.toJSONString(equipChargeStatus));
|
||||||
response.setMsg("操作成功");
|
response.setMsg("success");
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -339,7 +339,7 @@ public class QueryStationsInfoController {
|
|||||||
cachePile.put("connectorType", xhpcChargingPile.getType() == null ? 4 : xhpcChargingPile.getType());
|
cachePile.put("connectorType", xhpcChargingPile.getType() == null ? 4 : xhpcChargingPile.getType());
|
||||||
cachePile.put("voltageUpperLimits", xhpcChargingPile.getMaxVoltage().intValue());
|
cachePile.put("voltageUpperLimits", xhpcChargingPile.getMaxVoltage().intValue());
|
||||||
cachePile.put("voltageLowerLimits", xhpcChargingPile.getMinVoltage().intValue());
|
cachePile.put("voltageLowerLimits", xhpcChargingPile.getMinVoltage().intValue());
|
||||||
cachePile.put("current", xhpcChargingPile.getCurrent());
|
cachePile.put("currentLimit", xhpcChargingPile.getCurrent());
|
||||||
cachePile.put("power", xhpcChargingPile.getPower());
|
cachePile.put("power", xhpcChargingPile.getPower());
|
||||||
cachePile.put("nationalStandard", xhpcChargingPile.getNationalStandard().equals("2011") ? 1 : 2);
|
cachePile.put("nationalStandard", xhpcChargingPile.getNationalStandard().equals("2011") ? 1 : 2);
|
||||||
cachePile.put("equipmentType", xhpcChargingPile.getType());
|
cachePile.put("equipmentType", xhpcChargingPile.getType());
|
||||||
|
|||||||
@ -53,7 +53,8 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
|
|||||||
if (isInteger(status)) {
|
if (isInteger(status)) {
|
||||||
final String orderkey = cacheGun.get("orderkey").toString();
|
final String orderkey = cacheGun.get("orderkey").toString();
|
||||||
EquipChargeStatus equipChargeStatus = new EquipChargeStatus();
|
EquipChargeStatus equipChargeStatus = new EquipChargeStatus();
|
||||||
// equipChargeStatus.setStartChargeSeq(transferInternetOrderNo(orderkey)); //todo
|
equipChargeStatus.setStartChargeSeq(REDIS.getCacheMapValue(orderkey.replace("order:", "pushOrder:"),
|
||||||
|
"internetSerialNumber"));
|
||||||
equipChargeStatus.setStartChargeSeqStat(2);
|
equipChargeStatus.setStartChargeSeqStat(2);
|
||||||
equipChargeStatus.setConnectorID(orderkey.substring(6, 22));
|
equipChargeStatus.setConnectorID(orderkey.substring(6, 22));
|
||||||
String current = REDIS.getCacheMapValue(gunkey, "current");
|
String current = REDIS.getCacheMapValue(gunkey, "current");
|
||||||
@ -98,7 +99,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
|
|||||||
final String rtf = cacheRateModel.getTfPricesSeq()[tf];
|
final String rtf = cacheRateModel.getTfPricesSeq()[tf];
|
||||||
BigDecimal timePeriodRatio = BigDecimal.valueOf(60).divide(minutes, 2, RoundingMode.HALF_UP);
|
BigDecimal timePeriodRatio = BigDecimal.valueOf(60).divide(minutes, 2, RoundingMode.HALF_UP);
|
||||||
BigDecimal tpPower = BigDecimal.valueOf(equipChargeStatusCD.getTotalPower()).multiply(timePeriodRatio);
|
BigDecimal tpPower = BigDecimal.valueOf(equipChargeStatusCD.getTotalPower()).multiply(timePeriodRatio);
|
||||||
calculateCD(equipChargeStatusCD, cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
|
calculateCD(cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
cd.setDetailStartTime(equipChargeStatusCD.getStartTime());
|
cd.setDetailStartTime(equipChargeStatusCD.getStartTime());
|
||||||
} else {
|
} else {
|
||||||
@ -123,7 +124,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
|
|||||||
BigDecimal tpPower = BigDecimal.valueOf(equipChargeStatusCD.getTotalPower())
|
BigDecimal tpPower = BigDecimal.valueOf(equipChargeStatusCD.getTotalPower())
|
||||||
.multiply(timePeriodRatio).divide(BigDecimal.valueOf(100000), 2, RoundingMode.HALF_UP);
|
.multiply(timePeriodRatio).divide(BigDecimal.valueOf(100000), 2, RoundingMode.HALF_UP);
|
||||||
ChargeDetails cd = new ChargeDetails();
|
ChargeDetails cd = new ChargeDetails();
|
||||||
calculateCD(equipChargeStatusCD, cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
|
calculateCD(cacheRateModel, rtf, timePeriodRatio, tpPower, cd);
|
||||||
firstNElecMoney += cd.getDetailElecMoney();
|
firstNElecMoney += cd.getDetailElecMoney();
|
||||||
cd.setDetailStartTime(firstNDT.toString(DATE_FORMAT_DATE_TIME));
|
cd.setDetailStartTime(firstNDT.toString(DATE_FORMAT_DATE_TIME));
|
||||||
chargeDetails.add(cd);
|
chargeDetails.add(cd);
|
||||||
@ -134,7 +135,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
|
|||||||
equipChargeStatusCD.setSeviceMoney(equipChargeStatusCD.getTotalMoney() - firstNElecMoney);
|
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) {
|
BigDecimal timePeriodRatio, BigDecimal tpPower, ChargeDetails cd) {
|
||||||
|
|
||||||
cd.setDetailPower(tpPower.multiply(timePeriodRatio).doubleValue());
|
cd.setDetailPower(tpPower.multiply(timePeriodRatio).doubleValue());
|
||||||
@ -163,13 +164,13 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
|
|||||||
|
|
||||||
public void notify(EquipChargeStatus equipChargeStatus, AuthSecretToken authSecretTokenOut) throws IOException {
|
public void notify(EquipChargeStatus equipChargeStatus, AuthSecretToken authSecretTokenOut) throws IOException {
|
||||||
|
|
||||||
String operatorIdEvcs = "MA6DFCTD5";
|
|
||||||
String data = JSONUtil.toJSONString(equipChargeStatus);
|
String data = JSONUtil.toJSONString(equipChargeStatus);
|
||||||
logger.debug(data);
|
|
||||||
CommonRequest<CDChargeOrderInfo4BonusReq> commonRequest = new CommonRequest<>();
|
CommonRequest<CDChargeOrderInfo4BonusReq> commonRequest = new CommonRequest<>();
|
||||||
commonRequest.setOperatorId(operatorIdEvcs);
|
final String operatorId = authSecretTokenOut.getOperatorId3irdpty().equals("765367656") ?
|
||||||
|
authSecretTokenOut.getOperatorId() : "MA6DFCTD5";
|
||||||
|
commonRequest.setOperatorId(operatorId);
|
||||||
commonRequest.setData(data);
|
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 equipChargeStatusRes = DTOJsonHelper.parseResponseData(responseBody,
|
||||||
EquipChargeStatusRes.class, authSecretTokenOut);
|
EquipChargeStatusRes.class, authSecretTokenOut);
|
||||||
if (equipChargeStatusRes != null && equipChargeStatusRes.getSuccStat() != 0) {
|
if (equipChargeStatusRes != null && equipChargeStatusRes.getSuccStat() != 0) {
|
||||||
|
|||||||
@ -473,6 +473,11 @@ public class DateUtil {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getYyyyMmDdHhMmSs() {
|
||||||
|
|
||||||
|
return DateTime.now().toString(DATE_FORMAT_DATE_TIME);
|
||||||
|
}
|
||||||
|
|
||||||
public static String getYYYY() {
|
public static String getYYYY() {
|
||||||
|
|
||||||
return String.valueOf(DateTime.now().getField(DateField.YEAR));
|
return String.valueOf(DateTime.now().getField(DateField.YEAR));
|
||||||
|
|||||||
@ -21,6 +21,9 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -257,6 +260,8 @@ public class ChargingController {
|
|||||||
cacheOrder.put("gunId", startChargingData.getGunId());
|
cacheOrder.put("gunId", startChargingData.getGunId());
|
||||||
cacheOrder.put("tel", startChargingData.getTel());
|
cacheOrder.put("tel", startChargingData.getTel());
|
||||||
cacheOrder.put("stopSoc", startChargingData.getSoc());
|
cacheOrder.put("stopSoc", startChargingData.getSoc());
|
||||||
|
cacheOrder.put("startTime",
|
||||||
|
DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss").withZone(ZoneId.systemDefault()).format(Instant.now()));
|
||||||
REDIS.setCacheMap(orderkey, cacheOrder);
|
REDIS.setCacheMap(orderkey, cacheOrder);
|
||||||
return R.ok("充电指令已下发");
|
return R.ok("充电指令已下发");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|||||||
@ -57,7 +57,9 @@ public class RemoteStartReplyDataLogic implements ServiceLogic {
|
|||||||
REDIS.setCacheMap(gunkey, cacheGun);
|
REDIS.setCacheMap(gunkey, cacheGun);
|
||||||
REDIS.setCacheMap(orderkey, cacheOrder);
|
REDIS.setCacheMap(orderkey, cacheOrder);
|
||||||
if (HEX_01.equals(remoteStartReplyData.getStartResult())) {
|
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("orderstoptime", null);
|
||||||
cacheGun.put("orderkey", orderkey);
|
cacheGun.put("orderkey", orderkey);
|
||||||
REDIS.setCacheMap(gunkey, cacheGun);
|
REDIS.setCacheMap(gunkey, cacheGun);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user