diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java index a2c48ff103..8c2b7b4ebe 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java @@ -2,7 +2,6 @@ package com.epmet.dataaggre.dto.epmettduck.result; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; -import org.apache.poi.ss.formula.functions.T; import java.io.Serializable; import java.util.Map; @@ -56,7 +55,7 @@ public class AnalysisReportResDTO implements Serializable { */ private Long sort; - private Map detail; + private Map detail; /** * 扩展字段 表单项独有字段 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java index 9d87c3ea2d..0739d25834 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java @@ -24,11 +24,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmettduck.PrUserProjectDao; -import com.epmet.dataaggre.dto.epmettduck.InputMapDTO; import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO; import com.epmet.dataaggre.dto.epmettduck.ProjectItemTypeEnum; import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO; @@ -43,7 +43,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 项目表 @@ -142,6 +145,7 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl provinceCityList= (List) originalData.get(key); - if(!CollectionUtils.isEmpty(provinceCityList)){ - validTotal+=1; + //时间范围选择 + //日期范围选择 + if(ProjectItemTypeEnum.PROVINCE_CITY.getValue().equals(currentType) + ||ProjectItemTypeEnum.TIME_RANGE.getValue().equals(currentType) + ||ProjectItemTypeEnum.DATE_RANGE.getValue().equals(currentType)){ + if(originalData.containsKey(key)){ + List provinceCityList= (List) originalData.get(key); + if(!CollectionUtils.isEmpty(provinceCityList)){ + validTotal+=1; + } } } //地理位置:INPUT_MAP if(ProjectItemTypeEnum.INPUT_MAP.getValue().equals(currentType)){ - InputMapDTO inputMapDTO= (InputMapDTO) originalData.get(key); - if(null!=inputMapDTO&&StringUtils.isNotBlank(inputMapDTO.getAddress())){ - validTotal+=1; + if(originalData.containsKey(key)){ + List provinceCityList= (List) originalData.get(key); + log.info("地理位置:"+JSON.toJSONString(provinceCityList,true)); + if (!CollectionUtils.isEmpty(provinceCityList) && provinceCityList.size() == 3) { + validTotal += 1; + } } } } detail.put("validTotal",validTotal); + item.setDetail(detail); continue; } @@ -210,18 +233,21 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl starMap = new HashMap<>(); + for (PrUserProjectResultEntity res : resultList) { JSONObject originalData = JSON.parseObject(res.getOriginalData()); - Integer starNum= (Integer) originalData.get(key); - if(null!=starNum){ - validTotal+=1; + if(originalData.containsKey(key)){ + Integer starNum = (Integer) originalData.get(key); + if (null != starNum) { + validTotal += 1; + totalStarNum += starNum; + Integer count = starMap.get(starNum); + starMap.put(starNum, count == null ? 1 : count + 1); + + } } } - - //2、几条有效记录 - detail.put("validTotal",validTotal); + //按照星星大小升序排列 + this.sortMap(starMap, true); + //2、平均分 + detail.put("avgStarNum", new BigDecimal((float)totalStarNum / validTotal).setScale(0, BigDecimal.ROUND_HALF_UP)); + //3、几条有效记录 + detail.put("validTotal", validTotal); + //4、得分列表 + detail.put("starProfile", starMap); + item.setDetail(detail); continue; } @@ -275,4 +323,17 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl> sortMap(Map map, boolean asc) { + + Stream> stream = null; + if (asc) { + stream = map.entrySet().stream().sorted(Map.Entry.comparingByValue()); + } else { + stream = map.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue())); + } + return stream.collect(Collectors.toList()); + } + + + } \ No newline at end of file