This commit is contained in:
xyc 2025-04-29 10:33:08 +08:00
parent 80766669e0
commit bf96e6f341

View File

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.base.service.impl;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.common.SchoolRoleEnum; import cn.iocoder.yudao.common.SchoolRoleEnum;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
@ -287,85 +288,87 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
result.setCoachInfo(coach); result.setCoachInfo(coach);
/*2.车辆信息*/ /*2.车辆信息*/
DriveSchoolCar schoolCar = new DriveSchoolCar(); DriveSchoolCar schoolCar = new DriveSchoolCar();
if(null!=coach.getUserId()){ if (ObjectUtil.isNotEmpty(coach.getCarId())) {
schoolCar = schoolCarService.selectByCoachId(coach.getUserId()); if (null != coach.getUserId()) {
if(null!=schoolCar.getCarRegisterDate()){ schoolCar = schoolCarService.selectByCoachId(coach.getUserId());
Long carOld = DateUtil.betweenYear(schoolCar.getCarRegisterDate(),new Date(),true); if (null != schoolCar.getCarRegisterDate()) {
schoolCar.setCarOld(carOld); Long carOld = DateUtil.betweenYear(schoolCar.getCarRegisterDate(), new Date(), true);
schoolCar.setCarOld(carOld);
}
} }
} }
result.setCar(schoolCar); result.setCar(schoolCar);
/*3.统计教练的学生基本信息*/ /*3.统计教练的学生基本信息*/
//毕业情况 //毕业情况
List<DlDriveSchoolStudentVO> studentVOList = studentMapper.selectStudentListCoach(coach.getUserId(),null,null); List<DlDriveSchoolStudentVO> studentVOList = studentMapper.selectStudentListCoach(coach.getUserId(), null, null);
int overNum = (int) studentVOList.stream().filter(item -> null != item.getGradTime()).count(); int overNum = (int) studentVOList.stream().filter(item -> null != item.getGradTime()).count();
int noOverNum = studentVOList.size()-overNum; int noOverNum = studentVOList.size() - overNum;
Map<String,Object> studentInfoMap = new HashMap<>(); Map<String, Object> studentInfoMap = new HashMap<>();
studentInfoMap.put("overNum",overNum); studentInfoMap.put("overNum", overNum);
studentInfoMap.put("noOverNum",noOverNum); studentInfoMap.put("noOverNum", noOverNum);
//考试情况 //考试情况
List<ExamBatchItemVO> examBatchItemVOList = examBatchItemMapper.selectByCoachId(coach.getUserId(),null,null); List<ExamBatchItemVO> examBatchItemVOList = examBatchItemMapper.selectByCoachId(coach.getUserId(), null, null);
Double subject2Num = 0.0; Double subject2Num = 0.0;
Double subject3Num = 0.0; Double subject3Num = 0.0;
Double subject2PassNum = 0.0; Double subject2PassNum = 0.0;
Double subject3PassNum = 0.0; Double subject3PassNum = 0.0;
for (ExamBatchItemVO exam:examBatchItemVOList){ for (ExamBatchItemVO exam : examBatchItemVOList) {
if(2==exam.getSubject()){ if (2 == exam.getSubject()) {
subject2Num++; subject2Num++;
if(null!=exam.getIfPass() && exam.getIfPass()){ if (null != exam.getIfPass() && exam.getIfPass()) {
//考试通过 //考试通过
subject2PassNum++; subject2PassNum++;
} }
}else if(3==exam.getSubject()){ } else if (3 == exam.getSubject()) {
subject3Num++; subject3Num++;
if(null!=exam.getIfPass() && exam.getIfPass()){ if (null != exam.getIfPass() && exam.getIfPass()) {
//考试通过 //考试通过
subject3PassNum++; subject3PassNum++;
} }
} }
} }
double subject2Rate=0; double subject2Rate = 0;
double subject3Rate=0; double subject3Rate = 0;
if(0!=subject2Num && 0!=subject2PassNum){ if (0 != subject2Num && 0 != subject2PassNum) {
subject2Rate = subject2PassNum / subject2Num; subject2Rate = subject2PassNum / subject2Num;
} }
if(0!=subject3Num && 0!=subject3PassNum){ if (0 != subject3Num && 0 != subject3PassNum) {
subject3Rate = subject3PassNum / subject3Num; subject3Rate = subject3PassNum / subject3Num;
} }
studentInfoMap.put("subject2All",subject2Num); studentInfoMap.put("subject2All", subject2Num);
studentInfoMap.put("subject2Pass",subject2PassNum); studentInfoMap.put("subject2Pass", subject2PassNum);
studentInfoMap.put("subject2Rate",0!=subject2Rate?(Double.parseDouble(df.format(subject2Rate))*100):0); studentInfoMap.put("subject2Rate", 0 != subject2Rate ? (Double.parseDouble(df.format(subject2Rate)) * 100) : 0);
studentInfoMap.put("subject3All",subject3Num); studentInfoMap.put("subject3All", subject3Num);
studentInfoMap.put("subject3Pass",subject3PassNum); studentInfoMap.put("subject3Pass", subject3PassNum);
studentInfoMap.put("subject3Rate",0!=subject3Rate?(Double.parseDouble(df.format(subject3Rate))*100):0); studentInfoMap.put("subject3Rate", 0 != subject3Rate ? (Double.parseDouble(df.format(subject3Rate)) * 100) : 0);
//招生情况 //招生情况
List<DlDriveSchoolStudentVO> studentList = studentMapper.selectStudentList(coach.getUserId(), null, null); List<DlDriveSchoolStudentVO> studentList = studentMapper.selectStudentList(coach.getUserId(), null, null);
int coachNum=0; int coachNum = 0;
double coachAmount=0; double coachAmount = 0;
for (DlDriveSchoolStudentVO item:studentList){ for (DlDriveSchoolStudentVO item : studentList) {
if("02".equals(item.getSource())){ if ("02".equals(item.getSource())) {
//教练自招 //教练自招
coachNum++; coachNum++;
coachAmount = coachAmount+item.getPriceAmount(); coachAmount = coachAmount + item.getPriceAmount();
} }
} }
studentInfoMap.put("coachNum",coachNum); studentInfoMap.put("coachNum", coachNum);
studentInfoMap.put("coachAmount",coachAmount); studentInfoMap.put("coachAmount", coachAmount);
//训练情况 //训练情况
List<TrainVO> trainList = trainMapper.selectTrainByCondition(coach.getUserId(),null,null); List<TrainVO> trainList = trainMapper.selectTrainByCondition(coach.getUserId(), null, null);
Set<Long> allUserSet = new HashSet<>(); Set<Long> allUserSet = new HashSet<>();
Double trainTime = 0.0; Double trainTime = 0.0;
for (TrainVO item:trainList){ for (TrainVO item : trainList) {
allUserSet.add(item.getUserId()); allUserSet.add(item.getUserId());
if(null!=item.getTrainTime()){ if (null != item.getTrainTime()) {
trainTime =trainTime+item.getTrainTime(); trainTime = trainTime + item.getTrainTime();
} }
} }
studentInfoMap.put("trainUserNum",allUserSet.size()); studentInfoMap.put("trainUserNum", allUserSet.size());
studentInfoMap.put("trainTime",trainTime); studentInfoMap.put("trainTime", trainTime);
result.setStudentInfoMap(studentInfoMap); result.setStudentInfoMap(studentInfoMap);
/*4.财务情况*/ /*4.财务情况*/
List<SchoolCommission> commissionList = commissionMapper.selectByCoachId(coach.getUserId(),null,null); List<SchoolCommission> commissionList = commissionMapper.selectByCoachId(coach.getUserId(), null, null);
//科目2当月应付 //科目2当月应付
Double subject2MonthShowed = 0.0; Double subject2MonthShowed = 0.0;
//科目2累计已付 //科目2累计已付
@ -382,39 +385,39 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
// 获取当前月份的开始时间和结束时间 // 获取当前月份的开始时间和结束时间
DateTime startOfMonth = DateUtil.beginOfMonth(DateUtil.date()); DateTime startOfMonth = DateUtil.beginOfMonth(DateUtil.date());
DateTime endOfMonth = DateUtil.endOfMonth(DateUtil.date()); DateTime endOfMonth = DateUtil.endOfMonth(DateUtil.date());
for (SchoolCommission item:commissionList){ for (SchoolCommission item : commissionList) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String localDateTimeNowStr = item.getCreateTime().format(formatter); String localDateTimeNowStr = item.getCreateTime().format(formatter);
DateTime createTime = DateUtil.parse(localDateTimeNowStr); DateTime createTime = DateUtil.parse(localDateTimeNowStr);
if("2".equals(item.getSubject())){ if ("2".equals(item.getSubject())) {
//科目二 //科目二
subject2Showed=subject2Showed+item.getCommissionAmount().doubleValue(); subject2Showed = subject2Showed + item.getCommissionAmount().doubleValue();
if(null!=item.getIfPay() && item.getIfPay()){ if (null != item.getIfPay() && item.getIfPay()) {
subject2Payed=subject2Payed+item.getCommissionAmount().doubleValue(); subject2Payed = subject2Payed + item.getCommissionAmount().doubleValue();
} }
if(createTime.isAfterOrEquals(startOfMonth) && createTime.isBeforeOrEquals(endOfMonth)){ if (createTime.isAfterOrEquals(startOfMonth) && createTime.isBeforeOrEquals(endOfMonth)) {
//在当月内 //在当月内
subject2MonthShowed = subject2MonthShowed+item.getCommissionAmount().doubleValue(); subject2MonthShowed = subject2MonthShowed + item.getCommissionAmount().doubleValue();
} }
}else if("3".equals(item.getSubject())){ } else if ("3".equals(item.getSubject())) {
//科目三 //科目三
subject3Showed=subject3Showed+item.getCommissionAmount().doubleValue(); subject3Showed = subject3Showed + item.getCommissionAmount().doubleValue();
if(null!=item.getIfPay() && item.getIfPay()){ if (null != item.getIfPay() && item.getIfPay()) {
subject3Payed=subject3Payed+item.getCommissionAmount().doubleValue(); subject3Payed = subject3Payed + item.getCommissionAmount().doubleValue();
} }
if(createTime.isAfterOrEquals(startOfMonth) && createTime.isBeforeOrEquals(endOfMonth)){ if (createTime.isAfterOrEquals(startOfMonth) && createTime.isBeforeOrEquals(endOfMonth)) {
//在当月内 //在当月内
subject3MonthShowed = subject3MonthShowed+item.getCommissionAmount().doubleValue(); subject3MonthShowed = subject3MonthShowed + item.getCommissionAmount().doubleValue();
} }
} }
} }
Map<String,Object> financeMap = new HashMap<>(); Map<String, Object> financeMap = new HashMap<>();
financeMap.put("subject2MonthShowed",subject2MonthShowed); financeMap.put("subject2MonthShowed", subject2MonthShowed);
financeMap.put("subject2Showed",subject2Showed); financeMap.put("subject2Showed", subject2Showed);
financeMap.put("subject2Payed",subject2Payed); financeMap.put("subject2Payed", subject2Payed);
financeMap.put("subject3MonthShowed",subject3MonthShowed); financeMap.put("subject3MonthShowed", subject3MonthShowed);
financeMap.put("subject3Showed",subject3Showed); financeMap.put("subject3Showed", subject3Showed);
financeMap.put("subject3Payed",subject3Payed); financeMap.put("subject3Payed", subject3Payed);
result.setFinanceMap(financeMap); result.setFinanceMap(financeMap);
return result; return result;
} }