beetlsql3-dev
yaodan 2 years ago
parent 50e2321dd8
commit 09c4f8bbc7

@ -3,6 +3,7 @@ package com.ibeetl.jlw.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Console; import cn.hutool.core.lang.Console;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
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.JSONArray; import com.alibaba.fastjson.JSONArray;
@ -38,6 +39,7 @@ import org.springframework.validation.annotation.Validated;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue; import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
@ -49,36 +51,41 @@ import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
@Service @Service
@Transactional @Transactional
@Validated @Validated
public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsOnTaskStep>{ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsOnTaskStep> {
@Autowired private StudentHandsOnTaskStepDao studentHandsOnTaskStepDao; @Autowired
@Autowired private StudentService studentService; private StudentHandsOnTaskStepDao studentHandsOnTaskStepDao;
@Autowired private TeacherOpenCourseHandsOnSimulationTasksDao tasksService; @Autowired
@Autowired private TeacherOpenCourseHandsOnSimulationTasksAssessmentService assessmentService; private StudentService studentService;
public PageQuery<StudentHandsOnTaskStep>queryByCondition(PageQuery query){ @Autowired
PageQuery ret = studentHandsOnTaskStepDao.queryByCondition(query); private TeacherOpenCourseHandsOnSimulationTasksDao tasksService;
@Autowired
private TeacherOpenCourseHandsOnSimulationTasksAssessmentService assessmentService;
public PageQuery<StudentHandsOnTaskStep> queryByCondition(PageQuery query) {
PageQuery ret = studentHandsOnTaskStepDao.queryByCondition(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
return ret; return ret;
} }
public PageQuery<StudentHandsOnTaskStep>queryByConditionQuery(PageQuery query){ public PageQuery<StudentHandsOnTaskStep> queryByConditionQuery(PageQuery query) {
PageQuery ret = studentHandsOnTaskStepDao.queryByConditionQuery(query); PageQuery ret = studentHandsOnTaskStepDao.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)) {
studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids); studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids);
} }
} }
public void deleteStudentHandsOnTaskStep(String ids){ public void deleteStudentHandsOnTaskStep(String ids) {
try { try {
studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids); studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids);
} catch (Exception e) { } catch (Exception e) {
@ -86,7 +93,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
} }
} }
public String addAll(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public String addAll(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
String msg = ""; String msg = "";
List<StudentHandsOnTaskStep> studentHandsOnTaskStepList = new ArrayList<>(); List<StudentHandsOnTaskStep> studentHandsOnTaskStepList = new ArrayList<>();
try { try {
@ -94,11 +101,12 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
} catch (Exception e) { } catch (Exception e) {
try { try {
studentHandsOnTaskStepList.add(JSONObject.parseObject(studentHandsOnTaskStepQuery.getStudentHandsOnTaskStepJsonStr(), StudentHandsOnTaskStep.class)); studentHandsOnTaskStepList.add(JSONObject.parseObject(studentHandsOnTaskStepQuery.getStudentHandsOnTaskStepJsonStr(), StudentHandsOnTaskStep.class));
} catch (Exception e1) {} } catch (Exception e1) {
}
} }
ToolUtils.deleteNullList(studentHandsOnTaskStepList); ToolUtils.deleteNullList(studentHandsOnTaskStepList);
if(null != studentHandsOnTaskStepList && studentHandsOnTaskStepList.size()>0){ if (null != studentHandsOnTaskStepList && studentHandsOnTaskStepList.size() > 0) {
for(int i=0;i<studentHandsOnTaskStepList.size();i++){ for (int i = 0; i < studentHandsOnTaskStepList.size(); i++) {
StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepList.get(i); StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepList.get(i);
studentHandsOnTaskStep.setUserId(studentHandsOnTaskStepQuery.getUserId()); studentHandsOnTaskStep.setUserId(studentHandsOnTaskStepQuery.getUserId());
studentHandsOnTaskStep.setOrgId(studentHandsOnTaskStepQuery.getOrgId()); studentHandsOnTaskStep.setOrgId(studentHandsOnTaskStepQuery.getOrgId());
@ -108,7 +116,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
return msg; return msg;
} }
public JsonResult add(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public JsonResult add(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
String msg = ""; String msg = "";
StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepQuery.pojo(); StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepQuery.pojo();
studentHandsOnTaskStepDao.insert(studentHandsOnTaskStep); studentHandsOnTaskStepDao.insert(studentHandsOnTaskStep);
@ -120,7 +128,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
return jsonResult; return jsonResult;
} }
public String edit(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery, CoreUser coreUser){ public String edit(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery, CoreUser coreUser) {
if (!coreUser.isStudent()) { if (!coreUser.isStudent()) {
return null; return null;
} }
@ -131,7 +139,8 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
String stem = studentHandsOnTaskStep.getStem(); String stem = studentHandsOnTaskStep.getStem();
if (StringUtils.isNotEmpty(stem)) { if (StringUtils.isNotEmpty(stem)) {
try { try {
List<Map<String, Object>> maps = JSONArray.parseObject(stem, new TypeReference<List<Map<String,Object>>>(){}); List<Map<String, Object>> maps = JSONArray.parseObject(stem, new TypeReference<List<Map<String, Object>>>() {
});
if (CollectionUtil.isNotEmpty(maps)) { if (CollectionUtil.isNotEmpty(maps)) {
double schedules = 0; double schedules = 0;
for (Map<String, Object> map : maps) { for (Map<String, Object> map : maps) {
@ -144,19 +153,35 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery() TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery()
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskStep.getHandsOnTaskId()).single(); .andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskStep.getHandsOnTaskId()).single();
if (single != null) { if (single != null) {
if (NumberUtil.compare(schedules, maps.size()) >= 0) {
String taskScore = single.getTaskScore(); Long taskId = single.getTaskId();
int i = NumberUtil.parseInt(taskScore); TeacherOpenCourseHandsOnSimulationTasksAssessment teacherOpenCourseHandsOnSimulationTasksAssessment = new TeacherOpenCourseHandsOnSimulationTasksAssessment();
studentHandsOnTaskStep.setTheoryScore(BigDecimal.valueOf(i)); teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnTaskId(taskId);
}else { //实训任务的评估项
List<TeacherOpenCourseHandsOnSimulationTasksAssessment> values = assessmentService.getValues(teacherOpenCourseHandsOnSimulationTasksAssessment);
Map<Long, List<Map<String, Object>>> 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); studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO);
} }
}else {
} else {
studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO); studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO);
} }
} }
}catch (Exception e) { } catch (Exception e) {
Console.log(e); Console.log(e);
} }
} }
@ -164,69 +189,69 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
return msg; return msg;
} }
public String updateGivenByIds(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public String updateGivenByIds(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
String msg = ""; String msg = "";
if(StringUtils.isNotBlank(studentHandsOnTaskStepQuery.get_given())){ if (StringUtils.isNotBlank(studentHandsOnTaskStepQuery.get_given())) {
boolean flag = studentHandsOnTaskStepDao.updateGivenByIds(studentHandsOnTaskStepQuery) > 0; boolean flag = studentHandsOnTaskStepDao.updateGivenByIds(studentHandsOnTaskStepQuery) > 0;
if(!flag){ if (!flag) {
msg = "更新指定参数失败"; msg = "更新指定参数失败";
} }
}else{ } else {
msg = "指定参数为空"; msg = "指定参数为空";
} }
return msg; return msg;
} }
public List<StudentHandsOnTaskStep> getValues (Object paras){ public List<StudentHandsOnTaskStep> getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.studentHandsOnTaskStep.getStudentHandsOnTaskStepValues"), StudentHandsOnTaskStep.class, paras); return sqlManager.select(SqlId.of("jlw.studentHandsOnTaskStep.getStudentHandsOnTaskStepValues"), StudentHandsOnTaskStep.class, paras);
} }
public List<StudentHandsOnTaskStep> getValuesByQuery (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public List<StudentHandsOnTaskStep> getValuesByQuery(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
return studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery); return studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
} }
public List<StudentHandsOnTaskStep> getValuesByQueryNotWithPermission (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public List<StudentHandsOnTaskStep> getValuesByQueryNotWithPermission(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
return studentHandsOnTaskStepDao.getValuesByQueryNotWithPermission(studentHandsOnTaskStepQuery); return studentHandsOnTaskStepDao.getValuesByQueryNotWithPermission(studentHandsOnTaskStepQuery);
} }
public StudentHandsOnTaskStep getInfo (Long studentHandsOnTaskStepId){ public StudentHandsOnTaskStep getInfo(Long studentHandsOnTaskStepId) {
StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery = new StudentHandsOnTaskStepQuery(); StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery = new StudentHandsOnTaskStepQuery();
studentHandsOnTaskStepQuery.setStudentHandsOnTaskStepId(studentHandsOnTaskStepId); studentHandsOnTaskStepQuery.setStudentHandsOnTaskStepId(studentHandsOnTaskStepId);
List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery); List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
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 StudentHandsOnTaskStep getInfo (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public StudentHandsOnTaskStep getInfo(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery); List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
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 JsonResult importTemplate(List<FileEntity> fileEntityList,List<Long>list,CoreUser coreUser){ public JsonResult importTemplate(List<FileEntity> fileEntityList, List<Long> list, CoreUser coreUser) {
List<String[]>errMsg = new ArrayList<>(); List<String[]> errMsg = new ArrayList<>();
String msg =""; String msg = "";
int count = 0; int count = 0;
Date date = new Date(); Date date = new Date();
for(int item=0;null != fileEntityList && item<fileEntityList.size();item++){ for (int item = 0; null != fileEntityList && item < fileEntityList.size(); item++) {
FileEntity fileEntity = fileEntityList.get(item); FileEntity fileEntity = fileEntityList.get(item);
if(null != fileEntity){ if (null != fileEntity) {
File file = new File(fileEntity.getAbsoluteUrl()); File file = new File(fileEntity.getAbsoluteUrl());
if(file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx",fileEntity.getFormat())){ if (file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx", fileEntity.getFormat())) {
Workbook wb = null; Workbook wb = null;
InputStream is = null; InputStream is = null;
try { try {
is = new FileInputStream(fileEntity.getAbsoluteUrl()); is = new FileInputStream(fileEntity.getAbsoluteUrl());
if("xls".equals(fileEntity.getFormat())){ if ("xls".equals(fileEntity.getFormat())) {
wb = new HSSFWorkbook(is); wb = new HSSFWorkbook(is);
}else if("xlsx".equals(fileEntity.getFormat())){ } else if ("xlsx".equals(fileEntity.getFormat())) {
wb = new XSSFWorkbook(is); wb = new XSSFWorkbook(is);
} }
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
@ -235,13 +260,13 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
e.printStackTrace(); e.printStackTrace();
} }
try { try {
if(null != is){ if (null != is) {
is.close(); is.close();
} }
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if(wb != null){ if (wb != null) {
//获取Sheet1 //获取Sheet1
Sheet sheet = wb.getSheet("Sheet1"); Sheet sheet = wb.getSheet("Sheet1");
//获取最大行数 //获取最大行数
@ -252,47 +277,47 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
int colNum = firstRow.getPhysicalNumberOfCells(); int colNum = firstRow.getPhysicalNumberOfCells();
String[] columns = { String[] columns = {
"课程开课", "课程开课",
"课程实操", "课程实操",
"课程实操任务", "课程实操任务",
"题干", "题干",
"得分", "得分",
"创建时间", "创建时间",
"教师", "教师",
"学生" "学生"
}; };
Map<String,Integer> map = new HashMap<>();//获取需要的表头的列 Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
//从第一列找到需要的表头 //从第一列找到需要的表头
for (int i=0; i<colNum; i++){ for (int i = 0; i < colNum; i++) {
String cellData = getCellFormatValue(firstRow.getCell(i)); String cellData = getCellFormatValue(firstRow.getCell(i));
for(int j=0;j<columns.length;j++){ for (int j = 0; j < columns.length; j++) {
if(columns[j].equals(cellData)){ if (columns[j].equals(cellData)) {
map.put(columns[j],i); map.put(columns[j], i);
} }
} }
} }
//验证所需要的表头是否全 //验证所需要的表头是否全
Integer flag = 0; Integer flag = 0;
for(int i=0;i<columns.length;i++){ for (int i = 0; i < columns.length; i++) {
if(null != map.get(columns[i])){ if (null != map.get(columns[i])) {
flag ++; flag++;
} }
} }
if(flag != columns.length){ if (flag != columns.length) {
String str = " "; String str = " ";
for(int i=0;i<columns.length;i++){ for (int i = 0; i < columns.length; i++) {
str += "\""+columns[i]+"\""+(i == columns.length-1?"":", "); str += "\"" + columns[i] + "\"" + (i == columns.length - 1 ? "" : ", ");
} }
return JsonResult.failMessage("导入失败,表格表头应包含"+str); return JsonResult.failMessage("导入失败,表格表头应包含" + str);
} }
for (int i = 1; i<rowNum; i++) { for (int i = 1; i < rowNum; i++) {
Row row = sheet.getRow(i); Row row = sheet.getRow(i);
if(null == row){ if (null == row) {
errMsg.add(new String[]{"第"+(i+1)+"数据为空"}); errMsg.add(new String[]{"第" + (i + 1) + "数据为空"});
continue; continue;
} }
@ -309,69 +334,57 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
String teacherId = getCellFormatValue(row.getCell(map.get(columns[10]))); String teacherId = getCellFormatValue(row.getCell(map.get(columns[10])));
String studentId = getCellFormatValue(row.getCell(map.get(columns[11]))); String studentId = getCellFormatValue(row.getCell(map.get(columns[11])));
//TODO 判断(如重复等复杂判断要额外写) //TODO 判断(如重复等复杂判断要额外写)
if(StringUtils.isBlank(teacherOpenCourseId)){ if (StringUtils.isBlank(teacherOpenCourseId)) {
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[0])+1)+"列,第"+(i+1)+"行课程开课为空"}); errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行课程开课为空"});
continue; continue;
}else } else if (StringUtils.isBlank(handsOnId)) {
if(StringUtils.isBlank(handsOnId)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[1]) + 1) + "列,第" + (i + 1) + "行课程实操为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[1])+1)+"列,第"+(i+1)+"行课程实操为空"});
continue; continue;
}else } else if (StringUtils.isBlank(handsOnTaskId)) {
if(StringUtils.isBlank(handsOnTaskId)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[2]) + 1) + "列,第" + (i + 1) + "行课程实操任务为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[2])+1)+"列,第"+(i+1)+"行课程实操任务为空"});
continue; continue;
}else } else if (StringUtils.isBlank(stem)) {
if(StringUtils.isBlank(stem)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[3]) + 1) + "列,第" + (i + 1) + "行题干为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[3])+1)+"列,第"+(i+1)+"行题干为空"});
continue; continue;
}else } else if (StringUtils.isBlank(questionType)) {
if(StringUtils.isBlank(questionType)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[4]) + 1) + "列,第" + (i + 1) + "行题型为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[4])+1)+"列,第"+(i+1)+"行题型为空"});
continue; continue;
}else } else if (StringUtils.isBlank(myOptions)) {
if(StringUtils.isBlank(myOptions)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[5]) + 1) + "列,第" + (i + 1) + "行我的选项为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[5])+1)+"列,第"+(i+1)+"行我的选项为空"});
continue; continue;
}else } else if (StringUtils.isBlank(rightKey)) {
if(StringUtils.isBlank(rightKey)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[6]) + 1) + "列,第" + (i + 1) + "行正确答案为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[6])+1)+"列,第"+(i+1)+"行正确答案为空"});
continue; continue;
}else } else if (StringUtils.isBlank(theoryStatus)) {
if(StringUtils.isBlank(theoryStatus)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[7]) + 1) + "列,第" + (i + 1) + "行状态为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[7])+1)+"列,第"+(i+1)+"行状态为空"});
continue; continue;
}else } else if (StringUtils.isBlank(theoryScore)) {
if(StringUtils.isBlank(theoryScore)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[8]) + 1) + "列,第" + (i + 1) + "行得分为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[8])+1)+"列,第"+(i+1)+"行得分为空"});
continue; continue;
}else } else if (StringUtils.isBlank(createTime)) {
if(StringUtils.isBlank(createTime)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[9]) + 1) + "列,第" + (i + 1) + "行创建时间为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[9])+1)+"列,第"+(i+1)+"行创建时间为空"});
continue; continue;
}else } else if (StringUtils.isBlank(teacherId)) {
if(StringUtils.isBlank(teacherId)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[10]) + 1) + "列,第" + (i + 1) + "行教师为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[10])+1)+"列,第"+(i+1)+"行教师为空"});
continue; continue;
}else } else if (StringUtils.isBlank(studentId)) {
if(StringUtils.isBlank(studentId)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[11]) + 1) + "列,第" + (i + 1) + "行学生为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[11])+1)+"列,第"+(i+1)+"行学生为空"});
continue; continue;
}else } else {
{ //TODO 保存
//TODO 保存 StudentHandsOnTaskStep studentHandsOnTaskStep = new StudentHandsOnTaskStep();
StudentHandsOnTaskStep studentHandsOnTaskStep = new StudentHandsOnTaskStep(); studentHandsOnTaskStep.setTeacherOpenCourseId(Long.parseLong(teacherOpenCourseId));
studentHandsOnTaskStep.setTeacherOpenCourseId(Long.parseLong(teacherOpenCourseId)); studentHandsOnTaskStep.setHandsOnId(Long.parseLong(handsOnId));
studentHandsOnTaskStep.setHandsOnId(Long.parseLong(handsOnId)); studentHandsOnTaskStep.setHandsOnTaskId(Long.parseLong(handsOnTaskId));
studentHandsOnTaskStep.setHandsOnTaskId(Long.parseLong(handsOnTaskId)); studentHandsOnTaskStep.setStem(stem);
studentHandsOnTaskStep.setStem(stem); studentHandsOnTaskStep.setTheoryScore(new BigDecimal(theoryScore));
studentHandsOnTaskStep.setTheoryScore(new BigDecimal(theoryScore)); studentHandsOnTaskStep.setCreateTime(TimeTool.getTime(createTime));
studentHandsOnTaskStep.setCreateTime(TimeTool.getTime(createTime)); studentHandsOnTaskStep.setOrgId(coreUser.getOrgId());
studentHandsOnTaskStep.setOrgId(coreUser.getOrgId()); studentHandsOnTaskStep.setUserId(coreUser.getId());
studentHandsOnTaskStep.setUserId(coreUser.getId()); studentHandsOnTaskStep.setTeacherId(Long.parseLong(teacherId));
studentHandsOnTaskStep.setTeacherId(Long.parseLong(teacherId)); studentHandsOnTaskStep.setStudentId(Long.parseLong(studentId));
studentHandsOnTaskStep.setStudentId(Long.parseLong(studentId));
count++;
count++;
} }
} }
} }
@ -379,18 +392,18 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
} }
} }
JsonResult jsonResult = new JsonResult(); JsonResult jsonResult = new JsonResult();
jsonResult.setCode(count>0?JsonReturnCode.SUCCESS.getCode():JsonReturnCode.FAIL.getCode()); jsonResult.setCode(count > 0 ? JsonReturnCode.SUCCESS.getCode() : JsonReturnCode.FAIL.getCode());
jsonResult.setData(errMsg); jsonResult.setData(errMsg);
jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"<br>"+msg:"")); jsonResult.setMsg((count > 0 ? "导入成功,共导入" + count + "条" : "导入失败") + (StringUtils.isNotBlank(msg) ? "<br>" + msg : ""));
return jsonResult; return jsonResult;
} }
public List<Map<String,Object>> getExcelValues (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){ public List<Map<String, Object>> getExcelValues(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
return studentHandsOnTaskStepDao.getExcelValues(studentHandsOnTaskStepQuery); return studentHandsOnTaskStepDao.getExcelValues(studentHandsOnTaskStepQuery);
} }
public JsonResult<StudentHandsOnTaskStep> getHandsOnTaskkStepByTaskId(Long taskId,Integer sourceType, CoreUser coreUser) { public JsonResult<StudentHandsOnTaskStep> getHandsOnTaskkStepByTaskId(Long taskId, Integer sourceType, CoreUser coreUser) {
//查询登录用的学生id //查询登录用的学生id
if (!coreUser.isStudent()) { if (!coreUser.isStudent()) {
return null; return null;
@ -399,7 +412,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
StudentHandsOnTaskStep studentHandsOnTaskStep = this.sqlManager.lambdaQuery(StudentHandsOnTaskStep.class).andEq(StudentHandsOnTaskStep::getHandsOnTaskId, taskId) StudentHandsOnTaskStep studentHandsOnTaskStep = this.sqlManager.lambdaQuery(StudentHandsOnTaskStep.class).andEq(StudentHandsOnTaskStep::getHandsOnTaskId, taskId)
.andEq(StudentHandsOnTaskStep::getStudentId, student.getStudentId()).singleSimple(); .andEq(StudentHandsOnTaskStep::getStudentId, student.getStudentId()).singleSimple();
if (studentHandsOnTaskStep == null) { if (studentHandsOnTaskStep == null) {
if (Objects.equals(sourceType,2)){ if (Objects.equals(sourceType, 2)) {
return JsonResult.failMessage("该任务未完成"); return JsonResult.failMessage("该任务未完成");
} }
studentHandsOnTaskStep = new StudentHandsOnTaskStep(); studentHandsOnTaskStep = new StudentHandsOnTaskStep();
@ -426,15 +439,17 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
map.put("rightAnswer", assessment.getHandsOnSimulationTasksAssessmentAnswer()); map.put("rightAnswer", assessment.getHandsOnSimulationTasksAssessmentAnswer());
map.put("studentAnswer", ""); map.put("studentAnswer", "");
map.put("score", assessment.getHandsOnSimulationTasksAssessmentScore()); map.put("score", assessment.getHandsOnSimulationTasksAssessmentScore());
map.put("handsOnSimulationTasksAssessmentId", assessment.getHandsOnSimulationTasksAssessmentId());
list.add(map); list.add(map);
} }
studentHandsOnTaskStep.setStem(JSONArray.toJSONString(list)); studentHandsOnTaskStep.setStem(JSONArray.toJSONString(list));
studentHandsOnTaskStep.setStems(list); studentHandsOnTaskStep.setStems(list);
this.insert(studentHandsOnTaskStep); this.insert(studentHandsOnTaskStep);
}else { } else {
String videoFile = studentHandsOnTaskStep.getStem(); String videoFile = studentHandsOnTaskStep.getStem();
if (StringUtils.isNotEmpty(videoFile)) { if (StringUtils.isNotEmpty(videoFile)) {
studentHandsOnTaskStep.setStems(JSONArray.parseObject(videoFile, new TypeReference<List<Map<String,Object>>>(){})); studentHandsOnTaskStep.setStems(JSONArray.parseObject(videoFile, new TypeReference<List<Map<String, Object>>>() {
}));
} }
} }

@ -1,9 +1,11 @@
package com.ibeetl.jlw.service; package com.ibeetl.jlw.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.TypeReference; import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
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;
@ -15,17 +17,16 @@ 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.StudentHandsOnTaskTheoryDao; import com.ibeetl.jlw.dao.StudentHandsOnTaskTheoryDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao; import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnSimulationTasksDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao;
import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.entity.dto.FillAndAnalysisScoreDTO; import com.ibeetl.jlw.entity.dto.FillAndAnalysisScoreDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseMergeResourcesQuestionVO; 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.HandsOnTaskQueue;
import com.ibeetl.jlw.service.handson.Record; import com.ibeetl.jlw.service.handson.Record;
import com.ibeetl.jlw.web.query.StudentHandsOnTaskTheoryQuery; import com.ibeetl.jlw.web.query.StudentHandsOnTaskTheoryQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseHandsOnSimulationTasksQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
@ -64,6 +65,9 @@ public class StudentHandsOnTaskTheoryService extends CoreBaseService<StudentHand
//存储学生临时答题 //存储学生临时答题
public static ConcurrentHashMap<String, Map<String, Object>> questions = new ConcurrentHashMap<>(); public static ConcurrentHashMap<String, Map<String, Object>> questions = new ConcurrentHashMap<>();
@Autowired
private HandsOnAchievementService handsOnAchievementService;
public PageQuery<StudentHandsOnTaskTheory>queryByCondition(PageQuery query){ public PageQuery<StudentHandsOnTaskTheory>queryByCondition(PageQuery query){
PageQuery ret = studentHandsOnTaskTheoryDao.queryByCondition(query); PageQuery ret = studentHandsOnTaskTheoryDao.queryByCondition(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
@ -547,6 +551,25 @@ public class StudentHandsOnTaskTheoryService extends CoreBaseService<StudentHand
taskTheory.setOrgId(resourcesQuestion.getTeacherOpenCourseMergeResourcesQuestionId()); taskTheory.setOrgId(resourcesQuestion.getTeacherOpenCourseMergeResourcesQuestionId());
taskTheoryList.add(taskTheory); taskTheoryList.add(taskTheory);
} }
//更新成绩
if (CollUtil.isNotEmpty(taskTheoryList)){
BigDecimal totalScore = new BigDecimal(0);
for (StudentHandsOnTaskTheory studentHandsOnTaskTheory : taskTheoryList) {
BigDecimal theoryScore = studentHandsOnTaskTheory.getTheoryScore();
totalScore = totalScore.add(ObjectUtil.defaultIfNull(theoryScore, BigDecimal.ZERO));
}
HandsOnAchievement build = HandsOnAchievement.builder()
.handOnId(tasks.getHandsOnId())
.studentId(student.getStudentId())
.classId(student.getClassId())
.theoryScore(totalScore.toPlainString())
.orgId(student.getOrgId())
.userId(student.getUserId()).build();
handsOnAchievementService.setHandsOnAchievement(build, HandsOnTaskEnum.TASK_THEORY);
}
this.insertBatch(taskTheoryList); this.insertBatch(taskTheoryList);
questions.remove(s); questions.remove(s);
return JsonResult.success("提交成功"); return JsonResult.success("提交成功");

@ -262,11 +262,11 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
} }
for (TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList : teacherOpenCourseHandsOnLists) { for (TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList : teacherOpenCourseHandsOnLists) {
List<HandsOnAchievement> collect = achievementList.stream().filter(v -> v.getHandOnId().equals(teacherOpenCourseHandsOnList.getHandsOnId())).collect(Collectors.toList()); List<HandsOnAchievement> 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 videoScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getVideoScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
Double pptAvgScore = collect.stream().map(HandsOnAchievement::getPptScore).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(HandsOnAchievement::getTheoryScore).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(HandsOnAchievement::getPracticalTrainingScore).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(HandsOnAchievement::getReportWritingScore).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.setVideoAvgScore(videoScore);
teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore); teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore);
teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore); teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore);
@ -334,17 +334,17 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
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(TeacherOpenCourseHandsOnList::getHandsOnId).collect(Collectors.toList());
List<HandsOnAchievement> achievementList = new ArrayList<>(); List<HandsOnAchievement> achievementList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(handIds)) { if (CollectionUtils.isNotEmpty(handIds)) {
achievementList = handsOnAchievementService.getListByhandIdsAndClassId(handIds, param.getClassId()); achievementList = handsOnAchievementService.getListByhandIdsAndClassId(handIds, param.getClassId());
} }
TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList = new TeacherOpenCourseHandsOnList(); TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList = new TeacherOpenCourseHandsOnList();
Double videoScore = achievementList.stream().map(HandsOnAchievement::getVideoScore).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(HandsOnAchievement::getPptScore).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(HandsOnAchievement::getTheoryScore).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(HandsOnAchievement::getPracticalTrainingScore).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(HandsOnAchievement::getReportWritingScore).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.setVideoAvgScore(videoScore);
teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore); teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore);
teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore); teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore);

Loading…
Cancel
Save