From 02706ba12c8c23867ae4917b01c55335c93e50f3 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 16:13:53 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=BB=E5=B9=B2=E9=80=80=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ningdatech/pmapi/projectdeclared/manage/OperationManage.java | 6 ++++++ .../com/ningdatech/pmapi/projectdeclared/manage/PurchaseManage.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java index ee0f200..518258a 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java @@ -8,6 +8,7 @@ import com.ningdatech.pmapi.projectdeclared.model.dto.OperationDTO; import com.ningdatech.pmapi.projectdeclared.model.entity.Operation; import com.ningdatech.pmapi.projectdeclared.model.vo.OperationVO; import com.ningdatech.pmapi.projectdeclared.service.IOperationService; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; @@ -58,6 +59,11 @@ public class OperationManage { VUtils.isTrue(Objects.isNull(project)) .throwMessage("项目不存在!"); + //首先要判断 项目当前状态 是不是 待开工状态 + VUtils.isTrue(!ProjectStatusEnum.OPERATION.getCode().equals(project.getStatus()) || + !ProjectStatusEnum.PROJECT_APPROVED.getCode().equals(project.getStage())) + .throwMessage("提交失败 该项目不是 待开工或者已立项阶段"); + Operation old = operationService.getOne(Wrappers.lambdaQuery(Operation.class) .eq(Operation::getProjectId, project.getProjectCode()) .last(BizConst.LIMIT_1)); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PurchaseManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PurchaseManage.java index 98c7f11..7f71b70 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PurchaseManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/PurchaseManage.java @@ -74,7 +74,8 @@ public class PurchaseManage { VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); LambdaQueryWrapper query = ProjectHelper.projectQuery(req); //待采购状态 - query.eq(Project::getStatus, ProjectStatusEnum.TO_BE_PURCHASED.getCode()); + query.in(Project::getStatus, Lists.newArrayList(ProjectStatusEnum.TO_BE_PURCHASED.getCode(), + ProjectStatusEnum.OPERATION.getCode())); query.eq(Project::getStage, ProjectStatusEnum.PROJECT_APPROVED.getCode()); query.eq(Project::getNewest, Boolean.TRUE); query.orderByAsc(Project::getApprovalDate); From 3819faf7df717f133badffbeb8e58f7fac02d02c Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 16:27:18 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java index 518258a..033aa75 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java @@ -46,7 +46,7 @@ public class OperationManage { .throwMessage("项目不存在!"); Operation operation = operationService.getOne(Wrappers.lambdaQuery(Operation.class) - .eq(Operation::getProjectId, project.getProjectCode()) + .eq(Operation::getProjectCode, project.getProjectCode()) .last(BizConst.LIMIT_1)); return BeanUtil.copyProperties(operation,OperationVO.class); @@ -65,7 +65,7 @@ public class OperationManage { .throwMessage("提交失败 该项目不是 待开工或者已立项阶段"); Operation old = operationService.getOne(Wrappers.lambdaQuery(Operation.class) - .eq(Operation::getProjectId, project.getProjectCode()) + .eq(Operation::getProjectCode, project.getProjectCode()) .last(BizConst.LIMIT_1)); Operation entity = BeanUtil.copyProperties(operation, Operation.class); From 4718d441cd638c4413130a202f8892ac4d09d27f Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 16:38:31 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java index 0455b64..aaf4cf4 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java @@ -1709,6 +1709,8 @@ public class TodoCenterManage { Map projectsMap = projects.stream().collect(Collectors.toMap(Project::getId, v -> v)); Map projectInfoMap = projectInstList.stream() + .filter(p -> StringUtils.isNotBlank(p.getInstCode()) && + !TodoCenterConstant.Declared.NULL_INST_CODE.equals(p.getInstCode())) .collect(Collectors.toMap(ProjectInst::getInstCode, p -> projectsMap.get(p.getProjectId()))); // 关联项目信息 List projectList = list.stream() From be8eedf04f46084ab72eb1ecc1bd749a2c28d8bf Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 16:44:40 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pmapi/projectdeclared/controller/OperationController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java index 45827e8..7d91099 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java @@ -32,7 +32,7 @@ public class OperationController { return operationManage.detail(projectId); } - @GetMapping("/push-operation") + @PostMapping("/push-operation") @ApiOperation("推送实施信息") @WebLog("推送实施信息") public String pushOperation(@RequestBody OperationDTO operation) { From ac3da78e485a7c02a782867204bcf6bc6df5bcb8 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 16:48:41 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pmapi/projectdeclared/controller/OperationController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java index 7d91099..0ca7f11 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/controller/OperationController.java @@ -33,8 +33,8 @@ public class OperationController { } @PostMapping("/push-operation") - @ApiOperation("推送实施信息") - @WebLog("推送实施信息") + @ApiOperation("填写实施计划") + @WebLog("填写实施计划") public String pushOperation(@RequestBody OperationDTO operation) { return operationManage.pushOperation(operation); } From a6d6b36638b8e6cb1ec8c08aed01b4eb3a4a51c1 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 16:54:59 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=90=8E=20=E8=B0=83=E7=94=A8=E7=8A=B6=E6=80=81=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ningdatech/pmapi/projectdeclared/manage/OperationManage.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java index 033aa75..0dbee64 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/OperationManage.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ningdatech.basic.function.VUtils; import com.ningdatech.pmapi.common.constant.BizConst; +import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.projectdeclared.model.dto.OperationDTO; import com.ningdatech.pmapi.projectdeclared.model.entity.Operation; import com.ningdatech.pmapi.projectdeclared.model.vo.OperationVO; @@ -35,6 +36,8 @@ public class OperationManage { private final IProjectService projectService; + private final StateMachineUtils stateMachineUtils; + /** * 获取实施详情 * @param projectId @@ -78,7 +81,11 @@ public class OperationManage { entity.setProjectCode(project.getProjectCode()); entity.setUpdateOn(LocalDateTime.now()); entity.setUpdateBy(user.getUsername()); - operationService.saveOrUpdate(entity); + if(operationService.saveOrUpdate(entity)){ + stateMachineUtils.pass(project); + project.setUpdateOn(LocalDateTime.now()); + projectService.updateById(project); + } return entity.getProjectCode(); } From c301ad1575f1291d17ec64299d047457dacb5657 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 31 Jul 2023 18:00:09 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=90=8E=20=E8=B0=83=E7=94=A8=E7=8A=B6=E6=80=81=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pmapi/src/test/java/com/ningdatech/pmapi/irs/IrsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pmapi/src/test/java/com/ningdatech/pmapi/irs/IrsTest.java b/pmapi/src/test/java/com/ningdatech/pmapi/irs/IrsTest.java index 083f793..e0c0d1c 100644 --- a/pmapi/src/test/java/com/ningdatech/pmapi/irs/IrsTest.java +++ b/pmapi/src/test/java/com/ningdatech/pmapi/irs/IrsTest.java @@ -45,7 +45,7 @@ public class IrsTest extends AppTests { public void test1(){ String method = "GET"; String url = "https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl" + - "?appCode=A331123467587202307014177"; + "?appCode=A331101453557202109017383"; String appScret = "BCDSGS_4ab4235d26a9a357170a39f3a13fd68c"; String appKey = "BCDSGA_d874c8e46b541eb4e8aac6510fd3351b"; From a9de05f9e9a5227e4b91ec16e81374cef697d672 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Tue, 1 Aug 2023 14:01:55 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pmapi/projectlib/manage/ProjectLibManage.java | 227 +++++++-------------- 1 file changed, 76 insertions(+), 151 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java index 177679e..3e98ca4 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java @@ -272,30 +272,6 @@ public class ProjectLibManage { projectService.updateById(project); } } - - //保存项目应用 - Boolean isApp = Objects.nonNull(projectDto.getIncludeApplication()) && CommonEnum.YES.getCode().equals(projectDto.getIncludeApplication()) - ? Boolean.TRUE : Boolean.FALSE; - //采取批量删除 批量添加的方式 - Integer version = Objects.nonNull(project.getVersion()) ? project.getVersion() : 1; - projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectCode, project.getProjectCode()) - .eq(ProjectApplication::getProjectVersion, version)); - if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { - Project finalProject = project; - List applications = projectDto.getApplicationList().stream().map(application -> { - ProjectApplication projectApplication = new ProjectApplication(); - BeanUtils.copyProperties(application, projectApplication); - projectApplication.setId(null); - projectApplication.setProjectId(finalProject.getId()); - projectApplication.setProjectCode(finalProject.getProjectCode()); - projectApplication.setBuildOrgCode(finalProject.getBuildOrgCode()); - projectApplication.setBuildOrgName(finalProject.getBuildOrgName()); - projectApplication.setProjectVersion(version); - return projectApplication; - }).collect(Collectors.toList()); - projectApplicationService.saveOrUpdateBatch(applications); - } return project; } catch (Exception e) { log.error("项目信息入库错误 " + e); @@ -356,49 +332,6 @@ public class ProjectLibManage { projectService.updateById(project); } } - - //保存项目应用 - Boolean isApp = Objects.nonNull(projectDto.getIncludeApplication()) && CommonEnum.YES.getCode().equals(projectDto.getIncludeApplication()) - ? Boolean.TRUE : Boolean.FALSE; - //采取批量删除 批量添加的方式 批量删除建设方案申报后的应用信息及关联的核心业务 - List applications = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectCode, project.getProjectCode()) - .eq(ProjectApplication::getProjectVersion, project.getVersion()) - .eq(ProjectApplication::getIsConstruct, Boolean.TRUE)); - if (CollUtil.isNotEmpty(applications)) { - projectApplicationService.removeBatchByIds(applications); - List applicationIds = applications.stream().map(ProjectApplication::getId).collect(Collectors.toList()); - projectCoreBusinessIndicatorsService.remove(Wrappers.lambdaQuery(ProjectCoreBusinessIndicators.class) - .in(ProjectCoreBusinessIndicators::getApplicationId,applicationIds)); - } - - if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { - Project finalProject = project; - List applicationList = projectDto.getApplicationList(); - for (ProjectApplicationDTO application : applicationList) { - ProjectApplication projectApplication = new ProjectApplication(); - BeanUtils.copyProperties(application, projectApplication); - projectApplication.setId(null); - projectApplication.setProjectId(finalProject.getId()); - projectApplication.setProjectCode(finalProject.getProjectCode()); - projectApplication.setBuildOrgCode(finalProject.getBuildOrgCode()); - projectApplication.setBuildOrgName(finalProject.getBuildOrgName()); - projectApplication.setIsConstruct(Boolean.TRUE); - projectApplication.setProjectVersion(finalProject.getVersion()); - boolean result = projectApplicationService.save(projectApplication); - // 保存应用关联的核心业务 - List coreBusinessList = application.getCoreBusinessList(); - Boolean hasCoreBusiness = CollUtil.isNotEmpty(coreBusinessList) ? Boolean.TRUE : Boolean.FALSE; - if (Boolean.TRUE.equals(result) && Boolean.TRUE.equals(hasCoreBusiness)){ - for (ProjectCoreBusinessDTO coreBusiness : coreBusinessList) { - ProjectCoreBusinessIndicators projectCoreBusinessIndicators = new ProjectCoreBusinessIndicators(); - BeanUtils.copyProperties(coreBusiness, projectCoreBusinessIndicators); - projectCoreBusinessIndicators.setApplicationId(application.getId()); - projectCoreBusinessIndicatorsService.save(projectCoreBusinessIndicators); - } - } - } - } return project; } catch (Exception e) { log.error("项目信息入库错误 " + e); @@ -416,29 +349,7 @@ public class ProjectLibManage { public Project reSaveProjectNewVersion(ProjectDTO projectDto) { //流程启动之后 入库项目 重要业务信息 用于列表查询 展示 try { - Project project = newProjectWithVersion(projectDto); - - //保存项目应用 - Boolean isApp = Objects.nonNull(projectDto.getIncludeApplication()) && CommonEnum.YES.getCode().equals(projectDto.getIncludeApplication()) - ? Boolean.TRUE : Boolean.FALSE; - //采取批量删除 批量添加的方式 - projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectCode, project.getProjectCode()) - .eq(ProjectApplication::getProjectVersion, project.getVersion())); - if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { - Project finalProject = project; - List applications = projectDto.getApplicationList().stream().map(application -> { - ProjectApplication projectApplication = new ProjectApplication(); - BeanUtils.copyProperties(application, projectApplication); - projectApplication.setId(null); - projectApplication.setProjectId(finalProject.getId()); - projectApplication.setProjectCode(finalProject.getProjectCode()); - projectApplication.setProjectVersion(finalProject.getVersion()); - return projectApplication; - }).collect(Collectors.toList()); - projectApplicationService.saveOrUpdateBatch(applications); - } - return project; + return newProjectWithVersion(projectDto); } catch (Exception e) { log.error("项目信息入库错误 " + e); throw new BusinessException("项目信息入库错误 :" + e); @@ -470,6 +381,8 @@ public class ProjectLibManage { .ne(Project::getId, project.getId()) .eq(Project::getProjectCode, project.getProjectCode())); + saveApplication(projecDto,project,null); + return project; } @@ -499,41 +412,14 @@ public class ProjectLibManage { .ne(Project::getId, project.getId()) .eq(Project::getProjectCode, project.getProjectCode())); - //删除当前版本的app 一般情况是没有 保险起见 - List applications = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectCode, project.getProjectCode()) - .eq(ProjectApplication::getProjectVersion, project.getVersion())); - if (CollUtil.isNotEmpty(applications)) { - projectApplicationService.removeBatchByIds(applications); - List applicationIds = applications.stream().map(ProjectApplication::getId).collect(Collectors.toList()); - projectCoreBusinessIndicatorsService.remove(Wrappers.lambdaQuery(ProjectCoreBusinessIndicators.class) - .in(ProjectCoreBusinessIndicators::getApplicationId, applicationIds)); - } - //app - List applicationList = projecDto.getApplicationList(); - if (CollUtil.isNotEmpty(applicationList)) { - List apps = applicationList.stream() - .map(a -> { - ProjectApplication app = BeanUtil.copyProperties(a, ProjectApplication.class); - app.setId(null); - app.setProjectId(project.getId()); - app.setProjectCode(project.getProjectCode()); - app.setBuildOrgName(project.getBuildOrgName()); - app.setBuildOrgCode(project.getBuildOrgCode()); - app.setIsConstruct(isConstruct); - app.setProjectVersion(project.getVersion()); - return app; - }) - .collect(Collectors.toList()); - projectApplicationService.saveBatch(apps); - } + saveApplication(projecDto,project,isConstruct); } return project; } - public Project saveProjectWithVersion(ProjectDTO projecDto, String instanceId, Integer instType) { + public Project saveProjectWithVersion(ProjectDTO projecDto, String instanceId, Integer instType,Boolean isConstruct) { Project oldProject = projectService.getById(projecDto.getId()); Project project = new Project(); VUtils.isTrue(Objects.isNull(oldProject)) @@ -564,27 +450,7 @@ public class ProjectLibManage { .eq(Project::getProjectCode, project.getProjectCode())); //app - //采取批量删除 批量添加的方式 - projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectCode, project.getProjectCode()) - .eq(ProjectApplication::getProjectVersion, project.getVersion())); - - List applicationList = projecDto.getApplicationList(); - if (CollUtil.isNotEmpty(applicationList)) { - List apps = applicationList.stream() - .map(a -> { - ProjectApplication app = BeanUtil.copyProperties(a, ProjectApplication.class); - app.setId(null); - app.setProjectId(project.getId()); - app.setProjectCode(project.getProjectCode()); - app.setBuildOrgName(project.getBuildOrgName()); - app.setBuildOrgCode(project.getBuildOrgCode()); - app.setProjectVersion(project.getVersion()); - return app; - }) - .collect(Collectors.toList()); - projectApplicationService.saveBatch(apps); - } + saveApplication(projecDto,project,isConstruct); } return project; @@ -617,17 +483,7 @@ public class ProjectLibManage { .ne(Project::getId, project.getId()) .eq(Project::getProjectCode, project.getProjectCode())); - List apps = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectId, oldProject.getId())); - if(CollUtil.isNotEmpty(apps)){ - apps = apps.stream().map(app -> { - app.setProjectVersion(project.getVersion()); - app.setProjectId(project.getId()); - app.setId(null); - return app; - }).collect(Collectors.toList()); - projectApplicationService.saveBatch(apps); - } + saveApplication(project,oldProject,null); } return project; @@ -662,6 +518,9 @@ public class ProjectLibManage { .set(Project::getNewest, Boolean.FALSE) .ne(Project::getId, project.getId()) .eq(Project::getProjectCode, project.getProjectCode())); + + //APP + saveApplication(project,oldProject,null); } return project; @@ -696,6 +555,8 @@ public class ProjectLibManage { .set(Project::getNewest, Boolean.FALSE) .ne(Project::getId, project.getId()) .eq(Project::getProjectCode, project.getProjectCode())); + + saveApplication(project,oldProject,Boolean.TRUE); } return project; @@ -1209,4 +1070,68 @@ public class ProjectLibManage { res.put(ProjectConstant.ProjectLib.PROCESS_KEY, todoService.getProcessDetail(req)); return res; } + + private void saveApplication(Project project,Project oldProject,Boolean isConstruct) { + List apps = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) + .eq(ProjectApplication::getProjectCode, oldProject.getProjectCode()) + .eq(ProjectApplication::getProjectVersion, oldProject.getVersion())); + if(CollUtil.isNotEmpty(apps)){ + apps = apps.stream().map(app -> { + app.setProjectVersion(project.getVersion()); + app.setProjectId(project.getId()); + app.setId(null); + if(Objects.nonNull(isConstruct)){ + app.setIsConstruct(isConstruct); + } + return app; + }).collect(Collectors.toList()); + projectApplicationService.saveBatch(apps); + } + } + + private void saveApplication(ProjectDTO projectDto,Project project,Boolean isConstruct) { + //保存项目应用 + Boolean isApp = Objects.nonNull(projectDto.getIncludeApplication()) && CommonEnum.YES.getCode().equals(projectDto.getIncludeApplication()) + ? Boolean.TRUE : Boolean.FALSE; + //采取批量删除 批量添加的方式 + Integer version = Objects.nonNull(project.getVersion()) ? project.getVersion() : 1; + //删除当前版本的app 一般情况是没有 保险起见 + List applications = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) + .eq(ProjectApplication::getProjectCode, project.getProjectCode()) + .eq(ProjectApplication::getProjectVersion, version)); + if (CollUtil.isNotEmpty(applications)) { + projectApplicationService.removeBatchByIds(applications); + List applicationIds = applications.stream().map(ProjectApplication::getId).collect(Collectors.toList()); + projectCoreBusinessIndicatorsService.remove(Wrappers.lambdaQuery(ProjectCoreBusinessIndicators.class) + .in(ProjectCoreBusinessIndicators::getApplicationId, applicationIds)); + } + + if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { + Project finalProject = project; + projectDto.getApplicationList().forEach(application -> { + ProjectApplication projectApplication = new ProjectApplication(); + BeanUtils.copyProperties(application, projectApplication); + projectApplication.setId(null); + projectApplication.setProjectId(finalProject.getId()); + projectApplication.setProjectCode(finalProject.getProjectCode()); + projectApplication.setBuildOrgCode(finalProject.getBuildOrgCode()); + projectApplication.setBuildOrgName(finalProject.getBuildOrgName()); + projectApplication.setProjectVersion(version); + projectApplication.setIsConstruct(isConstruct); + + boolean result = projectApplicationService.save(projectApplication); + // 保存应用关联的核心业务 + List coreBusinessList = application.getCoreBusinessList(); + Boolean hasCoreBusiness = CollUtil.isNotEmpty(coreBusinessList) ? Boolean.TRUE : Boolean.FALSE; + if (Boolean.TRUE.equals(result) && Boolean.TRUE.equals(hasCoreBusiness)){ + for (ProjectCoreBusinessDTO coreBusiness : coreBusinessList) { + ProjectCoreBusinessIndicators projectCoreBusinessIndicators = new ProjectCoreBusinessIndicators(); + BeanUtils.copyProperties(coreBusiness, projectCoreBusinessIndicators); + projectCoreBusinessIndicators.setApplicationId(application.getId()); + projectCoreBusinessIndicatorsService.save(projectCoreBusinessIndicators); + } + } + }); + } + } } From b37d77204a1d9ff0ae6be3319010535627dcbcaf Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Tue, 1 Aug 2023 16:05:40 +0800 Subject: [PATCH 9/9] =?UTF-8?q?debug=20=E9=A2=84=E5=AE=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java index 3e98ca4..810d0ab 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java @@ -764,7 +764,8 @@ public class ProjectLibManage { // 查询应用 List applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) .eq(ProjectApplication::getProjectCode, vo.getProjectCode()) - .eq(ProjectApplication::getIsConstruct, Boolean.FALSE)); + .eq(ProjectApplication::getIsConstruct, Boolean.FALSE) + .eq(ProjectApplication::getProjectVersion, projectInfo.getVersion())); Optional.ofNullable(applications).ifPresent(apps -> vo.setProjectApplications(CollUtils.convert(apps,