|
@@ -29,6 +29,7 @@ import java.time.DayOfWeek;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.enums.IndexDataType.*;
|
|
@@ -299,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(value);
|
|
|
+ indexBaseData.setOrganIndexMonthData(this.getOrganIndexMonthData(value));
|
|
|
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()) ||
|
|
@@ -325,6 +326,22 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ public List<IndexBaseMonthData> getOrganIndexMonthData(List<IndexBaseMonthData> organIndexMonthData) {
|
|
|
+ if (!CollectionUtils.isEmpty(organIndexMonthData)){
|
|
|
+ List<IndexBaseMonthData> collect = organIndexMonthData.stream().filter(e -> e.getOrganId() != null && e.getOrganId() != 0).collect(Collectors.toList());
|
|
|
+ if(!CollectionUtils.isEmpty(collect)){
|
|
|
+ Map<Integer, List<IndexBaseMonthData>> listMap = collect.stream().collect(Collectors.groupingBy(IndexBaseMonthData::getOrganId));
|
|
|
+ Set<Integer> organIds = listMap.keySet();
|
|
|
+ Map<Integer, String> organMap = organizationService.getMap("organization", "id_", "name_",
|
|
|
+ organIds, TenantContextHolder.getTenantId(), Integer.class, String.class);
|
|
|
+ Function<Integer,IndexBaseMonthData> fun = (organId) -> new IndexBaseMonthData(organId,organMap.get(organId),
|
|
|
+ listMap.get(organId).stream().map(e->e.getPercent()).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ return organIds.stream().map(fun::apply).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void indexBaseDataTask(Integer tenantId, String dayStr, Set<IndexDataType> dataTypes) {
|