From 63546eb40af126089edb1d58f5a33b7e0507e177 Mon Sep 17 00:00:00 2001 From: Lx <935448346@qq.com> Date: Tue, 1 Jul 2025 14:27:36 +0800 Subject: [PATCH] 0701 --- .../impl/DlDriveSchoolCoachServiceImpl.java | 19 +++- .../module/base/vo/BusinessRecordVO.java | 3 + .../module/base/vo/DlDriveSchoolStaffVO.java | 2 + .../base/vo/DlDriveSchoolStudentVO.java | 3 + .../controller/admin/ProcessController.java | 19 +++- .../admin/SchoolCommissionController.java | 22 ++--- .../admin/SchoolCourseOrderController.java | 20 ++-- .../course/entity/SchoolCommission.java | 10 ++ .../course/entity/SchoolCourseOrder.java | 5 + .../course/mapper/SchoolCommissionMapper.java | 2 + .../mapper/SchoolCourseOrderMapper.java | 7 +- .../service/SchoolCommissionService.java | 2 + .../service/SchoolCourseOrderService.java | 1 + .../service/impl/ProcessServiceImpl.java | 2 + .../impl/SchoolCommissionServiceImpl.java | 8 ++ .../impl/SchoolCourseOrderServiceImpl.java | 5 + .../module/course/vo/CommissionExportVO.java | 75 ++++++++++++--- .../course/vo/CommissionStatisticsVO.java | 20 ++++ .../module/course/vo/CourseOrderExportVO.java | 59 +++++++++--- .../course/vo/CourseOrderStatisticsVO.java | 20 ++++ .../yudao/module/course/vo/ProcessVO.java | 5 + .../mapper/base/DlDriveSchoolCoachMapper.xml | 1 + .../base/DlDriveSchoolStudentMapper.xml | 6 +- .../mapper/course/SchoolCommissionMapper.xml | 64 ++++++++++++- .../mapper/course/SchoolCourseOrderMapper.xml | 91 ++++++++++++++++++- 25 files changed, 407 insertions(+), 64 deletions(-) create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionStatisticsVO.java create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderStatisticsVO.java diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java index 00faf0de..2c60bc36 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java @@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.constant.InspectionConstants; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.mapper.SchoolCommissionMapper; import cn.iocoder.yudao.module.course.service.ProcessService; +import cn.iocoder.yudao.module.course.service.SchoolCourseSchemeService; import cn.iocoder.yudao.module.course.vo.ProcessVO; import cn.iocoder.yudao.module.exam.mapper.ExamBatchItemMapper; import cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO; @@ -63,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.time.format.DateTimeFormatter; import java.util.*; @@ -117,6 +119,9 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl getBusinessManager(BusinessRecordVO businessRecordVO, Page page) { - return dlDriveSchoolCoachMapper.getBusinessManager(businessRecordVO, page); + IPage businessManager = dlDriveSchoolCoachMapper.getBusinessManager(businessRecordVO, page); + List records = businessManager.getRecords(); + for (BusinessRecordVO record : records) { + BigDecimal deduct = BigDecimal.ZERO; + if(record.getScheme() != null){ + deduct = schemeService.getSchemeById(record.getScheme(), 0); + }else{ + deduct = schemeService.getCourseDeduct(record.getCourseId(), 0); + } + record.setSubsidy(deduct); + } + businessManager.setRecords(records); + return businessManager; } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordVO.java index fbe3c2a9..e19c7218 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordVO.java @@ -15,6 +15,7 @@ public class BusinessRecordVO extends TenantBaseDO { private Integer age; private String sex; private String channel; + private String courseId; private String courseName; private String coachUserName; private BigDecimal reserveMoney; @@ -25,5 +26,7 @@ public class BusinessRecordVO extends TenantBaseDO { private String businessName; private String businessPhone; private LocalDateTime createTime; + private BigDecimal subsidy; + private String scheme; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java index 47ec13ac..d19d9e81 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java @@ -96,4 +96,6 @@ public class DlDriveSchoolStaffVO { private Date enrollTime; /**工作性质 */ private String workName; + /**面签时间 */ + private Date signTime; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java index 32534110..ce4253d9 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java @@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; @Schema(description = "管理后台 - 驾校学员 Response VO") @Data @@ -47,4 +48,6 @@ public class DlDriveSchoolStudentVO extends DlDriveSchoolStudent { private Integer isSign; /**查询人员类型*/ private String pType; + /**面签时间*/ + private Date signTime; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java index 98adda5c..ef7501f7 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java @@ -235,6 +235,13 @@ public class ProcessController { return success(processService.getPassStudent(coachId, subject, courseType, name, sort, page)); } + /** + * 导出界面获取数据 + * @param exportVO + * @param pageNo + * @param pageSize + * @return + */ @GetMapping("/getProcessExportData") public CommonResult> getProcessExportData(ProcessExportVO exportVO, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @@ -243,14 +250,20 @@ public class ProcessController { return success(processService.getProcessExportData(exportVO, page)); } + /** + * 导出 + * @param exportVO + * @param response + * @throws IOException + */ @GetMapping("/export") public void exportCommission(ProcessExportVO exportVO, HttpServletResponse response) throws IOException { - // 1. 校验导出类型 + // 校验导出类型 if (exportVO.getExportType() == null || !Arrays.asList("current", "all", "range").contains(exportVO.getExportType())) { throw new IllegalArgumentException("无效的导出类型: " + exportVO.getExportType()); } - // 2. 根据不同类型查询数据 + // 根据不同类型查询数据 List exportData; String fileName = "学员进度记录"; @@ -270,7 +283,7 @@ public class ProcessController { default: throw new IllegalArgumentException("无效的导出类型: " + exportVO.getExportType()); } - // 4. 导出Excel + // 导出Excel ExcelUtils.write(response, fileName + ".xlsx", "学员进度记录", ProcessExportVO.class, exportData); } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCommissionController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCommissionController.java index 56b810af..8dee34b1 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCommissionController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCommissionController.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.base.vo.DriveSchoolCourseDeductVO; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.service.SchoolCommissionService; import cn.iocoder.yudao.module.course.vo.CommissionExportVO; +import cn.iocoder.yudao.module.course.vo.CommissionStatisticsVO; import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -114,6 +115,11 @@ public class SchoolCommissionController { return success(schoolCommissionService.getAllCommissionPage(commissionExportVO, page)); } + @GetMapping("/getCommissionStatistics") + public CommonResult getCommissionStatistics(CommissionExportVO commissionExportVO){ + return success(schoolCommissionService.getCommissionStatistics(commissionExportVO)); + } + /** * 导出数据(支持三种模式) * @param exportVO 包含导出类型(exportType)、分页参数等 @@ -147,21 +153,19 @@ public class SchoolCommissionController { }*/ @GetMapping("/export") public void exportCommission(CommissionExportVO exportVO, HttpServletResponse response) throws IOException { - // 1. 校验导出类型 + // 校验导出类型 if (exportVO.getExportType() == null || !Arrays.asList("current", "all", "range").contains(exportVO.getExportType())) { throw new IllegalArgumentException("无效的导出类型: " + exportVO.getExportType()); } - // 2. 根据不同类型查询数据 + // 根据不同类型查询数据 List exportData; String fileName = "提成记录"; - int offset = 0; // 序号偏移量(用于分页连续) switch (exportVO.getExportType()) { case "current": exportData = schoolCommissionService.getCommissionList(exportVO); fileName += "_第" + exportVO.getPageNo() + "页"; - offset = (exportVO.getPageNo() - 1) * exportVO.getPageSize(); // 计算分页偏移 break; case "all": exportData = schoolCommissionService.getAllCommissionList(exportVO); @@ -170,20 +174,12 @@ public class SchoolCommissionController { case "range": exportData = schoolCommissionService.getCommissionListByRange(exportVO); fileName += "_" + exportVO.getStartPage() + "-" + exportVO.getEndPage() + "页"; - offset = (exportVO.getStartPage() - 1) * exportVO.getPageSize(); // 自定义范围偏移 break; default: throw new IllegalArgumentException("无效的导出类型: " + exportVO.getExportType()); } - // 3. 设置序号(考虑分页偏移) - if (exportData != null && !exportData.isEmpty()) { - for (int i = 0; i < exportData.size(); i++) { - exportData.get(i).setSerialNumber(offset + i + 1); // 确保序号连续 - } - } - - // 4. 导出Excel + // 导出Excel ExcelUtils.write(response, fileName + ".xlsx", "提成记录", CommissionExportVO.class, exportData); } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java index a1a60cd8..67c98548 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java @@ -203,24 +203,27 @@ public class SchoolCourseOrderController { return success(schoolCourseOrderService.getOrderExportData(exportVO, page)); } + @GetMapping("/getOrderStatistics") + public CommonResult getOrderStatistics(CourseOrderExportVO exportVO) { + return success(schoolCourseOrderService.getOrderStatistics(exportVO)); + } + @GetMapping("/export") public void exportCommission(CourseOrderExportVO exportVO, HttpServletResponse response) throws IOException { - // 1. 校验导出类型 + // 校验导出类型 if (exportVO.getExportType() == null || !Arrays.asList("current", "all", "range").contains(exportVO.getExportType())) { throw new IllegalArgumentException("无效的导出类型: " + exportVO.getExportType()); } - // 2. 根据不同类型查询数据 + // 根据不同类型查询数据 List exportData; String fileName = "学员记录"; - int offset = 0; // 序号偏移量(用于分页连续) switch (exportVO.getExportType()) { case "current": exportData = schoolCourseOrderService.getOrderList(exportVO); fileName += "_第" + exportVO.getPageNo() + "页"; - offset = (exportVO.getPageNo() - 1) * exportVO.getPageSize(); // 计算分页偏移 break; case "all": exportData = schoolCourseOrderService.getAllOrderList(exportVO); @@ -229,20 +232,13 @@ public class SchoolCourseOrderController { case "range": exportData = schoolCourseOrderService.getOrderListByRange(exportVO); fileName += "_" + exportVO.getStartPage() + "-" + exportVO.getEndPage() + "页"; - offset = (exportVO.getStartPage() - 1) * exportVO.getPageSize(); // 自定义范围偏移 break; default: throw new IllegalArgumentException("无效的导出类型: " + exportVO.getExportType()); } - // 3. 设置序号(考虑分页偏移) - if (exportData != null && !exportData.isEmpty()) { - for (int i = 0; i < exportData.size(); i++) { - exportData.get(i).setSerialNumber(offset + i + 1); // 确保序号连续 - } - } - // 4. 导出Excel + // 导出Excel ExcelUtils.write(response, fileName + ".xlsx", "学员记录", CourseOrderExportVO.class, exportData); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCommission.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCommission.java index 3a2f66e7..cdd410ef 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCommission.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCommission.java @@ -111,4 +111,14 @@ public class SchoolCommission extends TenantBaseDO { */ private Long cashierUserId; + /** + * 考试通过时间 + */ + private Date examTime; + + /** + * 缴纳学费金额 + */ + private BigDecimal studentPay; + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java index 01a191c1..28f15d55 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java @@ -164,5 +164,10 @@ public class SchoolCourseOrder extends TenantBaseDO { */ private Date payFeesTime; + /** + * 收款账号 + */ + private String paymentAccount; + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCommissionMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCommissionMapper.java index 2deebc43..1ee700b3 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCommissionMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCommissionMapper.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.course.mapper; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.vo.CommissionExportVO; +import cn.iocoder.yudao.module.course.vo.CommissionStatisticsVO; import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -42,4 +43,5 @@ public interface SchoolCommissionMapper extends BaseMapper { IPage getCommissionListByCoachId(@Param("entity") SchoolCommissionVO entity, Page page); IPage getCommissionListExport(@Param("entity") CommissionExportVO entity, Page page); + CommissionStatisticsVO getCommissionStatistics(@Param("entity") CommissionExportVO entity); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java index 7b97e45e..0fa87ef3 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java @@ -1,10 +1,7 @@ package cn.iocoder.yudao.module.course.mapper; import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; -import cn.iocoder.yudao.module.course.vo.CourseOrderExportVO; -import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; -import cn.iocoder.yudao.module.course.vo.SchoolCourseOrderBusinessVO; -import cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO; +import cn.iocoder.yudao.module.course.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -73,4 +70,6 @@ public interface SchoolCourseOrderMapper extends BaseMapper { IPage getOrderMoneyByCoachId(@Param("entity")SchoolCourseOrderVO entity, Page page); IPage getOrderExportData(@Param("entity")CourseOrderExportVO entity, Page page); + + CourseOrderStatisticsVO getOrderStatistics(@Param("entity")CourseOrderExportVO entity); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCommissionService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCommissionService.java index 8791366a..b789fcf8 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCommissionService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCommissionService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.course.service; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.vo.CommissionExportVO; +import cn.iocoder.yudao.module.course.vo.CommissionStatisticsVO; import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -59,6 +60,7 @@ public interface SchoolCommissionService extends IService { IPage getCommissionListByCoachId(SchoolCommissionVO schoolCommissionVO, Page page); IPage getAllCommissionPage(CommissionExportVO exportVO,Page page); + CommissionStatisticsVO getCommissionStatistics(CommissionExportVO exportVO); public List getCommissionList(CommissionExportVO exportVO); public List getAllCommissionList(CommissionExportVO exportVO); diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java index b622f59a..184c4d09 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java @@ -143,6 +143,7 @@ public interface SchoolCourseOrderService extends IService { IPage getOrderExportData(CourseOrderExportVO exportVO, Page page); + CourseOrderStatisticsVO getOrderStatistics(CourseOrderExportVO exportVO); List getOrderList(CourseOrderExportVO exportVO); List getAllOrderList(CourseOrderExportVO exportVO); diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java index 7d3a5e17..a65da904 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java @@ -405,6 +405,8 @@ public class ProcessServiceImpl extends ServiceImpl impl schoolCommission.setCheckName(sysUser.getNickname()); schoolCommission.setCheckRemark(process.getFinanceRemark()); schoolCommission.setStudentIdCard(process.getStudentIdCard()); + schoolCommission.setExamTime(process.getExamTime()); + schoolCommission.setStudentPay(process.getStudentPay()); // 检查是否已存在记录 SchoolCommission existing = schoolCommissionService.getOne( diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCommissionServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCommissionServiceImpl.java index 7fd7a509..87dc95ba 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCommissionServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCommissionServiceImpl.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.mapper.SchoolCommissionMapper; import cn.iocoder.yudao.module.course.service.SchoolCommissionService; import cn.iocoder.yudao.module.course.vo.CommissionExportVO; +import cn.iocoder.yudao.module.course.vo.CommissionStatisticsVO; import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; @@ -169,6 +170,11 @@ public class SchoolCommissionServiceImpl extends ServiceImpl getCommissionList(CommissionExportVO exportVO) { @@ -203,4 +209,6 @@ public class SchoolCommissionServiceImpl extends ServiceImpl getOrderList(CourseOrderExportVO exportVO) { // 分页查询当前页 diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionExportVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionExportVO.java index 20e45d91..6a3c729d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionExportVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionExportVO.java @@ -7,60 +7,76 @@ import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; @Data public class CommissionExportVO { - @ExcelProperty(value = " ", index = 0) + /*@ExcelProperty(value = " ", index = 0) @ColumnWidth(8) - private Integer serialNumber; + private Integer serialNumber;*/ @ExcelIgnore private Long coachId; - @ExcelProperty(value = "教练", index = 1) + @ExcelProperty(value = "教练", index = 0) private String coachName; - @ExcelProperty(value = "教练身份证号", index = 2) + @ExcelProperty(value = "教练身份证号", index = 1) private String coachIdCard; @ExcelIgnore private Long studentId; - @ExcelProperty(value = "学员", index = 3) + @ExcelProperty(value = "学员", index = 2) private String studentName; - @ExcelProperty(value = "学员身份证号", index = 4) + @ExcelProperty(value = "学员身份证号", index = 3) private String studentIdCard; @ExcelIgnore private String courseId; - @ExcelProperty(value = "课程名称", index = 5) + @ExcelProperty(value = "课程名称", index = 4) private String courseName; - @ExcelProperty(value = "课程类型", index = 6) + @ExcelProperty(value = "课程类型", index = 5) private String courseType; - @ExcelProperty(value = "科目", index = 7) + @ExcelProperty(value = "科目", index = 6) private String subject; - @ExcelProperty(value = "提成金额(元)", index = 8) + @ExcelIgnore + private Date examTime; + + @ExcelProperty(value = "考试通过时间", index = 7) + private String examTimeStr; + + @ExcelProperty(value = "缴纳学费金额", index = 8) + private BigDecimal studentPay; + + @ExcelProperty(value = "提成金额(元)", index = 9) private String commissionAmount; - @ExcelProperty(value = "审核人", index = 9) + @ExcelProperty(value = "审核人", index = 10) private String checkName; - @ExcelProperty(value = "审核时间", index = 10) + @ExcelProperty(value = "审核时间", index = 11) // @DateTimeFormat("yyyy-MM-dd HH:mm:ss") @ColumnWidth(20) private String createTimeStr; - @ExcelProperty(value = "备注", index = 11) + @ExcelProperty(value = "备注", index = 12) private String checkRemark; + @ExcelIgnore + private String source; + + @ExcelProperty(value = "渠道", index = 13) + private String sourceStr; + @ExcelIgnore private String startTimeStr; @ExcelIgnore @@ -89,4 +105,37 @@ public class CommissionExportVO { this.createTimeStr = sdf.format(createTime); } } + public void setExamTime(Date examTime) { + if (examTime != null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.examTimeStr = sdf.format(examTime); + } + } + + public void setSource(String source) { + this.source = source; + + if (source == null) { + this.sourceStr = ""; + return; + } + + switch (source) { + case "01": + this.sourceStr = "驾校统招"; + break; + case "02": + this.sourceStr = "教练自招"; + break; + case "03": + this.sourceStr = "自来客户"; + break; + case "04": + this.sourceStr = "业务经理统招"; + break; + default: + this.sourceStr = "未知渠道"; + break; + } + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionStatisticsVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionStatisticsVO.java new file mode 100644 index 00000000..757a7764 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CommissionStatisticsVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.course.vo; + +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class CommissionStatisticsVO { + // 科二合格数 + private Integer subject2PassCount; + // 科二提成 + private BigDecimal subject2Commission; + // 科三合格数 + private Integer subject3PassCount; + // 科三提成 + private BigDecimal subject3Commission; + // 总合格数 + private Integer totalPassCount; + // 总提成金额 + private BigDecimal totalCommission; +} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderExportVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderExportVO.java index fd707542..58a1e63c 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderExportVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderExportVO.java @@ -14,20 +14,20 @@ import java.util.Date; @Data public class CourseOrderExportVO { - @ExcelProperty(value = " ", index = 0) + /*@ExcelProperty(value = " ", index = 0) @ColumnWidth(8) - private Integer serialNumber; + private Integer serialNumber;*/ @ExcelIgnore private Long studentId; - @ExcelProperty(value = "学员姓名", index = 1) + @ExcelProperty(value = "学员姓名", index = 0) private String studentName; - @ExcelProperty(value = "学员身份证号", index = 2) + @ExcelProperty(value = "学员身份证号", index = 1) private String studentIdCard; - @ExcelProperty(value = "学员手机号", index = 3) + @ExcelProperty(value = "学员手机号", index = 2) private String studentPhone; /*@ExcelProperty(value = "学员报名时间", index = 4) @@ -35,7 +35,7 @@ public class CourseOrderExportVO { @ExcelIgnore private Date signUpTime; - @ExcelProperty(value = "学员报名时间", index = 4) + @ExcelProperty(value = "学员报名时间", index = 3) private String signUpTimeStr; public void setSignUpTime(Date signUpTime) { @@ -47,20 +47,20 @@ public class CourseOrderExportVO { @ExcelIgnore private Long courseId; - @ExcelProperty(value = "课程名称", index = 5) + @ExcelProperty(value = "课程名称", index = 4) private String courseName; - @ExcelProperty(value = "课程类型", index = 6) + @ExcelProperty(value = "课程类型", index = 5) private String courseType; - @ExcelProperty(value = "缴费金额", index = 7) + @ExcelProperty(value = "缴费金额", index = 6) private BigDecimal reserveMoney; /*@ExcelProperty(value = "缴费时间", index = 8) @DateTimeFormat("yyyy-MM-dd")*/ @ExcelIgnore private Date payFeesTime; - @ExcelProperty(value = "缴费时间", index = 8) + @ExcelProperty(value = "缴费时间", index = 7) private String payFeesTimeStr; public void setPayFeesTimeStr(Date payFeesTime) { @@ -69,6 +69,12 @@ public class CourseOrderExportVO { } } + @ExcelIgnore + private String source; + + @ExcelProperty(value = "渠道", index = 8) + private String sourceStr; + @ExcelProperty(value = "订单备注", index = 9) private String orderRemark; @@ -100,6 +106,8 @@ public class CourseOrderExportVO { @ExcelProperty(value = "出纳是否确认收款", index = 16) private String cashierConfirmDisplay; + @ExcelProperty(value = "收款账号", index = 17) + private String paymentAccount; @ExcelIgnore private Integer cashierConfirm; @@ -107,7 +115,7 @@ public class CourseOrderExportVO { @ExcelIgnore private Date cashierConfirmTime; - @ExcelProperty(value = "出纳确认时间", index = 17) + @ExcelProperty(value = "出纳确认时间", index = 18) private String cashierConfirmTimeStr; public void setCashierConfirmTime(Date cashierConfirmTime) { @@ -116,7 +124,7 @@ public class CourseOrderExportVO { } } - @ExcelProperty(value = "出纳备注", index = 18) + @ExcelProperty(value = "出纳备注", index = 19) private String cashierConfirmRemark; /** @@ -185,4 +193,31 @@ public class CourseOrderExportVO { } } + public void setSource(String source) { + this.source = source; + + if (source == null) { + this.sourceStr = ""; + return; + } + + switch (source) { + case "01": + this.sourceStr = "驾校统招"; + break; + case "02": + this.sourceStr = "教练自招"; + break; + case "03": + this.sourceStr = "自来客户"; + break; + case "04": + this.sourceStr = "业务经理统招"; + break; + default: + this.sourceStr = "未知渠道"; + break; + } + } + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderStatisticsVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderStatisticsVO.java new file mode 100644 index 00000000..77d8d8b1 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/CourseOrderStatisticsVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.course.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class CourseOrderStatisticsVO { + /** 招生人数 */ + private Integer studentCount; + + /** 招生金额总和 */ + private BigDecimal totalAmount; + + /** 科目二提成金额总和 */ + private BigDecimal subject2DeductTotal; + + /** 科目三提成金额总和 */ + private BigDecimal subject3DeductTotal; +} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java index 3ccfcb51..2d2d4e57 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java @@ -44,4 +44,9 @@ public class ProcessVO extends Process { * 出纳确认情况 */ private String cashierConfirm; + + /** + * 渠道 + */ + private String source; } diff --git a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml index d95acd3c..0fa97bf1 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml @@ -134,6 +134,7 @@ dss.sex, dss.channel, dsco.course_name, + dsco.course_id, dsco.coach_user_name, dsco.reserve_money, dsco.rest_money, diff --git a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml index 49684e6a..33a39bd9 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml @@ -69,7 +69,8 @@ dsco.rest_money, dsco.if_end, dsco.create_time AS enrollTime, - dsco.user_no AS studentIdCard + dsco.user_no AS studentIdCard, + dsco.sign_time FROM drive_school_student main LEFT JOIN drive_school_course_order dsco ON main.user_id = dsco.user_id @@ -435,11 +436,12 @@ + + diff --git a/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml b/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml index 335a0972..8a419497 100644 --- a/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml @@ -302,6 +302,8 @@ dsco.order_remark, dsco.cashier_confirm, dsco.cashier_confirm_remark, + dss.source, + dsco.payment_account, MAX(CASE WHEN dsp.subject = 2 THEN COALESCE(dsp.coach_name, '') END) AS subject2CoachName, MAX(CASE WHEN dscd.course_subject = 2 THEN COALESCE(dscd.deduct, 0) END) AS subject2Deduct, MAX(CASE WHEN dsp.subject = 3 THEN COALESCE(dsp.coach_name, '') END) AS subject3CoachName, @@ -310,6 +312,7 @@ drive_school_course_order dsco LEFT JOIN drive_school_process dsp ON dsp.course_id = dsco.course_id AND dsp.user_id = dsco.user_id AND dsp.subject IN (2, 3) AND dsp.deleted = 0 LEFT JOIN drive_school_course_deduct dscd ON dsco.scheme_id = dscd.scheme_id AND dsco.course_id = dscd.course_id AND dscd.course_subject IN (2, 3) AND dscd.deleted = 0 + LEFT JOIN drive_school_student dss ON dsco.user_id = dss.user_id AND dss.deleted = 0 WHERE dsco.deleted = 0 AND dsco.if_end = 0 @@ -348,9 +351,9 @@ AND dsco.payment_status = #{entity.paymentStatus} - + AND dsco.is_sign = #{entity.isSign} @@ -361,7 +364,9 @@ AND dsco.cashier_Confirm IS NULL - + + AND dss.source = #{entity.source} + @@ -392,4 +397,84 @@ dsco.cashier_confirm, dsco.cashier_confirm_remark + +