From a245e2d3ae4c4ab4f44308f9cb076f34ca8ee2b4 Mon Sep 17 00:00:00 2001 From: XLR_asd <xueyawei@seaskysh.com> Date: Fri, 16 Jul 2021 14:07:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=20=E5=AF=BC=E5=87=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=94=B3=E6=8A=A5=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seasky/projectplan/api/IProjectPlan.java | 17 +++++- .../dto/projectplan/InfoPlanExportOut.java | 61 +++++++++++++++++++ .../projectplan/ProjectPlanQueryService.java | 17 +++++- .../mapper/table/ProjectPlanBookMapper.java | 1 + .../ProjectPlanQueryServiceImpl.java | 30 ++++++++- .../controller/ProjectPlanController.java | 15 ++++- 6 files changed, 133 insertions(+), 8 deletions(-) create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoPlanExportOut.java diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java index 4eb945239..8472e26d3 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java @@ -231,12 +231,23 @@ public interface IProjectPlan { Result<PlanBookBasicInformationOut> queryBasicInformation(PlanBookBasicInformationQry planBookBasicInformationQry); /** - * 瀵煎嚭椤圭洰璁″垝 + * 瀵煎嚭鏃ュ父鐢虫姤涔� * - * @param request 璇锋眰 - * @param response 鍝嶅簲 + * @param request 璇锋眰 + * @param response 鍝嶅簲 + * @param projectDailyPlanQry 椤圭洰鏃ュ父璁″垝qry */ @PostMapping(path = "/exportProjectPlan") void exportProjectPlan(HttpServletRequest request, HttpServletResponse response,ProjectDailyPlanQry projectDailyPlanQry); + /** + * 瀵煎嚭椤圭洰鐢虫姤涔� + * + * @param request 璇锋眰 + * @param response 鍝嶅簲 + * @param projectInfoPlanQry 椤圭洰鏃ュ父璁″垝qry + */ + @PostMapping(path = "/exportInfoProjectPlan") + void exportInfoProjectPlan(HttpServletRequest request, HttpServletResponse response,ProjectInfoPlanQry projectInfoPlanQry); + } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoPlanExportOut.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoPlanExportOut.java new file mode 100644 index 000000000..68a00c441 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoPlanExportOut.java @@ -0,0 +1,61 @@ +package com.seasky.projectplan.dto.projectplan; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.seasky.core.ddd.base.BaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonInclude(JsonInclude.Include.ALWAYS) +public class InfoPlanExportOut extends BaseDto implements Serializable { + + @ApiModelProperty(value = "骞翠唤",example = "") + @ExcelProperty(value = "骞翠唤",index = 0) + private Integer year; + + @ApiModelProperty(value = "椤圭洰绫诲瀷",example = "") + @ExcelProperty(value = "椤圭洰绫诲瀷",index = 1) + private String projectType; + + @ApiModelProperty(value = "椤圭洰鍚嶇О",example = "") + @ExcelProperty(value = "椤圭洰鍚嶇О",index = 2) + private String projectName; + + @ApiModelProperty(value = "閮ㄩ棬鍚嶇О",example = "") + @ExcelProperty(value = "閮ㄩ棬鍚嶇О",index = 3) + private String departmentName; + + @ApiModelProperty(value = "閮ㄩ棬缂栧彿",example = "") + @ExcelProperty(value = "閮ㄩ棬缂栧彿",index = 4) + private String departmentCode; + + @ApiModelProperty(value = "璐熻矗浜� 鍚嶇О",example = "") + @ExcelProperty(value = "璐熻矗浜哄悕绉�",index = 5) + private String projectLeaderName; + + @ApiModelProperty(value = "璐熻矗浜虹紪鍙�",example = "") + @ExcelProperty(value = "璐熻矗浜虹紪鍙�",index = 6) + private String projectLeaderCode; + + @ApiModelProperty(value = "鐢虫姤閲戦",example = "") + @ExcelProperty(value = "鐢虫姤閲戦",index = 7) + private BigDecimal totalMoney; + + @ApiModelProperty(value = "鏍稿畾閲戦",example = "") + @ExcelProperty(value = "鏍稿畾閲戦",index = 8) + private BigDecimal quotaMoney; + + @ApiModelProperty(value = "瀹℃牳鐘舵€�",example = "") + @ExcelProperty(value = "瀹℃牳鐘舵€�",index = 9) + private String state; +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java index 236b7e6a2..3a2916357 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java @@ -117,10 +117,21 @@ public interface ProjectPlanQueryService extends BaseService<ProjectPlanBookPo> PlanBookBasicInformationOut queryBasicInformation( PlanBookBasicInformationQry planBookBasicInformationQry); /** - * 涓嬪姞杞芥ā鏉� + * 瀵煎嚭 * - * @param request 璇锋眰 - * @param response 鍝嶅簲 + * @param request 璇锋眰 + * @param response 鍝嶅簲 + * @param projectDailyPlanQry 椤圭洰鏃ュ父璁″垝qry */ void exportProjectPlan(HttpServletRequest request, HttpServletResponse response,ProjectDailyPlanQry projectDailyPlanQry); + + /** + * 瀵煎嚭 + * + * @param request 璇锋眰 + * @param response 鍝嶅簲 + * @param projectInfoPlanQry 椤圭洰鏃ュ父璁″垝qry + */ + void exportInfoProjectPlan(HttpServletRequest request, HttpServletResponse response,ProjectInfoPlanQry projectInfoPlanQry); + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java index 955d0640e..b8a16d569 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java @@ -143,6 +143,7 @@ public interface ProjectPlanBookMapper extends BaseMapper<ProjectPlanBookPo> { * @return {@link Page<ProjectInfoPlanDo>} */ Page<ProjectInfoPlanDo> queryProjectInfoPlanPageByCurrentUserDept(Page<ProjectPlanBookOut> page, @Param("pm") ProjectInfoPlanQry projectInfoPlanQry); + List<ProjectInfoPlanDo> queryProjectInfoPlanPageByCurrentUserDept(@Param("pm") ProjectInfoPlanQry projectInfoPlanQry); /** * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄩ泦鍚堣幏鍙栨棩甯哥粡璐归泦鍚堬紙鍒嗛〉锛� diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java index 3d003809b..2ec6cefca 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java @@ -494,7 +494,7 @@ public class ProjectPlanQueryServiceImpl extends AbstractService<ProjectPlanBook } /** - * 瀵煎嚭椤圭洰璁″垝 + * 瀵煎嚭鏃ュ父鐢虫姤涔� * * @param request 璇锋眰 * @param response 鍝嶅簲 @@ -519,6 +519,34 @@ public class ProjectPlanQueryServiceImpl extends AbstractService<ProjectPlanBook } } + /** + * 瀵煎嚭椤圭洰鐢虫姤涔� + * + * @param request 璇锋眰 + * @param response 鍝嶅簲 + * @param projectInfoPlanQry 椤圭洰淇℃伅璁″垝qry + */ + @Override + public void exportInfoProjectPlan(HttpServletRequest request, HttpServletResponse response, ProjectInfoPlanQry projectInfoPlanQry) { + List<ProjectInfoPlanDo> doList = mapper.queryProjectInfoPlanPageByCurrentUserDept(projectInfoPlanQry); + if (doList == null ){ + throw new DataAccessException(new Error(ResponseCode.DATA_ACCESS_NOT_FOUND, null, "鏃犲彲瀵煎嚭椤圭洰缁忚垂鐢虫姤涔�", "")); + } + List<ProjectPlanBookOut> outList = ProjectPlanQueryConvert.infoDoToOutList(doList); + List<InfoPlanExportOut> fundingExportOutList = MapperUtils.INSTANCE.mapAsList(InfoPlanExportOut.class,outList); + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/x-download"); + try{ + String fileName = URLEncoder.encode("椤圭洰缁忚垂鐢虫姤涔﹀鍑�","UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(),InfoPlanExportOut.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("椤圭洰缁忚垂鐢虫姤涔�").doWrite(fundingExportOutList); + }catch (IOException e){ + throw ExceptionUtil.getException(null,"瀵煎嚭椤圭洰缁忚垂鐢虫姤涔﹀け璐ワ紒"); + } + + } + public Integer queryConfigYearByType(String type) { if (StringUtils.isEmpty(type)) { type = PlanTypeEnum.YISHANG.key(); diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java index 114e30069..12872eff5 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java @@ -179,7 +179,7 @@ public class ProjectPlanController extends BaseController implements IProjectPla } /** - * 瀵煎嚭椤圭洰璁″垝 + * 瀵煎嚭鏃ュ父鐢虫姤涔� * * @param request 璇锋眰 * @param response 鍝嶅簲 @@ -189,4 +189,17 @@ public class ProjectPlanController extends BaseController implements IProjectPla public void exportProjectPlan(HttpServletRequest request, HttpServletResponse response,ProjectDailyPlanQry projectDailyPlanQry) { queryService.exportProjectPlan(request,response,projectDailyPlanQry); } + + /** + * 瀵煎嚭椤圭洰鐢虫姤涔� + * + * @param request 璇锋眰 + * @param response 鍝嶅簲 + * @param projectInfoPlanQry 椤圭洰鏃ュ父璁″垝qry + */ + @ApiOperation("Q12.鎵归噺瀵煎嚭椤圭洰缁忚垂鐢虫姤涔�") + @Override + public void exportInfoProjectPlan(HttpServletRequest request, HttpServletResponse response, ProjectInfoPlanQry projectInfoPlanQry) { + queryService.exportInfoProjectPlan(request,response,projectInfoPlanQry); + } } -- GitLab