1
0

21 کامیت‌ها 31270f1407 ... 3663474106

نویسنده SHA1 پیام تاریخ
  superb 3663474106 胡乱地切换各个业务中。。。。 1 سال پیش
  superb c9d79e7da2 Merge branch 'master' into superb 1 سال پیش
  superb b2c7cae6e4 Merge branch 'master' of http://39.105.160.25:10880/wuheng/eas-system 1 سال پیش
  superb d4a51df890 back 1 سال پیش
  wuheng 29ed2a3ad2 Merge branch 'wheng' of wuheng/eas-system into master 1 سال پیش
  wuheng 6d2595358f 增加文件编码 1 سال پیش
  superb 0b06bfda0d Merge branch 'master' into superb 1 سال پیش
  superb 72eb43eef6 修改分数批量插入 1 سال پیش
  wuheng fa74ad5f71 Merge branch 'wheng' of wuheng/eas-system into master 1 سال پیش
  wuheng a7a2cc54ac 增加文件编码 1 سال پیش
  superb 5c9a010fa4 Merge remote-tracking branch 'origin/Eternity' into superb 1 سال پیش
  superb 38a41a9615 kaoqin 1 سال پیش
  常忠宇 64646d6967 excel 1 سال پیش
  常忠宇 f07a4ecbb1 Merge remote-tracking branch 'origin/wheng' into Eternity 1 سال پیش
  常忠宇 986d69cb83 Merge branch 'master' into Eternity 1 سال پیش
  常忠宇 6f5d534f7b score 1 سال پیش
  wuheng a034a9d4b7 upload 1 سال پیش
  wuheng 24688e8925 Merge branch 'wheng' of wuheng/eas-system into master 1 سال پیش
  wuheng 78353fa500 延长时间 1 سال پیش
  wuheng 49f8843317 word 1 سال پیش
  wuheng 2a51909644 公共用户信息类 1 سال پیش
72فایلهای تغییر یافته به همراه1312 افزوده شده و 31 حذف شده
  1. 91 3
      common/src/main/java/com/koobietech/eas/common/utils/FileManager.java
  2. 79 0
      common/src/main/java/com/koobietech/eas/common/utils/StudentArchiveGenerator.java
  3. 19 0
      controller/pom.xml
  4. 2 3
      controller/src/main/java/com/koobietech/eas/controller/EasArcTlsAttendanceController.java
  5. 105 0
      controller/src/main/java/com/koobietech/eas/controller/EasArcTlsScoresController.java
  6. 2 1
      controller/src/main/java/com/koobietech/eas/controller/EasStuProfileController.java
  7. BIN
      controller/src/main/resources/Temp/kun1.jpeg
  8. BIN
      controller/src/main/resources/Temp/~$uRegistTemp.docx
  9. 1 1
      controller/src/main/resources/application-local.yaml
  10. 30 0
      controller/src/main/resources/application-wheng.yaml
  11. 1 1
      controller/src/main/resources/application.yaml
  12. 1 1
      controller/src/main/resources/logback.xml
  13. BIN
      controller/src/main/resources/temp/StuRegistTemp.docx
  14. BIN
      controller/src/main/resources/temp/kun.jpeg
  15. BIN
      controller/src/main/resources/temp/~$uRegistTemp.docx
  16. 21 4
      controller/src/test/java/com/koobietech/eas/controller/ControllerApplicationTests.java
  17. 4 0
      dao/pom.xml
  18. 41 0
      dao/src/main/java/com/koobietech/eas/dao/Pojo/EasArcTlsScoresPojo.java
  19. 6 0
      dao/src/main/java/com/koobietech/eas/dao/attendancePojo.java
  20. 7 0
      mbg/src/main/java/com/koobietech/eas/mbg/CommentGenerator.java
  21. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcArchivesMapper.java
  22. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcArctypeMapper.java
  23. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsAttendanceMapper.java
  24. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.java
  25. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsStudentsMapper.java
  26. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduCategoryMapper.java
  27. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClaRelationMapper.java
  28. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClassMapper.java
  29. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClassroomMapper.java
  30. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduCltRelationMapper.java
  31. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduScheduleMapper.java
  32. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduSubjectsMapper.java
  33. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysDepRelationMapper.java
  34. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysDepartmentMapper.java
  35. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysLogsMapper.java
  36. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysPermissionMapper.java
  37. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysPesRelationMapper.java
  38. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysStudentMapper.java
  39. 32 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysUniversityMapper.java
  40. 1 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysUserinfoMapper.java
  41. 5 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchives.java
  42. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArctype.java
  43. 4 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsAttendance.java
  44. 4 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsScores.java
  45. 6 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsStudents.java
  46. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCategory.java
  47. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClaRelation.java
  48. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClass.java
  49. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClassroom.java
  50. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelation.java
  51. 5 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduSchedule.java
  52. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduSubjects.java
  53. 2 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepRelation.java
  54. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepartment.java
  55. 2 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysLogs.java
  56. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysPermission.java
  57. 2 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysPesRelation.java
  58. 4 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysStudent.java
  59. 54 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysUniversity.java
  60. 339 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysUniversityExample.java
  61. 3 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysUserinfo.java
  62. 164 0
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasSysUniversityMapper.xml
  63. 12 1
      pom.xml
  64. 16 6
      security/src/main/java/com/koobietech/eas/security/filter/EasSecurityFilter.java
  65. 19 0
      security/src/main/java/com/koobietech/eas/security/utils/SecurityUtils.java
  66. 4 0
      service/pom.xml
  67. 22 0
      service/src/main/java/com/koobietech/eas/service/EasArcTlsScoresService.java
  68. 2 2
      service/src/main/java/com/koobietech/eas/service/impl/AdminLoginServiceImpl.java
  69. 4 1
      service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsAttendanceServiceImpl.java
  70. 113 0
      service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsScoresServiceImpl.java
  71. 31 7
      service/src/main/java/com/koobietech/eas/service/impl/EasStuProfileServiceImpl.java
  72. 7 0
      upload/src/main/java/com/koobietech/eas/upload/UploadService.java

+ 91 - 3
common/src/main/java/com/koobietech/eas/common/utils/FileManager.java

@@ -1,7 +1,95 @@
 package com.koobietech.eas.common.utils;
 
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+
+import java.io.*;
+
 public class FileManager {
-//    public boolean saveDocument(XWPFDocument document, String savePath){
-//
-//    }
+    public boolean saveDocument(XWPFDocument document, String savePath){
+        boolean ret = true;
+        FileOutputStream fileOutputStream = null;
+        try {
+            fileOutputStream = new FileOutputStream(savePath);
+            document.write(fileOutputStream);
+        } catch (IOException e) {
+            ret = false;
+        } finally {
+            try {
+                fileOutputStream.close();
+            } catch (IOException e) {}
+        }
+        return ret;
+    }
+
+    public boolean saveDocument(XWPFDocument document, String savePath, String fileName){
+        return saveDocument(document, savePath + fileName);
+    }
+
+    public boolean createPath(String path){
+        File file = new File(path);
+        if (!file.exists()){
+            file.mkdirs();
+        }
+        return true;
+    }
+
+    public boolean saveFile(InputStream stream, String savePath){
+        FileOutputStream fileOutputStream = null;
+        try {
+            fileOutputStream = new FileOutputStream(savePath);
+            int bytesRead;
+            byte[] buffer = new byte[1024];
+            while ((bytesRead = stream.read(buffer)) != -1){
+                fileOutputStream.write(bytesRead);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                fileOutputStream.close();
+            }catch (IOException e){}
+        }
+        return true;
+    }
+
+    public boolean saveFile(InputStream  stream, String savePath, String fileName) {
+        return saveFile(stream, savePath + fileName);
+    }
+
+    public boolean isFileExists(String filePath){
+        File file = new File(filePath);
+        return file.exists();
+    }
+
+    public boolean deleteFile(String filePath){
+        File file = new File(filePath);
+        return file.delete();
+    }
+
+    public boolean isFolderExists(String folderPath){
+        File file = new File(folderPath);
+        return file.exists();
+    }
+
+    public boolean createFolder(String folderPath){
+        File file = new File(folderPath);
+        return file.mkdirs();
+    }
+
+    public boolean deleteFolder(String folderPath){
+        File file = new File(folderPath);
+        return file.delete();
+    }
+
+    public boolean copyFile(String srcFilePath, String destFilePath){
+        File srcFile = new File(srcFilePath);
+        File destFile = new File(destFilePath);
+        return srcFile.renameTo(destFile);
+    }
+
+    public boolean moveFile(String srcFilePath, String destFilePath){
+        File srcFile = new File(srcFilePath);
+        File destFile = new File(destFilePath);
+        return srcFile.renameTo(destFile);
+    }
 }

+ 79 - 0
common/src/main/java/com/koobietech/eas/common/utils/StudentArchiveGenerator.java

@@ -0,0 +1,79 @@
+package com.koobietech.eas.common.utils;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.Period;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+import java.util.UUID;
+public class StudentArchiveGenerator {
+
+    private static final String ARCHIVE_CODE_PREFIX = "SA";
+    private static final int ARCHIVE_CODE_LENGTH = 25;
+
+    private static final String STUDENT_CODE_PEREFIX = "ST";
+    private static final int STUDENT_CODE_LENGTH = 25;
+    private static final int STUDENT_NUM_LENGTH = 8;
+
+    public  static String generateArchiveCode(String generateStudentCode, String fileTypeCode) {
+        String studentNum = generateStudentCode.substring(2, STUDENT_NUM_LENGTH + 3).replace("X", "");
+        String nowDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHhmmss", Locale.CHINA));
+        String archiveCode = ARCHIVE_CODE_PREFIX + studentNum + nowDate + fileTypeCode;
+        if (archiveCode.length() < ARCHIVE_CODE_LENGTH) {
+            archiveCode += UUID.randomUUID().toString()
+                    .substring(0, ARCHIVE_CODE_LENGTH - archiveCode.length());
+        }
+        return archiveCode;
+    }
+
+    public static String generateStudentCode(String studentNumber, String studentId, String schoolName, String enrollmentDate) {
+        LocalDate localDateEnrollmentDate = LocalDate.of(Integer.parseInt(enrollmentDate), 1, 1);
+        String studentAge = String.valueOf(getStudentAge(studentId));
+        String studentNum = getStudentNum(studentNumber);
+        String studentGender = getStudentGender(studentId).substring(0, 1); // 取性别代码的首字母
+        String graduationDate = String.valueOf(getStudentGraduationDate(localDateEnrollmentDate).getYear());
+
+        String studentCode = STUDENT_CODE_PEREFIX + studentNum + studentAge +
+                studentGender + graduationDate + schoolName;
+
+        // 如果生成的档案编码长度不足,用UUID填充
+        if (studentCode.length() < STUDENT_CODE_LENGTH) {
+            studentCode += UUID.randomUUID().toString()
+                    .substring(0, STUDENT_CODE_LENGTH - studentCode.length());
+        }
+        return studentCode;
+    }
+
+    private static String getStudentNum(String studentNumber) {
+        if (studentNumber.length() < STUDENT_NUM_LENGTH) {
+            studentNumber = studentNumber + "X" + UUID.randomUUID().toString()
+                    .toUpperCase(Locale.ROOT).substring(0, STUDENT_NUM_LENGTH - studentNumber.length());
+        }
+        return studentNumber;
+    }
+
+    private static int getStudentAge(String studentId) {
+        LocalDate currentDate = LocalDate.now();
+        LocalDate birthDateirthDate = extractBirthDate(studentId);
+        Period period = Period.between(birthDateirthDate, currentDate);
+        return period.getYears();
+    }
+
+    private static String getStudentGender(String studentId) {
+        // 根据身份证号获取性别,这里只取身份证号的倒数第二位判断性别,假设性别代码为奇数表示男性,偶数表示女性
+        int genderCode = Integer.parseInt(studentId.substring(16, 17));
+        return genderCode % 2 == 0 ? "F" : "M";
+    }
+
+    private static LocalDate getStudentGraduationDate(LocalDate enrollmentDate) {
+        // 假设毕业时间为入学时间的四年后
+        LocalDate graduationDate = enrollmentDate.plusYears(4);
+        return graduationDate;
+    }
+    // 提取身份证号码中的出生日期部分
+    private static LocalDate extractBirthDate(String idCard) {
+        String birthdate = idCard.substring(6, 14);
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+        return LocalDate.parse(birthdate, formatter);
+    }
+}

+ 19 - 0
controller/pom.xml

@@ -14,6 +14,10 @@
     </parent>
 
     <dependencies>
+        <dependency>
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.anji-plus</groupId>
             <artifactId>spring-boot-starter-captcha</artifactId>
@@ -77,6 +81,21 @@
     </dependencyManagement>
 
     <build>
+        <resources>
+            <resource>
+<!--                <directory>src/main/resources</directory>-->
+<!--                <filtering>true</filtering>-->
+<!--                <includes>-->
+<!--                    <include>**/*.png</include>-->
+<!--                    <include>**/*.jpeg</include>-->
+<!--                    <include>**/*.xml</include>-->
+<!--                    <include>**/*.docx</include>-->
+<!--                    <include>**/*.xlsx</include>-->
+<!--                    <include>**/*.yaml</include>-->
+<!--                    <include>**/*.properties</include>-->
+<!--                </includes>-->
+            </resource>
+        </resources>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>

+ 2 - 3
controller/src/main/java/com/koobietech/eas/controller/EasArcTlsAttendanceController.java

@@ -41,8 +41,10 @@ public class EasArcTlsAttendanceController {
         boolean isExist = easArcTlsAttendanceService.isExist(attendance);
 
         if (isExist) {
+            System.out.println("!!!!!已经存在,转到更新方法");
             return update(attendance);
         }else{
+            System.out.println("!!!!!不存在,正在执行添加方法");
             boolean isAdded = easArcTlsAttendanceService.add(attendance);
             if (isAdded) {
                 return JsonResult.ok("添加签到记录成功");
@@ -72,7 +74,4 @@ public class EasArcTlsAttendanceController {
         }
         return JsonResult.fail("更新签到记录失败");
     }
-
-
-
 }

+ 105 - 0
controller/src/main/java/com/koobietech/eas/controller/EasArcTlsScoresController.java

@@ -0,0 +1,105 @@
+package com.koobietech.eas.controller;
+
+import cn.hutool.db.Page;
+import com.github.pagehelper.PageHelper;
+import com.koobietech.eas.common.result.JsonPageResult;
+import com.koobietech.eas.common.result.JsonResult;
+import com.koobietech.eas.common.result.PageData;
+import com.koobietech.eas.mbg.model.EasArcTlsScores;
+import com.koobietech.eas.service.EasArcTlsScoresService;
+import io.swagger.v3.core.util.Json;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+@RestController
+@Tag(name = "成绩控制器")
+public class EasArcTlsScoresController {
+
+    @Resource
+    EasArcTlsScoresService easArcTlsScoresService;
+
+    /**
+     * 添加学生成绩信息
+     * @param easArcTlsScores
+     * @return
+     */
+    @PostMapping(value = "/addStudentScore")
+    @Operation(summary = "添加学生成绩信息",description = "用于添加学生成绩信息")
+    public JsonResult addStudentScore(@RequestBody EasArcTlsScores easArcTlsScores) {
+        int i = easArcTlsScoresService.addStudentScore(easArcTlsScores);
+        System.out.println(i);
+        return JsonResult.ok("添加成功!");
+    }
+
+    /**
+     * 修改学生成绩信息
+     * @param easArcTlsScores
+     * @return
+     */
+    @PutMapping(value = "/updateStudentScore")
+    @Operation(summary = "修改学生成绩信息",description = "用于修改学生成绩信息")
+    public JsonResult updateStudentScore(@RequestBody EasArcTlsScores easArcTlsScores) {
+        int i = easArcTlsScoresService.updateStudentScore(easArcTlsScores);
+        if (i > 0){
+            return JsonResult.ok();
+        }else {
+            return JsonResult.fail();
+        }
+    }
+
+    /**
+     * 查询所有学生成绩信息
+     * @return
+     */
+    @GetMapping(value = "/selectAllStudentScores")
+    @Operation(summary = "查询所有学生的成绩信息",description = "用于查询所有学生的成绩信息")
+    public JsonResult selectAllStudentScores() {
+        List<EasArcTlsScores> easArcTlsScores = easArcTlsScoresService.selectAllStudentScores();
+        return JsonResult.data(easArcTlsScores);
+    }
+
+    /**
+     * 条件查询学生成绩信息
+     * @param easArcTlsScores
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @PostMapping(value = "/selectScoreByExample")
+    @Operation(summary = "条件查询学生成绩信息",description = "用于条件查询学生成绩信息")
+    public JsonPageResult selectScoreByExample(@RequestBody EasArcTlsScores easArcTlsScores,
+                                               @RequestParam Integer pageNum,@RequestParam Integer pageSize){
+        PageHelper.startPage(pageNum,pageSize);
+        PageData pageData = easArcTlsScoresService.selectScoreByExample(easArcTlsScores);
+        return JsonPageResult.data(pageData);
+    }
+
+    @PostMapping(value = "/importExcelScores")
+    @Operation(summary = "Excel导入学生成绩信息",description = "用于Excel导入学生成绩信息")
+    public JsonResult importExcelScores(MultipartFile excelFile) {
+        InputStream inputStream = null;
+        Boolean aBoolean;
+        try {
+            inputStream = excelFile.getInputStream();
+            aBoolean = easArcTlsScoresService.importExcelScores(inputStream);
+        } catch (IOException e) {
+            aBoolean = false;
+        } finally {
+            try {
+                inputStream.close();
+            } catch (IOException e) {}
+        }
+        if (aBoolean == true){
+            return JsonResult.ok();
+        }else {
+            return JsonResult.fail();
+        }
+    }
+}

+ 2 - 1
controller/src/main/java/com/koobietech/eas/controller/EasStuProfileController.java

@@ -4,6 +4,7 @@ package com.koobietech.eas.controller;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.mbg.model.EasArcTlsStudents;
 import com.koobietech.eas.service.EasStuProfileService;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -17,7 +18,7 @@ public class EasStuProfileController {
     @Resource
     private EasStuProfileService easStuProfileService;
 
-    @RequestMapping("/StuProfileDownload")
+    @PostMapping("/StuProfileDownload")
     public JsonResult StuProfileDownload(@RequestBody  EasArcTlsStudents easArcTlsStudents) throws FileNotFoundException {
 
         return easStuProfileService.StuProfileDownload(easArcTlsStudents);

BIN
controller/src/main/resources/Temp/kun1.jpeg


BIN
controller/src/main/resources/Temp/~$uRegistTemp.docx


+ 1 - 1
controller/src/main/resources/application-local.yaml

@@ -1,5 +1,5 @@
 server:
-  port: 8081
+  port: 8080
 spring:
   datasource:
     url: jdbc:mysql://127.0.0.1:3306/eas?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=true&tinyInt1isBit=false

+ 30 - 0
controller/src/main/resources/application-wheng.yaml

@@ -0,0 +1,30 @@
+server:
+  port: 8080
+spring:
+  datasource:
+    url: jdbc:mysql://127.0.0.1:13306/eas?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=true&tinyInt1isBit=false
+    username: root
+    password: 0JZBdtlYoiOepddh
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  redis:
+    host: localhost
+    database: 8
+    password:
+    port: 26379
+  security:
+    user:
+      name: admin
+      password: 123456
+springdoc:
+  version: v0.0.1
+  api-docs:
+    enabled: true
+  swagger-ui:
+    enabled: true
+knife4j:
+  enable: true
+  setting:
+    language: zh_cn
+logging:
+  level:
+    com.koobietech.eas.*: TRACE

+ 1 - 1
controller/src/main/resources/application.yaml

@@ -32,7 +32,7 @@ security:
       - /**
 eas:
   jwt-secret-key: 123456
-  jwt-expires-date: 1
+  jwt-expires-date: 2
   password-sign-key: eas-key-password
 aj:
   captcha:

+ 1 - 1
controller/src/main/resources/logback.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <property name="log.path" value="./" />
+    <property name="log.path" value="./logs" />
     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>

BIN
controller/src/main/resources/temp/StuRegistTemp.docx


BIN
controller/src/main/resources/temp/kun.jpeg


BIN
controller/src/main/resources/temp/~$uRegistTemp.docx


+ 21 - 4
controller/src/test/java/com/koobietech/eas/controller/ControllerApplicationTests.java

@@ -1,14 +1,19 @@
 package com.koobietech.eas.controller;
 
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
+import cn.afterturn.easypoi.handler.inter.IReadHandler;
 import cn.afterturn.easypoi.handler.inter.IWriter;
 import com.koobietech.eas.common.constant.UserType;
 import com.koobietech.eas.common.pojo.JwtUserDto;
 import com.koobietech.eas.common.service.RedisService;
 import com.koobietech.eas.common.utils.JwtManager;
 import com.koobietech.eas.common.utils.PasswordManager;
+import com.koobietech.eas.common.utils.StudentArchiveGenerator;
+import com.koobietech.eas.mbg.model.EasArcTlsScores;
 import com.koobietech.eas.mbg.model.EasSysLogs;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.junit.jupiter.api.Test;
@@ -17,17 +22,30 @@ import org.springframework.boot.test.context.SpringBootTest;
 
 import javax.annotation.Resource;
 import java.io.*;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 
 @SpringBootTest
 class ControllerApplicationTests {
 
+
     @Test
-    void contextLoads() throws IOException {
+    void test() {
+        System.out.println(StudentArchiveGenerator.generateStudentCode(
+                "2211",
+                "232126198703194770", "12016", "2020"
+        ));
+        System.out.println(
+                StudentArchiveGenerator.generateArchiveCode(
+                        "ST2211XE6EE36M202412016",
+                        "20"
+                )
+        );
+    }
 
-        InputStream wordStream = this.getClass().getClassLoader().getResourceAsStream("\\temp\\StuRegistTemp.docx");
-        System.out.println( wordStream );
 
 //        List<Map> list = new ArrayList<>();
 //        Workbook workbook = null;
@@ -62,6 +80,5 @@ class ControllerApplicationTests {
 //        fos.close();
 
 
-    }
 
 }

+ 4 - 0
dao/pom.xml

@@ -8,6 +8,10 @@
     <description>dao</description>
 
     <dependencies>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-wps</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.github.xiaoymin</groupId>
             <artifactId>knife4j-openapi3-spring-boot-starter</artifactId>

+ 41 - 0
dao/src/main/java/com/koobietech/eas/dao/Pojo/EasArcTlsScoresPojo.java

@@ -0,0 +1,41 @@
+package com.koobietech.eas.dao.Pojo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class EasArcTlsScoresPojo implements Serializable {
+    @Excel(name = "学员档案")
+    private String studentNumber;
+
+    @Excel(name = "类目ID" )
+    private Integer categoryId;
+
+    @Excel(name = "科目ID" )
+    private Integer subjectId;
+
+    @Excel(name = "考试时间" )
+    private Date testDate;
+
+    @Excel(name = "分数")
+    private BigDecimal score;
+
+    @Excel(name = "通过率")
+    private BigDecimal passRate;
+
+    @Excel(name = "及格率")
+    private BigDecimal excelRate;
+
+    @Excel(name = "创建时间", format = "yyyy-MM-dd")
+    private Date createTime;
+
+    @Excel(name = "考试备注信息")
+    private String comment;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 6 - 0
dao/src/main/java/com/koobietech/eas/dao/attendancePojo.java

@@ -0,0 +1,6 @@
+package com.koobietech.eas.dao;
+
+public class attendancePojo {
+    private String student_name;
+
+}

+ 7 - 0
mbg/src/main/java/com/koobietech/eas/mbg/CommentGenerator.java

@@ -18,6 +18,8 @@ public class CommentGenerator extends DefaultCommentGenerator {
     private static final String EXAMPLE_SUFFIX="Example";
     private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.v3.oas.annotations.media.Schema";
 
+    private static final String COM_FASTERXML_JACKSON_NAME="com.fasterxml.jackson.annotation.JsonFormat";
+
     /**
      * 设置用户配置的参数
      */
@@ -43,6 +45,10 @@ public class CommentGenerator extends DefaultCommentGenerator {
             }
             //给model的字段添加swagger注解
             field.addJavaDocLine("@Schema(description = \""+remarks+"\")");
+            //如果字段是时间类型 则加JsonFormat注解
+            if("java.util.Date".equals(field.getType().getFullyQualifiedName())){
+                field.addJavaDocLine("@JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\", timezone = \"GMT+8\")");
+            }
         }
     }
 
@@ -67,6 +73,7 @@ public class CommentGenerator extends DefaultCommentGenerator {
         //只在model中添加swagger注解类的导入
         if(!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){
             compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME));
+            compilationUnit.addImportedType(new FullyQualifiedJavaType(COM_FASTERXML_JACKSON_NAME));
         }
     }
 }

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcArchivesMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasArcArchives;
 import com.koobietech.eas.mbg.model.EasArcArchivesExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcArctypeMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasArcArctype;
 import com.koobietech.eas.mbg.model.EasArcArctypeExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsAttendanceMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasArcTlsAttendance;
 import com.koobietech.eas.mbg.model.EasArcTlsAttendanceExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasArcTlsScores;
 import com.koobietech.eas.mbg.model.EasArcTlsScoresExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsStudentsMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasArcTlsStudents;
 import com.koobietech.eas.mbg.model.EasArcTlsStudentsExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduCategoryMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduCategory;
 import com.koobietech.eas.mbg.model.EasEduCategoryExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClaRelationMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduClaRelation;
 import com.koobietech.eas.mbg.model.EasEduClaRelationExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClassMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduClass;
 import com.koobietech.eas.mbg.model.EasEduClassExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClassroomMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduClassroom;
 import com.koobietech.eas.mbg.model.EasEduClassroomExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduCltRelationMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduCltRelation;
 import com.koobietech.eas.mbg.model.EasEduCltRelationExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduScheduleMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduSchedule;
 import com.koobietech.eas.mbg.model.EasEduScheduleExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduSubjectsMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasEduSubjects;
 import com.koobietech.eas.mbg.model.EasEduSubjectsExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysDepRelationMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysDepRelation;
 import com.koobietech.eas.mbg.model.EasSysDepRelationExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysDepartmentMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysDepartment;
 import com.koobietech.eas.mbg.model.EasSysDepartmentExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysLogsMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysLogs;
 import com.koobietech.eas.mbg.model.EasSysLogsExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysPermissionMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysPermission;
 import com.koobietech.eas.mbg.model.EasSysPermissionExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysPesRelationMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysPesRelation;
 import com.koobietech.eas.mbg.model.EasSysPesRelationExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysStudentMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysStudent;
 import com.koobietech.eas.mbg.model.EasSysStudentExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 32 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysUniversityMapper.java

@@ -0,0 +1,32 @@
+package com.koobietech.eas.mbg.mapper;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.koobietech.eas.mbg.model.EasSysUniversity;
+import com.koobietech.eas.mbg.model.EasSysUniversityExample;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface EasSysUniversityMapper {
+    long countByExample(EasSysUniversityExample example);
+
+    int deleteByExample(EasSysUniversityExample example);
+
+    int deleteByPrimaryKey(String universityCode);
+
+    int insert(EasSysUniversity record);
+
+    int insertSelective(EasSysUniversity record);
+
+    List<EasSysUniversity> selectByExample(EasSysUniversityExample example);
+
+    EasSysUniversity selectByPrimaryKey(String universityCode);
+
+    int updateByExampleSelective(@Param("record") EasSysUniversity record, @Param("example") EasSysUniversityExample example);
+
+    int updateByExample(@Param("record") EasSysUniversity record, @Param("example") EasSysUniversityExample example);
+
+    int updateByPrimaryKeySelective(EasSysUniversity record);
+
+    int updateByPrimaryKey(EasSysUniversity record);
+}

+ 1 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasSysUserinfoMapper.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.mapper;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.koobietech.eas.mbg.model.EasSysUserinfo;
 import com.koobietech.eas.mbg.model.EasSysUserinfoExample;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 5 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchives.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -45,6 +46,7 @@ public class EasArcArchives implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -53,6 +55,7 @@ public class EasArcArchives implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**
@@ -61,6 +64,7 @@ public class EasArcArchives implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "档案有效期截至时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date validityTime;
 
     /**
@@ -77,6 +81,7 @@ public class EasArcArchives implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "档案创建时间, 用于文件归档用")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createDate;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArctype.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -53,6 +54,7 @@ public class EasArcArctype implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -61,6 +63,7 @@ public class EasArcArctype implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 4 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsAttendance.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -13,6 +14,7 @@ public class EasArcTlsAttendance implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "签到日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date checkinDate;
 
     /**
@@ -77,6 +79,7 @@ public class EasArcTlsAttendance implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -85,6 +88,7 @@ public class EasArcTlsAttendance implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     private static final long serialVersionUID = 1L;

+ 4 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsScores.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -44,6 +45,7 @@ public class EasArcTlsScores implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "考试时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date testDate;
 
     /**
@@ -76,6 +78,7 @@ public class EasArcTlsScores implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -84,6 +87,7 @@ public class EasArcTlsScores implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 6 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsStudents.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -51,6 +52,7 @@ public class EasArcTlsStudents implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "学生出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date birthdate;
 
     /**
@@ -83,6 +85,7 @@ public class EasArcTlsStudents implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "学生入学进入培训班日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date enrollmentDate;
 
     /**
@@ -91,6 +94,7 @@ public class EasArcTlsStudents implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "学生在培训班毕业日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date graduationDate;
 
     /**
@@ -131,6 +135,7 @@ public class EasArcTlsStudents implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -139,6 +144,7 @@ public class EasArcTlsStudents implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCategory.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -29,6 +30,7 @@ public class EasEduCategory implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -37,6 +39,7 @@ public class EasEduCategory implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClaRelation.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -45,6 +46,7 @@ public class EasEduClaRelation implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -53,6 +55,7 @@ public class EasEduClaRelation implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClass.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -43,6 +44,7 @@ public class EasEduClass implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -51,6 +53,7 @@ public class EasEduClass implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClassroom.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -77,6 +78,7 @@ public class EasEduClassroom implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -85,6 +87,7 @@ public class EasEduClassroom implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelation.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -29,6 +30,7 @@ public class EasEduCltRelation implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -37,6 +39,7 @@ public class EasEduCltRelation implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 5 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduSchedule.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -21,6 +22,7 @@ public class EasEduSchedule implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "起始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startTime;
 
     /**
@@ -29,6 +31,7 @@ public class EasEduSchedule implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
     /**
@@ -85,6 +88,7 @@ public class EasEduSchedule implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -93,6 +97,7 @@ public class EasEduSchedule implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduSubjects.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -37,6 +38,7 @@ public class EasEduSubjects implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -45,6 +47,7 @@ public class EasEduSubjects implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 2 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepRelation.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -43,6 +44,7 @@ public class EasSysDepRelation implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepartment.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -53,6 +54,7 @@ public class EasSysDepartment implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -61,6 +63,7 @@ public class EasSysDepartment implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 2 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysLogs.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -19,6 +20,7 @@ public class EasSysLogs implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "记录日志的时间戳")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date timestamp;
 
     /**

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysPermission.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -43,6 +44,7 @@ public class EasSysPermission implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -51,6 +53,7 @@ public class EasSysPermission implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 2 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysPesRelation.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -35,6 +36,7 @@ public class EasSysPesRelation implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 4 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysStudent.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -53,6 +54,7 @@ public class EasSysStudent implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "学生入学日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date enrollmentDate;
 
     /**
@@ -77,6 +79,7 @@ public class EasSysStudent implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -85,6 +88,7 @@ public class EasSysStudent implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 54 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysUniversity.java

@@ -0,0 +1,54 @@
+package com.koobietech.eas.mbg.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serializable;
+
+public class EasSysUniversity implements Serializable {
+    /**
+     * 大学编码
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "大学编码")
+    private String universityCode;
+
+    /**
+     * 学校名
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "学校名")
+    private String universityTitle;
+
+    private static final long serialVersionUID = 1L;
+
+    public String getUniversityCode() {
+        return universityCode;
+    }
+
+    public void setUniversityCode(String universityCode) {
+        this.universityCode = universityCode;
+    }
+
+    public String getUniversityTitle() {
+        return universityTitle;
+    }
+
+    public void setUniversityTitle(String universityTitle) {
+        this.universityTitle = universityTitle;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", universityCode=").append(universityCode);
+        sb.append(", universityTitle=").append(universityTitle);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 339 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysUniversityExample.java

@@ -0,0 +1,339 @@
+package com.koobietech.eas.mbg.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class EasSysUniversityExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public EasSysUniversityExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andUniversityCodeIsNull() {
+            addCriterion("university_code is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeIsNotNull() {
+            addCriterion("university_code is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeEqualTo(String value) {
+            addCriterion("university_code =", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeNotEqualTo(String value) {
+            addCriterion("university_code <>", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeGreaterThan(String value) {
+            addCriterion("university_code >", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeGreaterThanOrEqualTo(String value) {
+            addCriterion("university_code >=", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeLessThan(String value) {
+            addCriterion("university_code <", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeLessThanOrEqualTo(String value) {
+            addCriterion("university_code <=", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeLike(String value) {
+            addCriterion("university_code like", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeNotLike(String value) {
+            addCriterion("university_code not like", value, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeIn(List<String> values) {
+            addCriterion("university_code in", values, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeNotIn(List<String> values) {
+            addCriterion("university_code not in", values, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeBetween(String value1, String value2) {
+            addCriterion("university_code between", value1, value2, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityCodeNotBetween(String value1, String value2) {
+            addCriterion("university_code not between", value1, value2, "universityCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleIsNull() {
+            addCriterion("university_title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleIsNotNull() {
+            addCriterion("university_title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleEqualTo(String value) {
+            addCriterion("university_title =", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleNotEqualTo(String value) {
+            addCriterion("university_title <>", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleGreaterThan(String value) {
+            addCriterion("university_title >", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("university_title >=", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleLessThan(String value) {
+            addCriterion("university_title <", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleLessThanOrEqualTo(String value) {
+            addCriterion("university_title <=", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleLike(String value) {
+            addCriterion("university_title like", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleNotLike(String value) {
+            addCriterion("university_title not like", value, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleIn(List<String> values) {
+            addCriterion("university_title in", values, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleNotIn(List<String> values) {
+            addCriterion("university_title not in", values, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleBetween(String value1, String value2) {
+            addCriterion("university_title between", value1, value2, "universityTitle");
+            return (Criteria) this;
+        }
+
+        public Criteria andUniversityTitleNotBetween(String value1, String value2) {
+            addCriterion("university_title not between", value1, value2, "universityTitle");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 3 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysUserinfo.java

@@ -1,5 +1,6 @@
 package com.koobietech.eas.mbg.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import java.util.Date;
@@ -67,6 +68,7 @@ public class EasSysUserinfo implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -75,6 +77,7 @@ public class EasSysUserinfo implements Serializable {
      * @mbg.generated
      */
     @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date modifyTime;
 
     /**

+ 164 - 0
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasSysUniversityMapper.xml

@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.mbg.mapper.EasSysUniversityMapper">
+  <resultMap id="BaseResultMap" type="com.koobietech.eas.mbg.model.EasSysUniversity">
+    <id column="university_code" jdbcType="VARCHAR" property="universityCode" />
+    <result column="university_title" jdbcType="VARCHAR" property="universityTitle" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    university_code, university_title
+  </sql>
+  <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasSysUniversityExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from eas_sys_university
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from eas_sys_university
+    where university_code = #{universityCode,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from eas_sys_university
+    where university_code = #{universityCode,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.koobietech.eas.mbg.model.EasSysUniversityExample">
+    delete from eas_sys_university
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.koobietech.eas.mbg.model.EasSysUniversity">
+    insert into eas_sys_university (university_code, university_title)
+    values (#{universityCode,jdbcType=VARCHAR}, #{universityTitle,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasSysUniversity">
+    insert into eas_sys_university
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="universityCode != null">
+        university_code,
+      </if>
+      <if test="universityTitle != null">
+        university_title,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="universityCode != null">
+        #{universityCode,jdbcType=VARCHAR},
+      </if>
+      <if test="universityTitle != null">
+        #{universityTitle,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.koobietech.eas.mbg.model.EasSysUniversityExample" resultType="java.lang.Long">
+    select count(*) from eas_sys_university
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update eas_sys_university
+    <set>
+      <if test="record.universityCode != null">
+        university_code = #{record.universityCode,jdbcType=VARCHAR},
+      </if>
+      <if test="record.universityTitle != null">
+        university_title = #{record.universityTitle,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update eas_sys_university
+    set university_code = #{record.universityCode,jdbcType=VARCHAR},
+      university_title = #{record.universityTitle,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.koobietech.eas.mbg.model.EasSysUniversity">
+    update eas_sys_university
+    <set>
+      <if test="universityTitle != null">
+        university_title = #{universityTitle,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where university_code = #{universityCode,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasSysUniversity">
+    update eas_sys_university
+    set university_title = #{universityTitle,jdbcType=VARCHAR}
+    where university_code = #{universityCode,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 12 - 1
pom.xml

@@ -33,13 +33,24 @@
         <javax.servlet-api.version>4.0.1</javax.servlet-api.version>
         <spring-data-redis.version>2.7.3</spring-data-redis.version>
         <knife4j.version>4.1.0</knife4j.version>
-        <easypoi.version>4.3.0</easypoi.version>
+        <easypoi.version>4.4.0</easypoi.version>
         <pagehelper.starter.version>1.3.1</pagehelper.starter.version>
         <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
         <captcha.version>1.3.0</captcha.version>
+        <xerces.version>2.9.1</xerces.version>
     </properties>
     <dependencyManagement>
         <dependencies>
+            <dependency>
+                <groupId>xerces</groupId>
+                <artifactId>xercesImpl</artifactId>
+                <version>${xerces.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>cn.afterturn</groupId>
+                <artifactId>easypoi-wps</artifactId>
+                <version>${easypoi.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.anji-plus</groupId>
                 <artifactId>spring-boot-starter-captcha</artifactId>

+ 16 - 6
security/src/main/java/com/koobietech/eas/security/filter/EasSecurityFilter.java

@@ -6,6 +6,8 @@ import com.koobietech.eas.common.utils.JwtManager;
 import com.koobietech.eas.dao.adminLoginPojo.Permission;
 import com.koobietech.eas.dao.adminLoginPojo.UserDetail;
 import com.koobietech.eas.service.LoginRedisService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.context.SecurityContext;
@@ -27,6 +29,8 @@ import javax.servlet.http.HttpServletResponse;
 @Component
 public class EasSecurityFilter extends OncePerRequestFilter {
 
+    private static final Logger logger = LoggerFactory.getLogger(EasSecurityFilter.class);
+
     @Resource
     private LoginRedisService loginRedisService;
 
@@ -45,16 +49,22 @@ public class EasSecurityFilter extends OncePerRequestFilter {
             try {
                 //过滤器 允许 Token 不正确, 后面Security 会拦截处理
                 jwtUserDto = jwtManager.decodeJwt(token);
-            } catch ( EasException e) {}
+            } catch ( EasException e) {
+                logger.debug(e.getMessage());
+            }
             if ( Objects.nonNull(jwtUserDto) ) {
                 //判断token是否有效
-                UserDetail userDetail = loginRedisService.checkToken(jwtUserDto);
-
-                // 获取当前的 SecurityContext 对象,用于保存当前用户的安全上下文信息
-                SecurityContext context = SecurityContextHolder.getContext();
+                UserDetail userDetail = null;
+                try {
+                    userDetail = loginRedisService.checkToken(jwtUserDto);
+                } catch ( EasException e) {
+                    logger.debug(e.getMessage());
+                }
 
+                // 如果获取到了有效的用户对象
                 if (Objects.nonNull(userDetail)) {
-                    // 如果获取到了有效的用户对象
+                    // 获取当前的 SecurityContext 对象,用于保存当前用户的安全上下文信息
+                    SecurityContext context = SecurityContextHolder.getContext();
 
                     // 获取用户的权限列表
                     List<Permission> permission = userDetail.getPermissions();

+ 19 - 0
security/src/main/java/com/koobietech/eas/security/utils/SecurityUtils.java

@@ -0,0 +1,19 @@
+package com.koobietech.eas.security.utils;
+import org.springframework.security.core.context.SecurityContextHolder;
+public class SecurityUtils {
+
+    public static String getLoginUserName(){
+        Object principal = getPrincipal();
+        return principal.toString().equals("anonymousUser") ? "" : principal.toString();
+    }
+
+    public static boolean isLogged(){
+        Object principal = getPrincipal();
+        return principal.toString().equals("anonymousUser");
+    }
+
+    private static Object getPrincipal(){
+        return SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+    }
+
+}

+ 4 - 0
service/pom.xml

@@ -8,6 +8,10 @@
     <description>service</description>
 
     <dependencies>
+        <dependency>
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+        </dependency>
         <dependency>
             <groupId>cn.afterturn</groupId>
             <artifactId>easypoi-spring-boot-starter</artifactId>

+ 22 - 0
service/src/main/java/com/koobietech/eas/service/EasArcTlsScoresService.java

@@ -0,0 +1,22 @@
+package com.koobietech.eas.service;
+
+import com.koobietech.eas.common.result.PageData;
+import com.koobietech.eas.mbg.model.EasArcTlsScores;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.util.List;
+
+public interface EasArcTlsScoresService {
+
+    int addStudentScore(EasArcTlsScores easArcTlsScores);
+
+    int updateStudentScore(EasArcTlsScores easArcTlsScores);
+
+    List<EasArcTlsScores> selectAllStudentScores();
+
+    PageData selectScoreByExample(EasArcTlsScores easArcTlsScores);
+
+    Boolean importExcelScores(InputStream inputStream);
+
+}

+ 2 - 2
service/src/main/java/com/koobietech/eas/service/impl/AdminLoginServiceImpl.java

@@ -41,8 +41,8 @@ public class AdminLoginServiceImpl implements AdminLoginService {
     private JwtManager jwtManager;
 
     // token过期时间 单位:s
-    private final Integer token_expires = 60*3;
-    private final Integer refreshToken_expires = 60*7;
+    private final Integer token_expires = 24 * 60 * 60;
+    private final Integer refreshToken_expires = 48 * 60 * 60;
 
     @Override
     public LoginToken adminLogin(AdminPojo adminPojo) {

+ 4 - 1
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsAttendanceServiceImpl.java

@@ -159,12 +159,14 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
                 .collect(Collectors.toList());
     }
 
+
 //    @Override
 //    public List<EasArcTlsAttendance> getStudentList(Long scheduleId) {
 //        // 创建查询条件,根据课表ID查找EasEduSchedule表,获取班级ID
 //        EasEduSchedule easEduSchedule = easEduScheduleMapper.selectByPrimaryKey(scheduleId);
 //        if (Objects.nonNull(easEduSchedule)) {
 //            Long classId = Long.valueOf(easEduSchedule.getClassId()); // 将班级ID赋值给classId变量
+//            System.out.println("!!!!查出来的对应scheduleId的classId = " + classId);
 //
 //            // 创建查询条件,根据班级ID查找EasEduCltRelation表,获取学生ID
 //            EasEduCltRelationExample easEduCltRelationExample = new EasEduCltRelationExample();
@@ -198,10 +200,11 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
 //            });
 //            return list;
 //        } else {
-//            throw new EasException("未查询到对应课表,请检查数据库",9595); // 如果查询不到课表,则返回空列表
+//            throw new EasException("未查询到对应课表,请检查数据库", 9595); // 如果查询不到课表,则返回空列表
 //        }
 //    }
 
+
 }
 
 

+ 113 - 0
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsScoresServiceImpl.java

@@ -0,0 +1,113 @@
+package com.koobietech.eas.service.impl;
+
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.hutool.core.bean.BeanUtil;
+import com.koobietech.eas.common.result.PageData;
+import com.koobietech.eas.dao.Pojo.EasArcTlsScoresPojo;
+import com.koobietech.eas.mbg.mapper.EasArcTlsScoresMapper;
+import com.koobietech.eas.mbg.model.EasArcTlsScores;
+import com.koobietech.eas.mbg.model.EasArcTlsScoresExample;
+import com.koobietech.eas.service.EasArcTlsScoresService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
+
+    @Resource
+    EasArcTlsScoresMapper easArcTlsScoresMapper;
+
+
+    @Override
+    public int addStudentScore(EasArcTlsScores easArcTlsScores) {
+        easArcTlsScores.setCreateTime(new Date());
+        easArcTlsScores.setModifyTime(new Date());
+        return easArcTlsScoresMapper.insert(easArcTlsScores);
+    }
+
+    @Override
+    public int updateStudentScore(EasArcTlsScores easArcTlsScores) {
+        return easArcTlsScoresMapper.updateByPrimaryKey(easArcTlsScores);
+    }
+
+    @Override
+    public List<EasArcTlsScores> selectAllStudentScores() {
+        return easArcTlsScoresMapper.selectByExample(null);
+    }
+
+    @Override
+    public PageData selectScoreByExample(EasArcTlsScores easArcTlsScores) {
+        EasArcTlsScoresExample easArcTlsScoresExample = new EasArcTlsScoresExample();
+        EasArcTlsScoresExample.Criteria criteria = easArcTlsScoresExample.createCriteria();
+        if (Objects.nonNull(easArcTlsScores)){
+            if (Objects.nonNull(easArcTlsScores.getId())) {
+                criteria.andIdEqualTo(easArcTlsScores.getId());
+            }
+            if (StringUtils.hasText(easArcTlsScores.getStudentNumber())) {
+                criteria.andStudentNumberLike("%"+easArcTlsScores.getStudentNumber()+"%");
+            }
+            if (Objects.nonNull(easArcTlsScores.getTestDate())) {
+                criteria.andTestDateGreaterThan(easArcTlsScores.getTestDate());
+            }
+            if (Objects.nonNull(easArcTlsScores.getScore())) {
+                criteria.andScoreEqualTo(easArcTlsScores.getScore());
+            }
+            if (Objects.nonNull(easArcTlsScores.getPassRate())) {
+                criteria.andPassRateEqualTo(easArcTlsScores.getPassRate());
+            }
+            if (Objects.nonNull(easArcTlsScores.getExcelRate())) {
+                criteria.andExcelRateEqualTo(easArcTlsScores.getExcelRate());
+            }
+            if (Objects.nonNull(easArcTlsScores.getCreateTime())) {
+                criteria.andCreateTimeGreaterThan(easArcTlsScores.getCreateTime());
+            }
+            if (Objects.nonNull(easArcTlsScores.getModifyTime())) {
+                criteria.andCreateTimeGreaterThan(easArcTlsScores.getModifyTime());
+            }
+            if (Objects.nonNull(easArcTlsScores.getCreateUid())) {
+                criteria.andCreateUidEqualTo(easArcTlsScores.getCreateUid());
+            }
+            if (StringUtils.hasText(easArcTlsScores.getComment())) {
+                criteria.andCommentLike("%"+easArcTlsScores.getComment()+"%");
+            }
+        }
+        List<EasArcTlsScores> easArcTlsScores1 = easArcTlsScoresMapper.selectByExample(easArcTlsScoresExample);
+        long l = easArcTlsScoresMapper.countByExample(easArcTlsScoresExample);
+        return PageData.init(easArcTlsScores1,l);
+    }
+
+        @Override
+    public Boolean importExcelScores(InputStream inputStream) {
+            ImportParams params = new ImportParams();
+            params.setTitleRows(1);
+            params.setHeadRows(1);
+            try {
+                List<EasArcTlsScoresPojo> score = ExcelImportUtil.importExcel(
+                        inputStream, EasArcTlsScoresPojo.class, params);
+                for ( EasArcTlsScoresPojo easArcTlsScoresPojo : score) {
+                    if ( easArcTlsScoresPojo.getScore() == null
+                            || easArcTlsScoresPojo.getScore().equals("") ) {
+                        continue;
+                    }
+                    easArcTlsScoresPojo.setCreateTime(new Date());
+                    EasArcTlsScores easArcTlsScores = new EasArcTlsScores();
+                    BeanUtil.copyProperties(easArcTlsScoresPojo, easArcTlsScores);
+                    easArcTlsScoresMapper.insert(easArcTlsScores);
+                }
+            } catch (FileNotFoundException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            return true;
+    }
+
+}

+ 31 - 7
service/src/main/java/com/koobietech/eas/service/impl/EasStuProfileServiceImpl.java

@@ -1,6 +1,7 @@
 package com.koobietech.eas.service.impl;
 
 import com.koobietech.eas.common.result.JsonResult;
+import com.koobietech.eas.common.utils.StudentArchiveGenerator;
 import com.koobietech.eas.mbg.model.EasArcTlsStudents;
 import com.koobietech.eas.service.EasStuProfileService;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -10,6 +11,7 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell;
 import org.apache.poi.xwpf.usermodel.XWPFTableRow;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.poi.util.Units;
 import org.springframework.stereotype.Service;
 
 import java.io.*;
@@ -20,7 +22,7 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(EasStuProfileServiceImpl.class);
     private static final String TEMPLATE_PATH = "temp/StuRegistTemp.docx";
-    private static final String PHOTO_PATH = "temp/kun1.jpeg";
+    private static final String PHOTO_PATH = "temp/kun.jpeg";
     private static final String OUTPUT_PATH = "D:\\myDesk\\test.docx";
 
     @Override
@@ -41,8 +43,33 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
             map.put("university", easArcTlsStudents.getUniversity());
 
             InputStream photo = getClass().getClassLoader().getResourceAsStream(PHOTO_PATH);
+            System.out.println( photo );
             map.put("avatar", photo);
 
+            /**
+             public static String generateStudentCode(String studentNumber, String studentId, String schoolName, String enrollmentDate) {
+             LocalDate localDateEnrollmentDate = LocalDate.of(Integer.parseInt(enrollmentDate), 1, 1);
+             String studentAge = String.valueOf(getStudentAge(studentId));
+             String studentNum = getStudentNum(studentNumber);
+             String studentGender = getStudentGender(studentId).substring(0, 1); // 取性别代码的首字母
+             String graduationDate = String.valueOf(getStudentGraduationDate(localDateEnrollmentDate).getYear());
+
+             String studentCode = STUDENT_CODE_PEREFIX + studentNum + studentAge +
+             studentGender + graduationDate + schoolName;
+
+             // 如果生成的档案编码长度不足,用UUID填充
+             if (studentCode.length() < STUDENT_CODE_LENGTH) {
+             studentCode += UUID.randomUUID().toString()
+             .substring(0, STUDENT_CODE_LENGTH - studentCode.length());
+             }
+             return studentCode;
+             }
+             */
+            //使用工具类生成学员档案号
+            String student_number = StudentArchiveGenerator.generateStudentCode(
+                    "", "232126199003194781", "11273", "2023");
+
+
             replacePlaceholders(doc, map);
 
             saveDocument(doc);
@@ -76,12 +103,9 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
                                 cell.removeParagraph(0);
                                 if (value instanceof InputStream) {
                                     //如果是放置图片的单元格,在这里添加一个计算图片合适大小的方法,按比例
-
-
-
-
-                                    // 计算合适的宽度和高度
-                                    cell.addParagraph().createRun().addPicture((InputStream) value, XWPFDocument.PICTURE_TYPE_JPEG, "avatar.jpg", 400000, 400000);
+                                    cell.addParagraph().createRun().addPicture((InputStream) value,
+                                            XWPFDocument.PICTURE_TYPE_JPEG, "avatar.jpg",
+                                            Units.pixelToEMU(110), Units.pixelToEMU(140));
                                 } else {
                                     cell.setText(cellText.replace(placeholder, value.toString()));
                                 }

+ 7 - 0
upload/src/main/java/com/koobietech/eas/upload/UploadService.java

@@ -1,4 +1,11 @@
 package com.koobietech.eas.upload;
 
 public class UploadService {
+    public boolean uploadFile(){
+        return false;
+    }
+
+    public boolean moveFile(){
+        return false;
+    }
 }