|
@@ -190,6 +190,8 @@ public class ExportServiceImpl implements ExportService {
|
|
|
private StudentTeacherMapperDao studentTeacherMapperDao;
|
|
|
@Autowired
|
|
|
private TeacherCloudCourseReportService teacherCloudCourseReportService;
|
|
|
+ @Autowired
|
|
|
+ private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
|
|
|
|
private static final ExecutorService exportExecutorService = Executors.newFixedThreadPool(10);
|
|
|
@Autowired
|
|
@@ -383,6 +385,43 @@ public class ExportServiceImpl implements ExportService {
|
|
|
exportManageFuncMap.put(ExportEnum.EXPORT_CLOUD_TEACHER_SUM_DETAIL, (info) -> exportCloudTeacherSumDetail(info));
|
|
|
exportManageFuncMap.put(ExportEnum.CLASS_GROUP, info -> exportClassGroup(info));
|
|
|
exportManageFuncMap.put(ExportEnum.EXPORT_TEACHER_CLOUD_COURSE_REPORT, info -> exportTeacherCloudCourseReport(info));
|
|
|
+ exportManageFuncMap.put(ExportEnum.EXPORT_OA_SUMMARY_EXPENSES, info -> exportOaSummaryExpenses(info));
|
|
|
+ exportManageFuncMap.put(ExportEnum.EXPORT_OA_SUMMARY_EXPENSES_DETAIL, info -> exportOaSummaryExpensesDetail(info));
|
|
|
+ exportManageFuncMap.put(ExportEnum.EXPORT_OPERATING_SUMMARY_INCOME, info -> exportOperatingSummaryIncome(info));
|
|
|
+ }
|
|
|
+
|
|
|
+ private HttpResponseResult exportOaSummaryExpenses(Map<String, Object> info) {
|
|
|
+ String month = getParam(info, "month", String.class);
|
|
|
+ SysUser user = sysUserService.getUser();
|
|
|
+ ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.EXPORT_OA_SUMMARY_EXPENSES,user.getId());
|
|
|
+ return this.asyncExport(() -> this.initExportInfo(operatingReportNewService.queryOASummaryExpenses(month),
|
|
|
+ managerDownload,ExportEnum.EXPORT_OA_SUMMARY_EXPENSES),
|
|
|
+ managerDownload.getName());
|
|
|
+ }
|
|
|
+
|
|
|
+ private HttpResponseResult exportOaSummaryExpensesDetail(Map<String, Object> info) {
|
|
|
+ String month = getParam(info, "month", String.class);
|
|
|
+ SysUser user = sysUserService.getUser();
|
|
|
+ ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.EXPORT_OA_SUMMARY_EXPENSES_DETAIL,user.getId());
|
|
|
+ return this.asyncExport(() -> this.initExportInfo(operatingReportNewService.queryOASummaryExpensesDetail(month),
|
|
|
+ managerDownload,ExportEnum.EXPORT_OA_SUMMARY_EXPENSES_DETAIL),
|
|
|
+ managerDownload.getName());
|
|
|
+ }
|
|
|
+
|
|
|
+ private HttpResponseResult exportOperatingSummaryIncome(Map<String, Object> info) {
|
|
|
+ String month = getParam(info, "month", String.class);
|
|
|
+ Map<String, Object> params = new HashMap<>(1);
|
|
|
+ params.put("month",month);
|
|
|
+ int count = studentPaymentOrderDao.queryCount1(params);
|
|
|
+ if (count <= 0) {
|
|
|
+ return BaseController.failed("没有可导出的数据");
|
|
|
+ }
|
|
|
+ if (count > 50000) {
|
|
|
+ return BaseController.failed("数据集太大,不能导出.最大数据集不能超过50000");
|
|
|
+ }
|
|
|
+ ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.EXPORT_OPERATING_SUMMARY_INCOME, sysUserService.getUserId());
|
|
|
+ return this.asyncExport(() -> this.operatingSummaryIncome(params, managerDownload),
|
|
|
+ managerDownload.getName());
|
|
|
}
|
|
|
|
|
|
private List<StudentServeExportDto> exportStudentServeInfo(Map<String, Object> info) {
|
|
@@ -1329,7 +1368,9 @@ public class ExportServiceImpl implements ExportService {
|
|
|
}
|
|
|
}
|
|
|
for (MusicGroupBuildLog groupAuditSuccess : musicGroupAuditSuccess) {
|
|
|
- if (!groupAuditSuccess.getMusicGroupId().equals(musicGroupRegister.getMusicGroupId())) continue;
|
|
|
+ if (!groupAuditSuccess.getMusicGroupId().equals(musicGroupRegister.getMusicGroupId())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
musicGroupRegisterMap.put("auditSuccessTime", groupAuditSuccess.getCreateTime());
|
|
|
}
|
|
|
musicGroupRegisterMap.put("groupBuyMusicalNum", musicGroupRegister.getGroupBuyMusicalNum());
|
|
@@ -2094,7 +2135,9 @@ public class ExportServiceImpl implements ExportService {
|
|
|
}
|
|
|
if (row.getChargeType() != null) {
|
|
|
for (SporadicChargeTypeEnum chargeType : SporadicChargeTypeEnum.values()) {
|
|
|
- if (!chargeType.getCode().equals(row.getChargeType())) continue;
|
|
|
+ if (!chargeType.getCode().equals(row.getChargeType())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
row.setSporadicType(chargeType.getMsg());
|
|
|
}
|
|
|
}
|
|
@@ -2135,8 +2178,6 @@ public class ExportServiceImpl implements ExportService {
|
|
|
if (!CollectionUtils.isEmpty(exportDtoList)) {
|
|
|
StudentPaymentOrderExportDto feeByType = exportDtoList.get(0);
|
|
|
BigDecimal childRepairFee = childRepairMap.get(row.getId()) == null ? BigDecimal.ZERO : childRepairMap.get(row.getId());
|
|
|
-// 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));
|
|
@@ -2265,6 +2306,299 @@ public class ExportServiceImpl implements ExportService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void operatingSummaryIncome(Map<String, Object> params, ManagerDownload managerDownload) {
|
|
|
+ List<StudentPaymentOrderExportDto> studentPaymentOrderExportDtos = studentPaymentOrderDao.ExportQueryPage1(params);
|
|
|
+ long i = 1;
|
|
|
+ //获取机构费率
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ List<Integer> organIds = studentPaymentOrderExportDtos.stream().map(e -> e.getOrganId()).distinct().collect(Collectors.toList());
|
|
|
+ Map<Integer, String> userOrganNameMap = organizationService.getMap("organization","id_","name_",organIds,managerDownload.getTenantId(),Integer.class,String.class);
|
|
|
+ //按分部分组
|
|
|
+ Map<Integer, List<StudentPaymentOrderExportDto>> listMap = studentPaymentOrderExportDtos.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
|
|
|
+ List<OperatingTotalIncomeDto> incomeDtos = new ArrayList<>();
|
|
|
+ //承担课程的云教练收入
|
|
|
+ String month = params.get("month").toString();
|
|
|
+ String firstDayOfMonth = DateUtil.dateToString(DateUtil.getFirstDayOfMonth(DateUtil.stringToDate(month,DateUtil.ISO_YEAR_MONTH_FORMAT)),DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
+ String lastDayOfMonth = DateUtil.dateToString(DateUtil.getLastDayOfMonth(DateUtil.stringToDate(month,DateUtil.ISO_YEAR_MONTH_FORMAT)),DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
+ Map<Integer, BigDecimal> groupCloudAmount = MapUtil.convertIntegerMap(cloudTeacherOrderDao.sumGroupCloudAmount(month,firstDayOfMonth,lastDayOfMonth));
|
|
|
+ //不承担课程的云教练收入
|
|
|
+ Map<Integer, BigDecimal> personalCloudAmount = MapUtil.convertIntegerMap(cloudTeacherOrderDao.sumPersonalCloudAmount(month,firstDayOfMonth,lastDayOfMonth));
|
|
|
+
|
|
|
+// List<Map<Integer, BigDecimal>> personIncomeMapList = cloudTeacherOrderDao.sumPersonIncome(params.get("month").toString());
|
|
|
+// Map<Integer, BigDecimal> personIncomeMap = new HashMap<>();
|
|
|
+// if(!CollectionUtils.isEmpty(personIncomeMapList)){
|
|
|
+// personIncomeMap = MapUtil.convertIntegerMap(personIncomeMapList);
|
|
|
+// }
|
|
|
+ for (Integer organId : listMap.keySet()) {
|
|
|
+ OperatingTotalIncomeDto incomeDto = new OperatingTotalIncomeDto();
|
|
|
+ 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) {
|
|
|
+ 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 (row.getGroupType() != GroupType.GOODS_SELL) {
|
|
|
+ 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.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()));
|
|
|
+ }
|
|
|
+ } 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 (!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.setRetailGoodsFee(add);
|
|
|
+ row.setMusicGroupCourseFee(subtract);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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.setStudentGuidanceIncome(incomeDto.getStudentGuidanceIncome()
|
|
|
+ .add(row.getMusicGroupCourseFee())
|
|
|
+ .add(row.getVipCourseFee())
|
|
|
+ .add(row.getPracticeCourseFee())
|
|
|
+ .add(row.getTheoryCourseFee()));
|
|
|
+ //学校课程采买
|
|
|
+ incomeDto.setCoursePurchaseIncome(incomeDto.getCoursePurchaseIncome()
|
|
|
+ .add(row.getCourseSchoolBuyAmount()));
|
|
|
+ //考级
|
|
|
+ incomeDto.setExamIncome(incomeDto.getExamIncome()
|
|
|
+ .add(row.getDegreeFee()));
|
|
|
+ //维修费用
|
|
|
+ incomeDto.setMaintenanceCost(incomeDto.getMaintenanceCost()
|
|
|
+ .add(row.getRepairFee()));
|
|
|
+ //月保费用
|
|
|
+ incomeDto.setInstrumentInsuranceCost(incomeDto.getInstrumentInsuranceCost()
|
|
|
+ .add(row.getMaintenanceFee()));
|
|
|
+ //其他服务收入
|
|
|
+ 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()));
|
|
|
+ }
|
|
|
+
|
|
|
+ //大件乐器
|
|
|
+ incomeDto.setLargeInstruments(incomeDto.getLargeInstruments()
|
|
|
+ .add(row.getLargeMusicalFee()));
|
|
|
+ }
|
|
|
+ incomeDto.setCloudCoachIncome(incomeDto.getCloudCoachIncome().add(groupCloudAmount.getOrDefault(organId,BigDecimal.ZERO)));
|
|
|
+ incomeDto.setSaleCloudCoachIncome(incomeDto.getSaleCloudCoachIncome().add(personalCloudAmount.getOrDefault(organId,BigDecimal.ZERO)));
|
|
|
+ //服务收入
|
|
|
+ incomeDto.setServiceIncome(incomeDto.getLargeInstruments()
|
|
|
+ .add(incomeDto.getStudentGuidanceIncome())
|
|
|
+ .add(incomeDto.getCoursePurchaseIncome())
|
|
|
+ .add(incomeDto.getExamIncome())
|
|
|
+ .add(incomeDto.getMaintenanceCost())
|
|
|
+ .add(incomeDto.getInstrumentInsuranceCost())
|
|
|
+ .add(incomeDto.getOtherServiceIncome())
|
|
|
+ );
|
|
|
+ incomeDto.setSalesIncome(incomeDto.getSalesIncome()
|
|
|
+ .add(incomeDto.getCloudCoachIncome())
|
|
|
+ .add(incomeDto.getGroupPurchaseInstruments())
|
|
|
+ .add(incomeDto.getGroupPurchaseTeachingAids())
|
|
|
+ .add(incomeDto.getLargeInstruments())
|
|
|
+ );
|
|
|
+ incomeDtos.add(incomeDto);
|
|
|
+ }
|
|
|
+ HSSFWorkbook workbook = getHSSFWorkbook(incomeDtos, ExportEnum.EXPORT_OPERATING_SUMMARY_INCOME);
|
|
|
+ exportManagerDownload(workbook, managerDownload);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public void orderListSum(Map<String, Object> params, ManagerDownload managerDownload) {
|
|
|
List<StudentPaymentOrderExportDto> studentPaymentOrderExportDtos = studentPaymentOrderService.ExportQueryPage(params);
|
|
|
//获取机构费率
|
|
@@ -2538,6 +2872,7 @@ public class ExportServiceImpl implements ExportService {
|
|
|
return subtract;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public void mallRouteOrderList(Map<String, Object> params, ManagerDownload managerDownload) {
|
|
|
//获取分润订单(不包含订单详情)(纯余额支付不处理)
|
|
|
List<StudentPaymentOrderMallExportDto> studentPaymentOrderExportDtos = studentPaymentRouteOrderDao.exportMallQueryPage(params);
|
|
@@ -2607,6 +2942,7 @@ public class ExportServiceImpl implements ExportService {
|
|
|
exportManagerDownload(workbook, managerDownload);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public void routeOrderList(Map<String, Object> params, ManagerDownload managerDownload) {
|
|
|
//获取分润订单(不包含订单详情)(纯余额支付不处理)
|
|
|
List<StudentPaymentOrderExportDto> studentPaymentOrderExportDtos = studentPaymentRouteOrderDao.ExportQueryPage1(params);
|
|
@@ -3059,7 +3395,9 @@ public class ExportServiceImpl implements ExportService {
|
|
|
groupTypeConsumerMap1.put(GroupType.SPORADIC, (basicOrder) -> {
|
|
|
if (basicOrder.getType() != OrderTypeEnum.DEGREE_REGISTRATION && basicOrder.getChargeType() != null) {
|
|
|
for (SporadicChargeTypeEnum chargeType : SporadicChargeTypeEnum.values()) {
|
|
|
- if (!chargeType.getCode().equals(basicOrder.getChargeType())) continue;
|
|
|
+ if (!chargeType.getCode().equals(basicOrder.getChargeType())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
basicOrder.setSporadicType(chargeType.getMsg());
|
|
|
}
|
|
|
}
|