修复实训部分分数统计

beetlsql3-dev
yaodan 2 years ago
parent 0be0ecb127
commit 50e2321dd8

@ -1,21 +1,23 @@
package com.ibeetl.jlw.entity; package com.ibeetl.jlw.entity;
import javax.validation.constraints.NotNull;
import com.ibeetl.admin.core.entity.BaseEntity; import com.ibeetl.admin.core.entity.BaseEntity;
import org.beetl.sql.annotation.entity.*;
import com.ibeetl.admin.core.util.ValidateConfig; import com.ibeetl.admin.core.util.ValidateConfig;
import lombok.*;
import org.beetl.sql.annotation.entity.AssignID;
import com.ibeetl.admin.core.annotation.Dict; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/* /*
* - * -
* gen by Spring Boot2 Admin 2022-09-27 * gen by Spring Boot2 Admin 2022-09-27
*/ */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class HandsOnAchievement extends BaseEntity{ public class HandsOnAchievement extends BaseEntity{
//ID //ID
@ -77,190 +79,5 @@ public class HandsOnAchievement extends BaseEntity{
private Long userId ; private Long userId ;
public HandsOnAchievement(){
}
/**ID
*@return
*/
public Long getHandOnAchievementId(){
return handOnAchievementId;
}
/**ID
*@param handOnAchievementId
*/
public void setHandOnAchievementId(Long handOnAchievementId){
this.handOnAchievementId = handOnAchievementId;
}
/**ID
*@return
*/
public Long getHandOnId(){
return handOnId;
}
/**ID
*@param handOnId
*/
public void setHandOnId(Long handOnId){
this.handOnId = handOnId;
}
/**ID
*@return
*/
public Long getClassId(){
return classId;
}
/**ID
*@param classId
*/
public void setClassId(Long classId){
this.classId = classId;
}
/**ID
*@return
*/
public Long getStudentId(){
return studentId;
}
/**ID
*@param studentId
*/
public void setStudentId(Long studentId){
this.studentId = studentId;
}
/**
*@return
*/
public String getVideoScore(){
return videoScore;
}
/**
*@param videoScore
*/
public void setVideoScore(String videoScore){
this.videoScore = videoScore;
}
/**PTT
*@return
*/
public String getPptScore(){
return pptScore;
}
/**PTT
*@param pptScore
*/
public void setPptScore(String pptScore){
this.pptScore = pptScore;
}
/**
*@return
*/
public String getTheoryScore(){
return theoryScore;
}
/**
*@param theoryScore
*/
public void setTheoryScore(String theoryScore){
this.theoryScore = theoryScore;
}
/**
*@return
*/
public String getPracticalTrainingScore(){
return practicalTrainingScore;
}
/**
*@param practicalTrainingScore
*/
public void setPracticalTrainingScore(String practicalTrainingScore){
this.practicalTrainingScore = practicalTrainingScore;
}
/**
*@return
*/
public String getReportWritingScore(){
return reportWritingScore;
}
/**
*@param reportWritingScore
*/
public void setReportWritingScore(String reportWritingScore){
this.reportWritingScore = reportWritingScore;
}
/**
*@return
*/
public String getTotalScore(){
return totalScore;
}
/**
*@param totalScore
*/
public void setTotalScore(String totalScore){
this.totalScore = totalScore;
}
/**(1 2)
*@return
*/
public Integer getHandOnAchievementStatus(){
return handOnAchievementStatus;
}
/**(1 2)
*@param handOnAchievementStatus
*/
public void setHandOnAchievementStatus(Integer handOnAchievementStatus){
this.handOnAchievementStatus = handOnAchievementStatus;
}
/**
*@return
*/
public Date getAddTime(){
return addTime;
}
/**
*@param addTime
*/
public void setAddTime(Date addTime){
this.addTime = addTime;
}
/**ID
*@return
*/
public Long getOrgId(){
return orgId;
}
/**ID
*@param orgId
*/
public void setOrgId(Long orgId){
this.orgId = orgId;
}
/**ID
*@return
*/
public Long getUserId(){
return userId;
}
/**ID
*@param userId
*/
public void setUserId(Long userId){
this.userId = userId;
}
} }

@ -55,7 +55,7 @@ public class TeacherOpenCourseHandsOnSimulationTasks extends BaseEntity{
private String assessmentRequirements ; private String assessmentRequirements ;
//考核时间分钟(考核要求AC必填) //验证码弹出时间
private String assessmentTime ; private String assessmentTime ;

@ -1,5 +1,7 @@
package com.ibeetl.jlw.service; package com.ibeetl.jlw.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.jlw.util.ToolUtils; import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -9,6 +11,7 @@ import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.HandsOnAchievementDao; import com.ibeetl.jlw.dao.HandsOnAchievementDao;
import com.ibeetl.jlw.entity.HandsOnAchievement; import com.ibeetl.jlw.entity.HandsOnAchievement;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.HandsOnAchievementQuery; import com.ibeetl.jlw.web.query.HandsOnAchievementQuery;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.beetl.sql.core.SqlId; import org.beetl.sql.core.SqlId;
@ -17,7 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -30,7 +35,8 @@ import java.util.Map;
@Transactional @Transactional
public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievement> { public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievement> {
@Autowired private HandsOnAchievementDao handsOnAchievementDao; @Autowired
private HandsOnAchievementDao handsOnAchievementDao;
public PageQuery<HandsOnAchievement> queryByCondition(PageQuery query) { public PageQuery<HandsOnAchievement> queryByCondition(PageQuery query) {
PageQuery ret = handsOnAchievementDao.queryByCondition(query); PageQuery ret = handsOnAchievementDao.queryByCondition(query);
@ -71,7 +77,8 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
} catch (Exception e) { } catch (Exception e) {
try { try {
handsOnAchievementList.add(JSONObject.parseObject(handsOnAchievementQuery.getHandsOnAchievementJsonStr(), HandsOnAchievement.class)); handsOnAchievementList.add(JSONObject.parseObject(handsOnAchievementQuery.getHandsOnAchievementJsonStr(), HandsOnAchievement.class));
} catch (Exception e1) {} } catch (Exception e1) {
}
} }
ToolUtils.deleteNullList(handsOnAchievementList); ToolUtils.deleteNullList(handsOnAchievementList);
if (null != handsOnAchievementList && handsOnAchievementList.size() > 0) { if (null != handsOnAchievementList && handsOnAchievementList.size() > 0) {
@ -152,6 +159,69 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
public List<Map<String, Object>> getExcelValues(HandsOnAchievementQuery handsOnAchievementQuery) { public List<Map<String, Object>> getExcelValues(HandsOnAchievementQuery handsOnAchievementQuery) {
return handsOnAchievementDao.getExcelValues(handsOnAchievementQuery); return handsOnAchievementDao.getExcelValues(handsOnAchievementQuery);
}
public void setHandsOnAchievement(HandsOnAchievement handsOnAchievement, HandsOnTaskEnum handsOnTaskEnum) {
if (handsOnAchievement.getStudentId() == null || handsOnAchievement.getHandOnId() == null || handsOnAchievement.getClassId() == null || handsOnTaskEnum == null) {
throw new PlatformException("参数不完整");
}
List<HandsOnAchievement> res = handsOnAchievementDao.createLambdaQuery()
.andEq(HandsOnAchievement::getStudentId, handsOnAchievement.getStudentId())
.andEq(HandsOnAchievement::getClassId, handsOnAchievement.getClassId())
.andEq(HandsOnAchievement::getHandOnId, handsOnAchievement.getHandOnId())
.andEq(HandsOnAchievement::getHandOnAchievementStatus, 1).select();
if (CollUtil.isEmpty(res)) {
handsOnAchievement.setAddTime(new Date());
handsOnAchievement.setHandOnAchievementStatus(1);
handsOnAchievement.setTotalScore(calTotalScore(handsOnAchievement).toPlainString());
handsOnAchievementDao.insert(handsOnAchievement);
} else {
HandsOnAchievement last = res.get(0);
switch (handsOnTaskEnum) {
case TASK_PPT:
last.setPptScore(handsOnAchievement.getPptScore());
break;
case TASK_VIDEO:
last.setVideoScore(handsOnAchievement.getVideoScore());
break;
case TASK_THEORY:
last.setTheoryScore(handsOnAchievement.getTheoryScore());
break;
case TASK_REPORT_WRITING:
last.setReportWritingScore(handsOnAchievement.getReportWritingScore());
break;
case TASK_PRACTICAL_TRAINING:
last.setPracticalTrainingScore(handsOnAchievement.getPracticalTrainingScore());
break;
default:
break;
}
last.setTotalScore(calTotalScore(last).toPlainString());
handsOnAchievementDao.updateTemplateById(last);
}
} }
private BigDecimal calTotalScore(HandsOnAchievement handsOnAchievement) {
if (handsOnAchievement == null) {
throw new PlatformException("参数不完整");
}
BigDecimal pptScore = new BigDecimal(ObjectUtil.defaultIfNull(handsOnAchievement.getPptScore(), "0"));
BigDecimal theoryScore = new BigDecimal(ObjectUtil.defaultIfNull(handsOnAchievement.getTheoryScore(), "0"));
BigDecimal videoScore = new BigDecimal(ObjectUtil.defaultIfNull(handsOnAchievement.getVideoScore(), "0"));
BigDecimal reportWritingScore = new BigDecimal(ObjectUtil.defaultIfNull(handsOnAchievement.getReportWritingScore(), "0"));
BigDecimal practicalTrainingScore = new BigDecimal(ObjectUtil.defaultIfNull(handsOnAchievement.getPracticalTrainingScore(), "0"));
return pptScore.add(theoryScore).add(videoScore).add(reportWritingScore).add(practicalTrainingScore);
}
} }

@ -19,6 +19,7 @@ import com.ibeetl.jlw.dao.StudentHandsOnTaskLogDao;
import com.ibeetl.jlw.dao.StudentHandsOnTaskPptDao; import com.ibeetl.jlw.dao.StudentHandsOnTaskPptDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao; import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao;
import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.StudentHandsOnTaskPptQuery; import com.ibeetl.jlw.web.query.StudentHandsOnTaskPptQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksFileQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksFileQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery;
@ -63,6 +64,9 @@ public class StudentHandsOnTaskPptService extends CoreBaseService<StudentHandsOn
@Autowired @Autowired
private StudentHandsOnTaskLogDao studentHandsOnTaskLogService; private StudentHandsOnTaskLogDao studentHandsOnTaskLogService;
@Autowired
private HandsOnAchievementService handsOnAchievementService;
public PageQuery<StudentHandsOnTaskPpt> queryByCondition(PageQuery query) { public PageQuery<StudentHandsOnTaskPpt> queryByCondition(PageQuery query) {
PageQuery ret = studentHandsOnTaskPptDao.queryByCondition(query); PageQuery ret = studentHandsOnTaskPptDao.queryByCondition(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
@ -158,21 +162,37 @@ public class StudentHandsOnTaskPptService extends CoreBaseService<StudentHandsOn
.andEq(StudentHandsOnTaskLog::getStudentId, student.getStudentId()).select(); .andEq(StudentHandsOnTaskLog::getStudentId, student.getStudentId()).select();
if (CollectionUtil.isNotEmpty(selectLog)) { if (CollectionUtil.isNotEmpty(selectLog)) {
BigDecimal v = BigDecimal.valueOf(selectLog.size());
//分钟数 = 日志数 * 10每10秒提交一次的 / 60 //讲道理只会有一个
v = v.multiply(BigDecimal.TEN).divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP); StudentHandsOnTaskLog studentHandsOnTaskLog = selectLog.get(0);
//总秒数
Long allTime = studentHandsOnTaskLog.getAllTime();
if (allTime==null){
throw new PlatformException("系统异常,观看日志中没有观看时长");
}
BigDecimal v = new BigDecimal(allTime).divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery() TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery()
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskPpt.getHandsOnTaskId()).single(); .andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskPpt.getHandsOnTaskId()).single();
if (single != null) { if (single != null) {
try { try {
String assessmentTime = single.getAssessmentTime(); String assessmentTime = single.getAssessmentRequirements();
int compare = v.compareTo(new BigDecimal(assessmentTime)); int compare = v.compareTo(new BigDecimal(assessmentTime));
if (compare > 0) { if (compare >= 0) {
String taskScore = single.getTaskScore(); String taskScore = single.getTaskScore();
int i = NumberUtil.parseInt(taskScore); int i = NumberUtil.parseInt(taskScore);
studentHandsOnTaskPpt.setPptScore(BigDecimal.valueOf(i)); studentHandsOnTaskPpt.setPptScore(BigDecimal.valueOf(i));
HandsOnAchievement build = HandsOnAchievement.builder()
.handOnId(single.getHandsOnId())
.studentId(student.getStudentId())
.classId(student.getClassId())
.pptScore(BigDecimal.valueOf(i).toPlainString())
.orgId(student.getOrgId())
.userId(student.getUserId()).build();
handsOnAchievementService.setHandsOnAchievement(build, HandsOnTaskEnum.TASK_PPT);
} else { } else {
studentHandsOnTaskPpt.setPptScore(BigDecimal.ZERO); studentHandsOnTaskPpt.setPptScore(BigDecimal.ZERO);
} }

@ -19,6 +19,7 @@ import com.ibeetl.jlw.dao.StudentHandsOnTaskLogDao;
import com.ibeetl.jlw.dao.StudentHandsOnTaskVideoDao; import com.ibeetl.jlw.dao.StudentHandsOnTaskVideoDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao; import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao;
import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.StudentHandsOnTaskVideoQuery; import com.ibeetl.jlw.web.query.StudentHandsOnTaskVideoQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksFileQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksFileQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery;
@ -63,6 +64,10 @@ public class StudentHandsOnTaskVideoService extends CoreBaseService<StudentHands
@Autowired @Autowired
private StudentHandsOnTaskLogDao studentHandsOnTaskLogService; private StudentHandsOnTaskLogDao studentHandsOnTaskLogService;
@Autowired
private HandsOnAchievementService handsOnAchievementService;
public PageQuery<StudentHandsOnTaskVideo> queryByCondition(PageQuery query) { public PageQuery<StudentHandsOnTaskVideo> queryByCondition(PageQuery query) {
PageQuery ret = studentHandsOnTaskVideoDao.queryByCondition(query); PageQuery ret = studentHandsOnTaskVideoDao.queryByCondition(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
@ -163,21 +168,34 @@ public class StudentHandsOnTaskVideoService extends CoreBaseService<StudentHands
.andEq(StudentHandsOnTaskLog::getHandsOnTaskId, studentHandsOnTaskVideo.getHandsOnTaskId()) .andEq(StudentHandsOnTaskLog::getHandsOnTaskId, studentHandsOnTaskVideo.getHandsOnTaskId())
.andEq(StudentHandsOnTaskLog::getStudentId, student.getStudentId()).select(); .andEq(StudentHandsOnTaskLog::getStudentId, student.getStudentId()).select();
if (CollectionUtil.isNotEmpty(selectLog)) { if (CollectionUtil.isNotEmpty(selectLog)) {
BigDecimal v = BigDecimal.valueOf(selectLog.size()); //讲道理只会有一个
StudentHandsOnTaskLog studentHandsOnTaskLog = selectLog.get(0);
//总秒数
Long allTime = studentHandsOnTaskLog.getAllTime();
if (allTime == null) {
throw new PlatformException("系统异常,观看日志中没有观看时长");
}
//分钟数 = 日志数 * 10每10秒提交一次的 / 60 BigDecimal v = new BigDecimal(allTime).divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
v = v.multiply(BigDecimal.TEN).divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery() TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery()
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskVideo.getHandsOnTaskId()).single(); .andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskVideo.getHandsOnTaskId()).single();
if (single != null) { if (single != null) {
try { try {
String assessmentTime = single.getAssessmentTime(); String assessmentTime = single.getAssessmentRequirements();
int compare = v.compareTo(new BigDecimal(assessmentTime)); int compare = v.compareTo(new BigDecimal(assessmentTime));
if (compare > 0) { if (compare >= 0) {
String taskScore = single.getTaskScore(); String taskScore = single.getTaskScore();
int i = NumberUtil.parseInt(taskScore); int i = NumberUtil.parseInt(taskScore);
studentHandsOnTaskVideo.setVideoScore(BigDecimal.valueOf(i)); studentHandsOnTaskVideo.setVideoScore(BigDecimal.valueOf(i));
HandsOnAchievement build = HandsOnAchievement.builder()
.handOnId(single.getHandsOnId())
.studentId(student.getStudentId())
.classId(student.getClassId())
.videoScore(BigDecimal.valueOf(i).toPlainString())
.orgId(student.getOrgId())
.userId(student.getUserId()).build();
handsOnAchievementService.setHandsOnAchievement(build, HandsOnTaskEnum.TASK_VIDEO);
} else { } else {
studentHandsOnTaskVideo.setVideoScore(BigDecimal.ZERO); studentHandsOnTaskVideo.setVideoScore(BigDecimal.ZERO);
} }

@ -315,6 +315,23 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
} }
public TeacherOpenCourseHandsOnList getHandsOnListCount(GetHandsOnListParam param) { public TeacherOpenCourseHandsOnList getHandsOnListCount(GetHandsOnListParam param) {
// //实操成绩
// List<StudentHandsOnTaskVideo> single = videoService.createLambdaQuery()
// .andEq(StudentHandsOnTaskVideo::getTeacherOpenCourseId, teacherOpenCourseId)
// .andEq(StudentHandsOnTaskVideo::getStudentId, studentId).select();
// List<StudentHandsOnTaskPpt> single2 = pptService.createLambdaQuery()
// .andEq(StudentHandsOnTaskPpt::getTeacherOpenCourseId, teacherOpenCourseId)
// .andEq(StudentHandsOnTaskPpt::getStudentId, studentId).select();
// List<StudentHandsOnTaskStep> single3 = stepService.createLambdaQuery()
// .andEq(StudentHandsOnTaskStep::getTeacherOpenCourseId, teacherOpenCourseId)
// .andEq(StudentHandsOnTaskStep::getStudentId, studentId).select();
// List<StudentHandsOnTaskReport> single4 = reportService.createLambdaQuery()
// .andEq(StudentHandsOnTaskReport::getTeacherOpenCourseId, teacherOpenCourseId)
// .andEq(StudentHandsOnTaskReport::getStudentId, studentId).select();
// List<StudentHandsOnTaskTheory> single5 = theoryService.createLambdaQuery()
// .andEq(StudentHandsOnTaskTheory::getTeacherOpenCourseId, teacherOpenCourseId)
// .andEq(StudentHandsOnTaskTheory::getStudentId, studentId).select();
PageQuery<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOns = teacherOpenCourseHandsOnDao.getHandsOnList(param.getPageQuery()); PageQuery<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOns = teacherOpenCourseHandsOnDao.getHandsOnList(param.getPageQuery());
List<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOnLists = teacherOpenCourseHandsOns.getList(); List<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOnLists = teacherOpenCourseHandsOns.getList();
List<Long> handIds = teacherOpenCourseHandsOnLists.stream().map(v -> v.getHandsOnId()).collect(Collectors.toList()); List<Long> handIds = teacherOpenCourseHandsOnLists.stream().map(v -> v.getHandsOnId()).collect(Collectors.toList());

Loading…
Cancel
Save