Browse Source

经营报表收入汇总bug修改

zouxuan 1 năm trước cách đây
mục cha
commit
88676cfc95

+ 216 - 213
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -1936,236 +1936,239 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             OperatingTotalIncomeDto incomeDto = new OperatingTotalIncomeDto();
             incomeDto.setOrganId(organId);
             incomeDto.setOrganName(userOrganNameMap.get(organId));
-            for (StudentPaymentOrderExportDto row : listMap.get(organId)) {
-                if (row.getActualAmount() == null) {
-                    row.setActualAmount(BigDecimal.ZERO);
-                }
-                if (row.getBalancePaymentAmount() == null) {
-                    row.setBalancePaymentAmount(BigDecimal.ZERO);
-                }
-                if (row.getOrderDetailList() != null && GroupType.GOODS_SELL != row.getGroupType()) {
-                    for (StudentPaymentOrderDetail orderDetail : row.getOrderDetailList()) {
-                        switch (orderDetail.getType()) {
-                            case COURSE:
-                            case CLASSROOM:
-                            case SINGLE:
-                            case MIX:
-                            case COMPREHENSIVE:
-                            case ENLIGHTENMENT:
-                            case TRAINING_SINGLE:
-                            case TRAINING_MIX:
-                            case MUSIC_NETWORK:
-                            case HIGH:
-                            case HIGH_ONLINE:
-                            case HIGH_ONLINE_COURSE:
-                                row.setMusicGroupCourseFee(row.getMusicGroupCourseFee().add(orderDetail.getPrice()));
-                                break;
-                            case MUSICAL:
-                                if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                                    row.setLeaseFee(getActualAmount(orderDetail.getPrice(), row));
-                                } else {
-                                    row.setMusicalFee(orderDetail.getPrice());
-                                }
-                                break;
-                            case ACCESSORIES:
-                            case TEACHING:
-                                row.setTeachingFee(row.getTeachingFee().add(orderDetail.getPrice()));
-                                break;
-                            case OTHER:
-                                row.setOtherFee(row.getOtherFee().add(orderDetail.getPrice()));
-                                break;
-                            case MAINTENANCE:
-                                row.setMaintenanceFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            case CLOUD_TEACHER:
-                            case CLOUD_TEACHER_PLUS:
-                                row.setCloudTeacherFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            case DEGREE_REGISTRATION:
-                                row.setDegreeFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            case PRACTICE:
-                                row.setPracticeCourseFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            case VIP:
-                                row.setVipCourseFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            case THEORY_COURSE:
-                                row.setTheoryCourseFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            case REPAIR:
-                                row.setRepairFee(getActualAmount(orderDetail.getPrice(), row));
-                                break;
-                            default:
-                                break;
+            List<StudentPaymentOrderExportDto> rows = listMap.get(organId);
+            if(CollectionUtils.isNotEmpty(rows)){
+                for (StudentPaymentOrderExportDto row : rows) {
+                    if (row.getActualAmount() == null) {
+                        row.setActualAmount(BigDecimal.ZERO);
+                    }
+                    if (row.getBalancePaymentAmount() == null) {
+                        row.setBalancePaymentAmount(BigDecimal.ZERO);
+                    }
+                    if (row.getOrderDetailList() != null && GroupType.GOODS_SELL != row.getGroupType()) {
+                        for (StudentPaymentOrderDetail orderDetail : row.getOrderDetailList()) {
+                            switch (orderDetail.getType()) {
+                                case COURSE:
+                                case CLASSROOM:
+                                case SINGLE:
+                                case MIX:
+                                case COMPREHENSIVE:
+                                case ENLIGHTENMENT:
+                                case TRAINING_SINGLE:
+                                case TRAINING_MIX:
+                                case MUSIC_NETWORK:
+                                case HIGH:
+                                case HIGH_ONLINE:
+                                case HIGH_ONLINE_COURSE:
+                                    row.setMusicGroupCourseFee(row.getMusicGroupCourseFee().add(orderDetail.getPrice()));
+                                    break;
+                                case MUSICAL:
+                                    if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
+                                        row.setLeaseFee(getActualAmount(orderDetail.getPrice(), row));
+                                    } else {
+                                        row.setMusicalFee(orderDetail.getPrice());
+                                    }
+                                    break;
+                                case ACCESSORIES:
+                                case TEACHING:
+                                    row.setTeachingFee(row.getTeachingFee().add(orderDetail.getPrice()));
+                                    break;
+                                case OTHER:
+                                    row.setOtherFee(row.getOtherFee().add(orderDetail.getPrice()));
+                                    break;
+                                case MAINTENANCE:
+                                    row.setMaintenanceFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                case CLOUD_TEACHER:
+                                case CLOUD_TEACHER_PLUS:
+                                    row.setCloudTeacherFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                case DEGREE_REGISTRATION:
+                                    row.setDegreeFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                case PRACTICE:
+                                    row.setPracticeCourseFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                case VIP:
+                                    row.setVipCourseFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                case THEORY_COURSE:
+                                    row.setTheoryCourseFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                case REPAIR:
+                                    row.setRepairFee(getActualAmount(orderDetail.getPrice(), row));
+                                    break;
+                                default:
+                                    break;
+                            }
                         }
                     }
-                }
-                //专业
-                if (row.getGroupType().equals(GroupType.VIP)) {
-                    row.setVipCourseFee(row.getActualAmount());
-                } else if (row.getGroupType() == GroupType.ACTIVITY) {
-                    row.setVipCourseFee(row.getActualAmount());
-                } else if (row.getGroupType() == GroupType.LIVE) {
-                    row.setLiveCourseFee(row.getActualAmount());
-                } else if (row.getGroupType() == GroupType.MEMBER) {
-                    row.setCloudTeacherFee(row.getActualAmount());
-                } else if (row.getGroupType().equals(GroupType.SPORADIC)) {
-                    //考级报名
-                    if (row.getType().equals(OrderTypeEnum.DEGREE_REGISTRATION)) {
-                        if(StringUtils.isEmpty(row.getMemo())){
-                            row.setDegreeFee(row.getActualAmount());
-                        }else {
-                            String[] feeTypes = row.getMemo().split(";");
-                            List<String> feeTypeList = Arrays.asList(feeTypes);
-                            for (String feeTypeStr : feeTypeList) {
-                                int index = feeTypeStr.lastIndexOf(":");
-                                if (index < 0) {
-                                    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("网管课")) {
-                                    row.setPracticeCourseFee(typeFee);
-                                } else if (feeTypeStr.contains("乐理课")) {
-                                    row.setTheoryCourseFee(typeFee);
+                    //专业
+                    if (row.getGroupType().equals(GroupType.VIP)) {
+                        row.setVipCourseFee(row.getActualAmount());
+                    } else if (row.getGroupType() == GroupType.ACTIVITY) {
+                        row.setVipCourseFee(row.getActualAmount());
+                    } else if (row.getGroupType() == GroupType.LIVE) {
+                        row.setLiveCourseFee(row.getActualAmount());
+                    } else if (row.getGroupType() == GroupType.MEMBER) {
+                        row.setCloudTeacherFee(row.getActualAmount());
+                    } else if (row.getGroupType().equals(GroupType.SPORADIC)) {
+                        //考级报名
+                        if (row.getType().equals(OrderTypeEnum.DEGREE_REGISTRATION)) {
+                            if(StringUtils.isEmpty(row.getMemo())){
+                                row.setDegreeFee(row.getActualAmount());
+                            }else {
+                                String[] feeTypes = row.getMemo().split(";");
+                                List<String> feeTypeList = Arrays.asList(feeTypes);
+                                for (String feeTypeStr : feeTypeList) {
+                                    int index = feeTypeStr.lastIndexOf(":");
+                                    if (index < 0) {
+                                        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("网管课")) {
+                                        row.setPracticeCourseFee(typeFee);
+                                    } else if (feeTypeStr.contains("乐理课")) {
+                                        row.setTheoryCourseFee(typeFee);
+                                    }
                                 }
+                                row.setDegreeFee(row.getActualAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
                             }
-                            row.setDegreeFee(row.getActualAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
-                        }
-                    } else {
-                        if (row.getChargeType() != null && SporadicChargeTypeEnum.LEVEL.getCode().equals(row.getChargeType())) {
-                            row.setDegreeFee(row.getActualAmount());
-                        } else if (row.getChargeType() != null && SporadicChargeTypeEnum.PRACTICE_GROUP_BUY.getCode().equals(row.getChargeType())) {
-                            row.setPracticeCourseFee(row.getActualAmount());
-                        } else if (row.getChargeType() != null && SporadicChargeTypeEnum.MUSIC_UPKEEP.getCode().equals(row.getChargeType())) {
-                            row.setMaintenanceFee(row.getActualAmount());
-                        } else if (row.getChargeType() != null && SporadicChargeTypeEnum.VISITING_FEE.getCode().equals(row.getChargeType())) {
-                            row.setVisitFee(row.getActualAmount());
-                        } else if (row.getChargeType() != null && (SporadicChargeTypeEnum.RECHARGE.getCode().equals(row.getChargeType()) ||
-                                SporadicChargeTypeEnum.HIGH_ONLINE_ACTIVITY.getCode().equals(row.getChargeType()))) {
-                            row.setRechargeFee(row.getActualAmount());
-                        } else if (row.getChargeType() != null && SporadicChargeTypeEnum.CLOUD_TEACHER_BUY.getCode().equals(row.getChargeType())) {
-                            row.setCloudTeacherFee(row.getActualAmount());
                         } else {
-                            row.setOtherFee(row.getActualAmount());
-                        }
-                    }
-                } else if (row.getGroupType().equals(GroupType.PRACTICE)) {
-                    row.setPracticeCourseFee(row.getActualAmount());
-                } else if (row.getGroupType().equals(GroupType.REPLACEMENT)) {
-                    row.setMusicalFee(row.getActualAmount());
-                } else if (row.getGroupType().equals(GroupType.GOODS_SELL)) {
-                    row.setRetailGoodsFee(row.getActualAmount());
-                } else {
-                    List<StudentPaymentOrderExportDto> exportDtoList = feeByTypeMap.get(row.getId());
-                    if (!org.springframework.util.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()).
-                                    subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()));
-                        } else if (row.getGroupType().equals(OrderTypeEnum.REPAIR)) {
-                            row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
-                        } else if (row.getGroupType() == GroupType.OUTORDER) {
-                            //销售收入
-                            BigDecimal add = feeByType.getMusicalFee().add(row.getTeachingFee()).add(row.getMaintenanceProductFee()).add(feeByType.getOtherFee());
-                            //服务收入
-                            BigDecimal subtract = feeByType.getActualAmount().subtract(add);
-                            //如果是淘器微信那么就是零售
-                            if (Objects.equals("淘器微信", row.getMerNos()) && add.compareTo(BigDecimal.ZERO) > 0) {
-                                //如果有服务收入那么是课程学校采买
-                                row.setMusicalFee(BigDecimal.ZERO);
-                                row.setTeachingFee(BigDecimal.ZERO);
-                                row.setMaintenanceProductFee(BigDecimal.ZERO);
-                                row.setOtherFee(subtract);
-                                row.setRetailGoodsFee(add);
+                            if (row.getChargeType() != null && SporadicChargeTypeEnum.LEVEL.getCode().equals(row.getChargeType())) {
+                                row.setDegreeFee(row.getActualAmount());
+                            } else if (row.getChargeType() != null && SporadicChargeTypeEnum.PRACTICE_GROUP_BUY.getCode().equals(row.getChargeType())) {
+                                row.setPracticeCourseFee(row.getActualAmount());
+                            } else if (row.getChargeType() != null && SporadicChargeTypeEnum.MUSIC_UPKEEP.getCode().equals(row.getChargeType())) {
+                                row.setMaintenanceFee(row.getActualAmount());
+                            } else if (row.getChargeType() != null && SporadicChargeTypeEnum.VISITING_FEE.getCode().equals(row.getChargeType())) {
+                                row.setVisitFee(row.getActualAmount());
+                            } else if (row.getChargeType() != null && (SporadicChargeTypeEnum.RECHARGE.getCode().equals(row.getChargeType()) ||
+                                    SporadicChargeTypeEnum.HIGH_ONLINE_ACTIVITY.getCode().equals(row.getChargeType()))) {
+                                row.setRechargeFee(row.getActualAmount());
+                            } else if (row.getChargeType() != null && SporadicChargeTypeEnum.CLOUD_TEACHER_BUY.getCode().equals(row.getChargeType())) {
+                                row.setCloudTeacherFee(row.getActualAmount());
                             } else {
-                                //拆分导入订单
-                                if (row.getType() == OrderTypeEnum.OUTORDER || row.getType() == OrderTypeEnum.SCHOOL) {
-                                    if (row.getType() == OrderTypeEnum.SCHOOL) {
+                                row.setOtherFee(row.getActualAmount());
+                            }
+                        }
+                    } else if (row.getGroupType().equals(GroupType.PRACTICE)) {
+                        row.setPracticeCourseFee(row.getActualAmount());
+                    } else if (row.getGroupType().equals(GroupType.REPLACEMENT)) {
+                        row.setMusicalFee(row.getActualAmount());
+                    } else if (row.getGroupType().equals(GroupType.GOODS_SELL)) {
+                        row.setRetailGoodsFee(row.getActualAmount());
+                    } else {
+                        List<StudentPaymentOrderExportDto> exportDtoList = feeByTypeMap.get(row.getId());
+                        if (!org.springframework.util.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()).
+                                        subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()));
+                            } else if (row.getGroupType().equals(OrderTypeEnum.REPAIR)) {
+                                row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
+                            } else if (row.getGroupType() == GroupType.OUTORDER) {
+                                //销售收入
+                                BigDecimal add = feeByType.getMusicalFee().add(row.getTeachingFee()).add(row.getMaintenanceProductFee()).add(feeByType.getOtherFee());
+                                //服务收入
+                                BigDecimal subtract = feeByType.getActualAmount().subtract(add);
+                                //如果是淘器微信那么就是零售
+                                if (Objects.equals("淘器微信", row.getMerNos()) && add.compareTo(BigDecimal.ZERO) > 0) {
+                                    //如果有服务收入那么是课程学校采买
+                                    row.setMusicalFee(BigDecimal.ZERO);
+                                    row.setTeachingFee(BigDecimal.ZERO);
+                                    row.setMaintenanceProductFee(BigDecimal.ZERO);
+                                    row.setOtherFee(subtract);
+                                    row.setRetailGoodsFee(add);
+                                } else {
+                                    //拆分导入订单
+                                    if (row.getType() == OrderTypeEnum.OUTORDER || row.getType() == OrderTypeEnum.SCHOOL) {
+                                        if (row.getType() == OrderTypeEnum.SCHOOL) {
+                                            row.setMusicalFee(BigDecimal.ZERO);
+                                            row.setTeachingFee(BigDecimal.ZERO);
+                                            row.setMaintenanceProductFee(BigDecimal.ZERO);
+                                            row.setOtherFee(BigDecimal.ZERO);
+                                            row.setLargeMusicalFee(add);
+                                        }
+                                        row.setCourseSchoolBuyAmount(subtract);
+                                    } else if (row.getType() == OrderTypeEnum.OTHER) {
+                                        row.setOtherFee(row.getOtherFee().add(subtract));
+                                    } else {
                                         row.setMusicalFee(BigDecimal.ZERO);
                                         row.setTeachingFee(BigDecimal.ZERO);
                                         row.setMaintenanceProductFee(BigDecimal.ZERO);
                                         row.setOtherFee(BigDecimal.ZERO);
-                                        row.setLargeMusicalFee(add);
+                                        row.setRetailGoodsFee(add);
+                                        row.setMusicGroupCourseFee(subtract);
                                     }
-                                    row.setCourseSchoolBuyAmount(subtract);
-                                } else if (row.getType() == OrderTypeEnum.OTHER) {
-                                    row.setOtherFee(row.getOtherFee().add(subtract));
-                                } else {
-                                    row.setMusicalFee(BigDecimal.ZERO);
-                                    row.setTeachingFee(BigDecimal.ZERO);
-                                    row.setMaintenanceProductFee(BigDecimal.ZERO);
-                                    row.setOtherFee(BigDecimal.ZERO);
-                                    row.setRetailGoodsFee(add);
-                                    row.setMusicGroupCourseFee(subtract);
                                 }
+                                row.setTransferFee(BigDecimal.ZERO);
+                                row.setPlatformFee(BigDecimal.ZERO);
                             }
-                            row.setTransferFee(BigDecimal.ZERO);
-                            row.setPlatformFee(BigDecimal.ZERO);
                         }
                     }
-                }
-                row.setId(i);
-                row.setRepairFee(row.getRepairFee().add(row.getMaintenanceProductFee()));
-                row.setOrderAmount(row.getExpectAmount().add(row.getCouponRemitFee()));
-                i++;
-                //学校课程采买
-                incomeDto.setCoursePurchaseIncome(incomeDto.getCoursePurchaseIncome()
-                        .add(row.getCourseSchoolBuyAmount()));
-                //考级
-                incomeDto.setExamIncome(incomeDto.getExamIncome()
-                        .add(row.getDegreeFee()));
-                //维修费用
-                incomeDto.setMaintenanceCost(incomeDto.getMaintenanceCost()
-                        .add(row.getRepairFee()));
-                //其他服务收入
-                incomeDto.setOtherServiceIncome(incomeDto.getOtherServiceIncome()
-                        .add(row.getLeaseFee())
-                        .add(row.getVisitFee())
-                        .add(row.getRechargeFee())
-                        .add(row.getOtherFee())
-                );
-                //团购乐器
-                incomeDto.setGroupPurchaseInstruments(incomeDto.getGroupPurchaseInstruments()
-                        .add(row.getMusicalFee()));
-                //零售乐器,计入其他
-                incomeDto.setOtherIncome(incomeDto.getOtherIncome()
-                        .add(row.getRetailGoodsFee()));
-                if(row.getGroupType() == GroupType.GOODS_SELL){
-                    //零售教辅,计入其他
-                    incomeDto.setOtherIncome(incomeDto.getOtherIncome()
-                            .add(row.getTeachingFee()));
-                }else {
-                    //团购教辅
-                    incomeDto.setGroupPurchaseTeachingAids(incomeDto.getGroupPurchaseTeachingAids()
-                            .add(row.getTeachingFee()));
-                }
-                //区分零售月保
-                if(row.getGroupType() == GroupType.MAINTENANCE){
-                    //零售月保,计入其他
+                    row.setId(i);
+                    row.setRepairFee(row.getRepairFee().add(row.getMaintenanceProductFee()));
+                    row.setOrderAmount(row.getExpectAmount().add(row.getCouponRemitFee()));
+                    i++;
+                    //学校课程采买
+                    incomeDto.setCoursePurchaseIncome(incomeDto.getCoursePurchaseIncome()
+                            .add(row.getCourseSchoolBuyAmount()));
+                    //考级
+                    incomeDto.setExamIncome(incomeDto.getExamIncome()
+                            .add(row.getDegreeFee()));
+                    //维修费用
+                    incomeDto.setMaintenanceCost(incomeDto.getMaintenanceCost()
+                            .add(row.getRepairFee()));
+                    //其他服务收入
+                    incomeDto.setOtherServiceIncome(incomeDto.getOtherServiceIncome()
+                            .add(row.getLeaseFee())
+                            .add(row.getVisitFee())
+                            .add(row.getRechargeFee())
+                            .add(row.getOtherFee())
+                    );
+                    //团购乐器
+                    incomeDto.setGroupPurchaseInstruments(incomeDto.getGroupPurchaseInstruments()
+                            .add(row.getMusicalFee()));
+                    //零售乐器,计入其他
                     incomeDto.setOtherIncome(incomeDto.getOtherIncome()
-                            .add(row.getMaintenanceFee()));
-                }else {
-                    //团购月保
-                    incomeDto.setInstrumentInsuranceCost(incomeDto.getInstrumentInsuranceCost()
-                            .add(row.getMaintenanceFee()));
-                }
+                            .add(row.getRetailGoodsFee()));
+                    if(row.getGroupType() == GroupType.GOODS_SELL){
+                        //零售教辅,计入其他
+                        incomeDto.setOtherIncome(incomeDto.getOtherIncome()
+                                .add(row.getTeachingFee()));
+                    }else {
+                        //团购教辅
+                        incomeDto.setGroupPurchaseTeachingAids(incomeDto.getGroupPurchaseTeachingAids()
+                                .add(row.getTeachingFee()));
+                    }
+                    //区分零售月保
+                    if(row.getGroupType() == GroupType.MAINTENANCE){
+                        //零售月保,计入其他
+                        incomeDto.setOtherIncome(incomeDto.getOtherIncome()
+                                .add(row.getMaintenanceFee()));
+                    }else {
+                        //团购月保
+                        incomeDto.setInstrumentInsuranceCost(incomeDto.getInstrumentInsuranceCost()
+                                .add(row.getMaintenanceFee()));
+                    }
 
-                //大件乐器
-                incomeDto.setLargeInstruments(incomeDto.getLargeInstruments()
-                        .add(row.getLargeMusicalFee()));
+                    //大件乐器
+                    incomeDto.setLargeInstruments(incomeDto.getLargeInstruments()
+                            .add(row.getLargeMusicalFee()));
+                }
             }
             //学员指导课费
             incomeDto.setStudentGuidanceIncome(incomeDto.getStudentGuidanceIncome().add(courseIncome.getOrDefault(organId,BigDecimal.ZERO)));