From 611ba611ecf2c42826caab587631cca2cc0f5818 Mon Sep 17 00:00:00 2001 From: 19512259349 <cq.qi@qq.com> Date: Wed, 2 Jun 2021 16:13:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:q=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectplan/api/IProjectLibrary.java | 32 +++++++- .../projectlibrary/ProjectLibraryDeptQry.java | 10 +++ .../dto/projectlibrary/ProjectLibraryOut.java | 46 +++++++++++ .../dto/projectlibrary/ProjectLibraryQry.java | 16 +++- .../projectlibrary/AProjectLibrarySvr.java | 28 +++++++ .../AProjectLibrarySvrImpl.java | 72 +++++++++++++++--- .../ProjectLibraryQuerySvr.java | 36 +++++++++ .../aggregate/common/PlanStateEnum.java | 11 +++ .../domain/service/ProjectLibrarySvr.java | 15 ++++ .../domain/service/ProjectLibrarySvrImpl.java | 28 ++++++- .../db/mapper/table/ProjectLibraryMapper.java | 6 ++ .../db/mapper/xml/ProjectLibraryMapper.xml | 6 ++ .../ProjectLibraryQuerySvrImpl.java | 76 +++++++++++++++++++ .../ProjectLibraryReaderConvert.java | 20 +++++ .../controller/ProjectLibraryController.java | 65 +++++++++++++++- 15 files changed, 453 insertions(+), 14 deletions(-) create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryOut.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectlibrary/ProjectLibraryQuerySvr.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/common/PlanStateEnum.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryReaderConvert.java diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java index 4490b2b2a..472d67669 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java @@ -2,7 +2,8 @@ package com.seasky.projectplan.api; import com.seasky.core.common.Result; import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryCmd; -import com.seasky.projectplan.dto.projectplan.ProjectPlanBookCmd; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; import io.swagger.annotations.Api; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -17,4 +18,33 @@ public interface IProjectLibrary { @PostMapping("/saveProjectLibrary") Result<Object> saveProjectLibrary(@RequestBody ProjectLibraryCmd cmd); + + + @PostMapping("/copyHistoryProjectLibrary") + Result<Object> copyHistoryProjectLibrary(@RequestBody ProjectLibraryCmd cmd); + + @PostMapping("/enterProjectPlanType1") + Result<Object> enterProjectPlanType1(@RequestBody ProjectLibraryCmd cmd); + + @PostMapping("/enterProjectPlanType2") + Result<Object> enterProjectPlanType2(@RequestBody ProjectLibraryCmd cmd); + + @PostMapping("/cancelEnterProjectPlanType1") + Result<Object> cancelEnterProjectPlanType1(@RequestBody ProjectLibraryCmd cmd); + + @PostMapping("/cancelEnterProjectPlanType2") + Result<Object> cancelEnterProjectPlanType2(@RequestBody ProjectLibraryCmd cmd); + + @PostMapping("/removeProjectLibrary") + Result<Object> removeProjectLibrary(@RequestBody ProjectLibraryCmd cmd); + + @PostMapping("/queryProjectLibraryPage") + Result<ProjectLibraryOut> queryProjectLibraryPage(@RequestBody ProjectLibraryQry qry); + + @PostMapping("/queryProjectLibraryPageByCurrentUserDept") + Result<ProjectLibraryOut> queryProjectLibraryPageByCurrentUserDept(@RequestBody ProjectLibraryQry qry); + + @PostMapping("/queryHistoryProjectLibraryPageByCurrentUserDept") + Result<ProjectLibraryOut> queryHistoryProjectLibraryPageByCurrentUserDept(@RequestBody ProjectLibraryQry qry); + } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryDeptQry.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryDeptQry.java index 2db6e3c83..2f344e6af 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryDeptQry.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryDeptQry.java @@ -3,6 +3,8 @@ package com.seasky.projectplan.dto.projectlibrary; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.DecimalMin; + /** * 椤圭洰搴撻儴闂� qry * @@ -17,4 +19,12 @@ public class ProjectLibraryDeptQry { @ApiModelProperty("椤圭洰鍚嶇О") private String projectName; + @ApiModelProperty("鍒嗛〉鐮�") + @DecimalMin("0") + private Integer pageNumber; + + @ApiModelProperty("鍒嗛〉澶у皬") + @DecimalMin("0") + private Integer pageSize; + } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryOut.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryOut.java new file mode 100644 index 000000000..0dfaa967b --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryOut.java @@ -0,0 +1,46 @@ +package com.seasky.projectplan.dto.projectlibrary; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 椤圭洰搴� cmd + * + * @author chenqi + * @date 2021/05/31 + */ +@Data +public class ProjectLibraryOut { + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("骞翠唤") + private Integer year; + + @ApiModelProperty("棰勭畻閲戦") + private BigDecimal planMoney; + + @ApiModelProperty("椤圭洰鍚嶇О") + private String projectName; + + @ApiModelProperty("閮ㄩ棬缂栧彿") + private String departmentCode; + + @ApiModelProperty("璐熻矗浜篿d") + private Long projectLeaderId; + + @ApiModelProperty("椤圭洰搴�") + private Long planType1Id; + + @ApiModelProperty("涓€涓�") + private Long planType2Id; + + @ApiModelProperty("浜屼笂") + private Long planType3Id; + + @ApiModelProperty("瀹℃壒") + private Long planType4Id; + +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryQry.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryQry.java index 76809a725..1ec403802 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryQry.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectlibrary/ProjectLibraryQry.java @@ -1,8 +1,11 @@ package com.seasky.projectplan.dto.projectlibrary; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; +import javax.validation.constraints.DecimalMin; + /** * 椤圭洰搴� qry * @@ -10,7 +13,10 @@ import lombok.Data; * @date 2021/05/31 */ @Data +@Builder public class ProjectLibraryQry { + + @ApiModelProperty("骞翠唤") private Integer year; @@ -18,9 +24,17 @@ public class ProjectLibraryQry { private String projectName; @ApiModelProperty("閮ㄩ棬缂栧彿") - private String deptCode; + private String departmentCode; @ApiModelProperty("绫诲瀷鍒楄〃") private String typeList; + @ApiModelProperty("鍒嗛〉鐮�") + @DecimalMin("0") + private Integer pageNumber; + + @ApiModelProperty("鍒嗛〉澶у皬") + @DecimalMin("0") + private Integer pageSize; + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java index aa7720c31..f3239ce48 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java @@ -29,4 +29,32 @@ public interface AProjectLibrarySvr { * @param cmd cmd */ void enterProjectPlanType1(ProjectLibraryCmd cmd); + + /** + * 椤圭洰缁忚垂杩涘叆浜屼笂 + * + * @param cmd cmd + */ + void enterProjectPlanType2(ProjectLibraryCmd cmd); + + /** + * 鍙栨秷杩涘叆涓€涓� + * + * @param cmd cmd + */ + void cancelEnterProjectPlanType1(ProjectLibraryCmd cmd); + + /** + * 鍙栨秷杩涘叆浜屼笂 + * + * @param cmd cmd + */ + void cancelEnterProjectPlanType2(ProjectLibraryCmd cmd); + + /** + * 鍒犻櫎椤圭洰搴撲俊鎭� + * + * @param cmd cmd + */ + void removeProjectLibrary(ProjectLibraryCmd cmd); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java index 2cb3bc296..1d1efeba0 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java @@ -2,9 +2,12 @@ package com.seasky.projectplan.application.command.projectlibrary; import com.seasky.projectplan.application.command.assembler.ProjectLibraryAssembler; import com.seasky.projectplan.application.query.baseconfig.BaseConfigQuerySvr; -import com.seasky.projectplan.application.query.projectplan.ProjectPlanQueryService; +import com.seasky.projectplan.domain.aggregate.common.PlanTypeEnum; +import com.seasky.projectplan.domain.aggregate.projectInfoplan.ProjectInfoPlanAgg; +import com.seasky.projectplan.domain.aggregate.projectInfoplan.ProjectInfoRepository; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryAgg; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryRepository; +import com.seasky.projectplan.domain.service.ProjectInfoPlanDomainSvr; import com.seasky.projectplan.domain.service.ProjectLibrarySvr; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchOut; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchQry; @@ -29,35 +32,84 @@ public class AProjectLibrarySvrImpl implements AProjectLibrarySvr { BaseConfigQuerySvr baseConfigQuerySvr; @Resource - ProjectPlanQueryService projectPlanQueryService; + ProjectLibraryRepository projectLibraryRepository; @Resource - ProjectLibraryRepository projectLibraryRepository; + ProjectInfoRepository projectInfoRepository; + + @Resource + ProjectInfoPlanDomainSvr projectInfoPlanDomainSvr; @Override public void saveProjectLibrary(ProjectLibraryCmd cmd) { - BudgetSwitchOut out = baseConfigQuerySvr.queryBudgetSwitchPageByType(BudgetSwitchQry.builder().type("涓€涓�").build()); cmd.setYear(out.getYear()); ProjectLibraryAgg agg = ProjectLibraryAssembler.cmdToAgg(cmd); Long aLong = projectLibrarySvr.saveProjectLibrary(agg); - - //todo:鎶奿d 璧嬪€煎埌椤圭洰搴撶敵鎶ヤ功閲岋紝淇濆瓨 - } @Override public void copyHistoryProjectLibrary(ProjectLibraryCmd cmd) { + //鐢熸垚 "鏂伴」鐩簱id" ProjectLibraryAgg agg = projectLibraryRepository.buildAggById(cmd.getId()); agg.setId(null); - Long aLong = projectLibrarySvr.saveProjectLibrary(agg); -// ProjectPlanBookOut projectPlanBookOut = projectPlanQueryService.queryProjectInfoPlanById(cmd.getProjectPlanBookCmd().getId()); -// todo:搴旇杩斿洖鑱氬悎鏍癸紝鍒犻櫎id锛岀粦瀹氶」鐩簱 id,淇濆瓨 + Long newId = projectLibrarySvr.saveProjectLibrary(agg); + + //鏍规嵁 "鏃ч」鐩簱id" 鍜� "椤圭洰搴撶被鍨�" 鑾峰彇璁″垝涔﹁仛鍚堟牴,璧嬪€� "鏂伴」鐩簱id" + ProjectInfoPlanAgg agg2 = new ProjectInfoPlanAgg(); + agg2.setPlanType(PlanTypeEnum.XIANGMUKU); + agg2.setProjectLibraryId(cmd.getId()); + agg2 = projectInfoRepository.queryProjectInfoPlan(agg2); + agg2.setId(null); + agg2.setProjectLibraryId(newId); + projectInfoPlanDomainSvr.saveProjectInfoPlan(agg2); } @Override public void enterProjectPlanType1(ProjectLibraryCmd cmd) { + ProjectInfoPlanAgg agg = new ProjectInfoPlanAgg(); + agg.setPlanType(PlanTypeEnum.XIANGMUKU); + agg.setProjectLibraryId(cmd.getId()); + agg = projectInfoRepository.queryProjectInfoPlan(agg); + + agg.setPlanType(PlanTypeEnum.YISHANG); + projectLibrarySvr.intoNextPlan(agg); + } + + @Override + public void enterProjectPlanType2(ProjectLibraryCmd cmd) { + + ProjectInfoPlanAgg agg = new ProjectInfoPlanAgg(); + agg.setPlanType(PlanTypeEnum.YISHANG); + agg.setProjectLibraryId(cmd.getId()); + agg = projectInfoRepository.queryProjectInfoPlan(agg); + + agg.setPlanType(PlanTypeEnum.ERSHANG); + projectLibrarySvr.intoNextPlan(agg); + } + + @Override + public void cancelEnterProjectPlanType1(ProjectLibraryCmd cmd) { + ProjectInfoPlanAgg agg = new ProjectInfoPlanAgg(); + agg.setPlanType(PlanTypeEnum.XIANGMUKU); + agg.setProjectLibraryId(cmd.getId()); + agg = projectInfoRepository.queryProjectInfoPlan(agg); + + projectLibrarySvr.cancelIntoNextPlan(agg); + } + @Override + public void cancelEnterProjectPlanType2(ProjectLibraryCmd cmd) { + ProjectInfoPlanAgg agg = new ProjectInfoPlanAgg(); + agg.setPlanType(PlanTypeEnum.ERSHANG); + agg.setProjectLibraryId(cmd.getId()); + agg = projectInfoRepository.queryProjectInfoPlan(agg); + + projectLibrarySvr.cancelIntoNextPlan(agg); + } + + @Override + public void removeProjectLibrary(ProjectLibraryCmd cmd) { } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectlibrary/ProjectLibraryQuerySvr.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectlibrary/ProjectLibraryQuerySvr.java new file mode 100644 index 000000000..9f03eee89 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectlibrary/ProjectLibraryQuerySvr.java @@ -0,0 +1,36 @@ +package com.seasky.projectplan.application.query.projectlibrary; + +import com.seasky.core.common.Pagination; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; + +/** + * 椤圭洰搴撴煡璇� svr + * + * @author chenqi + * @date 2021/06/02 + */ +public interface ProjectLibraryQuerySvr { + /** + * 鍒嗛〉鏄剧ず椤圭洰搴撲俊鎭� + * + * @param qry qry + */ + Pagination<ProjectLibraryOut> queryProjectLibraryPage(ProjectLibraryQry qry); + + /** + * 鏍规嵁鐧诲綍浜烘墍鍦ㄧ殑閮ㄩ棬闆嗗悎鑾峰彇鍏舵墍鏈夌殑椤圭洰搴撲俊鎭�(鍒嗛〉鏄剧ず) + * + * @param qry qry + * @return {@link Pagination<ProjectLibraryOut>} + */ + Pagination<ProjectLibraryOut> queryProjectLibraryPageByCurrentUserDept(ProjectLibraryQry qry); + + /** + * 鑾峰彇鐧诲綍浜烘墍鍦ㄩ儴闂ㄧ殑鍘嗗彶骞村害鐨勯」鐩簱淇℃伅(鍒嗛〉鏄剧ず) + * + * @param qry qry + * @return {@link Pagination<ProjectLibraryOut>} + */ + Pagination<ProjectLibraryOut> queryHistoryProjectLibraryPageByCurrentUserDept(ProjectLibraryQry qry); +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/common/PlanStateEnum.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/common/PlanStateEnum.java new file mode 100644 index 000000000..9bb03b168 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/common/PlanStateEnum.java @@ -0,0 +1,11 @@ +package com.seasky.projectplan.domain.aggregate.common; + +/** + * 璁″垝涔︾姸鎬佹灇涓� + * + * @author chenqi + * @date 2021/06/02 + */ +public enum PlanStateEnum { + UNCOMMITTED,APPROVED,NEWLYBUILD +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvr.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvr.java index 45e0f589e..79f02adb6 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvr.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvr.java @@ -1,5 +1,6 @@ package com.seasky.projectplan.domain.service; +import com.seasky.projectplan.domain.aggregate.projectInfoplan.ProjectInfoPlanAgg; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryAgg; /** @@ -30,4 +31,18 @@ public interface ProjectLibrarySvr { * @param projectLibraryAgg 椤圭洰鍥句功棣唃g */ void intoQuota(ProjectLibraryAgg projectLibraryAgg); + + /** + * 杩涘叆涓嬩竴闃舵璁″垝涔︾敵鎶� + * + * @param agg gg + */ + void intoNextPlan(ProjectInfoPlanAgg agg); + + /** + * 鍙栨秷杩涘叆涓嬩竴闃舵璁″垝涔︾敵鎶� + * + * @param agg gg + */ + void cancelIntoNextPlan(ProjectInfoPlanAgg agg); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvrImpl.java index 63a2bd559..581732342 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectLibrarySvrImpl.java @@ -1,6 +1,9 @@ package com.seasky.projectplan.domain.service; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.seasky.core.util.ExceptionUtil; +import com.seasky.projectplan.domain.aggregate.common.PlanStateEnum; +import com.seasky.projectplan.domain.aggregate.projectInfoplan.ProjectInfoPlanAgg; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryAgg; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryRepository; import org.springframework.stereotype.Service; @@ -19,6 +22,9 @@ public class ProjectLibrarySvrImpl implements ProjectLibrarySvr{ @Resource ProjectLibraryRepository repository; + @Resource + ProjectInfoPlanDomainSvr projectInfoPlanDomainSvr; + @Override public Long saveProjectLibrary(ProjectLibraryAgg agg) { if(ObjectUtils.isEmpty(agg.getId())){ @@ -27,7 +33,6 @@ public class ProjectLibrarySvrImpl implements ProjectLibrarySvr{ repository.modifyProjectLibrary(agg); return agg.getId(); } - } @Override @@ -39,4 +44,25 @@ public class ProjectLibrarySvrImpl implements ProjectLibrarySvr{ public void intoQuota(ProjectLibraryAgg agg) { } + + @Override + public void intoNextPlan(ProjectInfoPlanAgg agg) { + if(PlanStateEnum.APPROVED.toString().equals(agg.getState())){ + throw ExceptionUtil.getException(null,"娌℃湁瀹℃壒閫氳繃鐨勬暟鎹笉鑳借繘鍏ヤ竴涓�"); + } + agg.setState(PlanStateEnum.UNCOMMITTED.toString()); + agg.setId(null); + + projectInfoPlanDomainSvr.saveProjectInfoPlan(agg); + + } + + @Override + public void cancelIntoNextPlan(ProjectInfoPlanAgg agg) { + if(PlanStateEnum.UNCOMMITTED.toString().equals(agg.getState())){ + throw ExceptionUtil.getException(null,"闈烇紙寰呮彁浜わ級鐘舵€佷笉鑳藉彇娑堣繘鍏ヤ笅涓€鐢虫姤涔�"); + } + agg.setState(PlanStateEnum.NEWLYBUILD.toString()); + projectInfoPlanDomainSvr.saveProjectInfoPlan(agg); + } } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectLibraryMapper.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectLibraryMapper.java index 03e6d98bd..e7e00428c 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectLibraryMapper.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectLibraryMapper.java @@ -1,8 +1,13 @@ package com.seasky.projectplan.infrastructure.db.mapper.table; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seasky.core.base.BaseMapper; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; import com.seasky.projectplan.infrastructure.dataobject.po.ProjectLibraryPo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,4 +23,5 @@ public interface ProjectLibraryMapper extends BaseMapper<ProjectLibraryPo> { List<ProjectLibraryPo> selectAll(); + Page<ProjectLibraryPo> queryList(IPage<ProjectLibraryOut> page, @Param("pm") ProjectLibraryQry qry); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectLibraryMapper.xml b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectLibraryMapper.xml index c9e2c70cc..5cf71b6cb 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectLibraryMapper.xml +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectLibraryMapper.xml @@ -4,4 +4,10 @@ <select id="selectAll" resultType="com.seasky.projectplan.infrastructure.dataobject.po.ProjectLibraryPo"></select> + <select id="queryList" resultType="com.seasky.projectplan.infrastructure.dataobject.po.ProjectLibraryPo"> + select * from project_library where available = 'YES' + <if test="pm.departmentCode != null and pm.departmentCode != ''"> + and department_code = #{pm.departmentCode} + </if> + </select> </mapper> \ No newline at end of file diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java new file mode 100644 index 000000000..1d4569c40 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java @@ -0,0 +1,76 @@ +package com.seasky.projectplan.infrastructure.reader.projectlibrary; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.seasky.core.common.Pagination; +import com.seasky.projectplan.application.query.projectlibrary.ProjectLibraryQuerySvr; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; +import com.seasky.projectplan.infrastructure.db.mapper.table.ProjectLibraryMapper; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 椤圭洰搴撴煡璇vr impl + * + * @author chenqi + * @date 2021/06/02 + */ +@Service +public class ProjectLibraryQuerySvrImpl implements ProjectLibraryQuerySvr { + @Resource + ProjectLibraryMapper projectLibraryMapper; + + + @Override + public Pagination queryProjectLibraryPage(ProjectLibraryQry qry) { + Page<ProjectLibraryOut> page; + if(ObjectUtils.isEmpty(qry.getPageNumber())||ObjectUtils.isEmpty(qry.getPageSize())){ + page = new Page<>(1,10); + }else { + page = new Page<>(qry.getPageNumber(), qry.getPageSize()); + } + List<ProjectLibraryOut> outList = ProjectLibraryReaderConvert.posToOutList(projectLibraryMapper.queryList(page, ProjectLibraryQry.builder().build()).getRecords()); + + //todo:鏍规嵁 pos 鐨� ids 鍘绘煡璇� ProjectPlanBookMapper ,鑾峰彇姣忎竴涓猧d涓嬬殑涓€缁� po鏁版嵁 + + page.setRecords(outList); + return Pagination.fromPage(page); + + } + + @Override + public Pagination<ProjectLibraryOut> queryProjectLibraryPageByCurrentUserDept(ProjectLibraryQry qry) { + Page<ProjectLibraryOut> page; + if(ObjectUtils.isEmpty(qry.getPageNumber())||ObjectUtils.isEmpty(qry.getPageSize())){ + page = new Page<>(1,10); + }else { + page = new Page<>(qry.getPageNumber(), qry.getPageSize()); + } + List<ProjectLibraryOut> outList = ProjectLibraryReaderConvert.posToOutList(projectLibraryMapper.queryList(page, ProjectLibraryQry.builder().departmentCode(qry.getDepartmentCode()).build()).getRecords()); + + //todo:鏍规嵁 pos 鐨� ids 鍘绘煡璇� ProjectPlanBookMapper ,鑾峰彇姣忎竴涓猧d涓嬬殑涓€缁� po鏁版嵁 + + page.setRecords(outList); + return Pagination.fromPage(page); + } + + @Override + public Pagination<ProjectLibraryOut> queryHistoryProjectLibraryPageByCurrentUserDept(ProjectLibraryQry qry) { + Page<ProjectLibraryOut> page; + if(ObjectUtils.isEmpty(qry.getPageNumber())||ObjectUtils.isEmpty(qry.getPageSize())){ + page = new Page<>(1,10); + }else { + page = new Page<>(qry.getPageNumber(), qry.getPageSize()); + } + List<ProjectLibraryOut> outList = ProjectLibraryReaderConvert.posToOutList(projectLibraryMapper.queryList(page, ProjectLibraryQry.builder().departmentCode(qry.getDepartmentCode()).build()).getRecords()); + + //todo:鏍规嵁 pos 鐨� ids 鍘绘煡璇� ProjectPlanBookMapper ,鑾峰彇姣忎竴涓猧d涓嬬殑涓€缁� po鏁版嵁 + + page.setRecords(outList); + return Pagination.fromPage(page); + } + +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryReaderConvert.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryReaderConvert.java new file mode 100644 index 000000000..744c7bb7a --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryReaderConvert.java @@ -0,0 +1,20 @@ +package com.seasky.projectplan.infrastructure.reader.projectlibrary; + +import com.seasky.core.ddd.utils.MapperUtils; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; +import com.seasky.projectplan.infrastructure.dataobject.po.ProjectLibraryPo; + +import java.util.List; + +/** + * 椤圭洰搴撹浆鎹㈢被 + * + * @author chenqi + * @date 2021/06/02 + */ +public class ProjectLibraryReaderConvert { + + public static List<ProjectLibraryOut> posToOutList(List<ProjectLibraryPo> pos) { + return MapperUtils.INSTANCE.mapAsList(ProjectLibraryOut.class,pos); + } +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java index bfae3df87..3fccb3f5e 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java @@ -1,15 +1,21 @@ package com.seasky.projectplan.interfaces.controller; +import com.seasky.core.common.ResponseCode; import com.seasky.core.common.Result; import com.seasky.projectplan.api.IProjectLibrary; import com.seasky.projectplan.application.command.projectlibrary.AProjectLibrarySvr; +import com.seasky.projectplan.application.query.projectlibrary.ProjectLibraryQuerySvr; import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryCmd; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; +import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import static com.seasky.core.common.Response.ok; + /** * 椤圭洰搴揂PI * @@ -23,9 +29,66 @@ public class ProjectLibraryController implements IProjectLibrary { @Resource AProjectLibrarySvr service; + @Resource + ProjectLibraryQuerySvr querySvr; + @Override public Result<Object> saveProjectLibrary(@RequestBody ProjectLibraryCmd cmd) { service.saveProjectLibrary(cmd); - return null; + return ok(ResponseCode.SUCCESS); } + + + @Override + public Result<Object> copyHistoryProjectLibrary(@RequestBody ProjectLibraryCmd cmd) { + service.copyHistoryProjectLibrary(cmd); + return ok(ResponseCode.SUCCESS); + } + + @Override + public Result<Object> enterProjectPlanType1(@RequestBody ProjectLibraryCmd cmd) { + service.enterProjectPlanType1(cmd); + return ok(ResponseCode.SUCCESS); + } + + @Override + public Result<Object> enterProjectPlanType2(@RequestBody ProjectLibraryCmd cmd) { + service.enterProjectPlanType2(cmd); + return ok(ResponseCode.SUCCESS); + } + + @Override + public Result<Object> cancelEnterProjectPlanType1(@RequestBody ProjectLibraryCmd cmd) { + service.cancelEnterProjectPlanType1(cmd); + return ok(ResponseCode.SUCCESS); + } + + @Override + public Result<Object> cancelEnterProjectPlanType2(@RequestBody ProjectLibraryCmd cmd) { + service.cancelEnterProjectPlanType2(cmd); + return ok(ResponseCode.SUCCESS); + } + + @Override + public Result<Object> removeProjectLibrary(@RequestBody ProjectLibraryCmd cmd) { + service.removeProjectLibrary(cmd); + return ok(ResponseCode.SUCCESS); + } + + @Override + public Result<ProjectLibraryOut> queryProjectLibraryPage(@RequestBody ProjectLibraryQry qry) { + return ok(ResponseCode.SUCCESS,querySvr.queryProjectLibraryPage(qry)); + } + + @Override + public Result<ProjectLibraryOut> queryProjectLibraryPageByCurrentUserDept(@RequestBody ProjectLibraryQry qry) { + return ok(ResponseCode.SUCCESS,querySvr.queryProjectLibraryPageByCurrentUserDept(qry)); + } + + @Override + public Result<ProjectLibraryOut> queryHistoryProjectLibraryPageByCurrentUserDept(@RequestBody ProjectLibraryQry qry) { + return ok(ResponseCode.SUCCESS,querySvr.queryHistoryProjectLibraryPageByCurrentUserDept(qry)); + } + + } -- GitLab