From e6e6895df48d7fe8027027d418c3f6557d01f2b5 Mon Sep 17 00:00:00 2001 From: 陈杰 <504987307@qq.com> Date: Mon, 21 Oct 2019 11:04:45 +0800 Subject: [PATCH] 学科考试概况 --- src/main/java/com/jevon/controller/LearnController.java | 4 ++-- src/main/java/com/jevon/controller/LearnStatController.java | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------ src/main/java/com/jevon/mapper/AnalyseDetailMapper.java | 2 ++ src/main/java/com/jevon/mapper/StudentDetailMapper.java | 4 ++++ src/main/java/com/jevon/mapper/StudentMapper.java | 18 +++++++++++++++++- src/main/java/com/jevon/model/Analyse.java | 6 +++--- src/main/java/com/jevon/model/AnalyseDetail.java | 6 +++--- src/main/java/com/jevon/model/StudentDetail.java | 15 +++++++++++++++ src/main/java/com/jevon/service/AnalyseDetailService.java | 3 +++ src/main/java/com/jevon/service/StudentDetailService.java | 4 ++++ src/main/java/com/jevon/service/StudentService.java | 17 +++++++++++++++++ src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java | 5 +++++ src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java | 20 ++++++++++++++++++++ src/main/java/com/jevon/service/impl/StudentServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/main/java/com/jevon/wordDTO/second/Form3.java | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/wordDTO/second/Form4.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/wordDTO/second/From5.java | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/wordDTO/second/Table1.java | 28 ++++++++++++++++++++++++++++ src/main/resources/mapping/AnalyseDetailMapper.xml | 4 ++++ src/main/resources/mapping/StudentDetailMapper.xml | 30 ++++++++++++++++++++++++++++++ src/main/resources/mapping/StudentMapper.xml | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 21 files changed, 767 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/jevon/wordDTO/second/Form3.java create mode 100644 src/main/java/com/jevon/wordDTO/second/Form4.java create mode 100644 src/main/java/com/jevon/wordDTO/second/From5.java create mode 100644 src/main/java/com/jevon/wordDTO/second/Table1.java diff --git a/src/main/java/com/jevon/controller/LearnController.java b/src/main/java/com/jevon/controller/LearnController.java index f27da8c..f959b68 100644 --- a/src/main/java/com/jevon/controller/LearnController.java +++ b/src/main/java/com/jevon/controller/LearnController.java @@ -140,7 +140,7 @@ public class LearnController { analyseDetail.setAnalyseId(analyse.getId()); analyseDetail.setQuestionType(examExcelVo.getQuestionType()); analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); - analyseDetail.setScore(new Float(examExcelVo.getScore())); + analyseDetail.setScore(new Double(examExcelVo.getScore())); analyseDetail.setCreateTime(date); analyseDetails.add(analyseDetail); initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); @@ -151,7 +151,7 @@ public class LearnController { } analyseDetailService.insertBatch(analyseDetails); analyseDimensionalService.insertBatch(analyseDimensionals); - analyse.setMaxScore(maxScore); + analyse.setMaxScore(new Double(maxScore)); analyseService.update(analyse); }catch (Exception e){ System.out.println(e); diff --git a/src/main/java/com/jevon/controller/LearnStatController.java b/src/main/java/com/jevon/controller/LearnStatController.java index 6922ac1..796c2ee 100644 --- a/src/main/java/com/jevon/controller/LearnStatController.java +++ b/src/main/java/com/jevon/controller/LearnStatController.java @@ -1,12 +1,12 @@ package com.jevon.controller; import com.jevon.model.Analyse; +import com.jevon.model.AnalyseDetail; import com.jevon.model.Student; import com.jevon.service.*; +import com.jevon.vo.BaseVo; import com.jevon.vo.req.GetLearnReqVo; -import com.jevon.wordDTO.second.Form1; -import com.jevon.wordDTO.second.Form1RepVo; -import com.jevon.wordDTO.second.Form2; +import com.jevon.wordDTO.second.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -47,14 +47,14 @@ public class LearnStatController { @Autowired StudentService studentService; - @ApiOperation("getForm2_1") - @RequestMapping(value = "getForm2_1", method = RequestMethod.POST) - public Form1RepVo getForm2_1(@RequestBody GetLearnReqVo getLearnReqVo){ + @ApiOperation("getForm2_1_1") + @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST) + public Form1RepVo getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ Form1RepVo form1RepVo = new Form1RepVo(); //2.1表 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); //分数段 - float maxScore = analyse.getMaxScore(); + Double maxScore = analyse.getMaxScore(); Map segmentMap = new HashMap<>(); segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); @@ -71,19 +71,19 @@ public class LearnStatController { Form1 formA = new Form1(); formA.setLevel("A"); formA.setNumber(a); - formA.setProp(a/sum); + formA.setProp(a/sum*100); Form1 formB = new Form1(); formB.setLevel("B"); formB.setNumber(b); - formB.setProp(b/sum); + formB.setProp(b/sum*100); Form1 formC = new Form1(); formC.setLevel("C"); formC.setNumber(c); - formC.setProp(c/sum); + formC.setProp(c/sum*100); Form1 formD = new Form1(); formD.setLevel("D"); formD.setNumber(d); - formD.setProp(d/sum); + formD.setProp(d/sum*100); form1List.add(formA); form1List.add(formB); form1List.add(formC); @@ -92,9 +92,9 @@ public class LearnStatController { return form1RepVo; } - @ApiOperation("getForm2_2") - @RequestMapping(value = "getForm2_2", method = RequestMethod.POST) - public List getForm2_2(@RequestBody GetLearnReqVo getLearnReqVo){ + @ApiOperation("getForm2_1_2") + @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST) + public List getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){ Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null); List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); @@ -103,23 +103,205 @@ public class LearnStatController { double highScore = allStudents.get(highNumber).getScore(); int lowNumber = allStudents.size()-highNumber; double lowScore = allStudents.get(lowNumber).getScore(); + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,highScore,analyse.getMaxScore()+1f); + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,0,lowScore); int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore); List list = new ArrayList<>(); Form2 form = new Form2(); form.setName("联盟校"); form.setStudentNumber(allStudents.size()); - form.setHighNumber(highNumber); - form.setLowNumber(highNumber); + form.setHighNumber(highAllCount); + form.setLowNumber(lowAllCount); list.add(form); Form2 form2 = new Form2(); form2.setName(getLearnReqVo.getSchoolName()); form2.setStudentNumber(students.size()); form2.setHighNumber(highCount); form2.setLowNumber(lowCount); - form2.setHighProp(highCount/new Double(allStudents.size())); - form2.setLowProp(lowCount/new Double(allStudents.size())); + form2.setHighProp(highCount/new Double(highAllCount)); + form2.setLowProp(lowCount/new Double(lowAllCount)); list.add(form2); return list; } + + @ApiOperation("getForm2_1_3_2") + @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST) + public List getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){ + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); + //先算高分段的分数 再去人数 + int highNumber = (int) Math.floor(allStudents.size()*0.27); + double highScore = allStudents.get(highNumber).getScore(); + int lowNumber = allStudents.size()-highNumber; + double lowScore = allStudents.get(lowNumber).getScore(); + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore); + List resultList = new ArrayList<>(); + Form2 form = new Form2(); + form.setName("联盟校"); + form.setStudentNumber(allStudents.size()); + form.setHighNumber(highAllCount); + form.setLowNumber(lowAllCount); + resultList.add(form); + List classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); + for(String className : classNamList){ + List list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className); + int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f); + int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore); + Form2 form2 = new Form2(); + form2.setName(className); + form2.setStudentNumber(list.size()); + form2.setHighNumber(highCount); + form2.setLowNumber(lowCount); + form2.setHighProp(highCount/new Double(highAllCount)); + form2.setLowProp(lowCount/new Double(lowAllCount)); + resultList.add(form2); + } + return resultList; + } + + @ApiOperation("getForm2_1_3") + @RequestMapping(value = "getForm2_1_3", method = RequestMethod.POST) + public List getForm2_1_3(@RequestBody GetLearnReqVo getLearnReqVo){ + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + List list = new ArrayList<>(); + list.add(Math.ceil(analyse.getMaxScore())); + list.add(Math.ceil(analyse.getMaxScore()*0.95)); + list.add(Math.ceil(analyse.getMaxScore()*0.9)); + list.add(Math.ceil(analyse.getMaxScore()*0.85)); + list.add(Math.ceil(analyse.getMaxScore()*0.8)); + list.add(Math.ceil(analyse.getMaxScore()*0.75)); + list.add(Math.ceil(analyse.getMaxScore()*0.7)); + list.add(Math.ceil(analyse.getMaxScore()*0.65)); + list.add(Math.ceil(analyse.getMaxScore()*0.6)); + list.add(Math.ceil(analyse.getMaxScore()*0.55)); + list.add(Math.ceil(analyse.getMaxScore()*0.5)); + list.add(Math.ceil(analyse.getMaxScore()*0.45)); + list.add(Math.ceil(analyse.getMaxScore()*0.4)); + list.add(Math.ceil(analyse.getMaxScore()*0.35)); + list.add(Math.ceil(analyse.getMaxScore()*0.3)); + list.add(Math.ceil(analyse.getMaxScore()*0)); + List list1 = new ArrayList<>(); + for(int i =0 ; i getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){ + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + List list = new ArrayList<>(); + Form3 form3 = new Form3(); + form3.setName("联盟校"); + List allStudents = studentService.selectBySchoolName(analyse.getId(),null); + form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null)); + form3.setAverage(studentService.selectAvgScore(analyse.getId(),null)); + form3.setMinScore(studentService.selectMinScore(analyse.getId(),null)); + int a = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); + form3.setApercent(a / new Double(allStudents.size()) * 100); + int b = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); + form3.setBpercent(b / new Double(allStudents.size()) * 100); + int c = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); + form3.setCpercent(c / new Double(allStudents.size()) * 100); + int d = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); + form3.setDpercent(d / new Double(allStudents.size()) * 100); + list.add(form3); + + Form3 form = new Form3(); + form.setName("联盟校"); + List students = studentService.selectBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),getLearnReqVo.getSchoolName())); + form.setAverage(studentService.selectAvgScore(analyse.getId(),getLearnReqVo.getSchoolName())); + form.setMinScore(studentService.selectMinScore(analyse.getId(),getLearnReqVo.getSchoolName())); + int a1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); + form.setApercent(a1 / new Double(students.size()) * 100); + int b1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); + form.setBpercent(b1 / new Double(students.size()) * 100); + int c1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); + form.setCpercent(c1 / new Double(students.size()) * 100); + int d1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); + form.setDpercent(d1 / new Double(students.size()) * 100); + list.add(form); + return list ; + } + + @ApiOperation("getForm2_2_2") + @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST) + public List getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){ + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + List list = new ArrayList<>(); + Form4 form4 = new Form4(); + form4.setName("联盟校"); + form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null)); + form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null)); + form4.setStdev(studentService.selectStdev(analyse.getId(),null)); + form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null)); + list.add(form4); + Form4 form = new Form4(); + form.setName(getLearnReqVo.getSchoolName()); + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),getLearnReqVo.getSchoolName())); + form.setMedianNumber(studentService.selectMedian(analyse.getId(),getLearnReqVo.getSchoolName())); + form.setStdev(studentService.selectStdev(analyse.getId(),getLearnReqVo.getSchoolName())); + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),getLearnReqVo.getSchoolName())); + list.add(form); + return list; + } + + @ApiOperation("getForm2_2_3") + @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST) + public List getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){ + List list = new ArrayList<>(); + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); + List allStudents = studentService.selectBySchoolName(analyse.getId(),null); + int allNumber = (int) Math.floor(allStudents.size()*0.27) ; + List allHighStudent = new ArrayList<>(); + List allLowStudent = new ArrayList<>(); + for (int i = 0; i < allNumber ; i++) { + allHighStudent.add(allStudents.get(i).getStudentNumber()); + } + for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){ + allLowStudent.add(allStudents.get(i).getStudentNumber()); + } + List students = studentService.selectBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); + int number = (int) Math.floor(students.size()*0.27) ; + List highStudent = new ArrayList<>(); + List lowStudent = new ArrayList<>(); + for (int i = 0; i < number ; i++) { + highStudent.add(students.get(i).getStudentNumber()); + } + for(int i =students.size()-number ; i < students.size() ; i++){ + lowStudent.add(students.get(i).getStudentNumber()); + } + List analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); + for(AnalyseDetail analyseDetail : analyseDetails){ + From5 from5 = new From5(); + Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,analyseDetail.getQuestionNumber()); + Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); + from5.setExamNumber(analyseDetail.getQuestionNumber()); + from5.setScore(analyseDetail.getScore()); + from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore()); + from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore()); + from5.setAllAvg(allSumScore / new Double(allStudents.size())); + from5.setSchoolAvg(schoolSumScore / new Double(students.size())); + int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null ,analyseDetail.getQuestionNumber(),allHighStudent,analyseDetail.getScore()); + int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null ,analyseDetail.getQuestionNumber(),allLowStudent,analyseDetail.getScore()); + int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent,analyseDetail.getScore()); + int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent,analyseDetail.getScore()); + from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber)); + from5.setSchoolDist(new Double(high-low)/new Double(number)); + list.add(from5); + } + return list; + } } diff --git a/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java b/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java index c9d4f72..1198274 100644 --- a/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java +++ b/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java @@ -12,4 +12,6 @@ import java.util.List; public interface AnalyseDetailMapper { int insertBatch(List list); + + List selectByAnalyseId(int analyseId); } diff --git a/src/main/java/com/jevon/mapper/StudentDetailMapper.java b/src/main/java/com/jevon/mapper/StudentDetailMapper.java index 0b52e19..bcdc0ab 100644 --- a/src/main/java/com/jevon/mapper/StudentDetailMapper.java +++ b/src/main/java/com/jevon/mapper/StudentDetailMapper.java @@ -12,4 +12,8 @@ import java.util.List; public interface StudentDetailMapper { int insertBatch(List list); + + Double selectSumScore(StudentDetail studentDetail); + + int selectTrueByExamNumber(StudentDetail studentDetail); } diff --git a/src/main/java/com/jevon/mapper/StudentMapper.java b/src/main/java/com/jevon/mapper/StudentMapper.java index 4fdbbee..e18e635 100644 --- a/src/main/java/com/jevon/mapper/StudentMapper.java +++ b/src/main/java/com/jevon/mapper/StudentMapper.java @@ -13,7 +13,23 @@ public interface StudentMapper { int insertBatch(List list); - List selectBySchoolName(Student student); + List selectByStudent(Student student); int selectCountByScore(Student student); + + List selectClassNameBySchool(Student student); + + //最高分 + Double selectMaxScore(Student student); + //最低分 + Double selectMinScore(Student student); + //平均分 + Double selectAvgScore(Student student); + //众数 + Double selectModeNumber(Student student); + //中位数 + Double selectMedian(Student student); + //标准差 + Double selectStdev(Student student); + } diff --git a/src/main/java/com/jevon/model/Analyse.java b/src/main/java/com/jevon/model/Analyse.java index 4f8329a..da41d3b 100644 --- a/src/main/java/com/jevon/model/Analyse.java +++ b/src/main/java/com/jevon/model/Analyse.java @@ -14,7 +14,7 @@ public class Analyse { private String examTime ; private String courseName ; private Date createTime ; - private Float maxScore ; + private Double maxScore ; public int getId() { return id; @@ -56,11 +56,11 @@ public class Analyse { this.createTime = createTime; } - public Float getMaxScore() { + public Double getMaxScore() { return maxScore; } - public void setMaxScore(Float maxScore) { + public void setMaxScore(Double maxScore) { this.maxScore = maxScore; } } diff --git a/src/main/java/com/jevon/model/AnalyseDetail.java b/src/main/java/com/jevon/model/AnalyseDetail.java index e159bbb..601afea 100644 --- a/src/main/java/com/jevon/model/AnalyseDetail.java +++ b/src/main/java/com/jevon/model/AnalyseDetail.java @@ -14,7 +14,7 @@ public class AnalyseDetail { private String questionNumber ; private String questionType ; private int difficult ; - private float score ; + private Double score ; private Date createTime ; public int getId() { @@ -49,11 +49,11 @@ public class AnalyseDetail { this.difficult = difficult; } - public float getScore() { + public Double getScore() { return score; } - public void setScore(float score) { + public void setScore(Double score) { this.score = score; } diff --git a/src/main/java/com/jevon/model/StudentDetail.java b/src/main/java/com/jevon/model/StudentDetail.java index 9e4122d..1aed6c2 100644 --- a/src/main/java/com/jevon/model/StudentDetail.java +++ b/src/main/java/com/jevon/model/StudentDetail.java @@ -3,6 +3,7 @@ package com.jevon.model; import com.jevon.vo.excel.ScoreExcelVo; import java.util.Date; +import java.util.List; /** * @author chen @@ -22,6 +23,9 @@ public class StudentDetail { private float score ; private Date createTime ; + //查询用 高分段 低分段学生考号 + private List studentNumbers ; + public StudentDetail(ScoreExcelVo scoreExcelVo) { this.schoolName = scoreExcelVo.getSchoolName(); this.className = scoreExcelVo.getClassName(); @@ -29,6 +33,9 @@ public class StudentDetail { this.studentNumber = scoreExcelVo.getStudentNumber(); } + public StudentDetail() { + } + public int getId() { return id; } @@ -108,4 +115,12 @@ public class StudentDetail { public void setCreateTime(Date createTime) { this.createTime = createTime; } + + public List getStudentNumbers() { + return studentNumbers; + } + + public void setStudentNumbers(List studentNumbers) { + this.studentNumbers = studentNumbers; + } } diff --git a/src/main/java/com/jevon/service/AnalyseDetailService.java b/src/main/java/com/jevon/service/AnalyseDetailService.java index bbcfc56..b963097 100644 --- a/src/main/java/com/jevon/service/AnalyseDetailService.java +++ b/src/main/java/com/jevon/service/AnalyseDetailService.java @@ -13,4 +13,7 @@ public interface AnalyseDetailService { int insertBatch(List list); + List selectByAnalyseId(int analyseId); + + } diff --git a/src/main/java/com/jevon/service/StudentDetailService.java b/src/main/java/com/jevon/service/StudentDetailService.java index ce03cb0..e7e3c7d 100644 --- a/src/main/java/com/jevon/service/StudentDetailService.java +++ b/src/main/java/com/jevon/service/StudentDetailService.java @@ -13,4 +13,8 @@ public interface StudentDetailService { int insertBatch(List list); + Double selectSumScore(int analyseId , String schoolName , String examNumber); + + int selectTrueByExamNumber(int analyseId , String schoolName , String examNumber , List studentNumbers ,Double score); + } diff --git a/src/main/java/com/jevon/service/StudentService.java b/src/main/java/com/jevon/service/StudentService.java index 1d4a274..dd8eb6c 100644 --- a/src/main/java/com/jevon/service/StudentService.java +++ b/src/main/java/com/jevon/service/StudentService.java @@ -15,6 +15,23 @@ public interface StudentService { List selectBySchoolName(int analyseId , String schoolName); + List selectByClassName(int analyseId , String schoolName ,String className); + int selectCountByScore(int analyseId , String schoolName , double begin , double end); + int selectCountBySchoolScore(int analyseId , String schoolName ,String className , double begin , double end); + + List selectClassNameBySchool(int analyseId , String schoolName); + + Double selectMaxScore(int analyseId , String schoolName); + + Double selectMinScore(int analyseId , String schoolName); + + Double selectAvgScore(int analyseId , String schoolName); + //众数 + Double selectModeNumber(int analyseId , String schoolName); + //中位数 + Double selectMedian(int analyseId , String schoolName); + //标准差 + Double selectStdev(int analyseId , String schoolName); } diff --git a/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java b/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java index 4561a97..d16c0ea 100644 --- a/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java +++ b/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java @@ -35,4 +35,9 @@ public class AnalyseDetailServiceImpl implements AnalyseDetailService { analyseDetailMapper.insertBatch(result); return 1 ; } + + @Override + public List selectByAnalyseId(int analyseId) { + return analyseDetailMapper.selectByAnalyseId(analyseId); + } } diff --git a/src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java b/src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java index be7d218..6849e8a 100644 --- a/src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java +++ b/src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java @@ -35,4 +35,24 @@ public class StudentDetailServiceImpl implements StudentDetailService { studentDetailMapper.insertBatch(result); return 1 ; } + + @Override + public Double selectSumScore(int analyseId, String schoolName, String examNumber) { + StudentDetail studentDetail = new StudentDetail(); + studentDetail.setAnalyseId(analyseId); + studentDetail.setSchoolName(schoolName); + studentDetail.setExamNumber(examNumber); + return studentDetailMapper.selectSumScore(studentDetail); + } + + @Override + public int selectTrueByExamNumber(int analyseId, String schoolName, String examNumber, List studentNumbers , Double score) { + StudentDetail studentDetail = new StudentDetail(); + studentDetail.setAnalyseId(analyseId); + studentDetail.setSchoolName(schoolName); + studentDetail.setExamNumber(examNumber); + studentDetail.setScore(new Float(score)); + studentDetail.setStudentNumbers(studentNumbers); + return studentDetailMapper.selectTrueByExamNumber(studentDetail); + } } diff --git a/src/main/java/com/jevon/service/impl/StudentServiceImpl.java b/src/main/java/com/jevon/service/impl/StudentServiceImpl.java index 631b3e6..cc606d0 100644 --- a/src/main/java/com/jevon/service/impl/StudentServiceImpl.java +++ b/src/main/java/com/jevon/service/impl/StudentServiceImpl.java @@ -41,7 +41,16 @@ public class StudentServiceImpl implements StudentService { Student student = new Student(); student.setAnalyseId(analyseId); student.setSchoolName(schoolName); - return studentMapper.selectBySchoolName(student); + return studentMapper.selectByStudent(student); + } + + @Override + public List selectByClassName(int analyseId, String schoolName, String className) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + student.setClassName(className); + return studentMapper.selectByStudent(student); } @Override @@ -53,4 +62,70 @@ public class StudentServiceImpl implements StudentService { student.setEnd(end); return studentMapper.selectCountByScore(student); } + + @Override + public int selectCountBySchoolScore(int analyseId, String schoolName, String className, double begin, double end) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + student.setClassName(className); + student.setBegin(begin); + student.setEnd(end); + return studentMapper.selectCountByScore(student); } + + @Override + public List selectClassNameBySchool(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectClassNameBySchool(student); + } + + @Override + public Double selectMaxScore(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectMaxScore(student); + } + + @Override + public Double selectMinScore(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectMinScore(student); + } + + @Override + public Double selectAvgScore(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectAvgScore(student); + } + + @Override + public Double selectModeNumber(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectModeNumber(student); + } + + @Override + public Double selectMedian(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectMedian(student); + } + + @Override + public Double selectStdev(int analyseId, String schoolName) { + Student student = new Student(); + student.setAnalyseId(analyseId); + student.setSchoolName(schoolName); + return studentMapper.selectStdev(student); + } } diff --git a/src/main/java/com/jevon/wordDTO/second/Form3.java b/src/main/java/com/jevon/wordDTO/second/Form3.java new file mode 100644 index 0000000..0dbece8 --- /dev/null +++ b/src/main/java/com/jevon/wordDTO/second/Form3.java @@ -0,0 +1,82 @@ +package com.jevon.wordDTO.second; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/21 0021 9:03 + */ +public class Form3 { + + private String name ; + private Double maxScore ; + private Double average ; + private Double minScore ; + private Double apercent ; + private Double bpercent ; + private Double cpercent ; + private Double dpercent ; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getMaxScore() { + return maxScore; + } + + public void setMaxScore(Double maxScore) { + this.maxScore = maxScore; + } + + public Double getAverage() { + return average; + } + + public void setAverage(Double average) { + this.average = average; + } + + public Double getMinScore() { + return minScore; + } + + public void setMinScore(Double minScore) { + this.minScore = minScore; + } + + public Double getApercent() { + return apercent; + } + + public void setApercent(Double apercent) { + this.apercent = apercent; + } + + public Double getBpercent() { + return bpercent; + } + + public void setBpercent(Double bpercent) { + this.bpercent = bpercent; + } + + public Double getCpercent() { + return cpercent; + } + + public void setCpercent(Double cpercent) { + this.cpercent = cpercent; + } + + public Double getDpercent() { + return dpercent; + } + + public void setDpercent(Double dpercent) { + this.dpercent = dpercent; + } +} diff --git a/src/main/java/com/jevon/wordDTO/second/Form4.java b/src/main/java/com/jevon/wordDTO/second/Form4.java new file mode 100644 index 0000000..7f4a32c --- /dev/null +++ b/src/main/java/com/jevon/wordDTO/second/Form4.java @@ -0,0 +1,55 @@ +package com.jevon.wordDTO.second; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/21 0021 9:51 + */ +public class Form4 { + + private String name ; + private Double modeNumber ; + private Double medianNumber ; + private Double stdev ; + private Double avgNumber ; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getModeNumber() { + return modeNumber; + } + + public void setModeNumber(Double modeNumber) { + this.modeNumber = modeNumber; + } + + public Double getMedianNumber() { + return medianNumber; + } + + public void setMedianNumber(Double medianNumber) { + this.medianNumber = medianNumber; + } + + public Double getStdev() { + return stdev; + } + + public void setStdev(Double stdev) { + this.stdev = stdev; + } + + public Double getAvgNumber() { + return avgNumber; + } + + public void setAvgNumber(Double avgNumber) { + this.avgNumber = avgNumber; + } +} diff --git a/src/main/java/com/jevon/wordDTO/second/From5.java b/src/main/java/com/jevon/wordDTO/second/From5.java new file mode 100644 index 0000000..00768b6 --- /dev/null +++ b/src/main/java/com/jevon/wordDTO/second/From5.java @@ -0,0 +1,82 @@ +package com.jevon.wordDTO.second; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/21 0021 9:59 + */ +public class From5 { + + private String examNumber ; + private Double score ; + private Double allRate ; + private Double schoolRate ; + private Double allAvg ; + private Double schoolAvg ; + private Double allDist ; + private Double schoolDist ; + + public String getExamNumber() { + return examNumber; + } + + public void setExamNumber(String examNumber) { + this.examNumber = examNumber; + } + + public Double getScore() { + return score; + } + + public void setScore(Double score) { + this.score = score; + } + + public Double getAllRate() { + return allRate; + } + + public void setAllRate(Double allRate) { + this.allRate = allRate; + } + + public Double getSchoolRate() { + return schoolRate; + } + + public void setSchoolRate(Double schoolRate) { + this.schoolRate = schoolRate; + } + + public Double getAllAvg() { + return allAvg; + } + + public void setAllAvg(Double allAvg) { + this.allAvg = allAvg; + } + + public Double getSchoolAvg() { + return schoolAvg; + } + + public void setSchoolAvg(Double schoolAvg) { + this.schoolAvg = schoolAvg; + } + + public Double getAllDist() { + return allDist; + } + + public void setAllDist(Double allDist) { + this.allDist = allDist; + } + + public Double getSchoolDist() { + return schoolDist; + } + + public void setSchoolDist(Double schoolDist) { + this.schoolDist = schoolDist; + } +} diff --git a/src/main/java/com/jevon/wordDTO/second/Table1.java b/src/main/java/com/jevon/wordDTO/second/Table1.java new file mode 100644 index 0000000..f8ba1fd --- /dev/null +++ b/src/main/java/com/jevon/wordDTO/second/Table1.java @@ -0,0 +1,28 @@ +package com.jevon.wordDTO.second; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/21 0021 8:34 + */ +public class Table1 { + + private String score ; + private int number ; + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public int getNumber() { + return number; + } + + public void setNumber(int number) { + this.number = number; + } +} diff --git a/src/main/resources/mapping/AnalyseDetailMapper.xml b/src/main/resources/mapping/AnalyseDetailMapper.xml index f17d260..5ebcc37 100644 --- a/src/main/resources/mapping/AnalyseDetailMapper.xml +++ b/src/main/resources/mapping/AnalyseDetailMapper.xml @@ -18,4 +18,8 @@ (#{emp.analyseId},#{emp.questionNumber},#{emp.questionType},#{emp.difficult},#{emp.score},#{emp.createTime}) + + \ No newline at end of file diff --git a/src/main/resources/mapping/StudentDetailMapper.xml b/src/main/resources/mapping/StudentDetailMapper.xml index 7a5abae..7465312 100644 --- a/src/main/resources/mapping/StudentDetailMapper.xml +++ b/src/main/resources/mapping/StudentDetailMapper.xml @@ -23,4 +23,34 @@ #{emp.studentNumber},#{emp.analyseId},#{emp.examNumber},#{emp.score},#{emp.createTime}) + + + + \ No newline at end of file diff --git a/src/main/resources/mapping/StudentMapper.xml b/src/main/resources/mapping/StudentMapper.xml index 207d2e5..b864b84 100644 --- a/src/main/resources/mapping/StudentMapper.xml +++ b/src/main/resources/mapping/StudentMapper.xml @@ -13,7 +13,7 @@ - + insert into sz_learn_student (school_name, class_name,student_name, student_number,analyse_id,score,create_time) values @@ -21,9 +21,9 @@ (#{emp.schoolName},#{emp.className},#{emp.studentName}, #{emp.studentNumber},#{emp.analyseId},#{emp.score},#{emp.createTime}) - + - select * from sz_learn_student where 1=1 and analyse_id = #{analyseId} @@ -31,11 +31,118 @@ and school_name = #{schoolName} + + and class_name = #{className} + order by score desc - + + + + + + + + + + + + + - + + + \ No newline at end of file -- libgit2 0.21.0