Browse Source

新增一个 只查询当前版本的方法

tags/24080901
PoffyZhang 1 year ago
parent
commit
9c0d9ceb0c
1 changed files with 93 additions and 4 deletions
  1. +93
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java

+ 93
- 4
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java View File

@@ -750,6 +750,95 @@ public class ProjectLibManage {
}

/**
* @param projectId 项目详情 不查询最新版本
* @return com.ningdatech.pmapi.projectlib.model.entity.vo.ProjectDetailVO
* @author ZPF
* @since 2023/02/11 11:15
*/
public ProjectDetailVO getProjectDetailThisVersion(Long projectId) {
// 查询最新的项目申报信息
Project projectInfo = projectService.getById(projectId);
if (Objects.isNull(projectInfo)) {
return null;
}
ProjectDetailVO vo = new ProjectDetailVO();
BeanUtils.copyProperties(projectInfo, vo);
vo.buildDynamicForm(projectInfo.getDynamicForm());
// 查询应用
List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectCode, vo.getProjectCode())
.eq(ProjectApplication::getIsConstruct,projectInfo.getIsConstruct()));

Optional.ofNullable(applications).ifPresent(apps ->
vo.setProjectApplications(CollUtils.convert(apps,
ProjectHelper::convertVO)
));

List<Long> allVersionProjectId = projectService.getAllVersionProjectId(projectInfo);
//查询采购备案
Purchase purchase = purchaseService.getOne(Wrappers.lambdaQuery(Purchase.class)
.in(Purchase::getProjectId, allVersionProjectId)
.last(BizConst.LIMIT_1));
vo.setPurchase(BeanUtil.copyProperties(purchase, PurchaseVO.class));

//查询合同备案
Contract contract = contractService.getOne(Wrappers.lambdaQuery(Contract.class)
.in(Contract::getProjectId, allVersionProjectId)
.last(BizConst.LIMIT_1));
ContractVO contractVO = BeanUtil.copyProperties(contract, ContractVO.class);
vo.setContract(contractVO);
List<PaymentPlan> payments = paymentPlanService.list(Wrappers.lambdaQuery(PaymentPlan.class)
.in(PaymentPlan::getProjectId, allVersionProjectId)
.orderByAsc(PaymentPlan::getPaymentTime));
if(Objects.nonNull(contractVO)){
contractVO.setPayments(convertPayments(payments,
contractVO.getTotalAmount()));
}


//查询初验信息
List<PreInsAcceptancePerson> acceptancePersons = acceptancePersonService.list(Wrappers.lambdaQuery(PreInsAcceptancePerson.class)
.in(PreInsAcceptancePerson::getProjectId, allVersionProjectId)
.orderByAsc(PreInsAcceptancePerson::getCreateOn));
vo.setAcceptancePersons(convertPersons(acceptancePersons));

//查询终验信息
//查询年度投资金额 要是已验收的项目
if (ProjectStatusEnum.ACCEPTED.getCode().equals(projectInfo.getStatus())) {
List<AnnualAmountVO> annualAmounts = Lists.newArrayList();
annualAmounts.add(AnnualAmountVO.builder()
.projectId(projectInfo.getId())
.projectYear(projectInfo.getProjectYear())
.annualAmount(projectInfo.getAnnualPlanAmount())
.build());
List<ProjectRenewalFundDeclaration> renewalDeclarations = renewalFundDeclarationService.list(Wrappers.lambdaQuery(ProjectRenewalFundDeclaration.class)
.eq(ProjectRenewalFundDeclaration::getProjectId, vo.getId())
.orderByAsc(ProjectRenewalFundDeclaration::getProjectYear));
Optional.ofNullable(renewalDeclarations).ifPresent(declarations ->
declarations.forEach(declaration -> {
annualAmounts.add(AnnualAmountVO.builder()
.projectId(projectInfo.getId())
.projectYear(declaration.getProjectYear())
.annualAmount(declaration.getAnnualPaymentAmount())
.build());
})
);
vo.setAnnualAccumulateAmountList(annualAmounts);
}
// 处理文件名
List<Long> fileIdList = new ArrayList<>();
BizUtils.notBlank(vo.getApprovedFile(), w -> fileIdList.add(Long.parseLong(w)));
BizUtils.notBlank(vo.getApprovedConstructionPlanFile(), w -> fileIdList.add(Long.parseLong(w)));
if (!fileIdList.isEmpty()) {
List<File> files = fileService.listByIds(fileIdList);
Map<String, String> fileMap = CollUtils.listToMap(files, w -> w.getId().toString(), File::getOriginalFileName);
vo.setApprovedFileName(fileMap.get(vo.getApprovedFile()));
vo.setApprovedConstructionPlanFileName(fileMap.get(vo.getApprovedConstructionPlanFile()));
}
return vo;
}

/**
* 获取项目初步方案详情
* @param projectId
* @return com.ningdatech.pmapi.projectlib.model.vo.ProjectDetailVO
@@ -1019,12 +1108,12 @@ public class ProjectLibManage {
}

List<ProjectDetailVO> basicProjects = historyProjects.stream()
.map(p -> this.getProjectDetail(p.getId()))
.filter(p -> !p.getIsConstruct())
.map(p -> this.getProjectDetailThisVersion(p.getId()))
.filter(p -> Objects.isNull(p.getIsConstruct()) || !p.getIsConstruct())
.collect(Collectors.toList());
List<ProjectDetailVO> constructProjects = historyProjects.stream()
.map(p -> this.getProjectDetail(p.getId()))
.filter(p -> p.getIsConstruct())
.map(p -> this.getProjectDetailThisVersion(p.getId()))
.filter(p -> Objects.nonNull(p.getIsConstruct()) && p.getIsConstruct())
.collect(Collectors.toList());
res.put(ProjectConstant.ProjectLib.PROJECT_BASIC,basicProjects);
res.put(ProjectConstant.ProjectLib.PROJECT_CONSTRUCT,constructProjects);


Loading…
Cancel
Save