perf: 大幅提高体系搜索接口性能
This commit is contained in:
+5
-4
@@ -170,17 +170,18 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
|
|||||||
resource.setChildren(recursionGetListChildrenStand((resource), (children)));
|
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<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<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);
|
List<StandMenuRelation> esRelations = BeanCopyUtils.copyBeanList(esStandMenu, StandMenuRelation.class);
|
||||||
// 计算每个节点的数值
|
// 计算每个节点的数值
|
||||||
TsResources.get(0).calculateAndSetCounts(gbRelations, fbRelations, esRelations, 0);
|
TsResources.get(0).calculateAndSetCounts(gbRelations, fbRelations, esRelations, 0);
|
||||||
|
|||||||
@@ -147,13 +147,13 @@
|
|||||||
<select id="getGBStandMenu" resultType="com.adc.da.slrs.sarStandMenu.entity.SarStandMenu">
|
<select id="getGBStandMenu" resultType="com.adc.da.slrs.sarStandMenu.entity.SarStandMenu">
|
||||||
select sm.MENU_ID, sm.STAND_ID from SAR_STAND_MENU AS sm
|
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
|
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>
|
||||||
|
|
||||||
<select id="getFBStandMenu" resultType="com.adc.da.slrs.sarStandMenu.entity.SarStandMenu">
|
<select id="getFBStandMenu" resultType="com.adc.da.slrs.sarStandMenu.entity.SarStandMenu">
|
||||||
select sm.MENU_ID, sm.STAND_ID from SAR_STAND_MENU AS sm
|
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
|
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>
|
||||||
|
|
||||||
<select id="getStandInfoSystemData" resultType="com.adc.da.slrs.sarMenuStandard.entity.StandSystemDTO">
|
<select id="getStandInfoSystemData" resultType="com.adc.da.slrs.sarMenuStandard.entity.StandSystemDTO">
|
||||||
|
|||||||
Reference in New Issue
Block a user