diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/gov/convert/ProjectConvert.java b/hz-pm-api/src/main/java/com/hz/pm/api/gov/convert/ProjectConvert.java index bd37f35..5726493 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/gov/convert/ProjectConvert.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/gov/convert/ProjectConvert.java @@ -80,7 +80,7 @@ public class ProjectConvert { return Collections.emptyList(); } - List req = procures.stream() + return procures.stream() .map(p -> { ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); if (Objects.nonNull(p.getId())) { @@ -91,7 +91,6 @@ public class ProjectConvert { return r; }) .collect(Collectors.toList()); - return req; } private static List convertProcuresVo(List procures) { @@ -99,7 +98,7 @@ public class ProjectConvert { return Collections.emptyList(); } - List req = procures.stream() + return procures.stream() .map(p -> { ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); if (Objects.nonNull(p.getId())) { @@ -110,7 +109,6 @@ public class ProjectConvert { return r; }) .collect(Collectors.toList()); - return req; } private static List convertProcuresVoWithConvertPdf(List procures) { @@ -118,7 +116,7 @@ public class ProjectConvert { return Collections.emptyList(); } - List req = procures.stream() + return procures.stream() .map(p -> { ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); r.setBiddingFile(StringUtils.isNotBlank(p.getBiddingFilePdf()) ? p.getBiddingFilePdf() : @@ -132,17 +130,14 @@ public class ProjectConvert { return r; }) .collect(Collectors.toList()); - return req; } private static ProjectMimplementReq convertMimplement(GovBizProjectMimplementDTO mimplement) { - ProjectMimplementReq req = BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); - return req; + return BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); } private static ProjectMimplementReq convertMimplementVo(GovBizProjectMimplementVO mimplement) { - ProjectMimplementReq req = BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); - return req; + return BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); } private static ProjectMimplementReq convertMimplementVoWithConvertPdf(GovBizProjectMimplementVO mimplement) { @@ -174,8 +169,7 @@ public class ProjectConvert { } public static ProjectCimplementReq convertCimplement(GovBizProjectCimplementDTO cimplement) { - ProjectCimplementReq req = BeanUtil.copyProperties(cimplement, ProjectCimplementReq.class); - return req; + return BeanUtil.copyProperties(cimplement, ProjectCimplementReq.class); } public static ProjectCimplementReq convertCimplementVo(GovBizProjectCimplementVO cimplement) { diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/gov/enumeration/GovProjectStatusEnum.java b/hz-pm-api/src/main/java/com/hz/pm/api/gov/enumeration/GovProjectStatusEnum.java deleted file mode 100644 index b5f5f13..0000000 --- a/hz-pm-api/src/main/java/com/hz/pm/api/gov/enumeration/GovProjectStatusEnum.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hz.pm.api.gov.enumeration; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import org.apache.commons.lang3.StringUtils; - -import java.util.Objects; - -/** - * GovProjectStatusEnum - * - * @return - * @author ZPF - * @since 2023/10/24 16:27 - */ -@Getter -@AllArgsConstructor -@NoArgsConstructor -public enum GovProjectStatusEnum { - /** - * 项目归集 状态 - */ - APPROVAL("01", "评审中"), - PENDING("02", "待立项"), - REJECTED("03","已驳回"), - APPROVED("04","已立项"), - PURCHASED("05","已采购"), - HAS_PRE_INS("06","已初验"), - HAS_FINAL_INS("07","已终验"), - TERMINATED("00","已终止"); - - private String code; - private String desc; - - public static String getDescByCode(Integer code) { - if (Objects.isNull(code)) { - return StringUtils.EMPTY; - } - for (GovProjectStatusEnum t : GovProjectStatusEnum.values()) { - if (code.equals(t.getCode())) { - return t.desc; - } - } - return StringUtils.EMPTY; - } - - public static GovProjectStatusEnum match(String code) { - if (StringUtils.isBlank(code)) { - return null; - } - for (GovProjectStatusEnum t : GovProjectStatusEnum.values()) { - if (code.equals(t.getCode())) { - return t; - } - } - return null; - } -} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/gov/utils/ProjectConvertUtil.java b/hz-pm-api/src/main/java/com/hz/pm/api/gov/utils/ProjectConvertUtil.java deleted file mode 100644 index c6511df..0000000 --- a/hz-pm-api/src/main/java/com/hz/pm/api/gov/utils/ProjectConvertUtil.java +++ /dev/null @@ -1,361 +0,0 @@ -package com.hz.pm.api.gov.utils; - -import cn.hutool.core.collection.CollUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.google.common.collect.Lists; -import com.hz.pm.api.projectdeclared.model.vo.PurchaseFullInfoVO; -import com.ningdatech.basic.util.StrPool; -import com.ningdatech.file.entity.File; -import com.ningdatech.file.service.FileService; -import com.hz.pm.api.common.model.constant.RegionConst; -import com.hz.pm.api.common.util.BizUtils; -import com.hz.pm.api.gov.enumeration.GovProjectClassifiedEnum; -import com.hz.pm.api.gov.model.vo.*; -import com.hz.pm.api.projectdeclared.model.vo.PurchaseVO; -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.vo.ProjectApplicationVO; -import com.hz.pm.api.projectlib.model.vo.ProjectDetailVO; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.math.BigDecimal; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -/** - * @Classname ProjectCollectionUtil - * @Description - * @Date 2023/9/14 9:07 - * @Author PoffyZhang - */ -@Slf4j -public class ProjectConvertUtil { - - /** - * 申报项目 转为 项目归集 - * - * @param project - * @return - */ - public static GovBizProjectDetailVO declaredToCollection(ProjectDetailVO project, FileService fileService) { - GovBizProjectDetailVO projectCollection = new GovBizProjectDetailVO(); - if (Objects.isNull(project)) { - return projectCollection; - } - String projectCode = project.getProjectCode(); - String projectName = project.getProjectName(); - projectCollection.setBaseProjId(projectCode); - projectCollection.setBaseProjName(projectName); - projectCollection.setBaseinfo(buildBaseinfo(project)); - projectCollection.setApply(buildApply(project)); - projectCollection.setApprove(buildApprove(project, fileService)); - String projectType = project.getProjectType(); - ProjectTypeNewEnum match = ProjectTypeNewEnum.match(projectType); - if (Objects.nonNull(match)) { - switch (match) { - case SJ_BUILD: - case FIRST_BUILD: - case SZ_BUILD: - projectCollection.setCimplement(buildCim(project)); - break; - case NEW_OPERA: - case XU_OPERA: - projectCollection.setMimplement(buildMim(project)); - break; - default: - break; - } - } - projectCollection.setProcures(buildProcure(project)); - return projectCollection; - } - - //转化基本信息 - private static GovBizProjectBaseinfoVO buildBaseinfo(ProjectDetailVO project) { - GovBizProjectBaseinfoVO baseinfo = new GovBizProjectBaseinfoVO(); - baseinfo.setBaseProjId(project.getProjectCode()); - baseinfo.setBaseProjName(project.getProjectName()); - baseinfo.setAreaCode(RegionConst.RC_HZ); - baseinfo.setBaseAreaCode(project.getAreaCode() + RegionConst.NINE_CODE_LAST); - baseinfo.setBaseAreaName(project.getArea()); - baseinfo.setBaseBuildDeprt(project.getBuildOrgName()); - baseinfo.setBaseBuildDeprtDing(project.getBuildOrgCode()); - baseinfo.setBaseBuildDepartUsci(project.getOrgCreditCode()); - baseinfo.setBaseConstructionType(project.getBaseConstructionType()); - baseinfo.setBaseManDeprt(project.getSuperOrg()); - baseinfo.setBaseManDeprtDing(project.getSuperOrgCode()); - baseinfo.setBaseManDepartUsci(project.getSuperOrgCreditCode()); - baseinfo.setBaseProjContacts(project.getContactName()); - baseinfo.setBaseProjContactsCall(project.getContactPhone()); - baseinfo.setBaseProjIsConfidentiality(GovProjectClassifiedEnum.NOT_CLASSIFIED.getCode()); - baseinfo.setBaseProjPrincipal(project.getResponsibleMan()); - baseinfo.setBaseProjPrincipalCall(project.getResponsibleManMobile()); - baseinfo.setBaseProvManDeprt(project.getHigherSuperOrg()); - baseinfo.setBaseProvManDepartDing(project.getHigherSuperOrgCode()); - baseinfo.setBaseProvManDeprtType(project.getBaseProvManDeprtType()); - ProjectStatus projectStatus = ProjectStatus.getNoNull(project.getStatus()); - if (projectStatus.getCollectStatus() != null) { - baseinfo.setBaseProjSetProg(projectStatus.getCollectStatus().getCode()); - } - baseinfo.setBaseProjType(project.getProjectType()); - baseinfo.setDeleted(Boolean.FALSE); - return baseinfo; - } - - //转化申报信息 - private static GovBizProjectApplyVO buildApply(ProjectDetailVO project) { - GovBizProjectApplyVO apply = new GovBizProjectApplyVO(); - apply.setBaseProjName(project.getProjectName()); - apply.setAreaCode(RegionConst.RC_HZ); - apply.setBaseHistorProjId(project.getBaseHistorProjId()); - apply.setBaseBasisEstablish(project.getBaseBasisEstablish()); - List projectApplications = project.getProjectApplications(); - if (CollUtil.isNotEmpty(projectApplications)) { - String appName = projectApplications.stream().map(app -> { - if (StringUtils.isNotBlank(app.getRelatedExistsApplication())) { - return app.getRelatedExistsApplication(); - } - return app.getApplicationName(); - }).collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - String appCode = projectApplications.stream().map(app -> { - if (StringUtils.isNotBlank(app.getRelatedExistsApplication())) { - return app.getRelatedExistsApplicationCode(); - } - return app.getAppCode(); - }).collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - String accountName = projectApplications.stream() - .map(app -> StringUtils.isNotBlank(app.getAccountAppName()) ? app.getAccountAppName() : null) - .filter(Objects::nonNull) - .collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - apply.setBaseAccountAppName(accountName); - apply.setBaseProjSys(appName); - apply.setBaseProjSysCode(appCode); - } - apply.setBaseBasisAmountOri(project.getBaseBasisAmountOri()); - String coreBusiness = project.getCoreBusiness(); - if (StringUtils.isNotBlank(coreBusiness)) { - try { - JSONArray coreJson = JSON.parseArray(coreBusiness); - String matters = coreJson.stream().map(j -> { - JSONObject matterJson = JSON.parseObject(JSON.toJSONString(j)); - return matterJson.getString("matterName"); - }).filter(Objects::nonNull) - .collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - String matterCodes = coreJson.stream().map(j -> { - JSONObject matterJson = JSON.parseObject(JSON.toJSONString(j)); - return matterJson.getString("oid"); - }).filter(Objects::nonNull) - .collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - apply.setBaseCoreBusiness(matters); - apply.setBaseCoreBusinessCode(matterCodes); - } catch (Exception e) { - log.error("项目转化失败", e); - } - } - apply.setBaseDevelopCode(project.getDevelopCode()); - apply.setBaseLowestLevel(project.getLowestLevel()); - apply.setBaseHistorProjName(project.getBaseHistorProjName()); - apply.setBaseHistorProjYear(project.getBaseHistorProjYear()); - apply.setBaseProjApplyFile(project.getProjectApplicationForm()); - String beginTime = project.getBeginTime(); - String endTime = project.getEndTime(); - if (StringUtils.isNotBlank(beginTime)) { - apply.setBaseProjStartTime(BizUtils.convertLocalDateTime(beginTime)); - } - if (StringUtils.isNotBlank(endTime)) { - apply.setBaseProjEndTime(BizUtils.convertLocalDateTime(endTime)); - } - if (StringUtils.isNotBlank(beginTime) && StringUtils.isNotBlank(endTime)) { - try { - String yearEnd = endTime.split(StrPool.DASH)[0]; - String yearStart = beginTime.split(StrPool.DASH)[0]; - String monthEnd = endTime.split(StrPool.DASH)[1]; - String monthStart = beginTime.split(StrPool.DASH)[1]; - Integer duration = Integer.parseInt(monthEnd) - Integer.parseInt(monthStart) + - (Integer.parseInt(yearEnd) - Integer.parseInt(yearStart)) * 12; - apply.setBaseProjDuration(String.valueOf(duration)); - } catch (Exception e) { - log.error("日期转换失败:", e); - } - } - apply.setBaseProjConsClass(project.getBuildLevel()); - apply.setBaseProjIntro(project.getProjectIntroduction()); - apply.setBaseProjBasis(project.getBaseProjBasis()); - apply.setBaseProjBasisFile(project.getBaseProjBasisFile()); - apply.setBaseProjDeclAmount(project.getAnnualPlanAmount()); - apply.setBaseProjTotalAmount(project.getDeclareAmount()); - apply.setBaseProjSetYear(Objects.nonNull(project.getProjectYear()) - ? String.valueOf(project.getProjectYear()) : null); - apply.setBaseProjRemark(project.getProjectRemarks()); - apply.setBaseProjOtherFile(project.getBaseProjOtherFile()); - apply.setBaseResearchReportFile(project.getBaseResearchReportFile()); - apply.setBeseExpectedResults(project.getBeseExpectedResults()); - apply.setSetProjCodeFinan(project.getFinancialCode()); - apply.setMissing(StringUtils.isNotBlank(project.getBaseHistorProjId()) ? Boolean.FALSE : Boolean.TRUE); - return apply; - } - - //转化审批信息 - private static GovBizProjectApproveVO buildApprove(ProjectDetailVO project, FileService fileService) { - GovBizProjectApproveVO approve = new GovBizProjectApproveVO(); - approve.setBaseProjName(project.getProjectName()); - File file = fileService.getById(project.getApprovedFile()); - if (Objects.nonNull(file)) { - approve.setApprovalFile(JSON.toJSONString(Lists.newArrayList(file))); - } - approve.setAreaCode(RegionConst.RC_HZ); - approve.setDeleted(Boolean.FALSE); - approve.setBaseDevelopCode(project.getDevelopCode()); - approve.setBaseExpertTotalMoney(project.getProposeTotalInvest()); - approve.setBaseExpertYearMoney(project.getProposeAnnualBudget()); - approve.setBaseInitialReviewTotalMoney(project.getApprovalAmount()); - approve.setBaseProjReplyAmount(project.getApprovalBudget()); - approve.setBaseReviewCommentsFile(project.getProposeAttachFiles()); - List projectApplications = project.getProjectApplications(); - if (CollUtil.isNotEmpty(projectApplications)) { - Integer max = 0; - for (ProjectApplicationVO app : projectApplications) { - max = Math.max(app.getSecrecyGrade(), max); - } - if (max > 0) { - approve.setEqualProtectionLevel(String.format(StrPool.FORMAT_DATE_SINGLE_DIGITS, max)); - } - } - approve.setPreliminaryDesignScheme(project.getPreliminaryPlanFile()); - approve.setBaseReviewOpinion(project.getProposeAttach()); - if (Objects.nonNull(project.getBaseReviewResults())) { - approve.setBaseReviewResults(String.format(StrPool.FORMAT_DATE_SINGLE_DIGITS, - project.getBaseReviewResults())); - } - List purchases = project.getPurchaseDetails(); - if (CollUtil.isNotEmpty(purchases)) { - purchases.stream().map(w -> w.getPurchase().getTransactionAmount()) - .filter(Objects::nonNull).reduce(BigDecimal::add) - .ifPresent(approve::setReleaseYearMoney); - } - return approve; - } - - //转化建设 实施 - private static GovBizProjectCimplementVO buildCim(ProjectDetailVO project) { - GovBizProjectCimplementVO cim = new GovBizProjectCimplementVO(); - cim.setBaseProjName(project.getProjectName()); - cim.setBaseEngineerPostpoFile(project.getSupportingMaterialsFile()); - cim.setAreaCode(RegionConst.RC_HZ); - cim.setDeleted(Boolean.FALSE); - cim.setBaseDevelopCode(project.getDevelopCode()); - //总结报告 - cim.setBaseSummReportFile(searchReportFile(project, 5, 2)); - //监理总结报告 - cim.setBaseEstaSummFile(searchReportFile(project, 5, 3)); - //建设核查表 - cim.setBaseCheckFile(searchReportFile(project, 3, 2)); - cim.setBaseThirdAcceptFile(searchReportFile(project, 5, 4)); - cim.setBaseInitialOpinionFile(searchReportFile(project, 5, 5)); - List projectApplications = project.getProjectApplications(); - if (CollUtil.isNotEmpty(projectApplications)) { - String appCode = projectApplications.stream().map(app -> { - if (StringUtils.isNotBlank(app.getRelatedExistsApplication())) { - return app.getRelatedExistsApplicationCode(); - } - return app.getAppCode(); - }).collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - cim.setBaseProjSysCode(appCode); - } - return cim; - } - - //转化运维实施 - private static GovBizProjectMimplementVO buildMim(ProjectDetailVO project) { - GovBizProjectMimplementVO mim = new GovBizProjectMimplementVO(); -// mim.setBaseProjId(project.getProjectCode()); - mim.setBaseProjName(project.getProjectName()); - mim.setBaseEngineerPostpoFile(project.getSupportingMaterialsFile()); - mim.setAreaCode(RegionConst.RC_HZ); - mim.setDeleted(Boolean.FALSE); - mim.setBaseDevelopCode(project.getDevelopCode()); - //监理总结报告 - mim.setBaseEstaSummFile(searchReportFile(project, 5, 3)); - //建设核查表 -// mim.setBaseCheckFile(searchReportFile(project,3,2)); - mim.setBaseThirdAcceptFile(searchReportFile(project, 5, 4)); -// mim.setBaseInitialOpinionFile(searchReportFile(project,5,5)); - List projectApplications = project.getProjectApplications(); - if (CollUtil.isNotEmpty(projectApplications)) { - String appCode = projectApplications.stream().map(app -> { - if (StringUtils.isNotBlank(app.getRelatedExistsApplication())) { - return app.getRelatedExistsApplicationCode(); - } - return app.getAppCode(); - }).collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); - mim.setBaseProjSysCode(appCode); - } - return mim; - } - - //转化采购信息 - private static List buildProcure(ProjectDetailVO project) { - List purchases = project.getPurchaseDetails(); - if (CollUtil.isNotEmpty(purchases)) { - return purchases.stream().map(w -> { - GovBizProjectProcureVO purchase = new GovBizProjectProcureVO(); - PurchaseVO p = w.getPurchase(); - purchase.setBaseProjName(project.getProjectName()); - purchase.setAreaCode(RegionConst.RC_HZ); - purchase.setDeleted(Boolean.FALSE); - purchase.setBaseBidName(p.getBidName()); - purchase.setBasePurchasingAgencies(p.getAgency()); - purchase.setBaseUnifiedCreditCode(p.getPurchaseSocialCreditCode()); - purchase.setBaseConsDeprt(p.getSupplier()); - purchase.setBaseConsDeprtUsci(p.getSupplierSocialCreditCode()); - purchase.setBasePaymentTime(p.getTransactionTime()); - purchase.setBaseProjPurchaseAmount(p.getTransactionAmount()); - purchase.setBaseProjPurchaseWay(p.getPurchaseMethod()); - purchase.setBasePurchaseCode(p.getBudgetExecConfirmNo()); - purchase.setBaseWinningBidTime(p.getTransactionTime()); - purchase.setBiddingFile(p.getAcceptanceLetter()); - purchase.setSetProjCodeFinan(project.getFinancialCode()); - purchase.setPurchaseFile(p.getBidDoc()); - return purchase; - }).collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - /** - * 查询项目 初验终验的 报告 - * - * @param project - * @return - */ - private static String searchReportFile(ProjectDetailVO project, Integer firstIndex, Integer secondIndex) { - /*if (Objects.isNull(project)) { - return null; - } - if (StringUtils.isNotBlank(project.getFinalAcceptanceMaterials())) { - return searchReportFileInner(project.getFinalAcceptanceMaterials(), firstIndex, secondIndex); - } else if (StringUtils.isNotBlank(project.getPreliminaryInspectionMaterials())) { - return searchReportFileInner(project.getFinalAcceptanceMaterials(), firstIndex, secondIndex); - }*/ - return null; - } - - private static String searchReportFileInner(String fileStr, Integer firstIndex, Integer secondIndex) { - try { - JSONArray jsonArray = JSON.parseArray(fileStr); - JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(jsonArray.get(firstIndex - 1))); - JSONArray data = jsonObject.getJSONArray("data"); - JSONObject wangong = JSON.parseObject(JSON.toJSONString(data.get(secondIndex - 1))); - JSONArray files = wangong.getJSONArray("files"); - return JSON.toJSONString(files); - } catch (Exception e) { - log.error("解析文件失败:", e); - } - return null; - } -} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/controller/MeetingController.java b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/controller/MeetingController.java index 4fa1ada..6ca3e85 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/controller/MeetingController.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/controller/MeetingController.java @@ -1,7 +1,9 @@ package com.hz.pm.api.meeting.controller; +import com.hz.pm.api.meeting.entity.dto.ProjectReviewResultDTO; import com.hz.pm.api.meeting.entity.dto.ReviewProjectDTO; +import com.hz.pm.api.meeting.entity.enumeration.MeetingReviewTypeEnum; import com.hz.pm.api.meeting.entity.req.*; import com.hz.pm.api.meeting.entity.vo.*; import com.hz.pm.api.meeting.manage.MeetingManage; @@ -196,6 +198,13 @@ public class MeetingController { return meetingManage.projectsByMeetingId(meetingId); } + @ApiOperation("获取最新的项目评审详情") + @GetMapping("/projectReviewDetail/{projectId}/{meetingType}") + public ProjectReviewResultDTO projectReviewDetail(@PathVariable Long projectId, + @PathVariable MeetingReviewTypeEnum meetingType) { + return meetingManage.projectReviewDetail(projectId, meetingType); + } + @PostMapping("/result/upload") @ApiOperation("上传会议结果") @WebLog("上传会议结果") diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/enumeration/MeetingReviewTypeEnum.java b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/enumeration/MeetingReviewTypeEnum.java index 6ca2433..db056be 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/enumeration/MeetingReviewTypeEnum.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/enumeration/MeetingReviewTypeEnum.java @@ -28,7 +28,9 @@ public enum MeetingReviewTypeEnum { DEPT_JOIN_REVIEW("部门联审", "4"), - FAIRNESS_REVIEW( "公平性审查","5"); + FAIRNESS_REVIEW("公平性审查", "5"), + + PROJECT_REVIEW("项目评审", "6"); private final String value; private final String code; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewInfoReq.java b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewInfoReq.java new file mode 100644 index 0000000..541dd49 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewInfoReq.java @@ -0,0 +1,43 @@ +package com.hz.pm.api.meeting.entity.req; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + *

+ * ProjectReviewInfoReq + *

+ * + * @author WendyYang + * @since 10:50 2024/4/17 + */ +@Data +public class ProjectReviewInfoReq { + + @ApiModelProperty("建设必要性") + private String buildNecessity; + + @ApiModelProperty("需求合理性") + private String needRationality; + + @ApiModelProperty("技术方案可行性") + private String techFeasibility; + + @ApiModelProperty("审核结果:1 通过、0 不通过") + private Integer reviewResult; + + @ApiModelProperty("其他意见") + private String otherAdvices; + + @ApiModelProperty("投资测算合理性") + private String investRationality; + + @ApiModelProperty("建议资金(单位:万元)") + private BigDecimal suggestedFunding; + + @ApiModelProperty("相关材料") + private String attachFiles; + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewResultUploadReq.java b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewResultUploadReq.java index 2e9a9ec..75a658d 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewResultUploadReq.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/entity/req/ProjectReviewResultUploadReq.java @@ -2,6 +2,7 @@ package com.hz.pm.api.meeting.entity.req; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import javax.validation.constraints.NotNull; import java.math.BigDecimal; @@ -15,7 +16,8 @@ import java.math.BigDecimal; * @since 15:35 2023/12/18 */ @Data -public class ProjectReviewResultUploadReq { +@EqualsAndHashCode(callSuper = true) +public class ProjectReviewResultUploadReq extends ProjectReviewInfoReq { @ApiModelProperty("会议ID") @NotNull(message = "会议ID不能为空") @@ -25,28 +27,4 @@ public class ProjectReviewResultUploadReq { @NotNull(message = "项目关联会议ID不能为空") private Long meetingProjectId; - @ApiModelProperty("建设必要性") - private String buildNecessity; - - @ApiModelProperty("需求合理性") - private String needRationality; - - @ApiModelProperty("技术方案可行性") - private String techFeasibility; - - @ApiModelProperty("审核结果:1 通过、0 不通过") - private Integer reviewResult; - - @ApiModelProperty("其他意见") - private String otherAdvices; - - @ApiModelProperty("投资测算合理性") - private String investRationality; - - @ApiModelProperty("建议资金(单位:万元)") - private BigDecimal suggestedFunding; - - @ApiModelProperty("相关材料") - private String attachFiles; - } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/manage/MeetingManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/manage/MeetingManage.java index a4ecb0a..02cbe3f 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/meeting/manage/MeetingManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/meeting/manage/MeetingManage.java @@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hz.pm.api.common.helper.RegionCacheHelper; +import com.hz.pm.api.common.model.constant.BizConst; import com.hz.pm.api.expert.entity.ExpertUserFullInfo; import com.hz.pm.api.expert.service.IExpertUserFullInfoService; import com.hz.pm.api.gov.service.IBelongOrgService; @@ -875,6 +876,9 @@ public class MeetingManage { break; case FAIRNESS_REVIEW: break; + case PROJECT_REVIEW: + buildOptionProjectQuery(query, meetingType, ProjectStatus.WITHOUT_PROJECT_REVIEW); + break; default: return PageVo.empty(); } @@ -903,6 +907,19 @@ public class MeetingManage { return Collections.emptyList(); } + public ProjectReviewResultDTO projectReviewDetail(Long projectId, MeetingReviewTypeEnum type) { + Wrapper query = Wrappers.lambdaQuery(MeetingInnerProject.class) + .orderByDesc(MeetingInnerProject::getUpdateOn) + .exists("select 1 from meeting m where m.id = meeting_inner_project.meeting_id " + + "and project_id = {0} and type = {1}", projectId, type) + .last(BizConst.LIMIT_1); + MeetingInnerProject projectReview = meetingInnerProjectService.getOne(query); + if (projectReview == null) { + return null; + } + return ProjectReviewResultBuilder.convert(projectReview); + } + private void buildOptionProjectQuery(LambdaQueryWrapper query, String meetingType, ProjectStatus status) { query.eq(Project::getStatus, status.getCode()); String sql = String.format("select 1 from meeting m inner join meeting_inner_project mip on" + diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/controller/ProjectReviewController.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/controller/ProjectReviewController.java new file mode 100644 index 0000000..a4b8df4 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/controller/ProjectReviewController.java @@ -0,0 +1,48 @@ +package com.hz.pm.api.projectdeclared.controller; + +import com.hz.pm.api.expert.model.vo.ProjectReviewDetailVO; +import com.hz.pm.api.projectdeclared.manage.ProjectReviewManage; +import com.hz.pm.api.projectdeclared.model.req.ProjectReviewApplyReq; +import com.hz.pm.api.projectlib.model.req.ProjectListReq; +import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; +import com.ningdatech.basic.model.PageVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * ProjectReviewController + *

+ * + * @author WendyYang + * @since 10:52 2024/4/17 + */ +@Api(tags = "项目评审控制器") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/projectReview") +public class ProjectReviewController { + + private final ProjectReviewManage projectReviewManage; + + @ApiOperation("提交项目评审申请") + @PostMapping(value = {"/submit", "resubmit"}) + public void projectReviewApply(@RequestBody ProjectReviewApplyReq req) { + projectReviewManage.projectReviewApply(req); + } + + @ApiOperation("项目评审详情") + @GetMapping("/detail/{projectId}") + public ProjectReviewDetailVO projectReviewDetail(@PathVariable Long projectId) { + return projectReviewManage.projectReviewDetail(projectId); + } + + @ApiOperation("项目评审列表") + @GetMapping("/pageReviewProject") + public PageVo pageReviewProject(ProjectListReq req) { + return projectReviewManage.pageReviewProject(req); + } + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/entity/ProjectReview.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/entity/ProjectReview.java new file mode 100644 index 0000000..c6117f7 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/entity/ProjectReview.java @@ -0,0 +1,58 @@ +package com.hz.pm.api.projectdeclared.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * 项目评审信息表 + *

+ * + * @author WendyYang + * @since 2024-04-17 + */ +@Data +@TableName("ND_PROJECT_REVIEW") +@ApiModel(value = "NdProjectReview对象") +public class ProjectReview { + + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + private Long projectId; + + private String projectCode; + + private String buildNecessity; + + private String needRationality; + + private String techFeasibility; + + private Short reviewResult; + + private String otherAdvices; + + private String investRationality; + + private BigDecimal suggestedFunding; + + private String attachFiles; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateOn; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long updateBy; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createOn; + + @TableField(fill = FieldFill.INSERT) + private Long createBy; + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java index 7dd0300..f7695b0 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java @@ -361,7 +361,8 @@ public class DeclaredProjectManage { if ((total = page.getTotal()) == 0) { return PageVo.empty(); } - List records = CollUtils.convert(page.getRecords(), w -> BeanUtil.copyProperties(w, ProjectLibListItemVO.class)); + List records = CollUtils.convert(page.getRecords(), + w -> BeanUtil.copyProperties(w, ProjectLibListItemVO.class)); return PageVo.of(records, total); } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java new file mode 100644 index 0000000..8145690 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ProjectReviewManage.java @@ -0,0 +1,158 @@ +package com.hz.pm.api.projectdeclared.manage; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum; +import com.hz.pm.api.common.model.constant.BizConst; +import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; +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.req.ProjectReviewApplyReq; +import com.hz.pm.api.projectdeclared.service.IProjectReviewService; +import com.hz.pm.api.projectlib.helper.ProjectHelper; +import com.hz.pm.api.projectlib.model.entity.Project; +import com.hz.pm.api.projectlib.model.entity.ProjectInst; +import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; +import com.hz.pm.api.projectlib.model.req.ProjectListReq; +import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; +import com.hz.pm.api.projectlib.service.IProjectInstService; +import com.hz.pm.api.projectlib.service.IProjectService; +import com.hz.pm.api.sys.manage.ProcessModelManage; +import com.hz.pm.api.user.security.model.UserFullInfoDTO; +import com.hz.pm.api.user.security.model.UserInfoDetails; +import com.hz.pm.api.user.util.LoginUserUtil; +import com.ningdatech.basic.exception.BizException; +import com.ningdatech.basic.model.PageVo; +import com.ningdatech.basic.util.CollUtils; +import com.wflow.bean.entity.WflowModels; +import com.wflow.workflow.bean.dto.OrgInfoDTO; +import com.wflow.workflow.bean.vo.ProcessStartParamsVo; +import com.wflow.workflow.service.ProcessInstanceService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + *

+ * ProjectReviewManage + *

+ * + * @author WendyYang + * @since 10:54 2024/4/17 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class ProjectReviewManage { + + private final IProjectReviewService projectReviewService; + private final ProcessModelManage processModelManage; + private final DeclaredProjectHelper declaredProjectHelper; + private final IProjectService projectService; + private final ProcessInstanceService processInstanceService; + private final IProjectInstService projectInstService; + private final ProjectStateMachineUtil projectStateMachineUtil; + + @Transactional(rollbackFor = Exception.class) + public synchronized void projectReviewApply(ProjectReviewApplyReq req) { + Project project = projectService.getById(req.getProjectId()); + if (!ProjectStatus.WITHOUT_PROJECT_REVIEW.eq(project.getStatus()) + && !ProjectStatus.PROJECT_REVIEW_FAILED.eq(project.getStatus())) { + throw BizException.wrap("该项目不允许申请项目评审"); + } + + UserInfoDetails user = LoginUserUtil.loginUserDetail(); + WflowModels model = processModelManage.getWflowModels(ProjectProcessStageEnum.PROJECT_REVIEW, + user.getMhUnitId()); + + if (Objects.isNull(model)) { + throw BizException.wrap("找不到项目评审流程配置"); + } + + ProcessStartParamsVo processParam = new ProcessStartParamsVo(); + processParam.setUser(declaredProjectHelper.buildUser(user)); + processParam.setProcessUsers(Collections.emptyMap()); + processParam.setFormData(Collections.emptyMap()); + // 获取发起单位、发起单位主管单位、发起单位上级主管条线单位信息 + Map orgMap = declaredProjectHelper.buildOrgModelMap(user.getUserId(), project); + String instanceId = processInstanceService.startProcessLs(model, processParam, orgMap); + + ProjectInst projectInst = new ProjectInst(); + projectInst.setInstCode(instanceId); + projectInst.setInstType(ProjectProcessStageEnum.PROJECT_REVIEW); + projectInst.setProjectId(req.getProjectId()); + projectInstService.save(projectInst); + projectStateMachineUtil.pass(project); + projectService.updateById(project); + ProjectReview projReview = projectReviewService.getOne(Wrappers + .lambdaQuery(ProjectReview.class) + .eq(ProjectReview::getProjectId, req.getProjectId()) + .orderByDesc(ProjectReview::getId) + .last(BizConst.LIMIT_1)); + if (projReview == null) { + projReview = new ProjectReview(); + projReview.setProjectCode(project.getProjectCode()); + } + BeanUtil.copyProperties(req, projReview); + projectReviewService.saveOrUpdate(projReview); + log.info("项目评审提交成功 【{}】", instanceId); + } + + public ProjectReviewDetailVO projectReviewDetail(Long projectId) { + ProjectReview projReview = projectReviewService.getOne(Wrappers + .lambdaQuery(ProjectReview.class) + .eq(ProjectReview::getProjectId, projectId) + .orderByDesc(ProjectReview::getId) + .last(BizConst.LIMIT_1)); + return BeanUtil.copyProperties(projReview, ProjectReviewDetailVO.class); + } + + /** + * 项目列表 + * + * @param req + * @return + */ + public PageVo pageReviewProject(ProjectListReq req) { + LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + query.in(Project::getProcessStatus, + ProjectStatus.WITHOUT_PROJECT_REVIEW.getCode(), + ProjectStatus.ON_PROJECT_REVIEW.getCode(), + ProjectStatus.PROJECT_REVIEW_FAILED.getCode()); + // 当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 + UserInfoDetails user = LoginUserUtil.loginUserDetail(); + preQuery(query, user); + query.eq(Project::getNewest, Boolean.TRUE); + Page page = projectService.page(req.page(), query); + long total; + if ((total = page.getTotal()) == 0) { + return PageVo.empty(); + } + List records = CollUtils.convert(page.getRecords(), + w -> BeanUtil.copyProperties(w, ProjectLibListItemVO.class)); + return PageVo.of(records, total); + } + + //当非预审申报的时候 是自己单位 当是预审申报的时候 要主管单位 并且他是单位管理员 + private void preQuery(LambdaQueryWrapper query, UserInfoDetails user) { + //如果当前登录是单位管理员 + String mhUnitId = user.getMhUnitIdStr(); + if (user.getIsOrgAdmin()) { + query.and(s1 -> s1.eq(Project::getSuperOrgCode, mhUnitId) + .or(q2 -> q2.eq(Project::getBuildOrgCode, mhUnitId))); + } else { + //否则 只能看到 非预审 并且 + query.and(q2 -> q2.eq(Project::getBuildOrgCode, mhUnitId)); + } + } + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java new file mode 100644 index 0000000..2bc1e7d --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.java @@ -0,0 +1,16 @@ +package com.hz.pm.api.projectdeclared.mapper; + +import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author WendyYang + * @since 2024-04-17 + */ +public interface ProjectReviewMapper extends BaseMapper { + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.xml b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.xml new file mode 100644 index 0000000..7d60282 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/mapper/ProjectReviewMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/req/ProjectReviewApplyReq.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/req/ProjectReviewApplyReq.java new file mode 100644 index 0000000..573983a --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/req/ProjectReviewApplyReq.java @@ -0,0 +1,21 @@ +package com.hz.pm.api.projectdeclared.model.req; + +import com.hz.pm.api.meeting.entity.req.ProjectReviewInfoReq; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * ProjectReviewApplyReq + *

+ * + * @author WendyYang + * @since 10:57 2024/4/17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProjectReviewApplyReq extends ProjectReviewInfoReq { + + private Long projectId; + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java new file mode 100644 index 0000000..e259de3 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/IProjectReviewService.java @@ -0,0 +1,16 @@ +package com.hz.pm.api.projectdeclared.service; + +import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author WendyYang + * @since 2024-04-17 + */ +public interface IProjectReviewService extends IService { + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java new file mode 100644 index 0000000..c950f10 --- /dev/null +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/service/impl/ProjectReviewServiceImpl.java @@ -0,0 +1,20 @@ +package com.hz.pm.api.projectdeclared.service.impl; + +import com.hz.pm.api.projectdeclared.entity.ProjectReview; +import com.hz.pm.api.projectdeclared.mapper.ProjectReviewMapper; +import com.hz.pm.api.projectdeclared.service.IProjectReviewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author WendyYang + * @since 2024-04-17 + */ +@Service +public class ProjectReviewServiceImpl extends ServiceImpl implements IProjectReviewService { + +} diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/controller/ProjectLibController.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/controller/ProjectLibController.java index a63f686..f480b0a 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/controller/ProjectLibController.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/controller/ProjectLibController.java @@ -2,7 +2,6 @@ package com.hz.pm.api.projectlib.controller; import com.alibaba.fastjson.JSONObject; import com.hz.pm.api.common.helper.UserInfoHelper; -import com.hz.pm.api.gov.model.vo.GovBizProjectDetailVO; import com.hz.pm.api.projectlib.manage.ProjectLibManage; import com.hz.pm.api.projectlib.model.req.ProjectApplicationListReq; import com.hz.pm.api.projectlib.model.req.ProjectListReq; @@ -38,7 +37,6 @@ import java.util.List; public class ProjectLibController { private final ProjectLibManage projectLibManage; - private final UserInfoHelper userInfoHelper; @GetMapping("/list") @@ -92,12 +90,6 @@ public class ProjectLibController { return projectLibManage.getProjectDetail(id); } - @GetMapping("/convert-to-collection/{projectCode}") - @ApiOperation("申报项目转化为项目归集") - public GovBizProjectDetailVO convertToCollection(@PathVariable String projectCode) { - return projectLibManage.convertToCollection(projectCode); - } - @GetMapping("/detail/{projectCode}") @ApiOperation("获取项目详情(编号)") public ProjectDetailVO detailProjectCode(@PathVariable String projectCode) { @@ -116,4 +108,5 @@ public class ProjectLibController { public void exportList(@Valid @RequestBody ProjectListReq param, HttpServletResponse response) { projectLibManage.exportList(param, response); } + } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java index 08bf2d5..bf3eed6 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectLibManage.java @@ -31,8 +31,6 @@ import com.hz.pm.api.expert.model.enumeration.ReviewTemplateTypeEnum; import com.hz.pm.api.expert.service.IExpertReviewService; import com.hz.pm.api.filemanage.model.entity.ProjectApplyBorrow; import com.hz.pm.api.filemanage.service.INdProjectApplyBorrowService; -import com.hz.pm.api.gov.model.vo.GovBizProjectDetailVO; -import com.hz.pm.api.gov.utils.ProjectConvertUtil; import com.hz.pm.api.performance.model.dto.ProjectCoreBusinessDTO; import com.hz.pm.api.performance.model.entity.ProjectCoreBusinessIndicators; import com.hz.pm.api.performance.service.IProjectCoreBusinessIndicatorsService; @@ -1545,15 +1543,4 @@ public class ProjectLibManage { } } - /** - * 申报项目转化为 项目归集 - * - * @param projectCode \ - * @return \ - */ - public GovBizProjectDetailVO convertToCollection(String projectCode) { - ProjectDetailVO projectDetailVO = this.detailProjectCode(projectCode); - return ProjectConvertUtil.declaredToCollection(projectDetailVO, fileService); - } - } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/enumeration/status/ProjectStatus.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/enumeration/status/ProjectStatus.java index 0bb5be6..bd8b848 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/enumeration/status/ProjectStatus.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/enumeration/status/ProjectStatus.java @@ -1,7 +1,6 @@ package com.hz.pm.api.projectlib.model.enumeration.status; import cn.hutool.core.util.StrUtil; -import com.hz.pm.api.gov.enumeration.GovProjectStatusEnum; import com.ningdatech.basic.exception.BizException; import lombok.AllArgsConstructor; import lombok.Getter; @@ -24,53 +23,52 @@ public enum ProjectStatus implements IStatus { /** * 项目阶段:未立项 */ - NOT_APPROVED(10000, "未立项", null), - TO_BE_DECLARED(10015, "待申报", null), + NOT_APPROVED(10000, "未立项"), + TO_BE_DECLARED(10015, "待申报"), /** * 合规性审查 */ - ON_COMPLIANCE_REVIEW(10030, "合规性审查中", null), - COMPLIANCE_REVIEW_FAILED(10031, "合规性审查不通过", null), + ON_COMPLIANCE_REVIEW(10030, "合规性审查中"), + COMPLIANCE_REVIEW_FAILED(10031, "合规性审查不通过"), /** * 项目评审 */ - WITHOUT_PROJECT_REVIEW(10040, "待项目评审", null), - ON_PROJECT_REVIEW(10041, "项目评审中", null), - PROJECT_REVIEW_FAILED(10042, "项目评审不通过", null), + WITHOUT_PROJECT_REVIEW(10040, "待项目评审"), + ON_PROJECT_REVIEW(10041, "项目评审中"), + PROJECT_REVIEW_FAILED(10042, "项目评审不通过"), - ON_ANNUAL_PLAN(10010, "年度计划中", null), + ON_ANNUAL_PLAN(10010, "年度计划中"), /** * 信产项目备案 */ - DECLARED_APPROVED_TO_BE_RECORD(10022, "待立项备案", null), - DECLARED_APPROVED_RECORD_AUDITING(10023, "立项备案审核中", null), - DECLARED_APPROVED_RECORD_FAILED(10024, "立项备案审核不通过", null), + DECLARED_APPROVED_TO_BE_RECORD(10022, "待立项备案"), + DECLARED_APPROVED_RECORD_AUDITING(10023, "立项备案审核中"), + DECLARED_APPROVED_RECORD_FAILED(10024, "立项备案审核不通过"), /** * 项目阶段:已立项 */ - PROJECT_APPROVED(20000, "已立项", null), - TO_BE_PURCHASED(20001, "待采购", GovProjectStatusEnum.APPROVED), - ON_PURCHASING(20007, "采购中", GovProjectStatusEnum.APPROVED), + PROJECT_APPROVED(20000, "已立项"), + TO_BE_PURCHASED(20001, "待采购"), + ON_PURCHASING(20007, "采购中"), - TO_BE_FIRST_INSPECTED(20008, "待上传初验材料", null), - ON_PILOT_RUNNING(20009, "试运行中", null), + TO_BE_FIRST_INSPECTED(20008, "待上传初验材料"), + ON_PILOT_RUNNING(20009, "试运行中"), - ON_FINALLY_INSPECTED(20004, "终验审核中", null), - FINALLY_INSPECTED_FAILED(20005, "终验审核不通过", null), + ON_FINALLY_INSPECTED(20004, "终验审核中"), + FINALLY_INSPECTED_FAILED(20005, "终验审核不通过"), /** * 项目阶段:已归档 */ - ARCHIVED(30000, "已归档", null), - ACCEPTED(30001, "已验收", GovProjectStatusEnum.HAS_FINAL_INS); + ARCHIVED(30000, "已归档"), + ACCEPTED(30001, "已验收"); private final Integer code; private final String desc; - private final GovProjectStatusEnum collectStatus; public static String getDesc(Integer code) { return get(code).flatMap(w -> Optional.of(w.getDesc())).orElse(StrUtil.EMPTY); diff --git a/hz-pm-gen/src/main/java/com/hz/pm/gen/config/CodeGen.java b/hz-pm-gen/src/main/java/com/hz/pm/gen/config/CodeGen.java index 6ab7056..901952d 100644 --- a/hz-pm-gen/src/main/java/com/hz/pm/gen/config/CodeGen.java +++ b/hz-pm-gen/src/main/java/com/hz/pm/gen/config/CodeGen.java @@ -55,7 +55,7 @@ public class CodeGen { } public static void main(String[] args) { - generate("WendyYang", "projectlib", PATH_YYD, "nd_purchase_status_change"); + generate("WendyYang", "projectdeclared", PATH_YYD, "nd_project_review"); } }