|
|
|
@ -37,7 +37,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
SysGradeWeightMapper gradeWeightMapper;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void deleteByUserId(Long userId){
|
|
|
|
|
public void deleteByUserId(Long userId) {
|
|
|
|
|
SysTrainingScoreExample example = new SysTrainingScoreExample();
|
|
|
|
|
SysTrainingScoreExample.Criteria criteria = example.createCriteria();
|
|
|
|
|
criteria.andUseridEqualTo(userId);
|
|
|
|
@ -46,7 +46,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void insertByUserId(Long userId) {
|
|
|
|
|
SysTrainingScore sysTrainingScore=new SysTrainingScore();
|
|
|
|
|
SysTrainingScore sysTrainingScore = new SysTrainingScore();
|
|
|
|
|
sysTrainingScore.setId(String.valueOf(UUID.randomUUID()));
|
|
|
|
|
sysTrainingScore.setUserid(userId);
|
|
|
|
|
sysTrainingScore.setStatus(0);
|
|
|
|
@ -79,9 +79,9 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
SysTrainingScore trainingScore = new SysTrainingScore();
|
|
|
|
|
trainingScore.setId(sysTrainingScore.getId());
|
|
|
|
|
trainingScore.set(controlsName, String.valueOf(score));
|
|
|
|
|
if(controlsName.equals("dataCollectionStepDescription")){
|
|
|
|
|
trainingScore.set("dataCollectionToolbarButton","2");
|
|
|
|
|
sysTrainingScore.set("dataCollectionToolbarButton","2");
|
|
|
|
|
if (controlsName.equals("dataCollectionStepDescription")) {
|
|
|
|
|
trainingScore.set("dataCollectionToolbarButton", "2");
|
|
|
|
|
sysTrainingScore.set("dataCollectionToolbarButton", "2");
|
|
|
|
|
}
|
|
|
|
|
trainingScoreMapper.updateByPrimaryKeySelective(trainingScore);
|
|
|
|
|
sysTrainingScore.set(controlsName, String.valueOf(score));
|
|
|
|
@ -97,36 +97,106 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageInfo<ReportDto> teacherGetReport(Integer index, Integer size, Double reportWeight, Double operatorWeight, String keyWord, String stuClass) {
|
|
|
|
|
PageHelper.startPage(index, size);
|
|
|
|
|
List<ReportDto> reportDtoList = new ArrayList<>();
|
|
|
|
|
SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
if (stuClass != null || keyWord != null) {
|
|
|
|
|
List<SysUser> users = sysUserMapper.selectByNameStuNum(stuClass, keyWord);
|
|
|
|
|
for (SysUser user : users) {
|
|
|
|
|
trainingScoreExample.createCriteria().andUseridEqualTo(user.getUserId());
|
|
|
|
|
List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
if (!sysTrainingScores.isEmpty()) {
|
|
|
|
|
SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
// @Override
|
|
|
|
|
// public PageInfo<ReportDto> teacherGetReport(Integer index, Integer size, Double reportWeight, Double operatorWeight, String keyWord, String stuClass) {
|
|
|
|
|
// PageHelper.startPage(index, size);
|
|
|
|
|
// List<ReportDto> reportDtoList = new ArrayList<>();
|
|
|
|
|
// if (stuClass != null || keyWord != null) {
|
|
|
|
|
// List<SysUser> users = sysUserMapper.selectByNameStuNum(stuClass, keyWord);
|
|
|
|
|
// for (SysUser user : users) {
|
|
|
|
|
// SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
// trainingScoreExample.createCriteria().andUseridEqualTo(user.getUserId());
|
|
|
|
|
// List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
// if (!sysTrainingScores.isEmpty()) {
|
|
|
|
|
// SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
// ReportDto reportDto = createReportDto(sysTrainingScore, user, reportWeight, operatorWeight);
|
|
|
|
|
// reportDtoList.add(reportDto);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return new PageInfo<>(reportDtoList);
|
|
|
|
|
// }
|
|
|
|
|
// List<SysUser> userList = sysUserMapper.selectClassStuNumberName();
|
|
|
|
|
// for (SysUser sysUser : userList) {
|
|
|
|
|
// SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
// trainingScoreExample.createCriteria().andUseridEqualTo(sysUser.getUserId());
|
|
|
|
|
// List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
// if (!sysTrainingScores.isEmpty()) {
|
|
|
|
|
// SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
// ReportDto reportDto = createReportDto(sysTrainingScore, sysUser, reportWeight, operatorWeight);
|
|
|
|
|
// reportDtoList.add(reportDto);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return new PageInfo<>(reportDtoList);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageInfo<ReportDto> teacherGetReport(Integer index, Integer size, Double reportWeight, Double operatorWeight, String keyWord, String stuClass) {
|
|
|
|
|
PageHelper.startPage(index, size);
|
|
|
|
|
List<ReportDto> reportDtoList = new ArrayList<>();
|
|
|
|
|
if (stuClass != null || keyWord != null) {
|
|
|
|
|
List<SysUser> users = sysUserMapper.selectByNameStuNum(stuClass, keyWord);
|
|
|
|
|
for (SysUser user : users) {
|
|
|
|
|
SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
trainingScoreExample.createCriteria().andUseridEqualTo(user.getUserId());
|
|
|
|
|
List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
if (!sysTrainingScores.isEmpty()) {
|
|
|
|
|
SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
// 检查是否已经存在分数
|
|
|
|
|
if (sysTrainingScore.getTotalscore() != null &&
|
|
|
|
|
sysTrainingScore.getTrainingReportScore() != null &&
|
|
|
|
|
sysTrainingScore.getTrainingOperationScore() != null) {
|
|
|
|
|
// 使用数据库中的分数创建ReportDto
|
|
|
|
|
ReportDto reportDto = new ReportDto(
|
|
|
|
|
user.getStuClass(),
|
|
|
|
|
user.getStudentNumber(),
|
|
|
|
|
user.getUserName(),
|
|
|
|
|
sysTrainingScore.getTrainingReportScore().doubleValue(),
|
|
|
|
|
sysTrainingScore.getTrainingOperationScore().doubleValue(),
|
|
|
|
|
sysTrainingScore.getTotalscore(),
|
|
|
|
|
sysTrainingScore.getReportFilename()
|
|
|
|
|
);
|
|
|
|
|
reportDto.setUserId(user.getUserId());
|
|
|
|
|
reportDtoList.add(reportDto);
|
|
|
|
|
} else {
|
|
|
|
|
// 进行计算分数的逻辑,调用createReportDto方法
|
|
|
|
|
ReportDto reportDto = createReportDto(sysTrainingScore, user, reportWeight, operatorWeight);
|
|
|
|
|
reportDtoList.add(reportDto);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new PageInfo<>(reportDtoList);
|
|
|
|
|
}
|
|
|
|
|
List<SysUser> userList = sysUserMapper.selectClassStuNumberName();
|
|
|
|
|
for (SysUser sysUser : userList) {
|
|
|
|
|
trainingScoreExample.createCriteria().andUseridEqualTo(sysUser.getUserId());
|
|
|
|
|
List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
if (!sysTrainingScores.isEmpty()) {
|
|
|
|
|
SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
return new PageInfo<>(reportDtoList);
|
|
|
|
|
}
|
|
|
|
|
List<SysUser> userList = sysUserMapper.selectClassStuNumberName();
|
|
|
|
|
for (SysUser sysUser : userList) {
|
|
|
|
|
SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
trainingScoreExample.createCriteria().andUseridEqualTo(sysUser.getUserId());
|
|
|
|
|
List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
if (!sysTrainingScores.isEmpty()) {
|
|
|
|
|
SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
if (sysTrainingScore.getTotalscore() != null &&
|
|
|
|
|
sysTrainingScore.getTrainingReportScore() != null &&
|
|
|
|
|
sysTrainingScore.getTrainingOperationScore() != null) {
|
|
|
|
|
// 使用数据库中的分数创建ReportDto
|
|
|
|
|
ReportDto reportDto = new ReportDto(
|
|
|
|
|
sysUser.getStuClass(),
|
|
|
|
|
sysUser.getStudentNumber(),
|
|
|
|
|
sysUser.getUserName(),
|
|
|
|
|
sysTrainingScore.getTrainingReportScore().doubleValue(),
|
|
|
|
|
sysTrainingScore.getTrainingOperationScore().doubleValue(),
|
|
|
|
|
sysTrainingScore.getTotalscore(),
|
|
|
|
|
sysTrainingScore.getReportFilename()
|
|
|
|
|
);
|
|
|
|
|
reportDto.setUserId(sysUser.getUserId());
|
|
|
|
|
reportDtoList.add(reportDto);
|
|
|
|
|
} else {
|
|
|
|
|
// 进行计算分数的逻辑,调用createReportDto方法
|
|
|
|
|
ReportDto reportDto = createReportDto(sysTrainingScore, sysUser, reportWeight, operatorWeight);
|
|
|
|
|
reportDtoList.add(reportDto);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new PageInfo<>(reportDtoList);
|
|
|
|
|
}
|
|
|
|
|
return new PageInfo<>(reportDtoList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<SysTrainingScore> selectAllReportContent() {
|
|
|
|
@ -138,15 +208,13 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
private ReportDto createReportDto(SysTrainingScore sysTrainingScore, SysUser user, Double reportWeight, Double operatorWeight) {
|
|
|
|
|
ReportDto reportDto = new ReportDto();
|
|
|
|
|
reportDto.setFileName(sysTrainingScore.getReportFilename());
|
|
|
|
|
Integer reportSubmissionScore = sysTrainingScore.getReportSubmissionScore(); // 报告成绩
|
|
|
|
|
reportDto.setReportSubmissionScore(reportSubmissionScore);
|
|
|
|
|
Integer reportScore = sysTrainingScore.getTrainingReportScore(); // 报告成绩
|
|
|
|
|
Integer trainingOperationScore = sysTrainingScore.getTrainingOperationScore(); // 操作成绩
|
|
|
|
|
reportDto.setTrainingOperationScore(trainingOperationScore);
|
|
|
|
|
reportDto.setName(user.getUserName());
|
|
|
|
|
reportDto.setStuClass(user.getStuClass());
|
|
|
|
|
reportDto.setStuNumber(user.getStudentNumber());
|
|
|
|
|
reportDto.setUserId(user.getUserId());
|
|
|
|
|
if (reportSubmissionScore != null && trainingOperationScore != null) {
|
|
|
|
|
if (reportScore != null &&reportScore!=0 && trainingOperationScore != null&&trainingOperationScore != 0) {
|
|
|
|
|
SysGradeWeight sysGradeWeight = gradeWeightMapper.selectByPrimaryKey(1L);
|
|
|
|
|
Double oldReportWeight = sysGradeWeight.getReportWeight();
|
|
|
|
|
Double oldOperatorWeight = sysGradeWeight.getOperatorWeight();
|
|
|
|
@ -165,10 +233,16 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
} else {
|
|
|
|
|
operatorWeight = 0.9; // 设置默认权重
|
|
|
|
|
}
|
|
|
|
|
Double resultReportScore = reportScore * reportWeight; //报告成绩 加权重后
|
|
|
|
|
Double resultOperationScore = trainingOperationScore * operatorWeight; //操作成绩 加权重后
|
|
|
|
|
Double totalScore = resultReportScore + resultOperationScore; //总成绩
|
|
|
|
|
|
|
|
|
|
Double totalScore = (reportSubmissionScore * reportWeight) + (trainingOperationScore * operatorWeight);
|
|
|
|
|
reportDto.setTrainingReportScore(resultReportScore);
|
|
|
|
|
reportDto.setTrainingOperationScore(resultOperationScore);
|
|
|
|
|
reportDto.setScoreTotal(totalScore);
|
|
|
|
|
sysTrainingScore.setTotalscore(totalScore);
|
|
|
|
|
sysTrainingScore.setTrainingReportScore(resultReportScore.intValue());
|
|
|
|
|
sysTrainingScore.setTrainingOperationScore(resultOperationScore.intValue());
|
|
|
|
|
trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore);
|
|
|
|
|
gradeWeightMapper.updateByPrimaryKeySelective(sysGradeWeight);
|
|
|
|
|
} else {
|
|
|
|
@ -195,14 +269,14 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
sysTrainingScore.setReportUploadPath(filePath);
|
|
|
|
|
sysTrainingScore.setReportFilename(fileName);
|
|
|
|
|
trainingScoreMapper.updateByExample(sysTrainingScore, sysTrainingScoreExample);
|
|
|
|
|
return AjaxResult.error("上传成功");
|
|
|
|
|
return AjaxResult.success("上传成功");
|
|
|
|
|
} else {
|
|
|
|
|
if (sysTrainingScore != null) {
|
|
|
|
|
sysTrainingScore.setReportUploadPath(filePath);
|
|
|
|
|
sysTrainingScore.setReportFilename(fileName);
|
|
|
|
|
}
|
|
|
|
|
trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore);
|
|
|
|
|
return AjaxResult.error("上传成功");
|
|
|
|
|
return AjaxResult.success("上传成功");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
@ -223,7 +297,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
sysTrainingScore.setReportContent(content);
|
|
|
|
|
trainingScoreMapper.updateByExample(sysTrainingScore, trainingScoreExample);
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
return AjaxResult.success("提交成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -234,13 +308,12 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public AjaxResult downloadReport(HttpServletResponse response, Long id) {
|
|
|
|
|
SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
trainingScoreExample.createCriteria().andUseridEqualTo(id);
|
|
|
|
|
// 根据id获取文件路径信息
|
|
|
|
|
SysTrainingScoreExample sysTrainingScoreExample = new SysTrainingScoreExample();
|
|
|
|
|
sysTrainingScoreExample.createCriteria().andUseridEqualTo(id);
|
|
|
|
|
List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(sysTrainingScoreExample);
|
|
|
|
|
|
|
|
|
|
List<SysTrainingScore> sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample);
|
|
|
|
|
if (sysTrainingScores.isEmpty()) {
|
|
|
|
|
return AjaxResult.error(404,"报告不存在");
|
|
|
|
|
return AjaxResult.error(404, "报告不存在");
|
|
|
|
|
}
|
|
|
|
|
SysTrainingScore sysTrainingScore = sysTrainingScores.get(0);
|
|
|
|
|
String filePath = sysTrainingScore.getReportUploadPath();
|
|
|
|
@ -250,7 +323,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
|
|
|
|
|
// 下载文件
|
|
|
|
|
fileUtil.download(response, fileName, filePath);
|
|
|
|
|
} catch (IllegalArgumentException e) {
|
|
|
|
|
return AjaxResult.error(400,"下载失败");
|
|
|
|
|
return AjaxResult.error(400, "下载失败");
|
|
|
|
|
}
|
|
|
|
|
return AjaxResult.success("下载成功");
|
|
|
|
|
}
|
|
|
|
|