From 14f337107d4839d581108a0ed5f024077e58e611 Mon Sep 17 00:00:00 2001 From: dxc Date: Thu, 8 Apr 2021 08:43:11 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E9=9B=86=E5=90=88?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98=202?= =?UTF-8?q?=E3=80=81=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=B1=95=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DictProjectServiceImpl.java | 2 +- .../entity/ebpentity/PurpBaseInfoVO.java | 6 ++ .../ProjectEntrustInquiryServiceImpl.java | 6 +- .../impl/ProjectEntrustServiceImpl.java | 4 +- .../impl/ProjectExceptionServiceImpl.java | 14 ++--- .../projectrecord/entity/ProjectRecordVO.java | 5 ++ .../service/IProjectRecordService.java | 8 +++ .../impl/ProjectRecordServiceImpl.java | 60 +++++++++++++++++-- .../impl/ProjectReEvaluationServiceImpl.java | 4 +- .../controller/ProjectSectionController.java | 14 ++++- .../dao/mapper/ProjectSectionMapper.xml | 4 +- .../entity/ProjectSectionVO.java | 10 ++++ .../service/IProjectSectionService.java | 14 +++++ .../impl/ProjectSectionServiceImpl.java | 43 ++++++++++++- 14 files changed, 168 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/dict/service/impl/DictProjectServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/dict/service/impl/DictProjectServiceImpl.java index a356c33..7c1eba9 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/dict/service/impl/DictProjectServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/dict/service/impl/DictProjectServiceImpl.java @@ -67,7 +67,7 @@ public class DictProjectServiceImpl extends BaseServiceImpl dictProjectList = getDictList(parentCode,toParentCode); - if(!dictProjectList.isEmpty()){ + if(null != dictProjectList && !dictProjectList.isEmpty()){ dictProject = dictProjectList.stream().filter(n -> n.getCode().equals(code)).collect(Collectors.toList()).get(0); } return dictProject; diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ebpentity/PurpBaseInfoVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ebpentity/PurpBaseInfoVO.java index eb85197..cf8fa48 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ebpentity/PurpBaseInfoVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ebpentity/PurpBaseInfoVO.java @@ -187,4 +187,10 @@ public class PurpBaseInfoVO { @ApiModelProperty(value = "是否展示按钮") private String isDeleteShow; + + @ApiModelProperty("机构code") + private String companyCode; + + @ApiModelProperty("机构名称") + private String company; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java index c35d247..7615376 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java @@ -238,11 +238,11 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl purpBaseInfoVOList = implementSendVO.getPurpBaseInfoVoList(); - if(purpBaseInfoVOList.isEmpty()){ + if(null == purpBaseInfoVOList || purpBaseInfoVOList.isEmpty()){ ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_PURP_BASE_INFO_VO_EMPTY.throwException(); } @@ -576,7 +576,7 @@ public class ProjectEntrustServiceImpl extends BaseServiceImpl projSuppRelVOList = purpBaseInfo.getProjBaseInfoVO().getProjSuppRelVOList(); - if(!projSuppRelVOList.isEmpty()){ + if(null != projSuppRelVOList && !projSuppRelVOList.isEmpty()){ Long suppIdCount = projSuppRelVOList.stream().filter(n -> null == n.getSuppId()).count(); if(suppIdCount > 0){ ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_SUPP_REL_VO_LIST_EMPTY.throwException(); diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java index ff7c0ba..8a64fd0 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectexception/service/impl/ProjectExceptionServiceImpl.java @@ -178,7 +178,7 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl sectionExceptionList = sectionExceptionService.list(sectionExceptionQueryWrapper); //异常标段信息为空报异常 - if(sectionExceptionList.isEmpty()){ + if(null == sectionExceptionList || sectionExceptionList.isEmpty()){ ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_EXCEPTION_UPDATE_ERROR.throwException(); } @@ -330,7 +330,7 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl supplierList = sectionSupplierMap.get(section.getId()); - if (!supplierList.isEmpty()) { + if (null != supplierList && !supplierList.isEmpty()) { for (SectionSupplier supplier : supplierList) { supplier.setSectionId(section.getId()); supplier.setProjectId(projectRecord.getId()); @@ -342,7 +342,7 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl materialList = sectionMaterialMap.get(section.getId()); - if (!materialList.isEmpty()) { + if (null != materialList && !materialList.isEmpty()) { for (SectionMaterial material : materialList) { material.setSectionId(section.getId()); material.setProjectId(projectRecord.getId()); @@ -361,12 +361,12 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl annoVOList = resultMap.get(vo.getId()); - if(!annoVOList.isEmpty()){ + if(null != annoVOList && !annoVOList.isEmpty()){ vo.setSendMessageStatus(annoVOList.get(0).getStatus()); vo.setSendMessageId(annoVOList.get(0).getId()); }else{ @@ -542,7 +542,7 @@ public class ProjectExceptionServiceImpl extends BaseServiceImpl> bidResponse = ebtpMallBidApi.getAnnoStatus(exceptionIds); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(bidResponse.getMessage(), !bidResponse.isSuccess()); List annoVOList = bidResponse.getData(); - if(!annoVOList.isEmpty()){ + if(null != annoVOList && !annoVOList.isEmpty()){ if(ProjectCommonUtil.SEND_MESSAGE_STATUS_5 != annoVOList.get(0).getStatus()){ ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_EXCEPTION_STATUS_ERROR.throwException(); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java index c6c7137..0061b13 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler; +import com.chinaunicom.mall.ebtp.project.projectsection.entity.ProjectSectionVO; import com.chinaunicom.mall.ebtp.project.sectionmaterial.entity.SectionMaterial; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; @@ -14,6 +15,7 @@ import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -71,4 +73,7 @@ public class ProjectRecordVO extends ProjectRecord implements Serializable { @ApiModelProperty(value = "不等于的状态字段") private Integer neStatus; + + @ApiModelProperty(value = "项目下的第一个标段") + private ProjectSectionVO sectionFirst; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java index b0ece1a..eb74a6a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java @@ -151,4 +151,12 @@ public interface IProjectRecordService extends IBaseService{ * @return 返回结果 */ IPage getPageByPurchase(ProjectRecordVO projectRecord); + + /** + * 获取标段信息进度比 + * @param businessModule 标段环节 + * @param vo 项目信息 + * @return 返回结果 + */ + BigDecimal getLinkPercentage(Integer businessModule, ProjectRecordVO vo); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java index 4ac9be7..e55563e 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java @@ -25,6 +25,7 @@ import com.chinaunicom.mall.ebtp.project.dictchooseprocess.entity.DictChooseProc import com.chinaunicom.mall.ebtp.project.dictchooseprocess.service.IDictChooseProcessService; import com.chinaunicom.mall.ebtp.project.feign.EbtpMallBidApi; import com.chinaunicom.mall.ebtp.project.feign.EbtpMallProcessApi; +import com.chinaunicom.mall.ebtp.project.feign.EbtpTenderApi; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrust; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustExpand; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; @@ -61,6 +62,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; /** * 对数据表 biz_project_record 操作的 serviceImpl @@ -112,6 +114,9 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl 0){ + if(null != projectRecordVO.getSelectIds() && !projectRecordVO.getSelectIds().isEmpty()){ query.in("id",projectRecordVO.getSelectIds()); } @@ -159,7 +164,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl 0){ + if(null != projectRecordVO.getSelectBidMethod() && !projectRecordVO.getSelectBidMethod().isEmpty()){ query.in("bid_method_dict", projectRecordVO.getSelectBidMethod()); } @@ -202,7 +207,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl result = this.page(p, query); IPage voPage = result.convert(c -> BeanUtil.toBean(c,ProjectRecordVO.class)); - voPage.setRecords(JsonUtils.jsonToList(result.getRecords(),ProjectRecordVO.class)); + assembleProjectPage(voPage.getRecords()); return voPage; } @@ -590,8 +595,10 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl recordVOList){ + if(null != recordVOList && !recordVOList.isEmpty()){ + List projectIds = recordVOList.stream().map(ProjectRecordVO::getId).collect(Collectors.toList()); + List sectionList = projectSectionService.getListAssembleProjectPage(projectIds); + List sectionIds = sectionList.stream().map(ProjectSection::getId).collect(Collectors.toList()); + if(null != sectionList && !sectionList.isEmpty()){ + List sectionVOList = JsonUtils.jsonToList(sectionList,ProjectSectionVO.class); + BaseResponse> response = tenderApi.getRegisterCountByPackage(sectionIds); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_NOT_UPDATE.customValidName(response.getMessage(),!response.isSuccess()); + Map resultMap = response.getData(); + Map sectionMap = sectionVOList.stream().collect(Collectors.toMap(ProjectSection::getProjectId,a ->a,(k1,k2)->k1)); + recordVOList.forEach(n -> n.setSectionFirst(sectionMap.get(n.getId()))); + for (ProjectRecordVO vo:recordVOList) { + ProjectSectionVO sectionVO = sectionMap.get(vo.getId()); + if(null != sectionVO){ + Long applyCount = (null == resultMap.get(sectionVO.getId()))? resultMap.get(sectionVO.getId()) : 0L; + sectionVO.setApplyCount(applyCount); + sectionVO.setLinkPercentage(getLinkPercentage(sectionVO.getBusinessModule(),vo)); + } + vo.setSectionFirst(sectionVO); + } + } + } + } + + @Override + public BigDecimal getLinkPercentage(Integer businessModule, ProjectRecordVO vo){ + boolean isReviewMethod = this.isReviewMethod(vo); + BigDecimal businessModuleTotal = new BigDecimal(isReviewMethod ? 12 : 7); + if(businessModule > 1){ + businessModule = isReviewMethod ? businessModule : businessModule - 5; + } + BigDecimal module = new BigDecimal(businessModule); + + return module.divide(businessModuleTotal,2,BigDecimal.ROUND_HALF_UP); + } + } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectreevaluation/service/impl/ProjectReEvaluationServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectreevaluation/service/impl/ProjectReEvaluationServiceImpl.java index 1d6a639..0700450 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectreevaluation/service/impl/ProjectReEvaluationServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectreevaluation/service/impl/ProjectReEvaluationServiceImpl.java @@ -110,7 +110,7 @@ public class ProjectReEvaluationServiceImpl extends BaseServiceImpl businessFileIdList = resultList.stream().map(ProjectReEvaluationVO::getUploadFileId).collect(Collectors.toList()); - if(!businessFileIdList.isEmpty()){ + if(null != businessFileIdList && !businessFileIdList.isEmpty()){ Optional result = attachmentClient.findByBusinessId(businessFileIdList); for (ProjectReEvaluationVO vo : resultList) { diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java index 33cfea2..196420e 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java @@ -341,7 +341,7 @@ public class ProjectSectionController{ List result = projectSectionService.selectAllBatchIds(projectSection); - return BaseResponse.success(result.isEmpty() ? null : result.get(0)); + return BaseResponse.success((null ==result || result.isEmpty()) ? null : result.get(0)); } /** @@ -368,5 +368,17 @@ public class ProjectSectionController{ return BaseResponse.success(projectSectionService.selectArchiveByProjectId(projectId)); } + + /** + * 根据项目ID查询标段信息 分页专用 + * @param projectId 项目标段查询 + * @return 返回结果 + */ + @ApiOperation("根据项目ID查询标段信息 分页专用") + @GetMapping("/selectListByProjectId/{projectId}") + public BaseResponse> selectListByProjectId(@ApiParam(value = "项目id", required = true) @PathVariable String projectId){ + + return BaseResponse.success(projectSectionService.selectListByProjectId(projectId)); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml index 589f3d4..4dd2800 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml @@ -181,7 +181,9 @@