|
|
@@ -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); |
|
|
|