update 电单车

This commit is contained in:
Guoqs
2024-09-14 13:56:58 +08:00
parent bb18640175
commit 95a49969b4
9 changed files with 68 additions and 63 deletions

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.ebike.EBikeDataProtocol;
import com.jsowell.common.enums.ebike.PortStatusEnum;
import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.YKCUtils;
import com.jsowell.netty.factory.EBikeOperateFactory;
import com.jsowell.pile.domain.ebike.AbsEBikeMessage;
@@ -75,23 +74,8 @@ public class HeartbeatHandler extends AbstractEBikeHandler {
String pileConnectorCode = pileSn + connectorCode;
// 电单车协议状态
String eBikeStatus = portStatus.get(i);
pileConnectorInfoService.updateConnectorStatus(pileConnectorCode, eBikeStatusTransformDBStatus(eBikeStatus));
pileConnectorInfoService.updateConnectorStatus(pileConnectorCode, PortStatusEnum.eBikeStatusTransformDBStatus(eBikeStatus));
}
}
/**
* 电单车协议状态转换为数据库状态
* @param eBikeStatus
* @return
*/
private String eBikeStatusTransformDBStatus(String eBikeStatus) {
String dbStatus = Constants.ZERO; // 默认0-离网
if (StringUtils.isNotBlank(eBikeStatus)) {
PortStatusEnum enumByValue = PortStatusEnum.getEnumByValue(Integer.parseInt(eBikeStatus));
if (enumByValue != null) {
dbStatus = enumByValue.getDbStatus();
}
}
return dbStatus;
}
}

View File

@@ -6,13 +6,11 @@ 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.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.ebike.AbsEBikeMessage;
import com.jsowell.pile.domain.ebike.EBikeCommandEnum;
import com.jsowell.pile.domain.ebike.deviceupload.EBikeMessageCmd06;
import com.jsowell.pile.domain.ebike.deviceupload.EBikeMessageCmd21;
import com.jsowell.pile.service.PileBasicInfoService;
import com.jsowell.pile.service.PileConnectorInfoService;
import io.netty.channel.ChannelHandlerContext;
@@ -20,8 +18,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 端口充电时功率心跳包
*/
@@ -58,8 +54,10 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
EBikeMessageCmd06.PowerHeartbeat powerHeartbeat = message.getPowerHeartbeat();
log.info("端口充电时功率心跳包:{}", JSON.toJSONString(message));
// updatePileStatus(message);
// 更新枪口状态
updatePileStatus(message);
// 保存实时监控数据
saveRealTimeMonitorData(message);
return getResult(dataProtocol, Constants.zeroByteArray);
@@ -80,7 +78,7 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
realTimeMonitorData.setConnectorStatus(powerHeartbeat.getPortStatus());
realTimeMonitorData.setOutputVoltage(powerHeartbeat.getVoltage());
realTimeMonitorData.setOutputCurrent(powerHeartbeat.getCurrent());
realTimeMonitorData.setOutputPower("");
// realTimeMonitorData.setOutputPower("");
realTimeMonitorData.setDateTime(DateUtils.getDateTime());
pileBasicInfoService.saveRealTimeMonitorData2Redis(realTimeMonitorData);
@@ -90,34 +88,12 @@ public class PowerHeartbeatHandler extends AbstractEBikeHandler {
* 更新充电桩状态
* @param message
*/
private void updatePileStatus(EBikeMessageCmd21 message) {
private void updatePileStatus(EBikeMessageCmd06 message) {
String pileSn = message.getPhysicalId() + "";
EBikeMessageCmd21.DeviceHeartbeat deviceHeartbeat = message.getDeviceHeartbeat();
int portNumber = deviceHeartbeat.getPortNumber();
List<String> portStatus = deviceHeartbeat.getPortStatus();
for (int i = 0; i < portNumber; i++) {
// 组装pile_connector_info表数据
String connectorCode = String.format("%1$02d", i + 1);
String pileConnectorCode = pileSn + connectorCode;
// 电单车协议状态
String eBikeStatus = portStatus.get(i);
pileConnectorInfoService.updateConnectorStatus(pileConnectorCode, eBikeStatusTransformDBStatus(eBikeStatus));
}
EBikeMessageCmd06.PowerHeartbeat powerHeartbeat = message.getPowerHeartbeat();
String connectorCode = powerHeartbeat.getPort();
String portStatus = powerHeartbeat.getPortStatus();
pileConnectorInfoService.updateConnectorStatus(pileSn + connectorCode, PortStatusEnum.eBikeStatusTransformDBStatus(portStatus));
}
/**
* 电单车协议状态转换为数据库状态
* @param eBikeStatus
* @return
*/
private String eBikeStatusTransformDBStatus(String eBikeStatus) {
String dbStatus = Constants.ZERO; // 默认0-离网
if (StringUtils.isNotBlank(eBikeStatus)) {
PortStatusEnum enumByValue = PortStatusEnum.getEnumByValue(Integer.parseInt(eBikeStatus));
if (enumByValue != null) {
dbStatus = enumByValue.getDbStatus();
}
}
return dbStatus;
}
}