package com.jevon.controller; import com.jevon.model.Analyse; import com.jevon.model.Student; import com.jevon.service.*; 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 io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author chen * @version 1.0 * @date 2019/10/18 0018 15:54 */ @RestController @RequestMapping(value = "/getLearn") @Api(value = "学情分析") public class LearnStatController { @Autowired AnalyseService analyseService; @Autowired DimensionalService dimensionalService; @Autowired AnalyseDimensionalService analyseDimensionalService; @Autowired AnalyseDetailService analyseDetailService; @Autowired StudentDetailService studentDetailService; @Autowired StudentService studentService; @ApiOperation("getForm2_1") @RequestMapping(value = "getForm2_1", method = RequestMethod.POST) public Form1RepVo getForm2_1(@RequestBody GetLearnReqVo getLearnReqVo){ Form1RepVo form1RepVo = new Form1RepVo(); //2.1表 Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); //分数段 float maxScore = analyse.getMaxScore(); Map segmentMap = new HashMap<>(); segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); segmentMap.put("C(及格)",maxScore*0.7 + "~" + (maxScore*0.7-1f)+"分"); segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分"); form1RepVo.setMap(segmentMap); List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); double sum = new Double(students.size()); int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0.85,maxScore+1f); int b = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0.7,(maxScore*0.85)); int c = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0.6,(maxScore*0.7)); int d = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0,(maxScore*0.6)); List form1List = new ArrayList<>(); Form1 formA = new Form1(); formA.setLevel("A"); formA.setNumber(a); formA.setProp(a/sum); Form1 formB = new Form1(); formB.setLevel("B"); formB.setNumber(b); formB.setProp(b/sum); Form1 formC = new Form1(); formC.setLevel("C"); formC.setNumber(c); formC.setProp(c/sum); Form1 formD = new Form1(); formD.setLevel("D"); formD.setNumber(d); formD.setProp(d/sum); form1List.add(formA); form1List.add(formB); form1List.add(formC); form1List.add(formD); form1RepVo.setList(form1List); return form1RepVo; } @ApiOperation("getForm2_2") @RequestMapping(value = "getForm2_2", method = RequestMethod.POST) public List getForm2_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()); //先算高分段的分数 再去人数 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 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); 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())); list.add(form2); return list; } }