Browse Source

项目列表导出

dev_shibei_match
jianjun 4 years ago
parent
commit
2d6d0e0b85
  1. 16
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java
  2. 3
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java
  3. 64
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java
  4. BIN
      epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx
  5. BIN
      epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx

16
epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java

@ -11,12 +11,13 @@ import java.io.Serializable;
* @DESC * @DESC
*/ */
@Data @Data
public class CategoryProjectListFormDTO implements Serializable { public class CategoryProjectListFormDTO extends ProjectCategoryFormDTO implements Serializable {
private static final long serialVersionUID = -5448734274886241594L; private static final long serialVersionUID = -5448734274886241594L;
public interface CategoryProjectListForm{} public interface CategoryProjectListForm{}
@NotNull(message = "pageSize不能为空",groups = CategoryProjectListForm.class) @NotNull(message = "pageSize不能为空",groups = CategoryProjectListForm.class)
private Integer pageSize; private Integer pageSize;
@ -26,22 +27,21 @@ public class CategoryProjectListFormDTO implements Serializable {
/** /**
* 项目状态closed已结案all全部 * 项目状态closed已结案all全部
*/ */
@NotNull(message = "status不能为空",groups = CategoryProjectListForm.class) @NotNull(message = "status不能为空",groups = {CategoryProjectListForm.class, CategoryProjectExportForm.class})
private String status; private String status;
@NotNull(message = "categoryCode不能为空",groups = CategoryProjectListForm.class) @NotNull(message = "categoryCode不能为空",groups = {CategoryProjectListForm.class, CategoryProjectExportForm.class})
private String categoryCode; private String categoryCode;
@NotNull(message = "categoryName不能为空",groups = CategoryProjectExportForm.class)
private String categoryName;
private String parentCategoryName;
/** /**
* 组织ID * 组织ID
*/ */
private String orgId; private String orgId;
/**
* 组织类型agency组织grid网格
*/
private String orgType;
/** /**
* 是否分页默认truefalse的时候 给导出用 * 是否分页默认truefalse的时候 给导出用
*/ */

3
epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java

@ -16,6 +16,7 @@ public class ProjectCategoryFormDTO implements Serializable {
private static final long serialVersionUID = 5047143743629810527L; private static final long serialVersionUID = 5047143743629810527L;
public interface ProjectCategoryForm{} public interface ProjectCategoryForm{}
public interface CategoryProjectExportForm {}
/** /**
* 组织ID * 组织ID
@ -27,7 +28,7 @@ public class ProjectCategoryFormDTO implements Serializable {
*/ */
private String orgType; private String orgType;
@NotBlank(message = "结束时间不能为空",groups = ProjectCategoryForm.class) @NotBlank(message = "结束时间不能为空",groups = {ProjectCategoryForm.class,CategoryProjectExportForm.class})
private String endTime; private String endTime;
/** /**

64
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java

@ -29,6 +29,7 @@ import com.epmet.project.dto.result.ProjectCategoryResultDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -195,20 +196,13 @@ public class ScreenProjectController {
* @date 2021/11/4 3:38 下午 * @date 2021/11/4 3:38 下午
*/ */
@PostMapping("selectprojectcategory/export") @PostMapping("selectprojectcategory/export")
public void selectProjectCategoryExport(@RequestBody ProjectCategoryFormDTO formDTO, /*@LoginUser*/ TokenDto tokenDto, HttpServletResponse response) throws Exception { public void selectProjectCategoryExport(@RequestBody ProjectCategoryFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception {
tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548");
tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.ProjectCategoryForm.class); ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class);
List<ProjectCategoryResultDTO> data = screenProjectService.selectProjectCategory(formDTO, tokenDto); List<ProjectCategoryResultDTO> data = screenProjectService.selectProjectCategory(formDTO, tokenDto);
String templatePath = "excel/project_category_temp.xlsx"; String templatePath = "excel/project_category_temp.xlsx";
StringBuilder dateBuilder = new StringBuilder();
if (StringUtils.isNotBlank(formDTO.getStartTime())){
dateBuilder.append(formDTO.getStartTime()).append(StrConstant.HYPHEN);
}
if (StringUtils.isNotBlank(formDTO.getEndTime())){
dateBuilder.append(formDTO.getEndTime());
}
List<ProjectCategoryResultDTO> resultDTOList = new ArrayList<>(); List<ProjectCategoryResultDTO> resultDTOList = new ArrayList<>();
data.forEach(e->{ data.forEach(e->{
resultDTOList.add(e); resultDTOList.add(e);
@ -219,7 +213,7 @@ public class ScreenProjectController {
Map<String,Object> mapData = new HashMap<>(); Map<String,Object> mapData = new HashMap<>();
mapData.put("list",resultDTOList); mapData.put("list",resultDTOList);
mapData.put("orgName",staffInfo.getAgencyName()); mapData.put("orgName",staffInfo.getAgencyName());
mapData.put("exportDate",dateBuilder.toString()); mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime()));
Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData); Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData);
response.setHeader("content-Type", "application/vnd.ms-excel"); response.setHeader("content-Type", "application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目分类统计.xls", "UTF-8")); response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目分类统计.xls", "UTF-8"));
@ -239,4 +233,50 @@ public class ScreenProjectController {
return new Result<PageCategoryProjectListResultDTO>().ok(screenProjectService.selectCategoryProjectList(formDTO,tokenDto)); return new Result<PageCategoryProjectListResultDTO>().ok(screenProjectService.selectCategoryProjectList(formDTO,tokenDto));
} }
/**
* @Description 项目分类查询项目分类
* @param formDTO
* @param tokenDto
* @author zxc
* @date 2021/11/4 3:38 下午
*/
@PostMapping("selectcategoryprojectlist/export")
public void selectProjectCategoryExport(@RequestBody CategoryProjectListFormDTO formDTO,/*@LoginUser*/ TokenDto tokenDto, HttpServletResponse response) throws Exception {
tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548");
tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
formDTO.setIsPage(false);
formDTO.setStatus("all");
formDTO.setCategoryCode("0102");
ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class);
PageCategoryProjectListResultDTO data = screenProjectService.selectCategoryProjectList(formDTO,tokenDto);
String templatePath = "excel/project_temp.xlsx";
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
Map<String,Object> mapData = new HashMap<>();
mapData.put("list",data.getList());
mapData.put("orgName",staffInfo.getAgencyName());
mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime()));
mapData.put("categoryName", formDTO.getCategoryName());
if (StringUtils.isNotBlank(formDTO.getParentCategoryName())){
mapData.put("categoryName", formDTO.getParentCategoryName().concat(StrConstant.HYPHEN).concat(formDTO.getCategoryName()));
}
Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData);
response.setHeader("content-Type", "application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目统计.xls", "UTF-8"));
workbook.write(response.getOutputStream());
}
@NotNull
private String getExportDateStr(String startTime,String endTime) {
StringBuilder dateBuilder = new StringBuilder();
if (StringUtils.isNotBlank(startTime)) {
dateBuilder.append(startTime).append(StrConstant.HYPHEN);
}
if (StringUtils.isNotBlank(endTime)) {
dateBuilder.append(endTime);
}
return dateBuilder.toString();
}
} }

BIN
epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx

Binary file not shown.

BIN
epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx

Binary file not shown.
Loading…
Cancel
Save