LocalDate类使用
1.LocalDateTime转LocalDate
LocalDateTime startTime = new LocalDateTime;
LocalDate localDate = startTime.toLocalDate();
localDate.atTime(0,0)
// 设置小时分钟
localDate.atTime(23,59)// 获取明天日期
LocalDate.now().plusDays(1).atTime(0,0,0)
2.流式计算通过时间作为key,收集数据
// 这里只是方法中一个片段代码
Map<LocalDate, List<PatientApplyInfo.BaseInfo>> collect = patientApplyInfo.getSuitInfoList().stream().filter(item -> StrUtil.equals(item.getQueueId(), BizConstant.QueueId.MR)).collect(Collectors.groupingBy(item -> item.getStartTime().toLocalDate()));---------------------------------------------------------------------
// 上面用到的实体类
package com.wechat.project.v2.pojo.dto;import lombok.AllArgsConstructor;
import lombok.Data;import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;/*** 患者的所有申请单信息*/
@Data
public class PatientApplyInfo {private List<BaseInfo> itemInfoList;private List<BaseInfo> suitInfoList;@Data@AllArgsConstructorpublic static class BaseInfo{/*** 项目编码/组套编码*/private String code;/*** 项目名称/组套名称*/private String name;/*** 队列ID*/private String queueId;private LocalDateTime startTime;private LocalDateTime endTime;public BaseInfo(String code, LocalDateTime startTime, LocalDateTime endTime){this.code = code;this.startTime = startTime;this.endTime = endTime;}}public PatientApplyInfo addItem(String code,LocalDateTime startTime,LocalDateTime endTime){if (itemInfoList == null){itemInfoList = new ArrayList<>();}itemInfoList.add(new BaseInfo(code,startTime,endTime));return this;}public PatientApplyInfo addItem(String code, String name, String queueId, LocalDateTime startTime, LocalDateTime endTime){if (itemInfoList == null){itemInfoList = new ArrayList<>();}BaseInfo baseInfo = new BaseInfo(code, startTime, endTime);baseInfo.setName(name);baseInfo.setQueueId(queueId);itemInfoList.add(baseInfo);return this;}public PatientApplyInfo addSuit(String code,LocalDateTime startTime,LocalDateTime endTime){if (suitInfoList == null){suitInfoList = new ArrayList<>();}suitInfoList.add(new BaseInfo(code,startTime,endTime));return this;}public PatientApplyInfo addSuit(String code, String name, String queueId, LocalDateTime startTime,LocalDateTime endTime){if (suitInfoList == null){suitInfoList = new ArrayList<>();}BaseInfo baseInfo = new BaseInfo(code, startTime, endTime);baseInfo.setName(name);baseInfo.setQueueId(queueId);suitInfoList.add(baseInfo);return this;}}