mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 03:25:12 +08:00
update 电单车协议
This commit is contained in:
@@ -5,11 +5,15 @@ import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.ebike.EBikeDataProtocol;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.common.enums.ebike.PortStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.OrderStatusEnum;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.common.util.YKCUtils;
|
||||
import com.jsowell.netty.factory.EBikeOperateFactory;
|
||||
import com.jsowell.pile.domain.OrderBasicInfo;
|
||||
import com.jsowell.pile.domain.ebike.EBikeCommandEnum;
|
||||
import com.jsowell.pile.domain.ebike.deviceupload.EBikeMessageCmd06;
|
||||
import com.jsowell.pile.service.OrderBasicInfoService;
|
||||
import com.jsowell.pile.service.PileBasicInfoService;
|
||||
import com.jsowell.pile.service.PileConnectorInfoService;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
@@ -17,6 +21,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 端口充电时功率心跳包
|
||||
*/
|
||||
@@ -31,6 +38,9 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
|
||||
@Autowired
|
||||
private PileBasicInfoService pileBasicInfoService;
|
||||
|
||||
@Autowired
|
||||
private OrderBasicInfoService orderBasicInfoService;
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
EBikeOperateFactory.register(type, this);
|
||||
@@ -52,8 +62,6 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
|
||||
log.info("端口充电时功率心跳包:{}", JSON.toJSONString(message));
|
||||
// 更新枪口状态
|
||||
updatePileStatus(message);
|
||||
// 保存实时监控数据
|
||||
saveRealTimeMonitorData(message);
|
||||
return getResult(dataProtocol, Constants.zeroByteArray);
|
||||
}
|
||||
|
||||
@@ -67,13 +75,22 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
|
||||
realTimeMonitorData.setPileSn(message.getPhysicalId() + "");
|
||||
realTimeMonitorData.setConnectorCode(message.getConnectorCode());
|
||||
realTimeMonitorData.setPileConnectorCode(realTimeMonitorData.getPileSn() + realTimeMonitorData.getConnectorCode());
|
||||
realTimeMonitorData.setTransactionCode(message.getOrderCode());
|
||||
realTimeMonitorData.setTransactionCode(message.getTransactionCode());
|
||||
realTimeMonitorData.setConnectorStatus(message.getPortStatus());
|
||||
realTimeMonitorData.setOutputVoltage(message.getVoltage());
|
||||
realTimeMonitorData.setOutputCurrent(message.getCurrent());
|
||||
// realTimeMonitorData.setOutputPower("");
|
||||
realTimeMonitorData.setDateTime(DateUtils.getDateTime());
|
||||
|
||||
String portStatus = PortStatusEnum.eBikeStatusTransformDBStatus(message.getPortStatus());
|
||||
realTimeMonitorData.setConnectorStatus(portStatus);
|
||||
realTimeMonitorData.setOutputPower(message.getRealTimePower());
|
||||
realTimeMonitorData.setBatteryMaxTemperature(message.getAmbientTemperature());
|
||||
realTimeMonitorData.setSumChargingTime(message.getChargingTime());
|
||||
realTimeMonitorData.setTimeRemaining(message.getTimePeriodElectricity());
|
||||
realTimeMonitorData.setChargingDegree(message.getMaxPower());
|
||||
realTimeMonitorData.setLossDegree(message.getMinPower());
|
||||
realTimeMonitorData.setChargingAmount(message.getTotalUsedElectricity());
|
||||
realTimeMonitorData.setHomingFlag(message.getStartMode());
|
||||
realTimeMonitorData.setGunLineTemperature(message.getPortTemperature());
|
||||
pileBasicInfoService.saveRealTimeMonitorData2Redis(realTimeMonitorData);
|
||||
}
|
||||
|
||||
@@ -85,6 +102,46 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
|
||||
String pileSn = message.getPhysicalId() + "";
|
||||
String connectorCode = message.getConnectorCode();
|
||||
String portStatus = message.getPortStatus();
|
||||
String transactionCode = message.getTransactionCode();
|
||||
|
||||
if (StringUtils.equals(portStatus, String.valueOf(PortStatusEnum.CHARGING.getValue()))) {
|
||||
// 默认保存到redis
|
||||
boolean saveRedisFlag = true;
|
||||
|
||||
// 查询数据库中该订单当前信息
|
||||
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByTransactionCode(transactionCode);
|
||||
if (Objects.nonNull(orderInfo)) {
|
||||
if (StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())
|
||||
|| StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.STAY_SETTLEMENT.getValue())) {
|
||||
// 在订单状态为 订单完成或待结算,不保存
|
||||
saveRedisFlag = false;
|
||||
}
|
||||
|
||||
boolean updateFlag = false;
|
||||
if (StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.NOT_START.getValue())
|
||||
|| StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.ABNORMAL.getValue())
|
||||
|| StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.STAY_SETTLEMENT.getValue())) {
|
||||
updateFlag = true;
|
||||
// 如果是未启动状态或者异常状态, 修改这个订单状态为充电中 2023年7月7日新增 如果是待结算状态,也改为充电中
|
||||
orderInfo.setOrderStatus(OrderStatusEnum.IN_THE_CHARGING.getValue());
|
||||
}
|
||||
|
||||
// 如果原来没有开始充电时间就保存当前时间为开始充电时间
|
||||
if (orderInfo.getChargeStartTime() == null) {
|
||||
updateFlag = true;
|
||||
orderInfo.setChargeStartTime(new Date());
|
||||
}
|
||||
|
||||
if (updateFlag) {
|
||||
orderBasicInfoService.updateOrderBasicInfo(orderInfo);
|
||||
}
|
||||
}
|
||||
|
||||
// 充电时保存实时数据到redis
|
||||
if (saveRedisFlag) {
|
||||
saveRealTimeMonitorData(message);
|
||||
}
|
||||
}
|
||||
pileConnectorInfoService.updateConnectorStatus(pileSn + connectorCode, PortStatusEnum.eBikeStatusTransformDBStatus(portStatus));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user