修复实训部分分数统计

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

@ -1,21 +1,23 @@
package com.ibeetl.jlw.entity;
import javax.validation.constraints.NotNull;
import com.ibeetl.admin.core.entity.BaseEntity;
import org.beetl.sql.annotation.entity.*;
import com.ibeetl.admin.core.util.ValidateConfig;
import lombok.*;
import org.beetl.sql.annotation.entity.AssignID;
import com.ibeetl.admin.core.annotation.Dict;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import java.util.Date;
/*
* -
* gen by Spring Boot2 Admin 2022-09-27
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class HandsOnAchievement extends BaseEntity{
//ID
@ -77,190 +79,5 @@ public class HandsOnAchievement extends BaseEntity{
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 ;
//考核时间分钟(考核要求AC必填)
//验证码弹出时间
private String assessmentTime ;

@ -1,5 +1,7 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
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.jlw.dao.HandsOnAchievementDao;
import com.ibeetl.jlw.entity.HandsOnAchievement;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.HandsOnAchievementQuery;
import org.apache.commons.lang3.StringUtils;
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.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -28,34 +33,35 @@ import java.util.Map;
@Service
@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){
PageQuery ret = handsOnAchievementDao.queryByCondition(query);
public PageQuery<HandsOnAchievement> queryByCondition(PageQuery query) {
PageQuery ret = handsOnAchievementDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<HandsOnAchievement>queryByConditionQuery(PageQuery query){
PageQuery ret = handsOnAchievementDao.queryByConditionQuery(query);
public PageQuery<HandsOnAchievement> queryByConditionQuery(PageQuery query) {
PageQuery ret = handsOnAchievementDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteByList(List list){
public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
}
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
handsOnAchievementDao.deleteByIds(ids);
}
}
public void deleteHandsOnAchievement(String ids){
public void deleteHandsOnAchievement(String ids) {
try {
handsOnAchievementDao.deleteHandsOnAchievementByIds(ids);
} 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 = "";
List<HandsOnAchievement> handsOnAchievementList = new ArrayList<>();
try {
@ -71,11 +77,12 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
} catch (Exception e) {
try {
handsOnAchievementList.add(JSONObject.parseObject(handsOnAchievementQuery.getHandsOnAchievementJsonStr(), HandsOnAchievement.class));
} catch (Exception e1) {}
} catch (Exception e1) {
}
}
ToolUtils.deleteNullList(handsOnAchievementList);
if(null != handsOnAchievementList && handsOnAchievementList.size()>0){
for(int i=0;i<handsOnAchievementList.size();i++){
if (null != handsOnAchievementList && handsOnAchievementList.size() > 0) {
for (int i = 0; i < handsOnAchievementList.size(); i++) {
HandsOnAchievement handsOnAchievement = handsOnAchievementList.get(i);
handsOnAchievement.setUserId(handsOnAchievementQuery.getUserId());
handsOnAchievement.setOrgId(handsOnAchievementQuery.getOrgId());
@ -85,7 +92,7 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
return msg;
}
public JsonResult add(HandsOnAchievementQuery handsOnAchievementQuery){
public JsonResult add(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = "";
HandsOnAchievement handsOnAchievement = handsOnAchievementQuery.pojo();
handsOnAchievementDao.insert(handsOnAchievement);
@ -97,51 +104,51 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
return jsonResult;
}
public String edit(HandsOnAchievementQuery handsOnAchievementQuery){
public String edit(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = "";
HandsOnAchievement handsOnAchievement = handsOnAchievementQuery.pojo();
handsOnAchievementDao.updateTemplateById(handsOnAchievement);
return msg;
}
public String updateGivenByIds(HandsOnAchievementQuery handsOnAchievementQuery){
public String updateGivenByIds(HandsOnAchievementQuery handsOnAchievementQuery) {
String msg = "";
if(StringUtils.isNotBlank(handsOnAchievementQuery.get_given())){
if (StringUtils.isNotBlank(handsOnAchievementQuery.get_given())) {
boolean flag = handsOnAchievementDao.updateGivenByIds(handsOnAchievementQuery) > 0;
if(!flag){
if (!flag) {
msg = "更新指定参数失败";
}
}else{
} else {
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);
}
public List<HandsOnAchievement> getValuesByQuery (HandsOnAchievementQuery handsOnAchievementQuery){
public List<HandsOnAchievement> getValuesByQuery(HandsOnAchievementQuery handsOnAchievementQuery) {
return handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery);
}
public HandsOnAchievement getInfo (Long handOnAchievementId){
public HandsOnAchievement getInfo(Long handOnAchievementId) {
HandsOnAchievementQuery handsOnAchievementQuery = new HandsOnAchievementQuery();
handsOnAchievementQuery.setHandOnAchievementId(handOnAchievementId);
handsOnAchievementQuery.setHandOnAchievementStatusPlural("1,2");//需要根据实际情况来
List<HandsOnAchievement> list = handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public HandsOnAchievement getInfo (HandsOnAchievementQuery handsOnAchievementQuery){
public HandsOnAchievement getInfo(HandsOnAchievementQuery handsOnAchievementQuery) {
List<HandsOnAchievement> list = handsOnAchievementDao.getValuesByQuery(handsOnAchievementQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
@ -152,6 +159,69 @@ public class HandsOnAchievementService extends CoreBaseService<HandsOnAchievemen
public List<Map<String, Object>> getExcelValues(HandsOnAchievementQuery 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.TeacherOpenCourseHandsOnSimulationTasksDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.StudentHandsOnTaskPptQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksFileQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery;
@ -63,6 +64,9 @@ public class StudentHandsOnTaskPptService extends CoreBaseService<StudentHandsOn
@Autowired
private StudentHandsOnTaskLogDao studentHandsOnTaskLogService;
@Autowired
private HandsOnAchievementService handsOnAchievementService;
public PageQuery<StudentHandsOnTaskPpt> queryByCondition(PageQuery query) {
PageQuery ret = studentHandsOnTaskPptDao.queryByCondition(query);
queryListAfter(ret.getList());
@ -158,21 +162,37 @@ public class StudentHandsOnTaskPptService extends CoreBaseService<StudentHandsOn
.andEq(StudentHandsOnTaskLog::getStudentId, student.getStudentId()).select();
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()
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskPpt.getHandsOnTaskId()).single();
if (single != null) {
try {
String assessmentTime = single.getAssessmentTime();
String assessmentTime = single.getAssessmentRequirements();
int compare = v.compareTo(new BigDecimal(assessmentTime));
if (compare > 0) {
if (compare >= 0) {
String taskScore = single.getTaskScore();
int i = NumberUtil.parseInt(taskScore);
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 {
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.TeacherOpenCourseHandsOnSimulationTasksDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.StudentHandsOnTaskVideoQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksFileQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery;
@ -63,6 +64,10 @@ public class StudentHandsOnTaskVideoService extends CoreBaseService<StudentHands
@Autowired
private StudentHandsOnTaskLogDao studentHandsOnTaskLogService;
@Autowired
private HandsOnAchievementService handsOnAchievementService;
public PageQuery<StudentHandsOnTaskVideo> queryByCondition(PageQuery query) {
PageQuery ret = studentHandsOnTaskVideoDao.queryByCondition(query);
queryListAfter(ret.getList());
@ -163,21 +168,34 @@ public class StudentHandsOnTaskVideoService extends CoreBaseService<StudentHands
.andEq(StudentHandsOnTaskLog::getHandsOnTaskId, studentHandsOnTaskVideo.getHandsOnTaskId())
.andEq(StudentHandsOnTaskLog::getStudentId, student.getStudentId()).select();
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
v = v.multiply(BigDecimal.TEN).divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
BigDecimal v = new BigDecimal(allTime).divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery()
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskVideo.getHandsOnTaskId()).single();
if (single != null) {
try {
String assessmentTime = single.getAssessmentTime();
String assessmentTime = single.getAssessmentRequirements();
int compare = v.compareTo(new BigDecimal(assessmentTime));
if (compare > 0) {
if (compare >= 0) {
String taskScore = single.getTaskScore();
int i = NumberUtil.parseInt(taskScore);
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 {
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)
.andEq(StudentHandsOnTaskVideo::getStudentId, student.getStudentId()).singleSimple();
if (studentHandsOnTaskVideo == null) {
if (Objects.equals(sourceType,2)){
if (Objects.equals(sourceType, 2)) {
return JsonResult.failMessage("该任务未完成");
}
studentHandsOnTaskVideo = new StudentHandsOnTaskVideo();

@ -315,6 +315,23 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
}
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());
List<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOnLists = teacherOpenCourseHandsOns.getList();
List<Long> handIds = teacherOpenCourseHandsOnLists.stream().map(v -> v.getHandsOnId()).collect(Collectors.toList());

Loading…
Cancel
Save