Browse Source

上传初中数学词汇列表和章节名称列表

Feick 3 years ago
parent
commit
1223d72085

BIN
doc/初中数学词汇.xlsx


+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/authority/ResultHandler.java

@@ -15,7 +15,7 @@ public class ResultHandler {
     @ResponseBody
     @ExceptionHandler(value = Exception.class)
     public Result exceptionHandler(Exception e) {
-        logger.error("发生业务异常!原因是:{}", e.getMessage());
+        logger.error("发生业务异常!原因是:{}", e.getMessage(),e);
         return Result.fail(e.getMessage());
     }
 }

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/controller/ExcelController.java

@@ -98,12 +98,12 @@ public class ExcelController {
     @PostMapping("uploadIssueWord")
     @ApiOperation("上传知识点")
     public Result uploadIssueWord(@RequestParam(defaultValue = "2") Long subjectId,
-                                  String grade,
+                                  @RequestParam(defaultValue = "7X,7Y,8X,8Y,9X,9Y") String grades,
                                   @RequestParam(defaultValue = "人教版") String publisher,
                                   @RequestBody MultipartFile file) throws Exception {
         byte[] data = file.getBytes();
         List<IssueWord> list = IssueWordUtil.importIssueWord(subjectId, data);
-        issueWordService.adds(subjectId, grade, publisher, list);
+        issueWordService.adds(subjectId, grades, publisher, list);
         return Result.ok();
 
     }

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/controller/IssueChapterController.java

@@ -19,8 +19,8 @@ public class IssueChapterController {
 
     @GetMapping("list")
     public List<IssueChapter> list(@RequestParam(defaultValue = "2") Long subjectId,
-                                   String grade,
+                                   List<String> grades,
                                    @RequestParam(defaultValue = "人教版") String publisher) {
-        return issueChapterService.findBy(subjectId, grade, publisher);
+        return issueChapterService.findBy(subjectId, grades, publisher);
     }
 }

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/dao/IssueChapterDao.java

@@ -7,5 +7,5 @@ import java.util.List;
 
 public interface IssueChapterDao extends JpaRepository<IssueChapter,Long> {
 
-    List<IssueChapter> findBySubjectIdAndGradeAndPublisher(Long subjectId,String grade,String publisher);
+    List<IssueChapter> findBySubjectIdAndGradeInAndPublisher(Long subjectId,List<String> grades,String publisher);
 }

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/service/IssueChapterService.java

@@ -18,7 +18,7 @@ public class IssueChapterService {
         return true;
     }
 
-    public List<IssueChapter> findBy(Long subjectId, String grade, String publisher) {
-        return issueChapterDao.findBySubjectIdAndGradeAndPublisher(subjectId, grade, publisher);
+    public List<IssueChapter> findBy(Long subjectId, List<String> grades, String publisher) {
+        return issueChapterDao.findBySubjectIdAndGradeInAndPublisher(subjectId, grades, publisher);
     }
 }

+ 4 - 2
src/main/java/com/yaoxiang/diagnosis/service/IssueWordService.java

@@ -6,6 +6,7 @@ import com.yaoxiang.diagnosis.entity.IssueWord;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -18,8 +19,9 @@ public class IssueWordService {
     @Resource
     private IssueChapterService issueChapterService;
 
-    public boolean adds(Long subjectId, String grade, String publisher, List<IssueWord> list) {
-        List<IssueChapter> chapters = issueChapterService.findBy(subjectId, grade, publisher);
+    public boolean adds(Long subjectId, String grades, String publisher, List<IssueWord> list) {
+        List<String> gradeList = Arrays.asList(grades.split(","));
+        List<IssueChapter> chapters = issueChapterService.findBy(subjectId, gradeList, publisher);
         Map<String, Long> map = chapters.stream().collect(Collectors.toMap(IssueChapter::getCode, IssueChapter::getId));
         list.forEach(it -> it.setChapterId(map.get(it.getChapterCode())));
         issueWordRepo.saveAll(list);

+ 8 - 7
src/main/java/com/yaoxiang/diagnosis/word/IssueWordUtil.java

@@ -16,7 +16,7 @@ public class IssueWordUtil {
 
     public static List<IssueWord> importIssueWord(Long subjectId, byte[] data) throws Exception {
         XSSFWorkbook book = new XSSFWorkbook(new ByteArrayInputStream(data));
-        XSSFSheet sheet = book.getSheet("Sheet1");
+        XSSFSheet sheet = book.getSheet("词汇列表");
         List<IssueWord> result = new ArrayList<>();
         //numRow从0开始
 //        System.out.println(sheet.getRow(3).getLastCellNum());
@@ -26,12 +26,13 @@ public class IssueWordUtil {
             XSSFRow row = sheet.getRow(i);
 //            int colNum = row.getLastCellNum();
             String code = row.getCell(0).getStringCellValue();
-            String chapterCode = row.getCell(1).getStringCellValue();
+            System.out.println("i=" + i + ",code=" + code);
+            String chapterCode = String.valueOf((int) row.getCell(1).getNumericCellValue());
             String content = row.getCell(2).getStringCellValue();
-            String central = row.getCell(3).getStringCellValue();
-            String concept = row.getCell(4).getStringCellValue();
-            String tool = row.getCell(5).getStringCellValue();
-            String model = row.getCell(6).getStringCellValue();
+            String central = row.getCell(3).getRawValue();
+            String concept = row.getCell(4).getRawValue();
+            String tool = row.getCell(5).getRawValue();
+            String model = row.getCell(6).getRawValue();
             IssueWord word = new IssueWord();
             word.setSubjectId(subjectId);
 //            word.setChapterId(chapterId);
@@ -64,7 +65,7 @@ public class IssueWordUtil {
         for (int i = 1; i < sheet.getLastRowNum(); i++) {
             XSSFRow row = sheet.getRow(i);
             String grade = row.getCell(0).getStringCellValue();
-            String code = row.getCell(1).getStringCellValue();
+            String code = String.valueOf((int) row.getCell(1).getNumericCellValue());
             String index = row.getCell(2).getStringCellValue();
             String content = row.getCell(3).getStringCellValue();
             IssueChapter chapter = new IssueChapter();