Browse Source

内置账号创建

xiaof 4 years ago
parent
commit
fd9499fa30

+ 11 - 0
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/dto/StudentDTO.java

@@ -28,6 +28,9 @@ public class StudentDTO implements Serializable {
     @ExcelProperty(index = 6, name = "生源地", type = 2)
     private String sourceName;
 
+    @ExcelProperty(index = 7, name = "学校", type = 2)
+    private String school;
+
 
     private Long workId;
 
@@ -94,4 +97,12 @@ public class StudentDTO implements Serializable {
     public void setSourceName(String sourceName) {
         this.sourceName = sourceName;
     }
+
+    public String getSchool() {
+        return school;
+    }
+
+    public void setSchool(String school) {
+        this.school = school;
+    }
 }

+ 2 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java

@@ -266,7 +266,7 @@ public class DataUploadService {
                     Student student = studentRepo.findByWorkIdAndExamNumberAndTest(workId, dto.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
                     if (student == null && !isAbsent) {
                         student = new Student(dto.getName(), dto.getExamNumber(), dto.getAreaName(), dto.getAreaCode(),
-                                workId, dto.getExamRoom(), dto.getSourceName(), String.valueOf(TrialEnum.DEFAULT.getId()));
+                                workId, dto.getExamRoom(), dto.getSourceName(), String.valueOf(TrialEnum.DEFAULT.getId()), dto.getSchool());
                         if (imageConfig.isCustomSubject()) {
                             student.setUploadStatus("CUSTOM:0");
                         }
@@ -298,6 +298,7 @@ public class DataUploadService {
                             student.setAreaName(dto.getAreaName());
                             student.setExamRoom(dto.getExamRoom());
                             student.setSourceName(dto.getSourceName());
+                            student.setSchool(dto.getSchool());
                         }
                         studentRepo.save(student);
                     }

+ 64 - 0
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/utils/BultInAccountUtil.java

@@ -0,0 +1,64 @@
+package cn.com.qmth.stmms.ms.admin.utils;
+
+import cn.com.qmth.stmms.ms.core.domain.enums.BuiltInAccountEnum;
+import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
+import cn.com.qmth.stmms.ms.core.domain.user.Role;
+import cn.com.qmth.stmms.ms.core.repository.MarkUserRepo;
+import cn.com.qmth.stmms.ms.core.vo.Subject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Component
+public class BultInAccountUtil {
+
+    @Autowired
+    MarkUserRepo markUserRepo;
+
+    public void createAccout() {
+        List<MarkUser> userList = new ArrayList<>();
+        List<Map> mapList = BuiltInAccountEnum.listAccounts();
+        if (mapList.size() > 0) {
+            for (Map map : mapList) {
+                //采集账号
+                if (Objects.equals(BuiltInAccountEnum.SCAN.name(), map.get("type").toString())) {
+                    for (int i = 1; i <= 10; i++) {
+                        String loginName = map.get("code").toString().toLowerCase() + lpad(2, i);
+                        MarkUser markUser = markUserRepo.findByLoginName(loginName);
+                        if (markUser != null) {
+                            continue;
+                        }
+                        markUser = new MarkUser(loginName, "123456", 0L, Subject.SC, loginName, Role.findByName((String) map.get("name")), null);
+                        userList.add(markUser);
+                    }
+                } else {
+                    String loginName = map.get("code").toString().toLowerCase();
+                    MarkUser markUser = markUserRepo.findByLoginName(loginName.toLowerCase());
+                    if (markUser != null) {
+                        continue;
+                    }
+                    markUser = new MarkUser(loginName, "123456", 0L, Subject.SC, loginName, Role.findByName((String) map.get("name")), null);
+                    userList.add(markUser);
+                }
+            }
+            markUserRepo.save(userList);
+        }
+    }
+
+
+    /**
+     * 补齐不足长度
+     *
+     * @param length 长度
+     * @param number 数字
+     * @return
+     */
+    private static String lpad(int length, int number) {
+        String f = "%0" + length + "d";
+        return String.format(f, number);
+    }
+}

+ 12 - 1
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Student.java

@@ -53,6 +53,8 @@ public class Student implements Serializable {
      */
     private String relateExamNumber;
 
+    private String school;
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -65,7 +67,7 @@ public class Student implements Serializable {
         this.test = test;
     }
 
-    public Student(String name, String examNumber, String areaName, String areaCode, Long workId, String examRoom, String sourceName, String test) {
+    public Student(String name, String examNumber, String areaName, String areaCode, Long workId, String examRoom, String sourceName, String test, String school) {
         this.name = name;
         this.examNumber = examNumber;
         this.areaName = areaName;
@@ -75,6 +77,7 @@ public class Student implements Serializable {
         this.sourceName = sourceName;
         this.test = test;
         this.relateExamNumber = examNumber;
+        this.school = school;
     }
 
     public Student() {
@@ -167,4 +170,12 @@ public class Student implements Serializable {
     public void setRelateExamNumber(String relateExamNumber) {
         this.relateExamNumber = relateExamNumber;
     }
+
+    public String getSchool() {
+        return school;
+    }
+
+    public void setSchool(String school) {
+        this.school = school;
+    }
 }

+ 56 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/enums/BuiltInAccountEnum.java

@@ -0,0 +1,56 @@
+package cn.com.qmth.stmms.ms.core.domain.enums;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 内置账号
+ */
+public enum BuiltInAccountEnum {
+
+    /**
+     * 纪检员
+     */
+    INSPECTION_CY("INSPECTION-CY", "纪检员"),
+    /**
+     * 质检员
+     */
+    QC_CY("QC-CY", "质检员"),
+    /**
+     * 采集账号
+     */
+    SCAN("SCAN", "采集员");
+
+    private String code;
+
+    private String name;
+
+    BuiltInAccountEnum(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static BuiltInAccountEnum findById(String code) {
+        for (BuiltInAccountEnum account : BuiltInAccountEnum.values()) {
+            if (account.code == code) {
+                return account;
+            }
+        }
+        return null;
+    }
+
+    public static List<Map> listAccounts() {
+        List<Map> list = new ArrayList<>();
+        for (BuiltInAccountEnum account : BuiltInAccountEnum.values()) {
+            Map map = new HashMap();
+            map.put("code", account.code);
+            map.put("name", account.name);
+            map.put("type", findById(account.code).toString());
+            list.add(map);
+        }
+        return list;
+    }
+
+}

+ 9 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/user/Role.java

@@ -15,4 +15,13 @@ public enum Role {
     public String getName() {
         return this.name;
     }
+
+    public static Role findByName(String name) {
+        for (Role role : Role.values()) {
+            if (role.name == name) {
+                return role;
+            }
+        }
+        return null;
+    }
 }

+ 7 - 0
stmms-ms-main/src/main/java/cn/com/qmth/stmms/ms/StartRunning.java

@@ -1,7 +1,9 @@
 package cn.com.qmth.stmms.ms;
 
+import cn.com.qmth.stmms.ms.admin.utils.BultInAccountUtil;
 import cn.com.qmth.stmms.ms.commons.utils.RandomUtil;
 import cn.com.qmth.stmms.ms.core.domain.Work;
+import cn.com.qmth.stmms.ms.core.repository.MarkUserRepo;
 import cn.com.qmth.stmms.ms.core.repository.WorkRepo;
 import cn.com.qmth.stmms.ms.quartz.ScheduledTask;
 import org.slf4j.Logger;
@@ -30,6 +32,9 @@ public class StartRunning implements CommandLineRunner {
     @Autowired
     RandomUtil randomUtil;
 
+    @Autowired
+    BultInAccountUtil bultInAccountUtil;
+
     @Override
     public void run(String... args) {
         LOGGER.info("服务器启动时执行 start");
@@ -39,6 +44,8 @@ public class StartRunning implements CommandLineRunner {
         } else {
             randomUtil.getRandom(work.getId(), false);
         }
+        //生成内置账号
+        bultInAccountUtil.createAccout();
         LOGGER.info("服务器启动时执行 end");
     }
 }