wuheng 1 год назад
Родитель
Сommit
65584fb501
21 измененных файлов с 535 добавлено и 324 удалено
  1. 5 3
      common/src/main/java/com/koobietech/eas/common/result/PageDataResult.java
  2. 10 6
      common/src/main/java/com/koobietech/eas/common/utils/SecurityManager.java
  3. 3 1
      controller/src/main/java/com/koobietech/eas/controller/EasSysStuProfileController.java
  4. 1 1
      controller/src/main/resources/application.yaml
  5. 0 112
      controller/src/test/java/com/koobietech/eas/controller/ChatClient.java
  6. 9 49
      controller/src/test/java/com/koobietech/eas/controller/ControllerApplicationTests.java
  7. 6 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.java
  8. 35 1
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchives.java
  9. 140 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchivesExample.java
  10. 0 70
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsScoresExample.java
  11. 6 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelation.java
  12. 40 8
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcArchivesMapper.xml
  13. 65 11
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.xml
  14. 2 0
      service/src/main/java/com/koobietech/eas/service/EasArcTlsAttendanceService.java
  15. 2 0
      service/src/main/java/com/koobietech/eas/service/EasArcTlsScoresService.java
  16. 2 5
      service/src/main/java/com/koobietech/eas/service/EasArchivesFilesService.java
  17. 4 1
      service/src/main/java/com/koobietech/eas/service/EasStuProfileService.java
  18. 27 12
      service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsAttendanceServiceImpl.java
  19. 36 13
      service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsScoresServiceImpl.java
  20. 87 7
      service/src/main/java/com/koobietech/eas/service/impl/EasArchivesFilesServiceImpl.java
  21. 55 24
      service/src/main/java/com/koobietech/eas/service/impl/EasStuProfileServiceImpl.java

+ 5 - 3
common/src/main/java/com/koobietech/eas/common/result/PageDataResult.java

@@ -2,14 +2,16 @@ package com.koobietech.eas.common.result;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author lc
  */
 @Data
-public class PageDataResult {
+public class PageDataResult<T> {
     private long total = 0;
-    private Object data = null;
-    public static PageDataResult init(Object data, long total){
+    private List<T> data = null;
+    public static PageDataResult init(List data, long total){
         PageDataResult ret = new PageDataResult();
         ret.setData(data);
         ret.setTotal(total);

+ 10 - 6
common/src/main/java/com/koobietech/eas/common/utils/SecurityManager.java

@@ -76,13 +76,17 @@ public class SecurityManager {
     }
 
     private static UserDetailPojo getPrincipal() {
-        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-        if (Objects.nonNull(principal)) {
-            if (principal instanceof UserDetailPojo) {
-                return (UserDetailPojo) principal;
-            } else {
-                return null;
+        try {
+            Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+            if (Objects.nonNull(principal)) {
+                if (principal instanceof UserDetailPojo) {
+                    return (UserDetailPojo) principal;
+                } else {
+                    return null;
+                }
             }
+        } catch (Exception e) {
+            return null;
         }
         return null;
     }

+ 3 - 1
controller/src/main/java/com/koobietech/eas/controller/EasSysStuProfileController.java

@@ -1,6 +1,7 @@
 package com.koobietech.eas.controller;
 
 
+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.PageDataResult;
@@ -55,7 +56,8 @@ public class EasSysStuProfileController {
     @Operation(summary = "查询学员信息", description = "查询学员信息")
     public JsonPageResult query(@RequestBody(required = false) EasArcTlsStudents studentDto,
                                 @RequestParam Integer pageNum, @RequestParam Integer pageSize){
-        PageDataResult res = easStuProfileService.query(studentDto, pageNum, pageSize);
+        PageHelper.startPage(pageNum, pageSize);
+        PageDataResult res = easStuProfileService.query(studentDto);
         return JsonPageResult.data(res);
     }
 

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

@@ -2,7 +2,7 @@ server:
   port: 8081
 spring:
   profiles:
-    active: local
+    active: wheng
   main:
     allow-circular-references: true
   servlet:

+ 0 - 112
controller/src/test/java/com/koobietech/eas/controller/ChatClient.java

@@ -1,112 +0,0 @@
-package com.koobietech.eas.controller;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.util.Scanner;
-
-/**
- * ClassName: ChatClient
- * Package: com.lc.chat
- * Description:
- *
- * @Author 爱扣钉-陈晨
- * @Create 2023/8/18 9:00
- * @Version 1.0
- */
-public class ChatClient {
-    public static void main(String[] args) throws Exception {
-        Scanner scanner = new Scanner(System.in);
-        //请输入链接地址
-        //创建网络链接对象Socket
-        Socket socket = new Socket("192.168.18.32",9999);
-        System.out.println("链接系统成功,请输入个人昵称,bye退出");
-        String nickname = scanner.nextLine();
-        //发送线程
-        SendThread send = new SendThread(socket,nickname);
-        send.start();
-
-        //接收线程
-        ReceiveThread receive = new ReceiveThread(socket);
-        receive.start();
-        //插队
-        send.join();
-
-    }
-}
-class ReceiveThread extends Thread{
-    Socket socket;
-
-    public ReceiveThread(Socket socket) {
-        this.socket = socket;
-    }
-
-    @Override
-    public void run() {
-        try {
-            //获取输入字节流
-            InputStream is = socket.getInputStream();
-            Scanner scanner = new Scanner(is);
-            //循环
-            while (scanner.hasNextLine()){
-                String s1 = socket.getInetAddress().toString().substring(1);
-                String s2 = InetAddress.getLocalHost().getHostAddress();
-                if (!s1.equals(s2)){
-                    String s = scanner.nextLine();
-                    System.out.println(s);
-                }
-
-            }
-            socket.close();
-
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
-class SendThread extends Thread {
-    private Socket socket;
-
-    private String nickname;
-
-    public SendThread(Socket socket , String nickname ) throws IOException {
-        this.socket = socket;
-        this.nickname = nickname;
-
-        //获取输出字节流
-        OutputStream os = socket.getOutputStream();
-        PrintStream ps = new PrintStream(os);
-        //发送名称
-        ps.println( nickname);
-    }
-
-    @Override
-    public void run() {
-        try {
-            //获取输出字节流
-            OutputStream os = socket.getOutputStream();
-            PrintStream ps = new PrintStream(os);
-            //键盘输入
-            Scanner scanner = new Scanner(System.in);
-            //循环
-            while (true){
-
-                String str = scanner.nextLine();
-                if (str.equals("bye")){
-                    break;
-                }
-                ps.println( nickname+":"+ str);
-
-            }
-            socket.shutdownOutput();
-            socket.close();
-
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
-

+ 9 - 49
controller/src/test/java/com/koobietech/eas/controller/ControllerApplicationTests.java

@@ -1,67 +1,27 @@
 package com.koobietech.eas.controller;
 
+import com.koobietech.eas.service.EasArchivesFilesService;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import javax.annotation.Resource;
+
 
 @SpringBootTest
 class ControllerApplicationTests {
 
-    @Value("${project.path}")
-    String archivesSavePath;
+
+    @Resource
+    EasArchivesFilesService  easArchivesFilesService;
 
     @Test
     void test() {
 
-        System.out.println(
-                archivesSavePath
-        );
+        boolean b = easArchivesFilesService.refreshProfile();
 
-//        System.out.println(ArchiveManager.generateStudentCode(
-//                "2211",
-//                "232126198703194770", "12016", "2020"
-//        ));
-//        System.out.println(
-//                ArchiveManager.generateArchiveCode(
-//                        "ST2211XE6EE36M202412016",
-//                        "20"
-//                )
-//        );
-    }
+        System.out.println( b );
 
-
-//        List<Map> list = new ArrayList<>();
-//        Workbook workbook = null;
-//        ExportParams params = new ExportParams("大数据测试", "测试");
-//
-//        List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
-//        entity.add(new ExcelExportEntity("ID", "id"));
-//        entity.add(new ExcelExportEntity("级别", "level"));
-//        entity.add(new ExcelExportEntity("日志", "logger"));
-//        entity.add(new ExcelExportEntity("消息", "message"));
-//        entity.add(new ExcelExportEntity("时间", "timestamp"));
-//        entity.add(new ExcelExportEntity("异常", "exception"));
-//
-//        Map<String, Object> map = new HashMap<>();
-//        for (int i = 0; i < 10000; i++) {
-//            map.put("id", i);
-//            map.put("level", "ERROR");
-//            map.put("logger", "发生错误" + i);
-//            map.put("message", "这里是消息");
-//            map.put("timestamp", new Date());
-//            map.put("exception", "异常信息");
-//            list.add(map);
-//        }
-//        workbook = ExcelExportUtil.exportExcel(params, entity, list);
-//        list.clear();
-//        File savefile = new File("C:/Users/lc/Desktop");
-//        if (!savefile.exists()) {
-//            savefile.mkdirs();
-//        }
-//        FileOutputStream fos = new FileOutputStream("C:/Users/lc/Desktop/bigDataExport.xlsx");
-//        workbook.write(fos);
-//        fos.close();
+    }
 
 
 

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

@@ -18,15 +18,21 @@ public interface EasArcTlsScoresMapper {
 
     int insertSelective(EasArcTlsScores record);
 
+    List<EasArcTlsScores> selectByExampleWithBLOBs(EasArcTlsScoresExample example);
+
     List<EasArcTlsScores> selectByExample(EasArcTlsScoresExample example);
 
     EasArcTlsScores selectByPrimaryKey(Integer id);
 
     int updateByExampleSelective(@Param("record") EasArcTlsScores record, @Param("example") EasArcTlsScoresExample example);
 
+    int updateByExampleWithBLOBs(@Param("record") EasArcTlsScores record, @Param("example") EasArcTlsScoresExample example);
+
     int updateByExample(@Param("record") EasArcTlsScores record, @Param("example") EasArcTlsScoresExample example);
 
     int updateByPrimaryKeySelective(EasArcTlsScores record);
 
+    int updateByPrimaryKeyWithBLOBs(EasArcTlsScores record);
+
     int updateByPrimaryKey(EasArcTlsScores record);
 }

+ 35 - 1
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchives.java

@@ -32,13 +32,29 @@ public class EasArcArchives implements Serializable {
     @Schema(description = "文件存储的路径")
     private String filePath;
 
+    /**
+     * 档案类型
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "档案类型")
+    private String arctype;
+
+    /**
+     * 文件备注
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "文件备注")
+    private String remarks;
+
     /**
      * 文件类型
      *
      * @mbg.generated
      */
     @Schema(description = "文件类型")
-    private String arctype;
+    private String filetype;
 
     /**
      * 创建时间
@@ -134,6 +150,22 @@ public class EasArcArchives implements Serializable {
         this.arctype = arctype == null ? null : arctype.trim();
     }
 
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks == null ? null : remarks.trim();
+    }
+
+    public String getFiletype() {
+        return filetype;
+    }
+
+    public void setFiletype(String filetype) {
+        this.filetype = filetype == null ? null : filetype.trim();
+    }
+
     public Date getCreateTime() {
         return createTime;
     }
@@ -193,6 +225,8 @@ public class EasArcArchives implements Serializable {
         sb.append(", studentNumber=").append(studentNumber);
         sb.append(", filePath=").append(filePath);
         sb.append(", arctype=").append(arctype);
+        sb.append(", remarks=").append(remarks);
+        sb.append(", filetype=").append(filetype);
         sb.append(", createTime=").append(createTime);
         sb.append(", modifyTime=").append(modifyTime);
         sb.append(", validityTime=").append(validityTime);

+ 140 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchivesExample.java

@@ -472,6 +472,146 @@ public class EasArcArchivesExample {
             return (Criteria) this;
         }
 
+        public Criteria andRemarksIsNull() {
+            addCriterion("remarks is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIsNotNull() {
+            addCriterion("remarks is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksEqualTo(String value) {
+            addCriterion("remarks =", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotEqualTo(String value) {
+            addCriterion("remarks <>", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThan(String value) {
+            addCriterion("remarks >", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
+            addCriterion("remarks >=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThan(String value) {
+            addCriterion("remarks <", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThanOrEqualTo(String value) {
+            addCriterion("remarks <=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLike(String value) {
+            addCriterion("remarks like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotLike(String value) {
+            addCriterion("remarks not like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIn(List<String> values) {
+            addCriterion("remarks in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotIn(List<String> values) {
+            addCriterion("remarks not in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksBetween(String value1, String value2) {
+            addCriterion("remarks between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotBetween(String value1, String value2) {
+            addCriterion("remarks not between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeIsNull() {
+            addCriterion("filetype is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeIsNotNull() {
+            addCriterion("filetype is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeEqualTo(String value) {
+            addCriterion("filetype =", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotEqualTo(String value) {
+            addCriterion("filetype <>", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeGreaterThan(String value) {
+            addCriterion("filetype >", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeGreaterThanOrEqualTo(String value) {
+            addCriterion("filetype >=", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeLessThan(String value) {
+            addCriterion("filetype <", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeLessThanOrEqualTo(String value) {
+            addCriterion("filetype <=", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeLike(String value) {
+            addCriterion("filetype like", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotLike(String value) {
+            addCriterion("filetype not like", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeIn(List<String> values) {
+            addCriterion("filetype in", values, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotIn(List<String> values) {
+            addCriterion("filetype not in", values, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeBetween(String value1, String value2) {
+            addCriterion("filetype between", value1, value2, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotBetween(String value1, String value2) {
+            addCriterion("filetype not between", value1, value2, "filetype");
+            return (Criteria) this;
+        }
+
         public Criteria andCreateTimeIsNull() {
             addCriterion("create_time is null");
             return (Criteria) this;

+ 0 - 70
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsScoresExample.java

@@ -775,76 +775,6 @@ public class EasArcTlsScoresExample {
             addCriterion("create_uid not between", value1, value2, "createUid");
             return (Criteria) this;
         }
-
-        public Criteria andCommentIsNull() {
-            addCriterion("comment is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentIsNotNull() {
-            addCriterion("comment is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentEqualTo(String value) {
-            addCriterion("comment =", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotEqualTo(String value) {
-            addCriterion("comment <>", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentGreaterThan(String value) {
-            addCriterion("comment >", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentGreaterThanOrEqualTo(String value) {
-            addCriterion("comment >=", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentLessThan(String value) {
-            addCriterion("comment <", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentLessThanOrEqualTo(String value) {
-            addCriterion("comment <=", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentLike(String value) {
-            addCriterion("comment like", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotLike(String value) {
-            addCriterion("comment not like", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentIn(List<String> values) {
-            addCriterion("comment in", values, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotIn(List<String> values) {
-            addCriterion("comment not in", values, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentBetween(String value1, String value2) {
-            addCriterion("comment between", value1, value2, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotBetween(String value1, String value2) {
-            addCriterion("comment not between", value1, value2, "comment");
-            return (Criteria) this;
-        }
     }
 
     public static class Criteria extends GeneratedCriteria {

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

@@ -50,6 +50,12 @@ public class EasEduCltRelation implements Serializable {
     @Schema(description = "创建用户ID")
     private Integer createUid;
 
+    /**
+     * 类别
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "类别")
     private String type;
 
     private static final long serialVersionUID = 1L;

+ 40 - 8
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcArchivesMapper.xml

@@ -7,6 +7,8 @@
     <result column="student_number" jdbcType="VARCHAR" property="studentNumber" />
     <result column="file_path" jdbcType="VARCHAR" property="filePath" />
     <result column="arctype" jdbcType="VARCHAR" property="arctype" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="filetype" jdbcType="CHAR" property="filetype" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
     <result column="validity_time" jdbcType="TIMESTAMP" property="validityTime" />
@@ -73,8 +75,8 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, archive_number, student_number, file_path, arctype, create_time, modify_time, 
-    validity_time, manager_id, create_date, create_uid
+    id, archive_number, student_number, file_path, arctype, remarks, filetype, create_time, 
+    modify_time, validity_time, manager_id, create_date, create_uid
   </sql>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasArcArchivesExample" resultMap="BaseResultMap">
     select
@@ -111,13 +113,15 @@
       SELECT LAST_INSERT_ID()
     </selectKey>
     insert into eas_arc_archives (archive_number, student_number, file_path, 
-      arctype, create_time, modify_time, 
-      validity_time, manager_id, create_date, 
-      create_uid)
+      arctype, remarks, filetype, 
+      create_time, modify_time, validity_time, 
+      manager_id, create_date, create_uid
+      )
     values (#{archiveNumber,jdbcType=VARCHAR}, #{studentNumber,jdbcType=VARCHAR}, #{filePath,jdbcType=VARCHAR}, 
-      #{arctype,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, 
-      #{validityTime,jdbcType=TIMESTAMP}, #{managerId,jdbcType=INTEGER}, #{createDate,jdbcType=DATE}, 
-      #{createUid,jdbcType=INTEGER})
+      #{arctype,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, #{filetype,jdbcType=CHAR}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, #{validityTime,jdbcType=TIMESTAMP}, 
+      #{managerId,jdbcType=INTEGER}, #{createDate,jdbcType=DATE}, #{createUid,jdbcType=INTEGER}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasArcArchives">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
@@ -137,6 +141,12 @@
       <if test="arctype != null">
         arctype,
       </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="filetype != null">
+        filetype,
+      </if>
       <if test="createTime != null">
         create_time,
       </if>
@@ -169,6 +179,12 @@
       <if test="arctype != null">
         #{arctype,jdbcType=VARCHAR},
       </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="filetype != null">
+        #{filetype,jdbcType=CHAR},
+      </if>
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -213,6 +229,12 @@
       <if test="record.arctype != null">
         arctype = #{record.arctype,jdbcType=VARCHAR},
       </if>
+      <if test="record.remarks != null">
+        remarks = #{record.remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="record.filetype != null">
+        filetype = #{record.filetype,jdbcType=CHAR},
+      </if>
       <if test="record.createTime != null">
         create_time = #{record.createTime,jdbcType=TIMESTAMP},
       </if>
@@ -243,6 +265,8 @@
       student_number = #{record.studentNumber,jdbcType=VARCHAR},
       file_path = #{record.filePath,jdbcType=VARCHAR},
       arctype = #{record.arctype,jdbcType=VARCHAR},
+      remarks = #{record.remarks,jdbcType=VARCHAR},
+      filetype = #{record.filetype,jdbcType=CHAR},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
       validity_time = #{record.validityTime,jdbcType=TIMESTAMP},
@@ -268,6 +292,12 @@
       <if test="arctype != null">
         arctype = #{arctype,jdbcType=VARCHAR},
       </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="filetype != null">
+        filetype = #{filetype,jdbcType=CHAR},
+      </if>
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -295,6 +325,8 @@
       student_number = #{studentNumber,jdbcType=VARCHAR},
       file_path = #{filePath,jdbcType=VARCHAR},
       arctype = #{arctype,jdbcType=VARCHAR},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      filetype = #{filetype,jdbcType=CHAR},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP},
       validity_time = #{validityTime,jdbcType=TIMESTAMP},

+ 65 - 11
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.xml

@@ -13,7 +13,9 @@
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
     <result column="create_uid" jdbcType="INTEGER" property="createUid" />
-    <result column="comment" jdbcType="VARCHAR" property="comment" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.koobietech.eas.mbg.model.EasArcTlsScores">
+    <result column="comment" jdbcType="LONGVARCHAR" property="comment" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -75,8 +77,27 @@
   </sql>
   <sql id="Base_Column_List">
     id, student_number, category_id, subject_id, test_date, score, pass_rate, excel_rate, 
-    create_time, modify_time, create_uid, comment
+    create_time, modify_time, create_uid
+  </sql>
+  <sql id="Blob_Column_List">
+    comment
   </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScoresExample" resultMap="ResultMapWithBLOBs">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from eas_arc_tls_scores
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScoresExample" resultMap="BaseResultMap">
     select
     <if test="distinct">
@@ -91,9 +112,11 @@
       order by ${orderByClause}
     </if>
   </select>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="ResultMapWithBLOBs">
     select 
     <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
     from eas_arc_tls_scores
     where id = #{id,jdbcType=INTEGER}
   </select>
@@ -118,7 +141,7 @@
     values (#{studentNumber,jdbcType=VARCHAR}, #{categoryId,jdbcType=INTEGER}, #{subjectId,jdbcType=INTEGER}, 
       #{testDate,jdbcType=TIMESTAMP}, #{score,jdbcType=DECIMAL}, #{passRate,jdbcType=DECIMAL}, 
       #{excelRate,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, 
-      #{createUid,jdbcType=INTEGER}, #{comment,jdbcType=VARCHAR})
+      #{createUid,jdbcType=INTEGER}, #{comment,jdbcType=LONGVARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
@@ -192,7 +215,7 @@
         #{createUid,jdbcType=INTEGER},
       </if>
       <if test="comment != null">
-        #{comment,jdbcType=VARCHAR},
+        #{comment,jdbcType=LONGVARCHAR},
       </if>
     </trim>
   </insert>
@@ -239,14 +262,14 @@
         create_uid = #{record.createUid,jdbcType=INTEGER},
       </if>
       <if test="record.comment != null">
-        comment = #{record.comment,jdbcType=VARCHAR},
+        comment = #{record.comment,jdbcType=LONGVARCHAR},
       </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
   </update>
-  <update id="updateByExample" parameterType="map">
+  <update id="updateByExampleWithBLOBs" parameterType="map">
     update eas_arc_tls_scores
     set id = #{record.id,jdbcType=INTEGER},
       student_number = #{record.studentNumber,jdbcType=VARCHAR},
@@ -259,7 +282,24 @@
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
       create_uid = #{record.createUid,jdbcType=INTEGER},
-      comment = #{record.comment,jdbcType=VARCHAR}
+      comment = #{record.comment,jdbcType=LONGVARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update eas_arc_tls_scores
+    set id = #{record.id,jdbcType=INTEGER},
+      student_number = #{record.studentNumber,jdbcType=VARCHAR},
+      category_id = #{record.categoryId,jdbcType=INTEGER},
+      subject_id = #{record.subjectId,jdbcType=INTEGER},
+      test_date = #{record.testDate,jdbcType=TIMESTAMP},
+      score = #{record.score,jdbcType=DECIMAL},
+      pass_rate = #{record.passRate,jdbcType=DECIMAL},
+      excel_rate = #{record.excelRate,jdbcType=DECIMAL},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
+      create_uid = #{record.createUid,jdbcType=INTEGER}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -298,12 +338,12 @@
         create_uid = #{createUid,jdbcType=INTEGER},
       </if>
       <if test="comment != null">
-        comment = #{comment,jdbcType=VARCHAR},
+        comment = #{comment,jdbcType=LONGVARCHAR},
       </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
     update eas_arc_tls_scores
     set student_number = #{studentNumber,jdbcType=VARCHAR},
       category_id = #{categoryId,jdbcType=INTEGER},
@@ -315,7 +355,21 @@
       create_time = #{createTime,jdbcType=TIMESTAMP},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP},
       create_uid = #{createUid,jdbcType=INTEGER},
-      comment = #{comment,jdbcType=VARCHAR}
+      comment = #{comment,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
+    update eas_arc_tls_scores
+    set student_number = #{studentNumber,jdbcType=VARCHAR},
+      category_id = #{categoryId,jdbcType=INTEGER},
+      subject_id = #{subjectId,jdbcType=INTEGER},
+      test_date = #{testDate,jdbcType=TIMESTAMP},
+      score = #{score,jdbcType=DECIMAL},
+      pass_rate = #{passRate,jdbcType=DECIMAL},
+      excel_rate = #{excelRate,jdbcType=DECIMAL},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+      create_uid = #{createUid,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
 </mapper>

+ 2 - 0
service/src/main/java/com/koobietech/eas/service/EasArcTlsAttendanceService.java

@@ -21,4 +21,6 @@ public interface EasArcTlsAttendanceService {
     List<AttendancePojo> getStudentList(AttendanceDto dto);
 
     PageDataResult queryAttendance(AttendanceDto dto);
+
+    boolean saveStudentAttendanceArchive(String studentNumber);
 }

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

@@ -45,4 +45,6 @@ public interface EasArcTlsScoresService {
 
     PageDataResult queryStudentScores(ScoresDto scoresDto);
 
+    boolean saveStudentScoreArchive(String studentNumber);
+
 }

+ 2 - 5
service/src/main/java/com/koobietech/eas/service/EasArchivesFilesService.java

@@ -7,7 +7,6 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
 
 import java.io.FileInputStream;
 import java.io.InputStream;
-import java.io.OutputStream;
 
 /**
  * @author lc
@@ -89,10 +88,8 @@ public interface EasArchivesFilesService {
     boolean backupArchiveFile(String filePath);
 
     /**
-     * 获取档案连接Url地址
-     * @param filePath
-     * @return
+     * 刷新档案
      */
-    String getArchiveUrl(String filePath);
+    boolean refreshProfile();
 
 }

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

@@ -1,6 +1,7 @@
 package com.koobietech.eas.service;
 
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.dao.dto.ArchivesDto;
 import com.koobietech.eas.mbg.model.EasArcTlsStudents;
 import com.koobietech.eas.mbg.model.EasSysStudent;
 
@@ -13,7 +14,7 @@ import java.util.List;
 public interface EasStuProfileService {
     boolean add(EasArcTlsStudents easArcTlsStudents);
 
-    PageDataResult query(EasArcTlsStudents studentDto, Integer pageNum, Integer pageSize);
+    PageDataResult query(EasArcTlsStudents studentDto);
 
     boolean update(EasArcTlsStudents studentDto);
 
@@ -24,4 +25,6 @@ public interface EasStuProfileService {
     List<EasSysStudent> getAll();
 
     List<EasSysStudent> getStudentByKeyword(String keyword);
+
+    ArchivesDto saveUserFile(EasArcTlsStudents easArcTlsStudents);
 }

+ 27 - 12
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsAttendanceServiceImpl.java

@@ -33,11 +33,7 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
     @Resource
     private EasArcTlsAttendanceMapper easArcTlsAttendanceMapper;
 
-    @Resource
-    private EasEduCltRelationMapper easEduCltRelationMapper;
-
-    @Resource
-    private EasSysStudentMapper easSysStudentMapper;
+    final String FILETYPE = "attendance";
 
     @Resource
     private EasEduScheduleMapper easEduScheduleMapper;
@@ -110,7 +106,7 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
         attendance.setModifyTime(new Date());
         attendance.setCreateUid( SecurityManager.getLoginUid().intValue() );
         int insert = easArcTlsAttendanceMapper.insert(attendance);
-        saveStudentAttendanceArchive(attendance);
+        saveStudentAttendanceArchive(attendance.getStudentNumber());
         return insert == 1;
     }
 
@@ -162,7 +158,7 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
         } else {
             i = easArcTlsAttendanceMapper.insert(attendance);
         }
-        saveStudentAttendanceArchive(attendance);
+        saveStudentAttendanceArchive(attendance.getStudentNumber());
         return i == 1;
     }
 
@@ -194,20 +190,39 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
         return PageDataResult.init(attendancePojos, aLong);
     }
 
-    public boolean saveStudentAttendanceArchive(EasArcTlsAttendance attendance){
+    @Override
+    public boolean saveStudentAttendanceArchive(String studentNumber){
+
         EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
         EasArcTlsAttendanceExample.Criteria criteria = easArcTlsAttendanceExample.createCriteria();
-        criteria.andStudentNumberEqualTo(attendance.getStudentNumber());
-        //criteria.andScheduleIdEqualTo(attendance.getScheduleId());
+        criteria.andStudentNumberEqualTo(studentNumber);
         List<EasArcTlsAttendance> easArcTlsAttendances = easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
-        ArchivesDto archivesDto = saveEasArcTlsAttendanceToExcel(easArcTlsAttendances, attendance.getStudentNumber());
+
+        //保存文件
+        ArchivesDto archivesDto = saveEasArcTlsAttendanceToExcel(easArcTlsAttendances, studentNumber);
+
+        //删除文件
+        EasArcArchivesExample easArcArchivesExample = new EasArcArchivesExample();
+        EasArcArchivesExample.Criteria criteriaDel = easArcArchivesExample.createCriteria();
+        criteriaDel.andStudentNumberEqualTo( studentNumber );
+        criteriaDel.andFiletypeEqualTo( FILETYPE );
+        List<EasArcArchives> easArcArchivesOld = arcArchivesMapper.selectByExample(easArcArchivesExample);
+        if ( easArcArchivesOld.size() > 0) {
+            for ( EasArcArchives arc : easArcArchivesOld) {
+                easArchivesFilesService.deleteArchiveFile(arc.getFilePath());
+            }
+            arcArchivesMapper.deleteByExample(easArcArchivesExample);
+        }
+
+        //保存数据
         EasArcArchives easArcArchives = new EasArcArchives();
-        easArcArchives.setStudentNumber(attendance.getStudentNumber());
+        easArcArchives.setStudentNumber(studentNumber);
         easArcArchives.setArchiveNumber(archivesDto.getArchiveCode());
         easArcArchives.setFilePath(archivesDto.getPath());
         easArcArchives.setCreateTime(new Date());
         easArcArchives.setCreateUid( SecurityManager.getLoginUid().intValue() );
         easArcArchives.setModifyTime(new Date());
+        easArcArchives.setFiletype( FILETYPE );
         easArcArchives.setArctype(FileType.XLSX.name());
         easArcArchives.setManagerId( SecurityManager.getLoginUid().intValue() );
         easArcArchives.setValidityTime( new Date(LocalDate.now().plusMonths(20)

+ 36 - 13
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsScoresServiceImpl.java

@@ -17,6 +17,7 @@ import com.koobietech.eas.dao.pojo.ScoresPojo;
 import com.koobietech.eas.mbg.mapper.EasArcArchivesMapper;
 import com.koobietech.eas.mbg.mapper.EasArcTlsScoresMapper;
 import com.koobietech.eas.mbg.model.EasArcArchives;
+import com.koobietech.eas.mbg.model.EasArcArchivesExample;
 import com.koobietech.eas.mbg.model.EasArcTlsScores;
 import com.koobietech.eas.mbg.model.EasArcTlsScoresExample;
 import com.koobietech.eas.service.EasArcTlsScoresService;
@@ -53,6 +54,8 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
     @Resource
     EasArcArchivesMapper arcArchivesMapper;
 
+    final String FILETYPE = "scores";
+
     @Override
     public int addStudentScore(EasArcTlsScores easArcTlsScores) {
         if ( Objects.nonNull(easArcTlsScores.getId()) &&  easArcTlsScores.getId() > 0  ) {
@@ -65,21 +68,44 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
             easArcTlsScores.setModifyTime(new Date());
             easArcTlsScores.setCreateUid(SecurityManager.getLoginUid().intValue());
             easArcTlsScoresMapper.insert(easArcTlsScores);
-            return saveStudentScoreArchive(easArcTlsScores) ? 1 : 0;
+            return saveStudentScoreArchive(easArcTlsScores.getStudentNumber()) ? 1 : 0;
         }
     }
 
-    private boolean saveStudentScoreArchive(EasArcTlsScores easArcTlsScores){
-        EasArcTlsScoresExample easArcTlsScoresExample = new EasArcTlsScoresExample();
-        List<EasArcTlsScores> easArcTlsScoresList = easArcTlsScoresMapper.selectByExample(easArcTlsScoresExample);
-        ArchivesDto archivesDto = saveEasArcTlsScoresToExcel(easArcTlsScoresList, easArcTlsScores.getStudentNumber());
+    @Override
+    public boolean saveStudentScoreArchive(String studentNumber){
+        ScoresDto scoresDto = new ScoresDto();
+        scoresDto.setStudentNumber(studentNumber);
+        List<ScoresPojo> scoresPojos = scoresMapper.queryStudentScores(scoresDto);
+        if ( Objects.isNull(scoresPojos) || scoresPojos.size() == 0 ) {
+            return false;
+        }
+
+        // 保存到文件
+        ArchivesDto archivesDto = saveEasArcTlsScoresToExcel(scoresPojos, studentNumber);
+
+        // 删除文件
+        EasArcArchivesExample easArcArchivesExample = new EasArcArchivesExample();
+        EasArcArchivesExample.Criteria criteria = easArcArchivesExample.createCriteria();
+        criteria.andStudentNumberEqualTo( studentNumber );
+        criteria.andFiletypeEqualTo( FILETYPE );
+        List<EasArcArchives> easArcArchivesOld = arcArchivesMapper.selectByExample(easArcArchivesExample);
+        if ( easArcArchivesOld.size() > 0) {
+            for ( EasArcArchives arc : easArcArchivesOld) {
+                easArchivesFilesService.deleteArchiveFile(arc.getFilePath());
+            }
+            arcArchivesMapper.deleteByExample(easArcArchivesExample);
+        }
+
+        // 保存到数据库
         EasArcArchives easArcArchives = new EasArcArchives();
-        easArcArchives.setStudentNumber(easArcTlsScores.getStudentNumber());
+        easArcArchives.setStudentNumber(studentNumber);
         easArcArchives.setArchiveNumber(archivesDto.getArchiveCode());
         easArcArchives.setFilePath(archivesDto.getPath());
         easArcArchives.setCreateTime(new Date());
         easArcArchives.setCreateUid( SecurityManager.getLoginUid().intValue() );
         easArcArchives.setModifyTime(new Date());
+        easArcArchives.setFiletype(FILETYPE);
         easArcArchives.setArctype(FileType.XLSX.name());
         easArcArchives.setManagerId( SecurityManager.getLoginUid().intValue() );
         easArcArchives.setValidityTime( new Date(LocalDate.now().plusMonths(20)
@@ -91,7 +117,7 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
     @Override
     public int updateStudentScore(EasArcTlsScores easArcTlsScores) {
         easArcTlsScoresMapper.updateByPrimaryKeySelective(easArcTlsScores);
-        return saveStudentScoreArchive(easArcTlsScores) ? 1: 0;
+        return saveStudentScoreArchive(easArcTlsScores.getStudentNumber()) ? 1: 0;
     }
 
     @Override
@@ -131,9 +157,6 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
             if (Objects.nonNull(easArcTlsScores.getCreateUid())) {
                 criteria.andCreateUidEqualTo(easArcTlsScores.getCreateUid());
             }
-            if (StringUtils.hasText(easArcTlsScores.getComment())) {
-                criteria.andCommentLike("%"+easArcTlsScores.getComment()+"%");
-            }
             if (Objects.nonNull(easArcTlsScores.getSubjectId()) && easArcTlsScores.getSubjectId() > 0) {
                 criteria.andSubjectIdEqualTo(easArcTlsScores.getSubjectId());
             }
@@ -164,7 +187,7 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
                 easArcTlsScoresMapper.insert(easArcTlsScores);
             }
             if ( Objects.nonNull(easArcTlsScores) ) {
-                saveStudentScoreArchive(easArcTlsScores);
+                saveStudentScoreArchive(easArcTlsScores.getStudentNumber());
             }
         } catch (FileNotFoundException e) {
             throw new EasException(e.getMessage());
@@ -190,10 +213,10 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
     /**
      * 将学员考试分数保存为Execl文件
      */
-    public ArchivesDto saveEasArcTlsScoresToExcel(List<EasArcTlsScores> easArcTlsScoresList,
+    public ArchivesDto saveEasArcTlsScoresToExcel(List<ScoresPojo> easArcTlsScoresList,
                                               String studentNumber) {
         List<EasArcTlsScoresPojo> easArcTlsScoresPojoList = new ArrayList<>();
-        for (EasArcTlsScores easArcTlsScores: easArcTlsScoresList) {
+        for (ScoresPojo easArcTlsScores: easArcTlsScoresList) {
             EasArcTlsScoresPojo easArcTlsScoresPojo = new EasArcTlsScoresPojo();
             BeanUtil.copyProperties(easArcTlsScores, easArcTlsScoresPojo);
             easArcTlsScoresPojoList.add(easArcTlsScoresPojo);

+ 87 - 7
service/src/main/java/com/koobietech/eas/service/impl/EasArchivesFilesServiceImpl.java

@@ -1,21 +1,29 @@
 package com.koobietech.eas.service.impl;
 
 import com.koobietech.eas.common.constant.FileType;
-import com.koobietech.eas.common.utils.FileManager;
+import com.koobietech.eas.common.result.PageDataResult;
 import com.koobietech.eas.common.utils.ArchiveManager;
+import com.koobietech.eas.common.utils.FileManager;
 import com.koobietech.eas.dao.dto.ArchivesDto;
 import com.koobietech.eas.mbg.mapper.EasArcTlsStudentsMapper;
 import com.koobietech.eas.mbg.model.EasArcTlsStudents;
 import com.koobietech.eas.mbg.model.EasArcTlsStudentsExample;
+import com.koobietech.eas.mbg.model.EasSysStudent;
+import com.koobietech.eas.service.EasArcTlsAttendanceService;
+import com.koobietech.eas.service.EasArcTlsScoresService;
 import com.koobietech.eas.service.EasArchivesFilesService;
+import com.koobietech.eas.service.EasStuProfileService;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author lc
@@ -34,29 +42,53 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     @Resource
     EasArcTlsStudentsMapper arcTlsStudentsMapper;
 
+    @Resource
+    EasStuProfileService  easStuProfileService;
+
+    @Resource
+    EasArcTlsScoresService easArcTlsScoresService;
+
+    @Resource
+    EasArcTlsAttendanceService easArcTlsAttendanceService;
+
     String separator = File.separator;
 
     @Override
+    /**
+     * 保存考勤信息
+     */
     public ArchivesDto saveArchiveAttendanceFile(String studentNumber, XWPFDocument document) {
         return saveArchiveDocumentFile(studentNumber, document, FileType.XLSX.name());
     }
 
     @Override
+    /**
+     * 保存考核信息
+     */
     public ArchivesDto saveArchiveScoresFile(String studentNumber, XWPFDocument document) {
         return saveArchiveDocumentFile(studentNumber, document, FileType.XLSX.name());
     }
 
     @Override
+    /**
+     * 保存基本资料
+     */
     public ArchivesDto saveArchiveStudentsFile(String studentNumber, XWPFDocument document) {
         return saveArchiveDocumentFile(studentNumber, document, FileType.DOCX.name());
     }
 
     @Override
+    /**
+     * 保存其他文档
+     */
     public ArchivesDto saveArchiveFile(String studentNumber, Workbook workbook) {
         return saveArchiveWorkbookFile(studentNumber, workbook, FileType.XLSX.name());
     }
 
     @Override
+    /**
+     * 保存凄其他资料
+     */
     public ArchivesDto saveArchiveFile(String studentNumber, InputStream stream, String type) {
         String archiveCode = getArchiveCode(studentNumber, String.valueOf(FileType.valueOf(type).getValue()));
         String path = getArchivePath(studentNumber, archiveCode, FileType.valueOf(type).getSuffix());
@@ -65,16 +97,25 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     }
 
     @Override
+    /**
+     * 删除文件
+     */
     public boolean deleteArchiveFile(String filePath) {
         return fileManager.deleteFile(filePath);
     }
 
     @Override
+    /**
+     * 获取文件1
+     */
     public FileInputStream getArchiveFile(String filePath) {
         return fileManager.getArchiveFile(filePath);
     }
 
     @Override
+    /**
+     * 获取文件2
+     */
     public InputStream getResourceStream(String filePath) {
         InputStream resourceAsStream = null;
         try {
@@ -85,6 +126,9 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     }
 
     @Override
+    /**
+     * 获取学员档案数据
+     */
     public EasArcTlsStudents getArchiveStudentsFile(String studentNumber) {
         EasArcTlsStudentsExample easArcTlsStudentsExample = new EasArcTlsStudentsExample();
         easArcTlsStudentsExample.createCriteria().andStudentNumberEqualTo(studentNumber);
@@ -93,6 +137,9 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     }
 
     @Override
+    /**
+     * 备份数据
+     */
     public boolean backupArchiveFile(String filePath) {
         boolean ret = false;
         if (filePath == null || filePath.isEmpty()) {
@@ -106,12 +153,45 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     }
 
     @Override
-    public String getArchiveUrl(String filePath) {
-        String url = null;
-        if (filePath == null || filePath.isEmpty()) {
-            return url;
+    /**
+     * 刷新档案
+     */
+    public boolean refreshProfile() {
+
+        /**
+         * 查询所有学员
+         */
+        List<EasSysStudent> all = easStuProfileService.getAll();
+
+        /**
+         * 查询学员考核
+         */
+        for (EasSysStudent student : all) {
+            easArcTlsScoresService.saveStudentScoreArchive(student.getStudentNumber());
+        }
+
+        /**
+         * 查询学员考勤
+         */
+        for (EasSysStudent student : all) {
+            easArcTlsAttendanceService.saveStudentAttendanceArchive(student.getStudentNumber());
+        }
+        /**
+         * 查询学员基本信息
+         */
+        for (EasSysStudent student : all) {
+            EasArcTlsStudents easArcTlsStudents = new EasArcTlsStudents();
+            easArcTlsStudents.setStudentNumber(student.getStudentNumber());
+            PageDataResult query = easStuProfileService.query(easArcTlsStudents);
+            if ( query.getTotal() > 0 ) {
+                EasArcTlsStudents arcStudent = (EasArcTlsStudents) query.getData()
+                        .stream().findFirst().orElse(null);
+                if (Objects.nonNull(arcStudent)) {
+                    easStuProfileService.saveUserFile(arcStudent);
+                }
+            }
         }
-        return null;
+        return true;
     }
 
     private ArchivesDto saveArchiveDocumentFile(String studentNumber, XWPFDocument document, String type) {

+ 55 - 24
service/src/main/java/com/koobietech/eas/service/impl/EasStuProfileServiceImpl.java

@@ -2,7 +2,6 @@ package com.koobietech.eas.service.impl;
 
 import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ImportParams;
-import com.github.pagehelper.PageHelper;
 import com.koobietech.eas.common.constant.FileType;
 import com.koobietech.eas.common.constant.Gender;
 import com.koobietech.eas.common.constant.UniversityCode;
@@ -39,7 +38,7 @@ import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import static java.util.regex.Pattern.*;
+import static java.util.regex.Pattern.compile;
 
 @Service
 public class EasStuProfileServiceImpl implements EasStuProfileService {
@@ -59,47 +58,63 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
     @Resource
     private EasArchivesFilesService easArchivesFilesService;
 
-    @Override
-    public boolean add(EasArcTlsStudents easArcTlsStudents) {
+    final String FILETYPE = "prefile";
 
-        //使用try-with-resources 语句 保证流的关闭
+    @Override
+    public ArchivesDto saveUserFile(EasArcTlsStudents easArcTlsStudents){
+        ArchivesDto archivesDto = null;
         try (InputStream wordStream = getClass().getClassLoader().getResourceAsStream(TEMPLATE_PATH)) {
             assert wordStream != null;
             try (XWPFDocument doc = new XWPFDocument(wordStream)) {
                 //调用内部类方法 生成学号
-                String studentNumber = generateStudentNumber(easArcTlsStudents);
+                String studentNumber = "";
+                if ( easArcTlsStudents.getStudentNumber() == null || easArcTlsStudents.getStudentNumber().equals("")) {
+                    studentNumber = generateStudentNumber(easArcTlsStudents);
+                    easArcTlsStudents.setStudentNumber(studentNumber);
+                } else {
+                    studentNumber = easArcTlsStudents.getStudentNumber();
+                }
 
-                easArcTlsStudents.setStudentNumber(studentNumber);
                 Map<String, Object> map = generateDataMap(easArcTlsStudents, studentNumber);
                 replacePlaceholders(doc, map);
                 //这里会生成一个学生档案保存本地 目前这里有bug保存不成功 而且文件后缀有错误
-                ArchivesDto archivesDto = insertEasArcArchives(easArcTlsStudents, doc);
-                if ( !archivesDto.isStatus() ) {
+                archivesDto = insertEasArcArchives(easArcTlsStudents, doc);
+                if (!archivesDto.isStatus()) {
                     throw new EasException("EasArcArchives保存失败", 8002);
                 }
-
-                //将easArcTlsStudents 保存到数据库
-                easArcTlsStudents.setArchiveNumber(archivesDto.getArchiveCode());
-                boolean isTlsStudentsInsert = insertEasArcTlsStudents(easArcTlsStudents);
-                if (!isTlsStudentsInsert) {
-                    throw new EasException("EasArcTlsStudents保存失败", 8000);
-                }
-                boolean isSysStudentsInsert = insertEasSysStudents(easArcTlsStudents);
-                if (!isSysStudentsInsert) {
-                    throw new EasException("EasSysStudents保存失败", 8001);
-                }
-
+            } catch (Exception e) {
+                logger.error(e.getMessage());
+                throw new EasException("调取模板失败", 8003);
             }
         } catch (IOException e) {
             logger.error(e.getMessage());
             throw new EasException("生成档案失败", 8003);
         }
+        return archivesDto;
+    }
+
+    @Override
+    public boolean add(EasArcTlsStudents easArcTlsStudents) {
+
+        ArchivesDto archivesDto = saveUserFile(easArcTlsStudents);
+
+        //将easArcTlsStudents 保存到数据库
+        easArcTlsStudents.setArchiveNumber(archivesDto.getArchiveCode());
+        boolean isTlsStudentsInsert = insertEasArcTlsStudents(easArcTlsStudents);
+        if (!isTlsStudentsInsert) {
+            throw new EasException("EasArcTlsStudents保存失败", 8000);
+        }
+        boolean isSysStudentsInsert = insertEasSysStudents(easArcTlsStudents);
+        if (!isSysStudentsInsert) {
+            throw new EasException("EasSysStudents保存失败", 8001);
+        }
+
         return true;
     }
 
     @Override
-    public PageDataResult query(EasArcTlsStudents studentDto, Integer pageNum, Integer pageSize) {
-        PageHelper.startPage(pageNum, pageSize);
+    public PageDataResult query(EasArcTlsStudents studentDto) {
+
         EasArcTlsStudentsExample easArcTlsStudentsExample = new EasArcTlsStudentsExample();
         EasArcTlsStudentsExample.Criteria criteria = easArcTlsStudentsExample.createCriteria();
         if ( Objects.nonNull(studentDto) ) {
@@ -224,11 +239,26 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
     }
 
     public ArchivesDto insertEasArcArchives(EasArcTlsStudents easArcTlsStudents,  XWPFDocument doc) {
+
+        // 删除文件
+        EasArcArchivesExample easArcArchivesExample = new EasArcArchivesExample();
+        EasArcArchivesExample.Criteria criteria = easArcArchivesExample.createCriteria();
+        criteria.andStudentNumberEqualTo( easArcTlsStudents.getStudentNumber() );
+        criteria.andFiletypeEqualTo( FILETYPE );
+        List<EasArcArchives> easArcArchivesOld = easArcArchivesMapper.selectByExample(easArcArchivesExample);
+        if ( easArcArchivesOld.size() > 0) {
+            for ( EasArcArchives arc : easArcArchivesOld) {
+                easArchivesFilesService.deleteArchiveFile(arc.getFilePath());
+            }
+            easArcArchivesMapper.deleteByExample(easArcArchivesExample);
+        }
+
+
         // 生成档案号
         String archiveCode = ArchiveManager.generateArchiveCode(easArcTlsStudents.getStudentNumber(), String.valueOf(FileType.DOCX.getValue()));
 
         // 保存学员档案文件
-        ArchivesDto archivesDto = easArchivesFilesService.saveArchiveStudentsFile(easArcTlsStudents.getStudentIdnumber(), doc);
+        ArchivesDto archivesDto = easArchivesFilesService.saveArchiveStudentsFile(easArcTlsStudents.getStudentNumber(), doc);
 
         // 设置时间和有效期
         Date createTime = DateManager.convertToYearMonthDayToDate(new Date());
@@ -244,6 +274,7 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
         easArcArchives.setArchiveNumber(archiveCode);
         easArcArchives.setStudentNumber(easArcTlsStudents.getStudentNumber());
         easArcArchives.setFilePath(archivesDto.getPath());
+        easArcArchives.setFiletype(FILETYPE);
         easArcArchives.setArctype(archivesDto.getFileType());
         easArcArchives.setCreateTime(createTime);
         easArcArchives.setModifyTime(modifyTime);