mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 19:36:50 +08:00
1.修改案例推荐表信息下载乱码问题;2.修改案例推荐表撤回操作报错问题;3.修改案例推荐记录表中推送时间类型为date类型
This commit is contained in:
@@ -2,6 +2,7 @@ package com.xboe.module.boecase.api;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
@@ -12,6 +13,7 @@ import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.data.dto.ImportData;
|
||||
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
|
||||
import com.xboe.module.boecase.dto.CasesRecommendPushRecordExportVo;
|
||||
import com.xboe.module.boecase.entity.CasesRecommend;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
|
||||
import com.xboe.module.boecase.entity.CasesRecommendPushRecord;
|
||||
@@ -21,6 +23,7 @@ import com.xboe.module.boecase.service.ICasesRecommendService;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||
import com.xboe.module.excel.ExportsExcelSenderUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -29,6 +32,8 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -179,47 +184,43 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
if (StringUtils.isEmpty(casesRecommendId)) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
CasesRecommend casesRecommend = iCasesRecommendService.findById(casesRecommendId);
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId);
|
||||
// 用个List<Map>装表格的所有内容
|
||||
// 拼接上列明。我这里用的最土的方法,很不优雅别学我
|
||||
List<Map<String, Object>> rows = recordList.stream().map(it -> {
|
||||
Map<String, Object> row = new LinkedHashMap<>();
|
||||
row.put("案例名称", it.getCaseTitle());
|
||||
row.put("推送用户", it.getPushUserName());
|
||||
row.put("所属组织", casesRecommend.getRecommendOrgName());
|
||||
row.put("推送时间", it.getPushTime());
|
||||
row.put("是否查看", it.getReadFlag());
|
||||
row.put("首次查看时间", it.getReadStartTime());
|
||||
row.put("总查看时间", it.getReadEndTime());
|
||||
return row;
|
||||
}).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(rows)) {
|
||||
// 通过工具类创建writer
|
||||
try (ExcelWriter writer = ExcelUtil.getWriter();
|
||||
// 输出流
|
||||
ServletOutputStream servletOutputStream = response.getOutputStream()
|
||||
) {
|
||||
// 一次性写出内容
|
||||
writer.write(rows, true);
|
||||
// 微调一下每个列的宽度
|
||||
writer.setColumnWidth(0, 50);
|
||||
writer.setColumnWidth(1, 16);
|
||||
writer.setColumnWidth(2, 24);
|
||||
writer.setColumnWidth(3, 34);
|
||||
writer.setColumnWidth(4, 10);
|
||||
writer.setColumnWidth(5, 20);
|
||||
writer.setColumnWidth(6, 20);
|
||||
// 此处的response.setContentType 和教程里的不同
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
// filename就是表格的名字,这个无所谓,反正前端还会重命名
|
||||
response.setHeader("Content-Disposition", "attachment;filename=推荐信息.xls");
|
||||
|
||||
writer.flush(servletOutputStream, true);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
try(OutputStream outputStream = response.getOutputStream()) {
|
||||
// 用个List<Map>装表格的所有内容
|
||||
// 拼接上列明。我这里用的最土的方法,很不优雅别学我
|
||||
LinkedHashMap<String,String> map = new LinkedHashMap<>();
|
||||
map.put("案例名称","caseTitle");
|
||||
map.put("推送用户","pushUserName");
|
||||
map.put("所属组织","recommendOrgName");
|
||||
map.put("推送时间","pushTime");
|
||||
map.put("是否查看","readFlag");
|
||||
map.put("首次查看时间","readStartTime");
|
||||
map.put("总查看时间","totalReadTime");
|
||||
|
||||
CasesRecommend casesRecommend = iCasesRecommendService.findById(casesRecommendId);
|
||||
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId);
|
||||
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
exportVos = recordList.stream().map(record -> {
|
||||
CasesRecommendPushRecordExportVo vo = new CasesRecommendPushRecordExportVo();
|
||||
vo.setCaseTitle(record.getCaseTitle());
|
||||
vo.setPushUserName(record.getPushUserName());
|
||||
vo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
||||
vo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||
vo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||
vo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||
vo.setTotalReadTime(DateUtil.formatBetween(record.getReadStartTime(), record.getReadEndTime()));
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-disposition", "attachment;filename=casesRecommend.xls");
|
||||
ExportsExcelSenderUtil.export(map, exportVos, outputStream,"yyyy-MM-dd HH:mm:ss");
|
||||
}catch (Exception e){
|
||||
log.error("导出失败",e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class CasesRecommendPushRecordExportVo {
|
||||
|
||||
/**
|
||||
* 案例标题
|
||||
*/
|
||||
private String caseTitle;
|
||||
/**
|
||||
* 推送用户名称
|
||||
*/
|
||||
private String pushUserName;
|
||||
/**推荐组织名称*/
|
||||
private String recommendOrgName;
|
||||
|
||||
private String pushTime;
|
||||
|
||||
private String readFlag;
|
||||
|
||||
/**
|
||||
* 首次查看时间
|
||||
*/
|
||||
private String readStartTime;
|
||||
|
||||
private String totalReadTime;
|
||||
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class CasesRecommendPushRecord extends BaseEntity {
|
||||
* 推送时间
|
||||
*/
|
||||
@Column(name = "push_time")
|
||||
private Integer pushTime;
|
||||
private Date pushTime;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user