Jelajahi Sumber

首页经营数据

zouxuan 3 tahun lalu
induk
melakukan
81f876cc1e

+ 12 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -300,7 +300,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					VIP_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
-				indexBaseData.setOrganIndexMonthData(this.getOrganIndexMonthData(value,typeDateMapEntry.getKey()));
+				indexBaseData.setOrganIndexMonthData(this.getOrganIndexMonthData(value,typeDateMapEntry.getKey(),organIds));
 				indexBaseData.setPercent(value.stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
 			}
 			if(IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey()) || VIP_GROUP_ONLINE_COURSE.equals(typeDateMapEntry.getKey()) ||
@@ -326,7 +326,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		return result;
 	}
 
-	public List<IndexBaseMonthData> getOrganIndexMonthData(List<IndexBaseMonthData> organIndexMonthData,IndexDataType indexDataType) {
+	public List<IndexBaseMonthData> getOrganIndexMonthData(List<IndexBaseMonthData> organIndexMonthData,IndexDataType indexDataType,Set<Integer> queryOrganIds) {
 		if (!CollectionUtils.isEmpty(organIndexMonthData)){
 			List<IndexBaseMonthData> collect = organIndexMonthData.stream().filter(e -> e.getOrganId() != null && e.getOrganId() != 0).collect(Collectors.toList());
 			if(!CollectionUtils.isEmpty(collect)){
@@ -336,7 +336,16 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 						organIds, TenantContextHolder.getTenantId(), Integer.class, String.class);
 				Function<Integer,IndexBaseMonthData> fun = (organId) -> new IndexBaseMonthData(organId,organMap.get(organId),indexDataType,
 						listMap.get(organId).stream().map(e->e.getPercent()).reduce(BigDecimal.ZERO,BigDecimal::add));
-				return organIds.stream().map(fun::apply).collect(Collectors.toList());
+				List<IndexBaseMonthData> dataList = organIds.stream().map(fun::apply).collect(Collectors.toList());
+				if(!CollectionUtils.isEmpty(queryOrganIds)){
+					queryOrganIds.removeAll(organIds);
+					if(!CollectionUtils.isEmpty(queryOrganIds)){
+						Function<Integer,IndexBaseMonthData> fun1 = (organId) -> new IndexBaseMonthData(organId,organMap.get(organId),indexDataType,BigDecimal.ZERO);
+						dataList.addAll(queryOrganIds.stream().map(fun1::apply).collect(Collectors.toList()));
+					}
+				}
+				List<IndexBaseMonthData> baseMonthData = dataList.stream().sorted(Comparator.comparing(IndexBaseMonthData::getPercent,Comparator.reverseOrder())).collect(Collectors.toList());
+				return baseMonthData;
 			}
 		}
 		return new ArrayList<>();