This commit is contained in:
ZZ 2021-09-14 09:47:06 +08:00
parent 61c042af5a
commit d05570b4cb
15 changed files with 26 additions and 23 deletions

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电阶段充电机中止报文
public class BmsChargerInterruptData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电过程 BMS 信息
public class BmsChargingData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电错误报文
public class BmsErrorData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电阶段 BMS 中止报文
public class BmsInterruptData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电过程 BMS 需求充电机输出
public class BmsReqChargerOutputData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电结束阶段报文
public class ChargingCompletedData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 参数配置阶段报文
public class ChargingConfigData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,5 +1,6 @@
package com.xhpc.common.data.up;
//充电桩与 BMS 充电握手阶段报文
public class ChargingHandshakeData extends BaseData {
private String orderNo; //交易流水号

View File

@ -1,6 +1,5 @@
package com.xhpc.pp.controller;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xhpc.common.api.PowerPileService;
@ -23,11 +22,9 @@ import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_FORMAT;
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
import static com.xhpc.common.data.redis.StaticBeanUtil.seqHex;
import static com.xhpc.pp.logic.RegisterLogic.REGISTERED;
@ -220,7 +217,7 @@ public class ChargingController {
if (!"空闲".equals(gunstatus)) {
return R.fail("端口不在空闲或正常状态,稍后再试");
}
if (CacheDataUtils.hori(gunkey)) return R.fail("请检查终端号是否正确,稍后再试");
if (CacheDataUtils.hori(gunkey)) return R.fail("请检查号是否正确,稍后再试");
String skey = gunkey.concat(".seqhex");
String seq = seqHex(skey);
byte[] msg = translateStart(startChargingData, seq);
@ -238,15 +235,11 @@ public class ChargingController {
cacheOrder.put("physicCardNo", startChargingData.getPhysicCardNo());
cacheOrder.put("gunId", startChargingData.getGunId());
cacheOrder.put("tel", startChargingData.getTel());
cacheOrder.put("startSoc", startChargingData.getSoc());
cacheOrder.put("stopSoc", startChargingData.getSoc());
cacheOrder.put("startSoc", 0);
cacheOrder.put("endSoc", 0);
cacheOrder.put("endSoc", startChargingData.getSoc());
REDIS.setCacheMap(orderkey, cacheOrder);
cacheGun.put("orderstarttime", DateUtil.format(Calendar.getInstance().getTime(), NORM_DATETIME_FORMAT));
cacheGun.put("orderstoptime", null);
cacheGun.put("orderkey", orderkey);
REDIS.setCacheMap(gunkey, cacheGun);
return R.ok("指令已下发至充电桩");
return R.ok("充电指令已下发");
} catch (IOException e) {
log.error("send message failed. " + e.getMessage(), e);
return R.fail(e.getMessage());
@ -263,7 +256,7 @@ public class ChargingController {
}
try {
String gunkey = "gun:".concat(pileNo).concat(gunId);
if (CacheDataUtils.hori(gunkey)) return R.fail("正在停止充电,如果失败请稍后再试一次");
if (CacheDataUtils.hori(gunkey)) return R.fail("充电桩正在忙碌,请稍后再试");
String skey = gunkey.concat(".seqhex");
String seq = seqHex(skey);
byte[] msg = translateStop(pileNo, gunId, version, seq);

View File

@ -15,7 +15,7 @@ import java.util.Map;
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
@Lazy
@Component("ChargingCompletedDataLogic")
@Component("BmsChargingCompletedDataLogic")
public class ChargingCompletedDataLogic implements ServiceLogic {
private static Logger log = LoggerFactory.getLogger(ChargingCompletedDataLogic.class);

View File

@ -15,7 +15,7 @@ import java.util.Map;
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
@Lazy
@Component("ChargingConfigDataLogic")
@Component("BmsChargingConfigDataLogic")
public class ChargingConfigDataLogic implements ServiceLogic {
private static Logger log = LoggerFactory.getLogger(ChargingConfigDataLogic.class);

View File

@ -15,7 +15,7 @@ import java.util.Map;
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
@Lazy
@Component("ChargingHandshakeDataLogic")
@Component("BmsChargingHandshakeDataLogic")
public class ChargingHandshakeDataLogic implements ServiceLogic {
private static Logger log = LoggerFactory.getLogger(ChargingHandshakeDataLogic.class);

View File

@ -8,7 +8,6 @@ import com.xhpc.common.data.up.OrderData;
import com.xhpc.pp.tx.ServiceParameter;
import com.xhpc.pp.tx.ServiceResult;
import com.xhpc.pp.tx.logic.ServiceLogic;
import com.xhpc.pp.utils.security.CRCCalculator;
import com.xhpc.pp.utils.security.HexUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -51,7 +50,6 @@ public class OrderDataLogic implements ServiceLogic {
REDIS.setCacheMap(orderkey, cacheOrder);
String gunkey = "gun:".concat(orderData.getPileNo()).concat(orderData.getGunId());
Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey);
cacheGun.put("orderstarttime", null);
cacheGun.put("orderstoptime", cacheOrderData.getEndTime());
cacheGun.put("orderkey", null);
REDIS.setCacheMap(gunkey, cacheGun);
@ -59,7 +57,6 @@ public class OrderDataLogic implements ServiceLogic {
String seq = seqHex(skey);
String resultStr = "6815".concat(seq).concat("0040").concat(orderNo).concat(ServiceResult.HEX_00);
pileOrderService.pileEndOrder(orderNo);
resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr));
return new ServiceResult(HexUtils.toBytes(resultStr), ServiceResult.OK);
}

View File

@ -1,5 +1,6 @@
package com.xhpc.pp.logic;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xhpc.common.api.PileOrderService;
import com.xhpc.common.data.up.RemoteStartReplyData;
@ -12,8 +13,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.Calendar;
import java.util.Map;
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_FORMAT;
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
import static com.xhpc.pp.tx.ServiceResult.HEX_01;
@ -43,10 +46,12 @@ 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));
cacheGun.put("orderstoptime", null);
cacheGun.put("orderkey", orderkey);
REDIS.setCacheMap(gunkey, cacheGun);
pileOrderService.pileStartup(orderNo, 1, "启动充电成功");
} else {
cacheGun.put("orderkey", null);
REDIS.setCacheMap(gunkey, cacheGun);
pileOrderService.pileStartup(orderNo, 2, frs[Integer.parseInt(remoteStartReplyData.getFailReason())]);
}
return new ServiceResult(false);

View File

@ -13,9 +13,9 @@
<entry key="05" value-ref="RateModelValidateLogic"/>
<entry key="09" value-ref="RateModelRequestLogic"/>
<entry key="13" value-ref="RealtimeDataLogic"/>
<entry key="15" value-ref="ChargingHandshakeDataLogic"/>
<entry key="17" value-ref="ChargingConfigDataLogic"/>
<entry key="19" value-ref="ChargingCompletedDataLogic"/>
<entry key="15" value-ref="BmsChargingHandshakeDataLogic"/>
<entry key="17" value-ref="BmsChargingConfigDataLogic"/>
<entry key="19" value-ref="BmsChargingCompletedDataLogic"/>
<entry key="1B" value-ref="BmsErrorDataLogic"/>
<entry key="1D" value-ref="BmsInterruptDataLogic"/>
<entry key="21" value-ref="BmsChargerInterruptDataLogic"/>