From 932a37eb4a078083bb393d293ae03c304ea23dbf Mon Sep 17 00:00:00 2001 From: XLR_asd <xueyawei@seaskysh.com> Date: Thu, 20 May 2021 09:22:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E9=A1=B9=E7=9B=AE=E7=B1=BB=E5=9E=8B=20C?= =?UTF-8?q?=E7=BA=BFdomain=E5=B1=82=E3=80=81=E4=BB=93=E5=82=A8=E5=B1=82=20?= =?UTF-8?q?=20=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=9B=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../budgetinfo/BudgetInfoRepository.java | 10 ++++ .../service/BudgetInfoDomainSvrImpl.java | 35 +++++++++----- .../db/mapper/table/BudgetInfoMapper.java | 13 ++++-- .../db/mapper/xml/BudgetInfoMapper.xml | 46 ++++++++++++++++++- .../budgetinfo/BudgetInfoConvert.java | 12 +++++ .../budgetinfo/BudgetInfoRepositoryImpl.java | 19 +++++++- 6 files changed, 116 insertions(+), 19 deletions(-) diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java index acbdc2701..3b441743f 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java @@ -2,6 +2,8 @@ package com.seasky.projectplan.domain.aggregate.budgetinfo; import com.seasky.core.ddd.base.DddRepository; +import java.util.List; + /** * 椤圭洰绫诲瀷浠撳偍灞� * @@ -33,4 +35,12 @@ public interface BudgetInfoRepository extends DddRepository<BudgetInfoAgg> { * @return {@link BudgetInfoAgg} */ BudgetInfoAgg queryBudgetInfo(BudgetInfoAgg budgetInfoAgg); + + /** + * 鏌ヨ椤圭洰绫诲瀷C绾� + * + * @param budgetInfoAgg 缁忚垂鎬� + * @return {@link BudgetInfoAgg} + */ + List<BudgetInfoAgg> queryBudgetInfoList(BudgetInfoAgg budgetInfoAgg); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/BudgetInfoDomainSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/BudgetInfoDomainSvrImpl.java index 1f57cb28d..a9c9042f6 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/BudgetInfoDomainSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/BudgetInfoDomainSvrImpl.java @@ -9,6 +9,8 @@ import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 椤圭洰绫诲瀷DomainSvrimpl * @@ -30,23 +32,21 @@ public class BudgetInfoDomainSvrImpl implements BudgetInfoDomainSvr{ */ @Override public Integer saveBudgetInfo(BudgetInfoAgg budgetInfoAgg) { - if(budgetInfoAgg.getParentBudgetId() != null){ - if (repository.queryBudgetInfo(BudgetInfoAgg.builder().id(budgetInfoAgg.getParentBudgetId()).build()) == null){ - throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "鎵€閫夐」鐩被鍨嬬埗绾т笉瀛樺湪", "")); - } + if (budgetInfoAgg.getBudgetName() == null || budgetInfoAgg.getBudgetCode() == null || budgetInfoAgg.getParentBudgetId() == null){ + throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "椤圭洰绫诲瀷鍚嶇О銆佺紪鍙蜂笉鑳戒负绌�,蹇呴』鎸囧畾鍏剁埗绾�", "")); + } + if (repository.queryBudgetInfo(BudgetInfoAgg.builder().id(budgetInfoAgg.getParentBudgetId()).build()) == null){ + throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "鎵€閫夐」鐩被鍨嬬埗绾т笉瀛樺湪", "")); } + verifyBudgetInfo(budgetInfoAgg); - //TODO year濡傛灉涓虹┖ 榛樿鑾峰彇baseconfig涓殑 BudgetSwitchEntity鐨剏ear灞炴€� + //TODO year濡傛灉涓虹┖ 榛樿鑾峰彇base config涓殑 BudgetSwitchEntity鐨剏ear灞炴€� - verifyBudgetInfo(budgetInfoAgg); if (budgetInfoAgg.getId() == null){ //鏂板 - if (budgetInfoAgg.getBudgetName() == null || budgetInfoAgg.getBudgetCode() == null || budgetInfoAgg.getParentBudgetId() == null){ - throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "椤圭洰绫诲瀷鍚嶇О銆佺紪鍙蜂笉鑳戒负绌�,蹇呴』鎸囧畾鍏剁埗绾�", "")); - } }else { //淇敼 - BudgetInfoAgg modifyAgg = repository.queryBudgetInfo(budgetInfoAgg); + BudgetInfoAgg modifyAgg = repository.queryBudgetInfo(BudgetInfoAgg.builder().id(budgetInfoAgg.getId()).build()); if (modifyAgg == null){ throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "鎵句笉鍒拌淇敼鐨勯」鐩被鍨嬪璞�", "")); } @@ -66,9 +66,20 @@ public class BudgetInfoDomainSvrImpl implements BudgetInfoDomainSvr{ */ @Override public Integer removeBudgetInfo(BudgetInfoAgg budgetInfoAgg) { - return null; + BudgetInfoAgg modifyAgg = repository.queryBudgetInfo(BudgetInfoAgg.builder().id(budgetInfoAgg.getId()).build()); + if (modifyAgg == null){ + throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "鎵句笉鍒拌鍒犻櫎鐨勯」鐩被鍨嬪璞�", "")); + } + List<BudgetInfoAgg> modifyAggList = repository.queryBudgetInfoList(BudgetInfoAgg.builder().parentBudgetId(budgetInfoAgg.getId()).build()); + if (modifyAggList.size() > 0){ + throw new DataVerifyException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "璇ラ」鐩被鍨嬪璞″瓨鍦ㄥ瓙绾�,涓嶈兘鍒犻櫎", "")); + } + return repository.removeBudgetInfo(budgetInfoAgg); } + + + /** * 鏂板/淇敼 椤圭洰绫诲瀷 楠岃瘉鏄惁閲嶅 * @@ -83,7 +94,7 @@ public class BudgetInfoDomainSvrImpl implements BudgetInfoDomainSvr{ if (verifyName != null){ verify = false; if (budgetInfoAgg.getId() != null){ - //id涓嶄负绌�(鍗充慨鏀归」鐩被鍨�) 鏃� 鏍¢獙閲嶅闇€鎺掗櫎鑷韩 + //id涓嶄负绌�(鍗虫墽琛屼慨鏀归」鐩被鍨嬩笟鍔�) 鏃� 鏍¢獙閲嶅鎬ч渶鎺掗櫎鑷韩 if (budgetInfoAgg.getId().equals(verifyName.getId())){ verify = true; } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java index 8c3de2e53..883ac71da 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java @@ -29,11 +29,18 @@ public interface BudgetInfoMapper extends BaseMapper<BudgetInfoPo> { /** - * 鏌ヨ璧勯噾 - * 鏌ヨ缁忚垂淇℃伅C绾� + * 鏌ヨ璧勯噾C绾� * * @param budgetInfoQo 棰勭畻淇℃伅Qo * @return {@link BudgetInfoPo} */ - BudgetInfoPo queryFunding(@Param("pm") BudgetInfoQo budgetInfoQo); + BudgetInfoPo queryBudgetInfo(@Param("pm") BudgetInfoQo budgetInfoQo); + + /** + * 鏌ヨ璧勯噾闆嗗悎C绾� + * + * @param budgetInfoQo 棰勭畻淇℃伅Qo + * @return {@link BudgetInfoPo} + */ + List<BudgetInfoPo> queryBudgetInfoList(@Param("pm") BudgetInfoQo budgetInfoQo); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/BudgetInfoMapper.xml b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/BudgetInfoMapper.xml index 7fe89aa27..195a7fb81 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/BudgetInfoMapper.xml +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/BudgetInfoMapper.xml @@ -13,7 +13,50 @@ </update> - <select id="queryFunding" resultType="com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo"> + <select id="queryBudgetInfo" resultType="com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo"> + select * from budget_info + <where> + available = 'YES' + <if test="pm.id != null"> + and id = #{pm.id} + </if> + <if test="pm.year != null"> + and year = #{pm.year} + </if> + <if test="pm.budgetName != null and pm.budgetName != ''"> + and budget_name = #{pm.budgetName} + </if> + <if test="pm.budgetCode != null and pm.budgetCode != ''"> + and budget_code = #{pm.budgetCode} + </if> + <if test="pm.parentBudgetId != null"> + and funding_name = #{pm.parentBudgetId} + </if> + <if test="pm.canUseDeptJson != null and pm.canUseDeptJson != ''"> + and can_use_dept_json = #{pm.canUseDeptJson} + </if> + <if test="pm.functionDeptJson != null and pm.functionDeptJson != ''"> + and function_dept_json = #{pm.functionDeptJson} + </if> + <if test="pm.canUseFundJson != null and pm.canUseFundJson != ''"> + and can_use_fund_json = #{pm.canUseFundJson} + </if> + <if test="pm.beginDate != null "> + and begin_date = #{pm.beginDate} + </if> + <if test="pm.endDate != null "> + and end_date = #{pm.endDate} + </if> + <if test="pm.chargerJson != null and pm.chargerJson != ''"> + and charger_json = #{pm.chargerJson} + </if> + <if test="pm.haveTarget != null"> + and have_target = #{pm.haveTarget} + </if> + </where> + </select> + <select id="queryBudgetInfoList" + resultType="com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo"> select * from budget_info <where> available = 'YES' @@ -55,7 +98,6 @@ </if> </where> </select> - </mapper> \ No newline at end of file diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoConvert.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoConvert.java index 3138c6cbc..eb63aeb82 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoConvert.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoConvert.java @@ -5,6 +5,8 @@ import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoAgg; import com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo; import com.seasky.projectplan.infrastructure.dataobject.qo.BudgetInfoQo; +import java.util.List; + /** * 椤圭洰绫诲瀷宸ュ巶绫� * @@ -43,4 +45,14 @@ public class BudgetInfoConvert { return MapperUtils.INSTANCE.map(BudgetInfoAgg.class,budgetInfoPo); } + /** + * po绫诲垪琛� 杞� 鑱氬悎鏍瑰垪琛� + * + * @param budgetInfoPos 棰勭畻淇℃伅pos + * @return {@link List<BudgetInfoAgg>} + */ + public static List<BudgetInfoAgg> poListToAggList(List<BudgetInfoPo> budgetInfoPos){ + return MapperUtils.INSTANCE.mapAsList(BudgetInfoAgg.class,budgetInfoPos); + } + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java index 55c68a267..b3d841afb 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java @@ -13,6 +13,8 @@ import com.seasky.projectplan.infrastructure.db.mapper.table.BudgetInfoMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 椤圭洰绫诲瀷 浠撳偍灞俰mpl * @@ -68,8 +70,21 @@ public class BudgetInfoRepositoryImpl implements BudgetInfoRepository { @Override public BudgetInfoAgg queryBudgetInfo(BudgetInfoAgg budgetInfoAgg) { BudgetInfoQo fundingQo = BudgetInfoConvert.aggToQo(budgetInfoAgg); - BudgetInfoPo fundingParam = budgetInfoMapper.queryFunding(fundingQo); - return BudgetInfoConvert.poToAgg(fundingParam); + BudgetInfoPo budgetInfoPo = budgetInfoMapper.queryBudgetInfo(fundingQo); + return BudgetInfoConvert.poToAgg(budgetInfoPo); + } + + /** + * 鏌ヨ椤圭洰绫诲瀷淇℃伅鍒楄〃 + * + * @param budgetInfoAgg 棰勭畻淇℃伅鑱氬悎鏍� + * @return {@link List<BudgetInfoAgg>} + */ + @Override + public List<BudgetInfoAgg> queryBudgetInfoList(BudgetInfoAgg budgetInfoAgg) { + BudgetInfoQo fundingQo = BudgetInfoConvert.aggToQo(budgetInfoAgg); + List<BudgetInfoPo> budgetInfoPos = budgetInfoMapper.queryBudgetInfoList(fundingQo); + return BudgetInfoConvert.poListToAggList(budgetInfoPos); } -- GitLab