优化批量获取桩状态

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.stream.Collectors;
@ActiveProfiles("dev")
@ActiveProfiles("pre")
@SpringBootTest(classes = JsowellApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@RunWith(SpringRunner.class)
public class SpringBootTestController {
@@ -270,19 +270,23 @@ public class SpringBootTestController {
@Test
public void selectPileConnectorInfoListByPileSnListTest() {
List<String> pileSnList = Lists.newArrayList();
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
pileSnList.add("");
// pileConnectorInfoService.getPileStatus(pileSnList);
pileSnList.add("88230000000249");
pileSnList.add("88230000000573");
pileSnList.add("88230000000735");
pileSnList.add("88230000001122");
pileSnList.add("88230000001124");
pileSnList.add("88230000001125");
pileSnList.add("88230000001126");
pileSnList.add("88230000001127");
pileSnList.add("88230000001128");
pileSnList.add("88230000001129");
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

View File

@@ -1,6 +1,8 @@
package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
@@ -158,12 +160,29 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
List<String> redisKeys = pileSnList.stream()
.map(pileSn -> CacheConstants.SELECT_PILE_CONNECTOR_INFO_LIST + pileSn)
.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()
.filter(Objects::nonNull)
Map<String, List<PileConnectorInfo>> collect = connectorInfoList.stream()
.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
public Map<String, String> getPileStatusV2(List<String> pileSnList) {
Map<String, String> resultMap = Maps.newHashMap();
Map<String, List<PileConnectorInfo>> pileConnectorMap = selectPileConnectorInfoListByPileSnList(pileSnList);
for (String pileSn : pileSnList) {
String pileStatus = "";

View File

@@ -24,7 +24,19 @@
<select id="selectPileConnectorInfoList" parameterType="com.jsowell.pile.domain.PileConnectorInfo"
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
del_flag = '0'
<if test="name != null and name != ''">