|
|
|
@ -3,6 +3,10 @@ package com.sztzjy.trade.service.impl;
|
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.sztzjy.trade.config.exception.handler.ServiceException;
|
|
|
|
|
import com.sztzjy.trade.entity.*;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.StuGradesDTO;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.StuHomeworkDetailsDTO;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.StuHomeworkGradesDTO;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.tch.TchTopicDetailsDTO;
|
|
|
|
|
import com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO;
|
|
|
|
@ -10,14 +14,16 @@ import com.sztzjy.trade.mapper.*;
|
|
|
|
|
import com.sztzjy.trade.service.TchHomeworkExamService;
|
|
|
|
|
import com.sztzjy.trade.util.ConvertUtil;
|
|
|
|
|
import com.sztzjy.trade.util.PageUtil;
|
|
|
|
|
import com.sztzjy.trade.util.ResultEntity;
|
|
|
|
|
import com.sztzjy.trade.util.file.IFileUtil;
|
|
|
|
|
import com.sztzjy.trade.util.file.LocalFileUtil;
|
|
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
@ -44,6 +50,12 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
StuLearningAssessmentMapper learningAssessmentMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
TchTopicDetailsMapper topicDetailsMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
StuAchievementInfoMapper achievementInfoMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
StuScoreDetailsInfoMapper stuScoreDetailsInfoMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IFileUtil fileUtil;
|
|
|
|
|
@Override
|
|
|
|
|
public PageInfo getHomework(String userId, String type, Integer index, Integer size) {
|
|
|
|
|
if(!type.equals("考试")){
|
|
|
|
@ -262,6 +274,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
//更新题库作业信息
|
|
|
|
|
tchHomeworkManage.setHomeworkName(homeworkExamDTO.getName());
|
|
|
|
|
tchHomeworkManage.setHomeworkClass(className);
|
|
|
|
|
tchHomeworkManage.setAverageScore(null);
|
|
|
|
|
tchHomeworkManage.setPassRate(new BigDecimal(0));
|
|
|
|
|
tchHomeworkManage.setStartingTime(homeworkExamDTO.getStartingTime());
|
|
|
|
|
tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime());
|
|
|
|
|
tchHomeworkManage.setUpdateTime(new Date());
|
|
|
|
@ -272,6 +286,9 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
tchHomeworkManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
|
tchHomeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
|
tchHomeworkManage.setTopicId(topicId);
|
|
|
|
|
tchHomeworkManage.setTotalPeople(0);
|
|
|
|
|
tchHomeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
|
tchHomeworkManage.setNumberPassers(0);
|
|
|
|
|
|
|
|
|
|
update=homeworkManageMapper.updateByPrimaryKeySelective(tchHomeworkManage);
|
|
|
|
|
}
|
|
|
|
@ -284,6 +301,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
|
|
|
|
|
tchHomeworkManage.setHomeworkName(homeworkExamDTO.getName());
|
|
|
|
|
tchHomeworkManage.setHomeworkClass(className);
|
|
|
|
|
tchHomeworkManage.setAverageScore(null);
|
|
|
|
|
tchHomeworkManage.setPassRate(new BigDecimal(0));
|
|
|
|
|
tchHomeworkManage.setState(0);
|
|
|
|
|
tchHomeworkManage.setStartingTime(homeworkExamDTO.getStartingTime());
|
|
|
|
|
tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime());
|
|
|
|
@ -293,6 +312,9 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
|
|
|
|
|
tchHomeworkManage.setHomeworkAnnex(upload);
|
|
|
|
|
tchHomeworkManage.setUpdateTime(new Date());
|
|
|
|
|
tchHomeworkManage.setTotalPeople(0);
|
|
|
|
|
tchHomeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
|
tchHomeworkManage.setNumberPassers(0);
|
|
|
|
|
|
|
|
|
|
return homeworkManageMapper.updateByPrimaryKeySelective(tchHomeworkManage);
|
|
|
|
|
}
|
|
|
|
@ -305,6 +327,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
examManage.setExamClass(className);
|
|
|
|
|
examManage.setExamStartingTime(homeworkExamDTO.getStartingTime());
|
|
|
|
|
examManage.setExamEndTime(homeworkExamDTO.getEndTime());
|
|
|
|
|
examManage.setAverageAnswerQuantity(null);
|
|
|
|
|
examManage.setAverageIncorrectAnswersQuantity(null);
|
|
|
|
|
examManage.setAverageAccuracy(new BigDecimal(0));
|
|
|
|
|
examManage.setAverageScore(null);
|
|
|
|
|
examManage.setUserId(homeworkExamDTO.getUserId());
|
|
|
|
|
examManage.setUpdateTime(new Date());
|
|
|
|
|
examManage.setState(0);
|
|
|
|
@ -314,6 +340,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
examManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
|
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
|
examManage.setTopicId(topicId);
|
|
|
|
|
examManage.setRespondentsPeoples(0);
|
|
|
|
|
examManage.setAnswerTotal(0);
|
|
|
|
|
examManage.setAnswerIncorrectlyTotal(0);
|
|
|
|
|
examManage.setTatalScore(new BigDecimal(0));
|
|
|
|
|
|
|
|
|
|
update=examManageMapper.updateByPrimaryKeySelective(examManage);
|
|
|
|
|
|
|
|
|
@ -351,6 +381,16 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//编辑完删除成绩表和成绩详情表,重新进行添加
|
|
|
|
|
StuAchievementInfoExample achievementInfoExample=new StuAchievementInfoExample();
|
|
|
|
|
achievementInfoExample.createCriteria().andTaskIdEqualTo(homeworkExamDTO.getId());
|
|
|
|
|
achievementInfoMapper.deleteByExample(achievementInfoExample);
|
|
|
|
|
|
|
|
|
|
StuScoreDetailsInfoExample scoreDetailsInfoExample=new StuScoreDetailsInfoExample();
|
|
|
|
|
scoreDetailsInfoExample.createCriteria().andTaskIdEqualTo(homeworkExamDTO.getId());
|
|
|
|
|
|
|
|
|
|
stuScoreDetailsInfoMapper.deleteByExample(scoreDetailsInfoExample);
|
|
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -488,12 +528,22 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
delete=examManageMapper.deleteByPrimaryKey(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(delete>0){ //再删除选题详情信息
|
|
|
|
|
if(delete>0){ //再删除成绩和成绩详情和选题详情信息
|
|
|
|
|
//成绩
|
|
|
|
|
StuAchievementInfoExample achievementInfoExample=new StuAchievementInfoExample();
|
|
|
|
|
achievementInfoExample.createCriteria().andTaskIdEqualTo(id);
|
|
|
|
|
achievementInfoMapper.deleteByExample(achievementInfoExample);
|
|
|
|
|
|
|
|
|
|
//成绩详情
|
|
|
|
|
StuScoreDetailsInfoExample scoreDetailsInfoExample=new StuScoreDetailsInfoExample();
|
|
|
|
|
scoreDetailsInfoExample.createCriteria().andTaskIdEqualTo(id);
|
|
|
|
|
|
|
|
|
|
//选题详情
|
|
|
|
|
TchTopicDetailsExample topicDetailsExample=new TchTopicDetailsExample();
|
|
|
|
|
topicDetailsExample.createCriteria().andTaskIdEqualTo(id);
|
|
|
|
|
int update = topicDetailsMapper.deleteByExample(topicDetailsExample);
|
|
|
|
|
|
|
|
|
|
return update;
|
|
|
|
|
return topicDetailsMapper.deleteByExample(topicDetailsExample);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -518,4 +568,87 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
return learningAssessmentMapper.selectByExample(assessmentExample);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* @author xcj
|
|
|
|
|
* @Date 2023/10/11
|
|
|
|
|
*
|
|
|
|
|
*教师端评阅,下载报告
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void download(String id, HttpServletResponse response) {
|
|
|
|
|
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
|
|
|
|
|
Assert.isTrue(achievementInfo != null && achievementInfo.getStuHomeworkAnnex() != null, "报告不存在");
|
|
|
|
|
fileUtil.download(response, "实验报告", achievementInfo.getStuHomeworkAnnex());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageInfo getBroHomeworkGrades(String className, String stuIdOrName, String id, Integer index, Integer size) {
|
|
|
|
|
StuAchievementInfoExample achievementInfoExample=new StuAchievementInfoExample();
|
|
|
|
|
StuAchievementInfoExample.Criteria criteria = achievementInfoExample.createCriteria();
|
|
|
|
|
|
|
|
|
|
if(!className.isEmpty()){
|
|
|
|
|
criteria.andClassNameEqualTo(className);
|
|
|
|
|
}
|
|
|
|
|
if(!stuIdOrName.isEmpty()){
|
|
|
|
|
criteria.andStudentIdEqualTo(stuIdOrName);
|
|
|
|
|
criteria.andNameEqualTo(stuIdOrName);
|
|
|
|
|
}
|
|
|
|
|
criteria.andTaskIdEqualTo(id);
|
|
|
|
|
|
|
|
|
|
List<StuAchievementInfo> stuAchievementInfos = achievementInfoMapper.selectByExample(achievementInfoExample);
|
|
|
|
|
List<StuGradesDTO> stuGradesDTOS = convertUtil.entityToDTOList(stuAchievementInfos, StuGradesDTO.class);
|
|
|
|
|
|
|
|
|
|
return PageUtil.pageHelper(stuGradesDTOS,index,size);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ResultEntity getHomeworkScreening(String userId, String type) {
|
|
|
|
|
if(type.equals("作业")){
|
|
|
|
|
List<TchHomeworkManage> list = homeworkManageMapper.selectNameByUserId(userId);
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",list);
|
|
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
List<TchExamManage> list = examManageMapper.selectNameByUserId(userId);
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",list);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ResultEntity getHomeworkGrades(String id, Integer index, Integer size,String type) {
|
|
|
|
|
StuAchievementInfoExample achievementInfoExample=new StuAchievementInfoExample();
|
|
|
|
|
achievementInfoExample.createCriteria().andTaskIdEqualTo(id);
|
|
|
|
|
List<StuAchievementInfo> stuAchievementInfos = achievementInfoMapper.selectByExample(achievementInfoExample);
|
|
|
|
|
for (StuAchievementInfo stuAchievementInfo:stuAchievementInfos) {
|
|
|
|
|
if(stuAchievementInfo.getScore()==null){ //表示学生还未提交试卷,不展示成绩
|
|
|
|
|
stuAchievementInfos.remove(stuAchievementInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(type.equals("作业")){
|
|
|
|
|
List<StuHomeworkGradesDTO> stuHomeworkGradesDTOS = convertUtil.entityToDTOList(stuAchievementInfos, StuHomeworkGradesDTO.class);
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuHomeworkGradesDTOS,index,size));
|
|
|
|
|
}else {
|
|
|
|
|
List<StuExaminationGradesDTO> stuExaminationGradesDTOS = convertUtil.entityToDTOList(stuAchievementInfos, StuExaminationGradesDTO.class);
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuExaminationGradesDTOS,index,size));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ResultEntity getHomeworkDetails(String id,String studentId, Integer index, Integer size) {
|
|
|
|
|
StuScoreDetailsInfoExample stuScoreDetailsInfoExample=new StuScoreDetailsInfoExample();
|
|
|
|
|
StuScoreDetailsInfoExample.Criteria criteria = stuScoreDetailsInfoExample.createCriteria();
|
|
|
|
|
criteria.andTaskIdEqualTo(id);
|
|
|
|
|
if(!studentId.isEmpty()){
|
|
|
|
|
criteria.andStudentIdEqualTo(studentId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<StuScoreDetailsInfo> stuScoreDetailsInfos = stuScoreDetailsInfoMapper.selectByExample(stuScoreDetailsInfoExample);
|
|
|
|
|
|
|
|
|
|
List<StuHomeworkDetailsDTO> stuHomeworkDetailsDTOS = convertUtil.entityToDTOList(stuScoreDetailsInfos, StuHomeworkDetailsDTO.class);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuHomeworkDetailsDTOS,index,size));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|