From b4ed7f23a367a7a96c690fd70a544d5f19465d67 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Wed, 1 Nov 2023 14:18:10 +0800 Subject: [PATCH] =?UTF-8?q?debug=20=E8=BF=90=E7=BB=B4=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GovProjectCollectionController.java | 7 ++ .../gov/manage/GovProjectCollectionManage.java | 129 +++++++++++++++++++++ .../model/dto/GovOperationProjectBaseinfoDTO.java | 2 + .../gov/model/entity/GovOperationProjectDraft.java | 1 + .../pmapi/projectCollection/ProjectRemoveTest.java | 2 +- 5 files changed, 140 insertions(+), 1 deletion(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/controller/GovProjectCollectionController.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/controller/GovProjectCollectionController.java index b86ca5f..14d7e1e 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/controller/GovProjectCollectionController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/controller/GovProjectCollectionController.java @@ -179,4 +179,11 @@ public class GovProjectCollectionController { public String stagingConvertPdf3(@RequestBody List projIds) { return collectionManage.rebuildProjectCode(projIds); } + + @PostMapping("/remove-project") + @ApiOperation("删除申报项目") + @WebLog("删除申报项目") + public String removeProject(@RequestBody List projectCodes){ + return collectionManage.removeProject(projectCodes); + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java index afec155..f339ca4 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java @@ -26,20 +26,41 @@ import com.ningdatech.pmapi.gov.model.req.ProjectBaseInfoReq; import com.ningdatech.pmapi.gov.model.req.ProjectPushReq; import com.ningdatech.pmapi.gov.model.vo.*; import com.ningdatech.pmapi.gov.service.*; +import com.ningdatech.pmapi.portrait.model.entity.ProjectTag; +import com.ningdatech.pmapi.portrait.service.IProjectTagService; +import com.ningdatech.pmapi.projectdeclared.model.entity.Operation; +import com.ningdatech.pmapi.projectdeclared.model.entity.PreInsAcceptancePerson; +import com.ningdatech.pmapi.projectdeclared.model.entity.Purchase; +import com.ningdatech.pmapi.projectdeclared.service.IOperationService; +import com.ningdatech.pmapi.projectdeclared.service.IPreInsAcceptancePersonService; +import com.ningdatech.pmapi.projectdeclared.service.IPurchaseService; import com.ningdatech.pmapi.projectdeclared.utils.GenerateProjectCodeUtil; import com.ningdatech.pmapi.projectlib.enumeration.ProjectTypeEnum; import com.ningdatech.pmapi.projectlib.enumeration.ProjectTypeNewEnum; +import com.ningdatech.pmapi.projectlib.model.entity.*; import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; +import com.ningdatech.pmapi.projectlib.service.*; import com.ningdatech.pmapi.provincial.manage.ProvincialManage; +import com.ningdatech.pmapi.safety.model.entity.PersonSafetyInfo; +import com.ningdatech.pmapi.safety.model.entity.SupplierSafetyQualification; +import com.ningdatech.pmapi.safety.service.IPersonSafetyInfoService; +import com.ningdatech.pmapi.safety.service.ISupplierSafetyQualificationService; +import com.ningdatech.pmapi.staging.model.entity.ProjectStaging; +import com.ningdatech.pmapi.staging.service.IProjectStagingService; import com.ningdatech.pmapi.sys.model.entity.Role; import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.ningdatech.pmapi.user.util.LoginUserUtil; import com.ningdatech.pmapi.wps.manage.WpsConvertManage; +import com.wflow.bean.entity.WflowCcTasks; +import com.wflow.service.WflowCcTasksService; import io.swagger.annotations.ApiModelProperty; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.flowable.engine.HistoryService; +import org.flowable.engine.RuntimeService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -114,6 +135,33 @@ public class GovProjectCollectionManage { private final RegionCacheHelper regionCacheHelper; + private final IProjectService projectService; + private final IProjectApplicationService applicationService; + + private final IProjectInstService projectInstService; + + private final RuntimeService runtimeService; + + private final HistoryService historyService; + + private final WflowCcTasksService ccTasksService; + + private final IOperationService operationService; + + private final IProjectRenewalFundDeclarationService renewalFundDeclarationService; + + private final IProjectStagingService stagingService; + + private final INdProjectStatusChangeService statusChangeService; + + private final IPurchaseService purchaseService; + + private final IProjectTagService projectTagService; + + private final ISupplierSafetyQualificationService supplierSafetyQualificationService; + private final IPreInsAcceptancePersonService preInsAcceptancePersonService; + private final IPersonSafetyInfoService personService; + public List dictionary(String type) { List dictionaries = dictionaryService.list(Wrappers.lambdaQuery(GovProjectDictionary.class) @@ -1759,4 +1807,85 @@ public class GovProjectCollectionManage { } return "运行成功 重新生成" + baseProjIds.size() + "个项目编号"; } + + public String removeProject(List projectCodes) { + if(CollUtil.isEmpty(projectCodes)){ + throw new BizException("项目编号不能为空!"); + } + + for(String projectCode : projectCodes){ + //项目 + List projects = projectService.list(Wrappers.lambdaQuery(Project.class) + .eq(Project::getProjectCode, projectCode)); + + List projectIds = projects.stream().map(Project::getId).collect(Collectors.toList()); + + //1.删除应用 + applicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) + .eq(ProjectApplication::getProjectCode,projectCode)); + + //2.删除相关流程 + List projectInsts = projectInstService.list(Wrappers.lambdaQuery(ProjectInst.class) + .in(ProjectInst::getProjectId, projectIds)); + for(ProjectInst projectInst : projectInsts){ + //实例 + try{ + runtimeService.deleteProcessInstance(projectInst.getInstCode(),"删除"); + }catch (Exception e){ + + } + try{ + historyService.deleteHistoricProcessInstance(projectInst.getInstCode()); + }catch (Exception e){ + + } + //抄送 + ccTasksService.remove(Wrappers.lambdaQuery(WflowCcTasks.class) + .eq(WflowCcTasks::getInstanceId,projectInst.getInstCode())); + } + projectInstService.removeByIds(projectInsts.stream().map(ProjectInst::getId).collect(Collectors.toList())); + + //3.删除实施表 + operationService.remove(Wrappers.lambdaQuery(Operation.class) + .eq(Operation::getProjectCode,projectCode)); + + //4.删除续建项目资金表 + renewalFundDeclarationService.remove(Wrappers.lambdaQuery(ProjectRenewalFundDeclaration.class) + .eq(ProjectRenewalFundDeclaration::getProjectCode,projectCode)); + + //5.暂存表 + stagingService.remove(Wrappers.lambdaQuery(ProjectStaging.class) + .in(ProjectStaging::getProjectId,projectIds)); + + //6.状态变更表 + statusChangeService.remove(Wrappers.lambdaQuery(ProjectStatusChange.class) + .in(ProjectStatusChange::getProjectId,projectIds)); + + //7.采购表 + purchaseService.remove(Wrappers.lambdaQuery(Purchase.class) + .in(Purchase::getProjectId,projectIds)); + + //8.标签 + projectTagService.remove(Wrappers.lambdaQuery(ProjectTag.class) + .eq(ProjectTag::getProjectCode,projectCode)); + + //9.初验人员 + preInsAcceptancePersonService.remove(Wrappers.lambdaQuery(PreInsAcceptancePerson.class) + .in(PreInsAcceptancePerson::getProjectId,projectIds)); + + //10.供应商安全质量 + supplierSafetyQualificationService.remove(Wrappers.lambdaQuery(SupplierSafetyQualification.class) + .eq(SupplierSafetyQualification::getProjectCode,projectCode)); + + //11.安全人员 + personService.remove(Wrappers.lambdaQuery(PersonSafetyInfo.class) + .eq(PersonSafetyInfo::getProjectCode,projectCode)); + + //12.最后删除项目 + projectService.remove(Wrappers.lambdaQuery(Project.class) + .eq(Project::getProjectCode, projectCode)); + } + return "删除成功"; + } + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovOperationProjectBaseinfoDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovOperationProjectBaseinfoDTO.java index cbac955..e2b7bf4 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovOperationProjectBaseinfoDTO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovOperationProjectBaseinfoDTO.java @@ -101,4 +101,6 @@ public class GovOperationProjectBaseinfoDTO implements Serializable { @ApiModelProperty("入库时间") private LocalDateTime tongTime; + + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovOperationProjectDraft.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovOperationProjectDraft.java index 7e6e8e5..c0e523f 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovOperationProjectDraft.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovOperationProjectDraft.java @@ -26,6 +26,7 @@ public class GovOperationProjectDraft implements Serializable { @ApiModelProperty("主键") @TableId(type = IdType.AUTO) private Long id; + private Boolean push; private String baseProjId; private String baseProjName; private String baseAreaName; diff --git a/pmapi/src/test/java/com/ningdatech/pmapi/projectCollection/ProjectRemoveTest.java b/pmapi/src/test/java/com/ningdatech/pmapi/projectCollection/ProjectRemoveTest.java index 818727e..18b044b 100644 --- a/pmapi/src/test/java/com/ningdatech/pmapi/projectCollection/ProjectRemoveTest.java +++ b/pmapi/src/test/java/com/ningdatech/pmapi/projectCollection/ProjectRemoveTest.java @@ -109,7 +109,7 @@ public class ProjectRemoveTest extends AppTests { @Test public void test(){ - List projectCodes = Lists.newArrayList("33112600020230100002"); + List projectCodes = Lists.newArrayList("33112100020230100002"); for(String projectCode : projectCodes){ //项目