完成实训数据查询、下载、计算结果回显、分析回显、实训提交、重新实训提交

main
whb 1 year ago
parent 1d6b995bc4
commit 22ec592139

@ -6,11 +6,13 @@ import com.alibaba.fastjson.JSONObject;
import com.sztzjy.linkCommerce.annotation.AnonymousAccess; import com.sztzjy.linkCommerce.annotation.AnonymousAccess;
import com.sztzjy.linkCommerce.config.Constant; import com.sztzjy.linkCommerce.config.Constant;
import com.sztzjy.linkCommerce.entity.*; import com.sztzjy.linkCommerce.entity.*;
import com.sztzjy.linkCommerce.entity.dto.CompetitiveEnvDTO;
import com.sztzjy.linkCommerce.entity.dto.MonthlyCakeIndex; import com.sztzjy.linkCommerce.entity.dto.MonthlyCakeIndex;
import com.sztzjy.linkCommerce.entity.dto.StuIndustryAnalysisDTO; import com.sztzjy.linkCommerce.entity.dto.StuIndustryAnalysisDTO;
import com.sztzjy.linkCommerce.entity.dto.YearCakeIndexDto; import com.sztzjy.linkCommerce.entity.dto.YearCakeIndexDto;
import com.sztzjy.linkCommerce.mapper.HyxqfxDataMapper; import com.sztzjy.linkCommerce.mapper.HyxqfxDataMapper;
import com.sztzjy.linkCommerce.mapper.HyxqfxStuAnswerMapper; import com.sztzjy.linkCommerce.mapper.HyxqfxStuAnswerMapper;
import com.sztzjy.linkCommerce.mapper.JzhyfxStuAnswerMapper;
import com.sztzjy.linkCommerce.mapper.StuGradeMapper; import com.sztzjy.linkCommerce.mapper.StuGradeMapper;
import com.sztzjy.linkCommerce.service.IndustryDemandAnalysisService; import com.sztzjy.linkCommerce.service.IndustryDemandAnalysisService;
import com.sztzjy.linkCommerce.service.ScoreService; import com.sztzjy.linkCommerce.service.ScoreService;
@ -36,25 +38,13 @@ import java.util.*;
@RequestMapping("api/industryAnalysis") @RequestMapping("api/industryAnalysis")
public class IndustryDemandAnalysisController { public class IndustryDemandAnalysisController {
@Autowired
private IndustryDemandAnalysisService service;
@Autowired
private HyxqfxDataMapper hyxqfxDataMapper;
@Autowired @Autowired
private HyxqfxStuAnswerMapper hyxqfxStuAnswerMapper; private HyxqfxStuAnswerMapper hyxqfxStuAnswerMapper;
@Autowired
private StuGradeMapper stuGradeMapper;
@Autowired @Autowired
private ScoreService scoreService; private ScoreService scoreService;
//数据查询 //数据查询
@ApiOperation("行业需求分析提交") @ApiOperation("行业需求分析提交")
@PostMapping("/analysisSubmit") @PostMapping("/analysisSubmit")
@ -64,28 +54,28 @@ public class IndustryDemandAnalysisController {
//读取文件内容 批量导入excel中 以文件名区分 //读取文件内容 批量导入excel中 以文件名区分
Map<String, Double> yearMap = new HashMap<>(); Map<String, Double> yearMap = new HashMap<>();
yearMap.put("2018年",0.28); yearMap.put("2018年", 0.28);
yearMap.put("2019年",0.25); yearMap.put("2019年", 0.25);
yearMap.put("2020年",0.24); yearMap.put("2020年", 0.24);
yearMap.put("2021年",0.22); yearMap.put("2021年", 0.22);
yearMap.put("2022年",0.21); yearMap.put("2022年", 0.21);
yearMap.put("2023年",0.22); yearMap.put("2023年", 0.22);
yearMap.put("2024年",0.20); yearMap.put("2024年", 0.20);
Map<String, Double> monthMap = new HashMap<>(); Map<String, Double> monthMap = new HashMap<>();
monthMap.put("2024年4月",0.21); monthMap.put("2024年4月", 0.21);
monthMap.put("2024年5月",0.20); monthMap.put("2024年5月", 0.20);
monthMap.put("2024年6月",0.20); monthMap.put("2024年6月", 0.20);
monthMap.put("2024年7月",0.22); monthMap.put("2024年7月", 0.22);
monthMap.put("2024年8月",0.33); monthMap.put("2024年8月", 0.33);
monthMap.put("2024年9月",0.30); monthMap.put("2024年9月", 0.30);
monthMap.put("2024年10月",0.33); monthMap.put("2024年10月", 0.33);
monthMap.put("2024年11月",0.23); monthMap.put("2024年11月", 0.23);
monthMap.put("2024年12月",0.22); monthMap.put("2024年12月", 0.22);
monthMap.put("2025年1月",0.22); monthMap.put("2025年1月", 0.22);
monthMap.put("2025年2月",0.15); monthMap.put("2025年2月", 0.15);
monthMap.put("2025年3月",0.27); monthMap.put("2025年3月", 0.27);
int count = 0; int count = 0;
@ -94,7 +84,7 @@ public class IndustryDemandAnalysisController {
for (YearCakeIndexDto yearCakeIndexDto : yearCakeIndexDtoList) { for (YearCakeIndexDto yearCakeIndexDto : yearCakeIndexDtoList) {
Double v = yearMap.get(yearCakeIndexDto.getYear()); Double v = yearMap.get(yearCakeIndexDto.getYear());
if (yearCakeIndexDto.getYearAnswer() == null || v != yearCakeIndexDto.getYearAnswer()) { if (yearCakeIndexDto.getYearAnswer() == null || v != yearCakeIndexDto.getYearAnswer()) {
count ++; count++;
} }
} }
@ -104,7 +94,7 @@ public class IndustryDemandAnalysisController {
for (MonthlyCakeIndex yearCakeIndexDto : monthlyCakeIndexList) { for (MonthlyCakeIndex yearCakeIndexDto : monthlyCakeIndexList) {
Double v = monthMap.get(yearCakeIndexDto.getYear()); Double v = monthMap.get(yearCakeIndexDto.getYear());
if (yearCakeIndexDto.getMonthAnswer() == null || v != yearCakeIndexDto.getMonthAnswer()) { if (yearCakeIndexDto.getMonthAnswer() == null || v != yearCakeIndexDto.getMonthAnswer()) {
count ++; count++;
} }
} }
BigDecimal subtract = BigDecimal.ZERO; BigDecimal subtract = BigDecimal.ZERO;
@ -115,15 +105,9 @@ public class IndustryDemandAnalysisController {
List<HyxqfxStuAnswer> hyxqfxStuAnswerList = hyxqfxStuAnswerMapper.selectByExample(example); List<HyxqfxStuAnswer> hyxqfxStuAnswerList = hyxqfxStuAnswerMapper.selectByExample(example);
if (!CollectionUtils.isEmpty(hyxqfxStuAnswerList)) { if (!CollectionUtils.isEmpty(hyxqfxStuAnswerList)) {
HyxqfxStuAnswer hyxqfxStuAnswer = hyxqfxStuAnswerList.get(0); return new ResultEntity<>(HttpStatus.ACCEPTED,"请勿重复提交!");
hyxqfxStuAnswer.setErrorNumber(count);
String jsonString = JSONObject.toJSONString(analysisDTO);
hyxqfxStuAnswer.setAnswer(jsonString);
hyxqfxStuAnswerMapper.updateByPrimaryKeyWithBLOBs(hyxqfxStuAnswer);
} else {
}else {
//学生答案 //学生答案
String jsonString = JSONObject.toJSONString(analysisDTO); String jsonString = JSONObject.toJSONString(analysisDTO);
HyxqfxStuAnswer hyxqfxStuAnswer = new HyxqfxStuAnswer(); HyxqfxStuAnswer hyxqfxStuAnswer = new HyxqfxStuAnswer();
@ -137,11 +121,11 @@ public class IndustryDemandAnalysisController {
subtract = BigDecimal.valueOf(100).subtract(Convert.toBigDecimal(count)); subtract = BigDecimal.valueOf(100).subtract(Convert.toBigDecimal(count));
Boolean aBoolean = scoreService.insertScore(analysisDTO.getUserId(), Constant.PRO_SCXQWJ,Constant.MODULE_HYXQFX,subtract,analysisDTO.getContext()); Boolean aBoolean = scoreService.insertScore(analysisDTO.getUserId(), Constant.PRO_SCXQWJ, Constant.MODULE_HYXQFX, subtract, analysisDTO.getContext());
// scoreService.insertScore(userId, Constant.PRO_GYQDGL, Constant.MODULE_CGXQYC, BigDecimal.valueOf(100 - errorCount), null); // scoreService.insertScore(userId, Constant.PRO_GYQDGL, Constant.MODULE_CGXQYC, BigDecimal.valueOf(100 - errorCount), null);
if(aBoolean){ if (aBoolean) {
return new ResultEntity<>(HttpStatus.OK, "提交成功"); return new ResultEntity<>(HttpStatus.OK, "提交成功");
}else { } else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "提交失败"); return new ResultEntity<>(HttpStatus.BAD_REQUEST, "提交失败");
} }
@ -151,7 +135,7 @@ public class IndustryDemandAnalysisController {
@ApiOperation("行业需求分析根据用户ID查询") @ApiOperation("行业需求分析根据用户ID查询")
@GetMapping("/selectByUserId") @GetMapping("/selectByUserId")
@AnonymousAccess @AnonymousAccess
public ResultEntity selectByUserId(@ApiParam("用户ID") String userId) { public ResultEntity selectByUserId(@ApiParam("用户ID") String userId) {
//读取文件内容 批量导入excel中 以文件名区分\ //读取文件内容 批量导入excel中 以文件名区分\
HyxqfxStuAnswerExample hyxqfxStuAnswer = new HyxqfxStuAnswerExample(); HyxqfxStuAnswerExample hyxqfxStuAnswer = new HyxqfxStuAnswerExample();
@ -160,27 +144,109 @@ public class IndustryDemandAnalysisController {
List<HyxqfxStuAnswer> hyxqfxStuAnswersList = hyxqfxStuAnswerMapper.selectByExampleWithBLOBs(hyxqfxStuAnswer); List<HyxqfxStuAnswer> hyxqfxStuAnswersList = hyxqfxStuAnswerMapper.selectByExampleWithBLOBs(hyxqfxStuAnswer);
if (CollectionUtils.isEmpty(hyxqfxStuAnswersList)) { if (CollectionUtils.isEmpty(hyxqfxStuAnswersList)) {
return new ResultEntity<>(HttpStatus.OK); return new ResultEntity<>(HttpStatus.OK);
}else { } else {
JSONObject jsonObject = JSONObject.parseObject(hyxqfxStuAnswersList.get(0).getAnswer()); JSONObject jsonObject = JSONObject.parseObject(hyxqfxStuAnswersList.get(0).getAnswer());
return new ResultEntity<>(HttpStatus.OK,jsonObject); return new ResultEntity<>(HttpStatus.OK, jsonObject);
} }
} }
@ApiOperation("重新实训") @ApiOperation("重新实训接口")
@GetMapping("/restartExperment") @GetMapping("/restartExperment")
@AnonymousAccess @AnonymousAccess
public ResultEntity restartExperment(@ApiParam("用户ID") String userId) { public ResultEntity restartExperment(@ApiParam("用户ID") String userId, @ApiParam("小模块") String module) {
Boolean b = false;
if (Constant.MODULE_HYXQFX.equals(module)) {
//查询学生答题数据,删除成绩
HyxqfxStuAnswerExample example = new HyxqfxStuAnswerExample();
example.createCriteria().andUserIdEqualTo(userId);
hyxqfxStuAnswerMapper.deleteByExample(example);
b = scoreService.deleteScore(userId, Constant.PRO_SCXQWJ, Constant.MODULE_HYXQFX);
}
//查询学生答题数据,删除成绩 if (Constant.MODULE_JZHJFX.equals(module)) {
HyxqfxStuAnswerExample example = new HyxqfxStuAnswerExample(); //查询学生答题数据,删除成绩
JzhyfxStuAnswerExample jzhyfxStuAnswerExample = new JzhyfxStuAnswerExample();
jzhyfxStuAnswerExample.createCriteria().andUserIdEqualTo(userId);
jzhyfxStuAnswerMapper.deleteByExample(jzhyfxStuAnswerExample);
b = scoreService.deleteScore(userId, Constant.PRO_SCXQWJ, Constant.MODULE_JZHJFX);
}
if (b) {
return new ResultEntity<>(HttpStatus.OK, "重新实训成功!");
} else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "重新实训失败!");
}
}
@Autowired
private JzhyfxStuAnswerMapper jzhyfxStuAnswerMapper;
@ApiOperation("竞争环境分析提交")
@PostMapping("/competitiveEnvSubmit")
@AnonymousAccess
public ResultEntity competitiveEnvSubmit(@RequestBody CompetitiveEnvDTO competitiveEnvDTO) {
//校验答案是否正确
Double answer = 0.116;
Double stuAnswer = competitiveEnvDTO.getAnswer();
int count = 0;
if (answer!=stuAnswer) {
count ++ ;
}
//查询数据库 是否已经答过题
JzhyfxStuAnswerExample example = new JzhyfxStuAnswerExample();
example.createCriteria().andUserIdEqualTo(competitiveEnvDTO.getUserId());
List<JzhyfxStuAnswer> stuAnswerList = jzhyfxStuAnswerMapper.selectByExample(example);
if (!CollectionUtils.isEmpty(stuAnswerList)) {
return new ResultEntity(HttpStatus.ACCEPTED,"请勿重复答题!");
}
//首次提交
JzhyfxStuAnswer jzhyfxStuAnswer = new JzhyfxStuAnswer();
jzhyfxStuAnswer.setUserId(competitiveEnvDTO.getUserId());
jzhyfxStuAnswer.setAnswer(stuAnswer.toString());
jzhyfxStuAnswer.setId(IdUtil.randomUUID());
jzhyfxStuAnswerMapper.insertSelective(jzhyfxStuAnswer);
Boolean aBoolean = scoreService.insertScore(competitiveEnvDTO.getUserId(), Constant.PRO_SCXQWJ, Constant.MODULE_JZHJFX, BigDecimal.valueOf(100 - count), null);
// scoreService.insertScore(userId, Constant.PRO_GYQDGL, Constant.MODULE_CGXQYC, BigDecimal.valueOf(100 - errorCount), null);
if (aBoolean) {
return new ResultEntity<>(HttpStatus.OK, "提交成功");
} else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "提交失败");
}
}
@ApiOperation("竞争环境分析根据用户ID查询")
@GetMapping("/competitiveEnvSubmitByUserId")
@AnonymousAccess
public ResultEntity competitiveEnvSubmitByUserId(@ApiParam("用户ID") String userId) {
//读取文件内容 批量导入excel中 以文件名区分\
//查询数据库 是否已经答过题
JzhyfxStuAnswerExample example = new JzhyfxStuAnswerExample();
example.createCriteria().andUserIdEqualTo(userId); example.createCriteria().andUserIdEqualTo(userId);
hyxqfxStuAnswerMapper.deleteByExample(example); List<JzhyfxStuAnswer> stuAnswerList = jzhyfxStuAnswerMapper.selectByExample(example);
if (CollectionUtils.isEmpty(stuAnswerList)) {
return new ResultEntity<>(HttpStatus.OK);
} else {
return new ResultEntity<>(HttpStatus.OK, stuAnswerList.get(0));
}
return null;
} }
} }

@ -0,0 +1,20 @@
package com.sztzjy.linkCommerce.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author 17803
* @date 2025-04-25 13:20
*/
@Data
public class CompetitiveEnvDTO {
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("学生答案")
private Double answer;
}
Loading…
Cancel
Save