diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/common/enumeration/ProjectProcessStageEnum.java b/hz-pm-api/src/main/java/com/hz/pm/api/common/enumeration/ProjectProcessType.java similarity index 86% rename from hz-pm-api/src/main/java/com/hz/pm/api/common/enumeration/ProjectProcessStageEnum.java rename to hz-pm-api/src/main/java/com/hz/pm/api/common/enumeration/ProjectProcessType.java index a7e9bc7..5d3ab7b 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/common/enumeration/ProjectProcessStageEnum.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/common/enumeration/ProjectProcessType.java @@ -10,7 +10,7 @@ import java.util.Optional; /** *

- * ProjectProcessStageEnum + * ProjectProcessType *

* * @author WendyYang @@ -18,7 +18,7 @@ import java.util.Optional; */ @Getter @AllArgsConstructor -public enum ProjectProcessStageEnum { +public enum ProjectProcessType { /** * 项目流程配置 阶段枚举 @@ -45,7 +45,7 @@ public enum ProjectProcessStageEnum { if (Objects.isNull(code)) { return StringUtils.EMPTY; } - for (ProjectProcessStageEnum t : ProjectProcessStageEnum.values()) { + for (ProjectProcessType t : ProjectProcessType.values()) { if (code.equals(t.getCode())) { return t.desc; } @@ -53,11 +53,11 @@ public enum ProjectProcessStageEnum { return StringUtils.EMPTY; } - private static Optional get(Integer code) { + private static Optional get(Integer code) { return Arrays.stream(values()).filter(w -> w.getCode().equals(code)).findFirst(); } - public static ProjectProcessStageEnum getNoNull(Integer code) { + public static ProjectProcessType getNoNull(Integer code) { return get(code).orElseThrow(() -> new IllegalArgumentException("流程实例类型")); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/dashboard/handle/ApplicationHandler.java b/hz-pm-api/src/main/java/com/hz/pm/api/dashboard/handle/ApplicationHandler.java deleted file mode 100644 index c1c0c9d..0000000 --- a/hz-pm-api/src/main/java/com/hz/pm/api/dashboard/handle/ApplicationHandler.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hz.pm.api.dashboard.handle; - -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.google.common.collect.Lists; -import com.hz.pm.api.dashboard.constant.DashboardConstant; -import com.hz.pm.api.dashboard.model.vo.PortraitProjectOutputVO; -import com.hz.pm.api.projectlib.model.entity.ProjectApplication; -import com.hz.pm.api.projectlib.service.IProjectApplicationService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.Collections; -import java.util.List; - -/** - * @Classname ApplicationHandler - * @Description - * @Date 2023/10/9 14:11 - * @Author PoffyZhang - */ -@Component -@RequiredArgsConstructor -@Slf4j -public class ApplicationHandler { - - private final IProjectApplicationService applicationService; - - public List generateIrsApp(String projectCode, Integer version) { - //.查询应用 - Wrapper paQuery = Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectVersion, version) - .eq(ProjectApplication::getProjectCode, projectCode); - List apps = applicationService.list(paQuery); - if (apps.isEmpty()) { - return Collections.emptyList(); - } - List retApps = Lists.newArrayList(); - for (ProjectApplication app : apps) { - String appName = StrUtil.blankToDefault(app.getApplicationName(), app.getRelatedExistsApplication()); - retApps.add(generateOutputEntity(appName)); - } - return retApps; - } - - private PortraitProjectOutputVO generateOutputEntity(String name) { - return PortraitProjectOutputVO.builder() - .name(DashboardConstant.Protrait.PROJECT_SIGNS) - .generateData(new PortraitProjectOutputVO.GenerateData()) - .componentUsage(new PortraitProjectOutputVO.ComponentUsage()) - .cloudResourceUsage(new PortraitProjectOutputVO.CloudResourceUsage()) - .dataUsage(new PortraitProjectOutputVO.DataUsage()) - .operationReport(new PortraitProjectOutputVO.OperationReport()) - .build(); - } -} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/filemanage/manage/ProjectFileManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/filemanage/manage/ProjectFileManage.java index e7c47b2..c71aa46 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/filemanage/manage/ProjectFileManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/filemanage/manage/ProjectFileManage.java @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.model.constant.CommonConst; @@ -66,7 +66,6 @@ import com.ningdatech.file.service.FileService; import com.ningdatech.file.utils.StrPool; import com.wflow.bean.entity.WflowModels; import com.wflow.contants.HisProInsEndActId; -import com.wflow.exception.BusinessException; import com.wflow.workflow.bean.dto.OrgInfoDTO; import com.wflow.workflow.bean.process.FileBasicInfo; import com.wflow.workflow.bean.process.ProcessComment; @@ -245,8 +244,7 @@ public class ProjectFileManage { @Transactional(rollbackFor = Exception.class) public synchronized String startApplyBorrowProcess(Long projectId) { - Project project = projectService.getNewProject(projectId); - Assert.notNull(project, "提交失败 此项目不存在!"); + Project project = projectService.getNewestNoNull(projectId); // 首先要判断 项目当前状态 是不是 已归档 if (!ProjectStatus.ACCEPTED.eq(project.getStatus())) { @@ -254,13 +252,9 @@ public class ProjectFileManage { } UserInfoDetails user = LoginUserUtil.loginUserDetail(); - WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.APPLY_BORROW, + WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.APPLY_BORROW, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到申请借阅流程配置"); - } - ProcessStartParamsVo params = new ProcessStartParamsVo(); params.setUser(declaredProjectHelper.buildUser(user)); params.setProcessUsers(Collections.emptyMap()); @@ -450,13 +444,7 @@ public class ProjectFileManage { List contractFileIdList = getFileIdList(attachment); fileIdList.addAll(contractFileIdList); } - // TODO - // 初验备案阶段 - // 获取初验材料 - // String preliminaryInspectionMaterials = project.getPreliminaryInspectionMaterials(); - // getInspectionMaterials(fileIdList, preliminaryInspectionMaterials); - // 终验申报阶段 // 获取终验材料 String finalAcceptanceMaterials = project.getFinalAcceptanceMaterials(); getInspectionMaterials(fileIdList, finalAcceptanceMaterials); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/gov/manage/GovProjectCollectionManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/gov/manage/GovProjectCollectionManage.java index ca17605..0da43ac 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/gov/manage/GovProjectCollectionManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/gov/manage/GovProjectCollectionManage.java @@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Maps; -import com.hz.pm.api.common.helper.RegionCacheHelper; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.model.constant.RegionConst; import com.hz.pm.api.gov.contants.BizProjectContant; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/OrgSelfAppraisalManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/OrgSelfAppraisalManage.java index 9faf685..053cb1a 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/OrgSelfAppraisalManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/OrgSelfAppraisalManage.java @@ -253,8 +253,7 @@ public class OrgSelfAppraisalManage { public ProjectAppraisalIndexDetailVO getAppraisalTemplateDetail(String projectCode) { ProjectAppraisalIndexDetailVO vo = new ProjectAppraisalIndexDetailVO(); // 根据项目编码获取最新版本的项目信息 - Project project = projectService.getProjectByCode(projectCode); - VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在!"); + Project project = projectService.getNoNull(projectCode); // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 String projectType = project.getProjectType(); Integer projectYear = project.getProjectYear(); @@ -388,8 +387,7 @@ public class OrgSelfAppraisalManage { Long appraisalId = param.getAppraisalId(); // 根据项目编码获取最新版本的项目信息 - Project project = projectService.getProjectByCode(projectCode); - Assert.notNull(project, "项目不存在!"); + Project project = projectService.getNoNull(projectCode); // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 String projectType = project.getProjectType(); Integer projectYear = project.getProjectYear(); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/PerformanceAppraisalPlanManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/PerformanceAppraisalPlanManage.java index fb4e136..9d7cc9b 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/PerformanceAppraisalPlanManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/PerformanceAppraisalPlanManage.java @@ -368,8 +368,7 @@ public class PerformanceAppraisalPlanManage { } for (AppraisalProjectDTO appraisalProject : projects) { - Project newProject = projectService.getNewProject(appraisalProject.getId()); - VUtils.isTrue(Objects.isNull(newProject)).throwMessage("项目不存在 " + appraisalProject.getId()); + Project newProject = projectService.getNewestNoNull(appraisalProject.getId()); // 获取项目终验完成的时间 LocalDateTime finishTime = getProjectFinishTime(newProject); @@ -492,8 +491,7 @@ public class PerformanceAppraisalPlanManage { Integer completeSelfDays = editDTO.getCompleteSelfDays(); List projects = editDTO.getProjects(); for (AppraisalProjectDTO appraisalProject : projects) { - Project newProject = projectService.getNewProject(appraisalProject.getId()); - VUtils.isTrue(Objects.isNull(newProject)).throwMessage("项目不存在 " + appraisalProject.getId()); + Project newProject = projectService.getNewestNoNull(appraisalProject.getId()); // 获取项目终验完成的时间 LocalDateTime finishTime = getProjectFinishTime(newProject); PerformanceAppraisalProject pap = new PerformanceAppraisalProject(); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/ReAppraisalManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/ReAppraisalManage.java index 217090e..aec1294 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/ReAppraisalManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/ReAppraisalManage.java @@ -332,8 +332,7 @@ public class ReAppraisalManage { Long appraisalId = param.getAppraisalId(); // 根据项目编码获取最新版本的项目信息 - Project project = projectService.getProjectByCode(projectCode); - Assert.notNull(project, "项目不存在!"); + Project project = projectService.getNoNull(projectCode); // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 String projectType = project.getProjectType(); Integer projectYear = project.getProjectYear(); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/VerifyManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/VerifyManage.java index e121f82..ff0f9f1 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/VerifyManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/performance/manage/VerifyManage.java @@ -341,8 +341,7 @@ public class VerifyManage { Long appraisalId = param.getAppraisalId(); // 根据项目编码获取最新版本的项目信息 - Project project = projectService.getProjectByCode(projectCode); - Assert.notNull(project, "项目不存在!"); + Project project = projectService.getNoNull(projectCode); // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 String projectType = project.getProjectType(); Integer projectYear = project.getProjectYear(); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java index 2417b8c..72df951 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; @@ -28,7 +28,7 @@ import com.hz.pm.api.projectdeclared.model.vo.PreInsAcceptancePersonVO; import com.hz.pm.api.projectdeclared.model.vo.PreInsVO; import com.hz.pm.api.projectdeclared.model.vo.ProjectContractListVO; import com.hz.pm.api.projectdeclared.service.*; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.model.entity.Project; import com.hz.pm.api.projectlib.model.entity.ProjectAnnualPaymentPlan; import com.hz.pm.api.projectlib.model.entity.ProjectInst; @@ -104,7 +104,7 @@ public class ConstructionManage { */ public PageVo projectLibList(ProjectListReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); //建设中状态 query.isNull(Project::getContractAmount); query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); @@ -149,7 +149,7 @@ public class ConstructionManage { */ public PageVo projectListPerfect(ProjectListReq req) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); query.eq(Project::getNewest, Boolean.TRUE); //只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); @@ -201,7 +201,7 @@ public class ConstructionManage { } public void exportList(HttpServletResponse response, ProjectListReq param) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); //待采购状态 query.isNull(Project::getContractAmount); query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); @@ -281,8 +281,7 @@ public class ConstructionManage { public synchronized String submitPurchaseContract(SubmitConstructionReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); Long projectId = req.getProjectId(); - Project project = projectService.getNewProject(req.getProjectId()); - VUtils.isTrue(Objects.isNull(project)).throwMessage("提交失败 此项目不存在!"); + Project project = projectService.getNewestNoNull(req.getProjectId()); //首先要判断 项目当前状态 是不是 采购结果备案 VUtils.isTrue(!ProjectStatus.ON_PURCHASING.getCode().equals(project.getStatus()) || @@ -344,7 +343,7 @@ public class ConstructionManage { if (projectIds.isEmpty()) { return PageVo.empty(); } - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); query.in(Project::getId, projectIds); query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); query.eq(Project::getNewest, Boolean.TRUE); @@ -412,7 +411,7 @@ public class ConstructionManage { public void exportPreList(HttpServletResponse response, ProjectListReq param) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); //待采购状态 //只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitId()); @@ -562,12 +561,9 @@ public class ConstructionManage { } UserInfoDetails user = LoginUserUtil.loginUserDetail(); - WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.XC_APPROVAL_PROCESS, + WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.XC_APPROVAL_PROCESS, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw BizException.wrap("找不到信创审批流程配置"); - } ProcessStartParamsVo processParam = new ProcessStartParamsVo(); processParam.setUser(declaredProjectHelper.buildUser(user)); processParam.setProcessUsers(Collections.emptyMap()); @@ -579,7 +575,7 @@ public class ConstructionManage { ProjectInst projectInst = new ProjectInst(); projectInst.setInstCode(instanceId); - projectInst.setInstType(ProjectProcessStageEnum.XC_APPROVAL_PROCESS); + projectInst.setInstType(ProjectProcessType.XC_APPROVAL_PROCESS); projectInst.setProjectId(req.getProjectId()); projectInstService.save(projectInst); log.info("信创审查提交成功 【{}】", instanceId); @@ -594,7 +590,7 @@ public class ConstructionManage { PurchaseInst purchaseInst = new PurchaseInst(); purchaseInst.setBidId(purchase.getId()); purchaseInst.setInstCode(instanceId); - purchaseInst.setInstType(ProjectProcessStageEnum.XC_APPROVAL_PROCESS.getCode()); + purchaseInst.setInstType(ProjectProcessType.XC_APPROVAL_PROCESS.getCode()); purchaseInst.setProjectId(req.getProjectId()); purchaseInstService.save(purchaseInst); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectHelper.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectHelper.java index 6233de3..e35567d 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectHelper.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectHelper.java @@ -13,7 +13,7 @@ import com.hz.pm.api.common.model.constant.RegionConst; import com.hz.pm.api.common.model.constant.TypeReferenceConst; import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; import com.hz.pm.api.projectdeclared.model.dto.ProjectConditionDTO; -import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; +import com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO; import com.hz.pm.api.projectdeclared.service.IDeclaredStatisticsService; import com.hz.pm.api.projectlib.model.dto.ProjectDTO; import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; @@ -297,13 +297,13 @@ public class DeclaredProjectHelper { } //根据提交者的单位 - public DeclaredProjectStatisticsPO declaredProjectOrgStatistics(Integer year, UserFullInfoDTO user) { + public DeclaredProjectStatisticsVO declaredProjectOrgStatistics(Integer year, UserFullInfoDTO user) { //查此人建设单位的项目 return statisticsService.getOrgStatistics(user.getMhUnitIdStr(), year); } //根据提交者的区域 他是区管或者超管 - public DeclaredProjectStatisticsPO declaredProjectRegionStatistics(Integer year, UserFullInfoDTO user) { + public DeclaredProjectStatisticsVO declaredProjectRegionStatistics(Integer year, UserFullInfoDTO user) { //查此人建设单位的项目 return statisticsService.getRegionStatistics(null, year); } 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 f7695b0..3ef5311 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 @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; 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.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.util.ExcelDownUtil; import com.hz.pm.api.common.util.ExcelExportStyle; @@ -22,7 +22,7 @@ import com.hz.pm.api.projectdeclared.model.entity.ProjectDraft; import com.hz.pm.api.projectdeclared.model.enumerization.ProjectDraftTypeEnum; import com.hz.pm.api.projectdeclared.model.vo.ProjectDraftVO; import com.hz.pm.api.projectdeclared.service.IProjectDraftService; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.manage.ProjectLibManage; import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; import com.hz.pm.api.projectlib.model.dto.ProjectDTO; @@ -49,7 +49,6 @@ import com.ningdatech.basic.model.PageVo; import com.ningdatech.basic.util.CollUtils; import com.ningdatech.basic.util.NdDateUtils; import com.wflow.bean.entity.WflowModels; -import com.wflow.exception.BusinessException; import com.wflow.workflow.bean.dto.OrgInfoDTO; import com.wflow.workflow.bean.vo.ProcessStartParamsVo; import com.wflow.workflow.service.ProcessInstanceService; @@ -103,11 +102,8 @@ public class DeclaredProjectManage { public synchronized String startTheProcess(DefaultDeclaredDTO req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); - WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.COMPLIANCE_REVIEW, + WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.COMPLIANCE_REVIEW, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw BizException.wrap("找不到单位流程配置"); - } ProjectDTO reqProj = req.getProjectInfo(); reqProj.setBuildOrgCode(user.getMhUnitIdStr()); @@ -183,8 +179,7 @@ public class DeclaredProjectManage { reqProj.setBuildOrgCode(user.getMhUnitIdStr()); reqProj.setBuildOrgName(user.getMhUnitName()); - Project projectInfo = projectService.getById(reqProj.getId()); - Assert.notNull(projectInfo, "提交失败 此项目不存在!"); + Project projectInfo = projectService.getNoNull(reqProj.getId()); //项目名称去重 if (StringUtils.isNotBlank(reqProj.getProjectName()) && @@ -208,13 +203,9 @@ public class DeclaredProjectManage { //判断申报金额 是否等于总的 判断年度支付金额 是否等于总金额 declaredProjectHelper.checkAmount(reqProj); - WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.COMPLIANCE_REVIEW, + WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.COMPLIANCE_REVIEW, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到单位流程配置"); - } - //首先要判断 项目当前状态 是不是 单位内部拒绝 VUtils.isTrue(!ProjectStatus.COMPLIANCE_REVIEW_FAILED.eq(projectInfo.getStatus())) .throwMessage("提交失败 该项目不是 单位内部拒绝审核状态或者未立项阶段"); @@ -236,7 +227,7 @@ public class DeclaredProjectManage { //保存项目相关 Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, user.getUserId(), ProjectStatus.NOT_APPROVED, ProjectStatus.COMPLIANCE_REVIEW_FAILED, - ProjectProcessStageEnum.COMPLIANCE_REVIEW); + ProjectProcessType.COMPLIANCE_REVIEW); //发送给第一个审批人消息 noticeManage.sendFirstUser(newProj, model.getFormName(), instId, @@ -352,7 +343,7 @@ public class DeclaredProjectManage { */ public PageVo projectLibList(ProjectListReq req) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); // 当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 preQuery(query, user); query.eq(Project::getNewest, Boolean.TRUE); @@ -381,7 +372,7 @@ public class DeclaredProjectManage { public void exportList(HttpServletResponse response, ProjectListReq param) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); //当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 preQuery(query, user); query.eq(Project::getNewest, Boolean.TRUE); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DelayedApplyManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DelayedApplyManage.java index c83e952..5bec315 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DelayedApplyManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DelayedApplyManage.java @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; 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; @@ -16,14 +16,14 @@ import com.hz.pm.api.common.util.ExcelExportStyle; import com.hz.pm.api.projectdeclared.model.dto.DeclaredProjectExportDTO; import com.hz.pm.api.projectdeclared.model.dto.DelayedApplyDTO; import com.hz.pm.api.projectdeclared.model.vo.DelayedApplyVO; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.manage.ProjectLibManage; import com.hz.pm.api.projectlib.model.entity.Project; import com.hz.pm.api.projectlib.model.entity.ProjectDelayApply; import com.hz.pm.api.projectlib.model.entity.ProjectInst; import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; -import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; +import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; import com.hz.pm.api.projectlib.model.req.ProjectListReq; import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; import com.hz.pm.api.projectlib.service.INdProjectDelayApplyService; @@ -43,7 +43,6 @@ import com.ningdatech.basic.util.CollUtils; import com.ningdatech.basic.util.NdDateUtils; import com.wflow.bean.entity.WflowModels; import com.wflow.contants.HisProInsEndActId; -import com.wflow.exception.BusinessException; import com.wflow.workflow.bean.dto.OrgInfoDTO; import com.wflow.workflow.bean.vo.ProcessStartParamsVo; import com.wflow.workflow.service.ProcessInstanceService; @@ -97,7 +96,7 @@ public class DelayedApplyManage { */ public PageVo projectLibList(ProjectListReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); // 待终验 并且已经过期 // 只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); @@ -167,7 +166,7 @@ public class DelayedApplyManage { public void exportList(HttpServletResponse response, ProjectListReq param) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); // 待终验 // 只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitId()); @@ -212,40 +211,16 @@ public class DelayedApplyManage { } /** - * 延期申请 - * - * @param dto - * @return - */ - public String delayedApply(DelayedApplyDTO dto) { - Long projectId = dto.getProjectId(); - Project project = projectService.getNewProject(projectId); - Assert.notNull(project, "提交失败 此项目不存在!"); - - //首先要判断 项目当前状态 是不是 以终验 - VUtils.isTrue(!ProjectStatus.ON_PILOT_RUNNING.eq(project.getStatus()) || - !ProjectStatus.PROJECT_APPROVED.eq(project.getStage())) - .throwMessage("提交失败 该项目不是 已立项|待终验"); - - VUtils.isTrue(Objects.isNull(project.getPlanAcceptanceTime()) - || !project.getPlanAcceptanceTime().isAfter(LocalDateTime.now())) - .throwMessage("当前项目还未过期验收"); - - return "申请发起成功"; - } - - /** * 开启延期申请审批流程 * - * @param dto - * @return + * @param dto \ + * @return \ */ @Transactional(rollbackFor = Exception.class) public synchronized String startDelayedApplyProcess(DelayedApplyDTO dto) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); Long projectId = dto.getProjectId(); - Project project = projectService.getNewProject(projectId); - VUtils.isTrue(Objects.isNull(project)).throwMessage("提交失败 此项目不存在!"); + Project project = projectService.getNewestNoNull(projectId); //首先要判断 项目当前状态 是不是 以终验 VUtils.isTrue(!ProjectStatus.ON_PILOT_RUNNING.eq(project.getStatus()) || @@ -256,13 +231,9 @@ public class DelayedApplyManage { || project.getPlanAcceptanceTime().isAfter(LocalDateTime.now())) .throwMessage("当前项目还未过期验收"); - WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.APPLY_DELAY, + WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.APPLY_DELAY, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到延期申请流程配置"); - } - ProcessStartParamsVo params = new ProcessStartParamsVo(); params.setUser(declaredProjectHelper.buildUser(user)); params.setProcessUsers(Collections.emptyMap()); @@ -304,8 +275,8 @@ public class DelayedApplyManage { /** * 查看某个项目的 延期列表 * - * @param projectId - * @return + * @param projectId \ + * @return \ */ public List delayList(Long projectId) { List allVersionProjectId = projectService.allVersionProjectIds(projectId); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java index dc19ccf..80b4217 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; import com.hz.pm.api.common.statemachine.util.TenderStateMachineUtil; @@ -22,7 +22,7 @@ import com.hz.pm.api.projectdeclared.model.vo.FinalAcceptanceVO; import com.hz.pm.api.projectdeclared.service.IContractService; import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; import com.hz.pm.api.projectdeclared.service.IPurchaseService; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.model.entity.Project; import com.hz.pm.api.projectlib.model.entity.ProjectAnnualPaymentPlan; import com.hz.pm.api.projectlib.model.entity.ProjectInst; @@ -45,7 +45,6 @@ import com.ningdatech.basic.model.PageVo; import com.ningdatech.basic.util.CollUtils; import com.ningdatech.basic.util.NdDateUtils; import com.wflow.bean.entity.WflowModels; -import com.wflow.exception.BusinessException; import com.wflow.workflow.bean.dto.OrgInfoDTO; import com.wflow.workflow.bean.vo.ProcessStartParamsVo; import com.wflow.workflow.service.ProcessInstanceService; @@ -106,7 +105,7 @@ public class FinalAcceptanceManage { public PageVo projectLibList(ProjectListReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); //待终验 并且还未过期 //只能看自己单位的 Set projectIds = purchaseService.listProjectIdByStatus(FINAL_INSPECTED_TENDER_STATUS); @@ -177,7 +176,7 @@ public class FinalAcceptanceManage { public void exportList(HttpServletResponse response, ProjectListReq param) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); //待终验 //只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitId()); @@ -249,11 +248,8 @@ public class FinalAcceptanceManage { @Transactional(rollbackFor = Exception.class) public synchronized String startProcess(SubmitFinallyInspectedReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); - ProjectProcessStageEnum instType = ProjectProcessStageEnum.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS; - WflowModels model = processModelManage.getWflowModels(instType, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到验收申报流程配置"); - } + ProjectProcessType instType = ProjectProcessType.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS; + WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); List purchases = purchaseService.listByProjectId(req.getProjectId()); Map purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); @@ -292,7 +288,7 @@ public class FinalAcceptanceManage { // 判断是否所有标段已经进行过终验申报 无论是否通过 LambdaQueryWrapper purchaseInstQuery = Wrappers.lambdaQuery(PurchaseInst.class) .select(PurchaseInst::getBidId) - .eq(PurchaseInst::getInstType, ProjectProcessStageEnum.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS.getCode()) + .eq(PurchaseInst::getInstType, ProjectProcessType.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS.getCode()) .in(PurchaseInst::getBidId, purchaseMap.keySet()); List currPurchaseInstList = purchaseInstService.list(purchaseInstQuery); Set finalInspectedBidIds = CollUtils.fieldSet(currPurchaseInstList, PurchaseInst::getBidId); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/OperationManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/OperationManage.java index 5c05393..279e17f 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/OperationManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/OperationManage.java @@ -53,9 +53,7 @@ public class OperationManage { * @return \ */ public List detail(Long projectId) { - Project project = projectService.getNewProject(projectId); - Assert.notNull(project, "项目不存在!"); - + Project project = projectService.getNewestNoNull(projectId); List operations = operationService.list(Wrappers.lambdaQuery(Operation.class) .eq(Operation::getProjectCode, project.getProjectCode())); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java index 8145690..7034b76 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java @@ -4,15 +4,17 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; +import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; +import com.hz.pm.api.datascope.model.DataScopeDTO; +import com.hz.pm.api.datascope.utils.DataScopeUtil; import com.hz.pm.api.expert.model.vo.ProjectReviewDetailVO; -import com.hz.pm.api.meeting.entity.domain.MeetingInnerProject; -import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.hz.pm.api.projectdeclared.model.entity.ProjectReview; import com.hz.pm.api.projectdeclared.model.req.ProjectReviewApplyReq; import com.hz.pm.api.projectdeclared.service.IProjectReviewService; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.model.entity.Project; import com.hz.pm.api.projectlib.model.entity.ProjectInst; import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; @@ -21,6 +23,7 @@ import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; import com.hz.pm.api.projectlib.service.IProjectInstService; import com.hz.pm.api.projectlib.service.IProjectService; import com.hz.pm.api.sys.manage.ProcessModelManage; +import com.hz.pm.api.user.helper.MhUnitCache; 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; @@ -36,10 +39,7 @@ import lombok.extern.slf4j.Slf4j; 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.util.*; /** *

@@ -61,6 +61,8 @@ public class ProjectReviewManage { private final ProcessInstanceService processInstanceService; private final IProjectInstService projectInstService; private final ProjectStateMachineUtil projectStateMachineUtil; + private final MhUnitCache mhUnitCache; + private final UserInfoHelper userInfoHelper; @Transactional(rollbackFor = Exception.class) public synchronized void projectReviewApply(ProjectReviewApplyReq req) { @@ -71,13 +73,9 @@ public class ProjectReviewManage { } UserInfoDetails user = LoginUserUtil.loginUserDetail(); - WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.PROJECT_REVIEW, + WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.PROJECT_REVIEW, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw BizException.wrap("找不到项目评审流程配置"); - } - ProcessStartParamsVo processParam = new ProcessStartParamsVo(); processParam.setUser(declaredProjectHelper.buildUser(user)); processParam.setProcessUsers(Collections.emptyMap()); @@ -88,7 +86,7 @@ public class ProjectReviewManage { ProjectInst projectInst = new ProjectInst(); projectInst.setInstCode(instanceId); - projectInst.setInstType(ProjectProcessStageEnum.PROJECT_REVIEW); + projectInst.setInstType(ProjectProcessType.PROJECT_REVIEW); projectInst.setProjectId(req.getProjectId()); projectInstService.save(projectInst); projectStateMachineUtil.pass(project); @@ -123,15 +121,17 @@ public class ProjectReviewManage { * @return */ public PageVo pageReviewProject(ProjectListReq req) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); + LambdaQueryWrapper query = ProjectManageUtil.initQuery(); + if (!projectQueryPermission(query, user)) { + return PageVo.empty(); + } + ProjectManageUtil.projectQuery(query, req); query.in(Project::getProcessStatus, - ProjectStatus.WITHOUT_PROJECT_REVIEW.getCode(), - ProjectStatus.ON_PROJECT_REVIEW.getCode(), - ProjectStatus.PROJECT_REVIEW_FAILED.getCode()); - // 当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 - UserInfoDetails user = LoginUserUtil.loginUserDetail(); - preQuery(query, user); - query.eq(Project::getNewest, Boolean.TRUE); + ProjectStatus.WITHOUT_PROJECT_REVIEW.getCode(), + ProjectStatus.ON_PROJECT_REVIEW.getCode(), + ProjectStatus.PROJECT_REVIEW_FAILED.getCode()) + .eq(Project::getNewest, Boolean.TRUE); Page page = projectService.page(req.page(), query); long total; if ((total = page.getTotal()) == 0) { @@ -142,17 +142,41 @@ public class ProjectReviewManage { return PageVo.of(records, total); } - //当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 并且他是单位管理员 - private void preQuery(LambdaQueryWrapper query, UserInfoDetails user) { - //如果当前登录是单位管理员 - String mhUnitId = user.getMhUnitIdStr(); - if (user.getIsOrgAdmin()) { - query.and(s1 -> s1.eq(Project::getSuperOrgCode, mhUnitId) - .or(q2 -> q2.eq(Project::getBuildOrgCode, mhUnitId))); + private boolean projectQueryPermission(LambdaQueryWrapper query, UserFullInfoDTO user) { + boolean queryState = true; + Optional currDs = DataScopeUtil.getCurrentUserDataScopeHasUserId(user); + if (!currDs.isPresent()) { + log.warn("没有取到权限信息 当前查询 没有权限条件"); + queryState = false; } else { - //否则 只能看到 非预审 并且 - query.and(q2 -> q2.eq(Project::getBuildOrgCode, mhUnitId)); + switch (currDs.get().getRole()) { + case NORMAL_MEMBER: + //普通用户 只能看到自己单位去申报的 + query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); + break; + case COMPANY_MANAGER: + List childUnitIds = mhUnitCache.getViewChildIdsRecursion(user.getMhUnitId()); + List viewUnitIdList = CollUtils.convert(childUnitIds, String::valueOf); + //单位管理员 看到自己单位去申报的 + 待预审的主管单位是自己单位的项目 + query.and(q1 -> q1.in(Project::getBuildOrgCode, viewUnitIdList) + .or(q2 -> q2.eq(Project::getStage, ProjectStatus.NOT_APPROVED.getCode()) + .in(Project::getSuperOrgCode, viewUnitIdList))); + break; + case SUPER_ADMIN: + //超级管理员 看到丽水全市的 并且也要判断他 同时是不是单位管理员 + break; + case VISITOR: + //访客可以看全市的 + break; + case DASHBOARD: + break; + default: + //没有权限的话 就让它查不到 + queryState = false; + break; + } } + return queryState; } } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/PurchaseManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/PurchaseManage.java index c8321c3..8206e81 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/PurchaseManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/PurchaseManage.java @@ -15,7 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.statemachine.event.AbstractStateChangeEvent; import com.hz.pm.api.common.statemachine.event.AdaptStateChangeEvent; @@ -51,7 +51,7 @@ import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; import com.hz.pm.api.projectdeclared.service.IPurchaseService; import com.hz.pm.api.projectdeclared.utils.ProjectIdCodeCacheUtil; import com.hz.pm.api.projectlib.entity.PurchaseStatusChange; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.model.entity.Project; import com.hz.pm.api.projectlib.model.entity.ProjectInst; import com.hz.pm.api.projectlib.model.enumeration.*; @@ -76,7 +76,6 @@ import com.ningdatech.file.entity.File; import com.ningdatech.file.entity.vo.result.FileResultVO; import com.ningdatech.file.service.FileService; import com.wflow.bean.entity.WflowModels; -import com.wflow.exception.BusinessException; import com.wflow.workflow.bean.dto.OrgInfoDTO; import com.wflow.workflow.bean.vo.ProcessStartParamsVo; import com.wflow.workflow.service.ProcessInstanceService; @@ -176,7 +175,7 @@ public class PurchaseManage { public PageVo projectLibList(ProjectListReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); Assert.notNull(user, "获取登录用户失败!"); - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); //只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); //待采购状态 @@ -235,7 +234,7 @@ public class PurchaseManage { public void exportList(HttpServletResponse response, ProjectListReq param) { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); //待采购状态 //只能看自己单位的 query.eq(Project::getBuildOrgCode, user.getMhUnitId()); @@ -297,8 +296,7 @@ public class PurchaseManage { UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); Long projectId = dto.getProjectId(); VUtils.isTrue(Objects.isNull(projectId)).throwMessage("提交失败 缺少项目ID!"); - Project project = projectService.getNewProject(dto.getProjectId()); - VUtils.isTrue(Objects.isNull(project)).throwMessage("提交失败 此项目不存在!"); + Project project = projectService.getNewestNoNull(dto.getProjectId()); //首先要判断 项目当前状态 是不是 采购结果备案 VUtils.isTrue(!ProjectStatus.TO_BE_PURCHASED.eq(project.getStatus()) @@ -347,8 +345,7 @@ public class PurchaseManage { public synchronized void submitPurchaseNotice(SubmitPurchaseNoticeReq req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); Long projectId = req.getProjectId(); - Project project = projectService.getNewProject(projectId); - Assert.notNull(project, "提交失败 此项目不存在!"); + Project project = projectService.getNewestNoNull(projectId); //首先要判断 项目当前状态 是不是 采购结果备案 VUtils.isTrue(!ProjectStatus.TO_BE_PURCHASED.eq(project.getStatus()) @@ -563,11 +560,8 @@ public class PurchaseManage { } }); UserInfoDetails user = LoginUserUtil.loginUserDetail(); - ProjectProcessStageEnum instType = ProjectProcessStageEnum.TEST_VALID; - WflowModels model = processModelManage.getWflowModels(instType, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到测试验证流程配置"); - } + ProjectProcessType instType = ProjectProcessType.TEST_VALID; + WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); LocalDateTime now = LocalDateTime.now(); for (Purchase purchase : purchases) { Long projectId = purchase.getProjectId(); @@ -603,7 +597,7 @@ public class PurchaseManage { private void saveProjectPurchaseInstCode(Long bidId, String instanceId, Long projectId, - ProjectProcessStageEnum instType) { + ProjectProcessType instType) { // 保存标段实列关系 PurchaseInst purchaseInst = new PurchaseInst(); purchaseInst.setBidId(bidId); @@ -629,11 +623,9 @@ public class PurchaseManage { } } UserInfoDetails user = LoginUserUtil.loginUserDetail(); - ProjectProcessStageEnum instType = ProjectProcessStageEnum.SELF_TEST; - WflowModels model = processModelManage.getWflowModels(instType, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到系统自测流程配置"); - } + ProjectProcessType instType = ProjectProcessType.SELF_TEST; + WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); + LocalDateTime now = LocalDateTime.now(); for (Purchase purchase : purchases) { Long projectId = purchase.getProjectId(); @@ -676,11 +668,9 @@ public class PurchaseManage { } } UserInfoDetails user = LoginUserUtil.loginUserDetail(); - ProjectProcessStageEnum instType = ProjectProcessStageEnum.ADAPTION; - WflowModels model = processModelManage.getWflowModels(instType, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw new BusinessException("找不到适配改造流程配置"); - } + ProjectProcessType instType = ProjectProcessType.ADAPTION; + WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); + LocalDateTime now = LocalDateTime.now(); for (Purchase purchase : purchases) { Long projectId = purchase.getProjectId(); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.java index f4c7705..3595b85 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.java @@ -1,7 +1,7 @@ package com.hz.pm.api.projectdeclared.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; +import com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO; import org.apache.ibatis.annotations.Param; /** @@ -14,7 +14,7 @@ import org.apache.ibatis.annotations.Param; */ public interface DeclaredStatisticsMapper extends BaseMapper { - DeclaredProjectStatisticsPO getOrgStatistics(@Param("orgCode") String orgCode, @Param("year") Integer year); + DeclaredProjectStatisticsVO getOrgStatistics(@Param("orgCode") String orgCode, @Param("year") Integer year); - DeclaredProjectStatisticsPO getRegionStatistics(@Param("year") Integer year); + DeclaredProjectStatisticsVO getRegionStatistics(@Param("year") Integer year); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.xml b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.xml index f7eb0f7..f384d72 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.xml +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/DeclaredStatisticsMapper.xml @@ -2,7 +2,7 @@ - SELECT count(0) totalNum, count(CASE WHEN p.project_type = 1 THEN 1 end) buildNum, @@ -19,7 +19,7 @@ WHERE build_org_code = #{orgCode} and project_year = #{year} and newest = 1 - SELECT count(0) totalNum, count(CASE WHEN p.project_type = 1 THEN 1 end) buildNum, diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java index 2bc1e7d..92f838f 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java @@ -1,6 +1,6 @@ package com.hz.pm.api.projectdeclared.mapper; -import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.hz.pm.api.projectdeclared.model.entity.ProjectReview; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/entity/ProjectReview.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectReview.java similarity index 95% rename from hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/entity/ProjectReview.java rename to hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectReview.java index c6117f7..2171991 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/entity/ProjectReview.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectReview.java @@ -1,4 +1,4 @@ -package com.hz.pm.api.projectdeclared.entity; +package com.hz.pm.api.projectdeclared.model.entity; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/PurchaseInst.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/PurchaseInst.java index bcbf5d7..5027b06 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/PurchaseInst.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/PurchaseInst.java @@ -1,7 +1,7 @@ package com.hz.pm.api.projectdeclared.model.entity; import com.baomidou.mybatisplus.annotation.*; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -43,7 +43,7 @@ public class PurchaseInst { @TableField(fill = FieldFill.INSERT) private Long createBy; - public void setInstType(ProjectProcessStageEnum processStage) { + public void setInstType(ProjectProcessType processStage) { this.instType = processStage.getCode(); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/po/DeclaredProjectStatisticsPO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/DeclaredProjectStatisticsVO.java similarity index 91% rename from hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/po/DeclaredProjectStatisticsPO.java rename to hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/DeclaredProjectStatisticsVO.java index e0e9ce9..46ae74c 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/po/DeclaredProjectStatisticsPO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/DeclaredProjectStatisticsVO.java @@ -1,4 +1,4 @@ -package com.hz.pm.api.projectdeclared.model.po; +package com.hz.pm.api.projectdeclared.model.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +12,7 @@ import java.math.BigDecimal; * @Author PoffyZhang */ @Data -public class DeclaredProjectStatisticsPO { +public class DeclaredProjectStatisticsVO { @ApiModelProperty("总项目数") private Integer totalNum; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IDeclaredStatisticsService.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IDeclaredStatisticsService.java index 86bf24b..ddd910f 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IDeclaredStatisticsService.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IDeclaredStatisticsService.java @@ -1,6 +1,6 @@ package com.hz.pm.api.projectdeclared.service; -import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; +import com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO; /** *

@@ -12,7 +12,7 @@ import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; */ public interface IDeclaredStatisticsService { - DeclaredProjectStatisticsPO getOrgStatistics(String organizationCode, Integer year); + DeclaredProjectStatisticsVO getOrgStatistics(String organizationCode, Integer year); - DeclaredProjectStatisticsPO getRegionStatistics(String regionCode,Integer year); + DeclaredProjectStatisticsVO getRegionStatistics(String regionCode, Integer year); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java index e259de3..a442577 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java @@ -1,6 +1,6 @@ package com.hz.pm.api.projectdeclared.service; -import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.hz.pm.api.projectdeclared.model.entity.ProjectReview; import com.baomidou.mybatisplus.extension.service.IService; /** diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/DeclaredStatisticsServiceImpl.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/DeclaredStatisticsServiceImpl.java index 0a389b1..a6f15c5 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/DeclaredStatisticsServiceImpl.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/DeclaredStatisticsServiceImpl.java @@ -1,7 +1,7 @@ package com.hz.pm.api.projectdeclared.service.impl; import com.hz.pm.api.projectdeclared.mapper.DeclaredStatisticsMapper; -import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; +import com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO; import com.hz.pm.api.projectdeclared.service.IDeclaredStatisticsService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -27,7 +27,7 @@ public class DeclaredStatisticsServiceImpl implements IDeclaredStatisticsService * @return */ @Override - public DeclaredProjectStatisticsPO getOrgStatistics(String orgCode, Integer year) { + public DeclaredProjectStatisticsVO getOrgStatistics(String orgCode, Integer year) { return declaredStatisticsMapper.getOrgStatistics(orgCode, year); } @@ -38,7 +38,7 @@ public class DeclaredStatisticsServiceImpl implements IDeclaredStatisticsService * @return */ @Override - public DeclaredProjectStatisticsPO getRegionStatistics(String regionCode, Integer year) { + public DeclaredProjectStatisticsVO getRegionStatistics(String regionCode, Integer year) { return declaredStatisticsMapper.getRegionStatistics(year); } } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java index c950f10..c013e43 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java @@ -1,6 +1,6 @@ package com.hz.pm.api.projectdeclared.service.impl; -import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.hz.pm.api.projectdeclared.model.entity.ProjectReview; import com.hz.pm.api.projectdeclared.mapper.ProjectReviewMapper; import com.hz.pm.api.projectdeclared.service.IProjectReviewService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/helper/ProjectHelper.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/helper/ProjectManageUtil.java similarity index 85% rename from hz-pm-api/src/main/java/com/hz/pm/api/projectlib/helper/ProjectHelper.java rename to hz-pm-api/src/main/java/com/hz/pm/api/projectlib/helper/ProjectManageUtil.java index 8595aff..c5f50bb 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/helper/ProjectHelper.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/helper/ProjectManageUtil.java @@ -18,13 +18,21 @@ import java.util.Map; /** *

- * ProjectHelper + * ProjectHelperUtil *

* * @author WendyYang * @since 14:15 2023/2/11 */ -public class ProjectHelper { +public class ProjectManageUtil { + + private ProjectManageUtil() { + + } + + public static LambdaQueryWrapper initQuery() { + return new LambdaQueryWrapper<>(); + } /** * 通用项目查询 @@ -32,8 +40,7 @@ public class ProjectHelper { * @param req 查询条件 * @return / **/ - public static LambdaQueryWrapper projectQuery(ProjectListReq req) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + public static void projectQuery(LambdaQueryWrapper query, ProjectListReq req) { query.eq(req.getUserId() != null, Project::getCreateBy, req.getUserId()) .like(StrUtil.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) .eq(req.getProjectType() != null, Project::getProjectType, req.getProjectType()) @@ -63,6 +70,17 @@ public class ProjectHelper { //已添加评价计划的项目code .notIn(CollUtil.isNotEmpty(req.getProjectCodes()), Project::getProjectCode, req.getProjectCodes()) .orderByDesc(Project::getUpdateOn); + } + + /** + * 通用项目查询 + * + * @param req 查询条件 + * @return / + **/ + public static LambdaQueryWrapper projectQuery(ProjectListReq req) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + projectQuery(query, req); return query; } @@ -72,8 +90,8 @@ public class ProjectHelper { * @param app * @return */ - public static ProjectApplicationVO convertVOWithMap(ProjectApplication app, - Map> coreBizMap) { + public static ProjectApplicationVO to(ProjectApplication app, + Map> coreBizMap) { ProjectApplicationVO appVo = new ProjectApplicationVO(); BeanUtils.copyProperties(app, appVo); if (coreBizMap.containsKey(app.getId())) { @@ -83,7 +101,7 @@ public class ProjectHelper { return appVo; } - public static ProjectApplicationVO convertVO(ProjectApplication app) { + public static ProjectApplicationVO to(ProjectApplication app) { ProjectApplicationVO appVo = new ProjectApplicationVO(); BeanUtils.copyProperties(app, appVo); return appVo; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/AnnualPlanLibManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/AnnualPlanLibManage.java index 8105a8d..087aa9f 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/AnnualPlanLibManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/AnnualPlanLibManage.java @@ -12,7 +12,7 @@ import com.hz.pm.api.common.util.BizUtils; import com.hz.pm.api.common.util.ExcelDownUtil; import com.hz.pm.api.datascope.model.DataScopeDTO; import com.hz.pm.api.datascope.utils.DataScopeUtil; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.model.dto.ProjectDTO; import com.hz.pm.api.projectlib.model.entity.Project; import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; @@ -68,7 +68,7 @@ public class AnnualPlanLibManage { PROJECT_APPROVED, TO_BE_PURCHASED, ON_PILOT_RUNNING, ARCHIVED); public PageVo annulPlanLibList(ProjectListReq req) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); Integer isTemporaryAugment = req.getIsTemporaryAugment(); if (Objects.isNull(isTemporaryAugment)) { throw new BizException("请传入是否临时增补标志!"); @@ -185,7 +185,7 @@ public class AnnualPlanLibManage { } param.setIsTemporaryAugment(isTemporaryAugment); param.setStatusList(CollUtils.fieldList(ANNUAL_PLAN_LIST_STATUS, ProjectStatus::getCode)); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); query.eq(Project::getNewest, Boolean.TRUE); query.orderByDesc(Project::getAnnualPlanAddTime); List projects = projectService.list(query); 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 679c42f..8752293 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 @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.model.constant.TypeReferenceConst; import com.hz.pm.api.common.util.BizUtils; @@ -298,11 +298,8 @@ public class DeclaredRecordManage { projectInfo.setSuperOrg(user.getMhUnitName()); } - ProjectProcessStageEnum instType = ProjectProcessStageEnum.PROJECT_RECORD_APPROVAL_PROCESS; - WflowModels model = processModelManage.getWflowModels(instType, user.getMhUnitId()); - if (Objects.isNull(model)) { - throw BizException.wrap("找不到立项备案审批流程配置"); - } + ProjectProcessType instType = ProjectProcessType.PROJECT_RECORD_APPROVAL_PROCESS; + WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); ProcessStartParamsVo params = new ProcessStartParamsVo(); params.setUser(declaredProjectHelper.buildUser(user)); @@ -324,7 +321,7 @@ public class DeclaredRecordManage { // 保存项目相关 Project newProj = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(), ProjectStatus.NOT_APPROVED, ProjectStatus.DECLARED_APPROVED_TO_BE_RECORD, - ProjectProcessStageEnum.PROJECT_RECORD_APPROVAL_PROCESS); + ProjectProcessType.PROJECT_RECORD_APPROVAL_PROCESS); if (Objects.nonNull(projectInfo.getDraftId())) { //如果是草稿箱提交 删除对应的草稿箱 projectDraftService.removeById(projectInfo.getDraftId()); @@ -342,15 +339,14 @@ public class DeclaredRecordManage { } @Transactional(rollbackFor = Exception.class) - public synchronized String restartDeclaredRecord(DefaultDeclaredDTO req) { + public synchronized void restartDeclaredRecord(DefaultDeclaredDTO req) { UserInfoDetails user = LoginUserUtil.loginUserDetail(); ProjectDTO reqProj = req.getProjectInfo(); Assert.notNull(reqProj.getId(), "提交失败,缺少项目ID!"); reqProj.setBuildOrgCode(user.getMhUnitIdStr()); reqProj.setBuildOrgName(user.getMhUnitName()); - Project oldProj = projectService.getById(reqProj.getId()); - Assert.notNull(oldProj, "提交失败,此项目不存在!"); + Project oldProj = projectService.getNoNull(reqProj.getId()); //项目名称去重 if (StrUtil.isNotBlank(reqProj.getProjectName()) && @@ -374,12 +370,8 @@ public class DeclaredRecordManage { reqProj.setSuperOrg(user.getMhUnitName()); } - ProjectProcessStageEnum instType = ProjectProcessStageEnum.PROJECT_RECORD_APPROVAL_PROCESS; - WflowModels model = processModelManage.getWflowModels(instType, user.getMhUnitId()); - - if (Objects.isNull(model)) { - throw BizException.wrap("%s不存在", instType.getDesc()); - } + ProjectProcessType instType = ProjectProcessType.PROJECT_RECORD_APPROVAL_PROCESS; + WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); VUtils.isTrue(!ProjectStatus.DECLARED_APPROVED_RECORD_FAILED.eq(oldProj.getStatus()) || !ProjectStatus.NOT_APPROVED.eq(oldProj.getStage())) @@ -392,12 +384,10 @@ public class DeclaredRecordManage { //把条件值给放入工作流 declaredProjectHelper.buildCondition(params, req); - // 获取发起单位、发起单位主管单位、发起单位上级主管条线单位信息 Project project = new Project(); BeanUtils.copyProperties(reqProj, project); Map orgModelMap = declaredProjectHelper.buildOrgModelMap(user.getUserId(), project); String instId = processInstanceService.startProcessLs(model, params, orgModelMap); - log.info("立项备案成功 【{}】", instId); //保存项目相关 Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, user.getUserId(), @@ -407,7 +397,6 @@ public class DeclaredRecordManage { //发送给第一个审批人消息 noticeManage.sendFirstUser(newProj, model.getFormName(), instId, WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW); - return instId; } @Transactional(rollbackFor = Exception.class) diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java index bf3eed6..3260789 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java @@ -15,7 +15,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.hz.pm.api.common.compare.CompareUtils; import com.hz.pm.api.common.enumeration.CommonEnum; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.model.constant.CommonConst; import com.hz.pm.api.common.model.entity.ExcelExportWriter; @@ -23,11 +23,11 @@ import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; import com.hz.pm.api.common.util.BizUtils; import com.hz.pm.api.common.util.ExcelDownUtil; import com.hz.pm.api.common.util.StrUtils; -import com.hz.pm.api.dashboard.handle.ApplicationHandler; import com.hz.pm.api.datascope.model.DataScopeDTO; import com.hz.pm.api.datascope.utils.DataScopeUtil; import com.hz.pm.api.expert.model.entity.ExpertReview; import com.hz.pm.api.expert.model.enumeration.ReviewTemplateTypeEnum; +import com.hz.pm.api.expert.model.vo.ProjectReviewDetailVO; import com.hz.pm.api.expert.service.IExpertReviewService; import com.hz.pm.api.filemanage.model.entity.ProjectApplyBorrow; import com.hz.pm.api.filemanage.service.INdProjectApplyBorrowService; @@ -40,6 +40,7 @@ import com.hz.pm.api.portrait.model.vo.TagVO; import com.hz.pm.api.portrait.service.IProjectTagService; import com.hz.pm.api.portrait.service.ITagService; import com.hz.pm.api.projectdeclared.manage.ConstructionManage; +import com.hz.pm.api.projectdeclared.manage.ProjectReviewManage; import com.hz.pm.api.projectdeclared.model.dto.DelayedApplyDTO; import com.hz.pm.api.projectdeclared.model.entity.Operation; import com.hz.pm.api.projectdeclared.model.entity.PreInsAcceptancePerson; @@ -52,7 +53,7 @@ import com.hz.pm.api.projectdeclared.utils.ProjectCodeGenUtil; import com.hz.pm.api.projectdeclared.utils.ProjectIdCodeCacheUtil; import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; import com.hz.pm.api.projectlib.handle.ProcessProgressHelper; -import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.helper.ProjectManageUtil; import com.hz.pm.api.projectlib.model.constant.ProjectConstant; import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; import com.hz.pm.api.projectlib.model.dto.ProjectDTO; @@ -67,13 +68,6 @@ import com.hz.pm.api.projectlib.model.req.ProjectApplicationListReq; import com.hz.pm.api.projectlib.model.req.ProjectListReq; import com.hz.pm.api.projectlib.model.vo.*; import com.hz.pm.api.projectlib.service.*; -import com.hz.pm.api.safety.model.entity.PersonSafetyInfo; -import com.hz.pm.api.safety.model.entity.SupplierSafetyQualification; -import com.hz.pm.api.safety.model.vo.PersonSafetyInfoVO; -import com.hz.pm.api.safety.model.vo.SafetyMonitorVO; -import com.hz.pm.api.safety.model.vo.SupplierSafetyQualificationVO; -import com.hz.pm.api.safety.service.IPersonSafetyInfoService; -import com.hz.pm.api.safety.service.ISupplierSafetyQualificationService; import com.hz.pm.api.todocenter.model.req.ProcessDetailReq; import com.hz.pm.api.todocenter.service.ITodoService; import com.hz.pm.api.user.helper.MhUnitCache; @@ -136,9 +130,6 @@ public class ProjectLibManage { private final IOperationService operationService; private final IProjectTagService projectTagService; private final ITagService tagService; - private final ISupplierSafetyQualificationService supplierSafetyQualificationService; - private final IPersonSafetyInfoService personSafetyInfoService; - private final ApplicationHandler applicationHandler; private final TaskService taskService; private final UserInfoHelper userInfoHelper; private final IExpertReviewService expertReviewService; @@ -147,9 +138,10 @@ public class ProjectLibManage { private final MhUnitCache mhUnitCache; private final IMhProjectSchemaTargetDataService projectSchemaTargetDataService; private final IMhProjectService mhProjectService; + private final ProjectReviewManage projectReviewManage; public PageVo projectLibList(ProjectListReq req) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); query.eq(Project::getNewest, Boolean.TRUE); Page page = projectService.page(req.page(), query); @@ -202,7 +194,7 @@ public class ProjectLibManage { } public PageVo projectLibListWithPermission(ProjectListReq req, UserFullInfoDTO user) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); if (!buildProjectLibPermission(query, user)) { return PageVo.empty(); } @@ -275,7 +267,7 @@ public class ProjectLibManage { * @return \ */ public PageVo projectLibListApprove(ProjectListReq req, UserFullInfoDTO user) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); if (!buildProjectLibPermission(query, user)) { return PageVo.empty(); } @@ -624,7 +616,7 @@ public class ProjectLibManage { } public List projectList(ProjectListReq req) { - LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(req); return projectService.list(query); } @@ -710,7 +702,7 @@ public class ProjectLibManage { if (CollUtil.isNotEmpty(applicationIds)) { List coreBizs = projectCoreBusinessIndicatorsService.listByApplicationIds(applicationIds); Map> coreBizMap = CollUtils.group(coreBizs, ProjectCoreBusinessIndicators::getApplicationId); - retProjectDetail.setProjectApplications(CollUtils.convert(applications, app -> ProjectHelper.convertVOWithMap(app, coreBizMap))); + retProjectDetail.setProjectApplications(CollUtils.convert(applications, app -> ProjectManageUtil.to(app, coreBizMap))); } retProjectDetail.setSystemReplaceInfos(getGovSystemReplaceInfos(project.getId())); //审批信息 @@ -763,27 +755,9 @@ public class ProjectLibManage { }); } - List annualPaymentPlans = projectAnnualPaymentPlanService.listByProjectId(project.getId()); retProjectDetail.setAnnualPaymentPlans(BeanUtil.copyToList(annualPaymentPlans, ProjectPaymentPlanDTO.class)); - - SafetyMonitorVO safetyVo = new SafetyMonitorVO(); - //查询风险监测 - List safetyQualifications = supplierSafetyQualificationService.listByProjectCode(projectCode); - if (CollUtil.isNotEmpty(safetyQualifications)) { - safetyVo.setSupplierSafetyQualification(BeanUtil.copyToList(safetyQualifications, SupplierSafetyQualificationVO.class)); - } - retProjectDetail.setSafetyInfo(safetyVo); - - List personSafetyInfos = personSafetyInfoService.listByProjectCode(projectCode); - if (CollUtil.isNotEmpty(personSafetyInfos)) { - safetyVo.setPersonSafetyInfo(BeanUtil.copyToList(personSafetyInfos, PersonSafetyInfoVO.class)); - } - - // 查询终验信息 - retProjectDetail.setFinalIrsApps(applicationHandler.generateIrsApp(projectCode, project.getVersion())); - // 处理文件名 List fileIdList = new ArrayList<>(); BizUtils.notBlank(retProjectDetail.getApprovedFile(), w -> fileIdList.add(Long.parseLong(w))); @@ -802,6 +776,11 @@ public class ProjectLibManage { retProjectDetail.setProposeAttach(finalReview.getOtherAdvice()); retProjectDetail.setBaseReviewResults(finalReview.getReviewResult()); } + + // 评审详情 + ProjectReviewDetailVO projectReviewDetail = projectReviewManage.projectReviewDetail(project.getId()); + retProjectDetail.setReviewDetail(projectReviewDetail); + return retProjectDetail; } @@ -809,19 +788,19 @@ public class ProjectLibManage { /** * 申报新项目时 保存项目信息和其它相关联的信息 * - * @param projectDto \ - * @param instanceId \ + * @param proj \ + * @param instCode \ * @return \ */ - public Project saveProjectInDeclared(ProjectDTO projectDto, String instanceId, Long userId) { - Project project = saveProjectNewVersion(projectDto, instanceId, userId, Boolean.FALSE); + public Project saveProjectInDeclared(ProjectDTO proj, String instCode, Long userId) { + Project project = saveProjectNewVersion(proj, instCode, userId, Boolean.FALSE); //保存项目和实例的关系 ProjectInst projectInst = new ProjectInst(); projectInst.setProjectId(project.getId()); - projectInst.setInstCode(instanceId); + projectInst.setInstCode(instCode); projectInst.setCreateOn(LocalDateTime.now()); projectInst.setUpdateOn(LocalDateTime.now()); - projectInst.setInstType(ProjectProcessStageEnum.COMPLIANCE_REVIEW.getCode()); + projectInst.setInstType(ProjectProcessType.COMPLIANCE_REVIEW.getCode()); projectInstService.save(projectInst); return project; } @@ -829,19 +808,19 @@ public class ProjectLibManage { /** * 申报新项目时 保存项目信息和其它相关联的信息 * - * @param projectDto \ - * @param instanceId \ + * @param proj \ + * @param instCode \ * @return \ */ - public Project saveProjectInDeclared(ProjectDTO projectDto, String instanceId, Long userId, + public Project saveProjectInDeclared(ProjectDTO proj, String instCode, Long userId, ProjectStatus stage, ProjectStatus status, - ProjectProcessStageEnum processStage) { - Project project = saveProjectNewVersion(projectDto, instanceId, userId, Boolean.FALSE, stage, status); + ProjectProcessType instType) { + Project project = saveProjectNewVersion(proj, instCode, userId, Boolean.FALSE, stage, status); //保存项目和实例的关系 ProjectInst projectInst = new ProjectInst(); projectInst.setProjectId(project.getId()); - projectInst.setInstCode(instanceId); - projectInst.setInstType(processStage.getCode()); + projectInst.setInstCode(instCode); + projectInst.setInstType(instType.getCode()); projectInstService.save(projectInst); return project; } @@ -853,7 +832,7 @@ public class ProjectLibManage { * @param instanceId \ * @return \ */ - public Project saveProjectNewVersion(ProjectDTO projectDto, String instanceId, + private Project saveProjectNewVersion(ProjectDTO projectDto, String instanceId, Long userId, Boolean isContruct) { //流程启动之后 入库项目 重要业务信息 用于列表查询 展示 return saveProjectNewVersion(projectDto, instanceId, userId, isContruct, ProjectStatus.NOT_APPROVED, ProjectStatus.TO_BE_DECLARED); @@ -936,8 +915,7 @@ public class ProjectLibManage { * 新增一个新的项目 新的版本号 */ public Project newProjectWithVersion(ProjectDTO projectDto, Boolean isConstruct) { - Project oldProject = projectService.getById(projectDto.getId()); - Assert.notNull(oldProject, "项目不存在!"); + Project oldProject = projectService.getNoNull(projectDto.getId()); Project project = new Project(); BeanUtil.copyProperties(oldProject, project, CopyOptions.create() .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); @@ -981,9 +959,8 @@ public class ProjectLibManage { } public Project saveProjectWithVersionAndStatus(ProjectDTO projectDto, Integer stageCode, Integer statusCode, Boolean isConstruct) { - Project oldProject = projectService.getById(projectDto.getId()); + Project oldProject = projectService.getNoNull(projectDto.getId()); Project project = new Project(); - Assert.notNull(oldProject, "项目不存在"); BeanUtil.copyProperties(oldProject, project, CopyOptions.create() .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); BeanUtil.copyProperties(projectDto, project, CopyOptions.create() @@ -1014,10 +991,8 @@ public class ProjectLibManage { @Transactional(rollbackFor = Exception.class) public Project saveProjectWithVersion(ProjectDTO projectDto, String instanceId, Integer instType, Boolean isConstruct) { - Project oldProject = projectService.getById(projectDto.getId()); + Project oldProject = projectService.getNoNull(projectDto.getId()); Project project = new Project(); - VUtils.isTrue(Objects.isNull(oldProject)) - .throwMessage("项目不存在!"); BeanUtil.copyProperties(oldProject, project, CopyOptions.create() .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); BeanUtil.copyProperties(projectDto, project, CopyOptions.create() @@ -1168,7 +1143,7 @@ public class ProjectLibManage { Optional.ofNullable(applications).ifPresent(apps -> vo.setProjectApplications(CollUtils.convert(apps, - ProjectHelper::convertVO) + ProjectManageUtil::to) )); return vo; @@ -1186,7 +1161,7 @@ public class ProjectLibManage { public void exportList(ProjectListReq param, HttpServletResponse response) { param.setPageNumber(CommonConst.EXPORT_PAGE_NUMBER); param.setPageSize(CommonConst.EXPORT_PAGE_SIZE); - LambdaQueryWrapper query = ProjectHelper.projectQuery(param); + LambdaQueryWrapper query = ProjectManageUtil.projectQuery(param); query.eq(Project::getNewest, Boolean.TRUE); List projects = projectService.list(query); @@ -1440,9 +1415,7 @@ public class ProjectLibManage { JSONObject res = new JSONObject(); //1.先判断下 项目存不存在 - Project project = projectService.getById(projectId); - VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在"); - + Project project = projectService.getNoNull(projectId); //2.要判断 项目在当前状态 有没有被驳回和退回过 //当前项目状态流程的 实例 看看是不是有2个以上 有2个说明 有退回 驳回 diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/ProjectInst.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/ProjectInst.java index 3f7fe0b..ce393f2 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/ProjectInst.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/ProjectInst.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; import java.time.LocalDateTime; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -51,7 +51,7 @@ public class ProjectInst implements Serializable { this.instType = instType.getCode(); } - public void setInstType(ProjectProcessStageEnum processStage) { + public void setInstType(ProjectProcessType processStage) { this.instType = processStage.getCode(); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/ProjectDetailVO.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/ProjectDetailVO.java index cfef089..33f6a24 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/ProjectDetailVO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/ProjectDetailVO.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; import com.hz.pm.api.common.compare.Compare; import com.hz.pm.api.dashboard.model.vo.PortraitProjectOutputVO; +import com.hz.pm.api.expert.model.vo.ProjectReviewDetailVO; import com.hz.pm.api.portrait.model.vo.TagVO; import com.hz.pm.api.projectdeclared.model.vo.PurchaseFullInfoVO; import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; @@ -399,6 +400,9 @@ public class ProjectDetailVO { @ApiModelProperty("采购信息(标段)") private List purchaseDetails; + @ApiModelProperty("项目评审详情") + private ProjectReviewDetailVO reviewDetail; + @ApiModelProperty("版本号str") private String versionStr; 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 1e6c355..011f162 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 @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -32,6 +33,12 @@ public interface IProjectService extends IService { return Optional.ofNullable(ProjectIdCodeCacheUtil.get(projectId)); } + default Project getNoNull(Long projectId) { + Project project = getById(projectId); + Assert.notNull(project, "项目不存在"); + return project; + } + @Override default boolean save(Project entity) { boolean state = IService.super.save(entity); @@ -58,8 +65,12 @@ public interface IProjectService extends IService { Project getNewProject(Long projectId); + Project getNewestNoNull(Long projectId); + Project getProjectByCode(String projectCode); + Project getNoNull(String projectCode); + Page pageAllWithPermission(Page page, ProjectListReq req); Page pageLibWithPermission(Page page, ProjectListReq req); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/impl/ProjectServiceImpl.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/impl/ProjectServiceImpl.java index baada85..e2119db 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/impl/ProjectServiceImpl.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/impl/ProjectServiceImpl.java @@ -14,6 +14,8 @@ import com.hz.pm.api.projectlib.service.IProjectService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Objects; + /** *

* 服务实现类 @@ -32,6 +34,11 @@ public class ProjectServiceImpl extends ServiceImpl impl } @Override + public Project getNewestNoNull(Long projectId) { + return Objects.requireNonNull(getNewProject(projectId), "项目不存在"); + } + + @Override public Project getProjectByCode(String projectCode) { return this.getOne(Wrappers.lambdaQuery(Project.class) .eq(Project::getProjectCode, projectCode) @@ -40,6 +47,11 @@ public class ProjectServiceImpl extends ServiceImpl impl } @Override + public Project getNoNull(String projectCode) { + return Objects.requireNonNull(getProjectByCode(projectCode), "项目不存在"); + } + + @Override public Page pageAllWithPermission(Page page, ProjectListReq req) { return baseMapper.pageAllWithPermission(page, req); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/utils/ProjectVersionUtil.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/utils/ProjectVersionUtil.java deleted file mode 100644 index 55ca9c2..0000000 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/utils/ProjectVersionUtil.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hz.pm.api.projectlib.utils; - -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hz.pm.api.common.model.constant.CommonConst; -import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; -import com.hz.pm.api.projectlib.model.entity.Project; -import com.hz.pm.api.projectlib.model.entity.ProjectInst; -import com.hz.pm.api.projectlib.service.IProjectInstService; -import com.hz.pm.api.projectlib.service.IProjectService; -import com.ningdatech.basic.exception.BizException; -import com.wflow.workflow.bean.vo.ProcessProgressVo; -import com.wflow.workflow.enums.ProcessStatusEnum; -import com.wflow.workflow.service.ProcessInstanceService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -/** - * 根据项目版本获取流程详情工具类 - * - * @author CMM - * @since 2023/04/20 09:57 - */ -@Slf4j -@Component -@RequiredArgsConstructor -public class ProjectVersionUtil { - - private final IProjectService projectService; - private final ProcessInstanceService processInstanceService; - private final IProjectInstService projectInstService; - - /** - * 根据最新的项目ID获取临近项目版本的审核记录信息 - * - * @param projectId - * @return - */ - public ProcessProgressVo getPreVerProcessInfo(Long projectId, InstTypeEnum instTypeEnum) { - Project project = projectService.getById(projectId); - if (Objects.isNull(project)) { - throw new BizException("当前项目不存在!"); - } - String projectCode = project.getProjectCode(); - if (StringUtils.isEmpty(projectCode)) { - throw new BizException("当前项目编号为空!"); - } - // 获取相同项目编号的项目 - List projectList = projectService.list(Wrappers.lambdaQuery(Project.class) - .eq(Project::getProjectCode, projectCode)); - if (projectList.size() < CommonConst.VERSION_SIZE) { - throw new BizException("未发现该项目的历史版本!"); - } - - // 获取之前版本的项目 - for (Project preProject : projectList) { - // 从项目流程实例关联表中查出实例详情 - List projectInstList = projectInstService - .list(Wrappers.lambdaQuery(ProjectInst.class).eq(ProjectInst::getProjectId, preProject.getId()) - .eq(ProjectInst::getInstType, instTypeEnum.getCode())); - if (CollUtil.isNotEmpty(projectInstList)) { - List processProgressVoList = projectInstList.stream() - .map(p -> processInstanceService.getProgressInstanceDetail(null, p.getInstCode())) - .collect(Collectors.toList()); - // 筛选出上个版本该类型审核流程通过的流程详情 - List instanceDetailList = processProgressVoList.stream() - .filter(p -> ProcessStatusEnum.APPROVED.getDesc().equals(p.getStatus())) - .collect(Collectors.toList()); - if (CollUtil.isNotEmpty(instanceDetailList)) { - // 获取最后一个流程详情 - return instanceDetailList.get(instanceDetailList.size() - 1); - } - } - } - return null; - } -} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/contants/TaskContant.java b/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/contants/TaskContant.java index 8f44ff0..47eeec5 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/contants/TaskContant.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/contants/TaskContant.java @@ -1,6 +1,6 @@ package com.hz.pm.api.scheduler.contants; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; /** * @author PoffyZhang @@ -13,8 +13,8 @@ public interface TaskContant { class Wflow { public static final Integer[] APPLY_PROCESS_TYPE_LIST = { - ProjectProcessStageEnum.APPLY_DELAY.getCode(), - ProjectProcessStageEnum.APPLY_BORROW.getCode() + ProjectProcessType.APPLY_DELAY.getCode(), + ProjectProcessType.APPLY_BORROW.getCode() }; } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/TaskCreatedListener.java b/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/TaskCreatedListener.java index 801433a..418a27a 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/TaskCreatedListener.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/TaskCreatedListener.java @@ -1,9 +1,8 @@ package com.hz.pm.api.scheduler.listener; -import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.helper.WflowHelper; import com.hz.pm.api.common.util.ThreadPoolUtil; @@ -69,7 +68,7 @@ public class TaskCreatedListener implements FlowableEventListener { String procDefId = entityEvent.getProcessDefinitionId(); String procInstId = entityEvent.getProcessInstanceId(); WflowModelHistorys models = processModelHistorysService.getByProcessDefId(procDefId); - ProjectProcessStageEnum procType = ProjectProcessStageEnum.getNoNull(models.getProcessType()); + ProjectProcessType procType = ProjectProcessType.getNoNull(models.getProcessType()); TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity(); UserFullInfoDTO assignee = userInfoHelper.getUserFullInfo(taskEntity.getAssignee()); if (assignee == null || StrUtil.isBlank(assignee.getMhUserId())) { @@ -97,8 +96,8 @@ public class TaskCreatedListener implements FlowableEventListener { .userName(assignee.getRealName()) .path("/toDoCenter/handleDuringExamine") .build(); - if (procType.equals(ProjectProcessStageEnum.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS) - || procType.equals(ProjectProcessStageEnum.XC_APPROVAL_PROCESS)) { + if (procType.equals(ProjectProcessType.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS) + || procType.equals(ProjectProcessType.XC_APPROVAL_PROCESS)) { PurchaseInst purchaseInst = purchaseInstService.getByProjectIdAndInstCode(paramObj.getProjectId(), procInstId); if (purchaseInst == null) { return; @@ -123,7 +122,7 @@ public class TaskCreatedListener implements FlowableEventListener { FlowableEngineEntityEvent entityEvent = (FlowableEngineEntityEvent) event; String procDefId = entityEvent.getProcessDefinitionId(); WflowModelHistorys models = processModelHistorysService.getByProcessDefId(procDefId); - ProjectProcessStageEnum procType = ProjectProcessStageEnum.getNoNull(models.getProcessType()); + ProjectProcessType procType = ProjectProcessType.getNoNull(models.getProcessType()); TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity(); WflowHelper wflowHelper = SpringUtil.getBean(WflowHelper.class); String taskDefKey = taskEntity.getTaskDefinitionKey(); @@ -148,7 +147,7 @@ public class TaskCreatedListener implements FlowableEventListener { } } - private MHTodoTypeEnum getMhTodoTypeEnum(ProjectProcessStageEnum procType) { + private MHTodoTypeEnum getMhTodoTypeEnum(ProjectProcessType procType) { MHTodoTypeEnum todoType; switch (procType) { case XC_APPROVAL_PROCESS: diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/InitProcessManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/InitProcessManage.java index fb52965..f39acc4 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/InitProcessManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/InitProcessManage.java @@ -3,7 +3,7 @@ package com.hz.pm.api.sys.manage; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.ningdatech.basic.util.CollUtils; import com.wflow.bean.dto.WflowModelHistorysInsertDto; import com.wflow.bean.entity.WflowModels; @@ -41,11 +41,11 @@ public class InitProcessManage { return; } List strUnitIds = CollUtils.convert(unitIds, String::valueOf); - ProjectProcessStageEnum[] stages = ProjectProcessStageEnum.values(); + ProjectProcessType[] stages = ProjectProcessType.values(); List allModels = processModelService.list(Wrappers.lambdaQuery(WflowModels.class) .in(WflowModels::getRegionCode, strUnitIds)); Map> modelsByType = CollUtils.group(allModels, WflowModels::getProcessType); - for (ProjectProcessStageEnum stage : stages) { + for (ProjectProcessType stage : stages) { List currModels = modelsByType.getOrDefault(stage.getCode(), Collections.emptyList()); Map modelsByUnitId = CollUtils.listToMap(currModels, WflowModels::getRegionCode); for (String unitId : strUnitIds) { diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/MenuManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/MenuManage.java index ed0edf3..8bd7292 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/MenuManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/MenuManage.java @@ -9,7 +9,7 @@ import com.ningdatech.basic.exception.BizException; import com.ningdatech.basic.util.CollUtils; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.model.constant.RegionConst; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.RegionCacheHelper; import com.hz.pm.api.common.model.entity.MenuTreeEntity; import com.hz.pm.api.common.util.TreeUtil; @@ -96,7 +96,7 @@ public class MenuManage { Integer[] processTypeList = TaskContant.Wflow.APPLY_PROCESS_TYPE_LIST; for(Integer processType : processTypeList){ - String formName = ProjectProcessStageEnum.getDesc(processType); + String formName = ProjectProcessType.getDesc(processType); WflowModelHistorysInsertDto models = new WflowModelHistorysInsertDto(); models.setGroupId(1); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/ProcessModelManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/ProcessModelManage.java index 18f1a2e..d3d6474 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/ProcessModelManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/sys/manage/ProcessModelManage.java @@ -3,7 +3,7 @@ package com.hz.pm.api.sys.manage; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.user.helper.MhUnitCache; import com.ningdatech.basic.util.CollUtils; import com.wflow.bean.entity.WflowModels; @@ -37,7 +37,7 @@ public class ProcessModelManage { * @param unitId 单位ID * @return 流程配置 */ - public WflowModels getWflowModels(ProjectProcessStageEnum processStage, Long unitId) { + private WflowModels getWflowModels(ProjectProcessType processStage, Long unitId) { List unitIdPaths = mhUnitCache.getUnitIdPaths(unitId); if (unitIdPaths.isEmpty()) { log.error("该单位无法进行项目申报:{}", unitId); @@ -52,4 +52,17 @@ public class ProcessModelManage { .last(orderSql)); } + /** + * 获取单位对应的流程配置 + * + * @param processStage 流程类型 + * @param unitId 单位ID + * @return 流程配置 + */ + public WflowModels getWflowModelsNoNull(ProjectProcessType processStage, Long unitId) { + WflowModels wflowModels = getWflowModels(processStage, unitId); + Assert.notNull(wflowModels, "%s 不存在", processStage.getDesc()); + return wflowModels; + } + } 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 e65b42e..48d1725 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 @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Sets; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.WflowHelper; import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.common.model.constant.TypeReferenceConst; @@ -194,7 +194,7 @@ public class HandlerManage { case TO_BE_FIRST_INSPECTED: case ON_PILOT_RUNNING: case ON_FINALLY_INSPECTED: - ProjectProcessStageEnum processStage = ProjectProcessStageEnum.getNoNull(instTypeEnum.getCode()); + ProjectProcessType processStage = ProjectProcessType.getNoNull(instTypeEnum.getCode()); purchasePassedCallback(project, instanceId, processStage); break; default: @@ -264,7 +264,7 @@ public class HandlerManage { purchaseService.updateById(purchase); } - private void purchasePassedCallback(Project project, String instanceId, ProjectProcessStageEnum processStage) { + private void purchasePassedCallback(Project project, String instanceId, ProjectProcessType processStage) { // 查询所有的标段 List purchases = purchaseService.listByProjectId(project.getId()); Map purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/TodoCenterManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/TodoCenterManage.java index ca2707b..d57540c 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/TodoCenterManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/TodoCenterManage.java @@ -1064,9 +1064,7 @@ public class TodoCenterManage { @Transactional(rollbackFor = Exception.class) public String adjustmentAndHandle(AdjustHandleDTO dto) { ProjectDTO projectDto = dto.getProjectInfo(); - Project projectInfo = projectService.getById(projectDto.getId()); - - Assert.notNull(projectInfo, "调整失败 此项目不存在!"); + Project projectInfo = projectService.getNoNull(projectDto.getId()); //项目名称去重 //项目名称去重 diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/converter/WorkbenchConverter.java b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/converter/WorkbenchConverter.java index af5fb0d..d86ca35 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/converter/WorkbenchConverter.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/converter/WorkbenchConverter.java @@ -1,7 +1,7 @@ package com.hz.pm.api.workbench.converter; import cn.hutool.core.bean.BeanUtil; -import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; +import com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO; import com.hz.pm.api.todocenter.model.vo.ResToBeProcessedVO; import com.hz.pm.api.todocenter.model.vo.TodoVO; import com.hz.pm.api.workbench.model.vo.WorkbenchVO; @@ -19,7 +19,7 @@ public class WorkbenchConverter { private WorkbenchConverter() { } - public static WorkbenchVO.DeclaredStatistics convert(DeclaredProjectStatisticsPO po, DeclaredProjectStatisticsPO lastYearPo) { + public static WorkbenchVO.DeclaredStatistics convert(DeclaredProjectStatisticsVO po, DeclaredProjectStatisticsVO lastYearPo) { WorkbenchVO.DeclaredStatistics res = BeanUtil.copyProperties(po, WorkbenchVO.DeclaredStatistics.class); if (Objects.nonNull(lastYearPo)) { res.setDeclaredAmountLastYear(lastYearPo.getDeclaredAmount()); diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java index 2d2554c..4b8a874 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java @@ -119,8 +119,7 @@ public class WorkbenchManage { WflowEarlyWarningRecords warningRecords = earlyWarningRecordsService.getById(recordId); Assert.notNull(warningRecords, "催办失败,id不存在!"); String projectCode = warningRecords.getProjectCode(); - Project project = projectService.getProjectByCode(projectCode); - Assert.notNull(project, "催办失败,项目不存在!"); + Project project = projectService.getNoNull(projectCode); String batchEmployees = warningRecords.getBatchUserIds(); Integer ruleType = warningRecords.getRuleType(); String areaCode = warningRecords.getAreaCode(); diff --git a/hz-pm-api/src/test/java/com/hz/pm/api/sys/processDef/ProcessDefTest.java b/hz-pm-api/src/test/java/com/hz/pm/api/sys/processDef/ProcessDefTest.java index 2b6aff5..63b1898 100644 --- a/hz-pm-api/src/test/java/com/hz/pm/api/sys/processDef/ProcessDefTest.java +++ b/hz-pm-api/src/test/java/com/hz/pm/api/sys/processDef/ProcessDefTest.java @@ -7,7 +7,7 @@ import com.alibaba.fastjson.JSON; import com.ningdatech.basic.exception.BizException; import com.hz.pm.api.AppTests; import com.hz.pm.api.common.model.constant.RegionConst; -import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.enumeration.ProjectProcessType; import com.hz.pm.api.common.helper.RegionCacheHelper; import com.hz.pm.api.scheduler.contants.TaskContant; import com.hz.pm.api.sys.model.dto.RegionDTO; @@ -70,7 +70,7 @@ public class ProcessDefTest extends AppTests { Integer[] processTypeList = TaskContant.Wflow.APPLY_PROCESS_TYPE_LIST; for(Integer processType : processTypeList){ - String formName = ProjectProcessStageEnum.getDesc(processType); + String formName = ProjectProcessType.getDesc(processType); WflowModelHistorysInsertDto models = new WflowModelHistorysInsertDto(); models.setGroupId(1);