fix: 体系数据列表数据条数错误

This commit is contained in:
2023-11-16 18:10:10 +08:00
parent 8430e92b2b
commit 89246b42e5
7 changed files with 107 additions and 25 deletions
@@ -37,4 +37,5 @@ public interface SarBussStandMenuDao extends BaseMapper<SarBussStandMenu> {
int updateMenuidByMenuid (@Param("oldMenuid") String oldMenuid ,@Param("newMenuid") String newMenuid);
List<SarBussStandMenu> getESStandMenu();
}
@@ -2,6 +2,7 @@ package com.adc.da.slrs.sarMenuStandard.service.impl;
import com.adc.da.exception.AdcDaBaseException;
import com.adc.da.scheduled.dao.SarStandardInfoDao;
import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao;
import com.adc.da.slrs.sarBussStandMenu.entity.SarBussStandMenu;
import com.adc.da.slrs.sarBussStandMenu.service.ISarBussStandMenuService;
import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao;
@@ -74,7 +75,7 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
private ITsDicTypeService dicItemService;
@Resource
private ITsDictionaryService dicService;
private SarBussStandMenuDao sarBussStandMenuDao;
@Override
public String getTopMenu(SarMenuStandardNew sarMenuStandardNew){
@@ -171,18 +172,20 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
}
// 把所有关联表中的数据拉出来
// 国标
List<SarStandMenu> gbStandMenu = sarStandMenuDao.getGBStandMenu();
List<SarStandMenu> gbStandMenu = sarStandMenuDao.getGBStandMenu().stream().filter(item -> item.getStandId() != null).collect(Collectors.toList());
List<StandMenuRelation> gbRelations = BeanCopyUtils.copyBeanList(gbStandMenu, StandMenuRelation.class);
// 外标
List<SarStandMenu> fbStandMenu = sarStandMenuDao.getFBStandMenu();
List<SarStandMenu> fbStandMenu = sarStandMenuDao.getFBStandMenu().stream().filter(item -> item.getStandId() != null).collect(Collectors.toList());;
List<StandMenuRelation> fbRelations = BeanCopyUtils.copyBeanList(fbStandMenu, StandMenuRelation.class);
// 企标
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<SarBussStandMenu> esStandMenu = sarBussStandMenuDao.getESStandMenu().stream().filter(item -> item.getBussStandId() != null).collect(Collectors.toList());
List<StandMenuRelation> esRelations = new ArrayList<>();
for (SarBussStandMenu s : esStandMenu) {
StandMenuRelation standMenuRelation = new StandMenuRelation(s.getBussStandId(), s.getMenuId());
esRelations.add(standMenuRelation);
}
// 计算每个节点的数值
TsResources.get(0).calculateAndSetCounts(gbRelations, fbRelations, esRelations, 0);
// 拼接返回
@@ -191,6 +194,7 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
@Override
public IPage<StandSystemDTO> standardSystemList(StandSystemDTO standSystemDTO) {
boolean select = standSystemDTO.getSelectIdList() != null;
String menuId = standSystemDTO.getMenuId();
// 校验menuId不能为空
if (StringUtils.isBlank(menuId)) {
@@ -207,13 +211,21 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
List<String> childIds = new ArrayList<>();
targetNode.collectChildIds(childIds);
standSystemDTO.setMenuIdList(childIds);
if (!select) {
standSystemDTO.setSelectIdList(targetNode.getGbStandIdList());
}
// 查国标
List<StandSystemDTO> gbList = sarStandMenuDao.getStandInfoSystemData(standSystemDTO, "INLAND");
Set<StandSystemDTO> gbList = new HashSet<>(sarStandMenuDao.getStandInfoSystemData(standSystemDTO, "INLAND"));
if (!select) {
standSystemDTO.setSelectIdList(targetNode.getFbStandIdList());
}
// 查外标
List<StandSystemDTO> fbList = sarStandMenuDao.getStandInfoSystemData(standSystemDTO, "FOREIGN");
Set<StandSystemDTO> fbList = new HashSet<>(sarStandMenuDao.getStandInfoSystemData(standSystemDTO, "FOREIGN"));
if (!select) {
standSystemDTO.setSelectIdList(targetNode.getEsStandIdList());
}
// 查企标
List<StandSystemDTO> esList = sarBussionessStandDao.getESSystemData(standSystemDTO);
Set<StandSystemDTO> esList = new HashSet<>(sarBussionessStandDao.getESSystemData(standSystemDTO));
// 数据转换后整合
List<StandSystemDTO> resultList = new ArrayList<>();
resultList.addAll(gbList);