年月日获得当中的年月和年并统计和里面的数据——sql

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>

在这里插入图片描述

发布了131 篇原创文章 · 获赞 42 · 访问量 4648

猜你喜欢

转载自blog.csdn.net/qq_43618030/article/details/104020555