|  | @@ -605,7 +605,7 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
 | 
	
		
			
				|  |  |                      "家长联系电话", "是否激活", "是否有课", "是否有网管课", "课程余额(元)", "账户余额(元)",
 | 
	
		
			
				|  |  | -                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师","是否签订协议"}, new String[]{
 | 
	
		
			
				|  |  | +                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师", "是否签订协议"}, new String[]{
 | 
	
		
			
				|  |  |                      "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
 | 
	
		
			
				|  |  |                      "isActive.msg", "hasCourse.msg", "hasPracticeCourse.msg", "courseBalance", "balance", "musicGroupName",
 | 
	
		
			
				|  |  |                      "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus", "serviceTag.msg", "operatingTag.msg", "teacherName", "isSignedContract"}, rows);
 | 
	
	
		
			
				|  | @@ -1027,15 +1027,15 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                  row.setMemo("");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              BigDecimal transferFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -            if(row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")){
 | 
	
		
			
				|  |  | +            if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
 | 
	
		
			
				|  |  |                  FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
 | 
	
		
			
				|  |  | -                if(countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum()){
 | 
	
		
			
				|  |  | -                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum()) {
 | 
	
		
			
				|  |  | +                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if(countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())){
 | 
	
		
			
				|  |  | +                if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
 | 
	
		
			
				|  |  |                      List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(row.getOrderNo());
 | 
	
		
			
				|  |  |                      for (StudentPaymentRouteOrder routeOrder : routeOrders) {
 | 
	
		
			
				|  |  | -                        transferFee = transferFee.add(routeOrder.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  | +                        transferFee = transferFee.add(routeOrder.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -1061,7 +1061,11 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case MUSICAL:
 | 
	
		
			
				|  |  |                              if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
 | 
	
		
			
				|  |  | -                                row.setLeaseFee(orderDetail.getPrice());
 | 
	
		
			
				|  |  | +                                BigDecimal leaseFee = orderDetail.getPrice();
 | 
	
		
			
				|  |  | +                                if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  | +                                    leaseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                                row.setLeaseFee(leaseFee);
 | 
	
		
			
				|  |  |                              } else {
 | 
	
		
			
				|  |  |                                  row.setMusicalFee(orderDetail.getPrice());
 | 
	
		
			
				|  |  |                              }
 | 
	
	
		
			
				|  | @@ -1102,6 +1106,9 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                              continue;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                          BigDecimal typeFee = new BigDecimal(feeTypeStr.substring(index + 1));
 | 
	
		
			
				|  |  | +                        if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  | +                            typeFee = typeFee.multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  |                          if (feeTypeStr.contains("VIP")) {
 | 
	
		
			
				|  |  |                              row.setVipCourseFee(typeFee);
 | 
	
		
			
				|  |  |                          } else if (feeTypeStr.contains("网管课")) {
 | 
	
	
		
			
				|  | @@ -1110,9 +1117,9 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                              row.setTheoryCourseFee(typeFee);
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    row.setDegreeFee(row.getExpectAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
 | 
	
		
			
				|  |  | +                    row.setDegreeFee(row.getActualAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  | -                    row.setOtherFee(row.getExpectAmount());
 | 
	
		
			
				|  |  | +                    row.setOtherFee(row.getActualAmount());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (row.getChargeType() != null) {
 | 
	
		
			
				|  |  |                      for (SporadicChargeTypeEnum chargeType : SporadicChargeTypeEnum.values()) {
 | 
	
	
		
			
				|  | @@ -1136,9 +1143,6 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
 | 
	
		
			
				|  |  | -//                if(feeByType.getMusicalFee().add(feeByType.getTeachingFee()).add(feeByType.getRepairFee()).add(feeByType.getOtherFee()).compareTo(BigDecimal.ZERO) <=0){
 | 
	
		
			
				|  |  | -//                    break;
 | 
	
		
			
				|  |  | -//                }
 | 
	
		
			
				|  |  |                  row.setMusicalFee(feeByType.getMusicalFee());
 | 
	
		
			
				|  |  |                  row.setTeachingFee(feeByType.getTeachingFee());
 | 
	
		
			
				|  |  |                  row.setRepairFee(feeByType.getRepairFee());
 | 
	
	
		
			
				|  | @@ -1150,20 +1154,20 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                          row.setSchoolName(studentRegistration.getSchoolName());
 | 
	
		
			
				|  |  |                          row.setCooperationOrganName(studentRegistration.getRemark());
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
 | 
	
		
			
				|  |  | +                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
 | 
	
		
			
				|  |  |                  } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
 | 
	
		
			
				|  |  | -                    row.setRepairFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                    row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  |                  } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  |                      row.setTransferFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(row.getMusicGroupId()==null){
 | 
	
		
			
				|  |  | +            if (row.getMusicGroupId()!= null && row.getMusicGroupId().equals("null")) {
 | 
	
		
			
				|  |  |                  row.setMusicGroupId("");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              String paymentChannel = "";
 | 
	
		
			
				|  |  | -            if(row.getPaymentChannel() == null) {
 | 
	
		
			
				|  |  | -            }else if (row.getPaymentChannel().equals("YQPAY")) {
 | 
	
		
			
				|  |  | +            if (row.getPaymentChannel() == null) {
 | 
	
		
			
				|  |  | +            } else if (row.getPaymentChannel().equals("YQPAY")) {
 | 
	
		
			
				|  |  |                  paymentChannel = "双乾";
 | 
	
		
			
				|  |  |              } else if (row.getPaymentChannel().equals("ADAPAY")) {
 | 
	
		
			
				|  |  |                  paymentChannel = "汇付";
 | 
	
	
		
			
				|  | @@ -2164,13 +2168,13 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                  row.setMemo("");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              BigDecimal transferFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -            if(row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")){
 | 
	
		
			
				|  |  | +            if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
 | 
	
		
			
				|  |  |                  FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
 | 
	
		
			
				|  |  | -                if(countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")){
 | 
	
		
			
				|  |  | -                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")) {
 | 
	
		
			
				|  |  | +                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if(countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())){
 | 
	
		
			
				|  |  | -                    transferFee = row.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
 | 
	
		
			
				|  |  | +                    transferFee = row.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              row.setTransferFee(transferFee);
 | 
	
	
		
			
				|  | @@ -2195,7 +2199,11 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case MUSICAL:
 | 
	
		
			
				|  |  |                              if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
 | 
	
		
			
				|  |  | -                                row.setLeaseFee(orderDetail.getPrice());
 | 
	
		
			
				|  |  | +                                BigDecimal leaseFee = orderDetail.getPrice();
 | 
	
		
			
				|  |  | +                                if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  | +                                    leaseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                                row.setLeaseFee(leaseFee);
 | 
	
		
			
				|  |  |                              } else {
 | 
	
		
			
				|  |  |                                  row.setMusicalFee(orderDetail.getPrice());
 | 
	
		
			
				|  |  |                              }
 | 
	
	
		
			
				|  | @@ -2236,6 +2244,9 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                              continue;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                          BigDecimal typeFee = new BigDecimal(feeTypeStr.substring(index + 1));
 | 
	
		
			
				|  |  | +                        if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  | +                            typeFee = typeFee.multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  |                          if (feeTypeStr.contains("VIP")) {
 | 
	
		
			
				|  |  |                              row.setVipCourseFee(typeFee);
 | 
	
		
			
				|  |  |                          } else if (feeTypeStr.contains("网管课")) {
 | 
	
	
		
			
				|  | @@ -2244,9 +2255,9 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                              row.setTheoryCourseFee(typeFee);
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    row.setDegreeFee(row.getExpectAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
 | 
	
		
			
				|  |  | +                    row.setDegreeFee(row.getActualAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  | -                    row.setOtherFee(row.getExpectAmount());
 | 
	
		
			
				|  |  | +                    row.setOtherFee(row.getActualAmount());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (row.getChargeType() != null) {
 | 
	
		
			
				|  |  |                      for (SporadicChargeTypeEnum chargeType : SporadicChargeTypeEnum.values()) {
 | 
	
	
		
			
				|  | @@ -2281,20 +2292,20 @@ public class ExportController extends BaseController {
 | 
	
		
			
				|  |  |                          row.setSchoolName(studentRegistration.getSchoolName());
 | 
	
		
			
				|  |  |                          row.setCooperationOrganName(studentRegistration.getRemark());
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
 | 
	
		
			
				|  |  | +                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
 | 
	
		
			
				|  |  |                  } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
 | 
	
		
			
				|  |  | -                    row.setRepairFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                    row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  |                  } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
 | 
	
		
			
				|  |  | -                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  | +                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
 | 
	
		
			
				|  |  |                      row.setTransferFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(row.getMusicGroupId()==null){
 | 
	
		
			
				|  |  | +            if (row.getMusicGroupId()!= null && row.getMusicGroupId().equals("null")) {
 | 
	
		
			
				|  |  |                  row.setMusicGroupId("");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              String paymentChannel = "";
 | 
	
		
			
				|  |  | -            if(row.getPaymentChannel() == null) {
 | 
	
		
			
				|  |  | -            }else if (row.getPaymentChannel().equals("YQPAY")) {
 | 
	
		
			
				|  |  | +            if (row.getPaymentChannel() == null) {
 | 
	
		
			
				|  |  | +            } else if (row.getPaymentChannel().equals("YQPAY")) {
 | 
	
		
			
				|  |  |                  paymentChannel = "双乾";
 | 
	
		
			
				|  |  |              } else if (row.getPaymentChannel().equals("ADAPAY")) {
 | 
	
		
			
				|  |  |                  paymentChannel = "汇付";
 |