Browse Source

Merge branch 'saas' of http://git.dayaedu.com/yonge/mec into saas

yonge 3 years ago
parent
commit
7778963339

+ 15 - 4
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,10 @@ 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(queryOrganIds)) queryOrganIds = new HashSet<>();
+		Set<Integer> currentOrganIds = new HashSet<>(queryOrganIds);
+		List<IndexBaseMonthData> dataList = new ArrayList<>();
 		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,10 +339,18 @@ 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());
+				dataList = organIds.stream().map(fun::apply).collect(Collectors.toList());
+				currentOrganIds.removeAll(organIds);
 			}
 		}
-		return new ArrayList<>();
+		if(!CollectionUtils.isEmpty(currentOrganIds)){
+			Map<Integer, String> organMap = organizationService.getMap("organization", "id_", "name_",
+					currentOrganIds, TenantContextHolder.getTenantId(), Integer.class, String.class);
+			Function<Integer,IndexBaseMonthData> fun1 = (organId) -> new IndexBaseMonthData(organId,organMap.get(organId),indexDataType,BigDecimal.ZERO);
+			dataList.addAll(currentOrganIds.stream().map(fun1::apply).collect(Collectors.toList()));
+		}
+		List<IndexBaseMonthData> baseMonthData = dataList.stream().sorted(Comparator.comparing(IndexBaseMonthData::getPercent,Comparator.reverseOrder())).collect(Collectors.toList());
+		return baseMonthData;
 	}
 
 	@Override

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -1385,7 +1385,7 @@
 				#{organId}
 			</foreach>
 		</if>
-		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d'),spo.organ_id_
 	</select>
 	<select id="getTotalAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
 		SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +