vo
package org.jeecg.modules.demo.zj.vo;
import lombok.Data;
import java.util.List;
@Data
public class yearVo {
private String years;
private String days;
private long count;
}
package org.jeecg.modules.demo.zj.vo;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class yearsVo {
private String year;
List<yearVo > list;
}
controller
/**
* 通过类型做统计
* getZjBookkeepingTJ
*/
@AutoLog(value = "通过类型做统计")
@ApiOperation(value=" 通过类型做统计", notes="通过类型做统计")
@GetMapping(value = "/getZjBookkeepingTJ")
public Result<Object> getZjBookkeepingTJ(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
Result<List<yearVo>> result = new Result<List<yearVo>>();
List<yearVo> zjRecordings = zjBookkeepingService.getZjBookkeepingTJ();
Map<String,List<yearVo >> map =
zjRecordings.stream().collect(Collectors.groupingBy(yearVo::getYears));
//遍历
for (Map.Entry<String, List<yearVo >> entry : map.entrySet()) { //key是分组条件name
//通过key取value,value是Person对象,可能有多个,用list取
List<yearVo> list11 = (List<yearVo>) map.get(entry.getKey());
}
List<yearsVo> yearsVos=new ArrayList<>();
Iterator<String> it = map.keySet().iterator(); //map.keySet()得到的是set集合,可以使用迭代器遍历
while(it.hasNext()){
String key = it.next();
yearsVo years=new yearsVo();
years.setYear(key);
years.setList(map.get(key));
yearsVos.add(years);
}
return Result.ok(yearsVos);
}
service
List<yearVo> getZjBookkeepingTJ ();
@Override
public List<yearVo> getZjBookkeepingTJ() {
List<yearVo> ZjBookkeepingTJ=zjBookkeepingMapper.getZjBookkeepingTJ();
return ZjBookkeepingTJ;
}
mapper
public List<yearVo> getZjBookkeepingTJ();
select SUM(account) count ,spend_type as spendType,CONCAT(
DATE_FORMAT(billing_time, '%Y'),
'-',
DATE_FORMAT(billing_time, '%m')
) days,CONCAT(
DATE_FORMAT(billing_time, '%Y')
) years from zj_bookkeeping WHERE deleted ='0'
GROUP BY
days,years,spendType
</select>