|  | @@ -1647,7 +1647,6 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |          if(org.apache.commons.collections.CollectionUtils.isNotEmpty(outOrderList)){
 | 
	
		
			
				|  |  |              outOrderAmountMap = MapUtil.convertIntegerMap(sellOrderDao.sumOutOrderAmount(outOrderList));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
 | 
	
		
			
				|  |  |              if (row.getActualAmount() == null) {
 | 
	
		
			
				|  |  |                  row.setActualAmount(BigDecimal.ZERO);
 | 
	
	
		
			
				|  | @@ -1994,6 +1993,20 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |          if(org.apache.commons.collections.CollectionUtils.isNotEmpty(outOrderList)){
 | 
	
		
			
				|  |  |              outOrderAmountMap = MapUtil.convertIntegerMap(sellOrderDao.sumOutOrderAmount(outOrderList));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        List<Long> otherOrderIds = studentPaymentOrderExportDtos.stream().filter(e -> e.getGroupType() != GroupType.GOODS_SELL
 | 
	
		
			
				|  |  | +                && e.getGroupType() != GroupType.REPLACEMENT
 | 
	
		
			
				|  |  | +                && e.getGroupType() != GroupType.PRACTICE
 | 
	
		
			
				|  |  | +                && e.getGroupType() != GroupType.SPORADIC
 | 
	
		
			
				|  |  | +                && e.getGroupType() != GroupType.MEMBER
 | 
	
		
			
				|  |  | +                && e.getGroupType() != GroupType.ACTIVITY
 | 
	
		
			
				|  |  | +                && e.getGroupType() != GroupType.VIP).map(e -> e.getId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        Map<Long, List<StudentPaymentOrderExportDto>> feeByTypeMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        Map<Long, BigDecimal> childRepairMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        if(!CollectionUtils.isEmpty(otherOrderIds)){
 | 
	
		
			
				|  |  | +            List<StudentPaymentOrderExportDto> feeByType = sellOrderDao.queryFeeByType(otherOrderIds);
 | 
	
		
			
				|  |  | +            feeByTypeMap = feeByType.stream().collect(Collectors.groupingBy(StudentPaymentOrderExportDto::getId));
 | 
	
		
			
				|  |  | +            childRepairMap = MapUtil.convertIntegerMap(sellOrderDao.queryChildRepair(otherOrderIds));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
 | 
	
		
			
				|  |  |              if (row.getActualAmount() == null) {
 | 
	
		
			
				|  |  |                  row.setActualAmount(BigDecimal.ZERO);
 | 
	
	
		
			
				|  | @@ -2144,18 +2157,21 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                      row.setLargeMusicalFee(row.getActualAmount());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
 | 
	
		
			
				|  |  | -                BigDecimal childRepairFee = sellOrderDao.getChildRepair(row.getId());
 | 
	
		
			
				|  |  | -                row.setMusicalFee(feeByType.getMusicalFee());
 | 
	
		
			
				|  |  | -                row.setTeachingFee(feeByType.getTeachingFee().subtract(childRepairFee));
 | 
	
		
			
				|  |  | -                row.setMaintenanceProductFee(feeByType.getRepairFee().add(childRepairFee));
 | 
	
		
			
				|  |  | -                row.setOtherFee(feeByType.getOtherFee());
 | 
	
		
			
				|  |  | -                if (row.getGroupType().equals(GroupType.MUSIC)) {
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()).subtract(row.getCloudTeacherFee()));
 | 
	
		
			
				|  |  | -                } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
 | 
	
		
			
				|  |  | -                    row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | -                } else if (row.getType().equals(OUTORDER)) {
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                List<StudentPaymentOrderExportDto> exportDtoList = feeByTypeMap.get(row.getId());
 | 
	
		
			
				|  |  | +                if(!CollectionUtils.isEmpty(exportDtoList)){
 | 
	
		
			
				|  |  | +                    StudentPaymentOrderExportDto feeByType = exportDtoList.get(0);
 | 
	
		
			
				|  |  | +                    BigDecimal childRepairFee = childRepairMap.get(row.getId()) == null?BigDecimal.ZERO:childRepairMap.get(row.getId());
 | 
	
		
			
				|  |  | +                    row.setMusicalFee(feeByType.getMusicalFee());
 | 
	
		
			
				|  |  | +                    row.setTeachingFee(feeByType.getTeachingFee().subtract(childRepairFee));
 | 
	
		
			
				|  |  | +                    row.setMaintenanceProductFee(feeByType.getRepairFee().add(childRepairFee));
 | 
	
		
			
				|  |  | +                    row.setOtherFee(feeByType.getOtherFee());
 | 
	
		
			
				|  |  | +                    if (row.getGroupType().equals(GroupType.MUSIC)) {
 | 
	
		
			
				|  |  | +                        row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()).subtract(row.getCloudTeacherFee()));
 | 
	
		
			
				|  |  | +                    } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
 | 
	
		
			
				|  |  | +                        row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                    }else if (row.getType().equals(OUTORDER)) {
 | 
	
		
			
				|  |  | +                        row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              row.setRepairFee(row.getRepairFee().add(row.getMaintenanceProductFee()));
 |