diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/CustomerProjectCategoryDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/CustomerProjectCategoryDTO.java new file mode 100644 index 0000000000..2487eaee67 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/CustomerProjectCategoryDTO.java @@ -0,0 +1,29 @@ +package com.epmet.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/5/12 11:19 + */ +@Data +public class CustomerProjectCategoryDTO implements Serializable { + + /** + * 客户自己的分类编码 + */ + private String categoryCode; + + /** + * 客户自己的分类名称 + */ + private String categoryName; + /** + * 分类等级:1、2....;产品只有2级分类 + */ + private Integer level; +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java index 3064505cf6..9e203ee3e4 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.result.screen.CategoryAnalysisResultDTO; +import com.epmet.project.CustomerProjectCategoryDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ public interface ScreenProjectCategoryOrgDailyDao { * @return java.util.List */ List selectCategoryAnalysis(@Param("agencyId") String agencyId,@Param("customerId")String customerId); + + CustomerProjectCategoryDTO selectProjectCategory(@Param("categoryCode")String categoryCode, @Param("customerId")String customerId, @Param("subCustomerIds")List subCustomerIds); } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java index cff827b63e..061d0b81f1 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -17,8 +17,7 @@ public interface ScreenProjectDataDao { List selectIdsByAreaCode(@Param("areaCode") String areaCode); - List projectDistributionDetail(@Param("projectId") String projectId, - @Param("customerId") String customerId); + List projectDistributionDetail(@Param("projectId") String projectId); List selectProjectImgs(@Param("projectId") String projectId, @Param("customerId") String customerId); diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java index e81f18becc..c2728396d0 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.datareport.service.evaluationindex.screen.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.DataSourceConstant; import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventDataDao; @@ -17,10 +18,15 @@ import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDT import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; +import com.epmet.feign.OperCrmOpenFeignClient; +import com.epmet.project.CustomerProjectCategoryDTO; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.List; /** @@ -29,6 +35,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/8/18 10:23 */ + +@Slf4j @Service @DataSource(DataSourceConstant.EVALUATION_INDEX) public class ScreenProjectServiceImpl implements ScreenProjectService { @@ -42,6 +50,8 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { @Autowired private ScreenProjectCategoryOrgDailyDao screenProjectCategoryOrgDailyDao; + @Autowired + private OperCrmOpenFeignClient operCrmOpenFeignClient; /** * @Description 3、项目详情 @@ -88,17 +98,17 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { @Override public Result projectDistributionDetail(ScreenProjectDetailFormDTO formDTO) { - List resultDTOS = screenProjectDataDao.projectDistributionDetail(formDTO.getProjectId(),formDTO.getCustomerId()); + List resultDTOS = screenProjectDataDao.projectDistributionDetail(formDTO.getProjectId()); resultDTOS.forEach(item -> { //项目图片 - List imgList = screenProjectDataDao.selectProjectImgs(formDTO.getProjectId(),formDTO.getCustomerId()); + List imgList = screenProjectDataDao.selectProjectImgs(formDTO.getProjectId(),item.getCustomerId()); item.setImgList(imgList); //项目处理流程 - List processDTOS = screenProjectDataDao.selectProjectProcess(formDTO.getProjectId(),formDTO.getCustomerId()); + List processDTOS = screenProjectDataDao.selectProjectProcess(formDTO.getProjectId(),item.getCustomerId()); //流程附件 processDTOS.forEach(processDTO -> { List attachmentDTOS = - screenProjectDataDao.selectProjectProcessAttachments(processDTO.getProcessId(),formDTO.getProjectId(),formDTO.getCustomerId()); + screenProjectDataDao.selectProjectProcessAttachments(processDTO.getProcessId(),formDTO.getProjectId(),item.getCustomerId()); processDTO.setAttachments(attachmentDTOS); }); item.setProcessList(processDTOS); @@ -118,6 +128,25 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { @DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true) @Override public List categoryAnalysis(String customerId, CategoryAnalysisFormDTO formDTO) { - return screenProjectCategoryOrgDailyDao.selectCategoryAnalysis(formDTO.getAgencyId(),customerId); + List resultDTOList = screenProjectCategoryOrgDailyDao.selectCategoryAnalysis(formDTO.getAgencyId(), customerId); + List resultList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(resultDTOList)) { + Result> crmRes = operCrmOpenFeignClient.getAllSubCustomerIds(customerId); + List subCustomerIds = new ArrayList<>(); + if (crmRes.success() && !CollectionUtils.isEmpty(crmRes.getData())) { + subCustomerIds = crmRes.getData(); + } + for (CategoryAnalysisResultDTO dto : resultDTOList) { + CustomerProjectCategoryDTO projectCategoryDTO = screenProjectCategoryOrgDailyDao.selectProjectCategory(dto.getCategoryCode(), customerId, subCustomerIds); + if (null == projectCategoryDTO || StringUtils.isBlank(projectCategoryDTO.getCategoryName())) { + log.warn(String.format("查询分类名称失败,当前客户:%s, categoryCode:%s", dto.getCategoryCode(), customerId)); + continue; + } + CategoryAnalysisResultDTO resultDto = ConvertUtils.sourceToTarget(dto, CategoryAnalysisResultDTO.class); + resultDto.setCategoryName(projectCategoryDTO.getCategoryName()); + resultList.add(resultDto); + } + } + return resultList; } } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml index d7e9e78f04..0fd2cc737c 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml @@ -5,15 +5,11 @@ + + + \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml index 968a477866..2f173078a0 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml @@ -72,7 +72,6 @@ WHERE del_flag = '0' AND project_id = #{projectId} - and CUSTOMER_ID= #{customerId}