新增参考答案方面接口

master
yz 5 months ago
parent 7ad414c0b6
commit ec6a70ed27

@ -8,6 +8,7 @@ import com.nimbusds.jose.shaded.gson.Gson;
import com.sztzjy.money_management.annotation.AnonymousAccess;
import com.sztzjy.money_management.entity.*;
import com.sztzjy.money_management.entity.dto.*;
import com.sztzjy.money_management.entity.vo.ObjCaseScoreVo;
import com.sztzjy.money_management.mapper.*;
import com.sztzjy.money_management.service.CaseService;
import com.sztzjy.money_management.service.ScoreRankService;
@ -17,8 +18,11 @@ import com.sztzjy.money_management.util.excel.FilePortUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.python.core.AstList;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
@ -90,6 +94,8 @@ public class GradeController {
CaseHeritageMapper caseHeritageMapper;
@Autowired
CaseInvestmentPlanMapper caseInvestmentPlanMapper;
@Autowired
UserInfoMapper userInfoMapper;
@AnonymousAccess
@ApiOperation("实训演练-学习成绩得分情况展示")
@ -151,6 +157,18 @@ public class GradeController {
stuTrainingDto.setResourceLearningScore(studentScoreWeight.getResourceLearningScore().multiply(BigDecimal.valueOf(stuTraining.getResourceLearningCompleteStatus()==null?0:stuTraining.getResourceLearningCompleteStatus())));
stuTrainingDto.setLearningEvalScore(studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(stuTraining.getLearningEvalCompleteStatus()==null?0:stuTraining.getLearningEvalCompleteStatus())));
stuTrainingDto.setCaseStuScore(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()==null?0:stuTraining.getExpTrainingCompleteStatus())));
if(stuTrainingDto.getKnowledgeSummaryScore().compareTo(BigDecimal.valueOf(100))>0){
stuTrainingDto.setKnowledgeSummaryScore(BigDecimal.valueOf(100));
}
if(stuTrainingDto.getResourceLearningScore().compareTo(BigDecimal.valueOf(100))>0){
stuTrainingDto.setResourceLearningScore(BigDecimal.valueOf(100));
}
if(stuTrainingDto.getLearningEvalScore().compareTo(BigDecimal.valueOf(100))>0){
stuTrainingDto.setLearningEvalScore(BigDecimal.valueOf(100));
}
if(stuTrainingDto.getCaseStuScore().compareTo(BigDecimal.valueOf(100))>0){
stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(100));
}
//设置实验报告情况及得分
List<TrainingReport> trainingReports = trainingReportMapper.selectByExample(trainingReportExample);
@ -536,7 +554,19 @@ public class GradeController {
TrainingReportExample trainingReportExample = new TrainingReportExample();
trainingReportExample.createCriteria().andSchoolIdEqualTo(schoolId);
List<TrainingReport> trainingReports = trainingReportMapper.selectByExampleWithBLOBs(trainingReportExample);
PageInfo pageInfo = new PageInfo(trainingReports);
List<TrainingReportDto> list = new AstList();
if (!trainingReports.isEmpty()) {
for (TrainingReport trainingReport : trainingReports) {
TrainingReportDto trainingReportDto = new TrainingReportDto();
BeanUtils.copyProperties(trainingReport, trainingReportDto);
UserInfo user = userInfoMapper.selectByPrimaryKey(trainingReport.getUserId());
trainingReportDto.setName(user.getName());
trainingReportDto.setStudentId(user.getStudentId());
trainingReportDto.setClassName(user.getClassName());
list.add(trainingReportDto);
}
}
PageInfo pageInfo = new PageInfo(list);
return new ResultEntity<PageInfo<TrainingReport>>(pageInfo);
}
@ -654,14 +684,152 @@ public class GradeController {
return new ResultEntity<>(HttpStatus.OK, "案例列表展示成功",synthesisPlanClientList);
}
//教师端 综合规划成绩详情查询
@PostMapping("/getExamPoint")
@ApiOperation("教师端 综合规划成绩详情查询")
//***** map有误 必须根据caseId获取案例题所有type
@GetMapping("/getObjCaseScore")
@ApiOperation("教师端-成绩中心-综合规划-查看详情、评分 客观题标准分、学生得分情况")
@AnonymousAccess
private ResultEntity<Object> getExamPoint(@RequestParam String caseID) {
return caseService.getExamPoint(caseID,null, "题目答案", "报告");
public ResultEntity<Map<String,ObjCaseScoreVo>> getObjCaseScore(String userId,String caseId){
SynthesisPlanScoreExample synthesisPlanScoreExample = new SynthesisPlanScoreExample();
synthesisPlanScoreExample.createCriteria().andCaseidEqualTo(caseId).andUseridEqualTo(userId);
List<SynthesisPlanScore> synthesisPlanScores = synthesisPlanScoreMapper.selectByExample(synthesisPlanScoreExample);
if(!synthesisPlanScores.isEmpty()){
Map<String, ObjCaseScoreVo> map=new HashMap<>();
for (int i = 0; i < synthesisPlanScores.size(); i++) {
SynthesisPlanScore synthesisPlanScore = synthesisPlanScores.get(i);
if(map.containsKey(synthesisPlanScore.getManageMoneyMattersType())){
ObjCaseScoreVo objCaseScoreVo = map.get(synthesisPlanScore.getManageMoneyMattersType());
objCaseScoreVo.setStandardScore(objCaseScoreVo.getStandardScore().add(BigDecimal.valueOf(2)));
if("答对".equals(synthesisPlanScore.getStatus())){
objCaseScoreVo.setStuScore(objCaseScoreVo.getStuScore().add(BigDecimal.valueOf(2)));
}
}else {
ObjCaseScoreVo objCaseScoreVo = new ObjCaseScoreVo();
objCaseScoreVo.setStandardScore(BigDecimal.valueOf(2));
if("答对".equals(synthesisPlanScore.getStatus())){
objCaseScoreVo.setStuScore(BigDecimal.valueOf(2));
}else {
objCaseScoreVo.setStuScore(BigDecimal.ZERO);
}
map.put(synthesisPlanScore.getManageMoneyMattersType(),objCaseScoreVo);
}
}
Set<String> keySet = map.keySet();
for(Object key : keySet ){
ObjCaseScoreVo objCaseScoreVo = map.get(key);
if("财务分析-财务比例分析".equals(key)){
CaseFinancialRatiosExample example = new CaseFinancialRatiosExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseFinancialRatiosWithBLOBs> caseFinancialRatios = caseFinancialRatiosMapper.selectByExampleWithBLOBs(example);
if (!caseFinancialRatios.isEmpty()){
objCaseScoreVo.setAnswerOne(caseFinancialRatios.get(0).getAnalysis());
}
}
if("现金规划".equals(key)){
CaseCashPlanExample example = new CaseCashPlanExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseCashPlan> teaObj = caseCashPlanMapper.selectByExampleWithBLOBs(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(teaObj.get(0).getAnalysis());
}
}
if("生涯规划-教育规划".equals(key)){
CaseLifeEducationPlanExample example = new CaseLifeEducationPlanExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseLifeEducationPlan> teaObj = caseLifeEducationPlanMapper.selectByExampleWithBLOBs(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(String.valueOf(teaObj.get(0).getReturnOnInvestment()));
objCaseScoreVo.setAnswerTwo(teaObj.get(0).getAnalysis());
}
}
if("生涯规划-消费规划".equals(key)){
CaseConsumptionPlanExample example = new CaseConsumptionPlanExample();
example.createCriteria().andCaseIdEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseConsumptionPlan> teaObj = caseConsumptionPlanMapper.selectByExampleWithBLOBs(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(String.valueOf(teaObj.get(0).getReturnOnInvestment()));
objCaseScoreVo.setAnswerTwo(teaObj.get(0).getAnalysis());
}
}
if("生涯规划-创业规划".equals(key)){
CaseStartAnUndertakingPlanExample example = new CaseStartAnUndertakingPlanExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseStartAnUndertakingPlan> teaObj = caseStartAnUndertakingPlanMapper.selectByExample(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(String.valueOf(teaObj.get(0).getReturnOnInvestmentRate()));
objCaseScoreVo.setAnswerTwo(teaObj.get(0).getAnalysis());
}
}
if("生涯规划-退休规划".equals(key)){
CaseRetirementPlanExample example = new CaseRetirementPlanExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseRetirementPlan> teaObj = caseRetirementPlanMapper.selectByExample(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(String.valueOf(teaObj.get(0).getReturnOnInvestmentRate()));
objCaseScoreVo.setAnswerTwo(teaObj.get(0).getAnalysis());
}
}
if("生涯规划-保险规划".equals(key)){
CaseInsurancePlanExample example = new CaseInsurancePlanExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseInsurancePlan> teaObj = caseInsurancePlanMapper.selectByExample(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(teaObj.get(0).getAnalysis());
}
}
if("投资规划".equals(key)){
CaseInvestmentPlanExample example = new CaseInvestmentPlanExample();
example.createCriteria().andCaseIdEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseInvestmentPlan> teaObj = caseInvestmentPlanMapper.selectByExample(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(teaObj.get(0).getAnalysis());
}
}
if("税务筹划".equals(key)){
CaseTaxPlanExample example = new CaseTaxPlanExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseTaxPlan> teaObj = caseTaxPlanMapper.selectByExample(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(teaObj.get(0).getAnalysis());
}
}
if("财产分配".equals(key)){
CaseDistributionOfPropertyExample example = new CaseDistributionOfPropertyExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseDistributionOfPropertyWithBLOBs> teaObj = caseDistributionOfPropertyMapper.selectByExampleWithBLOBs(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(String.valueOf(teaObj.get(0).getSituationAnalysis()));
objCaseScoreVo.setAnswerTwo(teaObj.get(0).getPlanAnalysis());
}
}
if("财产传承".equals(key)){
CaseHeritageExample example = new CaseHeritageExample();
example.createCriteria().andCaseidEqualTo(caseId).andIsAnswerEqualTo("题目答案");
List<CaseHeritageWithBLOBs> teaObj = caseHeritageMapper.selectByExampleWithBLOBs(example);
if (!teaObj.isEmpty()){
objCaseScoreVo.setAnswerOne(String.valueOf(teaObj.get(0).getFinanceAnalysis()));
objCaseScoreVo.setAnswerTwo(teaObj.get(0).getPlanAnalysis());
}
}
}
return new ResultEntity<>(HttpStatus.OK, "学生得分情况返回成功",map);
}else {
return new ResultEntity<>(HttpStatus.OK, "未查询到数据");
}
}
//教师端 综合规划成绩详情查询
// @PostMapping("/getExamPoint")
// @ApiOperation("教师端 综合规划成绩详情查询")
// @AnonymousAccess
// private ResultEntity<List<SynthesisPlanScoreWithBLOBs>> getExamPoint(@RequestParam String caseID,@RequestParam String userId) {
// SynthesisPlanScoreExample synthesisPlanScoreExample = new SynthesisPlanScoreExample();
// synthesisPlanScoreExample.createCriteria().andUseridEqualTo(userId).andCaseidEqualTo(caseID);
// List<SynthesisPlanScoreWithBLOBs> synthesisPlanScores = synthesisPlanScoreMapper.selectByExampleWithBLOBs(synthesisPlanScoreExample);
// return new ResultEntity<>(HttpStatus.OK, "综合规划成绩详情查询成功",synthesisPlanScores);
// }
//教师端 综合规划老师评分
@PostMapping("/updateSynthesisPlanMark")
@ApiOperation("教师端 综合规划老师评分")

@ -5,17 +5,23 @@ import com.sztzjy.money_management.annotation.AnonymousAccess;
import com.sztzjy.money_management.entity.StuTrainingWithBLOBs;
import com.sztzjy.money_management.entity.TrainingReport;
import com.sztzjy.money_management.entity.TrainingReportExample;
import com.sztzjy.money_management.entity.UserInfo;
import com.sztzjy.money_management.entity.dto.TrainingReportDto;
import com.sztzjy.money_management.mapper.StuTrainingMapper;
import com.sztzjy.money_management.mapper.TrainingReportMapper;
import com.sztzjy.money_management.mapper.UserInfoMapper;
import com.sztzjy.money_management.util.ResultEntity;
import com.sztzjy.money_management.util.file.IFileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.python.core.AstList;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -36,15 +42,34 @@ public class TrainingReportController {
private String filePath;
@Autowired
StuTrainingMapper trainingMapper;
@Autowired
UserInfoMapper userInfoMapper;
@AnonymousAccess
@ApiOperation("学习成绩实验报告展示")
@PostMapping("getReportByUserId")
public ResultEntity<List<TrainingReport>> getReportByUserId(@RequestParam String userId,@RequestParam String chapterId) {
public ResultEntity<List<TrainingReportDto>> getReportByUserId(@RequestParam String userId, @RequestParam(required = false) String chapterId) {
TrainingReportExample trainingReportExample = new TrainingReportExample();
trainingReportExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
if(chapterId==null || chapterId.isEmpty()){
trainingReportExample.createCriteria().andUserIdEqualTo(userId);
}else {
trainingReportExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
}
List<TrainingReport> trainingReports = trainingReportMapper.selectByExampleWithBLOBs(trainingReportExample);
return new ResultEntity<>(trainingReports);
List<TrainingReportDto> list = new AstList();
if (!trainingReports.isEmpty()) {
for (TrainingReport trainingReport : trainingReports) {
TrainingReportDto trainingReportDto = new TrainingReportDto();
BeanUtils.copyProperties(trainingReport, trainingReportDto);
UserInfo user = userInfoMapper.selectByPrimaryKey(trainingReport.getUserId());
trainingReportDto.setName(user.getName());
trainingReportDto.setStudentId(user.getStudentId());
trainingReportDto.setClassName(user.getClassName());
list.add(trainingReportDto);
}
}
return new ResultEntity<>(list);
}
@AnonymousAccess

@ -0,0 +1,18 @@
package com.sztzjy.money_management.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ObjCaseScoreDto {
@ApiModelProperty("理财类型")
private String manageMoneyMattersType;
@ApiModelProperty("标准分")
private BigDecimal StandardScore;
@ApiModelProperty("学生得分")
private BigDecimal stuScore;
}

@ -28,4 +28,7 @@ public class StuSynthesisPlanScoreDto {
@ApiModelProperty("实训得分")
private BigDecimal trainingScore;
@ApiModelProperty("caseId")
private String caseId;
}

@ -0,0 +1,54 @@
package com.sztzjy.money_management.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class TrainingReportDto {
@ApiModelProperty("实训报告ID")
private String reportId;
@ApiModelProperty("章节ID")
private String chapterId;
@ApiModelProperty("章节名称")
private String chapterName;
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("学号")
private String studentId;
@ApiModelProperty("班级")
private String className;
@ApiModelProperty("实训报告名称")
private String reportName;
@ApiModelProperty("实训报告上传时间")
private Date uploadTime;
@ApiModelProperty("实训报告大小/单位MB")
private Integer reportSize;
@ApiModelProperty("教师评分")
private BigDecimal teacherScore;
@ApiModelProperty("文件地址")
private String filePath;
@ApiModelProperty("学校ID")
private String schoolId;
@ApiModelProperty("教师评语")
private String teacherComment;
}

@ -0,0 +1,21 @@
package com.sztzjy.money_management.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ObjCaseScoreVo {
@ApiModelProperty("标准分")
private BigDecimal StandardScore;
@ApiModelProperty("学生得分")
private BigDecimal stuScore;
@ApiModelProperty("主观题参考答案1")
private String answerOne;
@ApiModelProperty("主观题参考答案2")
private String answerTwo;
}

@ -5,6 +5,7 @@ import com.sztzjy.money_management.mapper.*;
import com.sztzjy.money_management.service.ScoreRankService;
import com.sztzjy.money_management.service.TrainingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@ -35,6 +36,7 @@ public class ScoreRankServiceImpl implements ScoreRankService {
StuTheoryRecordMapper stuTheoryRecordMapper;
@Override
@Scheduled(cron = "0 0 23 * * ?")
public Boolean doRank() {
//先查询userInfo表 获取所有学校ID
List<String> schoolIdList = userInfoMapper.selectAllSchoolIds();
@ -95,6 +97,9 @@ public class ScoreRankServiceImpl implements ScoreRankService {
if (stuTrainings != null) {
for (int k = 0; k < stuTrainings.size(); k++) {
StuTraining stuTraining = stuTrainings.get(k);
if(stuTraining.getChapterName()==null){
continue;
}
Integer knowledgeStatus = stuTraining.getKnowledgeSummaryCompleteStatus() == null ? 0 : stuTraining.getKnowledgeSummaryCompleteStatus();
Integer resourceStatus = stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 0 : stuTraining.getLearningEvalCompleteStatus();

@ -202,10 +202,14 @@ public class TrainingServiceImpl implements TrainingService {
for (int i = 0; i < synthesisPlanClientList.size(); i++) {
StuSynthesisPlanScoreDto returnDto = new StuSynthesisPlanScoreDto();
SynthesisPlanClient client = synthesisPlanClientList.get(i);
returnDto.setCaseId(client.getCaseid());
returnDto.setName(client.getName());
returnDto.setUseTime(client.getUseTime());
//获取实训总分
BigDecimal trainingTotalScore=synthesisPlanScoreMapper.selectTotalScoreByUserIdAndCaseId(userId,client.getCaseid());
if(trainingTotalScore==null){
trainingTotalScore=BigDecimal.ZERO;
}
returnDto.setTrainingTotalScore(trainingTotalScore);
returnDto.setScoreWight(zhghWeight);
returnDto.setFinishStatus("已完成");

Loading…
Cancel
Save