先上效果图:返回各类型的总人数
//用list接住返回的多个数据
List<Map<String,Long>> workTypeList = this.baseMapper.countPersonByWorkType();
//最终返回的集合ageMap
Map<String, Integer> ageMap = new LinkedHashMap<>();
//获取工种类型字典,返回所有工种类型
List<Map<String, Object >> workTypeDictList = AbstractDictUtils.getDictByKey(CommunalConstants.DictType.WORK_TYPE);
//用这个map里面放入工种工种和人数总量
Map<String,Integer> workTypeMap = new HashMap<>();
//用map循环取出查询信息
for (Map<String, Long> map : workTypeList) {
//获取工种和数量
workTypeMap.put(Convert.toStr(map.get("workType")), Convert.toInt(map.get("count"), 0));
}
//循环取出字典数据
for (Map<String, Object> dict : workTypeDictList) {
//取出字典code
String dictCode = Convert.toStr(dict.get("dictCode"));
//取出字典name
String dictName = Convert.toStr(dict.get("dictName"));
//根据code取出数量
Integer count = workTypeMap.get(dictCode);
if(count == null) {
count = 0;
}
ageMap.put(dictName, count);
}
return ageMap;
数据库:
SELECT
count( * ) AS count,
work_type
FROM
site_person_basic_info
WHERE
delete_flag = 0
GROUP BY
work_type