Commit 74b6b20f778f6be05fd80493bed7e27af6986f82

Authored by 陈杰
1 parent 94e3820a
Exists in master

四维诊断

Showing 35 changed files with 604 additions and 37 deletions   Show diff stats
src/main/java/com/jevon/controller/LearnController.java
... ... @@ -7,6 +7,8 @@ import com.jevon.service.*;
7 7 import com.jevon.vo.BaseVo;
8 8 import com.jevon.vo.excel.ExamExcelVo;
9 9 import com.jevon.vo.excel.ScoreExcelVo;
  10 +import com.jevon.vo.rep.GetLeague;
  11 +import com.jevon.vo.rep.GetLeagueRepVo;
10 12 import com.jevon.vo.req.*;
11 13 import io.swagger.annotations.Api;
12 14 import io.swagger.annotations.ApiOperation;
... ... @@ -15,6 +17,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
15 17 import org.apache.poi.ss.usermodel.*;
16 18 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
17 19 import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.beans.factory.annotation.Value;
18 21 import org.springframework.web.bind.annotation.RequestBody;
19 22 import org.springframework.web.bind.annotation.RequestMapping;
20 23 import org.springframework.web.bind.annotation.RequestMethod;
... ... @@ -55,6 +58,11 @@ public class LearnController {
55 58 @Autowired
56 59 LeagueService leagueService;
57 60  
  61 + @Value("${remoting.url}")
  62 + private String url ;
  63 + @Value("${remoting.prefixFile}")
  64 + private String staticUrl ;
  65 +
58 66 @ApiOperation("获取列表")
59 67 @RequestMapping(value = "getList", method = RequestMethod.POST)
60 68 public List<Analyse> getList(){
... ... @@ -71,6 +79,7 @@ public class LearnController {
71 79 analyse.setExamName(createExamReqVo.getExamName());
72 80 analyse.setExamTime(createExamReqVo.getExamTime());
73 81 analyse.setCreateTime(new Date());
  82 + analyse.setGrade(createExamReqVo.getGrade());
74 83 analyseService.insert(analyse);
75 84 baseVo.setMessage(analyse.getId()+"");
76 85 return baseVo;
... ... @@ -89,6 +98,8 @@ public class LearnController {
89 98 analyse.setExamTime(updateExamReqVo.getExamTime());
90 99 analyse.setExamName(updateExamReqVo.getExamName());
91 100 analyse.setCourseName(updateExamReqVo.getCourseName());
  101 + analyse.setGrade(updateExamReqVo.getGrade());
  102 + analyseService.update(analyse);
92 103 return baseVo;
93 104 }
94 105  
... ... @@ -107,6 +118,7 @@ public class LearnController {
107 118 Float maxScore = 0f;
108 119 Analyse analyse = analyseService.selectById(initAnalyseReqVo.getAnalyseId());
109 120 String fileUrl = initAnalyseReqVo.getUrl();
  121 + fileUrl = fileUrl.replace(url, staticUrl);
110 122 File excelFile = new File(fileUrl);
111 123 // 获得工作簿
112 124 String file = excelFile.getName();
... ... @@ -207,6 +219,7 @@ public class LearnController {
207 219 scoreMap.put(analyseDetail.getQuestionNumber(),analyseDetail.getScore());
208 220 }
209 221 String fileUrl = initAnalyseReqVo.getUrl();
  222 + fileUrl = fileUrl.replace(url, staticUrl);
210 223 File excelFile = new File(fileUrl);
211 224 // 获得工作簿
212 225 String file = excelFile.getName();
... ... @@ -236,7 +249,7 @@ public class LearnController {
236 249 while (sheetRow.getCell(j) != null){
237 250 Cell cell = sheetRow.getCell(j);
238 251 cell.setCellType(CellType.STRING);
239   - map.put(j,cell.getStringCellValue().trim());
  252 + map.put(j,cell.getStringCellValue().trim().replace("(","(").replace(")",")"));
240 253 j++;
241 254 }
242 255 column = j ;
... ... @@ -304,4 +317,41 @@ public class LearnController {
304 317 leagueService.insertBatch(leagues);
305 318 return baseVo;
306 319 }
  320 +
  321 + @ApiOperation("获取该次考试联盟学校信息")
  322 + @RequestMapping(value = "getLeague", method = RequestMethod.GET)
  323 + public GetLeagueRepVo getLeague(int analyseId){
  324 + GetLeagueRepVo getLeagueRepVo = new GetLeagueRepVo();
  325 + List<League> leagues = leagueService.selectByAnalyseId(analyseId);
  326 + List<GetLeague> getLeagues = new ArrayList<>();
  327 + for(League league : leagues){
  328 + boolean isExist = false ;
  329 + for(GetLeague getLeague : getLeagues){
  330 + if(getLeague.getLeagueName().equals(league.getLeague())){
  331 + isExist = true ;
  332 + List<League> list = getLeague.getLeagues();
  333 + list.add(league);
  334 + getLeague.setLeagues(list);
  335 + }
  336 + }
  337 + if(!isExist){
  338 + GetLeague getLeague = new GetLeague();
  339 + getLeague.setLeagueName(league.getLeague());
  340 + List<League> list = new ArrayList<>();
  341 + list.add(league);
  342 + getLeague.setLeagues(list);
  343 + getLeagues.add(getLeague);
  344 + }
  345 + }
  346 + getLeagueRepVo.setData(getLeagues);
  347 + return getLeagueRepVo;
  348 + }
  349 +
  350 + @ApiOperation("更新联盟校信息")
  351 + @RequestMapping(value = "updateLeague", method = RequestMethod.POST)
  352 + public BaseVo updateLeague(@RequestBody UpdateLeagueReqVo updateLeagueReqVo){
  353 + BaseVo baseVo = new BaseVo();
  354 + leagueService.update(updateLeagueReqVo.getId(),updateLeagueReqVo.getLeague());
  355 + return baseVo;
  356 + }
307 357 }
... ...
src/main/java/com/jevon/controller/LearnStatController.java
... ... @@ -4,16 +4,19 @@ import com.jevon.enums.DifficultEnums;
4 4 import com.jevon.enums.DimensionalEnums;
5 5 import com.jevon.model.*;
6 6 import com.jevon.service.*;
  7 +import com.jevon.vo.rep.SuggestRepVo;
7 8 import com.jevon.vo.req.GetLearnReqVo;
8 9 import com.jevon.wordDTO.*;
9 10 import io.swagger.annotations.Api;
10 11 import io.swagger.annotations.ApiOperation;
  12 +import io.swagger.models.auth.In;
11 13 import org.springframework.beans.factory.annotation.Autowired;
12 14 import org.springframework.web.bind.annotation.RequestBody;
13 15 import org.springframework.web.bind.annotation.RequestMapping;
14 16 import org.springframework.web.bind.annotation.RequestMethod;
15 17 import org.springframework.web.bind.annotation.RestController;
16 18  
  19 +import java.text.DecimalFormat;
17 20 import java.util.ArrayList;
18 21 import java.util.HashMap;
19 22 import java.util.List;
... ... @@ -49,25 +52,25 @@ public class LearnStatController {
49 52 @Autowired
50 53 LeagueService leagueService;
51 54  
52   - @ApiOperation("getForm1_1")
53   - @RequestMapping(value = "getForm1_1", method = RequestMethod.POST)
54   - public List<Form7> getForm1_1(@RequestBody GetLearnReqVo getLearnReqVo){
55   - Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
56   - List<Form7> list = new ArrayList<>();
57   - Form7 form7 = new Form7();
58   - form7.setName(DifficultEnums.easy.getDifficultName());
59   - form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),DifficultEnums.easy.getDifficultType())/analyse.getMaxScore()*100);
60   - list.add(form7);
61   - Form7 form = new Form7();
62   - form.setName(DifficultEnums.medium.getDifficultName());
63   - form.setPercent(analyseDetailService.selectDifficult(analyse.getId(),DifficultEnums.medium.getDifficultType())/analyse.getMaxScore()*100);
64   - list.add(form);
65   - Form7 form2 = new Form7();
66   - form2.setName(DifficultEnums.difficult.getDifficultName());
67   - form2.setPercent(analyseDetailService.selectDifficult(analyse.getId(),DifficultEnums.difficult.getDifficultType())/analyse.getMaxScore()*100);
68   - list.add(form2);
69   - return list;
70   - }
  55 +// @ApiOperation("getForm1_1")
  56 +// @RequestMapping(value = "getForm1_1", method = RequestMethod.POST)
  57 +// public List<Form7> getForm1_1(@RequestBody GetLearnReqVo getLearnReqVo){
  58 +// Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  59 +// List<Form7> list = new ArrayList<>();
  60 +// Form7 form7 = new Form7();
  61 +// form7.setName(DifficultEnums.easy.getDifficultName());
  62 +// form7.setPercent(analyseDetailService.selectDifficult(analyse.getId(),DifficultEnums.easy.getDifficultType())/analyse.getMaxScore()*100);
  63 +// list.add(form7);
  64 +// Form7 form = new Form7();
  65 +// form.setName(DifficultEnums.medium.getDifficultName());
  66 +// form.setPercent(analyseDetailService.selectDifficult(analyse.getId(),DifficultEnums.medium.getDifficultType())/analyse.getMaxScore()*100);
  67 +// list.add(form);
  68 +// Form7 form2 = new Form7();
  69 +// form2.setName(DifficultEnums.difficult.getDifficultName());
  70 +// form2.setPercent(analyseDetailService.selectDifficult(analyse.getId(),DifficultEnums.difficult.getDifficultType())/analyse.getMaxScore()*100);
  71 +// list.add(form2);
  72 +// return list;
  73 +// }
71 74  
72 75 @ApiOperation("getForm2_1_1")
73 76 @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST)
... ... @@ -635,4 +638,131 @@ public class LearnStatController {
635 638 return repVO;
636 639 }
637 640  
  641 + private Form6RepVo initSchoolDimensional(GetLearnReqVo getLearnReqVo , int dimensionalType){
  642 + Form6RepVo repVO = new Form6RepVo();
  643 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  644 + if(analyse == null){
  645 + repVO.setSuccess(false);
  646 + repVO.setMessage("请先创建考试");
  647 + return repVO;
  648 + }
  649 + List<String> highStudent = new ArrayList<>();
  650 + List<String> lowStudent = new ArrayList<>();
  651 + List<Student> students = studentService.selectBySchoolName(analyse.getId(),null,getLearnReqVo.getSchoolName());
  652 + int number = (int) Math.floor(students.size()*0.27) ;
  653 + {
  654 + //获取本校高分段 低分段 学生编号
  655 + for (int i = 0; i < number ; i++) {
  656 + highStudent.add(students.get(i).getStudentNumber());
  657 + }
  658 + for(int i =students.size()-number ; i < students.size() ; i++){
  659 + lowStudent.add(students.get(i).getStudentNumber());
  660 + }
  661 + }
  662 + List<Form6> list = new ArrayList<>();
  663 + List<Dimensional> knowledgeList = dimensionalService.selectByAnalyse(analyse.getId(),dimensionalType);
  664 + for(Dimensional dimensional : knowledgeList){
  665 + Form6 form6 = new Form6();
  666 + form6.setDimensional(dimensional.getDimensionalName());
  667 + List<AnalyseDimensional> analyseDimensionals = analyseDimensionalService.selectByDimensional(analyse.getId(),dimensional.getId());
  668 + Double score = 0d;
  669 + StringBuffer examNumber = new StringBuffer();
  670 + List<String> examNumberList = new ArrayList<>();
  671 + for(AnalyseDimensional analyseDimensional :analyseDimensionals){
  672 + score = score + analyseDimensional.getScore() ;
  673 + examNumber.append(analyseDimensional.getQuestionNumber()).append(",");
  674 + examNumberList.add(analyseDimensional.getQuestionNumber());
  675 + }
  676 + Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),null,getLearnReqVo.getSchoolName(),examNumberList);
  677 + int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,examNumberList,highStudent);
  678 + int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),null,getLearnReqVo.getSchoolName() ,examNumberList,lowStudent);
  679 + form6.setScore(score);
  680 + form6.setSchoolRate(schoolSumScore / new Double(students.size()) / score);
  681 + form6.setSchoolAvg(schoolSumScore / new Double(students.size()));
  682 + form6.setSchoolDist(new Double(high-low) / new Double(number * analyseDimensionals.size()));
  683 + form6.setExamNumber(examNumber.toString().substring(0,examNumber.toString().length()-1));
  684 + list.add(form6);
  685 + }
  686 + repVO.setData(list);
  687 + return repVO;
  688 + }
  689 +
  690 + @ApiOperation("获取教学改进建议")
  691 + @RequestMapping(value = "getSuggest", method = RequestMethod.POST)
  692 + public SuggestRepVo getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){
  693 + SuggestRepVo suggestRepVo = new SuggestRepVo() ;
  694 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  695 + Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ;
  696 + DecimalFormat df = new DecimalFormat("#.00");
  697 + //得分率
  698 + String avgStr = df.format(avg / analyse.getMaxScore());
  699 +
  700 + List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName());
  701 + int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f);
  702 + //优秀率
  703 + String aStr = df.format(new Double(a) / new Double(students.size()) * 100);
  704 + suggestRepVo.setDifficultyDegree(avgStr);
  705 + suggestRepVo.setExcellentRate(aStr);
  706 + suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size()));
  707 + Form6RepVo knowledge = initSchoolDimensional(getLearnReqVo,DimensionalEnums.knowledge.getDimensionalType());
  708 + List<String> lessKnowledgeList = new ArrayList<>(); //不足50%
  709 + List<String> midKnowledgeList = new ArrayList<>(); //50-70%
  710 + for(Form6 form6 :knowledge.getData()){
  711 + if(form6.getSchoolRate() < 0.5d){
  712 + lessKnowledgeList.add(form6.getDimensional());
  713 + }else if(form6.getSchoolRate() < 0.7d){
  714 + midKnowledgeList.add(form6.getDimensional());
  715 + }
  716 + }
  717 + suggestRepVo.setLessKnowledgeList(lessKnowledgeList);
  718 + suggestRepVo.setMidKnowledgeList(midKnowledgeList);
  719 + Form6RepVo ability = initSchoolDimensional(getLearnReqVo,DimensionalEnums.ability.getDimensionalType());
  720 + List<String> lessAbilityList = new ArrayList<>(); //不足70%
  721 + List<String> midAbilityList = new ArrayList<>(); //70-80%
  722 + List<String> highAbilityList = new ArrayList<>(); //大于80%
  723 + for(Form6 form6 :ability.getData()){
  724 + if(form6.getSchoolRate() < 0.7d){
  725 + lessAbilityList.add(form6.getDimensional());
  726 + }else if(form6.getSchoolRate() < 0.8d){
  727 + midAbilityList.add(form6.getDimensional());
  728 + }else if(form6.getSchoolRate() >= 0.8d){
  729 + highAbilityList.add(form6.getDimensional());
  730 + }
  731 + }
  732 + suggestRepVo.setLessAbilityList(lessAbilityList);
  733 + suggestRepVo.setMidAbilityList(midAbilityList);
  734 + suggestRepVo.setHighAbilityList(highAbilityList);
  735 + Form6RepVo skill = initSchoolDimensional(getLearnReqVo,DimensionalEnums.skill.getDimensionalType());
  736 + List<String> lessSkillList = new ArrayList<>(); //不足70%
  737 + List<String> midSkillList = new ArrayList<>(); //70-80%
  738 + List<String> highSkillList = new ArrayList<>(); //大于80%
  739 + for(Form6 form6 :skill.getData()){
  740 + if(form6.getSchoolRate() < 0.7d){
  741 + lessSkillList.add(form6.getDimensional());
  742 + }else if(form6.getSchoolRate() < 0.8d){
  743 + midSkillList.add(form6.getDimensional());
  744 + }else if(form6.getSchoolRate() >= 0.8d){
  745 + highSkillList.add(form6.getDimensional());
  746 + }
  747 + }
  748 + suggestRepVo.setLessSkillList(lessSkillList);
  749 + suggestRepVo.setMidSkillList(midSkillList);
  750 + suggestRepVo.setHighSkillList(highSkillList);
  751 + return suggestRepVo;
  752 + }
  753 +
  754 + public List<String> getErrorRate(int analyseId , String schoolName , int studentSize){
  755 + List<String> errorList = new ArrayList<>();
  756 + List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyseId);
  757 + double errorNumber = Math.ceil(studentSize * 0.15) ;
  758 + for(AnalyseDetail analyseDetail :analyseDetails){
  759 + if("选择题".equals(analyseDetail.getQuestionType())){
  760 + int number = studentDetailService.selectTrueByExamNumber(analyseId,schoolName,analyseDetail.getQuestionNumber());
  761 + if(errorNumber < (studentSize-number)){
  762 + errorList.add(analyseDetail.getQuestionNumber());
  763 + }
  764 + }
  765 + }
  766 + return errorList;
  767 + }
638 768 }
... ...
src/main/java/com/jevon/mapper/LeagueMapper.java
... ... @@ -13,5 +13,7 @@ public interface LeagueMapper {
13 13  
14 14 int insertBatch(List<League> list);
15 15  
  16 + int update(League league);
  17 +
16 18 List<League> selectByLeague(League league);
17 19 }
... ...
src/main/java/com/jevon/model/Analyse.java
... ... @@ -15,6 +15,7 @@ public class Analyse {
15 15 private String courseName ;
16 16 private Date createTime ;
17 17 private Double maxScore ;
  18 + private String grade ;
18 19  
19 20 public int getId() {
20 21 return id;
... ... @@ -63,4 +64,12 @@ public class Analyse {
63 64 public void setMaxScore(Double maxScore) {
64 65 this.maxScore = maxScore;
65 66 }
  67 +
  68 + public String getGrade() {
  69 + return grade;
  70 + }
  71 +
  72 + public void setGrade(String grade) {
  73 + this.grade = grade;
  74 + }
66 75 }
... ...
src/main/java/com/jevon/service/LeagueService.java
... ... @@ -13,6 +13,8 @@ public interface LeagueService {
13 13  
14 14 int insertBatch(List<League> list);
15 15  
  16 + int update(int id , String league);
  17 +
16 18 List<League> selectByAnalyseId(int analyseId);
17 19  
18 20 List<String> getLeagueBySchoolName(int analyseId , String schoolName);
... ...
src/main/java/com/jevon/service/StudentDetailService.java
... ... @@ -17,6 +17,8 @@ public interface StudentDetailService {
17 17  
18 18 Double selectSumScore(int analyseId, List<String> league , String schoolName, List<String> examNumbers);
19 19  
  20 + int selectTrueByExamNumber(int analyseId , String schoolName , String examNumber);
  21 +
20 22 int selectTrueByExamNumber(int analyseId , List<String> league , String schoolName , String examNumber , List<String> studentNumbers);
21 23  
22 24 int selectTrueByExamNumber(int analyseId , List<String> league , String schoolName , List<String> examNumbers , List<String> studentNumbers);
... ...
src/main/java/com/jevon/service/impl/LeagueServiceImpl.java
... ... @@ -26,6 +26,14 @@ public class LeagueServiceImpl implements LeagueService {
26 26 }
27 27  
28 28 @Override
  29 + public int update(int id, String league) {
  30 + League update = new League();
  31 + update.setId(id);
  32 + update.setLeague(league);
  33 + return leagueMapper.update(update);
  34 + }
  35 +
  36 + @Override
29 37 public List<League> selectByAnalyseId(int analyseId) {
30 38 League league = new League();
31 39 league.setAnalyseId(analyseId);
... ...
src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java
... ... @@ -46,6 +46,7 @@ public class StudentDetailServiceImpl implements StudentDetailService {
46 46 return studentDetailMapper.selectSumScore(studentDetail);
47 47 }
48 48  
  49 +
49 50 @Override
50 51 public Double selectSumScore(int analyseId, List<String> league, String schoolName, List<String> examNumbers) {
51 52 StudentDetail studentDetail = new StudentDetail();
... ... @@ -57,6 +58,15 @@ public class StudentDetailServiceImpl implements StudentDetailService {
57 58 }
58 59  
59 60 @Override
  61 + public int selectTrueByExamNumber(int analyseId, String schoolName, String examNumber) {
  62 + StudentDetail studentDetail = new StudentDetail();
  63 + studentDetail.setAnalyseId(analyseId);
  64 + studentDetail.setSchoolName(schoolName);
  65 + studentDetail.setExamNumber(examNumber);
  66 + return studentDetailMapper.selectTrueByExamNumber(studentDetail);
  67 + }
  68 +
  69 + @Override
60 70 public int selectTrueByExamNumber(int analyseId,List<String> league , String schoolName, String examNumber, List<String> studentNumbers) {
61 71 StudentDetail studentDetail = new StudentDetail();
62 72 studentDetail.setAnalyseId(analyseId);
... ...
src/main/java/com/jevon/vo/rep/GetLeague.java 0 → 100644
... ... @@ -0,0 +1,32 @@
  1 +package com.jevon.vo.rep;
  2 +
  3 +import com.jevon.model.League;
  4 +
  5 +import java.util.List;
  6 +
  7 +/**
  8 + * @author chen
  9 + * @version 1.0
  10 + * @date 2019/10/22 0022 15:46
  11 + */
  12 +public class GetLeague {
  13 +
  14 + private String leagueName ;
  15 + private List<League> leagues ;
  16 +
  17 + public String getLeagueName() {
  18 + return leagueName;
  19 + }
  20 +
  21 + public void setLeagueName(String leagueName) {
  22 + this.leagueName = leagueName;
  23 + }
  24 +
  25 + public List<League> getLeagues() {
  26 + return leagues;
  27 + }
  28 +
  29 + public void setLeagues(List<League> leagues) {
  30 + this.leagues = leagues;
  31 + }
  32 +}
... ...
src/main/java/com/jevon/vo/rep/GetLeagueRepVo.java 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +package com.jevon.vo.rep;
  2 +
  3 +import com.jevon.vo.BaseVo;
  4 +
  5 +import java.util.List;
  6 +
  7 +/**
  8 + * @author chen
  9 + * @version 1.0
  10 + * @date 2019/10/22 0022 15:48
  11 + */
  12 +public class GetLeagueRepVo extends BaseVo {
  13 +
  14 + private List<GetLeague> data ;
  15 +
  16 + public List<GetLeague> getData() {
  17 + return data;
  18 + }
  19 +
  20 + public void setData(List<GetLeague> data) {
  21 + this.data = data;
  22 + }
  23 +}
... ...
src/main/java/com/jevon/vo/rep/SuggestRepVo.java 0 → 100644
... ... @@ -0,0 +1,135 @@
  1 +package com.jevon.vo.rep;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * @author chen
  10 + * @version 1.0
  11 + * @date 2019/10/23 0023 9:04
  12 + */
  13 +@ApiModel
  14 +public class SuggestRepVo {
  15 + @ApiModelProperty(value = "总体情况")
  16 + private String assess ;
  17 + @ApiModelProperty(value = "难度系数")
  18 + private String difficultyDegree ;
  19 + @ApiModelProperty(value = "优秀率")
  20 + private String excellentRate ;
  21 + @ApiModelProperty(value = "知识点得分率不到50%的")
  22 + private List<String> lessKnowledgeList ;
  23 + @ApiModelProperty(value = "知识点得分率不到70%")
  24 + private List<String> midKnowledgeList ;
  25 + @ApiModelProperty(value = "学习能力得分率<69%")
  26 + private List<String> lessAbilityList ;
  27 + @ApiModelProperty(value = "学习能力得分率在70%≤η<80%")
  28 + private List<String> midAbilityList ;
  29 + @ApiModelProperty(value = "学习能力得分率≥80%")
  30 + private List<String> highAbilityList ;
  31 + @ApiModelProperty(value = "探究技能方面得分率<69%")
  32 + private List<String> lessSkillList ;
  33 + @ApiModelProperty(value = "探究技能方面得分率在70%≤η<80%")
  34 + private List<String> midSkillList ;
  35 + @ApiModelProperty(value = "探究技能方面得分率≥80%")
  36 + private List<String> highSkillList ;
  37 + @ApiModelProperty(value = "选择题错误率>15%")
  38 + private List<String> errorList ;
  39 +
  40 + public List<String> getErrorList() {
  41 + return errorList;
  42 + }
  43 +
  44 + public void setErrorList(List<String> errorList) {
  45 + this.errorList = errorList;
  46 + }
  47 +
  48 + public String getAssess() {
  49 + return assess;
  50 + }
  51 +
  52 + public void setAssess(String assess) {
  53 + this.assess = assess;
  54 + }
  55 +
  56 + public String getDifficultyDegree() {
  57 + return difficultyDegree;
  58 + }
  59 +
  60 + public void setDifficultyDegree(String difficultyDegree) {
  61 + this.difficultyDegree = difficultyDegree;
  62 + }
  63 +
  64 + public String getExcellentRate() {
  65 + return excellentRate;
  66 + }
  67 +
  68 + public void setExcellentRate(String excellentRate) {
  69 + this.excellentRate = excellentRate;
  70 + }
  71 +
  72 + public List<String> getLessKnowledgeList() {
  73 + return lessKnowledgeList;
  74 + }
  75 +
  76 + public void setLessKnowledgeList(List<String> lessKnowledgeList) {
  77 + this.lessKnowledgeList = lessKnowledgeList;
  78 + }
  79 +
  80 + public List<String> getMidKnowledgeList() {
  81 + return midKnowledgeList;
  82 + }
  83 +
  84 + public void setMidKnowledgeList(List<String> midKnowledgeList) {
  85 + this.midKnowledgeList = midKnowledgeList;
  86 + }
  87 +
  88 + public List<String> getLessAbilityList() {
  89 + return lessAbilityList;
  90 + }
  91 +
  92 + public void setLessAbilityList(List<String> lessAbilityList) {
  93 + this.lessAbilityList = lessAbilityList;
  94 + }
  95 +
  96 + public List<String> getMidAbilityList() {
  97 + return midAbilityList;
  98 + }
  99 +
  100 + public void setMidAbilityList(List<String> midAbilityList) {
  101 + this.midAbilityList = midAbilityList;
  102 + }
  103 +
  104 + public List<String> getHighAbilityList() {
  105 + return highAbilityList;
  106 + }
  107 +
  108 + public void setHighAbilityList(List<String> highAbilityList) {
  109 + this.highAbilityList = highAbilityList;
  110 + }
  111 +
  112 + public List<String> getLessSkillList() {
  113 + return lessSkillList;
  114 + }
  115 +
  116 + public void setLessSkillList(List<String> lessSkillList) {
  117 + this.lessSkillList = lessSkillList;
  118 + }
  119 +
  120 + public List<String> getMidSkillList() {
  121 + return midSkillList;
  122 + }
  123 +
  124 + public void setMidSkillList(List<String> midSkillList) {
  125 + this.midSkillList = midSkillList;
  126 + }
  127 +
  128 + public List<String> getHighSkillList() {
  129 + return highSkillList;
  130 + }
  131 +
  132 + public void setHighSkillList(List<String> highSkillList) {
  133 + this.highSkillList = highSkillList;
  134 + }
  135 +}
... ...
src/main/java/com/jevon/vo/req/CreateExamReqVo.java
1 1 package com.jevon.vo.req;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/18 0018 14:48
7 10 */
  11 +@ApiModel
8 12 public class CreateExamReqVo {
9   -
  13 + @ApiModelProperty(value="考试名称")
10 14 private String examName ;
  15 + @ApiModelProperty(value="学科")
11 16 private String courseName ;
  17 + @ApiModelProperty(value="考试时间")
12 18 private String examTime ;
  19 + @ApiModelProperty(value="年级")
  20 + private String grade ;
13 21  
14 22 public String getExamName() {
15 23 return examName;
... ... @@ -34,4 +42,12 @@ public class CreateExamReqVo {
34 42 public void setExamTime(String examTime) {
35 43 this.examTime = examTime;
36 44 }
  45 +
  46 + public String getGrade() {
  47 + return grade;
  48 + }
  49 +
  50 + public void setGrade(String grade) {
  51 + this.grade = grade;
  52 + }
37 53 }
... ...
src/main/java/com/jevon/vo/req/GetLearnReqVo.java
1 1 package com.jevon.vo.req;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/18 0018 14:57
7 10 */
  11 +@ApiModel
8 12 public class GetLearnReqVo {
9   -
  13 + @ApiModelProperty(value="考试主键")
10 14 private int analyseId ;
  15 + @ApiModelProperty(value="学校名称")
11 16 private String schoolName ;
12 17  
13 18 public int getAnalyseId() {
... ...
src/main/java/com/jevon/vo/req/InitLeague.java
1 1 package com.jevon.vo.req;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 import java.util.List;
4 7  
5 8 /**
... ... @@ -7,9 +10,11 @@ import java.util.List;
7 10 * @version 1.0
8 11 * @date 2019/10/22 0022 9:28
9 12 */
  13 +@ApiModel
10 14 public class InitLeague {
11   -
  15 + @ApiModelProperty(value="联盟名称")
12 16 private String league ;
  17 + @ApiModelProperty(value="联盟校集合")
13 18 private List<String> schoolNames ;
14 19  
15 20 public String getLeague() {
... ...
src/main/java/com/jevon/vo/req/UpdateExamReqVo.java
1 1 package com.jevon.vo.req;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/18 0018 14:53
7 10 */
  11 +@ApiModel
8 12 public class UpdateExamReqVo extends CreateExamReqVo{
9 13  
  14 + @ApiModelProperty(value="主键")
10 15 private int analyseId ;
11 16  
12 17 public int getAnalyseId() {
... ...
src/main/java/com/jevon/vo/req/UpdateLeagueReqVo.java 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +package com.jevon.vo.req;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/22 0022 16:04
  7 + */
  8 +public class UpdateLeagueReqVo {
  9 +
  10 + private int id ;
  11 + private String league ;
  12 +
  13 + public int getId() {
  14 + return id;
  15 + }
  16 +
  17 + public void setId(int id) {
  18 + this.id = id;
  19 + }
  20 +
  21 + public String getLeague() {
  22 + return league;
  23 + }
  24 +
  25 + public void setLeague(String league) {
  26 + this.league = league;
  27 + }
  28 +}
... ...
src/main/java/com/jevon/wordDTO/Form1.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/18 0018 15:37
7 10 */
  11 +@ApiModel
8 12 public class Form1 {
9 13  
  14 + @ApiModelProperty(value="等级")
10 15 private String level ;
  16 + @ApiModelProperty(value="人数")
11 17 private int number ;
  18 + @ApiModelProperty(value="比例")
12 19 private double prop ;
13 20  
14 21 public String getLevel() {
... ...
src/main/java/com/jevon/wordDTO/Form1RepVO.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 import java.util.List;
4 7 import java.util.Map;
5 8  
... ... @@ -8,9 +11,12 @@ import java.util.Map;
8 11 * @version 1.0
9 12 * @date 2019/10/18 0018 15:46
10 13 */
  14 +@ApiModel
11 15 public class Form1RepVO {
12 16  
  17 + @ApiModelProperty(value="分数段区间")
13 18 private Map<String ,String> map ;
  19 + @ApiModelProperty(value="分数段详情")
14 20 private List<Form1> list ;
15 21  
16 22 public Map<String, String> getMap() {
... ...
src/main/java/com/jevon/wordDTO/Form2.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/18 0018 16:10
7 10 */
  11 +@ApiModel
8 12 public class Form2 {
9 13  
  14 + @ApiModelProperty(value="名称")
10 15 private String name ;
  16 + @ApiModelProperty(value="参考人数")
11 17 private int studentNumber ;
  18 + @ApiModelProperty(value="参考人数占比")
12 19 private double studentProp ;
  20 + @ApiModelProperty(value="高分段人数")
13 21 private int highNumber ;
  22 + @ApiModelProperty(value="高分段人数占比")
14 23 private double highProp ;
  24 + @ApiModelProperty(value="低分段人数")
15 25 private int lowNumber ;
  26 + @ApiModelProperty(value="低分段人数占比")
16 27 private double lowProp ;
17 28  
18 29 public String getName() {
... ...
src/main/java/com/jevon/wordDTO/Form2RepVO.java
1 1 package com.jevon.wordDTO;
2 2  
3 3 import com.jevon.vo.BaseVo;
  4 +import io.swagger.annotations.ApiModel;
  5 +import io.swagger.annotations.ApiModelProperty;
4 6  
5 7 import java.util.List;
6 8  
... ... @@ -9,8 +11,9 @@ import java.util.List;
9 11 * @version 1.0
10 12 * @date 2019/10/22 0022 9:51
11 13 */
  14 +@ApiModel
12 15 public class Form2RepVO extends BaseVo {
13   -
  16 + @ApiModelProperty(value="数据")
14 17 private List<Form2> data ;
15 18  
16 19 public List<Form2> getData() {
... ...
src/main/java/com/jevon/wordDTO/Form3.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/21 0021 9:03
7 10 */
  11 +@ApiModel
8 12 public class Form3 {
9 13  
  14 + @ApiModelProperty(value="名称")
10 15 private String name ;
  16 + @ApiModelProperty(value="最高分")
11 17 private Double maxScore ;
  18 + @ApiModelProperty(value="平均分")
12 19 private Double average ;
  20 + @ApiModelProperty(value="最低分")
13 21 private Double minScore ;
  22 + @ApiModelProperty(value="优秀率")
14 23 private Double apercent ;
  24 + @ApiModelProperty(value="良好率")
15 25 private Double bpercent ;
  26 + @ApiModelProperty(value="及格率")
16 27 private Double cpercent ;
  28 + @ApiModelProperty(value="不及格率")
17 29 private Double dpercent ;
18 30  
19 31 public String getName() {
... ...
src/main/java/com/jevon/wordDTO/Form4.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/21 0021 9:51
7 10 */
  11 +@ApiModel
8 12 public class Form4 {
9 13  
  14 + @ApiModelProperty(value="名称")
10 15 private String name ;
  16 + @ApiModelProperty(value="众数")
11 17 private Double modeNumber ;
  18 + @ApiModelProperty(value="中位数")
12 19 private Double medianNumber ;
  20 + @ApiModelProperty(value="标准差")
13 21 private Double stdev ;
  22 + @ApiModelProperty(value="平均分")
14 23 private Double avgNumber ;
15 24  
16 25 public String getName() {
... ...
src/main/java/com/jevon/wordDTO/Form4RepVO.java
1 1 package com.jevon.wordDTO;
2 2  
3 3 import com.jevon.vo.BaseVo;
  4 +import io.swagger.annotations.ApiModel;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -9,6 +10,7 @@ import java.util.List;
9 10 * @version 1.0
10 11 * @date 2019/10/22 0022 10:23
11 12 */
  13 +@ApiModel
12 14 public class Form4RepVO extends BaseVo {
13 15  
14 16 private List<Form4> data ;
... ...
src/main/java/com/jevon/wordDTO/Form5.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/21 0021 9:59
7 10 */
  11 +@ApiModel
8 12 public class Form5 {
9   -
  13 + @ApiModelProperty(value="题号")
10 14 private String examNumber ;
  15 + @ApiModelProperty(value="难度")
11 16 private String difficultName ;
  17 + @ApiModelProperty(value="分值")
12 18 private Double score ;
  19 + @ApiModelProperty(value="得分率 区")
13 20 private Double allRate ;
  21 + @ApiModelProperty(value="得分率 联盟校")
14 22 private Double leagueRate ;
  23 + @ApiModelProperty(value="得分率 本校")
15 24 private Double schoolRate ;
  25 + @ApiModelProperty(value="平均分 区")
16 26 private Double allAvg ;
  27 + @ApiModelProperty(value="平均分 联盟校")
17 28 private Double leagueAvg ;
  29 + @ApiModelProperty(value="平均分 本校")
18 30 private Double schoolAvg ;
  31 + @ApiModelProperty(value="区分度 区")
19 32 private Double allDist ;
  33 + @ApiModelProperty(value="区分度 联盟校")
20 34 private Double leagueDist ;
  35 + @ApiModelProperty(value="区分度 本校")
21 36 private Double schoolDist ;
22 37  
  38 +
23 39 public String getExamNumber() {
24 40 return examNumber;
25 41 }
... ...
src/main/java/com/jevon/wordDTO/Form5RepVO.java
1 1 package com.jevon.wordDTO;
2 2  
3 3 import com.jevon.vo.BaseVo;
  4 +import io.swagger.annotations.ApiModel;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -9,6 +10,7 @@ import java.util.List;
9 10 * @version 1.0
10 11 * @date 2019/10/22 0022 10:28
11 12 */
  13 +@ApiModel
12 14 public class Form5RepVO extends BaseVo {
13 15  
14 16 private List<Form5> data ;
... ...
src/main/java/com/jevon/wordDTO/Form6.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/21 0021 11:25
7 10 */
  11 +@ApiModel
8 12 public class Form6 {
  13 + @ApiModelProperty(value="维度名称")
9 14 private String dimensional ;
  15 + @ApiModelProperty(value="分值")
10 16 private Double score ;
  17 + @ApiModelProperty(value="得分率 区")
11 18 private Double allRate ;
  19 + @ApiModelProperty(value="得分率 联盟校")
12 20 private Double leagueRate ;
  21 + @ApiModelProperty(value="得分率 本校")
13 22 private Double schoolRate ;
  23 + @ApiModelProperty(value="平均分 区")
14 24 private Double allAvg ;
  25 + @ApiModelProperty(value="平均分 联盟校")
15 26 private Double leagueAvg ;
  27 + @ApiModelProperty(value="平均分 本校")
16 28 private Double schoolAvg ;
  29 + @ApiModelProperty(value="区分度 区")
17 30 private Double allDist ;
  31 + @ApiModelProperty(value="区分度 联盟校")
18 32 private Double leagueDist ;
  33 + @ApiModelProperty(value="区分度 本校")
19 34 private Double schoolDist ;
20 35  
  36 +
21 37 private String examNumber ;
22 38  
23 39  
... ...
src/main/java/com/jevon/wordDTO/Form6RepVo.java
1 1 package com.jevon.wordDTO;
2 2  
3 3 import com.jevon.vo.BaseVo;
  4 +import io.swagger.annotations.ApiModel;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -9,6 +10,7 @@ import java.util.List;
9 10 * @version 1.0
10 11 * @date 2019/10/22 0022 10:51
11 12 */
  13 +@ApiModel
12 14 public class Form6RepVo extends BaseVo {
13 15  
14 16 private List<Form6> data ;
... ...
src/main/java/com/jevon/wordDTO/Form7.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +
3 5 /**
4 6 * @author chen
5 7 * @version 1.0
6 8 * @date 2019/10/21 0021 14:58
7 9 */
  10 +@ApiModel
8 11 public class Form7 {
9 12  
10 13 private String name ;
... ...
src/main/java/com/jevon/wordDTO/Form8.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/21 0021 15:14
7 10 */
  11 +@ApiModel
8 12 public class Form8 {
9 13  
  14 + @ApiModelProperty(value="题目难度")
10 15 private String difficultName ;
  16 + @ApiModelProperty(value="分值")
11 17 private Double score ;
  18 + @ApiModelProperty(value="得分率 区")
12 19 private Double allRate ;
  20 + @ApiModelProperty(value="得分率 联盟校")
13 21 private Double leagueRate ;
  22 + @ApiModelProperty(value="得分率 本校")
14 23 private Double schoolRate ;
15 24  
16 25 public String getDifficultName() {
... ...
src/main/java/com/jevon/wordDTO/Form8RepVO.java
1 1 package com.jevon.wordDTO;
2 2  
3 3 import com.jevon.vo.BaseVo;
  4 +import io.swagger.annotations.ApiModel;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -9,6 +10,7 @@ import java.util.List;
9 10 * @version 1.0
10 11 * @date 2019/10/22 0022 10:47
11 12 */
  13 +@ApiModel
12 14 public class Form8RepVO extends BaseVo {
13 15  
14 16 private List<Form8> data ;
... ...
src/main/java/com/jevon/wordDTO/Table1.java
1 1 package com.jevon.wordDTO;
2 2  
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +
3 6 /**
4 7 * @author chen
5 8 * @version 1.0
6 9 * @date 2019/10/21 0021 8:34
7 10 */
  11 +@ApiModel
8 12 public class Table1 {
9   -
  13 + @ApiModelProperty(value="分数段")
10 14 private String score ;
  15 + @ApiModelProperty(value="人数")
11 16 private int number ;
12 17  
13 18 public String getScore() {
... ...
src/main/java/com/jevon/wordDTO/test.java
... ... @@ -1,9 +0,0 @@
1   -package com.jevon.wordDTO;
2   -
3   -/**
4   - * @author chen
5   - * @version 1.0
6   - * @date 2019/10/18 0018 15:36
7   - */
8   -public class test {
9   -}
src/main/resources/mapping/AnalyseMapper.xml
... ... @@ -8,11 +8,12 @@
8 8 <result column="course_name" property="courseName" jdbcType="VARCHAR" />
9 9 <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
10 10 <result column="max_score" property="maxScore" jdbcType="FLOAT" />
  11 + <result column="grade" property="grade" jdbcType="VARCHAR" />
11 12 </resultMap>
12 13  
13 14 <insert id="insert" parameterType="com.jevon.model.Analyse" useGeneratedKeys="true" keyProperty="id">
14   - insert into sz_learn_analyse (exam_name, exam_time,course_name,create_time)
15   - values (#{examName},#{examTime},#{courseName},#{createTime})
  15 + insert into sz_learn_analyse (exam_name, exam_time,course_name,create_time,grade)
  16 + values (#{examName},#{examTime},#{courseName},#{createTime},#{grade})
16 17 </insert>
17 18  
18 19 <update id="update" parameterType="com.jevon.model.Analyse">
... ... @@ -24,6 +25,9 @@
24 25 <if test="examTime != null" >
25 26 exam_time = #{examTime},
26 27 </if>
  28 + <if test="grade != null" >
  29 + grade = #{grade},
  30 + </if>
27 31 <if test="maxScore != 0" >
28 32 max_score = #{maxScore},
29 33 </if>
... ...
src/main/resources/mapping/LeagueMapper.xml
... ... @@ -16,6 +16,10 @@
16 16 </foreach>
17 17 </insert>
18 18  
  19 + <update id="update" parameterType="com.jevon.model.League">
  20 + update sz_learn_league set league = #{league} where id = #{id}
  21 + </update>
  22 +
19 23 <select id="selectByLeague" parameterType="com.jevon.model.League" resultMap="BaseResultMap">
20 24 select * from sz_learn_league
21 25 <where>
... ...
src/main/resources/mapping/StudentDetailMapper.xml
... ... @@ -86,4 +86,5 @@
86 86 and correct = 1
87 87 </select>
88 88  
  89 +
89 90 </mapper>
90 91 \ No newline at end of file
... ...