diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoPlanAgg.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoPlanAgg.java index ca25fe2b767f2d79384a5ec573c049175bdb5801..b5955441b4178ced496f06c9179147405bbfdd8f 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoPlanAgg.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoPlanAgg.java @@ -92,6 +92,20 @@ public class ProjectInfoPlanAgg extends ProjectPlanBaseAgg { this.xinghaiProjectJson = xinghaiProjectJson; } + /** + * 淇敼椤圭洰绫诲瀷 + * + * @param id id + * @param projectType 椤圭洰绫诲瀷 + * @return {@link ProjectInfoPlanAgg} + */ + public static ProjectInfoPlanAgg modifyProjectType(Long id, String projectType){ + ProjectInfoPlanAgg projectInfoPlanAgg = new ProjectInfoPlanAgg(); + projectInfoPlanAgg.setProjectType(projectType); + projectInfoPlanAgg.setProjectTypeId(id); + return projectInfoPlanAgg; + } + /** * 璁剧疆entity1 * diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoRepository.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoRepository.java index 2bbd47f6cdc8ac3ac69ddc74462cacd294b02225..1eb3b0414fa9d04a5fcaadc4fda2c795513841a9 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoRepository.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/projectInfoplan/ProjectInfoRepository.java @@ -91,4 +91,11 @@ public interface ProjectInfoRepository extends DddRepository<ProjectInfoPlanAgg> /** 鍒ゆ柇椤圭洰绫诲瀷鏄惁琚敵鎶ヤ功浣跨敤**/ Integer countByProjectTypeId(ProjectInfoPlanAgg queryAgg); + + /** + * 淇敼椤圭洰绫诲瀷 + * + * @param projectInfoPlanAgg 椤圭洰淇℃伅璁″垝gg + */ + void modifyProjectType(ProjectInfoPlanAgg projectInfoPlanAgg); } 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 5c5bfae23e19888ebe36ea08317c30f6a8d54303..435b1f27efaae248dce0cafd3566d46d300bfbb8 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 @@ -1,5 +1,7 @@ package com.seasky.projectplan.domain.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.seasky.core.common.Error; import com.seasky.core.common.ResponseCode; import com.seasky.core.exception.DataAccessException; @@ -12,9 +14,12 @@ import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoRepository; import com.seasky.projectplan.domain.aggregate.projectInfoplan.ProjectInfoPlanAgg; import com.seasky.projectplan.domain.aggregate.projectInfoplan.ProjectInfoRepository; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchOut; +import com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo; +import com.seasky.projectplan.infrastructure.dataobject.po.ProjectPlanBookPo; import com.seasky.projectplan.infrastructure.db.mapper.table.ProjectPlanBookMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; @@ -38,6 +43,8 @@ public class BudgetInfoDomainSvrImpl implements BudgetInfoDomainSvr{ @Resource private ProjectInfoRepository projectInfoRepository; + @Resource + private ProjectInfoPlanDomainSvr projectInfoPlanDomainSvr; /** * 淇濆瓨 椤圭洰绫诲瀷 * @@ -45,6 +52,7 @@ public class BudgetInfoDomainSvrImpl implements BudgetInfoDomainSvr{ * @return {@link Integer} */ @Override + @Transactional(rollbackFor = Exception.class) public Long saveBudgetInfo(BudgetInfoAgg budgetInfoAgg) { checkSaveInfo(budgetInfoAgg); if (budgetInfoAgg.getId() == null){ @@ -63,6 +71,9 @@ public class BudgetInfoDomainSvrImpl implements BudgetInfoDomainSvr{ budgetInfoAgg.getCanUseDeptJson(), budgetInfoAgg.getFunctionDeptJson(), budgetInfoAgg.getCanUseFundJson(), budgetInfoAgg.getBeginDate(), budgetInfoAgg.getEndDate(), budgetInfoAgg.getChargerJson(), budgetInfoAgg.getHaveTarget(),budgetInfoAgg.getModel(),budgetInfoAgg.getProjectTargetId()); budgetInfoAgg = modifyAgg; + // 璋冪敤椤圭洰鐢虫姤涔︿腑鐨勪慨鏀归」鐩被鍨嬬殑鏂规硶 + ProjectInfoPlanAgg projectInfoPlanAgg = ProjectInfoPlanAgg.modifyProjectType(budgetInfoAgg.getId(),budgetInfoAgg.getBudgetName()); + projectInfoPlanDomainSvr.modifyProjectType(projectInfoPlanAgg); } verifyBudgetInfo(budgetInfoAgg); return repository.saveBudgetInfo(budgetInfoAgg); diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvr.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvr.java index d48f52e3dfa5f0151d6c79649e756178578512ca..567624febb35d874e2364214108ce7eb1036376d 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvr.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvr.java @@ -44,4 +44,11 @@ public interface ProjectInfoPlanDomainSvr { * @return {@link Integer} */ Integer modifyProcessIDByDocumentId(Long id, Long processId); + + /** + * 淇敼椤圭洰绫诲瀷 + * + * @param projectInfoPlanAgg 椤圭洰淇℃伅璁″垝gg + */ + void modifyProjectType(ProjectInfoPlanAgg projectInfoPlanAgg); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvrImpl.java index b2e2aea2524062deaed94693921eb09f441e2007..f35bcd83beb52de2e4c91213cb471355d94d3005 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/ProjectInfoPlanDomainSvrImpl.java @@ -145,4 +145,14 @@ public class ProjectInfoPlanDomainSvrImpl implements ProjectInfoPlanDomainSvr { return repository.modifyProcessIDByDocumentId(id,processId); } + /** + * 淇敼椤圭洰绫诲瀷 + * + * @param projectInfoPlanAgg 椤圭洰淇℃伅璁″垝gg + */ + @Override + public void modifyProjectType(ProjectInfoPlanAgg projectInfoPlanAgg) { + repository.modifyProjectType(projectInfoPlanAgg); + } + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/projectplanbook/projectinfoplan/ProjectInfoRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/projectplanbook/projectinfoplan/ProjectInfoRepositoryImpl.java index 0859e3fa4a29f7f8aec103fa3b96ad047e616884..253c4251a9f4842c2b011a6216f47e2ce14ac459 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/projectplanbook/projectinfoplan/ProjectInfoRepositoryImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/projectplanbook/projectinfoplan/ProjectInfoRepositoryImpl.java @@ -1,6 +1,7 @@ package com.seasky.projectplan.infrastructure.repository.projectplanbook.projectinfoplan; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.seasky.core.common.Error; import com.seasky.core.common.ResponseCode; import com.seasky.core.ddd.base.DomainKeysMap; @@ -238,6 +239,18 @@ public class ProjectInfoRepositoryImpl implements ProjectInfoRepository { return mapper.countByProjectTypeId(queryAgg.getProjectTypeId()); } + /** + * 淇敼椤圭洰绫诲瀷 + * + * @param projectInfoPlanAgg 椤圭洰淇℃伅璁″垝gg + */ + @Override + public void modifyProjectType(ProjectInfoPlanAgg projectInfoPlanAgg) { + UpdateWrapper<ProjectPlanBookPo> projectPlanBookPoUpdateWrapper = new UpdateWrapper<>(); + projectPlanBookPoUpdateWrapper.eq("project_type_id",projectInfoPlanAgg.getProjectTypeId()).set("project_type",projectInfoPlanAgg.getProjectType()); + mapper.update(null,projectPlanBookPoUpdateWrapper); + } + @Override public Long save(ProjectInfoPlanAgg aggregate) { return null;