|
|
|
|
@ -1,9 +1,13 @@
|
|
|
|
|
package com.flossom.miniProgram.service.impl;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.time.LocalTime;
|
|
|
|
|
import java.time.ZoneId;
|
|
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import com.flossom.common.core.domain.entity.*;
|
|
|
|
|
import com.flossom.common.core.domain.req.WxNursingLogReq;
|
|
|
|
|
@ -49,17 +53,20 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService {
|
|
|
|
|
queryNursingLog.getParams().put("beginTime", now.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN));
|
|
|
|
|
queryNursingLog.getParams().put("endTime", now.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX));
|
|
|
|
|
List<WxNursingLog> wxNursingLogList = wxNursingLogMapper.selectWxNursingLogList(queryNursingLog);
|
|
|
|
|
if (wxNursingLogList != null) {
|
|
|
|
|
if (wxNursingLogList != null && wxNursingLogList.size() > 0) {
|
|
|
|
|
WxNursingStatisticsRet wxNursingStatisticsRet = new WxNursingStatisticsRet();
|
|
|
|
|
wxNursingStatisticsRet.setNursingNum(wxNursingLogList.size());
|
|
|
|
|
Map<LocalDate, Long> collect = wxNursingLogList.stream().collect(
|
|
|
|
|
Collectors.groupingBy(
|
|
|
|
|
log -> log.getCreateTime().toInstant()
|
|
|
|
|
.atZone(ZoneId.systemDefault()).toLocalDate(), Collectors.counting()
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
wxNursingStatisticsRet.setNursingNum(collect.size());
|
|
|
|
|
Integer totalNursingSecond = 0;
|
|
|
|
|
if (wxNursingLogList.size() > 0) {
|
|
|
|
|
for (WxNursingLog wxNursingLog : wxNursingLogList) {
|
|
|
|
|
if (wxNursingLog.getNursingTime() != null) {
|
|
|
|
|
totalNursingSecond += wxNursingLog.getNursingTime().toSecondOfDay();
|
|
|
|
|
}
|
|
|
|
|
for (WxNursingLog wxNursingLog : wxNursingLogList) {
|
|
|
|
|
if (wxNursingLog.getNursingTime() != null) {
|
|
|
|
|
totalNursingSecond += wxNursingLog.getNursingTime().toSecondOfDay();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
wxNursingStatisticsRet.setNursingTime(LocalTime.ofSecondOfDay(totalNursingSecond));
|
|
|
|
|
return wxNursingStatisticsRet;
|
|
|
|
|
|