新增 浙江省平台 查询站点状态接口

This commit is contained in:
Lemon
2024-08-15 09:24:58 +08:00
parent 4abeb8ee68
commit 415f7c4b36
5 changed files with 120 additions and 2 deletions

View File

@@ -44,7 +44,20 @@ public class ConnectorStatusInfo {
private String LockStatus;
/**
* 平台
* 平台
*/
@JSONField(name = "OperatorID")
private String operatorId;
/**
* 设备归属方运营商id
*/
@JSONField(name = "EquipmentOwnerID")
private String equipmentOwnerId;
@JSONField(name = "StationID")
private String stationId;
@JSONField(name = "EquipmentID")
private String equipmentId;
}

View File

@@ -23,6 +23,29 @@ public class StationStatusInfo {
@JsonProperty(value = "StationID")
private String stationId;
/**
* 平台运营商id
*/
@JsonProperty(value = "OperatorID")
private String operatorId;
/**
* 设备归属方id
*/
@JsonProperty(value = "EquipmentOwnerID")
private String equipmentOwnerId;
/**
* 站点状态
* 0未知
* 1建设中
* 5关闭下线
* 6维护中
* 50正常使用
*/
@JsonProperty(value = "StationStatus")
private Integer stationStatus;
/**
* 充电设备接口状态列表 Y
* 所有充电设备接口的状态

File diff suppressed because one or more lines are too long

View File

@@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.enums.lianlian.StationPaymentEnum;
import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum;
import com.jsowell.common.enums.thirdparty.ThirdPartyOperatorIdEnum;
@@ -29,6 +30,7 @@ import com.jsowell.pile.thirdparty.CommonParamsDTO;
import com.jsowell.pile.thirdparty.EquipmentInfo;
import com.jsowell.pile.util.MerchantUtils;
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.base.MerchantInfoVO;
import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO;
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
@@ -38,6 +40,9 @@ import com.jsowell.pile.vo.web.PileConnectorInfoVO;
import com.jsowell.pile.vo.web.PileMerchantInfoVO;
import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.pile.vo.zdl.EquipBusinessPolicyVO;
import com.jsowell.thirdparty.lianlian.domain.ConnectorChargeStatusInfo;
import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo;
import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo;
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
import com.jsowell.thirdparty.lianlian.vo.QueryChargingStatusVO;
import com.jsowell.thirdparty.platform.domain.*;
@@ -58,6 +63,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
/**
* 浙江省平台
@@ -468,6 +474,66 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService {
return result;
}
/**
* 查询站点状态
* @param dto 查询站点信息dto
* @return
*/
@Override
public Map<String, String> queryStationStatus(QueryStationInfoDTO dto) {
List<String> stationIds = dto.getStationIds();
List<StationStatusInfo> StationStatusInfos = new ArrayList<>();
List<Object> connectorStatusInfos = new ArrayList<>();
ThirdPartySecretInfoVO thirdPartySecretInfoVO = thirdpartySecretInfoService.queryByThirdPlatformType(thirdPlatformType);
if (thirdPartySecretInfoVO == null) {
return null;
}
ConnectorStatusInfo connectorStatusInfo;
for (String stationId : stationIds) {
PileMerchantInfoVO pileMerchantInfoVO = pileMerchantInfoService.queryMerchantInfoByStationId(stationId);
StationStatusInfo stationStatusInfo = new StationStatusInfo();
stationStatusInfo.setStationId(stationId);
stationStatusInfo.setOperatorId(Constants.OPERATORID_JIANG_SU);
stationStatusInfo.setStationStatus(50);
String equipmentOwnerID = ThirdPartyPlatformUtils.extractEquipmentOwnerID(pileMerchantInfoVO.getOrganizationCode());
stationStatusInfo.setEquipmentOwnerId(equipmentOwnerID);
// 根据站点id查询
List<ConnectorInfoVO> list = pileConnectorInfoService.getConnectorListForLianLian(Long.parseLong(stationId));
for (ConnectorInfoVO connectorInfoVO : list) {
connectorStatusInfo = new ConnectorStatusInfo();
String connectorStatus = connectorInfoVO.getConnectorStatus();
connectorStatusInfo.setStationId(stationId);
connectorStatusInfo.setConnectorID(connectorInfoVO.getPileConnectorCode());
connectorStatusInfo.setEquipmentOwnerId(equipmentOwnerID);
connectorStatusInfo.setOperatorId(Constants.OPERATORID_JIANG_SU);
connectorStatusInfo.setEquipmentId(connectorInfoVO.getPileSn());
connectorStatusInfo.setStatus(Integer.parseInt(connectorStatus));
connectorStatusInfos.add(connectorStatusInfo);
}
stationStatusInfo.setConnectorStatusInfos(connectorStatusInfos);
StationStatusInfos.add(stationStatusInfo);
}
// 将 StationStatusInfos 分页
int pageNum = 1;
int pageSize = 10;
List<StationStatusInfo> collect = StationStatusInfos.stream()
.skip((pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
// int total = StationStatusInfos.size();
// int pages = PageUtil.totalPage(total, pageSize);
Map<String, Object> map = new LinkedHashMap<>();
// map.put("Total", total);
map.put("StationStatusInfos", collect);
Map<String, String> resultMap = ThirdPartyPlatformUtils.generateResultMap(map, thirdPartySecretInfoVO);
return resultMap;
}
/**
* 推送充电状态 notification_equip_charge_status
* 推送充电状态信息 supervise_notification_equip_charge_status

View File

@@ -2,6 +2,8 @@ package com.jsowell.thirdparty.platform.util;
import com.alibaba.fastjson2.JSON;
import com.google.common.collect.Maps;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
import org.springframework.stereotype.Component;
@@ -68,4 +70,18 @@ public class ThirdPartyPlatformUtils {
return null; // 没有找到匹配项
}
/**
* 从给定的组织机构代码中提取设备归属方ID
* @param organizationCode
* @return
*/
public static String extractEquipmentOwnerID(String organizationCode) {
if (StringUtils.isNotBlank(organizationCode) && organizationCode.length() == 18) {
String equipmentOwnerId = StringUtils.substring(organizationCode, organizationCode.length() - 10, organizationCode.length() - 1);
return equipmentOwnerId;
}else {
return Constants.OPERATORID_JIANG_SU;
}
}
}