From 9fbf1bea1f78db84d9a36dc668635f1a7f545eed Mon Sep 17 00:00:00 2001 From: ZZ Date: Thu, 26 Aug 2021 17:23:12 +0800 Subject: [PATCH] =?UTF-8?q?SOC=E5=81=9C=E6=AD=A2=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/data/down/StartChargingData.java | 11 +++++++++++ .../xhpc/pp/controller/ChargingController.java | 1 + .../com/xhpc/pp/logic/RealtimeDataLogic.java | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java index 33907028..9874c3d4 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/data/down/StartChargingData.java @@ -16,6 +16,7 @@ public class StartChargingData { private String logicCardNo = "0000000000000000"; //逻辑卡号 16进制,无需补零 private String physicCardNo = "0000000000000000"; //物理卡号 同上 private String version = "0A"; //协议版本号(0A) + private Integer soc; public String getOrderNo() { @@ -97,4 +98,14 @@ public class StartChargingData { this.version = version; } + public Integer getSoc() { + + return soc; + } + + public void setSoc(Integer soc) { + + this.soc = soc; + } + } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java index 5b411993..27a8974d 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/controller/ChargingController.java @@ -231,6 +231,7 @@ public class ChargingController { cacheOrder.put("rateModelId", pileRateModelId); cacheOrder.put("balance", balance); cacheOrder.put("tel", startChargingData.getTel()); + cacheOrder.put("stopSoc", startChargingData.getSoc()); REDIS.setCacheMap(orderkey, cacheOrder); cacheGun.put("orderstarttime", DateUtil.format(Calendar.getInstance().getTime(), NORM_DATETIME_FORMAT)); cacheGun.put("orderstoptime", null); diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java index ca73b27b..5d8be542 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java @@ -3,8 +3,10 @@ package com.xhpc.pp.logic; import com.fasterxml.jackson.databind.ObjectMapper; import com.xhpc.common.api.PileOrderService; import com.xhpc.common.api.SmsService; +import com.xhpc.common.core.domain.R; import com.xhpc.common.data.redis.CacheRealtimeData; import com.xhpc.common.data.up.RealtimeData; +import com.xhpc.pp.controller.ChargingController; import com.xhpc.pp.tx.ServiceParameter; import com.xhpc.pp.tx.ServiceResult; import com.xhpc.pp.tx.logic.ServiceLogic; @@ -22,6 +24,7 @@ import java.util.List; import java.util.Map; import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; +import static com.xhpc.pp.server.ChargingPileServer.default_version; import static com.xhpc.pp.utils.security.CacheDataUtils.reflectTranslate; import static com.xhpc.pp.utils.security.HexUtils.reverseHexInt; import static com.xhpc.pp.utils.security.HexUtils.toBits; @@ -42,6 +45,8 @@ public class RealtimeDataLogic implements ServiceLogic { @Autowired private PileOrderService pileOrderService; + @Autowired + private ChargingController chargingController; @Override public ServiceResult service(ServiceParameter sp) throws Exception { @@ -108,6 +113,19 @@ public class RealtimeDataLogic implements ServiceLogic { cacheOrder.put("realtimeDataList", realtimeDataList); REDIS.setCacheMap(orderkey, cacheOrder); pileOrderService.pileRimeOrder(orderNo); + Integer stopSoc = (Integer) cacheOrder.get("stopSoc"); + if (stopSoc != null && socInt >= stopSoc) { + String alerted = (String) cacheOrder.get("socalerted"); + String tel = (String) cacheOrder.get("tel"); + if (alerted == null && tel != null) { + R r = chargingController.nativeStopCharging(pileNo, gunId, default_version); + if (r.getCode() == 200) { + smsService.sendNotice(tel, "【小华充电】尊敬的用户,你的车辆已充电达至设定的SOC(".concat(stopSoc.toString()).concat("%)已自动停止充电,请您尽快将车辆挪走以方便他人使用充电桩,谢谢合作。")); + cacheOrder.put("socalerted", "true"); + REDIS.setCacheMap(orderkey, cacheOrder); + } + } + } if ((balance - cacheRealtimeData.getAmountCharged()) < 500) { String alerted = (String) cacheOrder.get("lt5alerted"); String tel = (String) cacheOrder.get("tel");