diff --git a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskStepService.java b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskStepService.java index 0556b207..a653fb19 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskStepService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskStepService.java @@ -3,6 +3,7 @@ package com.ibeetl.jlw.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Console; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import cn.jlw.util.ToolUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -38,6 +39,7 @@ import org.springframework.validation.annotation.Validated; import java.io.*; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue; @@ -49,36 +51,41 @@ import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue; @Service @Transactional @Validated -public class StudentHandsOnTaskStepService extends CoreBaseService{ - - @Autowired private StudentHandsOnTaskStepDao studentHandsOnTaskStepDao; - @Autowired private StudentService studentService; - @Autowired private TeacherOpenCourseHandsOnSimulationTasksDao tasksService; - @Autowired private TeacherOpenCourseHandsOnSimulationTasksAssessmentService assessmentService; - public PageQueryqueryByCondition(PageQuery query){ - PageQuery ret = studentHandsOnTaskStepDao.queryByCondition(query); +public class StudentHandsOnTaskStepService extends CoreBaseService { + + @Autowired + private StudentHandsOnTaskStepDao studentHandsOnTaskStepDao; + @Autowired + private StudentService studentService; + @Autowired + private TeacherOpenCourseHandsOnSimulationTasksDao tasksService; + @Autowired + private TeacherOpenCourseHandsOnSimulationTasksAssessmentService assessmentService; + + public PageQuery queryByCondition(PageQuery query) { + PageQuery ret = studentHandsOnTaskStepDao.queryByCondition(query); queryListAfter(ret.getList()); return ret; } - public PageQueryqueryByConditionQuery(PageQuery query){ - PageQuery ret = studentHandsOnTaskStepDao.queryByConditionQuery(query); + public PageQuery queryByConditionQuery(PageQuery query) { + PageQuery ret = studentHandsOnTaskStepDao.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 studentHandsOnTaskStepList = new ArrayList<>(); try { @@ -94,11 +101,12 @@ public class StudentHandsOnTaskStepService extends CoreBaseService0){ - for(int i=0;i 0) { + for (int i = 0; i < studentHandsOnTaskStepList.size(); i++) { StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepList.get(i); studentHandsOnTaskStep.setUserId(studentHandsOnTaskStepQuery.getUserId()); studentHandsOnTaskStep.setOrgId(studentHandsOnTaskStepQuery.getOrgId()); @@ -108,7 +116,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService> maps = JSONArray.parseObject(stem, new TypeReference>>(){}); + List> maps = JSONArray.parseObject(stem, new TypeReference>>() { + }); if (CollectionUtil.isNotEmpty(maps)) { double schedules = 0; for (Map map : maps) { @@ -144,19 +153,35 @@ public class StudentHandsOnTaskStepService extends CoreBaseService= 0) { - String taskScore = single.getTaskScore(); - int i = NumberUtil.parseInt(taskScore); - studentHandsOnTaskStep.setTheoryScore(BigDecimal.valueOf(i)); - }else { + + Long taskId = single.getTaskId(); + TeacherOpenCourseHandsOnSimulationTasksAssessment teacherOpenCourseHandsOnSimulationTasksAssessment = new TeacherOpenCourseHandsOnSimulationTasksAssessment(); + teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnTaskId(taskId); + //实训任务的评估项 + List values = assessmentService.getValues(teacherOpenCourseHandsOnSimulationTasksAssessment); + + Map>> handsOnSimulationTasksAssessmentId = maps.stream().collect(Collectors.groupingBy(e -> Long.parseLong(ObjectUtil.defaultIfNull(e.get("handsOnSimulationTasksAssessmentId"), "0").toString()))); + + BigDecimal initScore = BigDecimal.ZERO; + if (values != null && values.size() > 0) { + //String taskScore = single.getTaskScore(); + // int i = NumberUtil.parseInt(taskScore); + // studentHandsOnTaskStep.setTheoryScore(BigDecimal.valueOf(i)); + for (TeacherOpenCourseHandsOnSimulationTasksAssessment value : values) { + + } + } else { + //为空就是没有评估项,这里先做0分处理 studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO); } - }else { + + + } else { studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO); } } - }catch (Exception e) { + } catch (Exception e) { Console.log(e); } } @@ -164,69 +189,69 @@ public class StudentHandsOnTaskStepService 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.studentHandsOnTaskStep.getStudentHandsOnTaskStepValues"), StudentHandsOnTaskStep.class, paras); } - public List getValuesByQuery (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ + public List getValuesByQuery(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) { return studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery); } - public List getValuesByQueryNotWithPermission (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ + public List getValuesByQueryNotWithPermission(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) { return studentHandsOnTaskStepDao.getValuesByQueryNotWithPermission(studentHandsOnTaskStepQuery); } - public StudentHandsOnTaskStep getInfo (Long studentHandsOnTaskStepId){ + public StudentHandsOnTaskStep getInfo(Long studentHandsOnTaskStepId) { StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery = new StudentHandsOnTaskStepQuery(); studentHandsOnTaskStepQuery.setStudentHandsOnTaskStepId(studentHandsOnTaskStepId); List list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery); - if(null != list && list.size()>0){ + if (null != list && list.size() > 0) { return list.get(0); - }else{ + } else { return null; } } - public StudentHandsOnTaskStep getInfo (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ + public StudentHandsOnTaskStep getInfo(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) { List list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery); - if(null != list && list.size()>0){ + if (null != list && list.size() > 0) { return list.get(0); - }else{ + } else { return null; } } - public JsonResult importTemplate(List fileEntityList,Listlist,CoreUser coreUser){ - ListerrMsg = new ArrayList<>(); - String msg =""; + public JsonResult importTemplate(List fileEntityList, List list, CoreUser coreUser) { + List errMsg = new ArrayList<>(); + String msg = ""; int count = 0; Date date = new Date(); - for(int item=0;null != fileEntityList && item map = new HashMap<>();//获取需要的表头的列 + Map map = new HashMap<>();//获取需要的表头的列 //从第一列找到需要的表头 - for (int i=0; i0?JsonReturnCode.SUCCESS.getCode():JsonReturnCode.FAIL.getCode()); + jsonResult.setCode(count > 0 ? JsonReturnCode.SUCCESS.getCode() : JsonReturnCode.FAIL.getCode()); jsonResult.setData(errMsg); - jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"
"+msg:"")); + jsonResult.setMsg((count > 0 ? "导入成功,共导入" + count + "条" : "导入失败") + (StringUtils.isNotBlank(msg) ? "
" + msg : "")); return jsonResult; } - public List> getExcelValues (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ + public List> getExcelValues(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) { return studentHandsOnTaskStepDao.getExcelValues(studentHandsOnTaskStepQuery); } - public JsonResult getHandsOnTaskkStepByTaskId(Long taskId,Integer sourceType, CoreUser coreUser) { + public JsonResult getHandsOnTaskkStepByTaskId(Long taskId, Integer sourceType, CoreUser coreUser) { //查询登录用的学生id if (!coreUser.isStudent()) { return null; @@ -399,7 +412,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService>>(){})); + studentHandsOnTaskStep.setStems(JSONArray.parseObject(videoFile, new TypeReference>>() { + })); } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskTheoryService.java b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskTheoryService.java index 087cb1ab..a882f166 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskTheoryService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StudentHandsOnTaskTheoryService.java @@ -1,9 +1,11 @@ package com.ibeetl.jlw.service; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; import cn.jlw.util.ToolUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -15,17 +17,16 @@ import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.jlw.dao.StudentHandsOnTaskTheoryDao; import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao; -import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.dto.FillAndAnalysisScoreDTO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseMergeResourcesQuestionVO; +import com.ibeetl.jlw.enums.HandsOnTaskEnum; import com.ibeetl.jlw.service.handson.HandsOnTaskQueue; import com.ibeetl.jlw.service.handson.Record; import com.ibeetl.jlw.web.query.StudentHandsOnTaskTheoryQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; @@ -64,6 +65,9 @@ public class StudentHandsOnTaskTheoryService extends CoreBaseService> questions = new ConcurrentHashMap<>(); + @Autowired + private HandsOnAchievementService handsOnAchievementService; + public PageQueryqueryByCondition(PageQuery query){ PageQuery ret = studentHandsOnTaskTheoryDao.queryByCondition(query); queryListAfter(ret.getList()); @@ -547,6 +551,25 @@ public class StudentHandsOnTaskTheoryService extends CoreBaseService collect = achievementList.stream().filter(v -> v.getHandOnId().equals(teacherOpenCourseHandsOnList.getHandsOnId())).collect(Collectors.toList()); - Double videoScore = collect.stream().map(HandsOnAchievement::getVideoScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double pptAvgScore = collect.stream().map(HandsOnAchievement::getPptScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double theoryAvgScore = collect.stream().map(HandsOnAchievement::getTheoryScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double stepAvgScore = collect.stream().map(HandsOnAchievement::getPracticalTrainingScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double reportAvgScore = collect.stream().map(HandsOnAchievement::getReportWritingScore).collect(Collectors.averagingDouble(Double::parseDouble)); + Double videoScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getVideoScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double pptAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getPptScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double theoryAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getTheoryScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double stepAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getPracticalTrainingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double reportAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getReportWritingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); teacherOpenCourseHandsOnList.setVideoAvgScore(videoScore); teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore); teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore); @@ -334,17 +334,17 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService teacherOpenCourseHandsOns = teacherOpenCourseHandsOnDao.getHandsOnList(param.getPageQuery()); List teacherOpenCourseHandsOnLists = teacherOpenCourseHandsOns.getList(); - List handIds = teacherOpenCourseHandsOnLists.stream().map(v -> v.getHandsOnId()).collect(Collectors.toList()); + List handIds = teacherOpenCourseHandsOnLists.stream().map(TeacherOpenCourseHandsOnList::getHandsOnId).collect(Collectors.toList()); List achievementList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(handIds)) { achievementList = handsOnAchievementService.getListByhandIdsAndClassId(handIds, param.getClassId()); } TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList = new TeacherOpenCourseHandsOnList(); - Double videoScore = achievementList.stream().map(HandsOnAchievement::getVideoScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double pptAvgScore = achievementList.stream().map(HandsOnAchievement::getPptScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double theoryAvgScore = achievementList.stream().map(HandsOnAchievement::getTheoryScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double stepAvgScore = achievementList.stream().map(HandsOnAchievement::getPracticalTrainingScore).collect(Collectors.averagingDouble(Double::parseDouble)); - Double reportAvgScore = achievementList.stream().map(HandsOnAchievement::getReportWritingScore).collect(Collectors.averagingDouble(Double::parseDouble)); + Double videoScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getVideoScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double pptAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getPptScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double theoryAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getTheoryScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double stepAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getPracticalTrainingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); + Double reportAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getReportWritingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble)); teacherOpenCourseHandsOnList.setVideoAvgScore(videoScore); teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore); teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore);