diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java index 14d65786..f77cd3db 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java @@ -26,6 +26,7 @@ import cn.iocoder.yudao.module.train.entity.Train; import cn.iocoder.yudao.module.train.mapper.TrainMapper; import cn.iocoder.yudao.module.train.service.IDriveSchoolCoachClockService; import cn.iocoder.yudao.module.train.service.TrainService; +import cn.iocoder.yudao.module.train.vo.CloakAndTrainCountVO; import cn.iocoder.yudao.module.train.vo.TrainCarCountVO; import cn.iocoder.yudao.module.train.vo.TrainStudentCountVO; import cn.iocoder.yudao.module.train.vo.TrainVO; @@ -434,6 +435,18 @@ public class DataViewServiceImpl implements DataViewService { trainInfoMap.put("subject2UserNum", trainStudentCount.getSubject2Count()); trainInfoMap.put("subject3UserNum", trainStudentCount.getSubject3Count()); rtnObj.setTrainInfo(trainInfoMap); + + /* 实时训练情况*/ + CloakAndTrainCountVO todayCarTrainSituation = coachClockService.getTodayTrainSituation(); + CloakAndTrainCountVO todayStudentTrainSituation = trainMapper.getTodayTrainSituation(null); + Map todayTrainInfo = new HashMap<>(); + todayTrainInfo.put("totalStudentCount", todayStudentTrainSituation.getTotalStudentCount()); + todayTrainInfo.put("subject2StudentCount", todayStudentTrainSituation.getSubject2StudentCount()); + todayTrainInfo.put("subject3StudentCount", todayStudentTrainSituation.getSubject3StudentCount()); + todayTrainInfo.put("totalCarCount", todayCarTrainSituation.getTotalCarCount()); + todayTrainInfo.put("subject2CarCount", todayCarTrainSituation.getSubject2CarCount()); + todayTrainInfo.put("subject3CarCount", todayCarTrainSituation.getSubject3CarCount()); + rtnObj.setTodayTrainInfo(todayTrainInfo); /*3.考试情况*/ List examBatchItemVOList = examBatchItemMapper.selectByCoachId(coachId, startTimeStr, endTimeStr); Double subject2Num = 0.0; diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/IndexDataVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/IndexDataVO.java index 8321d6d8..9afb5555 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/IndexDataVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/IndexDataVO.java @@ -17,6 +17,8 @@ public class IndexDataVO { private Map studentInfo; /**训练情况*/ private Map trainInfo; + /**实时训练情况*/ + private Map todayTrainInfo; /**考试情况*/ private Map examInfo; /**财务情况*/ diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/domain/DriveSchoolInsurance.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/domain/DriveSchoolInsurance.java index 12921cdc..2c64689e 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/domain/DriveSchoolInsurance.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/domain/DriveSchoolInsurance.java @@ -54,4 +54,6 @@ public class DriveSchoolInsurance extends TenantBaseDO @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "保险到期时间", width = 30, dateFormat = "yyyy-MM-dd") private Date insuranceTime; + + private String attachments; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java index 096762de..b06e89a6 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java @@ -175,5 +175,21 @@ public class DriveSchoolCoachClockController { ExcelUtils.write(response, fileName + ".xlsx", "教练打卡记录", CoachClockExportVO.class, exportData); } + /** + * 获取当日实时训练情况统计 + */ + @GetMapping("/getTodayTrainSituation") + public CommonResult getTodayTrainSituation() { + return success(coachClockService.getTodayTrainSituation()); + } + + /** + * 获取正在训练的车辆信息列表 + */ + @GetMapping("/getTodayCarTrainSituation") + public CommonResult> getTodayCarTrainSituation(DriveSchoolCoachClock driveSchoolCoachClock) { + return success(coachClockService.getTodayCarTrainSituation(driveSchoolCoachClock)); + } + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java index cdc2f9e5..6f891705 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java @@ -15,10 +15,7 @@ import cn.iocoder.yudao.module.jx.mapper.DriveSchoolCarMapper; import cn.iocoder.yudao.module.jx.vo.DriveSchoolCarVO; import cn.iocoder.yudao.module.train.entity.Train; import cn.iocoder.yudao.module.train.service.TrainService; -import cn.iocoder.yudao.module.train.vo.NoClockInRemindVO; -import cn.iocoder.yudao.module.train.vo.TrainExportVO; -import cn.iocoder.yudao.module.train.vo.TrainStudentCountVO; -import cn.iocoder.yudao.module.train.vo.TrainVO; +import cn.iocoder.yudao.module.train.vo.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -302,4 +299,23 @@ public class TrainController { // 导出Excel ExcelUtils.write(response, fileName + ".xlsx", "学员训练记录", TrainExportVO.class, exportData); } + + /** + * 当日正在训练学员统计 + */ + @GetMapping("getTodayTrainSituation") + public CommonResult getTodayTrainSituation(Train train){ + return success(trainService.getTodayTrainSituation(train)); + } + + /** + * 获取当前正在训练的学员列表 + */ + @GetMapping("getTodayStudentTrainSituation") + public CommonResult> getTodayStudentTrainSituation(Train train, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize){ + Page page = new Page<>(pageNo, pageSize); + return success(trainService.getTodayStudentTrainSituation(train,page)); + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java index 8d1070bf..ee7eed6d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java @@ -46,4 +46,16 @@ public interface DriveSchoolCoachClockMapper extends BaseMapper getTodayCarTrainSituation(@Param("entity") DriveSchoolCoachClock driveSchoolCoachClock); + + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/TrainMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/TrainMapper.java index a9863a97..97cbffa7 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/TrainMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/TrainMapper.java @@ -1,10 +1,7 @@ package cn.iocoder.yudao.module.train.mapper; import cn.iocoder.yudao.module.train.entity.Train; -import cn.iocoder.yudao.module.train.vo.NoClockInRemindVO; -import cn.iocoder.yudao.module.train.vo.TrainExportVO; -import cn.iocoder.yudao.module.train.vo.TrainStudentCountVO; -import cn.iocoder.yudao.module.train.vo.TrainVO; +import cn.iocoder.yudao.module.train.vo.*; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -44,4 +41,13 @@ public interface TrainMapper extends BaseMapper { */ IPage getExportList(@Param("entity") TrainExportVO entity, Page page); + /** + * 获取当日实时训练情况 + */ + CloakAndTrainCountVO getTodayTrainSituation(@Param("entity") Train train); + /** + * 获取正在训练的学员信息 + */ + IPage getTodayStudentTrainSituation(@Param("entity") Train train, Page page); + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java index 3f2d69a0..192d4a7f 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java @@ -83,4 +83,14 @@ public interface IDriveSchoolCoachClockService extends IService getAllCoachClockRecordList(CoachClockExportVO exportVO); List getCoachClockListByRange(CoachClockExportVO exportVO); + /** + * 获取当日实时训练情况统计 + */ + CloakAndTrainCountVO getTodayTrainSituation(); + + /** + * 获取正在训练的车辆信息列表 + */ + List getTodayCarTrainSituation(DriveSchoolCoachClock driveSchoolCoachClock); + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java index dd6c41cf..523748ae 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java @@ -2,12 +2,14 @@ package cn.iocoder.yudao.module.train.service; import cn.iocoder.yudao.module.course.vo.CommissionExportVO; import cn.iocoder.yudao.module.train.entity.Train; +import cn.iocoder.yudao.module.train.vo.CloakAndTrainCountVO; import cn.iocoder.yudao.module.train.vo.NoClockInRemindVO; import cn.iocoder.yudao.module.train.vo.TrainExportVO; import cn.iocoder.yudao.module.train.vo.TrainVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -111,4 +113,15 @@ public interface TrainService extends IService { List getTrainList(TrainExportVO exportVO); List getAllTrainList(TrainExportVO exportVO); List getTrainListByRange(TrainExportVO exportVO); + + + /** + * 当日正在训练学员统计 + */ + CloakAndTrainCountVO getTodayTrainSituation(Train train); + + /** + * 获取当前正在训练的学员信息列表 + */ + IPage getTodayStudentTrainSituation(Train train, Page page); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java index 8d9f344d..5e3575c5 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java @@ -436,4 +436,21 @@ public class DriveSchoolCoachClockServiceImpl extends ServiceImpl getTodayCarTrainSituation(DriveSchoolCoachClock driveSchoolCoachClock) { + return driveSchoolCoachClockMapper.getTodayCarTrainSituation(driveSchoolCoachClock); + } + + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java index be6465f4..3a64d55d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.course.vo.CommissionExportVO; import cn.iocoder.yudao.module.train.entity.Train; import cn.iocoder.yudao.module.train.mapper.TrainMapper; import cn.iocoder.yudao.module.train.service.TrainService; +import cn.iocoder.yudao.module.train.vo.CloakAndTrainCountVO; import cn.iocoder.yudao.module.train.vo.NoClockInRemindVO; import cn.iocoder.yudao.module.train.vo.TrainExportVO; import cn.iocoder.yudao.module.train.vo.TrainVO; @@ -253,5 +254,20 @@ public class TrainServiceImpl extends ServiceImpl implements return allData; } + /** + * 当日正在训练学员统计 + */ + @Override + public CloakAndTrainCountVO getTodayTrainSituation(Train train) { + return trainMapper.getTodayTrainSituation(train); + } + + /** + * 获取当前正在训练的学员信息列表 + */ + @Override + public IPage getTodayStudentTrainSituation(Train train, Page page) { + return trainMapper.getTodayStudentTrainSituation(train, page); + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/vo/DriveSchoolCoachClockVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/vo/DriveSchoolCoachClockVO.java index 4a7d4a98..b094c2ae 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/vo/DriveSchoolCoachClockVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/vo/DriveSchoolCoachClockVO.java @@ -24,4 +24,6 @@ public class DriveSchoolCoachClockVO extends DriveSchoolCoachClock { * 结束时间 */ private String endTimeStr; + + private String studentTotal; } diff --git a/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolInsuranceMapper.xml b/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolInsuranceMapper.xml index dbb39d22..8805d2f2 100644 --- a/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolInsuranceMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/jx/DriveSchoolInsuranceMapper.xml @@ -19,10 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, user_names, user_id, car_id, user_name,car_no,company, content, money, insurance_time, create_time, creator, update_time, updater from drive_school_insurance + select id, user_names, user_id, car_id, user_name,car_no,company, content, money, insurance_time, create_time, creator, update_time, updater, attachments from drive_school_insurance - + SELECT - id, - user_name AS coachName, - user_mobile AS coachPhone, - car_no, - subject, - addr, - train_day, - start_time, - start_remark, - end_time, - end_remark, - train_time, + id, + user_name AS coachName, + user_mobile AS coachPhone, + car_no, + subject, + addr, + train_day, + start_time, + start_remark, + end_time, + end_remark, + train_time, start_images, end_images FROM drive_school_coach_clock @@ -291,4 +291,49 @@ AND train_day <= #{entity.trainEndTimeStr} + + + + + + + + diff --git a/dl-module-jx/src/main/resources/mapper/train/TrainMapper.xml b/dl-module-jx/src/main/resources/mapper/train/TrainMapper.xml index c3a6ebf6..c0f616ab 100644 --- a/dl-module-jx/src/main/resources/mapper/train/TrainMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/train/TrainMapper.xml @@ -208,4 +208,42 @@ ORDER BY train_day DESC + + + +