mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 对接联联平台
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package com.jsowell.pile.service;
|
||||
|
||||
import com.jsowell.pile.thirdparty.ConnectorInfo;
|
||||
import com.jsowell.pile.thirdparty.EquipmentInfo;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.pile.domain.PileBasicInfo;
|
||||
import com.jsowell.pile.domain.PileStationInfo;
|
||||
import com.jsowell.pile.dto.IndexQueryDTO;
|
||||
import com.jsowell.pile.dto.QueryPileDTO;
|
||||
import com.jsowell.pile.dto.ReplaceMerchantStationDTO;
|
||||
@@ -190,4 +193,8 @@ public interface PileBasicInfoService {
|
||||
* 获取最新建一条桩的信息
|
||||
*/
|
||||
PileBasicInfo getMaxNumPileInfo();
|
||||
|
||||
List<EquipmentInfo> getPileList(PileStationInfo pileStationInfo);
|
||||
|
||||
List<ConnectorInfo> getConnectorList(PileBasicInfo pileBasicInfo);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@ import java.util.List;
|
||||
* @date 2023-06-06
|
||||
*/
|
||||
public interface ThirdPartyStationRelationService {
|
||||
// 保存到数据库
|
||||
int insertInfo2DataBase(String thirdPartyType, String stationId);
|
||||
/**
|
||||
* 查询站点、第三方推送平台配置对应
|
||||
*
|
||||
|
||||
@@ -4,21 +4,22 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.pile.thirdparty.ConnectorInfo;
|
||||
import com.jsowell.pile.thirdparty.EquipmentInfo;
|
||||
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
|
||||
import com.jsowell.common.core.domain.ykc.GroundLockData;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.DelFlagEnum;
|
||||
import com.jsowell.common.enums.lianlian.LianLianPileStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.PileConnectorStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.PileStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.*;
|
||||
import com.jsowell.pile.domain.PileBasicInfo;
|
||||
import com.jsowell.pile.domain.PileConnectorInfo;
|
||||
import com.jsowell.pile.domain.PileModelInfo;
|
||||
import com.jsowell.pile.domain.PileSimInfo;
|
||||
import com.jsowell.pile.domain.*;
|
||||
import com.jsowell.pile.dto.IndexQueryDTO;
|
||||
import com.jsowell.pile.dto.QueryPileDTO;
|
||||
import com.jsowell.pile.dto.ReplaceMerchantStationDTO;
|
||||
@@ -927,4 +928,97 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
|
||||
public PileBasicInfo getMaxNumPileInfo() {
|
||||
return pileBasicInfoMapper.getMaxNumPileInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取桩列表信息
|
||||
*
|
||||
* @param pileStationInfo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<EquipmentInfo> getPileList(PileStationInfo pileStationInfo) {
|
||||
List<EquipmentInfo> resultList = new ArrayList<>();
|
||||
// 通过站点id查询桩基本信息
|
||||
List<PileBasicInfo> list = this.getPileListByStationId(String.valueOf(pileStationInfo.getId()));
|
||||
// MerchantInfoVO merchantInfo = pileMerchantInfoService.getMerchantInfo(String.valueOf(pileStationInfo.getMerchantId()));
|
||||
// 封装成联联平台对象
|
||||
for (PileBasicInfo pileBasicInfo : list) {
|
||||
EquipmentInfo equipmentInfo = new EquipmentInfo();
|
||||
String pileSn = pileBasicInfo.getSn();
|
||||
|
||||
equipmentInfo.setEquipmentID(pileSn);
|
||||
equipmentInfo.setManufacturerID(Constants.OPERATORID_LIANLIAN);
|
||||
equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime()));
|
||||
|
||||
PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);
|
||||
equipmentInfo.setEquipmentType(Integer.valueOf(modelInfo.getSpeedType()));
|
||||
|
||||
// Map<String, String> pileStatus = pileConnectorInfoService.getPileStatus(Lists.newArrayList(pileBasicInfo.getSn()));
|
||||
Map<String, String> pileStatusMap = pileConnectorInfoService.getPileStatus(Lists.newArrayList(pileSn));
|
||||
String pileStatus = pileStatusMap.get(pileSn);
|
||||
if (StringUtils.equals(PileStatusEnum.ON_LINE.getValue(), pileStatus)) {
|
||||
// 1-在线
|
||||
pileStatus = LianLianPileStatusEnum.NORMAL.getCode();
|
||||
} else if (StringUtils.equals(PileStatusEnum.OFF_LINE.getValue(), pileStatus)) {
|
||||
// 2-离线
|
||||
pileStatus = LianLianPileStatusEnum.CLOSE_OFFLINE.getCode();
|
||||
} else if (StringUtils.equals(PileStatusEnum.FAULT.getValue(), pileStatus)) {
|
||||
// 3-故障
|
||||
pileStatus = LianLianPileStatusEnum.UNDER_MAINTENANCE.getCode();
|
||||
}
|
||||
equipmentInfo.setEquipmentStatus(Integer.valueOf(pileStatus));
|
||||
equipmentInfo.setEquipmentPower(new BigDecimal(modelInfo.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
|
||||
equipmentInfo.setNewNationalStandard(1);
|
||||
equipmentInfo.setVinFlag(1);
|
||||
|
||||
List<ConnectorInfo> connectorList = getConnectorList(pileBasicInfo);
|
||||
equipmentInfo.setConnectorInfos(connectorList);
|
||||
|
||||
resultList.add(equipmentInfo);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取枪口列表
|
||||
*
|
||||
* @param pileBasicInfo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ConnectorInfo> getConnectorList(PileBasicInfo pileBasicInfo) {
|
||||
List<ConnectorInfo> resultList = new ArrayList<>();
|
||||
|
||||
List<PileConnectorInfo> list = pileConnectorInfoService.selectPileConnectorInfoList(pileBasicInfo.getSn());
|
||||
for (PileConnectorInfo pileConnectorInfo : list) {
|
||||
ConnectorInfo connectorInfo = new ConnectorInfo();
|
||||
|
||||
connectorInfo.setConnectorID(pileConnectorInfo.getPileConnectorCode());
|
||||
String pileSn = pileConnectorInfo.getPileSn();
|
||||
PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);
|
||||
int connectorType = StringUtils.equals("1", modelInfo.getSpeedType()) ? 4 : 3;
|
||||
|
||||
connectorInfo.setConnectorType(connectorType);
|
||||
// 车位号
|
||||
if (StringUtils.isNotBlank(pileConnectorInfo.getParkNo())) {
|
||||
connectorInfo.setParkNo(pileConnectorInfo.getParkNo());
|
||||
}
|
||||
connectorInfo.setVoltageUpperLimits(Integer.valueOf(modelInfo.getRatedVoltage()));
|
||||
connectorInfo.setVoltageLowerLimits(Integer.valueOf(modelInfo.getRatedVoltage()));
|
||||
|
||||
connectorInfo.setCurrent(Integer.valueOf(modelInfo.getRatedCurrent()));
|
||||
if (!StringUtils.equals(modelInfo.getConnectorNum(), "1")) {
|
||||
// 如果不是单枪,则枪口功率需要除以枪口数量
|
||||
String ratedPowerStr = modelInfo.getRatedPower();
|
||||
BigDecimal ratedPower = new BigDecimal(ratedPowerStr);
|
||||
connectorInfo.setPower(ratedPower.divide(new BigDecimal(modelInfo.getConnectorNum()), 1, BigDecimal.ROUND_HALF_UP));
|
||||
}else {
|
||||
connectorInfo.setPower(new BigDecimal(modelInfo.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
|
||||
}
|
||||
|
||||
resultList.add(connectorInfo);
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ import com.jsowell.pile.mapper.PileBasicInfoMapper;
|
||||
import com.jsowell.pile.mapper.PileConnectorInfoMapper;
|
||||
import com.jsowell.pile.service.*;
|
||||
import com.jsowell.pile.vo.base.ConnectorInfoVO;
|
||||
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
|
||||
import com.jsowell.pile.vo.web.PileConnectorInfoVO;
|
||||
import com.jsowell.pile.vo.web.PileDetailVO;
|
||||
import com.jsowell.pile.vo.web.PileModelInfoVO;
|
||||
@@ -145,8 +144,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(pileConnectorCode)) {
|
||||
// 删除充电桩枪口状态缓存
|
||||
keys.add(CacheConstants.PILE_CONNECTOR_STATUS_KEY + pileConnectorCode);
|
||||
keys.add(CacheConstants.PILE_CONNECTOR_STATUS_KEY + pileConnectorCode); // 删除充电桩枪口状态缓存
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
@@ -584,7 +582,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
|
||||
if (StringUtils.isBlank(pileConnectorCode) || StringUtils.isBlank(status)) {
|
||||
return num;
|
||||
}
|
||||
String redisKey = CacheConstants.PILE_CONNECTOR_STATUS_KEY + pileConnectorCode;
|
||||
String redisKey = CacheConstants.PILE_CONNECTOR_STATUS_KEY + pileConnectorCode; // 获取缓存
|
||||
String redisStatus = redisCache.getCacheObject(redisKey);
|
||||
// log.info("更新枪口状态-枪口编号:{}, redisKey:{}, 缓存状态:{}, 传来的状态:{}, 状态描述:{}", pileConnectorCode, redisKey,
|
||||
// redisStatus, status, PileConnectorDataBaseStatusEnum.getStatusDescription(status));
|
||||
@@ -706,10 +704,10 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
|
||||
|
||||
if (CollectionUtils.isNotEmpty(connectorList)) {
|
||||
// 批量查询redis中的枪口状态
|
||||
List<String> redisKeyList = connectorList.stream()
|
||||
.map(x -> CacheConstants.PILE_CONNECTOR_STATUS_KEY + x.getPileConnectorCode())
|
||||
.collect(Collectors.toList());
|
||||
List<String> statusList = redisCache.multiGet(redisKeyList);
|
||||
// List<String> redisKeyList = connectorList.stream()
|
||||
// .map(x -> CacheConstants.PILE_CONNECTOR_STATUS_KEY + x.getPileConnectorCode())
|
||||
// .collect(Collectors.toList());
|
||||
// List<String> statusList = redisCache.multiGet(redisKeyList);
|
||||
|
||||
for (ConnectorInfoVO connectorVO : connectorList) {
|
||||
String redisKey = CacheConstants.PILE_CONNECTOR_STATUS_KEY + connectorVO.getPileConnectorCode();
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.jsowell.pile.service.impl;
|
||||
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
||||
import com.jsowell.common.util.SecurityUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.pile.domain.ThirdPartyStationRelation;
|
||||
import com.jsowell.pile.mapper.ThirdPartyStationRelationMapper;
|
||||
import com.jsowell.pile.service.ThirdPartyStationRelationService;
|
||||
@@ -21,6 +24,25 @@ public class ThirdPartyStationRelationServiceImpl implements ThirdPartyStationRe
|
||||
@Autowired
|
||||
private ThirdPartyStationRelationMapper thirdPartyStationRelationMapper;
|
||||
|
||||
@Override
|
||||
public int insertInfo2DataBase(String thirdPartyType, String stationId) {
|
||||
if (StringUtils.isBlank(thirdPartyType) || StringUtils.isBlank(stationId)) {
|
||||
return 0;
|
||||
}
|
||||
ThirdPartyStationRelation relation = new ThirdPartyStationRelation();
|
||||
relation.setStationId(Long.parseLong(stationId));
|
||||
relation.setThirdPartyType(thirdPartyType);
|
||||
if (StringUtils.equals(thirdPartyType, ThirdPlatformTypeEnum.HUA_WEI.getCode())) {
|
||||
relation.setStartMode(Constants.ONE);
|
||||
}
|
||||
ThirdPartyStationRelationVO vo = this.selectRelationInfo(relation);
|
||||
if (vo != null) {
|
||||
return 0;
|
||||
}
|
||||
// 新增数据库
|
||||
return this.insertThirdPartyStationRelation(relation);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询站点、第三方推送平台配置对应
|
||||
*
|
||||
|
||||
72
jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java
vendored
Normal file
72
jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
package com.jsowell.pile.thirdparty;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 充电设备接口信息
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class ConnectorInfo {
|
||||
/**
|
||||
* 充电设备接口编码 Y
|
||||
* 充电设备接口编码,同一对接平台内唯一
|
||||
*/
|
||||
@JSONField(name = "ConnectorID")
|
||||
private String connectorID;
|
||||
|
||||
/**
|
||||
* 充电设备接口名称 N
|
||||
*/
|
||||
// private String ConnectorName;
|
||||
|
||||
/**
|
||||
* 充电设备接口类型 Y
|
||||
* 1:家用插座(模式2)
|
||||
* 2:交流接口插座(模式3,连接方式B )
|
||||
* 3:交流接口插头(带枪线,模式3,连接方式C)
|
||||
* 4:直流接口枪头(带枪线,模式4)
|
||||
*/
|
||||
@JSONField(name = "ConnectorType")
|
||||
private Integer connectorType;
|
||||
|
||||
/**
|
||||
* 额定电压上限(单位:V) Y
|
||||
*/
|
||||
@JSONField(name = "VoltageUpperLimits")
|
||||
private Integer voltageUpperLimits;
|
||||
|
||||
/**
|
||||
* 额定电压下限(单位:V) Y
|
||||
*/
|
||||
@JSONField(name = "VoltageLowerLimits")
|
||||
private Integer voltageLowerLimits;
|
||||
|
||||
/**
|
||||
* 额定电流(单位:A) Y
|
||||
*/
|
||||
@JSONField(name = "Current")
|
||||
private Integer current;
|
||||
|
||||
/**
|
||||
* 额定功率(单位:kW) Y
|
||||
*/
|
||||
@JSONField(name = "Power")
|
||||
private BigDecimal power;
|
||||
|
||||
/**
|
||||
* 车位号 N
|
||||
* 停车场车位编号
|
||||
*/
|
||||
@JSONField(name = "ParkNo")
|
||||
private String parkNo;
|
||||
|
||||
}
|
||||
112
jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java
vendored
Normal file
112
jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
package com.jsowell.pile.thirdparty;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 充电设备信息
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class EquipmentInfo {
|
||||
/**
|
||||
* 设备编码 Y
|
||||
* 设备唯一编码,对同一对接平台,保证唯一
|
||||
*/
|
||||
@JSONField(name = "EquipmentID")
|
||||
private String equipmentID;
|
||||
|
||||
/**
|
||||
* 设备生产商组织机构代码 Y
|
||||
*/
|
||||
@JSONField(name = "ManufacturerID")
|
||||
private String manufacturerID;
|
||||
|
||||
/**
|
||||
* 设备型号 N
|
||||
* 由设备生厂商定义的设备型号
|
||||
*/
|
||||
// private String EquipmentModel;
|
||||
|
||||
/**
|
||||
* 设备名称 N
|
||||
*/
|
||||
// private String EquipmentName;
|
||||
|
||||
/**
|
||||
* 设备生产日期 N
|
||||
* YYYY-MM-DD
|
||||
*/
|
||||
// private String ProductionDate;
|
||||
|
||||
/**
|
||||
* 建设时间 Y
|
||||
* YYYY-MM-DD
|
||||
*/
|
||||
@JSONField(name = "ConstructionTime")
|
||||
private String constructionTime;
|
||||
|
||||
/**
|
||||
* 设备类型(1-直流设备;2-交流设备;3-交直流一体设备) Y
|
||||
*/
|
||||
@JSONField(name = "EquipmentType")
|
||||
private Integer equipmentType;
|
||||
|
||||
/**
|
||||
* 设备状态 Y
|
||||
* 0:未知
|
||||
* 1:建设中
|
||||
* 5:关闭下线
|
||||
* 6:维护中
|
||||
* 50:正常使用
|
||||
*/
|
||||
@JSONField(name = "EquipmentStatus")
|
||||
private Integer equipmentStatus;
|
||||
|
||||
/**
|
||||
* 额定功率(单位:kW) Y
|
||||
*/
|
||||
@JSONField(name = "EquipmentPower")
|
||||
private BigDecimal equipmentPower;
|
||||
|
||||
/**
|
||||
* 新国标(0-否;1-是) Y
|
||||
* 是否新国标
|
||||
*/
|
||||
@JSONField(name = "NewNationalStandard")
|
||||
private Integer newNationalStandard;
|
||||
|
||||
/**
|
||||
* 充电设备接口列表 Y
|
||||
* 该充电设备所有的充电设备接口的信息对象集合
|
||||
*/
|
||||
@JSONField(name = "ConnectorInfos")
|
||||
private List<ConnectorInfo> connectorInfos;
|
||||
|
||||
/**
|
||||
* 充电设备经度 N
|
||||
* GCJ-02坐标系
|
||||
*/
|
||||
// private BigDecimal EquipmentLng;
|
||||
|
||||
/**
|
||||
* 充电设备纬度 N
|
||||
* GCJ-02坐标系
|
||||
*/
|
||||
// private BigDecimal EquipmentLat;
|
||||
|
||||
/**
|
||||
* 是否支持VIN码识别(0-否;1-是) Y
|
||||
*/
|
||||
@JSONField(name = "VinFlag")
|
||||
private Integer vinFlag;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user