优化批量获取桩状态

This commit is contained in:
Guoqs
2024-11-05 09:01:28 +08:00
parent 5d3843bbdf
commit 24957fc00c
3 changed files with 53 additions and 19 deletions

View File

@@ -104,7 +104,7 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ActiveProfiles("dev") @ActiveProfiles("pre")
@SpringBootTest(classes = JsowellApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @SpringBootTest(classes = JsowellApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
public class SpringBootTestController { public class SpringBootTestController {
@@ -270,19 +270,23 @@ public class SpringBootTestController {
@Test @Test
public void selectPileConnectorInfoListByPileSnListTest() { public void selectPileConnectorInfoListByPileSnListTest() {
List<String> pileSnList = Lists.newArrayList(); List<String> pileSnList = Lists.newArrayList();
pileSnList.add(""); pileSnList.add("88230000000249");
pileSnList.add(""); pileSnList.add("88230000000573");
pileSnList.add(""); pileSnList.add("88230000000735");
pileSnList.add(""); pileSnList.add("88230000001122");
pileSnList.add(""); pileSnList.add("88230000001124");
pileSnList.add(""); pileSnList.add("88230000001125");
pileSnList.add(""); pileSnList.add("88230000001126");
pileSnList.add(""); pileSnList.add("88230000001127");
pileSnList.add(""); pileSnList.add("88230000001128");
pileSnList.add(""); pileSnList.add("88230000001129");
// pileConnectorInfoService.getPileStatus(pileSnList); pileSnList.add("88230000001130");
pileSnList.add("88230000001131");
pileConnectorInfoService.getPileStatusV2(pileSnList); // pileConnectorInfoService.selectPileConnectorInfoList("88000000000028");
// Map<String, String> pileStatus = pileConnectorInfoService.getPileStatus(pileSnList);
Map<String, String> pileStatusV2 = pileConnectorInfoService.getPileStatusV2(pileSnList);
} }
@Test @Test

View File

@@ -1,6 +1,8 @@
package com.jsowell.pile.service.impl; package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -158,12 +160,29 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
List<String> redisKeys = pileSnList.stream() List<String> redisKeys = pileSnList.stream()
.map(pileSn -> CacheConstants.SELECT_PILE_CONNECTOR_INFO_LIST + pileSn) .map(pileSn -> CacheConstants.SELECT_PILE_CONNECTOR_INFO_LIST + pileSn)
.collect(Collectors.toList()); .collect(Collectors.toList());
List<PileConnectorInfo> redisResult = redisCache.multiGet(redisKeys); List<Object> redisResult = redisCache.multiGet(redisKeys);
List<PileConnectorInfo> connectorInfoList = Lists.newArrayList();
for (Object o : redisResult) {
if (Objects.isNull(o)) {
continue;
}
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
for (Object o1 : jsonArray) {
PileConnectorInfo pileConnectorInfo = JSONObject.parseObject(JSON.toJSONString(o1), PileConnectorInfo.class);
connectorInfoList.add(pileConnectorInfo);
}
}
// 分组 // 分组
Map<String, List<PileConnectorInfo>> collect = redisResult.stream() Map<String, List<PileConnectorInfo>> collect = connectorInfoList.stream()
.filter(Objects::nonNull)
.collect(Collectors.groupingBy(PileConnectorInfo::getPileSn)); .collect(Collectors.groupingBy(PileConnectorInfo::getPileSn));
return null; resultMap.putAll(collect);
// 筛选出未从缓存中获取到的pileSn
List<String> noCachePileSnList = pileSnList.stream()
.filter(pileSn -> !collect.containsKey(pileSn))
.collect(Collectors.toList());
return resultMap;
} }
/** /**
@@ -726,7 +745,6 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
@Override @Override
public Map<String, String> getPileStatusV2(List<String> pileSnList) { public Map<String, String> getPileStatusV2(List<String> pileSnList) {
Map<String, String> resultMap = Maps.newHashMap(); Map<String, String> resultMap = Maps.newHashMap();
Map<String, List<PileConnectorInfo>> pileConnectorMap = selectPileConnectorInfoListByPileSnList(pileSnList); Map<String, List<PileConnectorInfo>> pileConnectorMap = selectPileConnectorInfoListByPileSnList(pileSnList);
for (String pileSn : pileSnList) { for (String pileSn : pileSnList) {
String pileStatus = ""; String pileStatus = "";

View File

@@ -24,7 +24,19 @@
<select id="selectPileConnectorInfoList" parameterType="com.jsowell.pile.domain.PileConnectorInfo" <select id="selectPileConnectorInfoList" parameterType="com.jsowell.pile.domain.PileConnectorInfo"
resultMap="PileConnectorInfoResult"> resultMap="PileConnectorInfoResult">
<include refid="selectPileConnectorInfoVo"/> select
id,
name,
pile_connector_code,
status,
park_no,
pile_sn,
create_by,
create_time,
update_by,
update_time,
del_flag
from pile_connector_info
where where
del_flag = '0' del_flag = '0'
<if test="name != null and name != ''"> <if test="name != null and name != ''">