From 28e20fde1a77ffe5d47f95ecee64872efeb47cd0 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Wed, 9 Aug 2023 14:03:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=8B=E9=A1=B9=E6=89=B9=E5=A4=8D=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectlib/manage/AnnualPlanLibManage.java | 6 ++- .../service/IProjectApplicationService.java | 2 + .../impl/ProjectApplicationServiceImpl.java | 45 +++++++++++++++++++++- .../service/impl/ProjectServiceImpl.java | 2 + 4 files changed, 52 insertions(+), 3 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java index 8964bad..2bbe91c 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java @@ -39,6 +39,7 @@ import com.ningdatech.pmapi.projectlib.model.req.ProjectIdReq; import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; import com.ningdatech.pmapi.projectlib.model.req.StartProjectDeclareReq; import com.ningdatech.pmapi.projectlib.model.vo.AnnualPlanListItemVO; +import com.ningdatech.pmapi.projectlib.service.IProjectApplicationService; import com.ningdatech.pmapi.projectlib.service.IProjectRenewalFundDeclarationService; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; @@ -73,10 +74,11 @@ import static com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum.*; public class AnnualPlanLibManage { private final IProjectService projectService; + + private final IProjectApplicationService applicationService; private final StateMachineUtils stateMachine; private final UserInfoHelper userInfoHelper; private final IProjectRenewalFundDeclarationService projectRenewalFundDeclarationService; - private final ProjectLibManage projectLibManage; /** * 年度计划查询状态 @@ -164,7 +166,7 @@ public class AnnualPlanLibManage { project.setProjectCode(oldProject.getProjectCode()); project.setVersion(oldProject.getVersion() + 1); if(projectService.save(project)){ - projectLibManage.saveApplication(project,oldProject,Boolean.TRUE); + applicationService.saveApplication(project,oldProject,Boolean.TRUE); // 将旧的项目版本置为不是最新 projectService.update(Wrappers.lambdaUpdate(Project.class) .set(Project::getNewest, Boolean.FALSE) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/IProjectApplicationService.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/IProjectApplicationService.java index a29ec65..1c52dd5 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/IProjectApplicationService.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/IProjectApplicationService.java @@ -17,4 +17,6 @@ import java.util.List; public interface IProjectApplicationService extends IService { List getApplicationsByProject(Project project); + + void saveApplication(Project project,Project oldProject,Boolean isConstruct); } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectApplicationServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectApplicationServiceImpl.java index 4f17811..7c15752 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectApplicationServiceImpl.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectApplicationServiceImpl.java @@ -1,14 +1,20 @@ package com.ningdatech.pmapi.projectlib.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ningdatech.pmapi.performance.model.entity.ProjectCoreBusinessIndicators; +import com.ningdatech.pmapi.performance.service.IProjectCoreBusinessIndicatorsService; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.model.entity.ProjectApplication; import com.ningdatech.pmapi.projectlib.mapper.ProjectApplicationMapper; import com.ningdatech.pmapi.projectlib.service.IProjectApplicationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; /** *

@@ -19,7 +25,14 @@ import java.util.List; * @since 2023-02-05 */ @Service -public class ProjectApplicationServiceImpl extends ServiceImpl implements IProjectApplicationService { +@Slf4j +@AllArgsConstructor +public class ProjectApplicationServiceImpl extends ServiceImpl + implements IProjectApplicationService { + + private final IProjectApplicationService applicationService; + + private final IProjectCoreBusinessIndicatorsService projectCoreBusinessIndicatorsService; @Override public List getApplicationsByProject(Project project) { @@ -27,4 +40,34 @@ public class ProjectApplicationServiceImpl extends ServiceImpl apps = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) + .eq(ProjectApplication::getProjectCode, oldProject.getProjectCode()) + .eq(ProjectApplication::getProjectVersion, oldProject.getVersion())); + if(CollUtil.isNotEmpty(apps)){ + apps.forEach(app -> { + Long oldAppId = app.getId(); + app.setProjectVersion(project.getVersion()); + app.setProjectId(project.getId()); + app.setId(null); + if(Objects.nonNull(isConstruct)){ + app.setIsConstruct(isConstruct); + } + applicationService.save(app); + + //核心业务 + List cores = projectCoreBusinessIndicatorsService.list(Wrappers.lambdaQuery(ProjectCoreBusinessIndicators.class) + .eq(ProjectCoreBusinessIndicators::getApplicationId, oldAppId)); + if(CollUtil.isNotEmpty(cores)){ + cores.forEach(c -> { + c.setId(null); + c.setApplicationId(app.getId()); + projectCoreBusinessIndicatorsService.save(c); + }); + } + }); + } + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectServiceImpl.java index 4530ea2..6213cc1 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectServiceImpl.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/service/impl/ProjectServiceImpl.java @@ -4,8 +4,10 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ningdatech.pmapi.common.constant.BizConst; +import com.ningdatech.pmapi.performance.model.entity.ProjectCoreBusinessIndicators; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.mapper.ProjectMapper; +import com.ningdatech.pmapi.projectlib.model.entity.ProjectApplication; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service;