update 预约充电

This commit is contained in:
Guoqs
2024-05-29 14:16:27 +08:00
parent b9df7b230b
commit 7d61ba4f68
3 changed files with 425 additions and 416 deletions

View File

@@ -40,9 +40,6 @@ public class CommonController {
private static final String FILE_DELIMETER = ","; private static final String FILE_DELIMETER = ",";
@Value("${remoteUpdate.path}")
private String FIRMWARE_FILEPATH;
/** /**
* 通用下载请求 * 通用下载请求
* *

View File

@@ -3054,7 +3054,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
} else if (StartModeEnum.VIN_CODE.getValue().equals(dto.getStartMode())) { } else if (StartModeEnum.VIN_CODE.getValue().equals(dto.getStartMode())) {
sendStartCharging = false; sendStartCharging = false;
} else if (StartTypeEnum.RESERVED.getValue().equals(orderInfo.getStartType())) { } else if (StartTypeEnum.RESERVED.getValue().equals(orderInfo.getStartType())) {
sendStartCharging = false; // sendStartCharging = false;
} else if (OrderStatusEnum.STAY_RETROACTIVE_AMOUNT.getValue().equals(orderInfo.getOrderStatus())) { } else if (OrderStatusEnum.STAY_RETROACTIVE_AMOUNT.getValue().equals(orderInfo.getOrderStatus())) {
sendStartCharging = false; sendStartCharging = false;
} }
@@ -3107,6 +3107,28 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
logger.info("订单:{}支付成功, 发送启动指令", dto.getOrderCode()); logger.info("订单:{}支付成功, 发送启动指令", dto.getOrderCode());
} }
/**
* 异步发送预约充电指令
*/
if (StringUtils.equals(orderInfo.getStartType(), StartTypeEnum.RESERVED.getValue())) {
ReservedChargingCommand command = ReservedChargingCommand.builder()
.transactionCode(orderInfo.getTransactionCode())
.pileSn(orderInfo.getPileSn())
.connectorCode(orderInfo.getPileConnectorCode())
.operation(BytesUtil.bcd2Str(new byte[]{0x01}))
.reservedStartTime(orderInfo.getReservedStartTime())
.reservedStartTime(orderInfo.getReservedEndTime())
.amount(new BigDecimal(Constants.FIVE_HUNDRED))
.build();
CompletableFuture.runAsync(() -> {
try {
pileRemoteService.reservedCharging(command);
} catch (Exception e) {
logger.error("异步发送预约充电指令, orderCode:{}", orderInfo.getOrderCode(), e);
}
});
}
if (OrderStatusEnum.STAY_RETROACTIVE_AMOUNT.getValue().equals(orderInfo.getOrderStatus())) { if (OrderStatusEnum.STAY_RETROACTIVE_AMOUNT.getValue().equals(orderInfo.getOrderStatus())) {
// 如果订单状态是待补缴,表示已经停止充电了,需要补缴费用,补缴完成订单状态改为订单完成,设置结算时间 // 如果订单状态是待补缴,表示已经停止充电了,需要补缴费用,补缴完成订单状态改为订单完成,设置结算时间
orderInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue()); orderInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
@@ -3591,28 +3613,6 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
.orderDetail(orderDetail) .orderDetail(orderDetail)
.build(); .build();
pileTransactionService.doCreateOrder(createOrderTransactionDTO); pileTransactionService.doCreateOrder(createOrderTransactionDTO);
/**
* 异步发送预约充电指令
*/
if (StringUtils.equals(dto.getStartType(), StartTypeEnum.RESERVED.getValue())) {
ReservedChargingCommand command = ReservedChargingCommand.builder()
.transactionCode(orderBasicInfo.getTransactionCode())
.pileSn(orderBasicInfo.getPileSn())
.connectorCode(orderBasicInfo.getPileConnectorCode())
.operation(BytesUtil.bcd2Str(new byte[]{0x01}))
.reservedStartTime(DateUtils.parseDate(dto.getReservedStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS))
.reservedStartTime(DateUtils.parseDate(dto.getReservedEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS))
.amount(new BigDecimal(Constants.FIVE_HUNDRED))
.build();
CompletableFuture.runAsync(() -> {
try {
pileRemoteService.reservedCharging(command);
} catch (Exception e) {
logger.error("异步发送预约充电指令, orderCode:{}", orderBasicInfo.getOrderCode(), e);
}
});
}
return orderBasicInfo; return orderBasicInfo;
} }

View File

@@ -61,6 +61,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 发送push消息 * 发送push消息
*
* @param msg * @param msg
* @param pileSn * @param pileSn
* @param frameTypeCode * @param frameTypeCode
@@ -100,7 +101,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
// 返回报文 // 返回报文
byte[] writeMsg = Bytes.concat(head, length, temp, crc); byte[] writeMsg = Bytes.concat(head, length, temp, crc);
// 返回完整的报文 string类型 // 返回完整的报文 string类型
String wholeMsg= BytesUtil.binary(writeMsg, 16); String wholeMsg = BytesUtil.binary(writeMsg, 16);
// log.info("[" + channel.remoteAddress() + "] 主动发送push请求信息:{}", wholeMsg); // log.info("[" + channel.remoteAddress() + "] 主动发送push请求信息:{}", wholeMsg);
ByteBuf byteBuf = channel.alloc().buffer().writeBytes(writeMsg); ByteBuf byteBuf = channel.alloc().buffer().writeBytes(writeMsg);
ChannelFuture channelFuture = channel.writeAndFlush(byteBuf); ChannelFuture channelFuture = channel.writeAndFlush(byteBuf);
@@ -134,7 +135,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
String pileSn = command.getPileSn(); String pileSn = command.getPileSn();
String connectorCode = command.getConnectorCode(); String connectorCode = command.getConnectorCode();
String transactionCode = command.getTransactionCode(); String transactionCode = command.getTransactionCode();
if (StringUtils.isEmpty(pileSn) || StringUtils.isEmpty(connectorCode) ) { if (StringUtils.isEmpty(pileSn) || StringUtils.isEmpty(connectorCode)) {
log.error("远程启动充电, 充电桩编号和枪口号不能为空"); log.error("远程启动充电, 充电桩编号和枪口号不能为空");
return; return;
} }
@@ -180,6 +181,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 发送停止ch * 发送停止ch
*
* @param command * @param command
*/ */
@Override @Override
@@ -254,6 +256,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 0x56 对时设置 * 0x56 对时设置
*
* @param command * @param command
*/ */
@Override @Override
@@ -275,6 +278,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 向充电桩发送计费模板 * 向充电桩发送计费模板
*
* @param command * @param command
*/ */
@Override @Override
@@ -387,6 +391,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 平台査询工作参数 * 平台査询工作参数
*
* @param command * @param command
*/ */
@Override @Override
@@ -413,6 +418,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 远程账户余额更新 * 远程账户余额更新
*
* @param command * @param command
*/ */
@Override @Override
@@ -438,6 +444,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 遥控地锁 * 遥控地锁
*
* @param command * @param command
*/ */
@Override @Override
@@ -470,6 +477,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
/** /**
* 发送预约充电命令 * 发送预约充电命令
*
* @param command * @param command
*/ */
@Override @Override
@@ -505,6 +513,10 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
// 拼装msg信息 // 拼装msg信息
byte[] msg = Bytes.concat(transactionCodeArr, pileSnByteArr, connectorCodeByteArr, operateByteArr, byte[] msg = Bytes.concat(transactionCodeArr, pileSnByteArr, connectorCodeByteArr, operateByteArr,
reservedStartTimeByteArr, reservedEndTimeByteArr, amountByteArr); reservedStartTimeByteArr, reservedEndTimeByteArr, amountByteArr);
this.push(msg, pileSn, YKCFrameTypeCode.RESERVE_CHARGING_CODE); this.push(msg, pileSn, YKCFrameTypeCode.RESERVE_CHARGING_CODE);
log.info("=====平台下发指令=====: 预约充电指令, 交易流水号:{}, 桩编号:{}, 枪口号:{}, 操作:{}, 开始时间:{}, 结束时间:{}, 启动金额:{}",
transactionCode, pileSn, connectorCode, operation, DateUtils.formatDateTime(reservedStartTime), DateUtils.formatDateTime(reservedEndTime), amount);
} }
} }