perf: 大幅提高体系搜索接口性能

This commit is contained in:
2023-11-16 13:45:51 +08:00
parent c48b663c50
commit 55ba8d09e8
2 changed files with 7 additions and 6 deletions
@@ -170,17 +170,18 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
resource.setChildren(recursionGetListChildrenStand((resource), (children)));
}
// 把所有关联表中的数据拉出来
// TODO 优化一下性能
// 国标
List<SarStandMenu> gbStandMenu = sarStandMenuDao.getGBStandMenu().stream().filter(sarStandMenu -> sarStandMenu.getMenuId().length() > 30).collect(Collectors.toList());
List<SarStandMenu> gbStandMenu = sarStandMenuDao.getGBStandMenu();
List<StandMenuRelation> gbRelations = BeanCopyUtils.copyBeanList(gbStandMenu, StandMenuRelation.class);
// 外标
List<SarStandMenu> fbStandMenu = sarStandMenuDao.getFBStandMenu().stream().filter(sarStandMenu -> sarStandMenu.getMenuId().length() > 30).collect(Collectors.toList());
List<SarStandMenu> fbStandMenu = sarStandMenuDao.getFBStandMenu();
List<StandMenuRelation> fbRelations = BeanCopyUtils.copyBeanList(fbStandMenu, StandMenuRelation.class);
// 企标
List<SarBussStandMenu> esStandMenu = sarBussStandMenuService.list().stream().filter(sarBussStandMenu -> sarBussStandMenu.getMenuId().length() > 30).collect(Collectors.toList());
LambdaQueryWrapper<SarBussStandMenu> bussWrapper = new LambdaQueryWrapper<>();
bussWrapper.apply("LENGTH(menu_id) > {0}", 30);
List<SarBussStandMenu> esStandMenu = sarBussStandMenuService.list(bussWrapper);
List<StandMenuRelation> esRelations = BeanCopyUtils.copyBeanList(esStandMenu, StandMenuRelation.class);
// 计算每个节点的数值
TsResources.get(0).calculateAndSetCounts(gbRelations, fbRelations, esRelations, 0);
@@ -147,13 +147,13 @@
<select id="getGBStandMenu" resultType="com.adc.da.slrs.sarStandMenu.entity.SarStandMenu">
select sm.MENU_ID, sm.STAND_ID from SAR_STAND_MENU AS sm
LEFT JOIN sar_standards_info AS stand ON sm.STAND_ID = stand.ID
where stand.STAND_TYPE = 'INLAND'
where stand.STAND_TYPE = 'INLAND' AND LENGTH(sm.MENU_ID) > 30
</select>
<select id="getFBStandMenu" resultType="com.adc.da.slrs.sarStandMenu.entity.SarStandMenu">
select sm.MENU_ID, sm.STAND_ID from SAR_STAND_MENU AS sm
LEFT JOIN sar_standards_info AS stand ON sm.STAND_ID = stand.ID
where stand.STAND_TYPE = 'FOREIGN'
where stand.STAND_TYPE = 'FOREIGN' AND LENGTH(sm.MENU_ID) > 30
</select>
<select id="getStandInfoSystemData" resultType="com.adc.da.slrs.sarMenuStandard.entity.StandSystemDTO">