Browse Source

教职工基本信息导入调整

dzx 7 months ago
parent
commit
17ed354ce1

+ 48 - 2
src/main/java/com/xjrsoft/module/teacher/controller/TeacherbaseManagerController.java

@@ -50,7 +50,9 @@ import javax.validation.Valid;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.text.ParseException;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -221,9 +223,53 @@ public class TeacherbaseManagerController {
     @PostMapping("/import")
     @ApiOperation(value = "导入教职工信息")
     @XjrLog(value = "导入教职工信息", saveRequestData = false, saveResponseData = true)
-    public RT<Boolean> importData(@RequestParam("file") MultipartFile file) throws IOException, ParseException {
+    public RT<List<Map<String, String>>> importData(@RequestParam("file") MultipartFile file) throws IOException, ParseException {
         List<Map<Integer, Object>> excelDataList = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(3).doReadSync();
-        return RT.ok(teacherbaseManagerService.importData(excelDataList));
+        List<Map<Integer, Object>> errorList = teacherbaseManagerService.importData(excelDataList);
+        List<Map<String, String>> result = new ArrayList<>();
+        for (Map<Integer, Object> objectMap : errorList) {
+            Map<String, String> object = new LinkedHashMap<>();
+            List<String> errorMsg = new ArrayList<>();
+            if (objectMap.get(0) == null) {
+                errorMsg.add("工号未填写");
+            }
+            if (objectMap.get(1) == null) {
+                errorMsg.add("姓名未填写");
+            }
+            if (objectMap.get(2) == null) {
+                errorMsg.add("性别未填写");
+            }
+            if (objectMap.get(3) == null) {
+                errorMsg.add("证件类型未填写");
+            }
+            if (objectMap.get(4) == null) {
+                errorMsg.add("身份证未填写");
+            }
+            if (objectMap.get(5) == null) {
+                errorMsg.add("手机号未填写");
+            }
+            if (objectMap.get(6) == null) {
+                errorMsg.add("聘用类型未填写");
+            }
+            if (objectMap.get(7) == null) {
+                errorMsg.add("所属机构未填写");
+            }
+            if (objectMap.get(8) == null) {
+                errorMsg.add("岗位未填写");
+            }
+            if (objectMap.get(9) == null) {
+                errorMsg.add("来校时间未填写");
+            }
+            if (objectMap.get(10) == null) {
+                errorMsg.add("任课状况未填写");
+            }
+            object.put("姓名", objectMap.get(1) == null ? "" : objectMap.get(1).toString());
+            object.put("身份证", objectMap.get(4) == null ? "" : objectMap.get(4).toString());
+            object.put("手机号", objectMap.get(5) == null ? "" : objectMap.get(5).toString());
+            object.put("错误信息", errorMsg.toString().replace("[", "").replace("]", ""));
+            result.add(object);
+        }
+        return RT.ok(result);
     }
 
     @PostMapping("/professional-title-import")

+ 1 - 1
src/main/java/com/xjrsoft/module/teacher/service/ITeacherbaseManagerService.java

@@ -45,7 +45,7 @@ public interface ITeacherbaseManagerService extends MPJBaseService<XjrUser> {
      */
     Boolean delete(List<Long> ids);
 
-    Boolean importData(List<Map<Integer, Object>> excelDataList) throws ParseException;
+    List<Map<Integer, Object>> importData(List<Map<Integer, Object>> excelDataList) throws ParseException;
 
     void changeIsNormal(String jobState, Integer isNormal);
 

+ 16 - 2
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java

@@ -572,7 +572,9 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean importData(List<Map<Integer, Object>> excelDataList) throws ParseException {
+    public List<Map<Integer, Object>> importData(List<Map<Integer, Object>> excelDataList) throws ParseException {
+        List<Map<Integer, Object>> errorList = new ArrayList<>();
+
         List<User> userList = userService.list(
                 new MPJLambdaWrapper<User>()
                         .select(User::getId)
@@ -652,6 +654,18 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 
         for (Map<Integer, Object> rowData : excelDataList) {
+            boolean isEmpty = false;
+            for (Integer i : rowData.keySet()) {
+                if(rowData.get(i) == null){
+                    errorList.add(rowData);
+                    isEmpty = true;
+                }
+            }
+            if(isEmpty){
+                continue;
+            }
+
+
             String credentialNumber = rowData.get(4).toString();
             if (userMap.containsKey(credentialNumber)) {
                 User user = userMap.get(credentialNumber);
@@ -790,7 +804,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
         List<UserPostRelation> postRelationList = userPostRelationService.list(Wrappers.lambdaQuery(UserPostRelation.class));
         redisUtil.set(GlobalConstant.USER_POST_RELATION_CACHE_KEY, postRelationList);
 
-        return true;
+        return errorList;
     }
 
     @Override