提交 cff8f61b 作者: 张开石

1、添加统计会议纪要推送数据

父级 0bf9ad20
...@@ -15,6 +15,7 @@ import com.cmeeting.util.AESUtils; ...@@ -15,6 +15,7 @@ import com.cmeeting.util.AESUtils;
import com.cmeeting.util.MinioUtils; import com.cmeeting.util.MinioUtils;
import com.cmeeting.util.R; import com.cmeeting.util.R;
import com.cmeeting.vo.EmailPush; import com.cmeeting.vo.EmailPush;
import com.cmeeting.vo.EmailStatisticsVo;
import com.cmeeting.vo.MeetingInfoVO; import com.cmeeting.vo.MeetingInfoVO;
import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.XWPFTemplate;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
...@@ -301,9 +302,9 @@ public class MeetingInfoController { ...@@ -301,9 +302,9 @@ public class MeetingInfoController {
} }
@GetMapping("/statistics") @PostMapping("/statistics")
public void statisticsEmail(Integer type, HttpServletResponse response) { public void statisticsEmail(@RequestBody EmailStatisticsVo vo, HttpServletResponse response) {
meetingInfoService.statisticsEmail(type, response); meetingInfoService.statisticsEmail(vo.getType(), vo.getStartTime(), vo.getEndTime(), response);
} }
} }
...@@ -6,6 +6,7 @@ import com.cmeeting.pojo.MeetingInfo; ...@@ -6,6 +6,7 @@ import com.cmeeting.pojo.MeetingInfo;
import com.cmeeting.vo.MeetingInfoVO; import com.cmeeting.vo.MeetingInfoVO;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Date;
public interface MeetingInfoService extends IService<MeetingInfo> { public interface MeetingInfoService extends IService<MeetingInfo> {
IPage<MeetingInfo> getPage(MeetingInfoVO vo); IPage<MeetingInfo> getPage(MeetingInfoVO vo);
...@@ -17,6 +18,6 @@ public interface MeetingInfoService extends IService<MeetingInfo> { ...@@ -17,6 +18,6 @@ public interface MeetingInfoService extends IService<MeetingInfo> {
/** /**
* 统计邮件推送情况 * 统计邮件推送情况
*/ */
void statisticsEmail(Integer type, HttpServletResponse response); void statisticsEmail(Integer type, Date startTime, Date endTime, HttpServletResponse response);
} }
...@@ -54,6 +54,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -54,6 +54,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -426,23 +427,22 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti ...@@ -426,23 +427,22 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
* 统计邮件推送情况 * 统计邮件推送情况
*/ */
@Override @Override
public void statisticsEmail(Integer type, HttpServletResponse response) { public void statisticsEmail(Integer type, Date startTime, Date endTime, HttpServletResponse response) {
DateTime now = DateUtil.date(); DateTime now = DateUtil.date();
DateTime startDate; if (ObjectUtils.isEmpty(startTime) || ObjectUtils.isEmpty(endTime)) {
DateTime endTime; if (1== type) {
if (1== type) { startTime = DateUtil.beginOfDay(DateUtil.offset(now, DateField.DAY_OF_MONTH, -2));
startDate = DateUtil.beginOfDay(DateUtil.offset(now, DateField.DAY_OF_MONTH, -2)); endTime = DateUtil.offset(now, DateField.HOUR_OF_DAY, -2);
endTime = DateUtil.offset(now, DateField.HOUR_OF_DAY, -2); } else {
} else { startTime = DateUtil.beginOfDay(now);
startDate = DateUtil.beginOfDay(now); endTime = now;
endTime = now; }
} }
List<MeetingInfo> meetingInfoList = meetingInfoMapper.selectList(new LambdaQueryWrapper<MeetingInfo>() List<MeetingInfo> meetingInfoList = meetingInfoMapper.selectList(new LambdaQueryWrapper<MeetingInfo>()
.eq(MeetingInfo::getEmailPushAccess, true) .eq(MeetingInfo::getEmailPushAccess, true)
.between(MeetingInfo::getStartTime, startDate, endTime)); .between(MeetingInfo::getStartTime, startTime, endTime));
Map<String, List<MeetingInfo>> hostUidMeetingInfoMap = meetingInfoList.stream().collect(Collectors.groupingBy(MeetingInfo::getHostUid)); Map<String, List<MeetingInfo>> hostUidMeetingInfoMap = meetingInfoList.stream().collect(Collectors.groupingBy(MeetingInfo::getHostUid));
Map<String, String> hostMap = new HashMap<>(); Map<String, String> hostMap = new HashMap<>();
meetingInfoList.forEach(meetingInfo -> { meetingInfoList.forEach(meetingInfo -> {
...@@ -490,7 +490,7 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti ...@@ -490,7 +490,7 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
OutputStream outputStream = null; OutputStream outputStream = null;
ExcelWriter writer = ExcelUtil.getWriter(true); ExcelWriter writer = ExcelUtil.getWriter(true);
try { try {
String title = String.format("纪要模板推送统计表-%s", DateUtil.format(now, "yyyy-MM-dd_HH:mm")); String title = String.format("会议纪要推送统计表-%s", DateUtil.format(now, "yyyy-MM-dd"));
outputStream = response.getOutputStream(); outputStream = response.getOutputStream();
String fileName = String.format("%s.xlsx", title); String fileName = String.format("%s.xlsx", title);
......
package com.cmeeting.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Description
* @Author zhang kaishi
* @Date 2025/7/28 18:22
**/
@Data
public class EmailStatisticsVo {
/**
* 统计类型
*/
private Integer type;
@DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
private Date startTime;
@DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
private Date endTime;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论