|  | @@ -137,12 +137,21 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case OTHER:
 | 
	
		
			
				|  |  |                              row.setOtherFee(row.getOtherFee().add(orderDetail.getPrice()));
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  |                          case MAINTENANCE:
 | 
	
		
			
				|  |  |                              BigDecimal repairFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |                              if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  |                                  repairFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                              row.setMaintenanceFee(repairFee);
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  | +                        case CLOUD_TEACHER:
 | 
	
		
			
				|  |  | +                            BigDecimal cloudTeacherFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  | +                                cloudTeacherFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            row.setCloudTeacherFee(cloudTeacherFee);
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  |                          default:
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -235,7 +244,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                          row.setCooperationOrganName(studentRegistration.getRemark());
 | 
	
		
			
				|  |  |                          row.setEduTeacher(studentRegistration.getName());
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
 | 
	
		
			
				|  |  | +                    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(OrderTypeEnum.OUTORDER)) {
 | 
	
	
		
			
				|  | @@ -284,9 +293,9 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          HSSFWorkbook workbook = null;
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "押金", "乐器", "教辅费用", "其它", "手续费", "到账时间",
 | 
	
		
			
				|  |  | +            String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用","云教练","押金", "乐器", "教辅费用", "其它", "手续费", "到账时间",
 | 
	
		
			
				|  |  |                      "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"};
 | 
	
		
			
				|  |  | -            String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount", "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "leaseFee", "musicalFee", "teachingFee", "otherFee", "transferFee", "payTime", "musicGroupId",
 | 
	
		
			
				|  |  | +            String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount", "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee","cloudTeacherFee", "leaseFee", "musicalFee", "teachingFee", "otherFee", "transferFee", "payTime", "musicGroupId",
 | 
	
		
			
				|  |  |                      "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"};
 | 
	
		
			
				|  |  |              workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
 | 
	
		
			
				|  |  |              workbook.write(fileOutputStream);
 | 
	
	
		
			
				|  | @@ -389,12 +398,21 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case OTHER:
 | 
	
		
			
				|  |  |                              row.setOtherFee(row.getOtherFee().add(orderDetail.getPrice()));
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  |                          case MAINTENANCE:
 | 
	
		
			
				|  |  |                              BigDecimal maintenanceFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |                              if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  |                                  maintenanceFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                              row.setMaintenanceFee(maintenanceFee);
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  | +                        case CLOUD_TEACHER:
 | 
	
		
			
				|  |  | +                            BigDecimal cloudTeacherFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  | +                                cloudTeacherFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            row.setCloudTeacherFee(cloudTeacherFee);
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  |                          default:
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -487,7 +505,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                          row.setCooperationOrganName(studentRegistration.getRemark());
 | 
	
		
			
				|  |  |                          row.setEduTeacher(studentRegistration.getName());
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
 | 
	
		
			
				|  |  | +                    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(OrderTypeEnum.OUTORDER)) {
 | 
	
	
		
			
				|  | @@ -543,6 +561,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |              BigDecimal routeMusicalFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |              BigDecimal routeTeachingFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |              BigDecimal routeOtherFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +            BigDecimal routeCloudTeacherFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |              for (StudentPaymentOrderExportDto order : orders) {
 | 
	
		
			
				|  |  |                  Date endDate = DateUtil.stringToDate("2021-04-01", "yyyy-MM-dd");
 | 
	
		
			
				|  |  |                  if (order.getPayTime() == null || order.getPayTime().compareTo(endDate) < 0) {
 | 
	
	
		
			
				|  | @@ -554,10 +573,12 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                      order.setPracticeCourseFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                      order.setTheoryCourseFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                      order.setDegreeFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  | +                    order.setCloudTeacherFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                      order.setRepairFee(order.getMaintenanceProductFee());
 | 
	
		
			
				|  |  |                      continue;
 | 
	
		
			
				|  |  |                  } else if (order.getSaleAmount().compareTo(BigDecimal.ZERO) == 0 && order.getServiceAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  |                      order.setRepairFee(order.getRepairFee().add(order.getMaintenanceFee()));
 | 
	
		
			
				|  |  | +                    order.setCloudTeacherFee(order.getCloudTeacherFee());
 | 
	
		
			
				|  |  |                      order.setMusicalFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                      order.setTeachingFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                      order.setOtherFee(BigDecimal.ZERO);
 | 
	
	
		
			
				|  | @@ -576,6 +597,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                  BigDecimal musicalFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |                  BigDecimal teachingFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |                  BigDecimal otherFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +                BigDecimal cloudTeacherFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  if (order.getActualAmount() != null && order.getActualAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  |                      musicGroupCourseFee = order.getMusicGroupCourseFee().multiply(order.getRouteAmount()).divide(order.getActualAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
	
		
			
				|  | @@ -590,6 +612,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                      musicalFee = order.getMusicalFee().multiply(order.getRouteAmount()).divide(order.getActualAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |                      teachingFee = order.getTeachingFee().multiply(order.getRouteAmount()).divide(order.getActualAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |                      otherFee = order.getOtherFee().multiply(order.getRouteAmount()).divide(order.getActualAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                    cloudTeacherFee = order.getCloudTeacherFee().multiply(order.getRouteAmount()).divide(order.getActualAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  if (order.getGroupType().equals(GroupType.VIP)) {
 | 
	
	
		
			
				|  | @@ -611,7 +634,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                      practiceCourseFee = order.getRouteAmount();
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  |                      if (order.getGroupType().equals(GroupType.MUSIC)) {
 | 
	
		
			
				|  |  | -                        musicGroupCourseFee = order.getRouteAmount().subtract(musicalFee).subtract(teachingFee).subtract(maintenanceFee).subtract(maintenanceProductFee).subtract(otherFee).subtract(leaseFee);
 | 
	
		
			
				|  |  | +                        musicGroupCourseFee = order.getRouteAmount().subtract(musicalFee).subtract(teachingFee).subtract(maintenanceFee).subtract(maintenanceProductFee).subtract(otherFee).subtract(leaseFee).subtract(cloudTeacherFee);
 | 
	
		
			
				|  |  |                      } else if (order.getType().equals(OrderTypeEnum.REPAIR)) {
 | 
	
		
			
				|  |  |                          repairFee = order.getRouteAmount().subtract(musicalFee).subtract(teachingFee).subtract(otherFee);
 | 
	
		
			
				|  |  |                      } else if (order.getType().equals(OrderTypeEnum.OUTORDER)) {
 | 
	
	
		
			
				|  | @@ -632,6 +655,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                      musicalFee = order.getMusicalFee().subtract(routeMusicalFee);
 | 
	
		
			
				|  |  |                      teachingFee = order.getTeachingFee().subtract(routeTeachingFee);
 | 
	
		
			
				|  |  |                      otherFee = order.getOtherFee().subtract(routeOtherFee);
 | 
	
		
			
				|  |  | +                    cloudTeacherFee = order.getCloudTeacherFee().subtract(routeCloudTeacherFee);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  j++;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -647,6 +671,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                  routeMusicalFee = routeMusicalFee.add(musicalFee);
 | 
	
		
			
				|  |  |                  routeTeachingFee = routeTeachingFee.add(teachingFee);
 | 
	
		
			
				|  |  |                  routeOtherFee = routeOtherFee.add(otherFee);
 | 
	
		
			
				|  |  | +                routeCloudTeacherFee = routeCloudTeacherFee.add(cloudTeacherFee);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  order.setMusicGroupCourseFee(musicGroupCourseFee);
 | 
	
		
			
				|  |  |                  order.setVipCourseFee(vipCourseFee);
 | 
	
	
		
			
				|  | @@ -660,6 +685,7 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                  order.setMusicalFee(musicalFee);
 | 
	
		
			
				|  |  |                  order.setTeachingFee(teachingFee);
 | 
	
		
			
				|  |  |                  order.setOtherFee(otherFee);
 | 
	
		
			
				|  |  | +                order.setCloudTeacherFee(cloudTeacherFee);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |          String[] organIdArr = params.get("oldOrganId").toString().split(",");
 | 
	
	
		
			
				|  | @@ -672,9 +698,9 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          HSSFWorkbook workbook = null;
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分润余额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "押金", "乐器", "教辅费用", "其它", "手续费", "到账时间",
 | 
	
		
			
				|  |  | +            String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分润余额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用","云教练", "押金", "乐器", "教辅费用", "其它", "手续费", "到账时间",
 | 
	
		
			
				|  |  |                      "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"};
 | 
	
		
			
				|  |  | -            String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount", "routeMerNo", "routeAmount", "routeBalance", "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "leaseFee", "musicalFee", "teachingFee", "otherFee", "transferFee", "payTime", "musicGroupId",
 | 
	
		
			
				|  |  | +            String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount", "routeMerNo", "routeAmount", "routeBalance", "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee","cloudTeacherFee", "leaseFee", "musicalFee", "teachingFee", "otherFee", "transferFee", "payTime", "musicGroupId",
 | 
	
		
			
				|  |  |                      "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"};
 | 
	
		
			
				|  |  |              workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
 | 
	
		
			
				|  |  |              workbook.write(fileOutputStream);
 |