@@ -10,7 +10,7 @@ import java.util.Optional; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* ProjectProcessStageEnum | |||||
* ProjectProcessType | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author WendyYang | * @author WendyYang | ||||
@@ -18,7 +18,7 @@ import java.util.Optional; | |||||
*/ | */ | ||||
@Getter | @Getter | ||||
@AllArgsConstructor | @AllArgsConstructor | ||||
public enum ProjectProcessStageEnum { | |||||
public enum ProjectProcessType { | |||||
/** | /** | ||||
* 项目流程配置 阶段枚举 | * 项目流程配置 阶段枚举 | ||||
@@ -45,7 +45,7 @@ public enum ProjectProcessStageEnum { | |||||
if (Objects.isNull(code)) { | if (Objects.isNull(code)) { | ||||
return StringUtils.EMPTY; | return StringUtils.EMPTY; | ||||
} | } | ||||
for (ProjectProcessStageEnum t : ProjectProcessStageEnum.values()) { | |||||
for (ProjectProcessType t : ProjectProcessType.values()) { | |||||
if (code.equals(t.getCode())) { | if (code.equals(t.getCode())) { | ||||
return t.desc; | return t.desc; | ||||
} | } | ||||
@@ -53,11 +53,11 @@ public enum ProjectProcessStageEnum { | |||||
return StringUtils.EMPTY; | return StringUtils.EMPTY; | ||||
} | } | ||||
private static Optional<ProjectProcessStageEnum> get(Integer code) { | |||||
private static Optional<ProjectProcessType> get(Integer code) { | |||||
return Arrays.stream(values()).filter(w -> w.getCode().equals(code)).findFirst(); | 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("流程实例类型")); | return get(code).orElseThrow(() -> new IllegalArgumentException("流程实例类型")); | ||||
} | } | ||||
@@ -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<PortraitProjectOutputVO> generateIrsApp(String projectCode, Integer version) { | |||||
//.查询应用 | |||||
Wrapper<ProjectApplication> paQuery = Wrappers.lambdaQuery(ProjectApplication.class) | |||||
.eq(ProjectApplication::getProjectVersion, version) | |||||
.eq(ProjectApplication::getProjectCode, projectCode); | |||||
List<ProjectApplication> apps = applicationService.list(paQuery); | |||||
if (apps.isEmpty()) { | |||||
return Collections.emptyList(); | |||||
} | |||||
List<PortraitProjectOutputVO> 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(); | |||||
} | |||||
} |
@@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.model.constant.CommonConst; | 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.ningdatech.file.utils.StrPool; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
import com.wflow.contants.HisProInsEndActId; | import com.wflow.contants.HisProInsEndActId; | ||||
import com.wflow.exception.BusinessException; | |||||
import com.wflow.workflow.bean.dto.OrgInfoDTO; | import com.wflow.workflow.bean.dto.OrgInfoDTO; | ||||
import com.wflow.workflow.bean.process.FileBasicInfo; | import com.wflow.workflow.bean.process.FileBasicInfo; | ||||
import com.wflow.workflow.bean.process.ProcessComment; | import com.wflow.workflow.bean.process.ProcessComment; | ||||
@@ -245,8 +244,7 @@ public class ProjectFileManage { | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public synchronized String startApplyBorrowProcess(Long projectId) { | 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())) { | if (!ProjectStatus.ACCEPTED.eq(project.getStatus())) { | ||||
@@ -254,13 +252,9 @@ public class ProjectFileManage { | |||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.APPLY_BORROW, | |||||
WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.APPLY_BORROW, | |||||
user.getMhUnitId()); | user.getMhUnitId()); | ||||
if (Objects.isNull(model)) { | |||||
throw new BusinessException("找不到申请借阅流程配置"); | |||||
} | |||||
ProcessStartParamsVo params = new ProcessStartParamsVo(); | ProcessStartParamsVo params = new ProcessStartParamsVo(); | ||||
params.setUser(declaredProjectHelper.buildUser(user)); | params.setUser(declaredProjectHelper.buildUser(user)); | ||||
params.setProcessUsers(Collections.emptyMap()); | params.setProcessUsers(Collections.emptyMap()); | ||||
@@ -450,13 +444,7 @@ public class ProjectFileManage { | |||||
List<Long> contractFileIdList = getFileIdList(attachment); | List<Long> contractFileIdList = getFileIdList(attachment); | ||||
fileIdList.addAll(contractFileIdList); | fileIdList.addAll(contractFileIdList); | ||||
} | } | ||||
// TODO | |||||
// 初验备案阶段 | |||||
// 获取初验材料 | |||||
// String preliminaryInspectionMaterials = project.getPreliminaryInspectionMaterials(); | |||||
// getInspectionMaterials(fileIdList, preliminaryInspectionMaterials); | |||||
// 终验申报阶段 | |||||
// 获取终验材料 | // 获取终验材料 | ||||
String finalAcceptanceMaterials = project.getFinalAcceptanceMaterials(); | String finalAcceptanceMaterials = project.getFinalAcceptanceMaterials(); | ||||
getInspectionMaterials(fileIdList, finalAcceptanceMaterials); | getInspectionMaterials(fileIdList, finalAcceptanceMaterials); | ||||
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Maps; | 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.BizConst; | ||||
import com.hz.pm.api.common.model.constant.RegionConst; | import com.hz.pm.api.common.model.constant.RegionConst; | ||||
import com.hz.pm.api.gov.contants.BizProjectContant; | import com.hz.pm.api.gov.contants.BizProjectContant; | ||||
@@ -253,8 +253,7 @@ public class OrgSelfAppraisalManage { | |||||
public ProjectAppraisalIndexDetailVO getAppraisalTemplateDetail(String projectCode) { | public ProjectAppraisalIndexDetailVO getAppraisalTemplateDetail(String projectCode) { | ||||
ProjectAppraisalIndexDetailVO vo = new ProjectAppraisalIndexDetailVO(); | ProjectAppraisalIndexDetailVO vo = new ProjectAppraisalIndexDetailVO(); | ||||
// 根据项目编码获取最新版本的项目信息 | // 根据项目编码获取最新版本的项目信息 | ||||
Project project = projectService.getProjectByCode(projectCode); | |||||
VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在!"); | |||||
Project project = projectService.getNoNull(projectCode); | |||||
// 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | ||||
String projectType = project.getProjectType(); | String projectType = project.getProjectType(); | ||||
Integer projectYear = project.getProjectYear(); | Integer projectYear = project.getProjectYear(); | ||||
@@ -388,8 +387,7 @@ public class OrgSelfAppraisalManage { | |||||
Long appraisalId = param.getAppraisalId(); | Long appraisalId = param.getAppraisalId(); | ||||
// 根据项目编码获取最新版本的项目信息 | // 根据项目编码获取最新版本的项目信息 | ||||
Project project = projectService.getProjectByCode(projectCode); | |||||
Assert.notNull(project, "项目不存在!"); | |||||
Project project = projectService.getNoNull(projectCode); | |||||
// 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | ||||
String projectType = project.getProjectType(); | String projectType = project.getProjectType(); | ||||
Integer projectYear = project.getProjectYear(); | Integer projectYear = project.getProjectYear(); | ||||
@@ -368,8 +368,7 @@ public class PerformanceAppraisalPlanManage { | |||||
} | } | ||||
for (AppraisalProjectDTO appraisalProject : projects) { | 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); | LocalDateTime finishTime = getProjectFinishTime(newProject); | ||||
@@ -492,8 +491,7 @@ public class PerformanceAppraisalPlanManage { | |||||
Integer completeSelfDays = editDTO.getCompleteSelfDays(); | Integer completeSelfDays = editDTO.getCompleteSelfDays(); | ||||
List<AppraisalProjectDTO> projects = editDTO.getProjects(); | List<AppraisalProjectDTO> projects = editDTO.getProjects(); | ||||
for (AppraisalProjectDTO appraisalProject : projects) { | 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); | LocalDateTime finishTime = getProjectFinishTime(newProject); | ||||
PerformanceAppraisalProject pap = new PerformanceAppraisalProject(); | PerformanceAppraisalProject pap = new PerformanceAppraisalProject(); | ||||
@@ -332,8 +332,7 @@ public class ReAppraisalManage { | |||||
Long appraisalId = param.getAppraisalId(); | Long appraisalId = param.getAppraisalId(); | ||||
// 根据项目编码获取最新版本的项目信息 | // 根据项目编码获取最新版本的项目信息 | ||||
Project project = projectService.getProjectByCode(projectCode); | |||||
Assert.notNull(project, "项目不存在!"); | |||||
Project project = projectService.getNoNull(projectCode); | |||||
// 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | ||||
String projectType = project.getProjectType(); | String projectType = project.getProjectType(); | ||||
Integer projectYear = project.getProjectYear(); | Integer projectYear = project.getProjectYear(); | ||||
@@ -341,8 +341,7 @@ public class VerifyManage { | |||||
Long appraisalId = param.getAppraisalId(); | Long appraisalId = param.getAppraisalId(); | ||||
// 根据项目编码获取最新版本的项目信息 | // 根据项目编码获取最新版本的项目信息 | ||||
Project project = projectService.getProjectByCode(projectCode); | |||||
Assert.notNull(project, "项目不存在!"); | |||||
Project project = projectService.getNoNull(projectCode); | |||||
// 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | // 根据项目类型、预算年度、批复金额、项目标签匹配本区域指标模版 | ||||
String projectType = project.getProjectType(); | String projectType = project.getProjectType(); | ||||
Integer projectYear = project.getProjectYear(); | Integer projectYear = project.getProjectYear(); | ||||
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; | 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.PreInsVO; | ||||
import com.hz.pm.api.projectdeclared.model.vo.ProjectContractListVO; | import com.hz.pm.api.projectdeclared.model.vo.ProjectContractListVO; | ||||
import com.hz.pm.api.projectdeclared.service.*; | 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.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectAnnualPaymentPlan; | import com.hz.pm.api.projectlib.model.entity.ProjectAnnualPaymentPlan; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
@@ -104,7 +104,7 @@ public class ConstructionManage { | |||||
*/ | */ | ||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
//建设中状态 | //建设中状态 | ||||
query.isNull(Project::getContractAmount); | query.isNull(Project::getContractAmount); | ||||
query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); | query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); | ||||
@@ -149,7 +149,7 @@ public class ConstructionManage { | |||||
*/ | */ | ||||
public PageVo<ProjectContractListVO> projectListPerfect(ProjectListReq req) { | public PageVo<ProjectContractListVO> projectListPerfect(ProjectListReq req) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
//只能看自己单位的 | //只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); | query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); | ||||
@@ -201,7 +201,7 @@ public class ConstructionManage { | |||||
} | } | ||||
public void exportList(HttpServletResponse response, ProjectListReq param) { | public void exportList(HttpServletResponse response, ProjectListReq param) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
//待采购状态 | //待采购状态 | ||||
query.isNull(Project::getContractAmount); | query.isNull(Project::getContractAmount); | ||||
query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); | query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); | ||||
@@ -281,8 +281,7 @@ public class ConstructionManage { | |||||
public synchronized String submitPurchaseContract(SubmitConstructionReq req) { | public synchronized String submitPurchaseContract(SubmitConstructionReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
Long projectId = req.getProjectId(); | 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()) || | VUtils.isTrue(!ProjectStatus.ON_PURCHASING.getCode().equals(project.getStatus()) || | ||||
@@ -344,7 +343,7 @@ public class ConstructionManage { | |||||
if (projectIds.isEmpty()) { | if (projectIds.isEmpty()) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
query.in(Project::getId, projectIds); | query.in(Project::getId, projectIds); | ||||
query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); | query.eq(Project::getStage, ProjectStatus.PROJECT_APPROVED.getCode()); | ||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
@@ -412,7 +411,7 @@ public class ConstructionManage { | |||||
public void exportPreList(HttpServletResponse response, ProjectListReq param) { | public void exportPreList(HttpServletResponse response, ProjectListReq param) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); | VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
//待采购状态 | //待采购状态 | ||||
//只能看自己单位的 | //只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | ||||
@@ -562,12 +561,9 @@ public class ConstructionManage { | |||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.XC_APPROVAL_PROCESS, | |||||
WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.XC_APPROVAL_PROCESS, | |||||
user.getMhUnitId()); | user.getMhUnitId()); | ||||
if (Objects.isNull(model)) { | |||||
throw BizException.wrap("找不到信创审批流程配置"); | |||||
} | |||||
ProcessStartParamsVo processParam = new ProcessStartParamsVo(); | ProcessStartParamsVo processParam = new ProcessStartParamsVo(); | ||||
processParam.setUser(declaredProjectHelper.buildUser(user)); | processParam.setUser(declaredProjectHelper.buildUser(user)); | ||||
processParam.setProcessUsers(Collections.emptyMap()); | processParam.setProcessUsers(Collections.emptyMap()); | ||||
@@ -579,7 +575,7 @@ public class ConstructionManage { | |||||
ProjectInst projectInst = new ProjectInst(); | ProjectInst projectInst = new ProjectInst(); | ||||
projectInst.setInstCode(instanceId); | projectInst.setInstCode(instanceId); | ||||
projectInst.setInstType(ProjectProcessStageEnum.XC_APPROVAL_PROCESS); | |||||
projectInst.setInstType(ProjectProcessType.XC_APPROVAL_PROCESS); | |||||
projectInst.setProjectId(req.getProjectId()); | projectInst.setProjectId(req.getProjectId()); | ||||
projectInstService.save(projectInst); | projectInstService.save(projectInst); | ||||
log.info("信创审查提交成功 【{}】", instanceId); | log.info("信创审查提交成功 【{}】", instanceId); | ||||
@@ -594,7 +590,7 @@ public class ConstructionManage { | |||||
PurchaseInst purchaseInst = new PurchaseInst(); | PurchaseInst purchaseInst = new PurchaseInst(); | ||||
purchaseInst.setBidId(purchase.getId()); | purchaseInst.setBidId(purchase.getId()); | ||||
purchaseInst.setInstCode(instanceId); | purchaseInst.setInstCode(instanceId); | ||||
purchaseInst.setInstType(ProjectProcessStageEnum.XC_APPROVAL_PROCESS.getCode()); | |||||
purchaseInst.setInstType(ProjectProcessType.XC_APPROVAL_PROCESS.getCode()); | |||||
purchaseInst.setProjectId(req.getProjectId()); | purchaseInst.setProjectId(req.getProjectId()); | ||||
purchaseInstService.save(purchaseInst); | purchaseInstService.save(purchaseInst); | ||||
} | } | ||||
@@ -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.common.model.constant.TypeReferenceConst; | ||||
import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | 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.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.projectdeclared.service.IDeclaredStatisticsService; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | 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); | 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); | return statisticsService.getRegionStatistics(null, year); | ||||
} | } | ||||
@@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.hz.pm.api.common.enumeration.CommonEnum; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.common.util.ExcelExportStyle; | 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.enumerization.ProjectDraftTypeEnum; | ||||
import com.hz.pm.api.projectdeclared.model.vo.ProjectDraftVO; | import com.hz.pm.api.projectdeclared.model.vo.ProjectDraftVO; | ||||
import com.hz.pm.api.projectdeclared.service.IProjectDraftService; | 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.manage.ProjectLibManage; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | 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.CollUtils; | ||||
import com.ningdatech.basic.util.NdDateUtils; | import com.ningdatech.basic.util.NdDateUtils; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
import com.wflow.exception.BusinessException; | |||||
import com.wflow.workflow.bean.dto.OrgInfoDTO; | import com.wflow.workflow.bean.dto.OrgInfoDTO; | ||||
import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | import com.wflow.workflow.service.ProcessInstanceService; | ||||
@@ -103,11 +102,8 @@ public class DeclaredProjectManage { | |||||
public synchronized String startTheProcess(DefaultDeclaredDTO req) { | public synchronized String startTheProcess(DefaultDeclaredDTO req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.COMPLIANCE_REVIEW, | |||||
WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.COMPLIANCE_REVIEW, | |||||
user.getMhUnitId()); | user.getMhUnitId()); | ||||
if (Objects.isNull(model)) { | |||||
throw BizException.wrap("找不到单位流程配置"); | |||||
} | |||||
ProjectDTO reqProj = req.getProjectInfo(); | ProjectDTO reqProj = req.getProjectInfo(); | ||||
reqProj.setBuildOrgCode(user.getMhUnitIdStr()); | reqProj.setBuildOrgCode(user.getMhUnitIdStr()); | ||||
@@ -183,8 +179,7 @@ public class DeclaredProjectManage { | |||||
reqProj.setBuildOrgCode(user.getMhUnitIdStr()); | reqProj.setBuildOrgCode(user.getMhUnitIdStr()); | ||||
reqProj.setBuildOrgName(user.getMhUnitName()); | reqProj.setBuildOrgName(user.getMhUnitName()); | ||||
Project projectInfo = projectService.getById(reqProj.getId()); | |||||
Assert.notNull(projectInfo, "提交失败 此项目不存在!"); | |||||
Project projectInfo = projectService.getNoNull(reqProj.getId()); | |||||
//项目名称去重 | //项目名称去重 | ||||
if (StringUtils.isNotBlank(reqProj.getProjectName()) && | if (StringUtils.isNotBlank(reqProj.getProjectName()) && | ||||
@@ -208,13 +203,9 @@ public class DeclaredProjectManage { | |||||
//判断申报金额 是否等于总的 判断年度支付金额 是否等于总金额 | //判断申报金额 是否等于总的 判断年度支付金额 是否等于总金额 | ||||
declaredProjectHelper.checkAmount(reqProj); | declaredProjectHelper.checkAmount(reqProj); | ||||
WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.COMPLIANCE_REVIEW, | |||||
WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.COMPLIANCE_REVIEW, | |||||
user.getMhUnitId()); | user.getMhUnitId()); | ||||
if (Objects.isNull(model)) { | |||||
throw new BusinessException("找不到单位流程配置"); | |||||
} | |||||
//首先要判断 项目当前状态 是不是 单位内部拒绝 | //首先要判断 项目当前状态 是不是 单位内部拒绝 | ||||
VUtils.isTrue(!ProjectStatus.COMPLIANCE_REVIEW_FAILED.eq(projectInfo.getStatus())) | VUtils.isTrue(!ProjectStatus.COMPLIANCE_REVIEW_FAILED.eq(projectInfo.getStatus())) | ||||
.throwMessage("提交失败 该项目不是 单位内部拒绝审核状态或者未立项阶段"); | .throwMessage("提交失败 该项目不是 单位内部拒绝审核状态或者未立项阶段"); | ||||
@@ -236,7 +227,7 @@ public class DeclaredProjectManage { | |||||
//保存项目相关 | //保存项目相关 | ||||
Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, | Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, | ||||
user.getUserId(), ProjectStatus.NOT_APPROVED, ProjectStatus.COMPLIANCE_REVIEW_FAILED, | user.getUserId(), ProjectStatus.NOT_APPROVED, ProjectStatus.COMPLIANCE_REVIEW_FAILED, | ||||
ProjectProcessStageEnum.COMPLIANCE_REVIEW); | |||||
ProjectProcessType.COMPLIANCE_REVIEW); | |||||
//发送给第一个审批人消息 | //发送给第一个审批人消息 | ||||
noticeManage.sendFirstUser(newProj, model.getFormName(), instId, | noticeManage.sendFirstUser(newProj, model.getFormName(), instId, | ||||
@@ -352,7 +343,7 @@ public class DeclaredProjectManage { | |||||
*/ | */ | ||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
// 当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 | // 当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 | ||||
preQuery(query, user); | preQuery(query, user); | ||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
@@ -381,7 +372,7 @@ public class DeclaredProjectManage { | |||||
public void exportList(HttpServletResponse response, ProjectListReq param) { | public void exportList(HttpServletResponse response, ProjectListReq param) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
//当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 | //当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 | ||||
preQuery(query, user); | preQuery(query, user); | ||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.util.ExcelDownUtil; | 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.DeclaredProjectExportDTO; | ||||
import com.hz.pm.api.projectdeclared.model.dto.DelayedApplyDTO; | import com.hz.pm.api.projectdeclared.model.dto.DelayedApplyDTO; | ||||
import com.hz.pm.api.projectdeclared.model.vo.DelayedApplyVO; | 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.manage.ProjectLibManage; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | 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.ProjectDelayApply; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | 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.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.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.req.ProjectListReq; | ||||
import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | ||||
import com.hz.pm.api.projectlib.service.INdProjectDelayApplyService; | 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.ningdatech.basic.util.NdDateUtils; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
import com.wflow.contants.HisProInsEndActId; | import com.wflow.contants.HisProInsEndActId; | ||||
import com.wflow.exception.BusinessException; | |||||
import com.wflow.workflow.bean.dto.OrgInfoDTO; | import com.wflow.workflow.bean.dto.OrgInfoDTO; | ||||
import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | import com.wflow.workflow.service.ProcessInstanceService; | ||||
@@ -97,7 +96,7 @@ public class DelayedApplyManage { | |||||
*/ | */ | ||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
// 待终验 并且已经过期 | // 待终验 并且已经过期 | ||||
// 只能看自己单位的 | // 只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); | query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); | ||||
@@ -167,7 +166,7 @@ public class DelayedApplyManage { | |||||
public void exportList(HttpServletResponse response, ProjectListReq param) { | public void exportList(HttpServletResponse response, ProjectListReq param) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); | VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
// 待终验 | // 待终验 | ||||
// 只能看自己单位的 | // 只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | 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) | @Transactional(rollbackFor = Exception.class) | ||||
public synchronized String startDelayedApplyProcess(DelayedApplyDTO dto) { | public synchronized String startDelayedApplyProcess(DelayedApplyDTO dto) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
Long projectId = dto.getProjectId(); | 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()) || | VUtils.isTrue(!ProjectStatus.ON_PILOT_RUNNING.eq(project.getStatus()) || | ||||
@@ -256,13 +231,9 @@ public class DelayedApplyManage { | |||||
|| project.getPlanAcceptanceTime().isAfter(LocalDateTime.now())) | || project.getPlanAcceptanceTime().isAfter(LocalDateTime.now())) | ||||
.throwMessage("当前项目还未过期验收"); | .throwMessage("当前项目还未过期验收"); | ||||
WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.APPLY_DELAY, | |||||
WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.APPLY_DELAY, | |||||
user.getMhUnitId()); | user.getMhUnitId()); | ||||
if (Objects.isNull(model)) { | |||||
throw new BusinessException("找不到延期申请流程配置"); | |||||
} | |||||
ProcessStartParamsVo params = new ProcessStartParamsVo(); | ProcessStartParamsVo params = new ProcessStartParamsVo(); | ||||
params.setUser(declaredProjectHelper.buildUser(user)); | params.setUser(declaredProjectHelper.buildUser(user)); | ||||
params.setProcessUsers(Collections.emptyMap()); | params.setProcessUsers(Collections.emptyMap()); | ||||
@@ -304,8 +275,8 @@ public class DelayedApplyManage { | |||||
/** | /** | ||||
* 查看某个项目的 延期列表 | * 查看某个项目的 延期列表 | ||||
* | * | ||||
* @param projectId | |||||
* @return | |||||
* @param projectId \ | |||||
* @return \ | |||||
*/ | */ | ||||
public List<DelayedApplyVO> delayList(Long projectId) { | public List<DelayedApplyVO> delayList(Long projectId) { | ||||
List<Long> allVersionProjectId = projectService.allVersionProjectIds(projectId); | List<Long> allVersionProjectId = projectService.allVersionProjectIds(projectId); | ||||
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; | import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; | ||||
import com.hz.pm.api.common.statemachine.util.TenderStateMachineUtil; | 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.IContractService; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseService; | 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.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectAnnualPaymentPlan; | import com.hz.pm.api.projectlib.model.entity.ProjectAnnualPaymentPlan; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | 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.CollUtils; | ||||
import com.ningdatech.basic.util.NdDateUtils; | import com.ningdatech.basic.util.NdDateUtils; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
import com.wflow.exception.BusinessException; | |||||
import com.wflow.workflow.bean.dto.OrgInfoDTO; | import com.wflow.workflow.bean.dto.OrgInfoDTO; | ||||
import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | import com.wflow.workflow.service.ProcessInstanceService; | ||||
@@ -106,7 +105,7 @@ public class FinalAcceptanceManage { | |||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
//待终验 并且还未过期 | //待终验 并且还未过期 | ||||
//只能看自己单位的 | //只能看自己单位的 | ||||
Set<Long> projectIds = purchaseService.listProjectIdByStatus(FINAL_INSPECTED_TENDER_STATUS); | Set<Long> projectIds = purchaseService.listProjectIdByStatus(FINAL_INSPECTED_TENDER_STATUS); | ||||
@@ -177,7 +176,7 @@ public class FinalAcceptanceManage { | |||||
public void exportList(HttpServletResponse response, ProjectListReq param) { | public void exportList(HttpServletResponse response, ProjectListReq param) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
//待终验 | //待终验 | ||||
//只能看自己单位的 | //只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | ||||
@@ -249,11 +248,8 @@ public class FinalAcceptanceManage { | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public synchronized String startProcess(SubmitFinallyInspectedReq req) { | public synchronized String startProcess(SubmitFinallyInspectedReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | 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<Purchase> purchases = purchaseService.listByProjectId(req.getProjectId()); | List<Purchase> purchases = purchaseService.listByProjectId(req.getProjectId()); | ||||
Map<Long, Purchase> purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); | Map<Long, Purchase> purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); | ||||
@@ -292,7 +288,7 @@ public class FinalAcceptanceManage { | |||||
// 判断是否所有标段已经进行过终验申报 无论是否通过 | // 判断是否所有标段已经进行过终验申报 无论是否通过 | ||||
LambdaQueryWrapper<PurchaseInst> purchaseInstQuery = Wrappers.lambdaQuery(PurchaseInst.class) | LambdaQueryWrapper<PurchaseInst> purchaseInstQuery = Wrappers.lambdaQuery(PurchaseInst.class) | ||||
.select(PurchaseInst::getBidId) | .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()); | .in(PurchaseInst::getBidId, purchaseMap.keySet()); | ||||
List<PurchaseInst> currPurchaseInstList = purchaseInstService.list(purchaseInstQuery); | List<PurchaseInst> currPurchaseInstList = purchaseInstService.list(purchaseInstQuery); | ||||
Set<Long> finalInspectedBidIds = CollUtils.fieldSet(currPurchaseInstList, PurchaseInst::getBidId); | Set<Long> finalInspectedBidIds = CollUtils.fieldSet(currPurchaseInstList, PurchaseInst::getBidId); | ||||
@@ -53,9 +53,7 @@ public class OperationManage { | |||||
* @return \ | * @return \ | ||||
*/ | */ | ||||
public List<OperationVO> detail(Long projectId) { | public List<OperationVO> detail(Long projectId) { | ||||
Project project = projectService.getNewProject(projectId); | |||||
Assert.notNull(project, "项目不存在!"); | |||||
Project project = projectService.getNewestNoNull(projectId); | |||||
List<Operation> operations = operationService.list(Wrappers.lambdaQuery(Operation.class) | List<Operation> operations = operationService.list(Wrappers.lambdaQuery(Operation.class) | ||||
.eq(Operation::getProjectCode, project.getProjectCode())); | .eq(Operation::getProjectCode, project.getProjectCode())); | ||||
@@ -4,15 +4,17 @@ import cn.hutool.core.bean.BeanUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 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.model.constant.BizConst; | ||||
import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; | 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.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.model.req.ProjectReviewApplyReq; | ||||
import com.hz.pm.api.projectdeclared.service.IProjectReviewService; | 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.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | 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.IProjectInstService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.sys.manage.ProcessModelManage; | 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.UserFullInfoDTO; | ||||
import com.hz.pm.api.user.security.model.UserInfoDetails; | import com.hz.pm.api.user.security.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | 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.stereotype.Component; | ||||
import org.springframework.transaction.annotation.Transactional; | 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.*; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -61,6 +61,8 @@ public class ProjectReviewManage { | |||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
private final IProjectInstService projectInstService; | private final IProjectInstService projectInstService; | ||||
private final ProjectStateMachineUtil projectStateMachineUtil; | private final ProjectStateMachineUtil projectStateMachineUtil; | ||||
private final MhUnitCache mhUnitCache; | |||||
private final UserInfoHelper userInfoHelper; | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public synchronized void projectReviewApply(ProjectReviewApplyReq req) { | public synchronized void projectReviewApply(ProjectReviewApplyReq req) { | ||||
@@ -71,13 +73,9 @@ public class ProjectReviewManage { | |||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.PROJECT_REVIEW, | |||||
WflowModels model = processModelManage.getWflowModelsNoNull(ProjectProcessType.PROJECT_REVIEW, | |||||
user.getMhUnitId()); | user.getMhUnitId()); | ||||
if (Objects.isNull(model)) { | |||||
throw BizException.wrap("找不到项目评审流程配置"); | |||||
} | |||||
ProcessStartParamsVo processParam = new ProcessStartParamsVo(); | ProcessStartParamsVo processParam = new ProcessStartParamsVo(); | ||||
processParam.setUser(declaredProjectHelper.buildUser(user)); | processParam.setUser(declaredProjectHelper.buildUser(user)); | ||||
processParam.setProcessUsers(Collections.emptyMap()); | processParam.setProcessUsers(Collections.emptyMap()); | ||||
@@ -88,7 +86,7 @@ public class ProjectReviewManage { | |||||
ProjectInst projectInst = new ProjectInst(); | ProjectInst projectInst = new ProjectInst(); | ||||
projectInst.setInstCode(instanceId); | projectInst.setInstCode(instanceId); | ||||
projectInst.setInstType(ProjectProcessStageEnum.PROJECT_REVIEW); | |||||
projectInst.setInstType(ProjectProcessType.PROJECT_REVIEW); | |||||
projectInst.setProjectId(req.getProjectId()); | projectInst.setProjectId(req.getProjectId()); | ||||
projectInstService.save(projectInst); | projectInstService.save(projectInst); | ||||
projectStateMachineUtil.pass(project); | projectStateMachineUtil.pass(project); | ||||
@@ -123,15 +121,17 @@ public class ProjectReviewManage { | |||||
* @return | * @return | ||||
*/ | */ | ||||
public PageVo<ProjectLibListItemVO> pageReviewProject(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> pageReviewProject(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.initQuery(); | |||||
if (!projectQueryPermission(query, user)) { | |||||
return PageVo.empty(); | |||||
} | |||||
ProjectManageUtil.projectQuery(query, req); | |||||
query.in(Project::getProcessStatus, | 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<Project> page = projectService.page(req.page(), query); | Page<Project> page = projectService.page(req.page(), query); | ||||
long total; | long total; | ||||
if ((total = page.getTotal()) == 0) { | if ((total = page.getTotal()) == 0) { | ||||
@@ -142,17 +142,41 @@ public class ProjectReviewManage { | |||||
return PageVo.of(records, total); | return PageVo.of(records, total); | ||||
} | } | ||||
//当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 并且他是单位管理员 | |||||
private void preQuery(LambdaQueryWrapper<Project> 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<Project> query, UserFullInfoDTO user) { | |||||
boolean queryState = true; | |||||
Optional<DataScopeDTO> currDs = DataScopeUtil.getCurrentUserDataScopeHasUserId(user); | |||||
if (!currDs.isPresent()) { | |||||
log.warn("没有取到权限信息 当前查询 没有权限条件"); | |||||
queryState = false; | |||||
} else { | } 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<Long> childUnitIds = mhUnitCache.getViewChildIdsRecursion(user.getMhUnitId()); | |||||
List<String> 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; | |||||
} | } | ||||
} | } |
@@ -15,7 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.core.toolkit.support.SFunction; | import com.baomidou.mybatisplus.core.toolkit.support.SFunction; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.statemachine.event.AbstractStateChangeEvent; | import com.hz.pm.api.common.statemachine.event.AbstractStateChangeEvent; | ||||
import com.hz.pm.api.common.statemachine.event.AdaptStateChangeEvent; | 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.service.IPurchaseService; | ||||
import com.hz.pm.api.projectdeclared.utils.ProjectIdCodeCacheUtil; | import com.hz.pm.api.projectdeclared.utils.ProjectIdCodeCacheUtil; | ||||
import com.hz.pm.api.projectlib.entity.PurchaseStatusChange; | 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.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.model.enumeration.*; | 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.entity.vo.result.FileResultVO; | ||||
import com.ningdatech.file.service.FileService; | import com.ningdatech.file.service.FileService; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
import com.wflow.exception.BusinessException; | |||||
import com.wflow.workflow.bean.dto.OrgInfoDTO; | import com.wflow.workflow.bean.dto.OrgInfoDTO; | ||||
import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | import com.wflow.workflow.service.ProcessInstanceService; | ||||
@@ -176,7 +175,7 @@ public class PurchaseManage { | |||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
Assert.notNull(user, "获取登录用户失败!"); | Assert.notNull(user, "获取登录用户失败!"); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
//只能看自己单位的 | //只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); | query.eq(Project::getBuildOrgCode, user.getMhUnitIdStr()); | ||||
//待采购状态 | //待采购状态 | ||||
@@ -235,7 +234,7 @@ public class PurchaseManage { | |||||
public void exportList(HttpServletResponse response, ProjectListReq param) { | public void exportList(HttpServletResponse response, ProjectListReq param) { | ||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); | VUtils.isTrue(Objects.isNull(user)).throwMessage("获取登录用户失败!"); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
//待采购状态 | //待采购状态 | ||||
//只能看自己单位的 | //只能看自己单位的 | ||||
query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | query.eq(Project::getBuildOrgCode, user.getMhUnitId()); | ||||
@@ -297,8 +296,7 @@ public class PurchaseManage { | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | ||||
Long projectId = dto.getProjectId(); | Long projectId = dto.getProjectId(); | ||||
VUtils.isTrue(Objects.isNull(projectId)).throwMessage("提交失败 缺少项目ID!"); | 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()) | VUtils.isTrue(!ProjectStatus.TO_BE_PURCHASED.eq(project.getStatus()) | ||||
@@ -347,8 +345,7 @@ public class PurchaseManage { | |||||
public synchronized void submitPurchaseNotice(SubmitPurchaseNoticeReq req) { | public synchronized void submitPurchaseNotice(SubmitPurchaseNoticeReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
Long projectId = req.getProjectId(); | 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()) | VUtils.isTrue(!ProjectStatus.TO_BE_PURCHASED.eq(project.getStatus()) | ||||
@@ -563,11 +560,8 @@ public class PurchaseManage { | |||||
} | } | ||||
}); | }); | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | 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(); | LocalDateTime now = LocalDateTime.now(); | ||||
for (Purchase purchase : purchases) { | for (Purchase purchase : purchases) { | ||||
Long projectId = purchase.getProjectId(); | Long projectId = purchase.getProjectId(); | ||||
@@ -603,7 +597,7 @@ public class PurchaseManage { | |||||
private void saveProjectPurchaseInstCode(Long bidId, | private void saveProjectPurchaseInstCode(Long bidId, | ||||
String instanceId, | String instanceId, | ||||
Long projectId, | Long projectId, | ||||
ProjectProcessStageEnum instType) { | |||||
ProjectProcessType instType) { | |||||
// 保存标段实列关系 | // 保存标段实列关系 | ||||
PurchaseInst purchaseInst = new PurchaseInst(); | PurchaseInst purchaseInst = new PurchaseInst(); | ||||
purchaseInst.setBidId(bidId); | purchaseInst.setBidId(bidId); | ||||
@@ -629,11 +623,9 @@ public class PurchaseManage { | |||||
} | } | ||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | 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(); | LocalDateTime now = LocalDateTime.now(); | ||||
for (Purchase purchase : purchases) { | for (Purchase purchase : purchases) { | ||||
Long projectId = purchase.getProjectId(); | Long projectId = purchase.getProjectId(); | ||||
@@ -676,11 +668,9 @@ public class PurchaseManage { | |||||
} | } | ||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | 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(); | LocalDateTime now = LocalDateTime.now(); | ||||
for (Purchase purchase : purchases) { | for (Purchase purchase : purchases) { | ||||
Long projectId = purchase.getProjectId(); | Long projectId = purchase.getProjectId(); | ||||
@@ -1,7 +1,7 @@ | |||||
package com.hz.pm.api.projectdeclared.mapper; | package com.hz.pm.api.projectdeclared.mapper; | ||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 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; | import org.apache.ibatis.annotations.Param; | ||||
/** | /** | ||||
@@ -14,7 +14,7 @@ import org.apache.ibatis.annotations.Param; | |||||
*/ | */ | ||||
public interface DeclaredStatisticsMapper extends BaseMapper { | 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); | |||||
} | } |
@@ -2,7 +2,7 @@ | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||
<mapper namespace="com.hz.pm.api.projectdeclared.mapper.DeclaredStatisticsMapper"> | <mapper namespace="com.hz.pm.api.projectdeclared.mapper.DeclaredStatisticsMapper"> | ||||
<select id="getOrgStatistics" resultType="com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO"> | |||||
<select id="getOrgStatistics" resultType="com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO"> | |||||
SELECT | SELECT | ||||
count(0) totalNum, | count(0) totalNum, | ||||
count(CASE WHEN p.project_type = 1 THEN 1 end) buildNum, | 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 | WHERE build_org_code = #{orgCode} and project_year = #{year} and newest = 1 | ||||
</select> | </select> | ||||
<select id="getRegionStatistics" resultType="com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO"> | |||||
<select id="getRegionStatistics" resultType="com.hz.pm.api.projectdeclared.model.vo.DeclaredProjectStatisticsVO"> | |||||
SELECT | SELECT | ||||
count(0) totalNum, | count(0) totalNum, | ||||
count(CASE WHEN p.project_type = 1 THEN 1 end) buildNum, | count(CASE WHEN p.project_type = 1 THEN 1 end) buildNum, | ||||
@@ -1,6 +1,6 @@ | |||||
package com.hz.pm.api.projectdeclared.mapper; | 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; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
/** | /** | ||||
@@ -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 com.baomidou.mybatisplus.annotation.*; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; |
@@ -1,7 +1,7 @@ | |||||
package com.hz.pm.api.projectdeclared.model.entity; | package com.hz.pm.api.projectdeclared.model.entity; | ||||
import com.baomidou.mybatisplus.annotation.*; | 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 io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -43,7 +43,7 @@ public class PurchaseInst { | |||||
@TableField(fill = FieldFill.INSERT) | @TableField(fill = FieldFill.INSERT) | ||||
private Long createBy; | private Long createBy; | ||||
public void setInstType(ProjectProcessStageEnum processStage) { | |||||
public void setInstType(ProjectProcessType processStage) { | |||||
this.instType = processStage.getCode(); | this.instType = processStage.getCode(); | ||||
} | } | ||||
@@ -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 io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -12,7 +12,7 @@ import java.math.BigDecimal; | |||||
* @Author PoffyZhang | * @Author PoffyZhang | ||||
*/ | */ | ||||
@Data | @Data | ||||
public class DeclaredProjectStatisticsPO { | |||||
public class DeclaredProjectStatisticsVO { | |||||
@ApiModelProperty("总项目数") | @ApiModelProperty("总项目数") | ||||
private Integer totalNum; | private Integer totalNum; |
@@ -1,6 +1,6 @@ | |||||
package com.hz.pm.api.projectdeclared.service; | 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; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -12,7 +12,7 @@ import com.hz.pm.api.projectdeclared.model.po.DeclaredProjectStatisticsPO; | |||||
*/ | */ | ||||
public interface IDeclaredStatisticsService { | 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); | |||||
} | } |
@@ -1,6 +1,6 @@ | |||||
package com.hz.pm.api.projectdeclared.service; | 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; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
/** | /** | ||||
@@ -1,7 +1,7 @@ | |||||
package com.hz.pm.api.projectdeclared.service.impl; | package com.hz.pm.api.projectdeclared.service.impl; | ||||
import com.hz.pm.api.projectdeclared.mapper.DeclaredStatisticsMapper; | 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 com.hz.pm.api.projectdeclared.service.IDeclaredStatisticsService; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
@@ -27,7 +27,7 @@ public class DeclaredStatisticsServiceImpl implements IDeclaredStatisticsService | |||||
* @return | * @return | ||||
*/ | */ | ||||
@Override | @Override | ||||
public DeclaredProjectStatisticsPO getOrgStatistics(String orgCode, Integer year) { | |||||
public DeclaredProjectStatisticsVO getOrgStatistics(String orgCode, Integer year) { | |||||
return declaredStatisticsMapper.getOrgStatistics(orgCode, year); | return declaredStatisticsMapper.getOrgStatistics(orgCode, year); | ||||
} | } | ||||
@@ -38,7 +38,7 @@ public class DeclaredStatisticsServiceImpl implements IDeclaredStatisticsService | |||||
* @return | * @return | ||||
*/ | */ | ||||
@Override | @Override | ||||
public DeclaredProjectStatisticsPO getRegionStatistics(String regionCode, Integer year) { | |||||
public DeclaredProjectStatisticsVO getRegionStatistics(String regionCode, Integer year) { | |||||
return declaredStatisticsMapper.getRegionStatistics(year); | return declaredStatisticsMapper.getRegionStatistics(year); | ||||
} | } | ||||
} | } |
@@ -1,6 +1,6 @@ | |||||
package com.hz.pm.api.projectdeclared.service.impl; | 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.mapper.ProjectReviewMapper; | ||||
import com.hz.pm.api.projectdeclared.service.IProjectReviewService; | import com.hz.pm.api.projectdeclared.service.IProjectReviewService; | ||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
@@ -18,13 +18,21 @@ import java.util.Map; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* ProjectHelper | |||||
* ProjectHelperUtil | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author WendyYang | * @author WendyYang | ||||
* @since 14:15 2023/2/11 | * @since 14:15 2023/2/11 | ||||
*/ | */ | ||||
public class ProjectHelper { | |||||
public class ProjectManageUtil { | |||||
private ProjectManageUtil() { | |||||
} | |||||
public static LambdaQueryWrapper<Project> initQuery() { | |||||
return new LambdaQueryWrapper<>(); | |||||
} | |||||
/** | /** | ||||
* 通用项目查询 | * 通用项目查询 | ||||
@@ -32,8 +40,7 @@ public class ProjectHelper { | |||||
* @param req 查询条件 | * @param req 查询条件 | ||||
* @return / | * @return / | ||||
**/ | **/ | ||||
public static LambdaQueryWrapper<Project> projectQuery(ProjectListReq req) { | |||||
LambdaQueryWrapper<Project> query = new LambdaQueryWrapper<>(); | |||||
public static void projectQuery(LambdaQueryWrapper<Project> query, ProjectListReq req) { | |||||
query.eq(req.getUserId() != null, Project::getCreateBy, req.getUserId()) | query.eq(req.getUserId() != null, Project::getCreateBy, req.getUserId()) | ||||
.like(StrUtil.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) | .like(StrUtil.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) | ||||
.eq(req.getProjectType() != null, Project::getProjectType, req.getProjectType()) | .eq(req.getProjectType() != null, Project::getProjectType, req.getProjectType()) | ||||
@@ -63,6 +70,17 @@ public class ProjectHelper { | |||||
//已添加评价计划的项目code | //已添加评价计划的项目code | ||||
.notIn(CollUtil.isNotEmpty(req.getProjectCodes()), Project::getProjectCode, req.getProjectCodes()) | .notIn(CollUtil.isNotEmpty(req.getProjectCodes()), Project::getProjectCode, req.getProjectCodes()) | ||||
.orderByDesc(Project::getUpdateOn); | .orderByDesc(Project::getUpdateOn); | ||||
} | |||||
/** | |||||
* 通用项目查询 | |||||
* | |||||
* @param req 查询条件 | |||||
* @return / | |||||
**/ | |||||
public static LambdaQueryWrapper<Project> projectQuery(ProjectListReq req) { | |||||
LambdaQueryWrapper<Project> query = new LambdaQueryWrapper<>(); | |||||
projectQuery(query, req); | |||||
return query; | return query; | ||||
} | } | ||||
@@ -72,8 +90,8 @@ public class ProjectHelper { | |||||
* @param app | * @param app | ||||
* @return | * @return | ||||
*/ | */ | ||||
public static ProjectApplicationVO convertVOWithMap(ProjectApplication app, | |||||
Map<Long, List<ProjectCoreBusinessIndicators>> coreBizMap) { | |||||
public static ProjectApplicationVO to(ProjectApplication app, | |||||
Map<Long, List<ProjectCoreBusinessIndicators>> coreBizMap) { | |||||
ProjectApplicationVO appVo = new ProjectApplicationVO(); | ProjectApplicationVO appVo = new ProjectApplicationVO(); | ||||
BeanUtils.copyProperties(app, appVo); | BeanUtils.copyProperties(app, appVo); | ||||
if (coreBizMap.containsKey(app.getId())) { | if (coreBizMap.containsKey(app.getId())) { | ||||
@@ -83,7 +101,7 @@ public class ProjectHelper { | |||||
return appVo; | return appVo; | ||||
} | } | ||||
public static ProjectApplicationVO convertVO(ProjectApplication app) { | |||||
public static ProjectApplicationVO to(ProjectApplication app) { | |||||
ProjectApplicationVO appVo = new ProjectApplicationVO(); | ProjectApplicationVO appVo = new ProjectApplicationVO(); | ||||
BeanUtils.copyProperties(app, appVo); | BeanUtils.copyProperties(app, appVo); | ||||
return appVo; | return appVo; |
@@ -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.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.datascope.model.DataScopeDTO; | import com.hz.pm.api.datascope.model.DataScopeDTO; | ||||
import com.hz.pm.api.datascope.utils.DataScopeUtil; | 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.dto.ProjectDTO; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | 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); | PROJECT_APPROVED, TO_BE_PURCHASED, ON_PILOT_RUNNING, ARCHIVED); | ||||
public PageVo<AnnualPlanListItemVO> annulPlanLibList(ProjectListReq req) { | public PageVo<AnnualPlanListItemVO> annulPlanLibList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
Integer isTemporaryAugment = req.getIsTemporaryAugment(); | Integer isTemporaryAugment = req.getIsTemporaryAugment(); | ||||
if (Objects.isNull(isTemporaryAugment)) { | if (Objects.isNull(isTemporaryAugment)) { | ||||
throw new BizException("请传入是否临时增补标志!"); | throw new BizException("请传入是否临时增补标志!"); | ||||
@@ -185,7 +185,7 @@ public class AnnualPlanLibManage { | |||||
} | } | ||||
param.setIsTemporaryAugment(isTemporaryAugment); | param.setIsTemporaryAugment(isTemporaryAugment); | ||||
param.setStatusList(CollUtils.fieldList(ANNUAL_PLAN_LIST_STATUS, ProjectStatus::getCode)); | param.setStatusList(CollUtils.fieldList(ANNUAL_PLAN_LIST_STATUS, ProjectStatus::getCode)); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
query.orderByDesc(Project::getAnnualPlanAddTime); | query.orderByDesc(Project::getAnnualPlanAddTime); | ||||
List<Project> projects = projectService.list(query); | List<Project> projects = projectService.list(query); | ||||
@@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.hz.pm.api.common.enumeration.CommonEnum; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.TypeReferenceConst; | import com.hz.pm.api.common.model.constant.TypeReferenceConst; | ||||
import com.hz.pm.api.common.util.BizUtils; | import com.hz.pm.api.common.util.BizUtils; | ||||
@@ -298,11 +298,8 @@ public class DeclaredRecordManage { | |||||
projectInfo.setSuperOrg(user.getMhUnitName()); | 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(); | ProcessStartParamsVo params = new ProcessStartParamsVo(); | ||||
params.setUser(declaredProjectHelper.buildUser(user)); | params.setUser(declaredProjectHelper.buildUser(user)); | ||||
@@ -324,7 +321,7 @@ public class DeclaredRecordManage { | |||||
// 保存项目相关 | // 保存项目相关 | ||||
Project newProj = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(), | Project newProj = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(), | ||||
ProjectStatus.NOT_APPROVED, ProjectStatus.DECLARED_APPROVED_TO_BE_RECORD, | ProjectStatus.NOT_APPROVED, ProjectStatus.DECLARED_APPROVED_TO_BE_RECORD, | ||||
ProjectProcessStageEnum.PROJECT_RECORD_APPROVAL_PROCESS); | |||||
ProjectProcessType.PROJECT_RECORD_APPROVAL_PROCESS); | |||||
if (Objects.nonNull(projectInfo.getDraftId())) { | if (Objects.nonNull(projectInfo.getDraftId())) { | ||||
//如果是草稿箱提交 删除对应的草稿箱 | //如果是草稿箱提交 删除对应的草稿箱 | ||||
projectDraftService.removeById(projectInfo.getDraftId()); | projectDraftService.removeById(projectInfo.getDraftId()); | ||||
@@ -342,15 +339,14 @@ public class DeclaredRecordManage { | |||||
} | } | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public synchronized String restartDeclaredRecord(DefaultDeclaredDTO req) { | |||||
public synchronized void restartDeclaredRecord(DefaultDeclaredDTO req) { | |||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
ProjectDTO reqProj = req.getProjectInfo(); | ProjectDTO reqProj = req.getProjectInfo(); | ||||
Assert.notNull(reqProj.getId(), "提交失败,缺少项目ID!"); | Assert.notNull(reqProj.getId(), "提交失败,缺少项目ID!"); | ||||
reqProj.setBuildOrgCode(user.getMhUnitIdStr()); | reqProj.setBuildOrgCode(user.getMhUnitIdStr()); | ||||
reqProj.setBuildOrgName(user.getMhUnitName()); | reqProj.setBuildOrgName(user.getMhUnitName()); | ||||
Project oldProj = projectService.getById(reqProj.getId()); | |||||
Assert.notNull(oldProj, "提交失败,此项目不存在!"); | |||||
Project oldProj = projectService.getNoNull(reqProj.getId()); | |||||
//项目名称去重 | //项目名称去重 | ||||
if (StrUtil.isNotBlank(reqProj.getProjectName()) && | if (StrUtil.isNotBlank(reqProj.getProjectName()) && | ||||
@@ -374,12 +370,8 @@ public class DeclaredRecordManage { | |||||
reqProj.setSuperOrg(user.getMhUnitName()); | 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()) || | VUtils.isTrue(!ProjectStatus.DECLARED_APPROVED_RECORD_FAILED.eq(oldProj.getStatus()) || | ||||
!ProjectStatus.NOT_APPROVED.eq(oldProj.getStage())) | !ProjectStatus.NOT_APPROVED.eq(oldProj.getStage())) | ||||
@@ -392,12 +384,10 @@ public class DeclaredRecordManage { | |||||
//把条件值给放入工作流 | //把条件值给放入工作流 | ||||
declaredProjectHelper.buildCondition(params, req); | declaredProjectHelper.buildCondition(params, req); | ||||
// 获取发起单位、发起单位主管单位、发起单位上级主管条线单位信息 | |||||
Project project = new Project(); | Project project = new Project(); | ||||
BeanUtils.copyProperties(reqProj, project); | BeanUtils.copyProperties(reqProj, project); | ||||
Map<String, OrgInfoDTO> orgModelMap = declaredProjectHelper.buildOrgModelMap(user.getUserId(), project); | Map<String, OrgInfoDTO> orgModelMap = declaredProjectHelper.buildOrgModelMap(user.getUserId(), project); | ||||
String instId = processInstanceService.startProcessLs(model, params, orgModelMap); | String instId = processInstanceService.startProcessLs(model, params, orgModelMap); | ||||
log.info("立项备案成功 【{}】", instId); | |||||
//保存项目相关 | //保存项目相关 | ||||
Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, user.getUserId(), | Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, user.getUserId(), | ||||
@@ -407,7 +397,6 @@ public class DeclaredRecordManage { | |||||
//发送给第一个审批人消息 | //发送给第一个审批人消息 | ||||
noticeManage.sendFirstUser(newProj, model.getFormName(), instId, | noticeManage.sendFirstUser(newProj, model.getFormName(), instId, | ||||
WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW); | WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW); | ||||
return instId; | |||||
} | } | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
@@ -15,7 +15,7 @@ import com.google.common.collect.Lists; | |||||
import com.google.common.collect.Maps; | import com.google.common.collect.Maps; | ||||
import com.hz.pm.api.common.compare.CompareUtils; | import com.hz.pm.api.common.compare.CompareUtils; | ||||
import com.hz.pm.api.common.enumeration.CommonEnum; | 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.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.CommonConst; | import com.hz.pm.api.common.model.constant.CommonConst; | ||||
import com.hz.pm.api.common.model.entity.ExcelExportWriter; | 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.BizUtils; | ||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.common.util.StrUtils; | 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.model.DataScopeDTO; | ||||
import com.hz.pm.api.datascope.utils.DataScopeUtil; | import com.hz.pm.api.datascope.utils.DataScopeUtil; | ||||
import com.hz.pm.api.expert.model.entity.ExpertReview; | 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.enumeration.ReviewTemplateTypeEnum; | ||||
import com.hz.pm.api.expert.model.vo.ProjectReviewDetailVO; | |||||
import com.hz.pm.api.expert.service.IExpertReviewService; | import com.hz.pm.api.expert.service.IExpertReviewService; | ||||
import com.hz.pm.api.filemanage.model.entity.ProjectApplyBorrow; | import com.hz.pm.api.filemanage.model.entity.ProjectApplyBorrow; | ||||
import com.hz.pm.api.filemanage.service.INdProjectApplyBorrowService; | 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.IProjectTagService; | ||||
import com.hz.pm.api.portrait.service.ITagService; | import com.hz.pm.api.portrait.service.ITagService; | ||||
import com.hz.pm.api.projectdeclared.manage.ConstructionManage; | 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.dto.DelayedApplyDTO; | ||||
import com.hz.pm.api.projectdeclared.model.entity.Operation; | import com.hz.pm.api.projectdeclared.model.entity.Operation; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PreInsAcceptancePerson; | 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.projectdeclared.utils.ProjectIdCodeCacheUtil; | ||||
import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | ||||
import com.hz.pm.api.projectlib.handle.ProcessProgressHelper; | 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.constant.ProjectConstant; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | 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.req.ProjectListReq; | ||||
import com.hz.pm.api.projectlib.model.vo.*; | import com.hz.pm.api.projectlib.model.vo.*; | ||||
import com.hz.pm.api.projectlib.service.*; | 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.model.req.ProcessDetailReq; | ||||
import com.hz.pm.api.todocenter.service.ITodoService; | import com.hz.pm.api.todocenter.service.ITodoService; | ||||
import com.hz.pm.api.user.helper.MhUnitCache; | import com.hz.pm.api.user.helper.MhUnitCache; | ||||
@@ -136,9 +130,6 @@ public class ProjectLibManage { | |||||
private final IOperationService operationService; | private final IOperationService operationService; | ||||
private final IProjectTagService projectTagService; | private final IProjectTagService projectTagService; | ||||
private final ITagService tagService; | private final ITagService tagService; | ||||
private final ISupplierSafetyQualificationService supplierSafetyQualificationService; | |||||
private final IPersonSafetyInfoService personSafetyInfoService; | |||||
private final ApplicationHandler applicationHandler; | |||||
private final TaskService taskService; | private final TaskService taskService; | ||||
private final UserInfoHelper userInfoHelper; | private final UserInfoHelper userInfoHelper; | ||||
private final IExpertReviewService expertReviewService; | private final IExpertReviewService expertReviewService; | ||||
@@ -147,9 +138,10 @@ public class ProjectLibManage { | |||||
private final MhUnitCache mhUnitCache; | private final MhUnitCache mhUnitCache; | ||||
private final IMhProjectSchemaTargetDataService projectSchemaTargetDataService; | private final IMhProjectSchemaTargetDataService projectSchemaTargetDataService; | ||||
private final IMhProjectService mhProjectService; | private final IMhProjectService mhProjectService; | ||||
private final ProjectReviewManage projectReviewManage; | |||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
Page<Project> page = projectService.page(req.page(), query); | Page<Project> page = projectService.page(req.page(), query); | ||||
@@ -202,7 +194,7 @@ public class ProjectLibManage { | |||||
} | } | ||||
public PageVo<ProjectLibListItemVO> projectLibListWithPermission(ProjectListReq req, UserFullInfoDTO user) { | public PageVo<ProjectLibListItemVO> projectLibListWithPermission(ProjectListReq req, UserFullInfoDTO user) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
if (!buildProjectLibPermission(query, user)) { | if (!buildProjectLibPermission(query, user)) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -275,7 +267,7 @@ public class ProjectLibManage { | |||||
* @return \ | * @return \ | ||||
*/ | */ | ||||
public PageVo<ProjectLibListItemVO> projectLibListApprove(ProjectListReq req, UserFullInfoDTO user) { | public PageVo<ProjectLibListItemVO> projectLibListApprove(ProjectListReq req, UserFullInfoDTO user) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
if (!buildProjectLibPermission(query, user)) { | if (!buildProjectLibPermission(query, user)) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -624,7 +616,7 @@ public class ProjectLibManage { | |||||
} | } | ||||
public List<Project> projectList(ProjectListReq req) { | public List<Project> projectList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | |||||
return projectService.list(query); | return projectService.list(query); | ||||
} | } | ||||
@@ -710,7 +702,7 @@ public class ProjectLibManage { | |||||
if (CollUtil.isNotEmpty(applicationIds)) { | if (CollUtil.isNotEmpty(applicationIds)) { | ||||
List<ProjectCoreBusinessIndicators> coreBizs = projectCoreBusinessIndicatorsService.listByApplicationIds(applicationIds); | List<ProjectCoreBusinessIndicators> coreBizs = projectCoreBusinessIndicatorsService.listByApplicationIds(applicationIds); | ||||
Map<Long, List<ProjectCoreBusinessIndicators>> coreBizMap = CollUtils.group(coreBizs, ProjectCoreBusinessIndicators::getApplicationId); | Map<Long, List<ProjectCoreBusinessIndicators>> 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())); | retProjectDetail.setSystemReplaceInfos(getGovSystemReplaceInfos(project.getId())); | ||||
//审批信息 | //审批信息 | ||||
@@ -763,27 +755,9 @@ public class ProjectLibManage { | |||||
}); | }); | ||||
} | } | ||||
List<ProjectAnnualPaymentPlan> annualPaymentPlans = projectAnnualPaymentPlanService.listByProjectId(project.getId()); | List<ProjectAnnualPaymentPlan> annualPaymentPlans = projectAnnualPaymentPlanService.listByProjectId(project.getId()); | ||||
retProjectDetail.setAnnualPaymentPlans(BeanUtil.copyToList(annualPaymentPlans, ProjectPaymentPlanDTO.class)); | retProjectDetail.setAnnualPaymentPlans(BeanUtil.copyToList(annualPaymentPlans, ProjectPaymentPlanDTO.class)); | ||||
SafetyMonitorVO safetyVo = new SafetyMonitorVO(); | |||||
//查询风险监测 | |||||
List<SupplierSafetyQualification> safetyQualifications = supplierSafetyQualificationService.listByProjectCode(projectCode); | |||||
if (CollUtil.isNotEmpty(safetyQualifications)) { | |||||
safetyVo.setSupplierSafetyQualification(BeanUtil.copyToList(safetyQualifications, SupplierSafetyQualificationVO.class)); | |||||
} | |||||
retProjectDetail.setSafetyInfo(safetyVo); | |||||
List<PersonSafetyInfo> personSafetyInfos = personSafetyInfoService.listByProjectCode(projectCode); | |||||
if (CollUtil.isNotEmpty(personSafetyInfos)) { | |||||
safetyVo.setPersonSafetyInfo(BeanUtil.copyToList(personSafetyInfos, PersonSafetyInfoVO.class)); | |||||
} | |||||
// 查询终验信息 | |||||
retProjectDetail.setFinalIrsApps(applicationHandler.generateIrsApp(projectCode, project.getVersion())); | |||||
// 处理文件名 | // 处理文件名 | ||||
List<Long> fileIdList = new ArrayList<>(); | List<Long> fileIdList = new ArrayList<>(); | ||||
BizUtils.notBlank(retProjectDetail.getApprovedFile(), w -> fileIdList.add(Long.parseLong(w))); | BizUtils.notBlank(retProjectDetail.getApprovedFile(), w -> fileIdList.add(Long.parseLong(w))); | ||||
@@ -802,6 +776,11 @@ public class ProjectLibManage { | |||||
retProjectDetail.setProposeAttach(finalReview.getOtherAdvice()); | retProjectDetail.setProposeAttach(finalReview.getOtherAdvice()); | ||||
retProjectDetail.setBaseReviewResults(finalReview.getReviewResult()); | retProjectDetail.setBaseReviewResults(finalReview.getReviewResult()); | ||||
} | } | ||||
// 评审详情 | |||||
ProjectReviewDetailVO projectReviewDetail = projectReviewManage.projectReviewDetail(project.getId()); | |||||
retProjectDetail.setReviewDetail(projectReviewDetail); | |||||
return retProjectDetail; | return retProjectDetail; | ||||
} | } | ||||
@@ -809,19 +788,19 @@ public class ProjectLibManage { | |||||
/** | /** | ||||
* 申报新项目时 保存项目信息和其它相关联的信息 | * 申报新项目时 保存项目信息和其它相关联的信息 | ||||
* | * | ||||
* @param projectDto \ | |||||
* @param instanceId \ | |||||
* @param proj \ | |||||
* @param instCode \ | |||||
* @return \ | * @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 projectInst = new ProjectInst(); | ||||
projectInst.setProjectId(project.getId()); | projectInst.setProjectId(project.getId()); | ||||
projectInst.setInstCode(instanceId); | |||||
projectInst.setInstCode(instCode); | |||||
projectInst.setCreateOn(LocalDateTime.now()); | projectInst.setCreateOn(LocalDateTime.now()); | ||||
projectInst.setUpdateOn(LocalDateTime.now()); | projectInst.setUpdateOn(LocalDateTime.now()); | ||||
projectInst.setInstType(ProjectProcessStageEnum.COMPLIANCE_REVIEW.getCode()); | |||||
projectInst.setInstType(ProjectProcessType.COMPLIANCE_REVIEW.getCode()); | |||||
projectInstService.save(projectInst); | projectInstService.save(projectInst); | ||||
return project; | return project; | ||||
} | } | ||||
@@ -829,19 +808,19 @@ public class ProjectLibManage { | |||||
/** | /** | ||||
* 申报新项目时 保存项目信息和其它相关联的信息 | * 申报新项目时 保存项目信息和其它相关联的信息 | ||||
* | * | ||||
* @param projectDto \ | |||||
* @param instanceId \ | |||||
* @param proj \ | |||||
* @param instCode \ | |||||
* @return \ | * @return \ | ||||
*/ | */ | ||||
public Project saveProjectInDeclared(ProjectDTO projectDto, String instanceId, Long userId, | |||||
public Project saveProjectInDeclared(ProjectDTO proj, String instCode, Long userId, | |||||
ProjectStatus stage, ProjectStatus status, | 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 projectInst = new ProjectInst(); | ||||
projectInst.setProjectId(project.getId()); | projectInst.setProjectId(project.getId()); | ||||
projectInst.setInstCode(instanceId); | |||||
projectInst.setInstType(processStage.getCode()); | |||||
projectInst.setInstCode(instCode); | |||||
projectInst.setInstType(instType.getCode()); | |||||
projectInstService.save(projectInst); | projectInstService.save(projectInst); | ||||
return project; | return project; | ||||
} | } | ||||
@@ -853,7 +832,7 @@ public class ProjectLibManage { | |||||
* @param instanceId \ | * @param instanceId \ | ||||
* @return \ | * @return \ | ||||
*/ | */ | ||||
public Project saveProjectNewVersion(ProjectDTO projectDto, String instanceId, | |||||
private Project saveProjectNewVersion(ProjectDTO projectDto, String instanceId, | |||||
Long userId, Boolean isContruct) { | Long userId, Boolean isContruct) { | ||||
//流程启动之后 入库项目 重要业务信息 用于列表查询 展示 | //流程启动之后 入库项目 重要业务信息 用于列表查询 展示 | ||||
return saveProjectNewVersion(projectDto, instanceId, userId, isContruct, ProjectStatus.NOT_APPROVED, ProjectStatus.TO_BE_DECLARED); | 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) { | 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(); | Project project = new Project(); | ||||
BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | ||||
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | ||||
@@ -981,9 +959,8 @@ public class ProjectLibManage { | |||||
} | } | ||||
public Project saveProjectWithVersionAndStatus(ProjectDTO projectDto, Integer stageCode, Integer statusCode, Boolean isConstruct) { | 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(); | Project project = new Project(); | ||||
Assert.notNull(oldProject, "项目不存在"); | |||||
BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | ||||
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | ||||
BeanUtil.copyProperties(projectDto, project, CopyOptions.create() | BeanUtil.copyProperties(projectDto, project, CopyOptions.create() | ||||
@@ -1014,10 +991,8 @@ public class ProjectLibManage { | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public Project saveProjectWithVersion(ProjectDTO projectDto, String instanceId, Integer instType, Boolean isConstruct) { | 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(); | Project project = new Project(); | ||||
VUtils.isTrue(Objects.isNull(oldProject)) | |||||
.throwMessage("项目不存在!"); | |||||
BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | ||||
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | ||||
BeanUtil.copyProperties(projectDto, project, CopyOptions.create() | BeanUtil.copyProperties(projectDto, project, CopyOptions.create() | ||||
@@ -1168,7 +1143,7 @@ public class ProjectLibManage { | |||||
Optional.ofNullable(applications).ifPresent(apps -> | Optional.ofNullable(applications).ifPresent(apps -> | ||||
vo.setProjectApplications(CollUtils.convert(apps, | vo.setProjectApplications(CollUtils.convert(apps, | ||||
ProjectHelper::convertVO) | |||||
ProjectManageUtil::to) | |||||
)); | )); | ||||
return vo; | return vo; | ||||
@@ -1186,7 +1161,7 @@ public class ProjectLibManage { | |||||
public void exportList(ProjectListReq param, HttpServletResponse response) { | public void exportList(ProjectListReq param, HttpServletResponse response) { | ||||
param.setPageNumber(CommonConst.EXPORT_PAGE_NUMBER); | param.setPageNumber(CommonConst.EXPORT_PAGE_NUMBER); | ||||
param.setPageSize(CommonConst.EXPORT_PAGE_SIZE); | param.setPageSize(CommonConst.EXPORT_PAGE_SIZE); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | |||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(param); | |||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
List<Project> projects = projectService.list(query); | List<Project> projects = projectService.list(query); | ||||
@@ -1440,9 +1415,7 @@ public class ProjectLibManage { | |||||
JSONObject res = new JSONObject(); | JSONObject res = new JSONObject(); | ||||
//1.先判断下 项目存不存在 | //1.先判断下 项目存不存在 | ||||
Project project = projectService.getById(projectId); | |||||
VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在"); | |||||
Project project = projectService.getNoNull(projectId); | |||||
//2.要判断 项目在当前状态 有没有被驳回和退回过 | //2.要判断 项目在当前状态 有没有被驳回和退回过 | ||||
//当前项目状态流程的 实例 看看是不是有2个以上 有2个说明 有退回 驳回 | //当前项目状态流程的 实例 看看是不是有2个以上 有2个说明 有退回 驳回 | ||||
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.*; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.time.LocalDateTime; | 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 com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
@@ -51,7 +51,7 @@ public class ProjectInst implements Serializable { | |||||
this.instType = instType.getCode(); | this.instType = instType.getCode(); | ||||
} | } | ||||
public void setInstType(ProjectProcessStageEnum processStage) { | |||||
public void setInstType(ProjectProcessType processStage) { | |||||
this.instType = processStage.getCode(); | this.instType = processStage.getCode(); | ||||
} | } | ||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; | |||||
import com.alibaba.fastjson.annotation.JSONField; | import com.alibaba.fastjson.annotation.JSONField; | ||||
import com.hz.pm.api.common.compare.Compare; | import com.hz.pm.api.common.compare.Compare; | ||||
import com.hz.pm.api.dashboard.model.vo.PortraitProjectOutputVO; | 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.portrait.model.vo.TagVO; | ||||
import com.hz.pm.api.projectdeclared.model.vo.PurchaseFullInfoVO; | import com.hz.pm.api.projectdeclared.model.vo.PurchaseFullInfoVO; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | ||||
@@ -399,6 +400,9 @@ public class ProjectDetailVO { | |||||
@ApiModelProperty("采购信息(标段)") | @ApiModelProperty("采购信息(标段)") | ||||
private List<PurchaseFullInfoVO> purchaseDetails; | private List<PurchaseFullInfoVO> purchaseDetails; | ||||
@ApiModelProperty("项目评审详情") | |||||
private ProjectReviewDetailVO reviewDetail; | |||||
@ApiModelProperty("版本号str") | @ApiModelProperty("版本号str") | ||||
private String versionStr; | private String versionStr; | ||||
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | import com.baomidou.mybatisplus.core.conditions.Wrapper; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 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.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
@@ -32,6 +33,12 @@ public interface IProjectService extends IService<Project> { | |||||
return Optional.ofNullable(ProjectIdCodeCacheUtil.get(projectId)); | return Optional.ofNullable(ProjectIdCodeCacheUtil.get(projectId)); | ||||
} | } | ||||
default Project getNoNull(Long projectId) { | |||||
Project project = getById(projectId); | |||||
Assert.notNull(project, "项目不存在"); | |||||
return project; | |||||
} | |||||
@Override | @Override | ||||
default boolean save(Project entity) { | default boolean save(Project entity) { | ||||
boolean state = IService.super.save(entity); | boolean state = IService.super.save(entity); | ||||
@@ -58,8 +65,12 @@ public interface IProjectService extends IService<Project> { | |||||
Project getNewProject(Long projectId); | Project getNewProject(Long projectId); | ||||
Project getNewestNoNull(Long projectId); | |||||
Project getProjectByCode(String projectCode); | Project getProjectByCode(String projectCode); | ||||
Project getNoNull(String projectCode); | |||||
Page<ProjectPO> pageAllWithPermission(Page<ProjectPO> page, ProjectListReq req); | Page<ProjectPO> pageAllWithPermission(Page<ProjectPO> page, ProjectListReq req); | ||||
Page<ProjectPO> pageLibWithPermission(Page<ProjectPO> page, ProjectListReq req); | Page<ProjectPO> pageLibWithPermission(Page<ProjectPO> page, ProjectListReq req); | ||||
@@ -14,6 +14,8 @@ import com.hz.pm.api.projectlib.service.IProjectService; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.Objects; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* 服务实现类 | * 服务实现类 | ||||
@@ -32,6 +34,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl | |||||
} | } | ||||
@Override | @Override | ||||
public Project getNewestNoNull(Long projectId) { | |||||
return Objects.requireNonNull(getNewProject(projectId), "项目不存在"); | |||||
} | |||||
@Override | |||||
public Project getProjectByCode(String projectCode) { | public Project getProjectByCode(String projectCode) { | ||||
return this.getOne(Wrappers.lambdaQuery(Project.class) | return this.getOne(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getProjectCode, projectCode) | .eq(Project::getProjectCode, projectCode) | ||||
@@ -40,6 +47,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl | |||||
} | } | ||||
@Override | @Override | ||||
public Project getNoNull(String projectCode) { | |||||
return Objects.requireNonNull(getProjectByCode(projectCode), "项目不存在"); | |||||
} | |||||
@Override | |||||
public Page<ProjectPO> pageAllWithPermission(Page<ProjectPO> page, ProjectListReq req) { | public Page<ProjectPO> pageAllWithPermission(Page<ProjectPO> page, ProjectListReq req) { | ||||
return baseMapper.pageAllWithPermission(page, req); | return baseMapper.pageAllWithPermission(page, req); | ||||
} | } | ||||
@@ -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<Project> 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<ProjectInst> projectInstList = projectInstService | |||||
.list(Wrappers.lambdaQuery(ProjectInst.class).eq(ProjectInst::getProjectId, preProject.getId()) | |||||
.eq(ProjectInst::getInstType, instTypeEnum.getCode())); | |||||
if (CollUtil.isNotEmpty(projectInstList)) { | |||||
List<ProcessProgressVo> processProgressVoList = projectInstList.stream() | |||||
.map(p -> processInstanceService.getProgressInstanceDetail(null, p.getInstCode())) | |||||
.collect(Collectors.toList()); | |||||
// 筛选出上个版本该类型审核流程通过的流程详情 | |||||
List<ProcessProgressVo> 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; | |||||
} | |||||
} |
@@ -1,6 +1,6 @@ | |||||
package com.hz.pm.api.scheduler.contants; | 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 | * @author PoffyZhang | ||||
@@ -13,8 +13,8 @@ public interface TaskContant { | |||||
class Wflow { | class Wflow { | ||||
public static final Integer[] APPLY_PROCESS_TYPE_LIST = { | public static final Integer[] APPLY_PROCESS_TYPE_LIST = { | ||||
ProjectProcessStageEnum.APPLY_DELAY.getCode(), | |||||
ProjectProcessStageEnum.APPLY_BORROW.getCode() | |||||
ProjectProcessType.APPLY_DELAY.getCode(), | |||||
ProjectProcessType.APPLY_BORROW.getCode() | |||||
}; | }; | ||||
} | } | ||||
@@ -1,9 +1,8 @@ | |||||
package com.hz.pm.api.scheduler.listener; | package com.hz.pm.api.scheduler.listener; | ||||
import cn.hutool.core.text.CharSequenceUtil; | |||||
import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||
import cn.hutool.extra.spring.SpringUtil; | 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.UserInfoHelper; | ||||
import com.hz.pm.api.common.helper.WflowHelper; | import com.hz.pm.api.common.helper.WflowHelper; | ||||
import com.hz.pm.api.common.util.ThreadPoolUtil; | import com.hz.pm.api.common.util.ThreadPoolUtil; | ||||
@@ -69,7 +68,7 @@ public class TaskCreatedListener implements FlowableEventListener { | |||||
String procDefId = entityEvent.getProcessDefinitionId(); | String procDefId = entityEvent.getProcessDefinitionId(); | ||||
String procInstId = entityEvent.getProcessInstanceId(); | String procInstId = entityEvent.getProcessInstanceId(); | ||||
WflowModelHistorys models = processModelHistorysService.getByProcessDefId(procDefId); | WflowModelHistorys models = processModelHistorysService.getByProcessDefId(procDefId); | ||||
ProjectProcessStageEnum procType = ProjectProcessStageEnum.getNoNull(models.getProcessType()); | |||||
ProjectProcessType procType = ProjectProcessType.getNoNull(models.getProcessType()); | |||||
TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity(); | TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity(); | ||||
UserFullInfoDTO assignee = userInfoHelper.getUserFullInfo(taskEntity.getAssignee()); | UserFullInfoDTO assignee = userInfoHelper.getUserFullInfo(taskEntity.getAssignee()); | ||||
if (assignee == null || StrUtil.isBlank(assignee.getMhUserId())) { | if (assignee == null || StrUtil.isBlank(assignee.getMhUserId())) { | ||||
@@ -97,8 +96,8 @@ public class TaskCreatedListener implements FlowableEventListener { | |||||
.userName(assignee.getRealName()) | .userName(assignee.getRealName()) | ||||
.path("/toDoCenter/handleDuringExamine") | .path("/toDoCenter/handleDuringExamine") | ||||
.build(); | .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); | PurchaseInst purchaseInst = purchaseInstService.getByProjectIdAndInstCode(paramObj.getProjectId(), procInstId); | ||||
if (purchaseInst == null) { | if (purchaseInst == null) { | ||||
return; | return; | ||||
@@ -123,7 +122,7 @@ public class TaskCreatedListener implements FlowableEventListener { | |||||
FlowableEngineEntityEvent entityEvent = (FlowableEngineEntityEvent) event; | FlowableEngineEntityEvent entityEvent = (FlowableEngineEntityEvent) event; | ||||
String procDefId = entityEvent.getProcessDefinitionId(); | String procDefId = entityEvent.getProcessDefinitionId(); | ||||
WflowModelHistorys models = processModelHistorysService.getByProcessDefId(procDefId); | WflowModelHistorys models = processModelHistorysService.getByProcessDefId(procDefId); | ||||
ProjectProcessStageEnum procType = ProjectProcessStageEnum.getNoNull(models.getProcessType()); | |||||
ProjectProcessType procType = ProjectProcessType.getNoNull(models.getProcessType()); | |||||
TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity(); | TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity(); | ||||
WflowHelper wflowHelper = SpringUtil.getBean(WflowHelper.class); | WflowHelper wflowHelper = SpringUtil.getBean(WflowHelper.class); | ||||
String taskDefKey = taskEntity.getTaskDefinitionKey(); | 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; | MHTodoTypeEnum todoType; | ||||
switch (procType) { | switch (procType) { | ||||
case XC_APPROVAL_PROCESS: | case XC_APPROVAL_PROCESS: | ||||
@@ -3,7 +3,7 @@ package com.hz.pm.api.sys.manage; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import cn.hutool.core.util.IdUtil; | import cn.hutool.core.util.IdUtil; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 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.ningdatech.basic.util.CollUtils; | ||||
import com.wflow.bean.dto.WflowModelHistorysInsertDto; | import com.wflow.bean.dto.WflowModelHistorysInsertDto; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
@@ -41,11 +41,11 @@ public class InitProcessManage { | |||||
return; | return; | ||||
} | } | ||||
List<String> strUnitIds = CollUtils.convert(unitIds, String::valueOf); | List<String> strUnitIds = CollUtils.convert(unitIds, String::valueOf); | ||||
ProjectProcessStageEnum[] stages = ProjectProcessStageEnum.values(); | |||||
ProjectProcessType[] stages = ProjectProcessType.values(); | |||||
List<WflowModels> allModels = processModelService.list(Wrappers.lambdaQuery(WflowModels.class) | List<WflowModels> allModels = processModelService.list(Wrappers.lambdaQuery(WflowModels.class) | ||||
.in(WflowModels::getRegionCode, strUnitIds)); | .in(WflowModels::getRegionCode, strUnitIds)); | ||||
Map<Integer, List<WflowModels>> modelsByType = CollUtils.group(allModels, WflowModels::getProcessType); | Map<Integer, List<WflowModels>> modelsByType = CollUtils.group(allModels, WflowModels::getProcessType); | ||||
for (ProjectProcessStageEnum stage : stages) { | |||||
for (ProjectProcessType stage : stages) { | |||||
List<WflowModels> currModels = modelsByType.getOrDefault(stage.getCode(), Collections.emptyList()); | List<WflowModels> currModels = modelsByType.getOrDefault(stage.getCode(), Collections.emptyList()); | ||||
Map<String, WflowModels> modelsByUnitId = CollUtils.listToMap(currModels, WflowModels::getRegionCode); | Map<String, WflowModels> modelsByUnitId = CollUtils.listToMap(currModels, WflowModels::getRegionCode); | ||||
for (String unitId : strUnitIds) { | for (String unitId : strUnitIds) { | ||||
@@ -9,7 +9,7 @@ import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.util.CollUtils; | import com.ningdatech.basic.util.CollUtils; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.model.constant.RegionConst; | 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.helper.RegionCacheHelper; | ||||
import com.hz.pm.api.common.model.entity.MenuTreeEntity; | import com.hz.pm.api.common.model.entity.MenuTreeEntity; | ||||
import com.hz.pm.api.common.util.TreeUtil; | import com.hz.pm.api.common.util.TreeUtil; | ||||
@@ -96,7 +96,7 @@ public class MenuManage { | |||||
Integer[] processTypeList = TaskContant.Wflow.APPLY_PROCESS_TYPE_LIST; | Integer[] processTypeList = TaskContant.Wflow.APPLY_PROCESS_TYPE_LIST; | ||||
for(Integer processType : processTypeList){ | for(Integer processType : processTypeList){ | ||||
String formName = ProjectProcessStageEnum.getDesc(processType); | |||||
String formName = ProjectProcessType.getDesc(processType); | |||||
WflowModelHistorysInsertDto models = new WflowModelHistorysInsertDto(); | WflowModelHistorysInsertDto models = new WflowModelHistorysInsertDto(); | ||||
models.setGroupId(1); | models.setGroupId(1); | ||||
@@ -3,7 +3,7 @@ package com.hz.pm.api.sys.manage; | |||||
import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||
import com.baomidou.mybatisplus.core.toolkit.Assert; | import com.baomidou.mybatisplus.core.toolkit.Assert; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 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.hz.pm.api.user.helper.MhUnitCache; | ||||
import com.ningdatech.basic.util.CollUtils; | import com.ningdatech.basic.util.CollUtils; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
@@ -37,7 +37,7 @@ public class ProcessModelManage { | |||||
* @param unitId 单位ID | * @param unitId 单位ID | ||||
* @return 流程配置 | * @return 流程配置 | ||||
*/ | */ | ||||
public WflowModels getWflowModels(ProjectProcessStageEnum processStage, Long unitId) { | |||||
private WflowModels getWflowModels(ProjectProcessType processStage, Long unitId) { | |||||
List<Long> unitIdPaths = mhUnitCache.getUnitIdPaths(unitId); | List<Long> unitIdPaths = mhUnitCache.getUnitIdPaths(unitId); | ||||
if (unitIdPaths.isEmpty()) { | if (unitIdPaths.isEmpty()) { | ||||
log.error("该单位无法进行项目申报:{}", unitId); | log.error("该单位无法进行项目申报:{}", unitId); | ||||
@@ -52,4 +52,17 @@ public class ProcessModelManage { | |||||
.last(orderSql)); | .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; | |||||
} | |||||
} | } |
@@ -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.Assert; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.google.common.collect.Sets; | 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.helper.WflowHelper; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.model.constant.TypeReferenceConst; | import com.hz.pm.api.common.model.constant.TypeReferenceConst; | ||||
@@ -194,7 +194,7 @@ public class HandlerManage { | |||||
case TO_BE_FIRST_INSPECTED: | case TO_BE_FIRST_INSPECTED: | ||||
case ON_PILOT_RUNNING: | case ON_PILOT_RUNNING: | ||||
case ON_FINALLY_INSPECTED: | case ON_FINALLY_INSPECTED: | ||||
ProjectProcessStageEnum processStage = ProjectProcessStageEnum.getNoNull(instTypeEnum.getCode()); | |||||
ProjectProcessType processStage = ProjectProcessType.getNoNull(instTypeEnum.getCode()); | |||||
purchasePassedCallback(project, instanceId, processStage); | purchasePassedCallback(project, instanceId, processStage); | ||||
break; | break; | ||||
default: | default: | ||||
@@ -264,7 +264,7 @@ public class HandlerManage { | |||||
purchaseService.updateById(purchase); | purchaseService.updateById(purchase); | ||||
} | } | ||||
private void purchasePassedCallback(Project project, String instanceId, ProjectProcessStageEnum processStage) { | |||||
private void purchasePassedCallback(Project project, String instanceId, ProjectProcessType processStage) { | |||||
// 查询所有的标段 | // 查询所有的标段 | ||||
List<Purchase> purchases = purchaseService.listByProjectId(project.getId()); | List<Purchase> purchases = purchaseService.listByProjectId(project.getId()); | ||||
Map<Long, Purchase> purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); | Map<Long, Purchase> purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); | ||||
@@ -1064,9 +1064,7 @@ public class TodoCenterManage { | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public String adjustmentAndHandle(AdjustHandleDTO dto) { | public String adjustmentAndHandle(AdjustHandleDTO dto) { | ||||
ProjectDTO projectDto = dto.getProjectInfo(); | ProjectDTO projectDto = dto.getProjectInfo(); | ||||
Project projectInfo = projectService.getById(projectDto.getId()); | |||||
Assert.notNull(projectInfo, "调整失败 此项目不存在!"); | |||||
Project projectInfo = projectService.getNoNull(projectDto.getId()); | |||||
//项目名称去重 | //项目名称去重 | ||||
//项目名称去重 | //项目名称去重 | ||||
@@ -1,7 +1,7 @@ | |||||
package com.hz.pm.api.workbench.converter; | package com.hz.pm.api.workbench.converter; | ||||
import cn.hutool.core.bean.BeanUtil; | 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.ResToBeProcessedVO; | ||||
import com.hz.pm.api.todocenter.model.vo.TodoVO; | import com.hz.pm.api.todocenter.model.vo.TodoVO; | ||||
import com.hz.pm.api.workbench.model.vo.WorkbenchVO; | import com.hz.pm.api.workbench.model.vo.WorkbenchVO; | ||||
@@ -19,7 +19,7 @@ public class WorkbenchConverter { | |||||
private 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); | WorkbenchVO.DeclaredStatistics res = BeanUtil.copyProperties(po, WorkbenchVO.DeclaredStatistics.class); | ||||
if (Objects.nonNull(lastYearPo)) { | if (Objects.nonNull(lastYearPo)) { | ||||
res.setDeclaredAmountLastYear(lastYearPo.getDeclaredAmount()); | res.setDeclaredAmountLastYear(lastYearPo.getDeclaredAmount()); | ||||
@@ -119,8 +119,7 @@ public class WorkbenchManage { | |||||
WflowEarlyWarningRecords warningRecords = earlyWarningRecordsService.getById(recordId); | WflowEarlyWarningRecords warningRecords = earlyWarningRecordsService.getById(recordId); | ||||
Assert.notNull(warningRecords, "催办失败,id不存在!"); | Assert.notNull(warningRecords, "催办失败,id不存在!"); | ||||
String projectCode = warningRecords.getProjectCode(); | String projectCode = warningRecords.getProjectCode(); | ||||
Project project = projectService.getProjectByCode(projectCode); | |||||
Assert.notNull(project, "催办失败,项目不存在!"); | |||||
Project project = projectService.getNoNull(projectCode); | |||||
String batchEmployees = warningRecords.getBatchUserIds(); | String batchEmployees = warningRecords.getBatchUserIds(); | ||||
Integer ruleType = warningRecords.getRuleType(); | Integer ruleType = warningRecords.getRuleType(); | ||||
String areaCode = warningRecords.getAreaCode(); | String areaCode = warningRecords.getAreaCode(); | ||||
@@ -7,7 +7,7 @@ import com.alibaba.fastjson.JSON; | |||||
import com.ningdatech.basic.exception.BizException; | import com.ningdatech.basic.exception.BizException; | ||||
import com.hz.pm.api.AppTests; | import com.hz.pm.api.AppTests; | ||||
import com.hz.pm.api.common.model.constant.RegionConst; | 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.helper.RegionCacheHelper; | ||||
import com.hz.pm.api.scheduler.contants.TaskContant; | import com.hz.pm.api.scheduler.contants.TaskContant; | ||||
import com.hz.pm.api.sys.model.dto.RegionDTO; | 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; | Integer[] processTypeList = TaskContant.Wflow.APPLY_PROCESS_TYPE_LIST; | ||||
for(Integer processType : processTypeList){ | for(Integer processType : processTypeList){ | ||||
String formName = ProjectProcessStageEnum.getDesc(processType); | |||||
String formName = ProjectProcessType.getDesc(processType); | |||||
WflowModelHistorysInsertDto models = new WflowModelHistorysInsertDto(); | WflowModelHistorysInsertDto models = new WflowModelHistorysInsertDto(); | ||||
models.setGroupId(1); | models.setGroupId(1); | ||||