diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/open/controller/OpenApiProjectLibController.java b/hz-pm-api/src/main/java/com/hz/pm/api/open/controller/OpenApiProjectLibController.java index 1c2741d..7adb8e5 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/open/controller/OpenApiProjectLibController.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/open/controller/OpenApiProjectLibController.java @@ -1,8 +1,8 @@ package com.hz.pm.api.open.controller; import com.hz.pm.api.open.manage.OpenApiProjectLibManage; -import com.hz.pm.api.open.model.po.ReviewPassProjectListPO; -import com.hz.pm.api.open.model.vo.ReviewPassProjectInfoToMhVO; +import com.hz.pm.api.open.model.po.MhSyncProjectListPO; +import com.hz.pm.api.open.model.vo.DeclaredProjectInfoToMhVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -28,9 +28,9 @@ public class OpenApiProjectLibController { private final OpenApiProjectLibManage openApiProjectLibManage; @PostMapping("/listReviewPassProject") - @ApiOperation("获取已复核通过的项目列表") - public List listReviewPassProject(@RequestBody @Valid ReviewPassProjectListPO po) { - return openApiProjectLibManage.listReviewPassProject(po); + @ApiOperation("获取所有已经申报的项目") + public List listDeclaredProjects(@RequestBody @Valid MhSyncProjectListPO po) { + return openApiProjectLibManage.listDeclaredProjects(po); } } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/open/manage/OpenApiProjectLibManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/open/manage/OpenApiProjectLibManage.java index f4db542..dbb9b74 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/open/manage/OpenApiProjectLibManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/open/manage/OpenApiProjectLibManage.java @@ -4,15 +4,15 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hz.pm.api.common.model.constant.ExistsSqlConst; +import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; import com.hz.pm.api.common.util.BizDateUtil; -import com.hz.pm.api.open.model.po.ReviewPassProjectListPO; +import com.hz.pm.api.open.model.po.MhSyncProjectListPO; import com.hz.pm.api.open.model.vo.ReferSystemReplaceInfoToMhVO; -import com.hz.pm.api.open.model.vo.ReviewPassProjectInfoToMhVO; +import com.hz.pm.api.open.model.vo.DeclaredProjectInfoToMhVO; import com.hz.pm.api.open.util.OpenApiCheckSignUtil; import com.hz.pm.api.projectlib.entity.MhSystemReplaceInfo; import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; 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.service.IMhSystemReplaceInfoService; import com.hz.pm.api.projectlib.service.IProjectGovSystemReplaceInfosService; import com.hz.pm.api.projectlib.service.IProjectService; @@ -48,19 +48,20 @@ public class OpenApiProjectLibManage { * @param po 参数 * @return 复核通过的项目 */ - public List listReviewPassProject(ReviewPassProjectListPO po) { + public List listDeclaredProjects(MhSyncProjectListPO po) { openApiCheckSignUtil.checkSign(po.getKey()); StringBuilder sql = new StringBuilder(ExistsSqlConst.PROJECT_EXISTS_STATUS_CHANGE) - .append(" and npsc.event = 'PROJECT_REVIEW_PASS'"); - if (po.getReviewPassTime() != null) { - sql.append(String.format(" and npsc.create_on >= '%s'", BizDateUtil.toDateStr(po.getReviewPassTime()))); + .append(StrUtil.format(" and npsc.event = '{}'", ProjectStateChangeEvent.PROJECT_APPLICATION_SUBMIT)); + if (po.getCreateOn() != null) { + sql.append(String.format(" and npsc.create_on >= '%s'", BizDateUtil.toDateStr(po.getCreateOn()))); } Wrapper query = Wrappers.lambdaQuery(Project.class) - .select(Project::getId, Project::getProjectCode, Project::getProjectName, Project::getBuildOrgCode, Project::getStatus, - Project::getDeclareAmount, Project::getProjectYear, Project::getCreateOn, Project::getBuildOrgName) - .exists(sql.toString()) + .select(Project::getId, Project::getProjectCode, Project::getProjectName, Project::getBuildOrgCode, + Project::getStatus, Project::getReviewAmount, Project::getDeclareAmount, Project::getProjectYear, + Project::getCreateOn, Project::getBuildOrgName) .eq(Project::getNewest, Boolean.TRUE) - .notIn(Project::getStage, ProjectStatus.CHANGE.getCode(), ProjectStatus.STOPPED.getCode()) + .exists(sql.toString()) + .eq(po.getProjectYear() != null, Project::getProjectYear, po.getProjectYear()) .orderByDesc(Project::getCreateOn); List projects = projectService.list(query); if (projects.isEmpty()) { @@ -83,7 +84,9 @@ public class OpenApiProjectLibManage { } return projects.stream().map(w -> { - ReviewPassProjectInfoToMhVO item = new ReviewPassProjectInfoToMhVO(); + DeclaredProjectInfoToMhVO item = new DeclaredProjectInfoToMhVO(); + item.setId(w.getId()); + item.setStatus(w.getStatus()); item.setCreateOn(w.getCreateOn()); item.setProjectYear(w.getProjectYear()); item.setProjectCode(w.getProjectCode()); @@ -91,8 +94,7 @@ public class OpenApiProjectLibManage { item.setBuildOrgCode(w.getBuildOrgCode()); item.setBuildOrgName(w.getBuildOrgName()); item.setDeclareAmount(w.getDeclareAmount()); - item.setStatus(w.getStatus()); - item.setId(w.getId()); + item.setReviewAmount(w.getReviewAmount()); List replaceInfoList = replaceInfoMap.get(w.getProjectCode()); if (replaceInfoList != null) { List referSystemList = CollUtils.convert(replaceInfoList, @@ -112,5 +114,4 @@ public class OpenApiProjectLibManage { }).collect(Collectors.toList()); } - } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/open/model/po/ReviewPassProjectListPO.java b/hz-pm-api/src/main/java/com/hz/pm/api/open/model/po/MhSyncProjectListPO.java similarity index 69% rename from hz-pm-api/src/main/java/com/hz/pm/api/open/model/po/ReviewPassProjectListPO.java rename to hz-pm-api/src/main/java/com/hz/pm/api/open/model/po/MhSyncProjectListPO.java index aba4d58..61c97dc 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/open/model/po/ReviewPassProjectListPO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/open/model/po/MhSyncProjectListPO.java @@ -15,13 +15,16 @@ import java.time.LocalDateTime; * @since 10:59 2024/11/7 */ @Data -public class ReviewPassProjectListPO { +public class MhSyncProjectListPO { @ApiModelProperty("校验公钥") @NotBlank(message = "秘钥不能为空") private String key; - @ApiModelProperty("复核通过时间") - private LocalDateTime reviewPassTime; + @ApiModelProperty("申报时间") + private LocalDateTime createOn; + + @ApiModelProperty("项目年度") + private Integer projectYear; } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/open/model/vo/ReviewPassProjectInfoToMhVO.java b/hz-pm-api/src/main/java/com/hz/pm/api/open/model/vo/DeclaredProjectInfoToMhVO.java similarity index 81% rename from hz-pm-api/src/main/java/com/hz/pm/api/open/model/vo/ReviewPassProjectInfoToMhVO.java rename to hz-pm-api/src/main/java/com/hz/pm/api/open/model/vo/DeclaredProjectInfoToMhVO.java index 34a91bd..844930b 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/open/model/vo/ReviewPassProjectInfoToMhVO.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/open/model/vo/DeclaredProjectInfoToMhVO.java @@ -2,7 +2,9 @@ package com.hz.pm.api.open.model.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; +import lombok.experimental.Tolerate; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -17,7 +19,13 @@ import java.util.List; * @since 10:14 2024/11/7 */ @Data -public class ReviewPassProjectInfoToMhVO { +@Builder +public class DeclaredProjectInfoToMhVO { + + @Tolerate + public DeclaredProjectInfoToMhVO() { + // 无参构造 + } @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -41,6 +49,9 @@ public class ReviewPassProjectInfoToMhVO { @ApiModelProperty("申报金额") private BigDecimal declareAmount; + @ApiModelProperty("评审金额") + private BigDecimal reviewAmount; + @ApiModelProperty("项目状态") private Integer status; diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java index ed7e7c7..596e497 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/manage/WorkbenchManage.java @@ -769,23 +769,28 @@ public class WorkbenchManage { .ge(req.getApproveAmountMin() != null, Project::getApprovalAmount, req.getApproveAmountMin()) .le(req.getApproveAmountMax() != null, Project::getApprovalAmount, req.getApproveAmountMax()) .eq(req.getUnitStrip() != null, Project::getUnitStrip, req.getUnitStrip()) - .exists(StrUtil.isNotBlank(req.getSourceSystem()), ExistsSqlConst.PROJECT_EXISTS_SYSTEM_REPLACE_INFOS - + " and source_system like {0}", StrUtil.format("%{}%", req.getSourceSystem())) .exists(req.getBidStatus() != null, ExistsSqlConst.PROJECT_EXISTS_PURCHASE + " and status = {0}", req.getBidStatus()) .eq(Project::getNewest, Boolean.TRUE) .orderByDesc(Project::getUpdateOn); - if (req.getIsInMhSystemReplaceInfos() != null) { - if (Boolean.TRUE.equals(req.getIsInMhSystemReplaceInfos())) { - query.exists(ExistsSqlConst.PROJECT_EXISTS_SYSTEM_REPLACE_INFOS + " and LENGTH(NVL(source_system_id,'')) > 0"); - } else { - query.notExists(ExistsSqlConst.PROJECT_EXISTS_SYSTEM_REPLACE_INFOS + " and LENGTH(NVL(source_system_id,'')) > 0"); - } - } List unitIds = unitQueryState.getUnitIds(); if (CollUtil.isNotEmpty(unitIds)) { query.in(Project::getBuildOrgCode, CollUtils.convert(unitIds, String::valueOf)); } + if (req.getReplaceType() != null || StrUtil.isNotBlank(req.getSourceSystem()) || req.getIsInMhSystemReplaceInfos() != null) { + StringBuilder sql = new StringBuilder(); + if (req.getReplaceType() != null) { + sql.append(StrUtil.format(" and npgsri.replace_type = '{}'", req.getReplaceType())); + } + if (StrUtil.isNotBlank(req.getSourceSystem())) { + sql.append(StrUtil.format(" and npgsri.source_system like '%{}%'", req.getSourceSystem())); + } + if (req.getIsInMhSystemReplaceInfos() != null) { + char symbol = (Boolean.TRUE.equals(req.getIsInMhSystemReplaceInfos()) ? '>' : '='); + sql.append(" and LENGTH(NVL(source_system_id,'')) ").append(symbol).append(" 0"); + } + query.exists(ExistsSqlConst.PROJECT_EXISTS_SYSTEM_REPLACE_INFOS + sql); + } return query; } diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/model/WorkbenchProjectLibReq.java b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/model/WorkbenchProjectLibReq.java index 351f4ab..a2c05e4 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/workbench/model/WorkbenchProjectLibReq.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/workbench/model/WorkbenchProjectLibReq.java @@ -61,4 +61,7 @@ public class WorkbenchProjectLibReq extends PagePo { @ApiModelProperty("是否计划内系统") private Boolean isInMhSystemReplaceInfos; + @ApiModelProperty("替代类型") + private Integer replaceType; + }