zouxuan 3 年 前
コミット
3a8c11d811

+ 48 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -2347,6 +2347,7 @@ public class ExportServiceImpl implements ExportService {
             String goodsName = "";
             if (row.getOrderDetailList() != null) {
                 for (StudentPaymentOrderDetail orderDetail : row.getOrderDetailList()) {
+                    BigDecimal price = getActualAmount(orderDetail.getPrice(), row);
                     switch (orderDetail.getType()) {
                         case COURSE:
                         case CLASSROOM:
@@ -2360,7 +2361,7 @@ public class ExportServiceImpl implements ExportService {
                         case HIGH:
                         case HIGH_ONLINE:
                         case HIGH_ONLINE_COURSE:
-                            row.setMusicGroupCourseFee(row.getMusicGroupCourseFee().add(orderDetail.getPrice()));
+                            row.setMusicGroupCourseFee(row.getMusicGroupCourseFee().add(price));
                             break;
                         case MUSICAL:
                         	//扣除内部库存的商品销售收入统计在云教练中
@@ -2368,9 +2369,9 @@ public class ExportServiceImpl implements ExportService {
                         		row.setTranslatedIncome(row.getTranslatedIncome().add(orderDetail.getIncome()));
                         	}
                             if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                                row.setLeaseFee(getActualAmount(orderDetail.getPrice(),row));
+                                row.setLeaseFee(price);
                             } else {
-                                row.setMusicalFee(orderDetail.getPrice().subtract(orderDetail.getIncome()));
+                                row.setMusicalFee(price.subtract(orderDetail.getIncome()));
                             }
                             break;
                         case ACCESSORIES:
@@ -2378,26 +2379,26 @@ public class ExportServiceImpl implements ExportService {
                         	if(StringUtils.equals(orderDetail.getIncomeItem(), OrderDetailTypeEnum.CLOUD_TEACHER.name())){
                         		row.setTranslatedIncome(row.getTranslatedIncome().add(orderDetail.getIncome()));
                         	}
-                            row.setTeachingFee(row.getTeachingFee().add(getActualAmount(orderDetail.getPrice(),row).subtract(orderDetail.getIncome())));
+                            row.setTeachingFee(row.getTeachingFee().add(price.subtract(orderDetail.getIncome())));
                             break;
                         case OTHER:
                         	if(StringUtils.equals(orderDetail.getIncomeItem(), OrderDetailTypeEnum.CLOUD_TEACHER.name())){
                         		row.setTranslatedIncome(row.getTranslatedIncome().add(orderDetail.getIncome()));
                         	}
-                            row.setOtherFee(row.getOtherFee().add(orderDetail.getPrice().subtract(orderDetail.getIncome())));
+                            row.setOtherFee(row.getOtherFee().add(price.subtract(orderDetail.getIncome())));
                             break;
                         case MAINTENANCE:
-                            row.setMaintenanceFee(getActualAmount(orderDetail.getPrice(),row));
+                            row.setMaintenanceFee(price);
                             break;
                         case CLOUD_TEACHER:
                         case CLOUD_TEACHER_PLUS:
-                    		row.setCloudTeacherFee(row.getCloudTeacherFee().add(getActualAmount(orderDetail.getPrice(),row)));
+                    		row.setCloudTeacherFee(row.getCloudTeacherFee().add(price));
                             break;
                         case DEGREE_REGISTRATION:
-                            row.setDegreeFee(getActualAmount(orderDetail.getPrice(),row));
+                            row.setDegreeFee(price);
                             break;
                         case VIP:
-                            row.setVipCourseFee(getActualAmount(orderDetail.getPrice(),row));
+                            row.setVipCourseFee(price);
                             if(row.getTypeDesc() == null){
                                 //学员没有历史VIP课程则导出为【VIP课新增】
                                 //学员有历史VIP课程到导出为【VIP课续费]
@@ -2409,10 +2410,10 @@ public class ExportServiceImpl implements ExportService {
                             }
                             break;
                         case THEORY_COURSE:
-                            row.setTheoryCourseFee(getActualAmount(orderDetail.getPrice(),row));
+                            row.setTheoryCourseFee(price);
                             break;
                         case REPAIR:
-                            row.setRepairFee(getActualAmount(orderDetail.getPrice(),row));
+                            row.setRepairFee(price);
                             break;
                         default:
                             break;
@@ -2590,6 +2591,42 @@ public class ExportServiceImpl implements ExportService {
             }
             row.setPaymentChannel(paymentChannel);
             row.setOrderAmount(row.getExpectAmount().add(row.getCouponRemitFee()));
+            BigDecimal freeFee = row.getRouteAmount().subtract(row.getMusicGroupCourseFee()).subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).
+                    subtract(row.getTheoryCourseFee()).subtract(row.getDegreeFee()).subtract(row.getRepairFee()).subtract(row.getMaintenanceFee())
+                    .subtract(row.getCloudTeacherFee()).subtract(row.getLeaseFee()).subtract(row.getMusicalFee()).subtract(row.getTeachingFee())
+                    .subtract(row.getVisitFee()).subtract(row.getRechargeFee()).subtract(row.getOtherFee());
+            if(freeFee.compareTo(BigDecimal.ZERO) > 0){
+                //获取不为空的金额
+                if(row.getMusicGroupCourseFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setMusicGroupCourseFee(freeFee.add(row.getMusicGroupCourseFee()));
+                }else if(row.getVipCourseFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setVipCourseFee(freeFee.add(row.getVipCourseFee()));
+                }else if(row.getPracticeCourseFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setPracticeCourseFee(freeFee.add(row.getPracticeCourseFee()));
+                }else if(row.getTheoryCourseFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setTheoryCourseFee(freeFee.add(row.getTheoryCourseFee()));
+                }else if(row.getDegreeFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setDegreeFee(freeFee.add(row.getDegreeFee()));
+                }else if(row.getRepairFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setRepairFee(freeFee.add(row.getRepairFee()));
+                }else if(row.getMaintenanceFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setMaintenanceFee(freeFee.add(row.getMaintenanceFee()));
+                }else if(row.getCloudTeacherFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setCloudTeacherFee(freeFee.add(row.getCloudTeacherFee()));
+                }else if(row.getLeaseFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setLeaseFee(freeFee.add(row.getLeaseFee()));
+                }else if(row.getMusicalFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setMusicalFee(freeFee.add(row.getMusicalFee()));
+                }else if(row.getTeachingFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setTeachingFee(freeFee.add(row.getTeachingFee()));
+                }else if(row.getVisitFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setVisitFee(freeFee.add(row.getVisitFee()));
+                }else if(row.getRechargeFee().compareTo(BigDecimal.ZERO) > 0){
+                    row.setRechargeFee(freeFee.add(row.getRechargeFee()));
+                }else {
+                    row.setOtherFee(freeFee.add(row.getOtherFee()));
+                }
+            }
         }
         
 		//查询商品收款账户配置