@@ -55,4 +55,10 @@ public interface IExpertReviewService extends IService<ExpertReview> { | |||||
**/ | **/ | ||||
List<ExpertReview> listFinalReview(Long meetingId); | List<ExpertReview> listFinalReview(Long meetingId); | ||||
/** | |||||
* 查某个项目 某一个 阶段的 最终会议 | |||||
* @param meetingType | |||||
* @return | |||||
*/ | |||||
ExpertReview getFinalReview(String projectCode,Integer meetingType); | |||||
} | } |
@@ -1,5 +1,6 @@ | |||||
package com.ningdatech.pmapi.expert.service.impl; | package com.ningdatech.pmapi.expert.service.impl; | ||||
import cn.hutool.core.collection.CollUtil; | |||||
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.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
@@ -7,11 +8,16 @@ import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.pmapi.common.constant.BizConst; | import com.ningdatech.pmapi.common.constant.BizConst; | ||||
import com.ningdatech.pmapi.expert.mapper.ExpertReviewMapper; | import com.ningdatech.pmapi.expert.mapper.ExpertReviewMapper; | ||||
import com.ningdatech.pmapi.expert.model.entity.ExpertReview; | import com.ningdatech.pmapi.expert.model.entity.ExpertReview; | ||||
import com.ningdatech.pmapi.expert.model.enumeration.ReviewTemplateTypeEnum; | |||||
import com.ningdatech.pmapi.expert.service.IExpertReviewService; | import com.ningdatech.pmapi.expert.service.IExpertReviewService; | ||||
import com.ningdatech.pmapi.meeting.entity.domain.Meeting; | |||||
import com.ningdatech.pmapi.meeting.mapper.MeetingMapper; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.stream.Collectors; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -22,8 +28,11 @@ import java.util.Map; | |||||
* @since 2023-02-15 | * @since 2023-02-15 | ||||
*/ | */ | ||||
@Service | @Service | ||||
@RequiredArgsConstructor | |||||
public class ExpertReviewServiceImpl extends ServiceImpl<ExpertReviewMapper, ExpertReview> implements IExpertReviewService { | public class ExpertReviewServiceImpl extends ServiceImpl<ExpertReviewMapper, ExpertReview> implements IExpertReviewService { | ||||
private final MeetingMapper meetingMapper; | |||||
@Override | @Override | ||||
public List<ExpertReview> listByProjectIdAndExpertId(Long projectId, Long expertId, Long meetingId) { | public List<ExpertReview> listByProjectIdAndExpertId(Long projectId, Long expertId, Long meetingId) { | ||||
LambdaQueryWrapper<ExpertReview> query = Wrappers.lambdaQuery(ExpertReview.class); | LambdaQueryWrapper<ExpertReview> query = Wrappers.lambdaQuery(ExpertReview.class); | ||||
@@ -57,4 +66,22 @@ public class ExpertReviewServiceImpl extends ServiceImpl<ExpertReviewMapper, Exp | |||||
return list(query); | return list(query); | ||||
} | } | ||||
@Override | |||||
public ExpertReview getFinalReview(String projectCode, Integer meetingType) { | |||||
List<Meeting> constructMeetings = meetingMapper.selectList(Wrappers.lambdaQuery(Meeting.class) | |||||
.select(Meeting::getId) | |||||
.eq(Meeting::getType, meetingType)); | |||||
List<Long> meetingIds = constructMeetings.stream() | |||||
.map(Meeting::getId).collect(Collectors.toList()); | |||||
ExpertReview expertReview = null; | |||||
if(CollUtil.isNotEmpty(meetingIds)){ | |||||
expertReview = this.getOne(Wrappers.lambdaQuery(ExpertReview.class) | |||||
.eq(ExpertReview::getProjectCode, projectCode) | |||||
.eq(ExpertReview::getIsFinal, Boolean.TRUE) | |||||
.in(ExpertReview::getMeetingId,meetingIds) | |||||
.last(BizConst.LIMIT_1)); | |||||
} | |||||
return expertReview; | |||||
} | |||||
} | } |
@@ -4,25 +4,19 @@ import cn.hutool.core.collection.CollUtil; | |||||
import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||
import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
import com.github.xiaoymin.knife4j.core.util.CommonUtils; | |||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import com.ningdatech.basic.util.StrPool; | import com.ningdatech.basic.util.StrPool; | ||||
import com.ningdatech.pmapi.common.constant.RegionConst; | import com.ningdatech.pmapi.common.constant.RegionConst; | ||||
import com.ningdatech.pmapi.common.util.BizUtils; | import com.ningdatech.pmapi.common.util.BizUtils; | ||||
import com.ningdatech.pmapi.gov.enumeration.GovProjectClassifiedEnum; | import com.ningdatech.pmapi.gov.enumeration.GovProjectClassifiedEnum; | ||||
import com.ningdatech.pmapi.gov.manage.GovProjectCollectionManage; | |||||
import com.ningdatech.pmapi.gov.model.vo.*; | import com.ningdatech.pmapi.gov.model.vo.*; | ||||
import com.ningdatech.pmapi.projectdeclared.model.vo.PurchaseVO; | import com.ningdatech.pmapi.projectdeclared.model.vo.PurchaseVO; | ||||
import com.ningdatech.pmapi.projectlib.model.entity.Project; | |||||
import com.ningdatech.pmapi.projectlib.enumeration.ProjectTypeNewEnum; | |||||
import com.ningdatech.pmapi.projectlib.model.vo.ProjectApplicationVO; | import com.ningdatech.pmapi.projectlib.model.vo.ProjectApplicationVO; | ||||
import com.ningdatech.pmapi.projectlib.model.vo.ProjectDetailVO; | import com.ningdatech.pmapi.projectlib.model.vo.ProjectDetailVO; | ||||
import lombok.RequiredArgsConstructor; | |||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.stereotype.Component; | |||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDateTime; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
@@ -34,18 +28,14 @@ import java.util.stream.Collectors; | |||||
* @Author PoffyZhang | * @Author PoffyZhang | ||||
*/ | */ | ||||
@Slf4j | @Slf4j | ||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class ProjectConvertUtil { | public class ProjectConvertUtil { | ||||
private final GovProjectCollectionManage collectionManage; | |||||
/** | /** | ||||
* 申报项目 转为 项目归集 | * 申报项目 转为 项目归集 | ||||
* @param project | * @param project | ||||
* @return | * @return | ||||
*/ | */ | ||||
public GovBizProjectDetailVO declaredToCollection(ProjectDetailVO project){ | |||||
public static GovBizProjectDetailVO declaredToCollection(ProjectDetailVO project){ | |||||
GovBizProjectDetailVO projectCollection = new GovBizProjectDetailVO(); | GovBizProjectDetailVO projectCollection = new GovBizProjectDetailVO(); | ||||
if(Objects.isNull(project)){ | if(Objects.isNull(project)){ | ||||
return projectCollection; | return projectCollection; | ||||
@@ -57,14 +47,29 @@ public class ProjectConvertUtil { | |||||
projectCollection.setBaseinfo(buildBaseinfo(project)); | projectCollection.setBaseinfo(buildBaseinfo(project)); | ||||
projectCollection.setApply(buildApply(project)); | projectCollection.setApply(buildApply(project)); | ||||
projectCollection.setApprove(buildApprove(project)); | projectCollection.setApprove(buildApprove(project)); | ||||
projectCollection.setCimplement(buildCim(project)); | |||||
projectCollection.setMimplement(buildMim(project)); | |||||
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)); | projectCollection.setProcures(buildProcure(project)); | ||||
return projectCollection; | return projectCollection; | ||||
} | } | ||||
//转化基本信息 | //转化基本信息 | ||||
private GovBizProjectBaseinfoVO buildBaseinfo(ProjectDetailVO project) { | |||||
private static GovBizProjectBaseinfoVO buildBaseinfo(ProjectDetailVO project) { | |||||
GovBizProjectBaseinfoVO baseinfo = new GovBizProjectBaseinfoVO(); | GovBizProjectBaseinfoVO baseinfo = new GovBizProjectBaseinfoVO(); | ||||
baseinfo.setBaseProjId(project.getProjectCode()); | baseinfo.setBaseProjId(project.getProjectCode()); | ||||
baseinfo.setBaseProjName(project.getProjectName()); | baseinfo.setBaseProjName(project.getProjectName()); | ||||
@@ -94,7 +99,7 @@ public class ProjectConvertUtil { | |||||
} | } | ||||
//转化申报信息 | //转化申报信息 | ||||
private GovBizProjectApplyVO buildApply(ProjectDetailVO project) { | |||||
private static GovBizProjectApplyVO buildApply(ProjectDetailVO project) { | |||||
GovBizProjectApplyVO apply = new GovBizProjectApplyVO(); | GovBizProjectApplyVO apply = new GovBizProjectApplyVO(); | ||||
apply.setBaseProjId(project.getProjectCode()); | apply.setBaseProjId(project.getProjectCode()); | ||||
apply.setBaseProjName(project.getProjectName()); | apply.setBaseProjName(project.getProjectName()); | ||||
@@ -115,7 +120,9 @@ public class ProjectConvertUtil { | |||||
} | } | ||||
return app.getAppCode(); | return app.getAppCode(); | ||||
}).collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); | }).collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); | ||||
String accountName = projectApplications.stream().map(app -> app.getAccountAppName()) | |||||
String accountName = projectApplications.stream() | |||||
.map(app -> StringUtils.isNotBlank(app.getAccountAppName()) ? app.getAccountAppName() : null) | |||||
.filter(Objects::nonNull) | |||||
.collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); | .collect(Collectors.joining(StrPool.SEMICOLON_CHINA)); | ||||
apply.setBaseAccountAppName(accountName); | apply.setBaseAccountAppName(accountName); | ||||
apply.setBaseProjSys(appName); | apply.setBaseProjSys(appName); | ||||
@@ -174,7 +181,7 @@ public class ProjectConvertUtil { | |||||
} | } | ||||
//转化审批信息 | //转化审批信息 | ||||
private GovBizProjectApproveVO buildApprove(ProjectDetailVO project) { | |||||
private static GovBizProjectApproveVO buildApprove(ProjectDetailVO project) { | |||||
GovBizProjectApproveVO approve = new GovBizProjectApproveVO(); | GovBizProjectApproveVO approve = new GovBizProjectApproveVO(); | ||||
approve.setBaseProjId(project.getProjectCode()); | approve.setBaseProjId(project.getProjectCode()); | ||||
approve.setBaseProjName(project.getProjectName()); | approve.setBaseProjName(project.getProjectName()); | ||||
@@ -212,28 +219,28 @@ public class ProjectConvertUtil { | |||||
.ifPresent(j -> approve.setReleaseYearMoney(j)); | .ifPresent(j -> approve.setReleaseYearMoney(j)); | ||||
} | } | ||||
return approve; | return approve; | ||||
} | } | ||||
//转化建设 实施 | //转化建设 实施 | ||||
private GovBizProjectCimplementVO buildCim(ProjectDetailVO project) { | |||||
private static GovBizProjectCimplementVO buildCim(ProjectDetailVO project) { | |||||
GovBizProjectCimplementVO cim = new GovBizProjectCimplementVO(); | GovBizProjectCimplementVO cim = new GovBizProjectCimplementVO(); | ||||
return cim; | return cim; | ||||
} | } | ||||
//转化运维实施 | //转化运维实施 | ||||
private GovBizProjectMimplementVO buildMim(ProjectDetailVO project) { | |||||
private static GovBizProjectMimplementVO buildMim(ProjectDetailVO project) { | |||||
GovBizProjectMimplementVO mim = new GovBizProjectMimplementVO(); | GovBizProjectMimplementVO mim = new GovBizProjectMimplementVO(); | ||||
return mim; | return mim; | ||||
} | } | ||||
//转化采购信息 | //转化采购信息 | ||||
private List<GovBizProjectProcureVO> buildProcure(ProjectDetailVO project) { | |||||
private static List<GovBizProjectProcureVO> buildProcure(ProjectDetailVO project) { | |||||
List<GovBizProjectProcureVO> procures = Lists.newArrayList(); | List<GovBizProjectProcureVO> procures = Lists.newArrayList(); | ||||
return procures; | return procures; | ||||
} | } | ||||
} | } |
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; | |||||
import com.ningdatech.basic.model.PageVo; | import com.ningdatech.basic.model.PageVo; | ||||
import com.ningdatech.log.annotation.WebLog; | import com.ningdatech.log.annotation.WebLog; | ||||
import com.ningdatech.pmapi.common.helper.UserInfoHelper; | import com.ningdatech.pmapi.common.helper.UserInfoHelper; | ||||
import com.ningdatech.pmapi.gov.model.vo.GovBizProjectDetailVO; | |||||
import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | ||||
import com.ningdatech.pmapi.projectlib.model.req.ProjectApplicationListReq; | import com.ningdatech.pmapi.projectlib.model.req.ProjectApplicationListReq; | ||||
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | ||||
@@ -91,6 +92,12 @@ public class ProjectLibController { | |||||
return projectLibManage.getProjectDetail(id); | return projectLibManage.getProjectDetail(id); | ||||
} | } | ||||
@GetMapping("/convert-to-collection/{projectCode}") | |||||
@ApiOperation("申报项目转化为项目归集") | |||||
public GovBizProjectDetailVO convertToCollection(@PathVariable String projectCode){ | |||||
return projectLibManage.convertToCollection(projectCode); | |||||
} | |||||
@GetMapping("/detail/{projectCode}") | @GetMapping("/detail/{projectCode}") | ||||
@ApiOperation("获取项目详情(编号)") | @ApiOperation("获取项目详情(编号)") | ||||
public ProjectDetailVO detailProjectCode (@PathVariable String projectCode){ | public ProjectDetailVO detailProjectCode (@PathVariable String projectCode){ | ||||
@@ -42,4 +42,16 @@ public enum ProjectTypeNewEnum { | |||||
} | } | ||||
return StringUtils.EMPTY; | return StringUtils.EMPTY; | ||||
} | } | ||||
public static ProjectTypeNewEnum match(String code) { | |||||
if (StringUtils.isBlank(code)) { | |||||
return null; | |||||
} | |||||
for (ProjectTypeNewEnum t : ProjectTypeNewEnum.values()) { | |||||
if (code.equals(t.getCode())) { | |||||
return t; | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
} | } |
@@ -33,9 +33,14 @@ import com.ningdatech.pmapi.dashboard.handle.ProjectStatusHandler; | |||||
import com.ningdatech.pmapi.datascope.model.DataScopeDTO; | import com.ningdatech.pmapi.datascope.model.DataScopeDTO; | ||||
import com.ningdatech.pmapi.datascope.utils.DataScopeUtil; | import com.ningdatech.pmapi.datascope.utils.DataScopeUtil; | ||||
import com.ningdatech.pmapi.expert.model.entity.ExpertReview; | import com.ningdatech.pmapi.expert.model.entity.ExpertReview; | ||||
import com.ningdatech.pmapi.expert.model.enumeration.ReviewTemplateTypeEnum; | |||||
import com.ningdatech.pmapi.expert.service.IExpertReviewService; | import com.ningdatech.pmapi.expert.service.IExpertReviewService; | ||||
import com.ningdatech.pmapi.filemanage.model.entity.ProjectApplyBorrow; | import com.ningdatech.pmapi.filemanage.model.entity.ProjectApplyBorrow; | ||||
import com.ningdatech.pmapi.filemanage.service.INdProjectApplyBorrowService; | import com.ningdatech.pmapi.filemanage.service.INdProjectApplyBorrowService; | ||||
import com.ningdatech.pmapi.gov.model.vo.GovBizProjectDetailVO; | |||||
import com.ningdatech.pmapi.gov.utils.ProjectConvertUtil; | |||||
import com.ningdatech.pmapi.meeting.entity.domain.Meeting; | |||||
import com.ningdatech.pmapi.meeting.service.IMeetingService; | |||||
import com.ningdatech.pmapi.organization.model.entity.DingOrganization; | import com.ningdatech.pmapi.organization.model.entity.DingOrganization; | ||||
import com.ningdatech.pmapi.organization.service.IDingOrganizationService; | import com.ningdatech.pmapi.organization.service.IDingOrganizationService; | ||||
import com.ningdatech.pmapi.performance.model.dto.ProjectCoreBusinessDTO; | import com.ningdatech.pmapi.performance.model.dto.ProjectCoreBusinessDTO; | ||||
@@ -146,6 +151,8 @@ public class ProjectLibManage { | |||||
private final IExpertReviewService expertReviewService; | private final IExpertReviewService expertReviewService; | ||||
private final IMeetingService meetingService; | |||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | ||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
@@ -826,14 +833,13 @@ public class ProjectLibManage { | |||||
vo.setApprovedFileName(fileMap.get(vo.getApprovedFile())); | vo.setApprovedFileName(fileMap.get(vo.getApprovedFile())); | ||||
vo.setApprovedConstructionPlanFileName(fileMap.get(vo.getApprovedConstructionPlanFile())); | vo.setApprovedConstructionPlanFileName(fileMap.get(vo.getApprovedConstructionPlanFile())); | ||||
} | } | ||||
//专家评审 其它建议 | |||||
ExpertReview expertReview = expertReviewService.getOne(Wrappers.lambdaQuery(ExpertReview.class) | |||||
.eq(ExpertReview::getProjectCode, projectInfo.getProjectCode()) | |||||
.eq(ExpertReview::getIsFinal, Boolean.TRUE) | |||||
.last(BizConst.LIMIT_1)); | |||||
if(Objects.nonNull(expertReview)){ | |||||
vo.setProposeAttach(expertReview.getOtherAdvice()); | |||||
vo.setBaseReviewResults(expertReview.getReviewResult()); | |||||
//专家评审 其它建议 -> 建设方案的会议 | |||||
ExpertReview finalReview = expertReviewService.getFinalReview(projectInfo.getProjectCode(), | |||||
ReviewTemplateTypeEnum.CONSTRUCTION_SCHEME_REVIEW.getCode()); | |||||
if(Objects.nonNull(finalReview)){ | |||||
vo.setProposeAttach(finalReview.getOtherAdvice()); | |||||
vo.setBaseReviewResults(finalReview.getReviewResult()); | |||||
} | } | ||||
return vo; | return vo; | ||||
} | } | ||||
@@ -1695,5 +1701,13 @@ public class ProjectLibManage { | |||||
} | } | ||||
} | } | ||||
/** | |||||
* 申报项目转化为 项目归集 | |||||
* @param projectCode | |||||
* @return | |||||
*/ | |||||
public GovBizProjectDetailVO convertToCollection(String projectCode) { | |||||
ProjectDetailVO projectDetailVO = this.detailProjectCode(projectCode); | |||||
return ProjectConvertUtil.declaredToCollection(projectDetailVO); | |||||
} | |||||
} | } |