mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
优化批量获取桩状态
This commit is contained in:
@@ -38,6 +38,8 @@ public interface PileConnectorInfoService {
|
||||
|
||||
List<PileConnectorInfo> selectPileConnectorInfoList(String pileSn);
|
||||
|
||||
Map<String, List<PileConnectorInfo>> selectPileConnectorInfoListByPileSnList(List<String> pileSnList);
|
||||
|
||||
int deletePileConnectorInfoByPileSnList(List<String> pileSnList);
|
||||
|
||||
int batchInsertConnectorInfo(List<PileConnectorInfo> pileConnectorInfoList);
|
||||
@@ -85,6 +87,8 @@ public interface PileConnectorInfoService {
|
||||
*/
|
||||
Map<String, String> getPileStatus(List<String> pileSnList);
|
||||
|
||||
Map<String, String> getPileStatusV2(List<String> pileSnList);
|
||||
|
||||
/**
|
||||
* 通过枪口编码查询枪口信息
|
||||
*
|
||||
|
||||
@@ -143,6 +143,29 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过充电桩号列表查询枪口信息列表 加缓存
|
||||
*
|
||||
* @param pileSnList 桩编号列表
|
||||
* @return 枪口信息列表
|
||||
*/
|
||||
@Override
|
||||
public Map<String, List<PileConnectorInfo>> selectPileConnectorInfoListByPileSnList(List<String> pileSnList) {
|
||||
Map<String, List<PileConnectorInfo>> resultMap = Maps.newHashMap();
|
||||
if (CollectionUtils.isEmpty(pileSnList)) {
|
||||
return resultMap;
|
||||
}
|
||||
List<String> redisKeys = pileSnList.stream()
|
||||
.map(pileSn -> CacheConstants.SELECT_PILE_CONNECTOR_INFO_LIST + pileSn)
|
||||
.collect(Collectors.toList());
|
||||
List<PileConnectorInfo> redisResult = redisCache.multiGet(redisKeys);
|
||||
// 分组
|
||||
Map<String, List<PileConnectorInfo>> collect = redisResult.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.groupingBy(PileConnectorInfo::getPileSn));
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 公共方法 根据桩编号或者枪口号删除redis缓存
|
||||
*/
|
||||
@@ -586,6 +609,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
|
||||
* @param pileSn 充电桩编号
|
||||
* @param status 充电桩枪口状态
|
||||
*/
|
||||
@Override
|
||||
public int updateConnectorStatusByPileSn(String pileSn, String status) {
|
||||
if (StringUtils.isBlank(pileSn) || StringUtils.isBlank(status)) {
|
||||
return 0;
|
||||
@@ -699,8 +723,44 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
|
||||
* @param pileSnList 桩编号列表
|
||||
* @return key:桩编号; value:状态
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> getPileStatusV2(List<String> pileSnList) {
|
||||
return null;
|
||||
Map<String, String> resultMap = Maps.newHashMap();
|
||||
|
||||
Map<String, List<PileConnectorInfo>> pileConnectorMap = selectPileConnectorInfoListByPileSnList(pileSnList);
|
||||
for (String pileSn : pileSnList) {
|
||||
String pileStatus = "";
|
||||
// 标识桩故障或者离线
|
||||
boolean flag = false;
|
||||
// 判断故障状态
|
||||
List<PileConnectorInfo> connectorList = pileConnectorMap.get(pileSn); // 获取枪口信息
|
||||
List<String> connectorStatusList = connectorList.stream().map(PileConnectorInfo::getStatus).collect(Collectors.toList());
|
||||
// 桩下面的枪口,任意一个故障,桩的状态就是故障
|
||||
if (connectorStatusList.contains(PileConnectorDataBaseStatusEnum.FAULT.getValue())) {
|
||||
pileStatus = PileStatusEnum.FAULT.getValue();
|
||||
flag = true;
|
||||
}
|
||||
// 判断离线状态 显示优先级 离线>故障
|
||||
// if (checkPileOffLine(pileSn)) {
|
||||
// pileStatus = PileStatusEnum.OFF_LINE.getValue();
|
||||
// flag = true;
|
||||
// }
|
||||
// 2023年1月10日11点32分 改成如果枪口离线,那么充电桩就是离线
|
||||
if (connectorStatusList.contains(PileConnectorDataBaseStatusEnum.OFF_NETWORK.getValue())) {
|
||||
pileStatus = PileStatusEnum.OFF_LINE.getValue();
|
||||
flag = true;
|
||||
// 异步将此桩正在进行充电的订单状态改为 异常
|
||||
CompletableFuture.runAsync(() -> {
|
||||
orderBasicInfoService.updateOrderStatusAsAbnormal(pileSn);
|
||||
}, executor);
|
||||
}
|
||||
// 没有故障或者离线,就是在线状态
|
||||
if (!flag) {
|
||||
pileStatus = PileStatusEnum.ON_LINE.getValue();
|
||||
}
|
||||
resultMap.put(pileSn, pileStatus);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user