diff --git a/src/main/java/com/jevon/controller/LearnController.java b/src/main/java/com/jevon/controller/LearnController.java index ae35fe1..b5f0906 100644 --- a/src/main/java/com/jevon/controller/LearnController.java +++ b/src/main/java/com/jevon/controller/LearnController.java @@ -204,14 +204,16 @@ public class LearnController { @ApiOperation("考生成绩导入") @RequestMapping(value = "initScore", method = RequestMethod.POST) - public BaseVo initScore(@RequestBody InitAnalyseReqVo initAnalyseReqVo){ + public BaseVo initScore(@RequestBody InitScoreReqVo initScoreReqVo){ BaseVo baseVo = new BaseVo(); - analysisScoreExcel(initAnalyseReqVo); + String schoolName = analysisScoreExcel(initScoreReqVo); + leagueService.initLeagueSchool(initScoreReqVo.getLeagueId(),schoolName); return baseVo; } - private void analysisScoreExcel(InitAnalyseReqVo initAnalyseReqVo){ + private String analysisScoreExcel(InitAnalyseReqVo initAnalyseReqVo){ try{ + String schoolName = ""; Analyse analyse = analyseService.selectById(initAnalyseReqVo.getAnalyseId()); List analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); Map scoreMap = new HashMap<>(); @@ -281,41 +283,13 @@ public class LearnController { } studentService.insertBatch(students); studentDetailService.insertBatch(studentDetails); + return students.get(0).getSchoolName(); } }catch (Exception e){ e.printStackTrace(); System.out.println(e.toString()); } - } - - @ApiOperation("获取导入的学校列表") - @RequestMapping(value = "getSchoolName", method = RequestMethod.GET) - public List getSchoolName(int analyseId){ - return studentService.selectSchoolNameByAnalyse(analyseId); - } - - @ApiOperation("定义这次考试的联盟校") - @RequestMapping(value = "initLeague", method = RequestMethod.POST) - public BaseVo initLeague(@RequestBody InitLeagueReqVo initLeagueReqVo){ - BaseVo baseVo = new BaseVo(); - Analyse analyse = analyseService.selectById(initLeagueReqVo.getAnalyseId()); - if(analyse == null){ - baseVo.setMessage("请先创建考试"); - baseVo.setSuccess(false); - return baseVo; - } - List leagues = new ArrayList<>(); - for(InitLeague initLeague : initLeagueReqVo.getData()){ - for(String schoolName : initLeague.getSchoolNames()){ - League league = new League(); - league.setAnalyseId(analyse.getId()); - league.setLeague(initLeague.getLeague()); - league.setSchoolName(schoolName); - leagues.add(league); - } - } - leagueService.insertBatch(leagues); - return baseVo; + return null ; } @ApiOperation("获取该次考试联盟学校信息") @@ -347,11 +321,16 @@ public class LearnController { return getLeagueRepVo; } - @ApiOperation("更新联盟校信息") - @RequestMapping(value = "updateLeague", method = RequestMethod.POST) - public BaseVo updateLeague(@RequestBody UpdateLeagueReqVo updateLeagueReqVo){ + @ApiOperation("创建联盟") + @RequestMapping(value = "createLeague", method = RequestMethod.POST) + public BaseVo createLeague(@RequestBody CreateLeagueReqVo createLeagueReqVo){ BaseVo baseVo = new BaseVo(); - leagueService.update(updateLeagueReqVo.getId(),updateLeagueReqVo.getLeague()); + League league = new League(); + Analyse analyse = analyseService.selectById(createLeagueReqVo.getAnalyseId()); + league.setAnalyseId(analyse.getId()); + league.setLeague(createLeagueReqVo.getLeague()); + leagueService.insert(league); + baseVo.setMessage(league.getId() +""); return baseVo; } } diff --git a/src/main/java/com/jevon/controller/LearnStatController.java b/src/main/java/com/jevon/controller/LearnStatController.java index 5cac0a7..d8b06ec 100644 --- a/src/main/java/com/jevon/controller/LearnStatController.java +++ b/src/main/java/com/jevon/controller/LearnStatController.java @@ -130,7 +130,7 @@ public class LearnStatController { List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); if(leagues == null){ repVO.setSuccess(false); - repVO.setMessage("请先设定区"); + repVO.setMessage("请先设定联盟校"); return repVO; } List allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,null); @@ -274,7 +274,7 @@ public class LearnStatController { List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); if(leagues == null){ repVO.setSuccess(false); - repVO.setMessage("请先设定区"); + repVO.setMessage("请先设定联盟校"); return repVO; } List list = new ArrayList<>(); @@ -346,7 +346,7 @@ public class LearnStatController { List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); if(leagues == null){ repVO.setSuccess(false); - repVO.setMessage("请先设定区"); + repVO.setMessage("请先设定联盟校"); return repVO; } List list = new ArrayList<>(); @@ -394,7 +394,7 @@ public class LearnStatController { List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); if(leagues == null){ repVO.setSuccess(false); - repVO.setMessage("请先设定区"); + repVO.setMessage("请先设定联盟校"); return repVO; } List allHighStudent = new ArrayList<>(); @@ -486,7 +486,7 @@ public class LearnStatController { List leagues = leagueService.getLeagueBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); if(leagues == null){ repVO.setSuccess(false); - repVO.setMessage("请先设定区"); + repVO.setMessage("请先设定联盟校"); return repVO; } List list = new ArrayList<>(); @@ -689,7 +689,7 @@ public class LearnStatController { @ApiOperation("获取教学改进建议") @RequestMapping(value = "getSuggest", method = RequestMethod.POST) - public SuggestRepVo getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){ + public String getSuggest(@RequestBody GetLearnReqVo getLearnReqVo){ SuggestRepVo suggestRepVo = new SuggestRepVo() ; Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); Double avg = studentService.selectAvgScore(analyse.getId(),null,getLearnReqVo.getSchoolName()) ; @@ -700,7 +700,39 @@ public class LearnStatController { List students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName()); int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1f); //优秀率 - String aStr = df.format(new Double(a) / new Double(students.size()) * 100); + Double apercent = new Double(a) / new Double(students.size()) * 100 ; + String aStr = df.format(apercent); + String access = ""; + if(avg>=80){ + if(apercent >= 20){ + access = "良好"; + }else { + access = "相对可以"; + } + }else if(avg >= 75){ + if(apercent >= 35){ + access = "很好"; + }else if(apercent >= 20){ + access = "良好"; + }else { + access = "相对可以"; + } + }else if(avg >= 70){ + if(apercent >= 20){ + access = "良好"; + }else { + access = "相对可以"; + } + } else if (avg >= 60) { + if(apercent >= 10){ + access = "相对可以"; + }else { + access = "一般"; + } + }else { + access = "暴露出一些问题,试卷偏难,学生掌握不够理想"; + } + suggestRepVo.setAssess(access); suggestRepVo.setDifficultyDegree(avgStr); suggestRepVo.setExcellentRate(aStr); suggestRepVo.setErrorList(getErrorRate(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),students.size())); @@ -748,10 +780,10 @@ public class LearnStatController { suggestRepVo.setLessSkillList(lessSkillList); suggestRepVo.setMidSkillList(midSkillList); suggestRepVo.setHighSkillList(highSkillList); - return suggestRepVo; + return initSuggest(suggestRepVo); } - public List getErrorRate(int analyseId , String schoolName , int studentSize){ + private List getErrorRate(int analyseId , String schoolName , int studentSize){ List errorList = new ArrayList<>(); List analyseDetails = analyseDetailService.selectByAnalyseId(analyseId); double errorNumber = Math.ceil(studentSize * 0.15) ; @@ -765,4 +797,100 @@ public class LearnStatController { } return errorList; } + + private String initSuggest(SuggestRepVo suggestRepVo){ + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append("本次检测总体情况").append(suggestRepVo.getAssess()).append(",难度系数是") + .append(suggestRepVo.getDifficultyDegree()).append(",优秀率是").append(suggestRepVo.getExcellentRate()).append("%。") + .append("对有关知识,总体掌握情况比较好。从考试结果分析,各知识点掌握程度较好,唯"); + for (int i = 0; i < suggestRepVo.getMidKnowledgeList().size(); i++) { + if(i == suggestRepVo.getMidKnowledgeList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getMidKnowledgeList().get(i)).append("、"); + } + } + stringBuffer.append("几个知识点掌握较弱,"); + for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) { + if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、"); + } + } + stringBuffer.append("几个知识点学生的理解有些问题。探究技能方面:"); + for (int i = 0; i < suggestRepVo.getHighSkillList().size(); i++) { + if(i == suggestRepVo.getHighSkillList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getHighSkillList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getHighSkillList().get(i)).append("、"); + } + } + stringBuffer.append("掌握的比较好,"); + for (int i = 0; i < suggestRepVo.getMidSkillList().size(); i++) { + if(i == suggestRepVo.getMidSkillList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getMidSkillList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getMidSkillList().get(i)).append("、"); + } + } + stringBuffer.append("等相对较弱一些,而"); + for (int i = 0; i < suggestRepVo.getLessSkillList().size(); i++) { + if(i == suggestRepVo.getLessSkillList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getLessSkillList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getLessSkillList().get(i)).append("、"); + } + } + stringBuffer.append("学生掌握有些问题。学习能力上:"); + for (int i = 0; i < suggestRepVo.getHighAbilityList().size(); i++) { + if(i == suggestRepVo.getHighAbilityList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getHighAbilityList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getHighAbilityList().get(i)).append("、"); + } + } + stringBuffer.append("掌握较好,"); + for (int i = 0; i < suggestRepVo.getMidAbilityList().size(); i++) { + if(i == suggestRepVo.getMidAbilityList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getMidAbilityList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getMidAbilityList().get(i)).append("、"); + } + } + stringBuffer.append("等相对较弱一些,"); + for (int i = 0; i < suggestRepVo.getLessAbilityList().size(); i++) { + if(i == suggestRepVo.getLessAbilityList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i)).append("、"); + } + } + stringBuffer.append("学得还欠缺一些。另外,部分学生审题不够清楚、思维有定势,如选择题"); + for (int i = 0; i < suggestRepVo.getErrorList().size(); i++) { + if(i == suggestRepVo.getErrorList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getErrorList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getErrorList().get(i)).append("、"); + } + } + stringBuffer.append("错误率大于15%\n后续复习巩固可以从抓好基础、提高能力和注重应用上下功夫。提升"); + for (int i = 0; i < suggestRepVo.getLessKnowledgeList().size(); i++) { + if(i == suggestRepVo.getLessKnowledgeList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getLessKnowledgeList().get(i)).append("、"); + } + } + stringBuffer.append("的教学,减少低分面;以思维教学促进学生能力的提高,特别是"); + for (int i = 0; i < suggestRepVo.getLessAbilityList().size(); i++) { + if(i == suggestRepVo.getLessAbilityList().size() - 1 ){ + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i)); + }else { + stringBuffer.append(suggestRepVo.getLessAbilityList().get(i)).append("、"); + } + } + stringBuffer.append("等方面的能力;重视将知识应用到具体的实践中,尤其是做好试题审题和思路分析的引导,教师自己开发一些新情景的试题。"); + return stringBuffer.toString(); + } } diff --git a/src/main/java/com/jevon/mapper/LeagueMapper.java b/src/main/java/com/jevon/mapper/LeagueMapper.java index 80bba20..2a60c8f 100644 --- a/src/main/java/com/jevon/mapper/LeagueMapper.java +++ b/src/main/java/com/jevon/mapper/LeagueMapper.java @@ -11,6 +11,10 @@ import java.util.List; */ public interface LeagueMapper { + int insert(League league); + + League selectById(int id); + int insertBatch(List list); int update(League league); diff --git a/src/main/java/com/jevon/service/LeagueService.java b/src/main/java/com/jevon/service/LeagueService.java index 06c17ab..d5fdf0f 100644 --- a/src/main/java/com/jevon/service/LeagueService.java +++ b/src/main/java/com/jevon/service/LeagueService.java @@ -11,10 +11,14 @@ import java.util.List; */ public interface LeagueService { + int insert(League league); + int insertBatch(List list); int update(int id , String league); + int initLeagueSchool(int id , String schoolName); + List selectByAnalyseId(int analyseId); List getLeagueBySchoolName(int analyseId , String schoolName); diff --git a/src/main/java/com/jevon/service/impl/LeagueServiceImpl.java b/src/main/java/com/jevon/service/impl/LeagueServiceImpl.java index 7b038ec..3343002 100644 --- a/src/main/java/com/jevon/service/impl/LeagueServiceImpl.java +++ b/src/main/java/com/jevon/service/impl/LeagueServiceImpl.java @@ -3,6 +3,7 @@ package com.jevon.service.impl; import com.jevon.mapper.LeagueMapper; import com.jevon.model.League; import com.jevon.service.LeagueService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -21,6 +22,11 @@ public class LeagueServiceImpl implements LeagueService { LeagueMapper leagueMapper; @Override + public int insert(League league) { + return leagueMapper.insert(league); + } + + @Override public int insertBatch(List list) { return leagueMapper.insertBatch(list); } @@ -34,12 +40,39 @@ public class LeagueServiceImpl implements LeagueService { } @Override + public int initLeagueSchool(int id, String schoolName) { + League result = leagueMapper.selectById(id) ; + League search = new League(); + search.setAnalyseId(result.getAnalyseId()); + search.setLeague(result.getLeague()); + List list = leagueMapper.selectByLeague(search); + boolean isCreate = true ; + for(League temp : list){ + if(StringUtils.isBlank(temp.getSchoolName())){ + temp.setSchoolName(schoolName); + leagueMapper.update(temp); + isCreate = false; + break; + } + } + if(isCreate){ + League createLeague = new League(); + createLeague.setAnalyseId(result.getAnalyseId()); + createLeague.setLeague(result.getLeague()); + createLeague.setSchoolName(schoolName); + leagueMapper.insert(createLeague); + } + return 1; + } + + @Override public List selectByAnalyseId(int analyseId) { League league = new League(); league.setAnalyseId(analyseId); return leagueMapper.selectByLeague(league); } + @Override public List getLeagueBySchoolName(int analyseId, String schoolName) { League league = new League(); diff --git a/src/main/java/com/jevon/vo/req/CreateLeagueReqVo.java b/src/main/java/com/jevon/vo/req/CreateLeagueReqVo.java new file mode 100644 index 0000000..28b4dff --- /dev/null +++ b/src/main/java/com/jevon/vo/req/CreateLeagueReqVo.java @@ -0,0 +1,28 @@ +package com.jevon.vo.req; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/23 0023 15:46 + */ +public class CreateLeagueReqVo { + + private int analyseId ; + private String league ; + + public int getAnalyseId() { + return analyseId; + } + + public void setAnalyseId(int analyseId) { + this.analyseId = analyseId; + } + + public String getLeague() { + return league; + } + + public void setLeague(String league) { + this.league = league; + } +} diff --git a/src/main/java/com/jevon/vo/req/InitScoreReqVo.java b/src/main/java/com/jevon/vo/req/InitScoreReqVo.java new file mode 100644 index 0000000..613993f --- /dev/null +++ b/src/main/java/com/jevon/vo/req/InitScoreReqVo.java @@ -0,0 +1,19 @@ +package com.jevon.vo.req; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/23 0023 15:50 + */ +public class InitScoreReqVo extends InitAnalyseReqVo { + + private int leagueId ; + + public int getLeagueId() { + return leagueId; + } + + public void setLeagueId(int leagueId) { + this.leagueId = leagueId; + } +} diff --git a/src/main/resources/mapping/AnalyseMapper.xml b/src/main/resources/mapping/AnalyseMapper.xml index 5f2a00f..1e9b24c 100644 --- a/src/main/resources/mapping/AnalyseMapper.xml +++ b/src/main/resources/mapping/AnalyseMapper.xml @@ -38,7 +38,7 @@ + select * from sz_learn_league where id = #{id} + + - update sz_learn_league set league = #{league} where id = #{id} + update sz_learn_league set league = #{league} , school_name = #{schoolName} where id = #{id}