diff --git a/web/src/main/java/com/ibeetl/jlw/entity/HandsOnAchievement.java b/web/src/main/java/com/ibeetl/jlw/entity/HandsOnAchievement.java index b3d03197..90b3b2cd 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/HandsOnAchievement.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/HandsOnAchievement.java @@ -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; - } - } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnSimulationTasks.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnSimulationTasks.java index df8dc84a..f8ca7b6a 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnSimulationTasks.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnSimulationTasks.java @@ -55,7 +55,7 @@ public class TeacherOpenCourseHandsOnSimulationTasks extends BaseEntity{ private String assessmentRequirements ; - //考核时间分钟(考核要求AC必填) + //验证码弹出时间 private String assessmentTime ; diff --git a/web/src/main/java/com/ibeetl/jlw/service/HandsOnAchievementService.java b/web/src/main/java/com/ibeetl/jlw/service/HandsOnAchievementService.java index 4bfe5a51..460d2cd5 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/HandsOnAchievementService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/HandsOnAchievementService.java @@ -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{ +public class HandsOnAchievementService extends CoreBaseService { - @Autowired private HandsOnAchievementDao handsOnAchievementDao; + @Autowired + private HandsOnAchievementDao handsOnAchievementDao; - public PageQueryqueryByCondition(PageQuery query){ - PageQuery ret = handsOnAchievementDao.queryByCondition(query); + public PageQuery queryByCondition(PageQuery query) { + PageQuery ret = handsOnAchievementDao.queryByCondition(query); queryListAfter(ret.getList()); return ret; } - public PageQueryqueryByConditionQuery(PageQuery query){ - PageQuery ret = handsOnAchievementDao.queryByConditionQuery(query); + public PageQuery 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 handsOnAchievementList = new ArrayList<>(); try { @@ -71,11 +77,12 @@ public class HandsOnAchievementService extends CoreBaseService0){ - for(int i=0;i 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 0; - if(!flag){ + if (!flag) { msg = "更新指定参数失败"; } - }else{ + } else { msg = "指定参数为空"; } return msg; } - public List getValues (Object paras){ + public List getValues(Object paras) { return sqlManager.select(SqlId.of("jlw.handsOnAchievement.getHandsOnAchievementValues"), HandsOnAchievement.class, paras); } - public List getValuesByQuery (HandsOnAchievementQuery handsOnAchievementQuery){ + public List 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 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 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> 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 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); } + } diff --git a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskPptService.java b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskPptService.java index 8300f013..09813d53 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskPptService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskPptService.java @@ -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 queryByCondition(PageQuery query) { PageQuery ret = studentHandsOnTaskPptDao.queryByCondition(query); queryListAfter(ret.getList()); @@ -158,21 +162,37 @@ public class StudentHandsOnTaskPptService extends CoreBaseService 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); } diff --git a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskVideoService.java b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskVideoService.java index d5d4b1de..1cb37310 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskVideoService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskVideoService.java @@ -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 queryByCondition(PageQuery query) { PageQuery ret = studentHandsOnTaskVideoDao.queryByCondition(query); queryListAfter(ret.getList()); @@ -163,21 +168,34 @@ public class StudentHandsOnTaskVideoService extends CoreBaseService 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 single = videoService.createLambdaQuery() + // .andEq(StudentHandsOnTaskVideo::getTeacherOpenCourseId, teacherOpenCourseId) + // .andEq(StudentHandsOnTaskVideo::getStudentId, studentId).select(); + // List single2 = pptService.createLambdaQuery() + // .andEq(StudentHandsOnTaskPpt::getTeacherOpenCourseId, teacherOpenCourseId) + // .andEq(StudentHandsOnTaskPpt::getStudentId, studentId).select(); + // List single3 = stepService.createLambdaQuery() + // .andEq(StudentHandsOnTaskStep::getTeacherOpenCourseId, teacherOpenCourseId) + // .andEq(StudentHandsOnTaskStep::getStudentId, studentId).select(); + // List single4 = reportService.createLambdaQuery() + // .andEq(StudentHandsOnTaskReport::getTeacherOpenCourseId, teacherOpenCourseId) + // .andEq(StudentHandsOnTaskReport::getStudentId, studentId).select(); + // List single5 = theoryService.createLambdaQuery() + // .andEq(StudentHandsOnTaskTheory::getTeacherOpenCourseId, teacherOpenCourseId) + // .andEq(StudentHandsOnTaskTheory::getStudentId, studentId).select(); + PageQuery teacherOpenCourseHandsOns = teacherOpenCourseHandsOnDao.getHandsOnList(param.getPageQuery()); List teacherOpenCourseHandsOnLists = teacherOpenCourseHandsOns.getList(); List handIds = teacherOpenCourseHandsOnLists.stream().map(v -> v.getHandsOnId()).collect(Collectors.toList());