企业的 矿种 是21,32,43,中间用,隔开
取到 10个企业中常用的矿种
//寻找 常用矿种 public List<SysDictData> getMineralsCommonUse() { List<String> mineralsIds = enterpriseBasicInfoProviderMapper.getMineralsIds(); List<String> stringList = mineralsIds.stream().flatMap(e -> Stream.of(e.split(","))).collect(Collectors.toList()); Map<Integer, Long> map = stringList.stream() .map(Integer::valueOf) .collect(Collectors.groupingBy(Integer::intValue, Collectors.counting())); Map<Integer, Long> result = map.entrySet().stream() .sorted(Map.Entry.<Integer, Long>comparingByValue().reversed()) .limit(10) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1, LinkedHashMap::new)); Set<Integer> dictValues = result.keySet(); List<SysDictData> SysDictData = sysDictDataMapper.getMineralsCommonUse(dictValues); return SysDictData; }
制作矿种筛选 并标记常用矿种
@Override public Map<String, List<SysDictData>> getAllMinerals(SysDictData dictData) { List<SysDictData> minerals = sysDictDataMapper.getMineralsByName(dictData); List<SysDictData> mineralsCommonUse = getMineralsCommonUse(); Set<String> commonUseValues = new HashSet<>(); // 使用set存储常用数据的字典值 for (SysDictData sysDictData : mineralsCommonUse) { commonUseValues.add(sysDictData.getDictValue()); // 将常用数据的字典值放入set中 } for (SysDictData mineral : minerals) { if (commonUseValues.contains(mineral.getDictValue())) { // 判断当前数据是否为常用数据 mineral.setIsDefault("true"); // 如果是,将isDefault设置为true }else { mineral.setIsDefault("false"); } mineral.setRemark(PinyinUtil.ToFirstChar(mineral.getDictLabel().substring(0,1)).toUpperCase()); } Map<String, List<SysDictData>> group = minerals.stream().collect(Collectors.groupingBy(SysDictData::getRemark)); return group; }