交卷和页面导出、报告下载

main
@t2652009480 5 months ago
parent f1395cbe96
commit 9dea0c6a0f

@ -65,13 +65,17 @@ public class StuHomeworkExamController {
}
@ApiOperation("附件作业下载")
@ApiOperation("附件/提交作业下载")
@PostMapping("/download")
@AnonymousAccess
public void download(HttpServletResponse response, String id) {
public void download(HttpServletResponse response, @ApiParam("用户ID") String id,@ApiParam("下载类型(附件/提交)") String type) {
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
iFileUtil.download(response,achievementInfo.getHomeworkAnnex());
if(type.equals("附件")){
iFileUtil.download(response,achievementInfo.getHomeworkAnnex());
}else {
iFileUtil.download(response,achievementInfo.getStuHomeworkAnnex());
}
}
@ApiOperation("查询考试列表")
@ -110,7 +114,7 @@ public class StuHomeworkExamController {
String upload = iFileUtil.upload(file);
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
achievementInfo.setHomeworkAnnex(upload);
achievementInfo.setStuHomeworkAnnex(upload);
achievementInfoMapper.updateByPrimaryKey(achievementInfo);

@ -1,16 +1,21 @@
package com.sztzjy.trade.controller.tch;
import cn.hutool.core.util.IdUtil;
import com.google.gson.Gson;
import com.sztzjy.trade.annotation.AnonymousAccess;
import com.sztzjy.trade.config.Constant;
import com.sztzjy.trade.entity.TchExamManage;
import com.sztzjy.trade.entity.TchExamManageExample;
import com.sztzjy.trade.entity.TchHomeworkManage;
import com.sztzjy.trade.entity.TchHomeworkManageExample;
import com.sztzjy.trade.config.security.TokenProvider;
import com.sztzjy.trade.entity.*;
import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO;
import com.sztzjy.trade.entity.dto.StuHomeworkDetailsDTO;
import com.sztzjy.trade.entity.dto.StuHomeworkGradesDTO;
import com.sztzjy.trade.entity.dto.StuScoreDetailsInfoDTO;
import com.sztzjy.trade.entity.dto.tch.ExamExportDTO;
import com.sztzjy.trade.entity.dto.tch.HomeworkExportDTO;
import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO;
import com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO;
import com.sztzjy.trade.mapper.StuAchievementInfoMapper;
import com.sztzjy.trade.mapper.StuScoreDetailsInfoMapper;
import com.sztzjy.trade.mapper.TchExamManageMapper;
import com.sztzjy.trade.mapper.TchHomeworkManageMapper;
import com.sztzjy.trade.service.TchHomeworkExamService;
@ -21,6 +26,7 @@ import com.sztzjy.trade.util.file.IFileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.checkerframework.checker.units.qual.A;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -53,6 +59,10 @@ public class TchHomeworkExamController {
TchHomeworkExamService tchHomeworkExamService;
@Resource
IFileUtil iFileUtil;
@Resource
StuAchievementInfoMapper achievementInfoMapper;
@Resource
StuScoreDetailsInfoMapper scoreDetailsInfoMapper;
@ApiOperation("题库作业/附件作业/考试展示")
@PostMapping("/getHomework")
@ -70,8 +80,10 @@ public class TchHomeworkExamController {
@ApiOperation("新增(作业/考试)")
@PostMapping("/add")
@AnonymousAccess
public ResultEntity add(@RequestBody TchHomeworkExamDTO homeworkExamDTO,
@RequestParam(required = false)MultipartFile file) {
public ResultEntity add(@RequestParam(required = false)String jsonObject, @RequestParam(required = false)MultipartFile file) {
Gson gson=new Gson();
TchHomeworkExamDTO homeworkExamDTO = gson.fromJson(jsonObject, TchHomeworkExamDTO.class);
Integer result=tchHomeworkExamService.add(homeworkExamDTO,file);
@ -85,8 +97,12 @@ public class TchHomeworkExamController {
@ApiOperation("编辑(作业/考试)")
@PostMapping("/update")
@AnonymousAccess
public ResultEntity update(@RequestBody TchHomeworkExamDTO homeworkExamDTO,
@RequestParam(required = false)MultipartFile file) {
public ResultEntity update(@RequestParam(required = false) String jsonObject, @RequestParam(required = false)MultipartFile file) {
Gson gson=new Gson();
TchHomeworkExamDTO homeworkExamDTO = gson.fromJson(jsonObject, TchHomeworkExamDTO.class);
Integer result=tchHomeworkExamService.update(homeworkExamDTO,file);
@ -238,4 +254,163 @@ public class TchHomeworkExamController {
}
/*
* @Date 2023/10/11
* *
*/
@GetMapping("/download")
@ApiOperation("下载报告")
public void download(@RequestParam String id, String TOKEN, HttpServletResponse response) {
TokenProvider.getJWTUser(TOKEN);
tchHomeworkExamService.download(id, response);
}
@ApiOperation("作业/考试成绩-侧边展示")
@PostMapping("/getBroHomeworkGrades")
@AnonymousAccess
public ResultEntity getBroHomeworkGrades(@ApiParam("班级名称")@RequestParam(required = false) String className,
@ApiParam("学号或姓名")@RequestParam(required = false) String stuIdOrName,
@ApiParam("id") String id,
@ApiParam("当前页") Integer index,
@ApiParam("每页条数") Integer size) {
return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getBroHomeworkGrades(className,stuIdOrName,id,index,size));
}
@ApiOperation("作业/考试筛选下拉框")
@PostMapping("/getHomeworkScreening")
@AnonymousAccess
public ResultEntity getHomeworkScreening(@ApiParam("用户ID") String userId,
@ApiParam("作业类型") String type) {
return tchHomeworkExamService.getHomeworkScreening(userId,type);
}
@ApiOperation("作业/考试成绩-展示")
@PostMapping("/getHomeworkGrades")
@AnonymousAccess
public ResultEntity getHomeworkGrades(@ApiParam("id") String id,
@ApiParam("当前页") Integer index,
@ApiParam("每页条数") Integer size,
@ApiParam("作业类型") String type) {
return tchHomeworkExamService.getHomeworkGrades(id,index,size,type);
}
@ApiOperation("作业/考试成绩导出")
@PostMapping("/exportGrades")
@AnonymousAccess
public void exportGrades(HttpServletResponse response,
@ApiParam("类型") String type,
@ApiParam("id") String id) {
//导出的表名
String title = IdUtil.simpleUUID();
//实际数据结果集
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("作业")){
String[] headers={"姓名", "学号", "班级", "得分", "完成用时"};
title=type+"成绩"+title;
List<StuHomeworkGradesDTO> homeworkGradesDTOS = convertUtil.entityToDTOList(stuAchievementInfos, StuHomeworkGradesDTO.class);
//具体需要写入excel需要哪些字段这些字段取自UserReward类也就是上面的实际数据结果集的泛型
List<String> listColumn = Arrays.asList("name", "studentId", "className", "score", "completionTime");
try {
FilePortUtil.exportExcel(response, title, headers, homeworkGradesDTOS, listColumn);
} catch (Exception e) {
e.printStackTrace();
}
}else {
String[] headers={"姓名", "学号", "班级", "完成用时", "答对数量", "答错数量", "正确率","得分"};
title=type+"成绩"+title;
List<StuExaminationGradesDTO> examinationGradesDTOS = convertUtil.entityToDTOList(stuAchievementInfos, StuExaminationGradesDTO.class);
//具体需要写入excel需要哪些字段这些字段取自UserReward类也就是上面的实际数据结果集的泛型
List<String> listColumn = Arrays.asList("name", "studentId", "className","completionTime", "answerNumber",
"answerIncorrectlyNumber","accuracy","score");
try {
FilePortUtil.exportExcel(response, title, headers, examinationGradesDTOS, listColumn);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@ApiOperation("作业/考试成绩详情-展示")
@PostMapping("/getHomeworkDetails")
@AnonymousAccess
public ResultEntity getHomeworkDetails(@ApiParam("id") String id,
@ApiParam("学号") @RequestParam(required = false) String studentId,
@ApiParam("当前页") Integer index,
@ApiParam("每页条数") Integer size) {
return tchHomeworkExamService.getHomeworkDetails(id,studentId,index,size);
}
@ApiOperation("作业/考试成绩详情导出")
@PostMapping("/exportGradesDetails")
@AnonymousAccess
public void exportGradesDetails(HttpServletResponse response,
@ApiParam("类型") String type,
@ApiParam("id") String id) {
//导出的表名
String title = IdUtil.simpleUUID();
//实际数据结果集
StuScoreDetailsInfoExample scoreDetailsInfoExample=new StuScoreDetailsInfoExample();
scoreDetailsInfoExample.createCriteria().andTaskIdEqualTo(id);
List<StuScoreDetailsInfo> stuScoreDetailsInfos = scoreDetailsInfoMapper.selectByExample(scoreDetailsInfoExample);
List<StuHomeworkDetailsDTO> stuHomeworkDetailsDTOS = convertUtil.entityToDTOList(stuScoreDetailsInfos, StuHomeworkDetailsDTO.class);
if(type.equals("作业")){
title=type+"成绩"+title;
}else {
title=type+"成绩"+title;
}
String[] headers={"姓名", "学号", "班级", "题干", "题型", "我的选项", "正确答案","状态","得分"};
//具体需要写入excel需要哪些字段这些字段取自UserReward类也就是上面的实际数据结果集的泛型
List<String> listColumn = Arrays.asList("name", "studentId", "className", "stem", "questionType","mySelect","answer","state","topicScore");
try {
FilePortUtil.exportExcel(response, title, headers, stuHomeworkDetailsDTOS, listColumn);
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -11,69 +11,72 @@ import io.swagger.annotations.ApiModelProperty;
* stu_achievement_info
*/
public class StuAchievementInfo {
@ApiModelProperty("成绩ID")
@ApiModelProperty(notes = "成绩ID")
private String id;
@ApiModelProperty("姓名")
@ApiModelProperty(notes = "姓名")
private String name;
@ApiModelProperty("学号")
@ApiModelProperty(notes = "学号")
private String studentId;
@ApiModelProperty("班级名称")
@ApiModelProperty(notes = "班级名称")
private String className;
@ApiModelProperty("得分")
@ApiModelProperty(notes = "得分")
private BigDecimal score;
@ApiModelProperty("完成用时")
@ApiModelProperty(notes = "完成用时")
private String completionTime;
@ApiModelProperty("答对数量")
@ApiModelProperty(notes = "答对数量")
private Integer answerNumber;
@ApiModelProperty("答错数量")
@ApiModelProperty(notes = "答错数量")
private Integer answerIncorrectlyNumber;
@ApiModelProperty("正确率")
@ApiModelProperty(notes = "正确率")
private String accuracy;
@ApiModelProperty("成绩来源(考试/作业名称)")
@ApiModelProperty(notes = "成绩来源(考试/作业名称)")
private String scoreGrades;
@ApiModelProperty("用户ID")
@ApiModelProperty(notes = "用户ID")
private String userId;
@ApiModelProperty("作业/考试ID")
@ApiModelProperty(notes = "作业/考试ID")
private String taskId;
@ApiModelProperty("平均得分")
@ApiModelProperty(notes = "平均得分")
private BigDecimal averageScore;
@ApiModelProperty("状态")
@ApiModelProperty(notes = "状态")
private String state;
@ApiModelProperty("及格率")
@ApiModelProperty(notes = "及格率")
private BigDecimal passRate;
@ApiModelProperty("作业附件URL")
@ApiModelProperty(notes = "作业附件URL")
private String homeworkAnnex;
@ApiModelProperty("作业起始时间")
@ApiModelProperty(notes = "作业起始时间")
private Date startingTime;
@ApiModelProperty("作业终止时间")
@ApiModelProperty(notes = "作业终止时间")
private Date endTime;
@ApiModelProperty("教师评语")
@ApiModelProperty(notes = "教师评语")
private String teacherComments;
@ApiModelProperty("本次作答次数")
@ApiModelProperty(notes = "本次作答次数")
private Integer numberOfAnswer;
@ApiModelProperty("题数总量")
@ApiModelProperty(notes = "题数总量")
private Integer totalQuestions;
@ApiModelProperty(notes = "学生提交作业附件URL")
private String stuHomeworkAnnex;
public String getId() {
return id;
}
@ -241,4 +244,12 @@ public class StuAchievementInfo {
public void setTotalQuestions(Integer totalQuestions) {
this.totalQuestions = totalQuestions;
}
public String getStuHomeworkAnnex() {
return stuHomeworkAnnex;
}
public void setStuHomeworkAnnex(String stuHomeworkAnnex) {
this.stuHomeworkAnnex = stuHomeworkAnnex == null ? null : stuHomeworkAnnex.trim();
}
}

@ -1485,6 +1485,76 @@ public class StuAchievementInfoExample {
addCriterion("total_questions not between", value1, value2, "totalQuestions");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexIsNull() {
addCriterion("stu_homework_annex is null");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexIsNotNull() {
addCriterion("stu_homework_annex is not null");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexEqualTo(String value) {
addCriterion("stu_homework_annex =", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexNotEqualTo(String value) {
addCriterion("stu_homework_annex <>", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexGreaterThan(String value) {
addCriterion("stu_homework_annex >", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexGreaterThanOrEqualTo(String value) {
addCriterion("stu_homework_annex >=", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexLessThan(String value) {
addCriterion("stu_homework_annex <", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexLessThanOrEqualTo(String value) {
addCriterion("stu_homework_annex <=", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexLike(String value) {
addCriterion("stu_homework_annex like", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexNotLike(String value) {
addCriterion("stu_homework_annex not like", value, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexIn(List<String> values) {
addCriterion("stu_homework_annex in", values, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexNotIn(List<String> values) {
addCriterion("stu_homework_annex not in", values, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexBetween(String value1, String value2) {
addCriterion("stu_homework_annex between", value1, value2, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andStuHomeworkAnnexNotBetween(String value1, String value2) {
addCriterion("stu_homework_annex not between", value1, value2, "stuHomeworkAnnex");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

@ -0,0 +1,37 @@
package com.sztzjy.trade.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author tz
* @date 2024/9/14 9:28
*/
@Data
public class StuExaminationGradesDTO {
@ApiModelProperty(notes = "姓名")
private String name;
@ApiModelProperty(notes = "学号")
private String studentId;
@ApiModelProperty(notes = "班级名称")
private String className;
@ApiModelProperty(notes = "得分")
private BigDecimal score;
@ApiModelProperty(notes = "完成用时")
private String completionTime;
@ApiModelProperty(notes = "答对数量")
private Integer answerNumber;
@ApiModelProperty(notes = "答错数量")
private Integer answerIncorrectlyNumber;
@ApiModelProperty(notes = "正确率")
private String accuracy;
}

@ -0,0 +1,23 @@
package com.sztzjy.trade.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author tz
* @date 2024/9/14 9:32
*/
@Data
public class StuGradesDTO {
@ApiModelProperty(notes = "姓名")
private String name;
@ApiModelProperty(notes = "学号")
private String studentId;
@ApiModelProperty(notes = "得分")
private BigDecimal score;
}

@ -0,0 +1,41 @@
package com.sztzjy.trade.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author tz
* @date 2024/9/14 13:24
*/
@Data
public class StuHomeworkDetailsDTO {
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("学号")
private String studentId;
@ApiModelProperty("班级名称")
private String className;
@ApiModelProperty("题干")
private String stem;
@ApiModelProperty("题型")
private String questionType;
@ApiModelProperty("我的选项(多个用逗号隔开)")
private String mySelect;
@ApiModelProperty("正确答案(多个用逗号隔开)")
private String answer;
@ApiModelProperty("状态")
private String state;
@ApiModelProperty("分值")
private BigDecimal topicScore;
}

@ -0,0 +1,28 @@
package com.sztzjy.trade.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author tz
* @date 2024/9/14 8:54
*/
@Data
public class StuHomeworkGradesDTO {
@ApiModelProperty(notes = "姓名")
private String name;
@ApiModelProperty(notes = "学号")
private String studentId;
@ApiModelProperty(notes = "班级名称")
private String className;
@ApiModelProperty(notes = "得分")
private BigDecimal score;
@ApiModelProperty(notes = "完成用时")
private String completionTime;
}

@ -27,4 +27,6 @@ public interface TchExamManageMapper {
int updateByPrimaryKeySelective(TchExamManage record);
int updateByPrimaryKey(TchExamManage record);
List<TchExamManage> selectNameByUserId(String userId);
}

@ -29,4 +29,6 @@ public interface TchHomeworkManageMapper {
int updateByPrimaryKeySelective(TchHomeworkManage record);
int updateByPrimaryKey(TchHomeworkManage record);
List<TchHomeworkManage> selectNameByUserId(String userId);
}

@ -4,8 +4,10 @@ import com.github.pagehelper.PageInfo;
import com.sztzjy.trade.entity.StuLearningAssessment;
import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO;
import com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO;
import com.sztzjy.trade.util.ResultEntity;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -28,4 +30,14 @@ public interface TchHomeworkExamService {
Integer delete(String id, String type);
List<StuLearningAssessment> getTopic(String topicName, String attCourses, String topicType);
void download(String id, HttpServletResponse response);
PageInfo getBroHomeworkGrades(String className, String stuIdOrName, String id, Integer index, Integer size);
ResultEntity getHomeworkScreening(String userId, String type);
ResultEntity getHomeworkGrades(String id, Integer index, Integer size,String type);
ResultEntity getHomeworkDetails(String id,String studentId, Integer index, Integer size);
}

@ -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));
}
}

@ -23,6 +23,7 @@
<result column="teacher_comments" jdbcType="VARCHAR" property="teacherComments" />
<result column="number_of_answer" jdbcType="INTEGER" property="numberOfAnswer" />
<result column="total_questions" jdbcType="INTEGER" property="totalQuestions" />
<result column="stu_homework_annex" jdbcType="VARCHAR" property="stuHomeworkAnnex" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -85,7 +86,7 @@
<sql id="Base_Column_List">
id, name, student_id, class_name, score, completion_time, answer_number, answer_incorrectly_number,
accuracy, score_grades, user_id, task_id, average_score, state, pass_rate, homework_annex,
starting_time, end_time, teacher_comments, number_of_answer, total_questions
starting_time, end_time, teacher_comments, number_of_answer, total_questions, stu_homework_annex
</sql>
<select id="selectByExample" parameterType="com.sztzjy.trade.entity.StuAchievementInfoExample" resultMap="BaseResultMap">
select
@ -125,7 +126,7 @@
task_id, average_score, state,
pass_rate, homework_annex, starting_time,
end_time, teacher_comments, number_of_answer,
total_questions)
total_questions, stu_homework_annex)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{studentId,jdbcType=VARCHAR},
#{className,jdbcType=VARCHAR}, #{score,jdbcType=DECIMAL}, #{completionTime,jdbcType=VARCHAR},
#{answerNumber,jdbcType=INTEGER}, #{answerIncorrectlyNumber,jdbcType=INTEGER},
@ -133,7 +134,7 @@
#{taskId,jdbcType=VARCHAR}, #{averageScore,jdbcType=DECIMAL}, #{state,jdbcType=VARCHAR},
#{passRate,jdbcType=DECIMAL}, #{homeworkAnnex,jdbcType=VARCHAR}, #{startingTime,jdbcType=TIMESTAMP},
#{endTime,jdbcType=TIMESTAMP}, #{teacherComments,jdbcType=VARCHAR}, #{numberOfAnswer,jdbcType=INTEGER},
#{totalQuestions,jdbcType=INTEGER})
#{totalQuestions,jdbcType=INTEGER}, #{stuHomeworkAnnex,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.trade.entity.StuAchievementInfo">
insert into stu_achievement_info
@ -201,6 +202,9 @@
<if test="totalQuestions != null">
total_questions,
</if>
<if test="stuHomeworkAnnex != null">
stu_homework_annex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -266,6 +270,9 @@
<if test="totalQuestions != null">
#{totalQuestions,jdbcType=INTEGER},
</if>
<if test="stuHomeworkAnnex != null">
#{stuHomeworkAnnex,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.trade.entity.StuAchievementInfoExample" resultType="java.lang.Long">
@ -340,6 +347,9 @@
<if test="record.totalQuestions != null">
total_questions = #{record.totalQuestions,jdbcType=INTEGER},
</if>
<if test="record.stuHomeworkAnnex != null">
stu_homework_annex = #{record.stuHomeworkAnnex,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -367,7 +377,8 @@
end_time = #{record.endTime,jdbcType=TIMESTAMP},
teacher_comments = #{record.teacherComments,jdbcType=VARCHAR},
number_of_answer = #{record.numberOfAnswer,jdbcType=INTEGER},
total_questions = #{record.totalQuestions,jdbcType=INTEGER}
total_questions = #{record.totalQuestions,jdbcType=INTEGER},
stu_homework_annex = #{record.stuHomeworkAnnex,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -435,6 +446,9 @@
<if test="totalQuestions != null">
total_questions = #{totalQuestions,jdbcType=INTEGER},
</if>
<if test="stuHomeworkAnnex != null">
stu_homework_annex = #{stuHomeworkAnnex,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
@ -459,7 +473,8 @@
end_time = #{endTime,jdbcType=TIMESTAMP},
teacher_comments = #{teacherComments,jdbcType=VARCHAR},
number_of_answer = #{numberOfAnswer,jdbcType=INTEGER},
total_questions = #{totalQuestions,jdbcType=INTEGER}
total_questions = #{totalQuestions,jdbcType=INTEGER},
stu_homework_annex = #{stuHomeworkAnnex,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>

@ -511,4 +511,7 @@
tatal_score = #{tatalScore,jdbcType=DECIMAL}
where exam_id = #{examId,jdbcType=VARCHAR}
</update>
<select id="selectNameByUserId" resultType="com.sztzjy.trade.entity.TchExamManage" resultMap="BaseResultMap">
select exam_id, exam_name from tch_exam_manage where user_id=#{userId}
</select>
</mapper>

@ -510,4 +510,8 @@
number_passers = #{numberPassers,jdbcType=INTEGER}
where homework_id = #{homeworkId,jdbcType=VARCHAR}
</update>
<select id="selectNameByUserId" resultType="com.sztzjy.trade.entity.TchHomeworkManage" resultMap="BaseResultMap">
select homework_id,homework_name from tch_homework_manage where user_id=#{userId}
</select>
</mapper>
Loading…
Cancel
Save