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;}}
?