mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
优化查询充电桩列表
This commit is contained in:
@@ -37,7 +37,6 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StopWatch;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@@ -223,22 +222,37 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService {
|
||||
@Override
|
||||
// @DataScope(deptAlias = "t2")
|
||||
public List<PileDetailVO> queryPileInfos(QueryPileDTO dto) {
|
||||
StopWatch watch = new StopWatch("查询充电桩信息");
|
||||
watch.start("首先不分页查询所有符合条件的充电桩");
|
||||
List<PileDetailVO> pileDetailVOS = null;
|
||||
if (StringUtils.isNotBlank(dto.getStatus())) {
|
||||
pileDetailVOS = queryPileListByStatus(dto);
|
||||
} else {
|
||||
pileDetailVOS = queryPileListNoStatus(dto);
|
||||
}
|
||||
return pileDetailVOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询充电桩列表带状态过滤
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
private List<PileDetailVO> queryPileListByStatus(QueryPileDTO dto) {
|
||||
// StopWatch watch = new StopWatch("查询充电桩信息");
|
||||
// watch.start("首先不分页查询所有符合条件的充电桩");
|
||||
log.info("queryPileInfos dto:{}", JSONObject.toJSONString(dto));
|
||||
// 首先不分页查询所有符合条件的充电桩
|
||||
List<PileDetailVO> pileInfoVOS = queryPileInfoList(dto);
|
||||
watch.stop();
|
||||
// watch.stop();
|
||||
|
||||
watch.start("查询充电桩状态");
|
||||
// watch.start("查询充电桩状态");
|
||||
// 获取桩sn列表
|
||||
List<String> pileSnList = pileInfoVOS.stream().map(PileDetailVO::getPileSn).collect(Collectors.toList());
|
||||
// log.info("获取桩sn列表:{}", JSONObject.toJSONString(pileSnList));
|
||||
// 批量获取桩状态 key:桩编号; value:状态
|
||||
Map<String, String> pileStatusMap = pileConnectorInfoService.getPileStatus(pileSnList);
|
||||
watch.stop();
|
||||
// watch.stop();
|
||||
|
||||
watch.start("根据状态过滤");
|
||||
// watch.start("根据状态过滤");
|
||||
// log.info("批量获取桩状态:{}", JSONObject.toJSONString(pileStatusMap));
|
||||
// 根据状态过滤
|
||||
List<String> snList = Lists.newArrayList();
|
||||
@@ -254,11 +268,10 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService {
|
||||
// 不根据状态过滤,snList就等于pileSnList
|
||||
snList = pileSnList;
|
||||
// 根据状态排序
|
||||
|
||||
}
|
||||
watch.stop();
|
||||
// watch.stop();
|
||||
|
||||
watch.start("查询桩列表");
|
||||
// watch.start("查询桩列表");
|
||||
if (CollectionUtils.isEmpty(snList)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
@@ -273,8 +286,23 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService {
|
||||
for (PileDetailVO pileInfoVO : pileInfoVOS) {
|
||||
pileInfoVO.setStatus(pileStatusMap.get(pileInfoVO.getPileSn()));
|
||||
}
|
||||
watch.stop();
|
||||
log.info("总耗时:{}, 详细信息:{}", watch.getTotalTimeSeconds(), watch.prettyPrint());
|
||||
// watch.stop();
|
||||
// log.info("总耗时:{}, 详细信息:{}", watch.getTotalTimeSeconds(), watch.prettyPrint());
|
||||
return pileInfoVOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询充电桩列表不带状态过滤
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
private List<PileDetailVO> queryPileListNoStatus(QueryPileDTO dto) {
|
||||
List<PileDetailVO> pileInfoVOS = queryPileInfoList(dto);
|
||||
List<String> pileSnList = pileInfoVOS.stream().map(PileDetailVO::getPileSn).collect(Collectors.toList());
|
||||
Map<String, String> pileStatusMap = pileConnectorInfoService.getPileStatus(pileSnList);
|
||||
for (PileDetailVO pileInfoVO : pileInfoVOS) {
|
||||
pileInfoVO.setStatus(pileStatusMap.get(pileInfoVO.getPileSn()));
|
||||
}
|
||||
return pileInfoVOS;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user