|
|
|
@ -14,8 +14,10 @@ import com.ibeetl.admin.core.service.CoreBaseService;
|
|
|
|
|
import com.ibeetl.admin.core.util.PlatformException;
|
|
|
|
|
import com.ibeetl.admin.core.web.JsonResult;
|
|
|
|
|
import com.ibeetl.admin.core.web.JsonReturnCode;
|
|
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnDao;
|
|
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao;
|
|
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao;
|
|
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseMergeSchoolClassDao;
|
|
|
|
|
import com.ibeetl.jlw.entity.*;
|
|
|
|
|
import com.ibeetl.jlw.entity.vo.HandsOnTaskProblemVO;
|
|
|
|
|
import com.ibeetl.jlw.entity.vo.HandsOnTaskScoreVO;
|
|
|
|
@ -78,6 +80,11 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
private StudentHandsOnTaskStepService studentHandsOnTaskStepService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private StudentHandsOnTaskReportService studentHandsOnTaskReportService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private TeacherOpenCourseMergeSchoolClassDao teacherOpenCourseMergeStudentService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private TeacherOpenCourseHandsOnDao teacherOpenCourseHandsOnDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private StudentHandsOnTaskLogService logService;
|
|
|
|
@ -179,11 +186,11 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
.desc(TeacherOpenCourseHandsOnSimulationTasks::getAddTime).single();
|
|
|
|
|
if (single == null) {
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskOrder("1");
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
String taskOrder1 = single.getTaskOrder();
|
|
|
|
|
if (!NumberUtil.isNumber(taskOrder)) {
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskOrder("2");
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
BigDecimal bigDecimal = NumberUtil.toBigDecimal(taskOrder1);
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskOrder(bigDecimal.add(BigDecimal.ONE).toString());
|
|
|
|
|
}
|
|
|
|
@ -416,6 +423,20 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public PageQuery getStudentScore(StudentScoreParam studentScoreParam) {
|
|
|
|
|
Long handsOnId = studentScoreParam.getHandsOnId();
|
|
|
|
|
if (handsOnId != null) {
|
|
|
|
|
TeacherOpenCourseHandsOnQuery handsOnQuery = new TeacherOpenCourseHandsOnQuery();
|
|
|
|
|
handsOnQuery.setHandsOnId(handsOnId);
|
|
|
|
|
List<TeacherOpenCourseHandsOn> handsOns = teacherOpenCourseHandsOnDao.getValuesByQueryNotWithPermission(handsOnQuery);
|
|
|
|
|
Long teacherOpenCourseId = handsOns.get(0).getTeacherOpenCourseId();
|
|
|
|
|
List<TeacherOpenCourseMergeSchoolClass> select = teacherOpenCourseMergeStudentService.createLambdaQuery()
|
|
|
|
|
.andEq(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseId, teacherOpenCourseId).andEq(TeacherOpenCourseMergeSchoolClass::getTeacherOpenCourseMergeSchoolClassStatus, 1).select();
|
|
|
|
|
if (CollectionUtil.isNotEmpty(select)) {
|
|
|
|
|
List<Long> collect = select.stream().map(TeacherOpenCourseMergeSchoolClass::getSchoolClassId).collect(Collectors.toList());
|
|
|
|
|
String join = CollectionUtil.join(collect, ",");
|
|
|
|
|
studentScoreParam.setClassIds(join);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
PageQuery pageQuery = studentScoreParam.getPageQuery();
|
|
|
|
|
PageQuery<Student> studentPageQuery = studentService.queryByCondition(pageQuery);
|
|
|
|
|
List<Student> list = studentPageQuery.getList();
|
|
|
|
@ -424,6 +445,9 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
for (Student student : list) {
|
|
|
|
|
StudentHandsOnTaskVideoQuery studentHandsOnTaskVideoQuery = new StudentHandsOnTaskVideoQuery();
|
|
|
|
|
studentHandsOnTaskVideoQuery.setStudentId(student.getStudentId());
|
|
|
|
|
if (handsOnId != null) {
|
|
|
|
|
studentHandsOnTaskVideoQuery.setHandsOnId(handsOnId);
|
|
|
|
|
}
|
|
|
|
|
List<StudentHandsOnTaskVideo> valuesByQuery = studentHandsOnTaskVideoService.getValuesByQuery(studentHandsOnTaskVideoQuery);
|
|
|
|
|
double sum = valuesByQuery.stream().mapToDouble(v -> v.getVideoScore() == null ? 0 : v.getVideoScore().doubleValue()).sum();
|
|
|
|
|
student.set("sumScore", sum);
|
|
|
|
@ -433,6 +457,9 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
for (Student student : list) {
|
|
|
|
|
StudentHandsOnTaskPptQuery studentHandsOnTaskPptQuery = new StudentHandsOnTaskPptQuery();
|
|
|
|
|
studentHandsOnTaskPptQuery.setStudentId(student.getStudentId());
|
|
|
|
|
if (handsOnId != null) {
|
|
|
|
|
studentHandsOnTaskPptQuery.setHandsOnId(handsOnId);
|
|
|
|
|
}
|
|
|
|
|
List<StudentHandsOnTaskPpt> valuesByQuery = studentHandsOnTaskPptService.getValuesByQuery(studentHandsOnTaskPptQuery);
|
|
|
|
|
double sum = valuesByQuery.stream().mapToDouble(v -> v.getPptScore() == null ? 0 : v.getPptScore().doubleValue()).sum();
|
|
|
|
|
student.set("sumScore", sum);
|
|
|
|
@ -442,6 +469,9 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
for (Student student : list) {
|
|
|
|
|
StudentHandsOnTaskTheoryQuery studentHandsOnTaskTheoryQuery = new StudentHandsOnTaskTheoryQuery();
|
|
|
|
|
studentHandsOnTaskTheoryQuery.setStudentId(student.getStudentId());
|
|
|
|
|
if (handsOnId != null) {
|
|
|
|
|
studentHandsOnTaskTheoryQuery.setHandsOnId(handsOnId);
|
|
|
|
|
}
|
|
|
|
|
List<StudentHandsOnTaskTheory> valuesByQuery = studentHandsOnTaskTheoryService.getValuesByQuery(studentHandsOnTaskTheoryQuery);
|
|
|
|
|
double sum = valuesByQuery.stream().mapToDouble(v -> v.getTheoryScore() == null ? 0 : v.getTheoryScore().doubleValue()).sum();
|
|
|
|
|
student.set("sumScore", sum);
|
|
|
|
@ -451,6 +481,9 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
for (Student student : list) {
|
|
|
|
|
StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery = new StudentHandsOnTaskStepQuery();
|
|
|
|
|
studentHandsOnTaskStepQuery.setStudentId(student.getStudentId());
|
|
|
|
|
if (handsOnId != null) {
|
|
|
|
|
studentHandsOnTaskStepQuery.setHandsOnId(handsOnId);
|
|
|
|
|
}
|
|
|
|
|
List<StudentHandsOnTaskStep> valuesByQuery = studentHandsOnTaskStepService.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
|
double sum = valuesByQuery.stream().mapToDouble(v -> v.getTheoryScore() == null ? 0 : v.getTheoryScore().doubleValue()).sum();
|
|
|
|
|
student.set("sumScore", sum);
|
|
|
|
@ -460,6 +493,9 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
for (Student student : list) {
|
|
|
|
|
StudentHandsOnTaskReportQuery studentHandsOnTaskReportQuery = new StudentHandsOnTaskReportQuery();
|
|
|
|
|
studentHandsOnTaskReportQuery.setStudentId(student.getStudentId());
|
|
|
|
|
if (handsOnId != null) {
|
|
|
|
|
studentHandsOnTaskReportQuery.setHandsOnId(handsOnId);
|
|
|
|
|
}
|
|
|
|
|
List<StudentHandsOnTaskReport> valuesByQuery = studentHandsOnTaskReportService.getValuesByQuery(studentHandsOnTaskReportQuery);
|
|
|
|
|
double sum = valuesByQuery.stream().mapToDouble(v -> v.getReportScore() == null ? 0 : v.getReportScore().doubleValue()).sum();
|
|
|
|
|
student.set("sumScore", sum);
|
|
|
|
@ -524,12 +560,12 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
StudentHandsOnTaskVideo studentHandsOnTaskVideo = videoList.get(0);
|
|
|
|
|
BigDecimal videoScore = studentHandsOnTaskVideo.getVideoScore();
|
|
|
|
|
handsOnTaskScoreVO.setScore(videoScore == null ? 0 : videoScore.doubleValue());
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO:videoScore);
|
|
|
|
|
}else {
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
|
|
|
|
|
} else {
|
|
|
|
|
handsOnTaskScoreVO.setScore(0D);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}else if(HandsOnTaskEnum.TASK_PPT.status.equals(task.getTaskType())) {
|
|
|
|
|
} else if (HandsOnTaskEnum.TASK_PPT.status.equals(task.getTaskType())) {
|
|
|
|
|
StudentHandsOnTaskPptQuery pptQuery = new StudentHandsOnTaskPptQuery();
|
|
|
|
|
pptQuery.setHandsOnTaskId(taskId);
|
|
|
|
|
pptQuery.setStudentId(studentId);
|
|
|
|
@ -538,11 +574,11 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
StudentHandsOnTaskPpt studentHandsOnTaskPpt = pptList.get(0);
|
|
|
|
|
BigDecimal videoScore = studentHandsOnTaskPpt.getPptScore();
|
|
|
|
|
handsOnTaskScoreVO.setScore(videoScore == null ? 0 : videoScore.doubleValue());
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
|
|
|
|
|
}else {
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
|
|
|
|
|
} else {
|
|
|
|
|
handsOnTaskScoreVO.setScore(0D);
|
|
|
|
|
}
|
|
|
|
|
}else if(HandsOnTaskEnum.TASK_THEORY.status.equals(task.getTaskType())) {
|
|
|
|
|
} else if (HandsOnTaskEnum.TASK_THEORY.status.equals(task.getTaskType())) {
|
|
|
|
|
StudentHandsOnTaskTheoryQuery theoryQuery = new StudentHandsOnTaskTheoryQuery();
|
|
|
|
|
theoryQuery.setHandsOnTaskId(taskId);
|
|
|
|
|
theoryQuery.setStudentId(studentId);
|
|
|
|
@ -550,11 +586,11 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
if (CollectionUtils.isNotEmpty(taskTheoryList)) {
|
|
|
|
|
BigDecimal videoScore = taskTheoryList.stream().map(StudentHandsOnTaskTheory::getTheoryScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
handsOnTaskScoreVO.setScore(videoScore == null ? 0 : videoScore.doubleValue());
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
|
|
|
|
|
}else {
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
|
|
|
|
|
} else {
|
|
|
|
|
handsOnTaskScoreVO.setScore(0D);
|
|
|
|
|
}
|
|
|
|
|
}else if(HandsOnTaskEnum.TASK_PRACTICAL_TRAINING.status.equals(task.getTaskType())) {
|
|
|
|
|
} else if (HandsOnTaskEnum.TASK_PRACTICAL_TRAINING.status.equals(task.getTaskType())) {
|
|
|
|
|
StudentHandsOnTaskStepQuery stepQuery = new StudentHandsOnTaskStepQuery();
|
|
|
|
|
stepQuery.setHandsOnTaskId(taskId);
|
|
|
|
|
stepQuery.setStudentId(studentId);
|
|
|
|
@ -563,21 +599,21 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
StudentHandsOnTaskStep taskTheory = stepList.get(0);
|
|
|
|
|
BigDecimal videoScore = taskTheory.getTheoryScore();
|
|
|
|
|
handsOnTaskScoreVO.setScore(videoScore == null ? 0 : videoScore.doubleValue());
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
|
|
|
|
|
}else {
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
|
|
|
|
|
} else {
|
|
|
|
|
handsOnTaskScoreVO.setScore(0D);
|
|
|
|
|
}
|
|
|
|
|
}else if(HandsOnTaskEnum.TASK_REPORT_WRITING.status.equals(task.getTaskType())) {
|
|
|
|
|
} else if (HandsOnTaskEnum.TASK_REPORT_WRITING.status.equals(task.getTaskType())) {
|
|
|
|
|
StudentHandsOnTaskReportQuery reportQuery = new StudentHandsOnTaskReportQuery();
|
|
|
|
|
reportQuery.setHandsOnTaskId(taskId);
|
|
|
|
|
reportQuery.setStudentId(studentId);
|
|
|
|
|
List<StudentHandsOnTaskReport> reportList =studentHandsOnTaskReportService.getValuesByQueryNotWithPermission(reportQuery);
|
|
|
|
|
List<StudentHandsOnTaskReport> reportList = studentHandsOnTaskReportService.getValuesByQueryNotWithPermission(reportQuery);
|
|
|
|
|
if (CollectionUtils.isNotEmpty(reportList)) {
|
|
|
|
|
StudentHandsOnTaskReport taskTheory = reportList.get(0);
|
|
|
|
|
BigDecimal videoScore = taskTheory.getReportScore();
|
|
|
|
|
handsOnTaskScoreVO.setScore(videoScore == null ? 0 : videoScore.doubleValue());
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
|
|
|
|
|
}else {
|
|
|
|
|
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
|
|
|
|
|
} else {
|
|
|
|
|
handsOnTaskScoreVO.setScore(0D);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -591,7 +627,7 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
|
|
|
|
|
Date lastUpdateTime = studentHandsOnTaskLog.getLastUpdateTime();
|
|
|
|
|
long between = DateUtil.between(createTime, lastUpdateTime, DateUnit.MINUTE);
|
|
|
|
|
handsOnTaskScoreVO.setTime(between);
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
handsOnTaskScoreVO.setTime(0L);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|