当前位置: 首页 > news >正文

如何在Stream流中分组统计

在这里插入图片描述
上面是今天碰到需求,之前就做过类似的分组统计,这个相对来说比较简单,统计的也少,序号总预约人数这两部分交给前端了,不需要由后端统计,后端统计一下预约日期检查项目预约人数就行;

  @Overridepublic List<ItemStatisticsVo> statistics(ItemStatisticsModel itemStatisticsModel) {//调用xml接口List<ItemStatisticsVo> list = new ArrayList<>();//这里的方法是mapper.xml映射的sql,根据传入的参数进行查询,这边调用一下List<ItemVO> itemVOS = this.getBaseMapper().selectScrReserve(itemStatisticsModel);if (itemVOS.isEmpty()) {throw new ServiceException("查询为空");}itemVOS.forEach(t -> t.setCreateTime(DateUtil.parseDate(DateUtil.format(t.getCreateTime(), "yyyy-MM-dd"))));//先以创建时间分组,每个时间对应一个listMap<Date, List<ItemVO>> collect = itemVOS.stream().collect(Collectors.groupingBy(ItemVO::getCreateTime));//k->时间 v->每个时间对应的listcollect.forEach((k, v) -> {//每个list中包含检查项目名称,以项目名称分组Map<String, List<ItemVO>> collect1 = v.stream().collect(Collectors.groupingBy(ItemVO::getItemName));ItemStatisticsVo vo = new ItemStatisticsVo();//到这儿直接set日期vo.setReservationDate(k);List<ItemStatisticsInfoVo> list1 = new ArrayList<>();//x->项目名称 y->list<ItemVo>collect1.forEach((x, y) -> {ItemStatisticsInfoVo infoVo = new ItemStatisticsInfoVo();//检查项目名称infoVo.setInspectionName(x);//统计list的大小,就是每个项目名称预约的人数infoVo.setScNum(y.size());list1.add(infoVo);});vo.setList(list1);list.add(vo);});return list;}
http://www.lryc.cn/news/128695.html

相关文章:

  • windows程序基础
  • 【LeetCode】买卖股票的最佳时机最多两次购买机会
  • 【C++ 记忆站】命名空间
  • 《离散数学及其应用(原书第8版)》ISBN978-7-111-63687-8 第11章 11.1.3 树的性质 节 第664页的例9说明
  • 【云原生】K8S存储卷:PV、PVC详解
  • 谈谈IP地址和子网掩码的概念及应用
  • vue2 如何监听数组的变化
  • CSS中的transform属性有哪些值?并分别描述它们的作用。
  • vue3跳转页面后 海康监控实例不销毁
  • Unity 射线检测
  • 微信支付报非法的密钥大小: Caused by: java.security.InvalidKeyException: Illegal key size
  • React 调试开发插件 React devtools 的使用
  • linux 搜索命令
  • 如何使用Spark/Flink等分布式计算引擎做网络入侵检测
  • 基于php驾校驾驶理论考试模拟系统
  • vue3+elementPlus table里添加输入框并提交校验
  • ios swift5 collectionView 瀑布流(两列)
  • 创建一个简单的HTML Viewer应用程序
  • 无公网IP,公网SSH远程访问家中的树莓派教程
  • 「UG/NX」Block UI 超级截面SuperSection
  • 高层建筑全景vr火灾隐患排查模拟培训软件助力群众防范火灾伤害
  • 【WPF】 本地化的最佳做法
  • VS2017编译同事VS2022创建的库,报错无法运行rc.exe
  • Leetcode49. 字母异位词分组
  • 设计模式之工厂方法模式(FactoryMethod)
  • python的进度条tqdm库,显示时进度条不换行设置
  • spark的使用
  • 力扣:66. 加一(Python3)
  • Go的标准库Context理解
  • Nuxt3_1_路由+页面+组件+资源+样式 使用及实例