From c6a8c4095d3c4bc39b165fa8adf33d98a0b96c1c Mon Sep 17 00:00:00 2001 From: 陈杰 <504987307@qq.com> Date: Fri, 18 Oct 2019 13:37:34 +0800 Subject: [PATCH] 试卷导入 --- src/main/java/com/jevon/controller/LearnController.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- src/main/java/com/jevon/controller/ScheduleInitController.java | 18 +++++++++--------- src/main/java/com/jevon/enums/DifficultEnums.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/enums/DimensionalEnums.java | 37 +++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/mapper/AnalyseDetailMapper.java | 15 +++++++++++++++ src/main/java/com/jevon/mapper/AnalyseDimensionalMapper.java | 15 +++++++++++++++ src/main/java/com/jevon/mapper/AnalyseMapper.java | 19 +++++++++++++++++++ src/main/java/com/jevon/mapper/DimensionalMapper.java | 17 +++++++++++++++++ src/main/java/com/jevon/model/Analyse.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/model/AnalyseDetail.java | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/model/AnalyseDimensional.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/model/Dimensional.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/service/AnalyseDetailService.java | 16 ++++++++++++++++ src/main/java/com/jevon/service/AnalyseDimensionalService.java | 16 ++++++++++++++++ src/main/java/com/jevon/service/AnalyseService.java | 20 ++++++++++++++++++++ src/main/java/com/jevon/service/DimensionalService.java | 19 +++++++++++++++++++ src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/service/impl/AnalyseDimensionalServiceImpl.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/service/impl/AnalyseServiceImpl.java | 36 ++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/service/impl/DimensionalServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/vo/excel/ExamExcelVo.java | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/mapping/AnalyseDetailMapper.xml | 21 +++++++++++++++++++++ src/main/resources/mapping/AnalyseDimensionalMapper.xml | 20 ++++++++++++++++++++ src/main/resources/mapping/AnalyseMapper.xml | 30 ++++++++++++++++++++++++++++++ src/main/resources/mapping/DimensionalMapper.xml | 25 +++++++++++++++++++++++++ 25 files changed, 978 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/jevon/enums/DifficultEnums.java create mode 100644 src/main/java/com/jevon/enums/DimensionalEnums.java create mode 100644 src/main/java/com/jevon/mapper/AnalyseDetailMapper.java create mode 100644 src/main/java/com/jevon/mapper/AnalyseDimensionalMapper.java create mode 100644 src/main/java/com/jevon/mapper/AnalyseMapper.java create mode 100644 src/main/java/com/jevon/mapper/DimensionalMapper.java create mode 100644 src/main/java/com/jevon/model/Analyse.java create mode 100644 src/main/java/com/jevon/model/AnalyseDetail.java create mode 100644 src/main/java/com/jevon/model/AnalyseDimensional.java create mode 100644 src/main/java/com/jevon/model/Dimensional.java create mode 100644 src/main/java/com/jevon/service/AnalyseDetailService.java create mode 100644 src/main/java/com/jevon/service/AnalyseDimensionalService.java create mode 100644 src/main/java/com/jevon/service/AnalyseService.java create mode 100644 src/main/java/com/jevon/service/DimensionalService.java create mode 100644 src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java create mode 100644 src/main/java/com/jevon/service/impl/AnalyseDimensionalServiceImpl.java create mode 100644 src/main/java/com/jevon/service/impl/AnalyseServiceImpl.java create mode 100644 src/main/java/com/jevon/service/impl/DimensionalServiceImpl.java create mode 100644 src/main/java/com/jevon/vo/excel/ExamExcelVo.java create mode 100644 src/main/resources/mapping/AnalyseDetailMapper.xml create mode 100644 src/main/resources/mapping/AnalyseDimensionalMapper.xml create mode 100644 src/main/resources/mapping/AnalyseMapper.xml create mode 100644 src/main/resources/mapping/DimensionalMapper.xml diff --git a/src/main/java/com/jevon/controller/LearnController.java b/src/main/java/com/jevon/controller/LearnController.java index ce56901..d5000e5 100644 --- a/src/main/java/com/jevon/controller/LearnController.java +++ b/src/main/java/com/jevon/controller/LearnController.java @@ -1,15 +1,25 @@ package com.jevon.controller; +import com.jevon.enums.DifficultEnums; +import com.jevon.enums.DimensionalEnums; import com.jevon.model.*; +import com.jevon.service.AnalyseDetailService; +import com.jevon.service.AnalyseDimensionalService; +import com.jevon.service.AnalyseService; +import com.jevon.service.DimensionalService; import com.jevon.vo.BaseVo; +import com.jevon.vo.excel.ExamExcelVo; import com.jevon.vo.req.InitAnalyseReqVo; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +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.io.File; @@ -26,11 +36,31 @@ import java.util.*; @Api(value = "学情分析") public class LearnController { + @Autowired + AnalyseService analyseService; + @Autowired + DimensionalService dimensionalService; + + @Autowired + AnalyseDimensionalService analyseDimensionalService; + + @Autowired + AnalyseDetailService analyseDetailService; + + @ApiOperation("试卷信息导入") + @RequestMapping(value = "initAnalyse", method = RequestMethod.POST) public BaseVo initAnalyse(@RequestBody InitAnalyseReqVo initAnalyseReqVo){ BaseVo baseVo = new BaseVo(); - Date date = new Date(); + analysisExcel(initAnalyseReqVo); + return baseVo; + } + + private void analysisExcel(InitAnalyseReqVo initAnalyseReqVo){ try{ + List analyseDetails = new ArrayList<>(); + List analyseDimensionals = new ArrayList<>(); + Analyse analyse = analyseService.selectById(initAnalyseReqVo.getAnalyseId()); String fileUrl = initAnalyseReqVo.getUrl(); File excelFile = new File(fileUrl); // 获得工作簿 @@ -43,9 +73,8 @@ public class LearnController { } // 获得工作表 Sheet sheet = workbook.getSheetAt(0); + Date date = new Date(); int rows = sheet.getPhysicalNumberOfRows(); - int column = 0 ; - int courseNumber = 0; for (int i = 0; i < rows; i++) { // 获取第i行数据 Row sheetRow = sheet.getRow(i); @@ -54,24 +83,63 @@ public class LearnController { String title = sheetRow.getCell(0).getStringCellValue().trim(); }else if(i == 1){ //获取表头 - int j = 0 ; - while (sheetRow.getCell(j) != null && StringUtils.isNotBlank(sheetRow.getCell(j).getStringCellValue().trim())) { - j++ ; - } - column = j ; } else { - for (int j = 0; j < column; j++) { - Cell cell = sheetRow.getCell(j); - if(cell != null){ - cell.setCellType(CellType.STRING); - } + ExamExcelVo examExcelVo = new ExamExcelVo(sheetRow); + AnalyseDetail analyseDetail = new AnalyseDetail(); + String questionNumber = null ; + if(StringUtils.isNotBlank(examExcelVo.getQuestionSmallNumber())){ + questionNumber = examExcelVo.getQuestionNumber()+"("+examExcelVo.getQuestionSmallNumber()+")"; + }else { + questionNumber = examExcelVo.getQuestionNumber() ; } + analyseDetail.setQuestionNumber(questionNumber); + analyseDetail.setAnalyseId(analyse.getId()); + analyseDetail.setQuestionType(examExcelVo.getQuestionType()); + analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); + analyseDetail.setScore(new Float(examExcelVo.getScore())); + analyseDetail.setCreateTime(date); + analyseDetails.add(analyseDetail); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getAbility(),DimensionalEnums.ability.getDimensionalType(),analyseDimensionals); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getSkill(),DimensionalEnums.skill.getDimensionalType(),analyseDimensionals); + initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getThink(),DimensionalEnums.think.getDimensionalType(),analyseDimensionals); } } + analyseDetailService.insertBatch(analyseDetails); + analyseDimensionalService.insertBatch(analyseDimensionals); }catch (Exception e){ System.out.println(e); - baseVo.setSuccess(false); } - return baseVo; } + + private void initAnalyseDimensional(Analyse analyse ,String questionNumber , String score , String dimensionalMessage , int dimensionalType , List analyseDimensionals){ + if(StringUtils.isNotBlank(dimensionalMessage)){ + String[] message =dimensionalMessage.split("、"); + for (int j = 0; j < message.length ; j++) { + if(StringUtils.isNotBlank(message[j])){ + Dimensional dimensional = new Dimensional(); + dimensional.setDimensionalType(dimensionalType); + dimensional.setDimensionalName(message[j]); + //查数据库是否已存在该四维诊断 不存在则导入 + Dimensional result = dimensionalService.selectByTypeAndName(dimensionalType,message[j]); + int dimensionalId = 0 ; + if(result == null || result.getId() == 0){ + dimensional.setCreateTime(new Date()); + dimensionalId = dimensionalService.insert(dimensional); + }else { + dimensionalId = result.getId(); + } + AnalyseDimensional analyseDimensional = new AnalyseDimensional(); + analyseDimensional.setAnalyseId(analyse.getId()); + analyseDimensional.setDimensionalId(dimensionalId); + analyseDimensional.setQuestionNumber(questionNumber); + analyseDimensional.setScore(new Float(score)); + analyseDimensional.setCreateTime(new Date()); + analyseDimensionals.add(analyseDimensional); + } + } + } + } + + } diff --git a/src/main/java/com/jevon/controller/ScheduleInitController.java b/src/main/java/com/jevon/controller/ScheduleInitController.java index 74616e2..489ea5d 100644 --- a/src/main/java/com/jevon/controller/ScheduleInitController.java +++ b/src/main/java/com/jevon/controller/ScheduleInitController.java @@ -314,7 +314,7 @@ public class ScheduleInitController { teacher.setTeacherName(json.get("name").toString()); teachers.add(teacher); } - initTeacher(teachers); + initTeacher(teachers,schoolId); JSONObject classList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolClass?SchoolId="+schoolId); List openClasses = (List)classList.get("data"); List classModels = new ArrayList<>(); @@ -326,7 +326,7 @@ public class ScheduleInitController { classModel.setClassName(json.get("class_name").toString()); classModels.add(classModel); } - initClass(classModels); + initClass(classModels,schoolId); JSONObject courseList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolSubject?SchoolId="+schoolId); List openCourses = (List)courseList.get("data"); List courses = new ArrayList<>(); @@ -338,12 +338,12 @@ public class ScheduleInitController { course.setCourseType(0); courses.add(course); } - initCourse(courses); + initCourse(courses,schoolId); } - public BaseVo initCourse(List courseList){ + public BaseVo initCourse(List courseList ,int schoolId){ BaseVo baseVo = new BaseVo(); - courseService.deleteSchoolId(courseList.get(0).getSchoolId()); + courseService.deleteSchoolId(schoolId); for(Course course : courseList){ if(course.getCourseId() == 0 || StringUtils.isBlank(course.getCourseName())){ baseVo.setSuccess(false); @@ -360,9 +360,9 @@ public class ScheduleInitController { } } - public BaseVo initClass(List classList){ + public BaseVo initClass(List classList , int schoolId){ BaseVo baseVo = new BaseVo(); - classModelService.deleteSchool(classList.get(0).getSchoolId()); + classModelService.deleteSchool(schoolId); for(ClassModel classModel : classList){ if(classModel.getClassId() == 0 || StringUtils.isBlank(classModel.getClassName()) || StringUtils.isBlank(classModel.getGrade()) || classModel.getSchoolId() == 0){ @@ -380,7 +380,7 @@ public class ScheduleInitController { } } - public BaseVo initTeacher(List teacherList){ + public BaseVo initTeacher(List teacherList , int schoolId){ List result = new ArrayList<>(); for(Teacher teacher : teacherList){ boolean isExist = false; @@ -394,7 +394,7 @@ public class ScheduleInitController { } } BaseVo baseVo = new BaseVo(); - teacherService.deleteSchool(result.get(0).getSchoolId()); + teacherService.deleteSchool(schoolId); for(Teacher teacher : result){ if(teacher.getSchoolId() == 0 || StringUtils.isBlank(teacher.getTeacherName()) || teacher.getTeacherId() == 0){ diff --git a/src/main/java/com/jevon/enums/DifficultEnums.java b/src/main/java/com/jevon/enums/DifficultEnums.java new file mode 100644 index 0000000..53551cd --- /dev/null +++ b/src/main/java/com/jevon/enums/DifficultEnums.java @@ -0,0 +1,46 @@ +package com.jevon.enums; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 8:40 + */ +public enum DifficultEnums { + + easy(1,"易"), + medium(2,"中"), + difficult(3,"难"); + + private int difficultType ; + private String difficultName ; + + DifficultEnums(int difficultType, String difficultName) { + this.difficultType = difficultType; + this.difficultName = difficultName; + } + + public int getDifficultType() { + return difficultType; + } + + public void setDifficultType(int difficultType) { + this.difficultType = difficultType; + } + + public String getDifficultName() { + return difficultName; + } + + public void setDifficultName(String difficultName) { + this.difficultName = difficultName; + } + + public static int getDifficultType(String difficultName){ + for (DifficultEnums difficultEnums : DifficultEnums.values()) { + if (difficultEnums.getDifficultName().equals(difficultName)) { + return difficultEnums.getDifficultType(); + } + } + return 0 ; + } +} diff --git a/src/main/java/com/jevon/enums/DimensionalEnums.java b/src/main/java/com/jevon/enums/DimensionalEnums.java new file mode 100644 index 0000000..ba07dd3 --- /dev/null +++ b/src/main/java/com/jevon/enums/DimensionalEnums.java @@ -0,0 +1,37 @@ +package com.jevon.enums; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 8:33 + */ +public enum DimensionalEnums { + knowledge(1,"知识点"), + ability(2,"能力"), + skill(3,"技能"), + think(4,"四维"); + + private int dimensionalType ; + private String dimensionalName ; + + DimensionalEnums(int dimensionalType, String dimensionalName) { + this.dimensionalType = dimensionalType; + this.dimensionalName = dimensionalName; + } + + public int getDimensionalType() { + return dimensionalType; + } + + public void setDimensionalType(int dimensionalType) { + this.dimensionalType = dimensionalType; + } + + public String getDimensionalName() { + return dimensionalName; + } + + public void setDimensionalName(String dimensionalName) { + this.dimensionalName = dimensionalName; + } +} diff --git a/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java b/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java new file mode 100644 index 0000000..c9d4f72 --- /dev/null +++ b/src/main/java/com/jevon/mapper/AnalyseDetailMapper.java @@ -0,0 +1,15 @@ +package com.jevon.mapper; + +import com.jevon.model.AnalyseDetail; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 11:11 + */ +public interface AnalyseDetailMapper { + + int insertBatch(List list); +} diff --git a/src/main/java/com/jevon/mapper/AnalyseDimensionalMapper.java b/src/main/java/com/jevon/mapper/AnalyseDimensionalMapper.java new file mode 100644 index 0000000..ec6b707 --- /dev/null +++ b/src/main/java/com/jevon/mapper/AnalyseDimensionalMapper.java @@ -0,0 +1,15 @@ +package com.jevon.mapper; + +import com.jevon.model.AnalyseDimensional; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 11:12 + */ +public interface AnalyseDimensionalMapper { + + int insertBatch(List list); +} diff --git a/src/main/java/com/jevon/mapper/AnalyseMapper.java b/src/main/java/com/jevon/mapper/AnalyseMapper.java new file mode 100644 index 0000000..b0b10ef --- /dev/null +++ b/src/main/java/com/jevon/mapper/AnalyseMapper.java @@ -0,0 +1,19 @@ +package com.jevon.mapper; + +import com.jevon.model.Analyse; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:56 + */ +public interface AnalyseMapper { + + int insert(Analyse analyse); + + List select(Analyse analyse); + + Analyse selectById(int id); +} diff --git a/src/main/java/com/jevon/mapper/DimensionalMapper.java b/src/main/java/com/jevon/mapper/DimensionalMapper.java new file mode 100644 index 0000000..f0f80c3 --- /dev/null +++ b/src/main/java/com/jevon/mapper/DimensionalMapper.java @@ -0,0 +1,17 @@ +package com.jevon.mapper; + +import com.jevon.model.Dimensional; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:11 + */ +public interface DimensionalMapper { + + int insert(Dimensional dimensional); + + List select(Dimensional dimensional); +} diff --git a/src/main/java/com/jevon/model/Analyse.java b/src/main/java/com/jevon/model/Analyse.java new file mode 100644 index 0000000..b61147a --- /dev/null +++ b/src/main/java/com/jevon/model/Analyse.java @@ -0,0 +1,57 @@ +package com.jevon.model; + +import java.util.Date; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:55 + */ +public class Analyse { + + private int id ; + private String examName ; + private Date examTime ; + private String courseName ; + private Date createTime ; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getExamName() { + return examName; + } + + public void setExamName(String examName) { + this.examName = examName; + } + + public Date getExamTime() { + return examTime; + } + + public void setExamTime(Date examTime) { + this.examTime = examTime; + } + + public String getCourseName() { + return courseName; + } + + public void setCourseName(String courseName) { + this.courseName = courseName; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } +} diff --git a/src/main/java/com/jevon/model/AnalyseDetail.java b/src/main/java/com/jevon/model/AnalyseDetail.java new file mode 100644 index 0000000..e159bbb --- /dev/null +++ b/src/main/java/com/jevon/model/AnalyseDetail.java @@ -0,0 +1,75 @@ +package com.jevon.model; + +import java.util.Date; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 8:38 + */ +public class AnalyseDetail { + + private int id ; + private int analyseId ; + private String questionNumber ; + private String questionType ; + private int difficult ; + private float score ; + private Date createTime ; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getAnalyseId() { + return analyseId; + } + + public void setAnalyseId(int analyseId) { + this.analyseId = analyseId; + } + + public String getQuestionNumber() { + return questionNumber; + } + + public void setQuestionNumber(String questionNumber) { + this.questionNumber = questionNumber; + } + + public int getDifficult() { + return difficult; + } + + public void setDifficult(int difficult) { + this.difficult = difficult; + } + + public float getScore() { + return score; + } + + public void setScore(float score) { + this.score = score; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getQuestionType() { + return questionType; + } + + public void setQuestionType(String questionType) { + this.questionType = questionType; + } +} diff --git a/src/main/java/com/jevon/model/AnalyseDimensional.java b/src/main/java/com/jevon/model/AnalyseDimensional.java new file mode 100644 index 0000000..769838b --- /dev/null +++ b/src/main/java/com/jevon/model/AnalyseDimensional.java @@ -0,0 +1,66 @@ +package com.jevon.model; + +import java.util.Date; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 8:42 + */ +public class AnalyseDimensional { + + private int id ; + private int analyseId ; + private String questionNumber ; + private int dimensionalId ; + private float score ; + private Date createTime ; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getAnalyseId() { + return analyseId; + } + + public void setAnalyseId(int analyseId) { + this.analyseId = analyseId; + } + + public String getQuestionNumber() { + return questionNumber; + } + + public void setQuestionNumber(String questionNumber) { + this.questionNumber = questionNumber; + } + + public int getDimensionalId() { + return dimensionalId; + } + + public void setDimensionalId(int dimensionalId) { + this.dimensionalId = dimensionalId; + } + + public float getScore() { + return score; + } + + public void setScore(float score) { + this.score = score; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } +} diff --git a/src/main/java/com/jevon/model/Dimensional.java b/src/main/java/com/jevon/model/Dimensional.java new file mode 100644 index 0000000..ce68412 --- /dev/null +++ b/src/main/java/com/jevon/model/Dimensional.java @@ -0,0 +1,48 @@ +package com.jevon.model; + +import java.util.Date; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 8:37 + */ +public class Dimensional { + + private int id ; + private int dimensionalType ; + private String dimensionalName; + private Date createTime ; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getDimensionalType() { + return dimensionalType; + } + + public void setDimensionalType(int dimensionalType) { + this.dimensionalType = dimensionalType; + } + + public String getDimensionalName() { + return dimensionalName; + } + + public void setDimensionalName(String dimensionalName) { + this.dimensionalName = dimensionalName; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } +} diff --git a/src/main/java/com/jevon/service/AnalyseDetailService.java b/src/main/java/com/jevon/service/AnalyseDetailService.java new file mode 100644 index 0000000..bbcfc56 --- /dev/null +++ b/src/main/java/com/jevon/service/AnalyseDetailService.java @@ -0,0 +1,16 @@ +package com.jevon.service; + +import com.jevon.model.AnalyseDetail; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 11:25 + */ +public interface AnalyseDetailService { + + int insertBatch(List list); + +} diff --git a/src/main/java/com/jevon/service/AnalyseDimensionalService.java b/src/main/java/com/jevon/service/AnalyseDimensionalService.java new file mode 100644 index 0000000..52d7ee1 --- /dev/null +++ b/src/main/java/com/jevon/service/AnalyseDimensionalService.java @@ -0,0 +1,16 @@ +package com.jevon.service; + +import com.jevon.model.AnalyseDimensional; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 11:25 + */ +public interface AnalyseDimensionalService { + + int insertBatch(List list); + +} diff --git a/src/main/java/com/jevon/service/AnalyseService.java b/src/main/java/com/jevon/service/AnalyseService.java new file mode 100644 index 0000000..3b874b2 --- /dev/null +++ b/src/main/java/com/jevon/service/AnalyseService.java @@ -0,0 +1,20 @@ +package com.jevon.service; + +import com.jevon.model.Analyse; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:59 + */ +public interface AnalyseService { + + int insert(Analyse analyse); + + List select(Analyse analyse); + + Analyse selectById(int id); + +} diff --git a/src/main/java/com/jevon/service/DimensionalService.java b/src/main/java/com/jevon/service/DimensionalService.java new file mode 100644 index 0000000..36b5e96 --- /dev/null +++ b/src/main/java/com/jevon/service/DimensionalService.java @@ -0,0 +1,19 @@ +package com.jevon.service; + +import com.jevon.model.Dimensional; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:24 + */ +public interface DimensionalService { + + int insert(Dimensional dimensional); + + List select(Dimensional dimensional); + + Dimensional selectByTypeAndName(int type , String name); +} diff --git a/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java b/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java new file mode 100644 index 0000000..4561a97 --- /dev/null +++ b/src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java @@ -0,0 +1,38 @@ +package com.jevon.service.impl; + +import com.jevon.mapper.AnalyseDetailMapper; +import com.jevon.model.AnalyseDetail; +import com.jevon.service.AnalyseDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 11:26 + */ +@Service +public class AnalyseDetailServiceImpl implements AnalyseDetailService { + + @Autowired + AnalyseDetailMapper analyseDetailMapper; + + @Override + public int insertBatch(List list) { + int i = 0 ; + List result = new ArrayList<>(); + for(AnalyseDetail analyseDetail :list){ + i++ ; + result.add(analyseDetail); + if(i % 100 == 0){ + analyseDetailMapper.insertBatch(result); + result = new ArrayList<>(); + } + } + analyseDetailMapper.insertBatch(result); + return 1 ; + } +} diff --git a/src/main/java/com/jevon/service/impl/AnalyseDimensionalServiceImpl.java b/src/main/java/com/jevon/service/impl/AnalyseDimensionalServiceImpl.java new file mode 100644 index 0000000..f849d63 --- /dev/null +++ b/src/main/java/com/jevon/service/impl/AnalyseDimensionalServiceImpl.java @@ -0,0 +1,38 @@ +package com.jevon.service.impl; + +import com.jevon.mapper.AnalyseDimensionalMapper; +import com.jevon.model.AnalyseDimensional; +import com.jevon.service.AnalyseDimensionalService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 11:27 + */ +@Service +public class AnalyseDimensionalServiceImpl implements AnalyseDimensionalService { + + @Autowired + AnalyseDimensionalMapper analyseDimensionalMapper; + + @Override + public int insertBatch(List list) { + int i = 0 ; + List result = new ArrayList<>(); + for(AnalyseDimensional analyseDetail :list){ + i++ ; + result.add(analyseDetail); + if(i % 100 == 0){ + analyseDimensionalMapper.insertBatch(result); + result = new ArrayList<>(); + } + } + analyseDimensionalMapper.insertBatch(result); + return 1 ; + } +} diff --git a/src/main/java/com/jevon/service/impl/AnalyseServiceImpl.java b/src/main/java/com/jevon/service/impl/AnalyseServiceImpl.java new file mode 100644 index 0000000..31f87e5 --- /dev/null +++ b/src/main/java/com/jevon/service/impl/AnalyseServiceImpl.java @@ -0,0 +1,36 @@ +package com.jevon.service.impl; + +import com.jevon.mapper.AnalyseMapper; +import com.jevon.model.Analyse; +import com.jevon.service.AnalyseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:59 + */ +@Service +public class AnalyseServiceImpl implements AnalyseService { + + @Autowired + AnalyseMapper analyseMapper; + + @Override + public int insert(Analyse analyse) { + return analyseMapper.insert(analyse); + } + + @Override + public List select(Analyse analyse) { + return analyseMapper.select(analyse); + } + + @Override + public Analyse selectById(int id) { + return analyseMapper.selectById(id); + } +} diff --git a/src/main/java/com/jevon/service/impl/DimensionalServiceImpl.java b/src/main/java/com/jevon/service/impl/DimensionalServiceImpl.java new file mode 100644 index 0000000..08180fb --- /dev/null +++ b/src/main/java/com/jevon/service/impl/DimensionalServiceImpl.java @@ -0,0 +1,44 @@ +package com.jevon.service.impl; + +import com.jevon.mapper.DimensionalMapper; +import com.jevon.model.Dimensional; +import com.jevon.service.DimensionalService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 10:25 + */ +@Service +public class DimensionalServiceImpl implements DimensionalService { + + @Autowired + DimensionalMapper dimensionalMapper; + + @Override + public int insert(Dimensional dimensional) { + return dimensionalMapper.insert(dimensional); + } + + @Override + public List select(Dimensional dimensional) { + return dimensionalMapper.select(dimensional); + } + + @Override + public Dimensional selectByTypeAndName(int type, String name) { + Dimensional dimensional = new Dimensional(); + dimensional.setDimensionalType(type); + dimensional.setDimensionalName(name); + List list = dimensionalMapper.select(dimensional); + if(list != null &&list.size() > 0){ + return list.get(0); + } + return null; + } +} diff --git a/src/main/java/com/jevon/vo/excel/ExamExcelVo.java b/src/main/java/com/jevon/vo/excel/ExamExcelVo.java new file mode 100644 index 0000000..b895b7f --- /dev/null +++ b/src/main/java/com/jevon/vo/excel/ExamExcelVo.java @@ -0,0 +1,168 @@ +package com.jevon.vo.excel; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/18 0018 8:51 + */ +public class ExamExcelVo { + + private String questionNumber ; + private String questionSmallNumber ; + private String questionType ; + private String difficult ; + private String score ; + private String knowledge ; + private String ability ; + private String skill ; + private String think ; + + public String getQuestionNumber() { + return questionNumber; + } + + public void setQuestionNumber(String questionNumber) { + this.questionNumber = questionNumber; + } + + public String getQuestionSmallNumber() { + return questionSmallNumber; + } + + public void setQuestionSmallNumber(String questionSmallNumber) { + this.questionSmallNumber = questionSmallNumber; + } + + public String getQuestionType() { + return questionType; + } + + public void setQuestionType(String questionType) { + this.questionType = questionType; + } + + public String getDifficult() { + return difficult; + } + + public void setDifficult(String difficult) { + this.difficult = difficult; + } + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + public String getKnowledge() { + return knowledge; + } + + public void setKnowledge(String knowledge) { + this.knowledge = knowledge; + } + + public String getAbility() { + return ability; + } + + public void setAbility(String ability) { + this.ability = ability; + } + + public String getSkill() { + return skill; + } + + public void setSkill(String skill) { + this.skill = skill; + } + + public String getThink() { + return think; + } + + public void setThink(String think) { + this.think = think; + } + + public ExamExcelVo(Row sheetRow) { + Cell cell1 = sheetRow.getCell(0); + if(cell1 != null){ + cell1.setCellType(CellType.STRING); + this.questionNumber = cell1.getStringCellValue().trim(); + } + + Cell cell2 = sheetRow.getCell(1); + if(cell2 != null){ + cell2.setCellType(CellType.STRING); + this.questionSmallNumber = cell2.getStringCellValue().trim(); + }else { + this.questionSmallNumber = null ; + } + + + Cell cell3 = sheetRow.getCell(2); + if(cell3 != null){ + cell3.setCellType(CellType.STRING); + this.questionType = cell3.getStringCellValue().trim(); + }else { + this.questionType = null ; + } + + Cell cell4 = sheetRow.getCell(3); + if(cell4 != null){ + cell4.setCellType(CellType.STRING); + this.difficult = cell4.getStringCellValue().trim(); + }else { + this.difficult = null ; + } + + Cell cell5 = sheetRow.getCell(4); + if(cell5 != null){ + cell5.setCellType(CellType.STRING); + this.score = cell5.getStringCellValue().trim(); + }else { + this.score = null ; + } + + Cell cell6 = sheetRow.getCell(5); + if(cell6 != null){ + cell6.setCellType(CellType.STRING); + this.knowledge = cell6.getStringCellValue().trim(); + }else { + this.knowledge = null ; + } + + Cell cell7 = sheetRow.getCell(6); + if(cell7 != null){ + cell7.setCellType(CellType.STRING); + this.ability = cell7.getStringCellValue().trim(); + }else { + this.ability = null ; + } + + Cell cell8 = sheetRow.getCell(7); + if(cell8 != null){ + cell8.setCellType(CellType.STRING); + this.skill = cell8.getStringCellValue().trim(); + }else { + this.skill = null ; + } + + Cell cell9 = sheetRow.getCell(8); + if(cell9 != null){ + cell9.setCellType(CellType.STRING); + this.think = cell9.getStringCellValue().trim(); + }else { + this.think = null ; + } + } +} diff --git a/src/main/resources/mapping/AnalyseDetailMapper.xml b/src/main/resources/mapping/AnalyseDetailMapper.xml new file mode 100644 index 0000000..f17d260 --- /dev/null +++ b/src/main/resources/mapping/AnalyseDetailMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + insert into sz_learn_analyse_detail (analyse_id, question_number,question_type,difficult,score,create_time) + values + + (#{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/AnalyseDimensionalMapper.xml b/src/main/resources/mapping/AnalyseDimensionalMapper.xml new file mode 100644 index 0000000..2dcb01f --- /dev/null +++ b/src/main/resources/mapping/AnalyseDimensionalMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + insert into sz_learn_analyse_dimensional (analyse_id, question_number,dimensional_id,score,create_time) + values + + (#{emp.analyseId},#{emp.questionNumber},#{emp.dimensionalId},#{emp.score},#{emp.createTime}) + + + \ No newline at end of file diff --git a/src/main/resources/mapping/AnalyseMapper.xml b/src/main/resources/mapping/AnalyseMapper.xml new file mode 100644 index 0000000..8720c6e --- /dev/null +++ b/src/main/resources/mapping/AnalyseMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + insert into sz_learn_analyse (exam_name, exam_time,course_name,create_time) + values (#{examName},#{examTime},#{courseName},#{createTime}) + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapping/DimensionalMapper.xml b/src/main/resources/mapping/DimensionalMapper.xml new file mode 100644 index 0000000..aef563f --- /dev/null +++ b/src/main/resources/mapping/DimensionalMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + insert into sz_learn_dimensional (dimensional_type, dimensional_name,create_time) + values (#{dimensionalType},#{dimensionalName},#{createTime}) + + + + \ No newline at end of file -- libgit2 0.21.0