|  | @@ -245,7 +245,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		for (Map.Entry<IndexDataType, List<IndexBaseMonthData>> typeDateMapEntry : typeDateMap.entrySet()) {
 | 
	
		
			
				|  |  | -			Set<String> hasMonths = typeDateMapEntry.getValue().stream().map(d -> DateUtil.dateToString(d.getMonth(), "yyyy-MM-dd")).collect(Collectors.toSet());
 | 
	
		
			
				|  |  | +			List<IndexBaseMonthData> value = typeDateMapEntry.getValue();
 | 
	
		
			
				|  |  | +			Set<String> hasMonths = value.stream().map(d -> DateUtil.dateToString(d.getMonth(), "yyyy-MM-dd")).collect(Collectors.toSet());
 | 
	
		
			
				|  |  |  			LocalDate currentMonthDate = startDate;
 | 
	
		
			
				|  |  |  			while (currentMonthDate.compareTo(endDate)<=0){
 | 
	
		
			
				|  |  |  				if((IndexDataType.HOMEWORK_CREATE_RATE.equals(typeDateMapEntry.getKey())
 | 
	
	
		
			
				|  | @@ -265,12 +266,12 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  				indexBaseMonthData.setActivateNum(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |  				indexBaseMonthData.setPercent(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |  				indexBaseMonthData.setDataType(typeDateMapEntry.getKey());
 | 
	
		
			
				|  |  | -				typeDateMapEntry.getValue().add(indexBaseMonthData);
 | 
	
		
			
				|  |  | +				value.add(indexBaseMonthData);
 | 
	
		
			
				|  |  |  				currentMonthDate = currentMonthDate.plusDays(1);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -			typeDateMapEntry.getValue().sort(Comparator.comparing(IndexBaseMonthData::getMonth));
 | 
	
		
			
				|  |  | +			value.sort(Comparator.comparing(IndexBaseMonthData::getMonth));
 | 
	
		
			
				|  |  |  			if(typeDateMapEntry.getKey().getPercent()){
 | 
	
		
			
				|  |  | -				for (IndexBaseMonthData indexBaseMonthData : typeDateMapEntry.getValue()) {
 | 
	
		
			
				|  |  | +				for (IndexBaseMonthData indexBaseMonthData : value) {
 | 
	
		
			
				|  |  |  					if(indexBaseMonthData.getTotalNum().compareTo(BigDecimal.ZERO)==0){
 | 
	
		
			
				|  |  |  						indexBaseMonthData.setPercent(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |  						continue;
 | 
	
	
		
			
				|  | @@ -279,7 +280,21 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
 | 
	
		
			
				|  |  | -			indexBaseData.setIndexMonthData(typeDateMapEntry.getValue(), currentMonth);
 | 
	
		
			
				|  |  | +			indexBaseData.setIndexMonthData(value, currentMonth);
 | 
	
		
			
				|  |  | +			if(OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
 | 
	
		
			
				|  |  | +				List<IndexBaseMonthData> otherAmountDetails = new ArrayList<>();
 | 
	
		
			
				|  |  | +				if(value != null && value.size() > 0){
 | 
	
		
			
				|  |  | +					Map<String, List<IndexBaseMonthData>> collect = value.stream().filter(c->StringUtils.isNotEmpty(c.getOrderType())).collect(Collectors.groupingBy(e -> e.getOrderType()));
 | 
	
		
			
				|  |  | +					collect.keySet().forEach(e->{
 | 
	
		
			
				|  |  | +						IndexBaseMonthData data = new IndexBaseMonthData();
 | 
	
		
			
				|  |  | +						data.setOrderType(e);
 | 
	
		
			
				|  |  | +						BigDecimal reduce = collect.get(e).stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
	
		
			
				|  |  | +						data.setPercent(reduce);data.setActivateNum(reduce);data.setTotalNum(reduce);
 | 
	
		
			
				|  |  | +						otherAmountDetails.add(data);
 | 
	
		
			
				|  |  | +					});
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				indexBaseData.setIndexMonthDataDetail(otherAmountDetails);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  			if(FINANCE_PAY.equals(typeDateMapEntry.getKey()) || FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 | 
	
		
			
				|  |  |  				FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 | 
	
		
			
				|  |  |  					TOTAL_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 | 
	
	
		
			
				|  | @@ -288,7 +303,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  					VIP_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 | 
	
		
			
				|  |  |  					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 | 
	
		
			
				|  |  |  					OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
 | 
	
		
			
				|  |  | -				indexBaseData.setPercent(typeDateMapEntry.getValue().stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
 | 
	
		
			
				|  |  | +				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()) ||
 | 
	
		
			
				|  |  |  					IndexDataType.VIP_GROUP_OFFLINE_COURSE.equals(typeDateMapEntry.getKey())){
 |