|
@@ -18,7 +18,6 @@ import cn.com.ty.lift.common.base.ExportRequest;
|
|
|
import cn.com.ty.lift.common.constants.CommonEnum;
|
|
|
import cn.com.ty.lift.common.constants.CommonEnum.ProjectStatus;
|
|
|
import cn.com.ty.lift.common.constants.WebSocketConstants;
|
|
|
-import cn.com.ty.lift.common.export.ExportUtils;
|
|
|
import cn.com.ty.lift.common.model.PushMessage;
|
|
|
import cn.com.ty.lift.common.model.PushUserInfo;
|
|
|
import cn.com.ty.lift.common.utils.DateUtils;
|
|
@@ -29,6 +28,8 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.poi.excel.ExcelUtil;
|
|
|
+import cn.hutool.poi.excel.ExcelWriter;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -41,6 +42,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
@@ -80,7 +84,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
|
|
|
@Resource
|
|
|
private PushUserService pushUserService;
|
|
|
|
|
|
- private Map<String, String> paramMap = new HashMap<String, String>() {{
|
|
|
+ private Map<String, String> headsMap = new LinkedHashMap<String, String>() {{
|
|
|
put("projectCode", "项目编号");
|
|
|
put("projectName", "项目名称");
|
|
|
put("province", "省份");
|
|
@@ -372,16 +376,33 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
|
|
|
return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
|
|
|
}
|
|
|
|
|
|
+ public List<Map<String,String>> exportList(List<String> ids){
|
|
|
+ return baseMapper.exportList(ids);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param request 导出项目数据列表
|
|
|
* @return RestResponse 状态码和返回消息
|
|
|
* @description 导出项目
|
|
|
* @date 2019/11/27 2:22 PM
|
|
|
*/
|
|
|
- public void export(ExportRequest request) {
|
|
|
- List<Project> projectList = baseMapper.selectBatchIds(request.getIds());
|
|
|
- ExportUtils utils = new ExportUtils();
|
|
|
- utils.export(projectList, paramMap, request.getExportPath());
|
|
|
+ public void export(ExportRequest request, HttpServletResponse response) {
|
|
|
+ List<String> ids = request.getIds();
|
|
|
+ List<Map<String, String>> projectList = exportList(ids);
|
|
|
+ ExcelWriter writer = ExcelUtil.getWriter(true);
|
|
|
+ //设置列别名
|
|
|
+ headsMap.forEach(writer::addHeaderAlias);
|
|
|
+ String fileName = DateUtils.generateCode() + ".xlsx";
|
|
|
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
|
|
|
+ try (ServletOutputStream out = response.getOutputStream()) {
|
|
|
+ writer.write(projectList, true);
|
|
|
+ writer.autoSizeColumnAll();
|
|
|
+ writer.flush(out, true);
|
|
|
+ writer.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error("项目数据导出失败", e);
|
|
|
+ }
|
|
|
}
|
|
|
/**
|
|
|
* @param request projectId 项目id
|