修复实训部分分数统计

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;
@ -28,34 +33,35 @@ import java.util.Map;
@Service @Service
@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);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
return ret; return ret;
} }
public PageQuery<HandsOnAchievement>queryByConditionQuery(PageQuery query){ public PageQuery<HandsOnAchievement> queryByConditionQuery(PageQuery query) {
PageQuery ret = handsOnAchievementDao.queryByConditionQuery(query); PageQuery ret = handsOnAchievementDao.queryByConditionQuery(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
return ret; return ret;
} }
public void deleteByList(List list){ public void deleteByList(List list) {
String ids = ""; String ids = "";
ToolUtils.deleteNullList(list); ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){ for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString()+(i==list.size()-1?"":","); ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
} }
if(StringUtils.isNotBlank(ids)){ if (StringUtils.isNotBlank(ids)) {
handsOnAchievementDao.deleteByIds(ids); handsOnAchievementDao.deleteByIds(ids);
} }
} }
public void deleteHandsOnAchievement(String ids){ public void deleteHandsOnAchievement(String ids) {
try { try {
handsOnAchievementDao.deleteHandsOnAchievementByIds(ids); handsOnAchievementDao.deleteHandsOnAchievementByIds(ids);
} catch (Exception e) { } catch (Exception e) {
@ -63,7 +69,7 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
} }
} }
public String addAll(HandsOnAchievementQuery handsOnAchievementQuery){ public String addAll(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = ""; String msg = "";
List<HandsOnAchievement> handsOnAchievementList = new ArrayList<>(); List<HandsOnAchievement> handsOnAchievementList = new ArrayList<>();
try { try {
@ -71,11 +77,12 @@ 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) {
for(int i=0;i<handsOnAchievementList.size();i++){ for (int i = 0; i < handsOnAchievementList.size(); i++) {
HandsOnAchievement handsOnAchievement = handsOnAchievementList.get(i); HandsOnAchievement handsOnAchievement = handsOnAchievementList.get(i);
handsOnAchievement.setUserId(handsOnAchievementQuery.getUserId()); handsOnAchievement.setUserId(handsOnAchievementQuery.getUserId());
handsOnAchievement.setOrgId(handsOnAchievementQuery.getOrgId()); handsOnAchievement.setOrgId(handsOnAchievementQuery.getOrgId());
@ -85,7 +92,7 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
return msg; return msg;
} }
public JsonResult add(HandsOnAchievementQuery handsOnAchievementQuery){ public JsonResult add(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = ""; String msg = "";
HandsOnAchievement handsOnAchievement = handsOnAchievementQuery.pojo(); HandsOnAchievement handsOnAchievement = handsOnAchievementQuery.pojo();
handsOnAchievementDao.insert(handsOnAchievement); handsOnAchievementDao.insert(handsOnAchievement);
@ -97,51 +104,51 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
return jsonResult; return jsonResult;
} }
public String edit(HandsOnAchievementQuery handsOnAchievementQuery){ public String edit(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = ""; String msg = "";
HandsOnAchievement handsOnAchievement = handsOnAchievementQuery.pojo(); HandsOnAchievement handsOnAchievement = handsOnAchievementQuery.pojo();
handsOnAchievementDao.updateTemplateById(handsOnAchievement); handsOnAchievementDao.updateTemplateById(handsOnAchievement);
return msg; return msg;
} }
public String updateGivenByIds(HandsOnAchievementQuery handsOnAchievementQuery){ public String updateGivenByIds(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = ""; String msg = "";
if(StringUtils.isNotBlank(handsOnAchievementQuery.get_given())){ if (StringUtils.isNotBlank(handsOnAchievementQuery.get_given())) {
boolean flag = handsOnAchievementDao.updateGivenByIds(handsOnAchievementQuery) > 0; boolean flag = handsOnAchievementDao.updateGivenByIds(handsOnAchievementQuery) > 0;
if(!flag){ if (!flag) {
msg = "更新指定参数失败"; msg = "更新指定参数失败";
} }
}else{ } else {
msg = "指定参数为空"; msg = "指定参数为空";
} }
return msg; return msg;
} }
public List<HandsOnAchievement> getValues (Object paras){ public List<HandsOnAchievement> getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.handsOnAchievement.getHandsOnAchievementValues"), HandsOnAchievement.class, paras); return sqlManager.select(SqlId.of("jlw.handsOnAchievement.getHandsOnAchievementValues"), HandsOnAchievement.class, paras);
} }
public List<HandsOnAchievement> getValuesByQuery (HandsOnAchievementQuery handsOnAchievementQuery){ public List<HandsOnAchievement> getValuesByQuery(HandsOnAchievementQuery handsOnAchievementQuery) {
return handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery); return handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery);
} }
public HandsOnAchievement getInfo (Long handOnAchievementId){ public HandsOnAchievement getInfo(Long handOnAchievementId) {
HandsOnAchievementQuery handsOnAchievementQuery = new HandsOnAchievementQuery(); HandsOnAchievementQuery handsOnAchievementQuery = new HandsOnAchievementQuery();
handsOnAchievementQuery.setHandOnAchievementId(handOnAchievementId); handsOnAchievementQuery.setHandOnAchievementId(handOnAchievementId);
handsOnAchievementQuery.setHandOnAchievementStatusPlural("1,2");//需要根据实际情况来 handsOnAchievementQuery.setHandOnAchievementStatusPlural("1,2");//需要根据实际情况来
List<HandsOnAchievement> list = handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery); List<HandsOnAchievement> list = handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery);
if(null != list && list.size()>0){ if (null != list && list.size() > 0) {
return list.get(0); return list.get(0);
}else{ } else {
return null; return null;
} }
} }
public HandsOnAchievement getInfo (HandsOnAchievementQuery handsOnAchievementQuery){ public HandsOnAchievement getInfo(HandsOnAchievementQuery handsOnAchievementQuery) {
List<HandsOnAchievement> list = handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery); List<HandsOnAchievement> list = handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery);
if(null != list && list.size()>0){ if (null != list && list.size() > 0) {
return list.get(0); return list.get(0);
}else{ } else {
return null; return null;
} }
} }
@ -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);
} }
@ -408,7 +426,7 @@ public class StudentHandsOnTaskVideoService extends CoreBaseService<StudentHands
StudentHandsOnTaskVideo studentHandsOnTaskVideo = this.sqlManager.lambdaQuery(StudentHandsOnTaskVideo.class).andEq(StudentHandsOnTaskVideo::getHandsOnTaskId, taskId) StudentHandsOnTaskVideo studentHandsOnTaskVideo = this.sqlManager.lambdaQuery(StudentHandsOnTaskVideo.class).andEq(StudentHandsOnTaskVideo::getHandsOnTaskId, taskId)
.andEq(StudentHandsOnTaskVideo::getStudentId, student.getStudentId()).singleSimple(); .andEq(StudentHandsOnTaskVideo::getStudentId, student.getStudentId()).singleSimple();
if (studentHandsOnTaskVideo == null) { if (studentHandsOnTaskVideo == null) {
if (Objects.equals(sourceType,2)){ if (Objects.equals(sourceType, 2)) {
return JsonResult.failMessage("该任务未完成"); return JsonResult.failMessage("该任务未完成");
} }
studentHandsOnTaskVideo = new StudentHandsOnTaskVideo(); studentHandsOnTaskVideo = new StudentHandsOnTaskVideo();

@ -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