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); 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;
} }
} }

View File

@ -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());

View File

@ -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) {

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() { public static String getYYYY() {
return String.valueOf(DateTime.now().getField(DateField.YEAR)); 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 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) {

View File

@ -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);