Commit e6e6895df48d7fe8027027d418c3f6557d01f2b5
1 parent
ef5c16a0
Exists in
master
学科考试概况
Showing
21 changed files
with
767 additions
and
36 deletions
Show diff stats
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
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 | } |
| @@ -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 | +} |
| @@ -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 | +} |
| @@ -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 | +} |
| @@ -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 |