From 8bbb9a07fcac753e6e0ca43b7eabc5ad080c2426 Mon Sep 17 00:00:00 2001 From: WendyYang Date: Fri, 1 Mar 2024 15:54:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=B3=E6=8A=A5=E5=8D=95=E4=BD=8D=E9=A2=86=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectDeclareStateMachineBuilderImpl.java | 2 +- .../event/ProjectStatusChangeEvent.java | 2 +- .../manage/DeclaredProjectManage.java | 36 ++++++----- .../model/dto/DeclaredProjectListParamDTO.java | 4 ++ .../model/dto/DefaultDeclaredDTO.java | 2 +- .../projectdeclared/model/entity/ProjectDraft.java | 6 ++ .../projectdeclared/model/vo/ProjectDraftVO.java | 6 ++ .../projectlib/manage/DeclaredRecordManage.java | 74 ++++++++++++++++------ .../hz/pm/api/projectlib/model/dto/ProjectDTO.java | 6 ++ .../hz/pm/api/projectlib/model/entity/Project.java | 3 + .../projectlib/model/vo/DeclaredProjectListVO.java | 3 + .../projectlib/model/vo/MhProjectBaseInfoVO.java | 8 ++- .../pm/api/projectlib/service/IProjectService.java | 13 +++- .../hz/pm/api/todocenter/manage/HandlerManage.java | 8 ++- 14 files changed, 130 insertions(+), 43 deletions(-) diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/ProjectDeclareStateMachineBuilderImpl.java b/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/ProjectDeclareStateMachineBuilderImpl.java index 1a0733f..774c428 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/ProjectDeclareStateMachineBuilderImpl.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/ProjectDeclareStateMachineBuilderImpl.java @@ -218,7 +218,7 @@ public class ProjectDeclareStateMachineBuilderImpl implements ProjectDeclareStat .event(ProjectStatusChangeEvent.DECLARED_RECORD_PASS).and() .withExternal() .source(ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING) - .source(ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED) + .target(ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED) .event(ProjectStatusChangeEvent.DECLARED_RECORD_FAILED).and() // 待立项批复批复,从待立项批复到待采购 .withExternal() diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/event/ProjectStatusChangeEvent.java b/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/event/ProjectStatusChangeEvent.java index e88fdfe..2b66b84 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/event/ProjectStatusChangeEvent.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/event/ProjectStatusChangeEvent.java @@ -122,7 +122,7 @@ public enum ProjectStatusChangeEvent { /** * 立项备案不通过 */ - DECLARED_RECORD_FAILED(null, ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED.getCode(), null), + DECLARED_RECORD_FAILED(null, ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING.getCode(), null), //================================================================================================================== diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java index 51bee1e..105d9aa 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java @@ -16,11 +16,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import com.hz.pm.api.common.enumeration.CommonEnum; import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; -import com.hz.pm.api.common.helper.RegionCacheHelper; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.util.ExcelDownUtil; import com.hz.pm.api.common.util.ExcelExportStyle; +import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum; import com.hz.pm.api.gov.manage.GovProjectCollectionManage; import com.hz.pm.api.irs.manage.ProjectIrsManage; import com.hz.pm.api.projectdeclared.contants.DeclaredProjectConst; @@ -44,6 +44,8 @@ import com.hz.pm.api.projectlib.service.IProjectService; import com.hz.pm.api.staging.enums.MsgTypeEnum; import com.hz.pm.api.sys.manage.NoticeManage; import com.hz.pm.api.todocenter.constant.WorkNoticeConst; +import com.hz.pm.api.user.helper.MhUnitCache; +import com.hz.pm.api.user.model.dto.UnitDTO; import com.hz.pm.api.user.security.model.UserFullInfoDTO; import com.hz.pm.api.user.security.model.UserInfoDetails; import com.hz.pm.api.user.util.LoginUserUtil; @@ -101,7 +103,7 @@ public class DeclaredProjectManage { private final UserInfoHelper userInfoHelper; - private final RegionCacheHelper regionCacheHelper; + private final MhUnitCache mhUnitCache; private final ProjectIrsManage projectIrsManage; @@ -264,28 +266,29 @@ public class DeclaredProjectManage { return instanceId; } - public PageVo pageDraft(DeclaredProjectListParamDTO params, Integer draftType) { + public PageVo pageDraft(DeclaredProjectListParamDTO req, Integer draftType) { Long userId = LoginUserUtil.getUserId(); - Page page = params.page(); + Page page = req.page(); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(ProjectDraft.class) .eq(ProjectDraft::getUserId, userId) .eq(ProjectDraft::getDraftType, draftType) - .ge(Objects.nonNull(params.getStartTime()), ProjectDraft::getCreateOn, params.getStartTime()) - .le(Objects.nonNull(params.getEndTime()), ProjectDraft::getCreateOn, params.getEndTime()) - .eq(Objects.nonNull(params.getProjectType()), ProjectDraft::getProjectType, params.getProjectType()) - .eq(Objects.nonNull(params.getProjectYear()), ProjectDraft::getProjectYear, params.getProjectYear()) - .eq(Objects.nonNull(params.getProjectStage()), ProjectDraft::getStage, params.getProjectStage()) - .eq(Objects.nonNull(params.getProjectStatus()), ProjectDraft::getStatus, params.getProjectStatus()) - .like(StringUtils.isNotBlank(params.getProjectName()), ProjectDraft::getProjectName, params.getProjectName()) + .ge(Objects.nonNull(req.getStartTime()), ProjectDraft::getCreateOn, req.getStartTime()) + .le(Objects.nonNull(req.getEndTime()), ProjectDraft::getCreateOn, req.getEndTime()) + .eq(Objects.nonNull(req.getProjectType()), ProjectDraft::getProjectType, req.getProjectType()) + .eq(Objects.nonNull(req.getProjectYear()), ProjectDraft::getProjectYear, req.getProjectYear()) + .eq(Objects.nonNull(req.getProjectStage()), ProjectDraft::getStage, req.getProjectStage()) + .eq(Objects.nonNull(req.getProjectStatus()), ProjectDraft::getStatus, req.getProjectStatus()) + .eq(req.getUnitStrip() != null, ProjectDraft::getUnitStrip, req.getUnitStrip()) + .like(StringUtils.isNotBlank(req.getProjectName()), ProjectDraft::getProjectName, req.getProjectName()) .orderByDesc(ProjectDraft::getUpdateOn); projectDraftService.page(page, wrapper); if (CollUtil.isEmpty(page.getRecords())) { return PageVo.empty(); } - List res = page.getRecords().stream().map(record -> { + List res = page.getRecords().stream().map(draft -> { ProjectDraftVO vo = new ProjectDraftVO(); - BeanUtils.copyProperties(record, vo); - vo.setBizDomain(Objects.nonNull(record.getBizDomain()) ? String.valueOf(record.getBizDomain()) : StringUtils.EMPTY); + BeanUtils.copyProperties(draft, vo); + vo.setBizDomain(Objects.nonNull(draft.getBizDomain()) ? String.valueOf(draft.getBizDomain()) : StringUtils.EMPTY); return vo; }).collect(Collectors.toList()); return PageVo.of(res, page.getTotal()); @@ -330,7 +333,10 @@ public class DeclaredProjectManage { draft.setUserId(user.getUserIdStr()); draft.setBuildOrgCode(user.getMhUnitIdStr()); draft.setBuildOrgName(user.getMhUnitName()); - + UnitDTO unit = mhUnitCache.getById(user.getMhUnitId()); + Assert.notNull(unit, "申报单位不存在"); + MhUnitTypeEnum unitType = Objects.requireNonNull(unit.getType(), "申报单位类型错误"); + draft.setUnitStrip(unitType.getStrip().getCode()); if (CollUtil.isNotEmpty(projectInfo.getDynamicForm())) { draft.setDynamicForm(JSON.toJSONString(projectInfo.getDynamicForm())); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DeclaredProjectListParamDTO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DeclaredProjectListParamDTO.java index 1a683a1..f03c6b8 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DeclaredProjectListParamDTO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DeclaredProjectListParamDTO.java @@ -41,4 +41,8 @@ public class DeclaredProjectListParamDTO extends PagePo { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("结束时间") private String endTime; + + @ApiModelProperty("申报单位") + private Integer unitStrip; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DefaultDeclaredDTO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DefaultDeclaredDTO.java index 893b931..3628acc 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DefaultDeclaredDTO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DefaultDeclaredDTO.java @@ -21,7 +21,7 @@ import java.util.Map; @Data @NoArgsConstructor @AllArgsConstructor -public class DefaultDeclaredDTO implements Serializable { +public class DefaultDeclaredDTO { @NotNull @ApiModelProperty("项目信息") diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectDraft.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectDraft.java index e40a385..f42f16a 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectDraft.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectDraft.java @@ -361,4 +361,10 @@ public class ProjectDraft implements Serializable { private String govSystemReplaceInfos; + @ApiModelProperty("信产项目ID") + private Long mhProjectId; + + @ApiModelProperty("申报单位领域") + private Integer unitStrip; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/ProjectDraftVO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/ProjectDraftVO.java index 0f30616..871982c 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/ProjectDraftVO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/ProjectDraftVO.java @@ -384,4 +384,10 @@ public class ProjectDraftVO { @ApiModelProperty("政务系统改造情况") private List systemReplaceInfos; + @ApiModelProperty("信产项目ID") + private Long mhProjectId; + + @ApiModelProperty("申报单位领域") + private Integer unitStrip; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java index 786b863..6a7aa57 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java @@ -5,12 +5,15 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hz.pm.api.common.enumeration.CommonEnum; import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; import com.hz.pm.api.common.model.constant.BizConst; +import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; import com.hz.pm.api.external.model.enumeration.MhUnitStripEnum; +import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum; import com.hz.pm.api.projectdeclared.manage.DefaultDeclaredProjectManage; import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; import com.hz.pm.api.projectdeclared.model.dto.ProjectConditionDTO; @@ -19,12 +22,14 @@ import com.hz.pm.api.projectlib.model.dto.ProjectDTO; import com.hz.pm.api.projectlib.model.entity.MhProject; import com.hz.pm.api.projectlib.model.entity.MhProjectSchemaTargetData; import com.hz.pm.api.projectlib.model.entity.Project; +import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; import com.hz.pm.api.projectlib.model.enumeration.ProjectStatusEnum; import com.hz.pm.api.projectlib.model.req.DeclaredProjectListReq; import com.hz.pm.api.projectlib.model.vo.DeclaredProjectListVO; import com.hz.pm.api.projectlib.model.vo.MhProjectBaseInfoVO; import com.hz.pm.api.projectlib.service.IMhProjectSchemaTargetDataService; import com.hz.pm.api.projectlib.service.IMhProjectService; +import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService; import com.hz.pm.api.projectlib.service.IProjectService; import com.hz.pm.api.staging.enums.MsgTypeEnum; import com.hz.pm.api.sys.manage.NoticeManage; @@ -48,10 +53,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.time.LocalDateTime; +import java.util.*; import java.util.stream.Collectors; /** @@ -68,7 +71,7 @@ import java.util.stream.Collectors; public class DeclaredRecordManage { private final IMhProjectService mhProjectService; - private final IMhProjectSchemaTargetDataService mhProjectSchemaTargetDataService; + private final IMhProjectSchemaTargetDataService schemaTargetDataService; private final IProjectService projectService; private final MhUnitCache mhUnitCache; private final NoticeManage noticeManage; @@ -77,6 +80,7 @@ public class DeclaredRecordManage { private final DefaultDeclaredProjectManage defaultDeclaredProjectManage; private final ProcessInstanceService processInstanceService; private final ProjectLibManage projectLibManage; + private final INdProjectStatusChangeService projectStatusChangeService; private LambdaQueryWrapper buildQuery(DeclaredProjectListReq req) { LambdaQueryWrapper query = Wrappers.lambdaQuery(MhProject.class) @@ -118,11 +122,12 @@ public class DeclaredRecordManage { item.setMhProjectId(w.getId()); Project project = projectMap.get(w.getProjectCode()); if (project == null) { - item.setStatus(null); - item.setStage(null); + item.setStatus(ProjectStatusEnum.DECLARED_APPROVED_TO_BE_RECORD.getCode()); + item.setStage(ProjectStatusEnum.TO_BE_APPROVED.getCode()); } else { item.setStatus(project.getStatus()); item.setStage(project.getStage()); + item.setProjectId(project.getId()); } item.setUnitStrip(w.getUnitStrip()); item.setUnitStripName(MhUnitStripEnum.getVal(w.getUnitStrip())); @@ -148,7 +153,12 @@ public class DeclaredRecordManage { detail.setDeclaredUnitId(mhProject.getUnitId()); detail.setTotalInvestAmount(mhProject.getTotalMoney()); detail.setReviewInvestAmount(mhProject.getMoney()); - MhProjectSchemaTargetData schemaTargetData = mhProjectSchemaTargetDataService.getByMhProjectId(mhProjectId); + detail.setProjectCode(mhProject.getProjectCode()); + if (StrUtil.isNotBlank(detail.getProjectCode())) { + Optional projectId = projectService.getNewProjectId(detail.getProjectCode()); + projectId.ifPresent(detail::setProjectId); + } + MhProjectSchemaTargetData schemaTargetData = schemaTargetDataService.getByMhProjectId(mhProjectId); if (schemaTargetData != null) { detail.setTotalInvestBudgetAmount(schemaTargetData.getMoney()); } @@ -160,9 +170,10 @@ public class DeclaredRecordManage { } @Transactional(rollbackFor = Exception.class) - public void startDeclaredRecord(DefaultDeclaredDTO req) { - UserInfoDetails user = LoginUserUtil.loginUserDetail(); + public synchronized void startDeclaredRecord(DefaultDeclaredDTO req) { ProjectDTO projectInfo = req.getProjectInfo(); + Assert.notNull(projectInfo.getMhProjectId(), "信产项目ID不能为空"); + UserInfoDetails user = LoginUserUtil.loginUserDetail(); projectInfo.setBuildOrgCode(user.getMhUnitIdStr()); projectInfo.setBuildOrgName(user.getMhUnitName()); @@ -211,25 +222,32 @@ public class DeclaredRecordManage { BeanUtils.copyProperties(projectInfo, project); Map orgModelMap = defaultDeclaredProjectManage.buildOrgModelMap(user.getUserId(), project); String instanceId = processInstanceService.startProcessLs(model, params, orgModelMap); - log.info("申报项目成功 【{}】", instanceId); + log.info("立项备案成功 【{}】", instanceId); - //如果是重新提交的话 判断下 项目是否存在 - //保存项目相关 - Project buildProject = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(), + // 如果是重新提交的话 判断下 项目是否存在 + // 保存项目相关 + Project newProj = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(), ProjectStatusEnum.NOT_APPROVED, ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING, ProjectProcessStageEnum.PROJECT_RECORD_APPROVAL_PROCESS); + // 保存状态变更 + saveProjectStatusChangeLog(ProjectStatusEnum.DECLARED_APPROVED_TO_BE_RECORD, + newProj, ProjectStatusChangeEvent.DECLARED_RECORD_SUBMIT); if (Objects.nonNull(projectInfo.getDraftId())) { //如果是草稿箱提交 删除对应的草稿箱 projectDraftService.removeById(projectInfo.getDraftId()); } - + // 申报项目完成后 保存项目编码 + LambdaUpdateWrapper update = Wrappers.lambdaUpdate(MhProject.class) + .set(MhProject::getProjectCode, newProj.getProjectCode()) + .eq(MhProject::getId, projectInfo.getMhProjectId()); + mhProjectService.update(update); //发送给第一个审批人消息 - noticeManage.sendFirstUser(buildProject, model.getFormName(), instanceId, + noticeManage.sendFirstUser(newProj, model.getFormName(), instanceId, WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW); } @Transactional(rollbackFor = Exception.class) - public String restartDeclaredRecord(DefaultDeclaredDTO req) { + public synchronized String restartDeclaredRecord(DefaultDeclaredDTO req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); ProjectDTO reqProj = req.getProjectInfo(); Assert.notNull(reqProj.getId(), "提交失败,缺少项目ID!"); @@ -245,7 +263,10 @@ public class DeclaredRecordManage { reqProj.setProjectCode(oldProj.getProjectCode()); defaultDeclaredProjectManage.checkDuplication(reqProj); } - + UnitDTO unit = mhUnitCache.getById(user.getMhUnitId()); + Assert.notNull(unit, "申报单位不存在"); + MhUnitTypeEnum unitType = Objects.requireNonNull(unit.getType(), "申报单位类型错误"); + reqProj.setUnitStrip(unitType.getStrip().getCode()); // 写死 是否有主管单位 oldProj.setIsHigherSuperOrg(CommonEnum.YES.getCode()); oldProj.setIsSuperOrg(CommonEnum.YES.getCode()); @@ -284,14 +305,16 @@ public class DeclaredRecordManage { BeanUtils.copyProperties(reqProj, project); Map orgModelMap = defaultDeclaredProjectManage.buildOrgModelMap(user.getUserId(), project); String instId = processInstanceService.startProcessLs(model, params, orgModelMap); - log.info("立项备案重新提交 【{}】", instId); + log.info("立项备案成功 【{}】", instId); //保存项目相关 Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, user.getUserId(), ProjectStatusEnum.NOT_APPROVED, ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING, processStageEnum); - + // 保存状态变更 + saveProjectStatusChangeLog(ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED, + newProj, ProjectStatusChangeEvent.DECLARED_RECORD_RESUBMIT); //发送给第一个审批人消息 noticeManage.sendFirstUser(newProj, model.getFormName(), instId, WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW); @@ -299,5 +322,16 @@ public class DeclaredRecordManage { return instId; } + private void saveProjectStatusChangeLog(ProjectStatusEnum beforeStatus, Project project, ProjectStatusChangeEvent event) { + ProjectStatusChange change = new ProjectStatusChange(); + change.setAfterStatus(project.getStatus()); + change.setProjectId(project.getId()); + change.setBeforeStatus(beforeStatus.getCode()); + change.setEvent(event.name()); + change.setCreateOn(LocalDateTime.now()); + change.setProjectCode(project.getProjectCode()); + projectStatusChangeService.save(change); + } + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java index 8d9c29e..8e14e81 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java @@ -365,4 +365,10 @@ public class ProjectDTO { @ApiModelProperty("政务信息系统替代情况") private List systemReplaceInfos; + @ApiModelProperty("信产项目ID") + private Long mhProjectId; + + @ApiModelProperty("申报单位领域") + private Integer unitStrip; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java index 154b047..fce55be 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java @@ -546,4 +546,7 @@ public class Project implements Serializable { @ApiModelProperty("立项依据证明材料") private String baseProjBasisFile; + @ApiModelProperty("申报单位领域") + private Integer unitStrip; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/DeclaredProjectListVO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/DeclaredProjectListVO.java index 8d1f8ac..c3c8062 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/DeclaredProjectListVO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/DeclaredProjectListVO.java @@ -47,4 +47,7 @@ public class DeclaredProjectListVO { @ApiModelProperty("ID") private Long mhProjectId; + @ApiModelProperty("项目ID") + private Long projectId; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/MhProjectBaseInfoVO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/MhProjectBaseInfoVO.java index f40d771..6778dc9 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/MhProjectBaseInfoVO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/MhProjectBaseInfoVO.java @@ -7,7 +7,7 @@ import java.math.BigDecimal; /** *

- * MhProjectDetailVO + * 信产立项备案 *

* * @author WendyYang @@ -40,4 +40,10 @@ public class MhProjectBaseInfoVO { @ApiModelProperty("id") private Long mhProjectId; + @ApiModelProperty("项目ID") + private Long projectId; + + @ApiModelProperty("项目编码") + private String projectCode; + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IProjectService.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IProjectService.java index 314494d..5e532ef 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IProjectService.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IProjectService.java @@ -28,11 +28,22 @@ public interface IProjectService extends IService { default Optional getProjectCode(Long projectId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(Project.class) .select(Project::getProjectCode) + .eq(Project::getId, projectId) .last(BizConst.LIMIT_1); return Optional.ofNullable(getOne(query)) .flatMap(w -> Optional.of(w.getProjectCode())); } + default Optional getNewProjectId(String projectCode) { + LambdaQueryWrapper query = Wrappers.lambdaQuery(Project.class) + .select(Project::getId) + .eq(Project::getProjectCode, projectCode) + .orderByDesc(Project::getVersion) + .last(BizConst.LIMIT_1); + return Optional.ofNullable(getOne(query)) + .flatMap(w -> Optional.of(w.getId())); + } + List allVersionProjectIds(String projectCode); List allVersionProjectIds(Long projectId); @@ -56,7 +67,7 @@ public interface IProjectService extends IService { update(wrapper); } - default List listNewestByProjectCodes(Collection projectCode){ + default List listNewestByProjectCodes(Collection projectCode) { Wrapper query = Wrappers.lambdaQuery(Project.class) .eq(Project::getNewest, Boolean.TRUE) .in(Project::getProjectCode, projectCode); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/HandlerManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/HandlerManage.java index 3de0f6c..6209193 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/HandlerManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/HandlerManage.java @@ -512,17 +512,19 @@ public class HandlerManage { */ private void updateRejectProjectStatus(Long userId, Project project, Integer instType) { stateMachineUtil.reject(project); - LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); project.setUpdateOn(LocalDateTime.now()); project.setUpdateBy(userId); projectService.updateById(project); // 如果是预审审批驳回,需要重新盖章,原来盖过章的文件要清空 + LambdaUpdateWrapper updateWrapper; if (InstTypeEnum.PRELIMINARY_PREVIEW.eq(instType)) { - updateWrapper.set(Project::getPretrialFileId, null) + updateWrapper = Wrappers.lambdaUpdate(Project.class) + .set(Project::getPretrialFileId, null) .set(Project::getPretrialFileName, null) .eq(Project::getId, project.getId()); } else if (InstTypeEnum.CONSTRUCTION_PLAN_REVIEW.eq(instType)) { - updateWrapper.set(Project::getConstructFileId, null) + updateWrapper = Wrappers.lambdaUpdate(Project.class) + .set(Project::getConstructFileId, null) .set(Project::getConstructFileName, null) .eq(Project::getId, project.getId()); } else {