Commit e6e6895df48d7fe8027027d418c3f6557d01f2b5

Authored by 陈杰
1 parent ef5c16a0
Exists in master

学科考试概况

src/main/java/com/jevon/controller/LearnController.java
@@ -140,7 +140,7 @@ public class LearnController { @@ -140,7 +140,7 @@ public class LearnController {
140 analyseDetail.setAnalyseId(analyse.getId()); 140 analyseDetail.setAnalyseId(analyse.getId());
141 analyseDetail.setQuestionType(examExcelVo.getQuestionType()); 141 analyseDetail.setQuestionType(examExcelVo.getQuestionType());
142 analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); 142 analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult()));
143 - analyseDetail.setScore(new Float(examExcelVo.getScore())); 143 + analyseDetail.setScore(new Double(examExcelVo.getScore()));
144 analyseDetail.setCreateTime(date); 144 analyseDetail.setCreateTime(date);
145 analyseDetails.add(analyseDetail); 145 analyseDetails.add(analyseDetail);
146 initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); 146 initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals);
@@ -151,7 +151,7 @@ public class LearnController { @@ -151,7 +151,7 @@ public class LearnController {
151 } 151 }
152 analyseDetailService.insertBatch(analyseDetails); 152 analyseDetailService.insertBatch(analyseDetails);
153 analyseDimensionalService.insertBatch(analyseDimensionals); 153 analyseDimensionalService.insertBatch(analyseDimensionals);
154 - analyse.setMaxScore(maxScore); 154 + analyse.setMaxScore(new Double(maxScore));
155 analyseService.update(analyse); 155 analyseService.update(analyse);
156 }catch (Exception e){ 156 }catch (Exception e){
157 System.out.println(e); 157 System.out.println(e);
src/main/java/com/jevon/controller/LearnStatController.java
1 package com.jevon.controller; 1 package com.jevon.controller;
2 2
3 import com.jevon.model.Analyse; 3 import com.jevon.model.Analyse;
  4 +import com.jevon.model.AnalyseDetail;
4 import com.jevon.model.Student; 5 import com.jevon.model.Student;
5 import com.jevon.service.*; 6 import com.jevon.service.*;
  7 +import com.jevon.vo.BaseVo;
6 import com.jevon.vo.req.GetLearnReqVo; 8 import com.jevon.vo.req.GetLearnReqVo;
7 -import com.jevon.wordDTO.second.Form1;  
8 -import com.jevon.wordDTO.second.Form1RepVo;  
9 -import com.jevon.wordDTO.second.Form2; 9 +import com.jevon.wordDTO.second.*;
10 import io.swagger.annotations.Api; 10 import io.swagger.annotations.Api;
11 import io.swagger.annotations.ApiOperation; 11 import io.swagger.annotations.ApiOperation;
12 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,14 +47,14 @@ public class LearnStatController { @@ -47,14 +47,14 @@ public class LearnStatController {
47 @Autowired 47 @Autowired
48 StudentService studentService; 48 StudentService studentService;
49 49
50 - @ApiOperation("getForm2_1")  
51 - @RequestMapping(value = "getForm2_1", method = RequestMethod.POST)  
52 - public Form1RepVo getForm2_1(@RequestBody GetLearnReqVo getLearnReqVo){ 50 + @ApiOperation("getForm2_1_1")
  51 + @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST)
  52 + public Form1RepVo getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){
53 Form1RepVo form1RepVo = new Form1RepVo(); 53 Form1RepVo form1RepVo = new Form1RepVo();
54 //2.1表 54 //2.1表
55 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); 55 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
56 //分数段 56 //分数段
57 - float maxScore = analyse.getMaxScore(); 57 + Double maxScore = analyse.getMaxScore();
58 Map<String,String> segmentMap = new HashMap<>(); 58 Map<String,String> segmentMap = new HashMap<>();
59 segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); 59 segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分");
60 segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); 60 segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分");
@@ -71,19 +71,19 @@ public class LearnStatController { @@ -71,19 +71,19 @@ public class LearnStatController {
71 Form1 formA = new Form1(); 71 Form1 formA = new Form1();
72 formA.setLevel("A"); 72 formA.setLevel("A");
73 formA.setNumber(a); 73 formA.setNumber(a);
74 - formA.setProp(a/sum); 74 + formA.setProp(a/sum*100);
75 Form1 formB = new Form1(); 75 Form1 formB = new Form1();
76 formB.setLevel("B"); 76 formB.setLevel("B");
77 formB.setNumber(b); 77 formB.setNumber(b);
78 - formB.setProp(b/sum); 78 + formB.setProp(b/sum*100);
79 Form1 formC = new Form1(); 79 Form1 formC = new Form1();
80 formC.setLevel("C"); 80 formC.setLevel("C");
81 formC.setNumber(c); 81 formC.setNumber(c);
82 - formC.setProp(c/sum); 82 + formC.setProp(c/sum*100);
83 Form1 formD = new Form1(); 83 Form1 formD = new Form1();
84 formD.setLevel("D"); 84 formD.setLevel("D");
85 formD.setNumber(d); 85 formD.setNumber(d);
86 - formD.setProp(d/sum); 86 + formD.setProp(d/sum*100);
87 form1List.add(formA); 87 form1List.add(formA);
88 form1List.add(formB); 88 form1List.add(formB);
89 form1List.add(formC); 89 form1List.add(formC);
@@ -92,9 +92,9 @@ public class LearnStatController { @@ -92,9 +92,9 @@ public class LearnStatController {
92 return form1RepVo; 92 return form1RepVo;
93 } 93 }
94 94
95 - @ApiOperation("getForm2_2")  
96 - @RequestMapping(value = "getForm2_2", method = RequestMethod.POST)  
97 - public List<Form2> getForm2_2(@RequestBody GetLearnReqVo getLearnReqVo){ 95 + @ApiOperation("getForm2_1_2")
  96 + @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST)
  97 + public List<Form2> getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){
98 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); 98 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
99 List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null); 99 List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null);
100 List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); 100 List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName());
@@ -103,23 +103,205 @@ public class LearnStatController { @@ -103,23 +103,205 @@ public class LearnStatController {
103 double highScore = allStudents.get(highNumber).getScore(); 103 double highScore = allStudents.get(highNumber).getScore();
104 int lowNumber = allStudents.size()-highNumber; 104 int lowNumber = allStudents.size()-highNumber;
105 double lowScore = allStudents.get(lowNumber).getScore(); 105 double lowScore = allStudents.get(lowNumber).getScore();
  106 + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,highScore,analyse.getMaxScore()+1f);
  107 + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,0,lowScore);
106 int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); 108 int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f);
107 int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore); 109 int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore);
108 List<Form2> list = new ArrayList<>(); 110 List<Form2> list = new ArrayList<>();
109 Form2 form = new Form2(); 111 Form2 form = new Form2();
110 form.setName("联盟校"); 112 form.setName("联盟校");
111 form.setStudentNumber(allStudents.size()); 113 form.setStudentNumber(allStudents.size());
112 - form.setHighNumber(highNumber);  
113 - form.setLowNumber(highNumber); 114 + form.setHighNumber(highAllCount);
  115 + form.setLowNumber(lowAllCount);
114 list.add(form); 116 list.add(form);
115 Form2 form2 = new Form2(); 117 Form2 form2 = new Form2();
116 form2.setName(getLearnReqVo.getSchoolName()); 118 form2.setName(getLearnReqVo.getSchoolName());
117 form2.setStudentNumber(students.size()); 119 form2.setStudentNumber(students.size());
118 form2.setHighNumber(highCount); 120 form2.setHighNumber(highCount);
119 form2.setLowNumber(lowCount); 121 form2.setLowNumber(lowCount);
120 - form2.setHighProp(highCount/new Double(allStudents.size()));  
121 - form2.setLowProp(lowCount/new Double(allStudents.size())); 122 + form2.setHighProp(highCount/new Double(highAllCount));
  123 + form2.setLowProp(lowCount/new Double(lowAllCount));
122 list.add(form2); 124 list.add(form2);
123 return list; 125 return list;
124 } 126 }
  127 +
  128 + @ApiOperation("getForm2_1_3_2")
  129 + @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST)
  130 + public List<Form2> getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){
  131 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  132 + List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName());
  133 + //先算高分段的分数 再去人数
  134 + int highNumber = (int) Math.floor(allStudents.size()*0.27);
  135 + double highScore = allStudents.get(highNumber).getScore();
  136 + int lowNumber = allStudents.size()-highNumber;
  137 + double lowScore = allStudents.get(lowNumber).getScore();
  138 + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f);
  139 + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore);
  140 + List<Form2> resultList = new ArrayList<>();
  141 + Form2 form = new Form2();
  142 + form.setName("联盟校");
  143 + form.setStudentNumber(allStudents.size());
  144 + form.setHighNumber(highAllCount);
  145 + form.setLowNumber(lowAllCount);
  146 + resultList.add(form);
  147 + List<String> classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName());
  148 + for(String className : classNamList){
  149 + List<Student> list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className);
  150 + int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f);
  151 + int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore);
  152 + Form2 form2 = new Form2();
  153 + form2.setName(className);
  154 + form2.setStudentNumber(list.size());
  155 + form2.setHighNumber(highCount);
  156 + form2.setLowNumber(lowCount);
  157 + form2.setHighProp(highCount/new Double(highAllCount));
  158 + form2.setLowProp(lowCount/new Double(lowAllCount));
  159 + resultList.add(form2);
  160 + }
  161 + return resultList;
  162 + }
  163 +
  164 + @ApiOperation("getForm2_1_3")
  165 + @RequestMapping(value = "getForm2_1_3", method = RequestMethod.POST)
  166 + public List<Table1> getForm2_1_3(@RequestBody GetLearnReqVo getLearnReqVo){
  167 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  168 + List<Double> list = new ArrayList<>();
  169 + list.add(Math.ceil(analyse.getMaxScore()));
  170 + list.add(Math.ceil(analyse.getMaxScore()*0.95));
  171 + list.add(Math.ceil(analyse.getMaxScore()*0.9));
  172 + list.add(Math.ceil(analyse.getMaxScore()*0.85));
  173 + list.add(Math.ceil(analyse.getMaxScore()*0.8));
  174 + list.add(Math.ceil(analyse.getMaxScore()*0.75));
  175 + list.add(Math.ceil(analyse.getMaxScore()*0.7));
  176 + list.add(Math.ceil(analyse.getMaxScore()*0.65));
  177 + list.add(Math.ceil(analyse.getMaxScore()*0.6));
  178 + list.add(Math.ceil(analyse.getMaxScore()*0.55));
  179 + list.add(Math.ceil(analyse.getMaxScore()*0.5));
  180 + list.add(Math.ceil(analyse.getMaxScore()*0.45));
  181 + list.add(Math.ceil(analyse.getMaxScore()*0.4));
  182 + list.add(Math.ceil(analyse.getMaxScore()*0.35));
  183 + list.add(Math.ceil(analyse.getMaxScore()*0.3));
  184 + list.add(Math.ceil(analyse.getMaxScore()*0));
  185 + List<Table1> list1 = new ArrayList<>();
  186 + for(int i =0 ; i <list.size() ; i++){
  187 + Table1 table1 = new Table1();
  188 + if(i == 0){
  189 + table1.setScore(list.get(i)+"");
  190 + table1.setNumber(studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),new Double(list.get(i)),new Double(list.get(i)+1)));
  191 + }else {
  192 + table1.setScore(list.get(i)+"-"+(list.get(i-1)-0.5));
  193 + table1.setNumber(studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),new Double(list.get(i)),new Double(list.get(i-1))));
  194 + }
  195 + list1.add(table1);
  196 + }
  197 + return list1;
  198 + }
  199 +
  200 + @ApiOperation("getForm2_2_1")
  201 + @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST)
  202 + public List<Form3> getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){
  203 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  204 + List<Form3> list = new ArrayList<>();
  205 + Form3 form3 = new Form3();
  206 + form3.setName("联盟校");
  207 + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null);
  208 + form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null));
  209 + form3.setAverage(studentService.selectAvgScore(analyse.getId(),null));
  210 + form3.setMinScore(studentService.selectMinScore(analyse.getId(),null));
  211 + int a = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1);
  212 + form3.setApercent(a / new Double(allStudents.size()) * 100);
  213 + int b = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85);
  214 + form3.setBpercent(b / new Double(allStudents.size()) * 100);
  215 + int c = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7);
  216 + form3.setCpercent(c / new Double(allStudents.size()) * 100);
  217 + int d = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6);
  218 + form3.setDpercent(d / new Double(allStudents.size()) * 100);
  219 + list.add(form3);
  220 +
  221 + Form3 form = new Form3();
  222 + form.setName("联盟校");
  223 + List<Student> students = studentService.selectBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
  224 + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),getLearnReqVo.getSchoolName()));
  225 + form.setAverage(studentService.selectAvgScore(analyse.getId(),getLearnReqVo.getSchoolName()));
  226 + form.setMinScore(studentService.selectMinScore(analyse.getId(),getLearnReqVo.getSchoolName()));
  227 + int a1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1);
  228 + form.setApercent(a1 / new Double(students.size()) * 100);
  229 + int b1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85);
  230 + form.setBpercent(b1 / new Double(students.size()) * 100);
  231 + int c1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7);
  232 + form.setCpercent(c1 / new Double(students.size()) * 100);
  233 + int d1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6);
  234 + form.setDpercent(d1 / new Double(students.size()) * 100);
  235 + list.add(form);
  236 + return list ;
  237 + }
  238 +
  239 + @ApiOperation("getForm2_2_2")
  240 + @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST)
  241 + public List<Form4> getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){
  242 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  243 + List<Form4> list = new ArrayList<>();
  244 + Form4 form4 = new Form4();
  245 + form4.setName("联盟校");
  246 + form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null));
  247 + form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null));
  248 + form4.setStdev(studentService.selectStdev(analyse.getId(),null));
  249 + form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null));
  250 + list.add(form4);
  251 + Form4 form = new Form4();
  252 + form.setName(getLearnReqVo.getSchoolName());
  253 + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),getLearnReqVo.getSchoolName()));
  254 + form.setMedianNumber(studentService.selectMedian(analyse.getId(),getLearnReqVo.getSchoolName()));
  255 + form.setStdev(studentService.selectStdev(analyse.getId(),getLearnReqVo.getSchoolName()));
  256 + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),getLearnReqVo.getSchoolName()));
  257 + list.add(form);
  258 + return list;
  259 + }
  260 +
  261 + @ApiOperation("getForm2_2_3")
  262 + @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST)
  263 + public List<From5> getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){
  264 + List<From5> list = new ArrayList<>();
  265 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  266 + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null);
  267 + int allNumber = (int) Math.floor(allStudents.size()*0.27) ;
  268 + List<String> allHighStudent = new ArrayList<>();
  269 + List<String> allLowStudent = new ArrayList<>();
  270 + for (int i = 0; i < allNumber ; i++) {
  271 + allHighStudent.add(allStudents.get(i).getStudentNumber());
  272 + }
  273 + for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){
  274 + allLowStudent.add(allStudents.get(i).getStudentNumber());
  275 + }
  276 + List<Student> students = studentService.selectBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName());
  277 + int number = (int) Math.floor(students.size()*0.27) ;
  278 + List<String> highStudent = new ArrayList<>();
  279 + List<String> lowStudent = new ArrayList<>();
  280 + for (int i = 0; i < number ; i++) {
  281 + highStudent.add(students.get(i).getStudentNumber());
  282 + }
  283 + for(int i =students.size()-number ; i < students.size() ; i++){
  284 + lowStudent.add(students.get(i).getStudentNumber());
  285 + }
  286 + List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId());
  287 + for(AnalyseDetail analyseDetail : analyseDetails){
  288 + From5 from5 = new From5();
  289 + Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,analyseDetail.getQuestionNumber());
  290 + Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber());
  291 + from5.setExamNumber(analyseDetail.getQuestionNumber());
  292 + from5.setScore(analyseDetail.getScore());
  293 + from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore());
  294 + from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore());
  295 + from5.setAllAvg(allSumScore / new Double(allStudents.size()));
  296 + from5.setSchoolAvg(schoolSumScore / new Double(students.size()));
  297 + int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null ,analyseDetail.getQuestionNumber(),allHighStudent,analyseDetail.getScore());
  298 + int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null ,analyseDetail.getQuestionNumber(),allLowStudent,analyseDetail.getScore());
  299 + int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent,analyseDetail.getScore());
  300 + int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent,analyseDetail.getScore());
  301 + from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber));
  302 + from5.setSchoolDist(new Double(high-low)/new Double(number));
  303 + list.add(from5);
  304 + }
  305 + return list;
  306 + }
125 } 307 }
src/main/java/com/jevon/mapper/AnalyseDetailMapper.java
@@ -12,4 +12,6 @@ import java.util.List; @@ -12,4 +12,6 @@ import java.util.List;
12 public interface AnalyseDetailMapper { 12 public interface AnalyseDetailMapper {
13 13
14 int insertBatch(List<AnalyseDetail> list); 14 int insertBatch(List<AnalyseDetail> list);
  15 +
  16 + List<AnalyseDetail> selectByAnalyseId(int analyseId);
15 } 17 }
src/main/java/com/jevon/mapper/StudentDetailMapper.java
@@ -12,4 +12,8 @@ import java.util.List; @@ -12,4 +12,8 @@ import java.util.List;
12 public interface StudentDetailMapper { 12 public interface StudentDetailMapper {
13 13
14 int insertBatch(List<StudentDetail> list); 14 int insertBatch(List<StudentDetail> list);
  15 +
  16 + Double selectSumScore(StudentDetail studentDetail);
  17 +
  18 + int selectTrueByExamNumber(StudentDetail studentDetail);
15 } 19 }
src/main/java/com/jevon/mapper/StudentMapper.java
@@ -13,7 +13,23 @@ public interface StudentMapper { @@ -13,7 +13,23 @@ public interface StudentMapper {
13 13
14 int insertBatch(List<Student> list); 14 int insertBatch(List<Student> list);
15 15
16 - List<Student> selectBySchoolName(Student student); 16 + List<Student> selectByStudent(Student student);
17 17
18 int selectCountByScore(Student student); 18 int selectCountByScore(Student student);
  19 +
  20 + List<String> selectClassNameBySchool(Student student);
  21 +
  22 + //最高分
  23 + Double selectMaxScore(Student student);
  24 + //最低分
  25 + Double selectMinScore(Student student);
  26 + //平均分
  27 + Double selectAvgScore(Student student);
  28 + //众数
  29 + Double selectModeNumber(Student student);
  30 + //中位数
  31 + Double selectMedian(Student student);
  32 + //标准差
  33 + Double selectStdev(Student student);
  34 +
19 } 35 }
src/main/java/com/jevon/model/Analyse.java
@@ -14,7 +14,7 @@ public class Analyse { @@ -14,7 +14,7 @@ public class Analyse {
14 private String examTime ; 14 private String examTime ;
15 private String courseName ; 15 private String courseName ;
16 private Date createTime ; 16 private Date createTime ;
17 - private Float maxScore ; 17 + private Double maxScore ;
18 18
19 public int getId() { 19 public int getId() {
20 return id; 20 return id;
@@ -56,11 +56,11 @@ public class Analyse { @@ -56,11 +56,11 @@ public class Analyse {
56 this.createTime = createTime; 56 this.createTime = createTime;
57 } 57 }
58 58
59 - public Float getMaxScore() { 59 + public Double getMaxScore() {
60 return maxScore; 60 return maxScore;
61 } 61 }
62 62
63 - public void setMaxScore(Float maxScore) { 63 + public void setMaxScore(Double maxScore) {
64 this.maxScore = maxScore; 64 this.maxScore = maxScore;
65 } 65 }
66 } 66 }
src/main/java/com/jevon/model/AnalyseDetail.java
@@ -14,7 +14,7 @@ public class AnalyseDetail { @@ -14,7 +14,7 @@ public class AnalyseDetail {
14 private String questionNumber ; 14 private String questionNumber ;
15 private String questionType ; 15 private String questionType ;
16 private int difficult ; 16 private int difficult ;
17 - private float score ; 17 + private Double score ;
18 private Date createTime ; 18 private Date createTime ;
19 19
20 public int getId() { 20 public int getId() {
@@ -49,11 +49,11 @@ public class AnalyseDetail { @@ -49,11 +49,11 @@ public class AnalyseDetail {
49 this.difficult = difficult; 49 this.difficult = difficult;
50 } 50 }
51 51
52 - public float getScore() { 52 + public Double getScore() {
53 return score; 53 return score;
54 } 54 }
55 55
56 - public void setScore(float score) { 56 + public void setScore(Double score) {
57 this.score = score; 57 this.score = score;
58 } 58 }
59 59
src/main/java/com/jevon/model/StudentDetail.java
@@ -3,6 +3,7 @@ package com.jevon.model; @@ -3,6 +3,7 @@ package com.jevon.model;
3 import com.jevon.vo.excel.ScoreExcelVo; 3 import com.jevon.vo.excel.ScoreExcelVo;
4 4
5 import java.util.Date; 5 import java.util.Date;
  6 +import java.util.List;
6 7
7 /** 8 /**
8 * @author chen 9 * @author chen
@@ -22,6 +23,9 @@ public class StudentDetail { @@ -22,6 +23,9 @@ public class StudentDetail {
22 private float score ; 23 private float score ;
23 private Date createTime ; 24 private Date createTime ;
24 25
  26 + //查询用 高分段 低分段学生考号
  27 + private List<String> studentNumbers ;
  28 +
25 public StudentDetail(ScoreExcelVo scoreExcelVo) { 29 public StudentDetail(ScoreExcelVo scoreExcelVo) {
26 this.schoolName = scoreExcelVo.getSchoolName(); 30 this.schoolName = scoreExcelVo.getSchoolName();
27 this.className = scoreExcelVo.getClassName(); 31 this.className = scoreExcelVo.getClassName();
@@ -29,6 +33,9 @@ public class StudentDetail { @@ -29,6 +33,9 @@ public class StudentDetail {
29 this.studentNumber = scoreExcelVo.getStudentNumber(); 33 this.studentNumber = scoreExcelVo.getStudentNumber();
30 } 34 }
31 35
  36 + public StudentDetail() {
  37 + }
  38 +
32 public int getId() { 39 public int getId() {
33 return id; 40 return id;
34 } 41 }
@@ -108,4 +115,12 @@ public class StudentDetail { @@ -108,4 +115,12 @@ public class StudentDetail {
108 public void setCreateTime(Date createTime) { 115 public void setCreateTime(Date createTime) {
109 this.createTime = createTime; 116 this.createTime = createTime;
110 } 117 }
  118 +
  119 + public List<String> getStudentNumbers() {
  120 + return studentNumbers;
  121 + }
  122 +
  123 + public void setStudentNumbers(List<String> studentNumbers) {
  124 + this.studentNumbers = studentNumbers;
  125 + }
111 } 126 }
src/main/java/com/jevon/service/AnalyseDetailService.java
@@ -13,4 +13,7 @@ public interface AnalyseDetailService { @@ -13,4 +13,7 @@ public interface AnalyseDetailService {
13 13
14 int insertBatch(List<AnalyseDetail> list); 14 int insertBatch(List<AnalyseDetail> list);
15 15
  16 + List<AnalyseDetail> selectByAnalyseId(int analyseId);
  17 +
  18 +
16 } 19 }
src/main/java/com/jevon/service/StudentDetailService.java
@@ -13,4 +13,8 @@ public interface StudentDetailService { @@ -13,4 +13,8 @@ public interface StudentDetailService {
13 13
14 int insertBatch(List<StudentDetail> list); 14 int insertBatch(List<StudentDetail> list);
15 15
  16 + Double selectSumScore(int analyseId , String schoolName , String examNumber);
  17 +
  18 + int selectTrueByExamNumber(int analyseId , String schoolName , String examNumber , List<String> studentNumbers ,Double score);
  19 +
16 } 20 }
src/main/java/com/jevon/service/StudentService.java
@@ -15,6 +15,23 @@ public interface StudentService { @@ -15,6 +15,23 @@ public interface StudentService {
15 15
16 List<Student> selectBySchoolName(int analyseId , String schoolName); 16 List<Student> selectBySchoolName(int analyseId , String schoolName);
17 17
  18 + List<Student> selectByClassName(int analyseId , String schoolName ,String className);
  19 +
18 int selectCountByScore(int analyseId , String schoolName , double begin , double end); 20 int selectCountByScore(int analyseId , String schoolName , double begin , double end);
19 21
  22 + int selectCountBySchoolScore(int analyseId , String schoolName ,String className , double begin , double end);
  23 +
  24 + List<String> selectClassNameBySchool(int analyseId , String schoolName);
  25 +
  26 + Double selectMaxScore(int analyseId , String schoolName);
  27 +
  28 + Double selectMinScore(int analyseId , String schoolName);
  29 +
  30 + Double selectAvgScore(int analyseId , String schoolName);
  31 + //众数
  32 + Double selectModeNumber(int analyseId , String schoolName);
  33 + //中位数
  34 + Double selectMedian(int analyseId , String schoolName);
  35 + //标准差
  36 + Double selectStdev(int analyseId , String schoolName);
20 } 37 }
src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java
@@ -35,4 +35,9 @@ public class AnalyseDetailServiceImpl implements AnalyseDetailService { @@ -35,4 +35,9 @@ public class AnalyseDetailServiceImpl implements AnalyseDetailService {
35 analyseDetailMapper.insertBatch(result); 35 analyseDetailMapper.insertBatch(result);
36 return 1 ; 36 return 1 ;
37 } 37 }
  38 +
  39 + @Override
  40 + public List<AnalyseDetail> selectByAnalyseId(int analyseId) {
  41 + return analyseDetailMapper.selectByAnalyseId(analyseId);
  42 + }
38 } 43 }
src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java
@@ -35,4 +35,24 @@ public class StudentDetailServiceImpl implements StudentDetailService { @@ -35,4 +35,24 @@ public class StudentDetailServiceImpl implements StudentDetailService {
35 studentDetailMapper.insertBatch(result); 35 studentDetailMapper.insertBatch(result);
36 return 1 ; 36 return 1 ;
37 } 37 }
  38 +
  39 + @Override
  40 + public Double selectSumScore(int analyseId, String schoolName, String examNumber) {
  41 + StudentDetail studentDetail = new StudentDetail();
  42 + studentDetail.setAnalyseId(analyseId);
  43 + studentDetail.setSchoolName(schoolName);
  44 + studentDetail.setExamNumber(examNumber);
  45 + return studentDetailMapper.selectSumScore(studentDetail);
  46 + }
  47 +
  48 + @Override
  49 + public int selectTrueByExamNumber(int analyseId, String schoolName, String examNumber, List<String> studentNumbers , Double score) {
  50 + StudentDetail studentDetail = new StudentDetail();
  51 + studentDetail.setAnalyseId(analyseId);
  52 + studentDetail.setSchoolName(schoolName);
  53 + studentDetail.setExamNumber(examNumber);
  54 + studentDetail.setScore(new Float(score));
  55 + studentDetail.setStudentNumbers(studentNumbers);
  56 + return studentDetailMapper.selectTrueByExamNumber(studentDetail);
  57 + }
38 } 58 }
src/main/java/com/jevon/service/impl/StudentServiceImpl.java
@@ -41,7 +41,16 @@ public class StudentServiceImpl implements StudentService { @@ -41,7 +41,16 @@ public class StudentServiceImpl implements StudentService {
41 Student student = new Student(); 41 Student student = new Student();
42 student.setAnalyseId(analyseId); 42 student.setAnalyseId(analyseId);
43 student.setSchoolName(schoolName); 43 student.setSchoolName(schoolName);
44 - return studentMapper.selectBySchoolName(student); 44 + return studentMapper.selectByStudent(student);
  45 + }
  46 +
  47 + @Override
  48 + public List<Student> selectByClassName(int analyseId, String schoolName, String className) {
  49 + Student student = new Student();
  50 + student.setAnalyseId(analyseId);
  51 + student.setSchoolName(schoolName);
  52 + student.setClassName(className);
  53 + return studentMapper.selectByStudent(student);
45 } 54 }
46 55
47 @Override 56 @Override
@@ -53,4 +62,70 @@ public class StudentServiceImpl implements StudentService { @@ -53,4 +62,70 @@ public class StudentServiceImpl implements StudentService {
53 student.setEnd(end); 62 student.setEnd(end);
54 return studentMapper.selectCountByScore(student); 63 return studentMapper.selectCountByScore(student);
55 } 64 }
  65 +
  66 + @Override
  67 + public int selectCountBySchoolScore(int analyseId, String schoolName, String className, double begin, double end) {
  68 + Student student = new Student();
  69 + student.setAnalyseId(analyseId);
  70 + student.setSchoolName(schoolName);
  71 + student.setClassName(className);
  72 + student.setBegin(begin);
  73 + student.setEnd(end);
  74 + return studentMapper.selectCountByScore(student); }
  75 +
  76 + @Override
  77 + public List<String> selectClassNameBySchool(int analyseId, String schoolName) {
  78 + Student student = new Student();
  79 + student.setAnalyseId(analyseId);
  80 + student.setSchoolName(schoolName);
  81 + return studentMapper.selectClassNameBySchool(student);
  82 + }
  83 +
  84 + @Override
  85 + public Double selectMaxScore(int analyseId, String schoolName) {
  86 + Student student = new Student();
  87 + student.setAnalyseId(analyseId);
  88 + student.setSchoolName(schoolName);
  89 + return studentMapper.selectMaxScore(student);
  90 + }
  91 +
  92 + @Override
  93 + public Double selectMinScore(int analyseId, String schoolName) {
  94 + Student student = new Student();
  95 + student.setAnalyseId(analyseId);
  96 + student.setSchoolName(schoolName);
  97 + return studentMapper.selectMinScore(student);
  98 + }
  99 +
  100 + @Override
  101 + public Double selectAvgScore(int analyseId, String schoolName) {
  102 + Student student = new Student();
  103 + student.setAnalyseId(analyseId);
  104 + student.setSchoolName(schoolName);
  105 + return studentMapper.selectAvgScore(student);
  106 + }
  107 +
  108 + @Override
  109 + public Double selectModeNumber(int analyseId, String schoolName) {
  110 + Student student = new Student();
  111 + student.setAnalyseId(analyseId);
  112 + student.setSchoolName(schoolName);
  113 + return studentMapper.selectModeNumber(student);
  114 + }
  115 +
  116 + @Override
  117 + public Double selectMedian(int analyseId, String schoolName) {
  118 + Student student = new Student();
  119 + student.setAnalyseId(analyseId);
  120 + student.setSchoolName(schoolName);
  121 + return studentMapper.selectMedian(student);
  122 + }
  123 +
  124 + @Override
  125 + public Double selectStdev(int analyseId, String schoolName) {
  126 + Student student = new Student();
  127 + student.setAnalyseId(analyseId);
  128 + student.setSchoolName(schoolName);
  129 + return studentMapper.selectStdev(student);
  130 + }
56 } 131 }
src/main/java/com/jevon/wordDTO/second/Form3.java 0 → 100644
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
  1 +package com.jevon.wordDTO.second;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/21 0021 9:03
  7 + */
  8 +public class Form3 {
  9 +
  10 + private String name ;
  11 + private Double maxScore ;
  12 + private Double average ;
  13 + private Double minScore ;
  14 + private Double apercent ;
  15 + private Double bpercent ;
  16 + private Double cpercent ;
  17 + private Double dpercent ;
  18 +
  19 + public String getName() {
  20 + return name;
  21 + }
  22 +
  23 + public void setName(String name) {
  24 + this.name = name;
  25 + }
  26 +
  27 + public Double getMaxScore() {
  28 + return maxScore;
  29 + }
  30 +
  31 + public void setMaxScore(Double maxScore) {
  32 + this.maxScore = maxScore;
  33 + }
  34 +
  35 + public Double getAverage() {
  36 + return average;
  37 + }
  38 +
  39 + public void setAverage(Double average) {
  40 + this.average = average;
  41 + }
  42 +
  43 + public Double getMinScore() {
  44 + return minScore;
  45 + }
  46 +
  47 + public void setMinScore(Double minScore) {
  48 + this.minScore = minScore;
  49 + }
  50 +
  51 + public Double getApercent() {
  52 + return apercent;
  53 + }
  54 +
  55 + public void setApercent(Double apercent) {
  56 + this.apercent = apercent;
  57 + }
  58 +
  59 + public Double getBpercent() {
  60 + return bpercent;
  61 + }
  62 +
  63 + public void setBpercent(Double bpercent) {
  64 + this.bpercent = bpercent;
  65 + }
  66 +
  67 + public Double getCpercent() {
  68 + return cpercent;
  69 + }
  70 +
  71 + public void setCpercent(Double cpercent) {
  72 + this.cpercent = cpercent;
  73 + }
  74 +
  75 + public Double getDpercent() {
  76 + return dpercent;
  77 + }
  78 +
  79 + public void setDpercent(Double dpercent) {
  80 + this.dpercent = dpercent;
  81 + }
  82 +}
src/main/java/com/jevon/wordDTO/second/Form4.java 0 → 100644
@@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
  1 +package com.jevon.wordDTO.second;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/21 0021 9:51
  7 + */
  8 +public class Form4 {
  9 +
  10 + private String name ;
  11 + private Double modeNumber ;
  12 + private Double medianNumber ;
  13 + private Double stdev ;
  14 + private Double avgNumber ;
  15 +
  16 + public String getName() {
  17 + return name;
  18 + }
  19 +
  20 + public void setName(String name) {
  21 + this.name = name;
  22 + }
  23 +
  24 + public Double getModeNumber() {
  25 + return modeNumber;
  26 + }
  27 +
  28 + public void setModeNumber(Double modeNumber) {
  29 + this.modeNumber = modeNumber;
  30 + }
  31 +
  32 + public Double getMedianNumber() {
  33 + return medianNumber;
  34 + }
  35 +
  36 + public void setMedianNumber(Double medianNumber) {
  37 + this.medianNumber = medianNumber;
  38 + }
  39 +
  40 + public Double getStdev() {
  41 + return stdev;
  42 + }
  43 +
  44 + public void setStdev(Double stdev) {
  45 + this.stdev = stdev;
  46 + }
  47 +
  48 + public Double getAvgNumber() {
  49 + return avgNumber;
  50 + }
  51 +
  52 + public void setAvgNumber(Double avgNumber) {
  53 + this.avgNumber = avgNumber;
  54 + }
  55 +}
src/main/java/com/jevon/wordDTO/second/From5.java 0 → 100644
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
  1 +package com.jevon.wordDTO.second;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/21 0021 9:59
  7 + */
  8 +public class From5 {
  9 +
  10 + private String examNumber ;
  11 + private Double score ;
  12 + private Double allRate ;
  13 + private Double schoolRate ;
  14 + private Double allAvg ;
  15 + private Double schoolAvg ;
  16 + private Double allDist ;
  17 + private Double schoolDist ;
  18 +
  19 + public String getExamNumber() {
  20 + return examNumber;
  21 + }
  22 +
  23 + public void setExamNumber(String examNumber) {
  24 + this.examNumber = examNumber;
  25 + }
  26 +
  27 + public Double getScore() {
  28 + return score;
  29 + }
  30 +
  31 + public void setScore(Double score) {
  32 + this.score = score;
  33 + }
  34 +
  35 + public Double getAllRate() {
  36 + return allRate;
  37 + }
  38 +
  39 + public void setAllRate(Double allRate) {
  40 + this.allRate = allRate;
  41 + }
  42 +
  43 + public Double getSchoolRate() {
  44 + return schoolRate;
  45 + }
  46 +
  47 + public void setSchoolRate(Double schoolRate) {
  48 + this.schoolRate = schoolRate;
  49 + }
  50 +
  51 + public Double getAllAvg() {
  52 + return allAvg;
  53 + }
  54 +
  55 + public void setAllAvg(Double allAvg) {
  56 + this.allAvg = allAvg;
  57 + }
  58 +
  59 + public Double getSchoolAvg() {
  60 + return schoolAvg;
  61 + }
  62 +
  63 + public void setSchoolAvg(Double schoolAvg) {
  64 + this.schoolAvg = schoolAvg;
  65 + }
  66 +
  67 + public Double getAllDist() {
  68 + return allDist;
  69 + }
  70 +
  71 + public void setAllDist(Double allDist) {
  72 + this.allDist = allDist;
  73 + }
  74 +
  75 + public Double getSchoolDist() {
  76 + return schoolDist;
  77 + }
  78 +
  79 + public void setSchoolDist(Double schoolDist) {
  80 + this.schoolDist = schoolDist;
  81 + }
  82 +}
src/main/java/com/jevon/wordDTO/second/Table1.java 0 → 100644
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +package com.jevon.wordDTO.second;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/10/21 0021 8:34
  7 + */
  8 +public class Table1 {
  9 +
  10 + private String score ;
  11 + private int number ;
  12 +
  13 + public String getScore() {
  14 + return score;
  15 + }
  16 +
  17 + public void setScore(String score) {
  18 + this.score = score;
  19 + }
  20 +
  21 + public int getNumber() {
  22 + return number;
  23 + }
  24 +
  25 + public void setNumber(int number) {
  26 + this.number = number;
  27 + }
  28 +}
src/main/resources/mapping/AnalyseDetailMapper.xml
@@ -18,4 +18,8 @@ @@ -18,4 +18,8 @@
18 (#{emp.analyseId},#{emp.questionNumber},#{emp.questionType},#{emp.difficult},#{emp.score},#{emp.createTime}) 18 (#{emp.analyseId},#{emp.questionNumber},#{emp.questionType},#{emp.difficult},#{emp.score},#{emp.createTime})
19 </foreach> 19 </foreach>
20 </insert> 20 </insert>
  21 +
  22 + <select id="selectByAnalyseId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
  23 + select * from sz_learn_analyse_detail where analyse_id = #{analyseId} order by id
  24 + </select>
21 </mapper> 25 </mapper>
22 \ No newline at end of file 26 \ No newline at end of file
src/main/resources/mapping/StudentDetailMapper.xml
@@ -23,4 +23,34 @@ @@ -23,4 +23,34 @@
23 #{emp.studentNumber},#{emp.analyseId},#{emp.examNumber},#{emp.score},#{emp.createTime}) 23 #{emp.studentNumber},#{emp.analyseId},#{emp.examNumber},#{emp.score},#{emp.createTime})
24 </foreach> 24 </foreach>
25 </insert> 25 </insert>
  26 +
  27 + <select id="selectSumScore" parameterType="com.jevon.model.StudentDetail" resultType="java.lang.Double">
  28 + SELECT sum(score) FROM sz_learn_student_detail where 1=1
  29 + <if test="analyseId != 0">
  30 + and analyse_id = #{analyseId}
  31 + </if>
  32 + <if test="schoolName != null">
  33 + and school_name = #{schoolName}
  34 + </if>
  35 + <if test="examNumber != null">
  36 + and exam_number = #{examNumber}
  37 + </if>
  38 + </select>
  39 +
  40 + <select id="selectTrueByExamNumber" parameterType="com.jevon.model.StudentDetail" resultType="java.lang.Integer">
  41 + select count(*) from sz_learn_student_detail where 1=1
  42 + <if test="analyseId != 0">
  43 + and analyse_id = #{analyseId}
  44 + </if>
  45 + <if test="schoolName != null">
  46 + and school_name = #{schoolName}
  47 + </if>
  48 + <if test="examNumber != null">
  49 + and exam_number = #{examNumber}
  50 + </if>
  51 + and score = #{score} and student_number in
  52 + <foreach item="item" collection="studentNumbers" open="(" separator="," close=")">
  53 + #{item}
  54 + </foreach>
  55 + </select>
26 </mapper> 56 </mapper>
27 \ No newline at end of file 57 \ No newline at end of file
src/main/resources/mapping/StudentMapper.xml
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> 13 <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
14 </resultMap> 14 </resultMap>
15 15
16 - <insert id="insertBatch" parameterType="java.util.List"> 16 + <insert id="insertBatch" parameterType="java.util.List">
17 insert into sz_learn_student (school_name, class_name,student_name, 17 insert into sz_learn_student (school_name, class_name,student_name,
18 student_number,analyse_id,score,create_time) 18 student_number,analyse_id,score,create_time)
19 values 19 values
@@ -21,9 +21,9 @@ @@ -21,9 +21,9 @@
21 (#{emp.schoolName},#{emp.className},#{emp.studentName}, 21 (#{emp.schoolName},#{emp.className},#{emp.studentName},
22 #{emp.studentNumber},#{emp.analyseId},#{emp.score},#{emp.createTime}) 22 #{emp.studentNumber},#{emp.analyseId},#{emp.score},#{emp.createTime})
23 </foreach> 23 </foreach>
24 - </insert> 24 + </insert>
25 25
26 - <select id="selectBySchoolName" parameterType="com.jevon.model.Student" resultMap="BaseResultMap"> 26 + <select id="selectByStudent" parameterType="com.jevon.model.Student" resultMap="BaseResultMap">
27 select * from sz_learn_student where 1=1 27 select * from sz_learn_student where 1=1
28 <if test="analyseId != 0"> 28 <if test="analyseId != 0">
29 and analyse_id = #{analyseId} 29 and analyse_id = #{analyseId}
@@ -31,11 +31,118 @@ @@ -31,11 +31,118 @@
31 <if test="schoolName != null"> 31 <if test="schoolName != null">
32 and school_name = #{schoolName} 32 and school_name = #{schoolName}
33 </if> 33 </if>
  34 + <if test="className != null">
  35 + and class_name = #{className}
  36 + </if>
34 order by score desc 37 order by score desc
35 - </select> 38 + </select>
  39 +
  40 + <select id="selectCountByScore" parameterType="com.jevon.model.Student" resultType="java.lang.Integer">
  41 + select count(1) from sz_learn_student where 1=1
  42 + <if test="analyseId != 0">
  43 + and analyse_id = #{analyseId}
  44 + </if>
  45 + <if test="schoolName != null">
  46 + and school_name = #{schoolName}
  47 + </if>
  48 + <if test="className != null">
  49 + and class_name = #{className}
  50 + </if>
  51 + and score <![CDATA[ >= ]]> #{begin} and score <![CDATA[ < ]]> #{end}
  52 + </select>
  53 +
  54 + <select id="selectClassNameBySchool" parameterType="com.jevon.model.Student" resultType="java.lang.String">
  55 + select DISTINCT(class_name) from sz_learn_student where 1=1
  56 + and analyse_id = #{analyseId}
  57 + and school_name = #{schoolName}
  58 + </select>
  59 +
  60 + <select id="selectMaxScore" parameterType="com.jevon.model.Student" resultType="java.lang.Double">
  61 + select max(score) from sz_learn_student where 1=1
  62 + <if test="analyseId != 0">
  63 + and analyse_id = #{analyseId}
  64 + </if>
  65 + <if test="schoolName != null">
  66 + and school_name = #{schoolName}
  67 + </if>
  68 + </select>
  69 +
  70 + <select id="selectMinScore" parameterType="com.jevon.model.Student" resultType="java.lang.Double">
  71 + select min(score) from sz_learn_student where 1=1
  72 + <if test="analyseId != 0">
  73 + and analyse_id = #{analyseId}
  74 + </if>
  75 + <if test="schoolName != null">
  76 + and school_name = #{schoolName}
  77 + </if>
  78 + </select>
  79 +
  80 + <select id="selectAvgScore" parameterType="com.jevon.model.Student" resultType="java.lang.Double">
  81 + select avg(score) from sz_learn_student where 1=1
  82 + <if test="analyseId != 0">
  83 + and analyse_id = #{analyseId}
  84 + </if>
  85 + <if test="schoolName != null">
  86 + and school_name = #{schoolName}
  87 + </if>
  88 + </select>
  89 +
  90 + <select id="selectModeNumber" parameterType="com.jevon.model.Student" resultType="java.lang.Double">
  91 + SELECT score FROM sz_learn_student
  92 + WHERE 1=1
  93 + <if test="analyseId != 0">
  94 + and analyse_id = #{analyseId}
  95 + </if>
  96 + <if test="schoolName != null">
  97 + and school_name = #{schoolName}
  98 + </if>
  99 + GROUP BY score
  100 + HAVING COUNT ( * ) >= (
  101 + SELECT MAX( cnt ) FROM
  102 + (
  103 + SELECT COUNT ( * ) cnt FROM sz_learn_student WHERE 1=1
  104 + <if test="analyseId != 0">
  105 + and analyse_id = #{analyseId}
  106 + </if>
  107 + <if test="schoolName != null">
  108 + and school_name = #{schoolName}
  109 + </if>
  110 + GROUP BY score ) tmp
  111 + )
  112 + </select>
36 113
37 - <select id="selectCountByScore" parameterType="com.jevon.model.Student" resultType="java.lang.Integer">  
38 - select count(1) from sz_learn_student where analyse_id = #{analyseId} and school_name = #{schoolName}  
39 - and score <![CDATA[ >= ]]> #{begin} and score <![CDATA[ < ]]> #{end}  
40 - </select> 114 + <select id="selectMedian" parameterType="com.jevon.model.Student" resultType="java.lang.Double">
  115 + SELECT
  116 + avg(DISTINCT score)
  117 + FROM (
  118 + select T1.score from sz_learn_student T1 , sz_learn_student T2
  119 + WHERE 1=1
  120 + <if test="analyseId != 0">
  121 + and T1.analyse_id = #{analyseId}
  122 + </if>
  123 + <if test="schoolName != null">
  124 + and T1.school_name = #{schoolName}
  125 + </if>
  126 + <if test="analyseId != 0">
  127 + and T2.analyse_id = #{analyseId}
  128 + </if>
  129 + <if test="schoolName != null">
  130 + and T2.school_name = #{schoolName}
  131 + </if>
  132 + GROUP BY
  133 + T1.score
  134 + HAVING
  135 + sum(case when T2.score <![CDATA[ >= ]]> T1.score then 1 else 0 end) >= count(*)/2
  136 + and sum(case when T2.score <![CDATA[ <= ]]> T1.score then 1 else 0 end)>= count(*)/2) tmp
  137 + </select>
  138 +
  139 + <select id="selectStdev" parameterType="com.jevon.model.Student" resultType="java.lang.Double">
  140 + select STDEV(score) from sz_learn_student where 1=1
  141 + <if test="analyseId != 0">
  142 + and analyse_id = #{analyseId}
  143 + </if>
  144 + <if test="schoolName != null">
  145 + and school_name = #{schoolName}
  146 + </if>
  147 + </select>
41 </mapper> 148 </mapper>
42 \ No newline at end of file 149 \ No newline at end of file