dzx 6 ay önce
ebeveyn
işleme
30cb829d3a

+ 3 - 2
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassStudentServiceImpl.java

@@ -212,10 +212,11 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
                 LocalDateTime now = LocalDateTime.now();
                 List<String> idNumbers = updateList.stream().map(BaseNewStudent::getCredentialNumber).collect(Collectors.toList());
                 List<User> students = userService.list(new QueryWrapper<User>().lambda().in(User::getCredentialNumber, idNumbers));
-                Set<String> userSet = students.stream().map(User::getCredentialNumber).collect(Collectors.toSet());
+                Map<String, Long> userSet = students.stream().collect(Collectors.toMap(User::getCredentialNumber, User::getId));
                 Map<Long, Long> studentClassRelation = dataList.stream().collect(Collectors.toMap(BandingTaskClassStudent::getNewStudentId, BandingTaskClassStudent::getBandingTaskClassId));
                 for (BaseNewStudent student : updateList) {
-                    if(userSet.contains(student.getCredentialNumber())){
+                    if(userSet.containsKey(student.getCredentialNumber())){
+                        schoolRollService.updateStudentClass(taskClass.getId(), userSet.get(student.getCredentialNumber()));
                         continue;
                     }
                     LocalDate birthDate = getBirthDate(student.getCredentialNumber());

+ 3 - 4
src/main/java/com/xjrsoft/module/base/service/impl/WhitelistManagementServiceImpl.java

@@ -134,6 +134,7 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
     public void loadCaches() {
         log.info("XJRSOFT: 加载所有学生电信开卡用户缓存开始");
         List<WhitelistManagement> list = whitelistManagementMapper.selectList(Wrappers.<WhitelistManagement>query().lambda().select(WhitelistManagement::getUserId));
+
         Map<Long, Long> map = list.stream().collect(Collectors.toMap(WhitelistManagement::getUserId, WhitelistManagement::getUserId));
         redisUtil.set(GlobalConstant.WHITE_MANAGEMENT_CACHE_KEY, map);
         log.info("XJRSOFT: 加载所有学生电信开卡用户缓存结束");
@@ -254,12 +255,10 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
             if(!studentMap.containsKey(studentKey)){
                 errorLogs.add("未能查询到该学生");
             }
-            if(vo.get(3) != null&& vo.get(4) != null
+            if(vo.get(3) != null && vo.get(4) != null
                     && phoneNameMap.get(vo.get(4).toString()) != null
                     && !vo.get(3).toString().equals(phoneNameMap.get(vo.get(4).toString()))){
                 errorLogs.add("手机号已被其他家长使用,请检查是否正确");
-            }else{
-                phoneNameMap.put(vo.get(4).toString(), vo.get(3).toString());
             }
 
             if(!errorLogs.isEmpty()){
@@ -267,6 +266,7 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
                 errorList.add(vo);
                 continue;
             }
+            phoneNameMap.put(vo.get(4).toString(), vo.get(3).toString());
             dataList.add(vo);
         }
         LocalDateTime now = LocalDateTime.now();
@@ -331,7 +331,6 @@ public class WhitelistManagementServiceImpl extends MPJBaseServiceImpl<Whitelist
             userStudent.setUserPhone(vo.get(4).toString());
             userStudentList.add(userStudent);
 
-
             if(!whitelistUsers.contains(user.getId())){
                 whitelist.add(new WhitelistManagement(){{
                     setCredentialNumber(user.getCredentialNumber());

+ 25 - 19
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -129,13 +129,18 @@ public class DataUtil {
                 stduyStatus.add(jsonObject.get("orgIndexCode").getAsString());
             }
         }
+        if(stduyStatus.isEmpty()){
+            for (Map<String, Object> dict : detailList) {
+                stduyStatus.add(dict.get("code").toString());
+            }
+        }
         //推送班级类型
         sql = "SELECT * FROM xjr_dictionary_detail WHERE delete_mark = 0 AND item_id = 2023000000000000039";
-        detailList = SqlRunnerAdapter.db().selectList(sql);
+        List<Map<String, Object>> classTypeList = SqlRunnerAdapter.db().selectList(sql);
         dataArray = new JsonArray();
         Set<String> classTypeSet = new HashSet<>();
         for (String status : stduyStatus) {
-            for (Map<String, Object> dict : detailList) {
+            for (Map<String, Object> dict : classTypeList) {
                 if(tableData != null && tableData.containsKey(dict.get("code").toString())){
                     classTypeSet.add(dict.get("code").toString());
                     continue;
@@ -198,35 +203,36 @@ public class DataUtil {
                 idMap.put(idCodeMap.get(jsonObject.get("clientId").getAsInt()), jsonObject.get("orgIndexCode").getAsString());
                 gradeSet.add(jsonObject.get("orgIndexCode").getAsString());
             }
+        }else{
+            sql = "select * from hikvision_data where table_name = 'base_grade'";
+            List<Map<String, Object>> gradeDataList = SqlRunnerAdapter.db().selectList(sql);
+            for (Map<String, Object> objectMap : gradeDataList) {
+                gradeSet.add(objectMap.get("hikvision_id").toString());
+            }
         }
 
         //推送班级
-        sql = "SELECT * FROM base_class WHERE delete_mark = 0 AND is_graduate = 1 AND class_type IS NOT NULL";
-        List<Map<String, Object>> classList = SqlRunnerAdapter.db().selectList(sql, BaseClass.class);
+        sql = "SELECT CONCAT(t1.id,'-',REPLACE(t2.name,'级',''),'-',t1.class_type) AS id,t1.name,t1.class_type," +
+            " CONCAT(REPLACE(t2.name,'级',''),'-',t1.class_type) as orgIndexCode FROM base_class t1" +
+            " INNER JOIN base_grade t2 ON t1.grade_id = t2.id" +
+            " WHERE t1.delete_mark = 0 AND t1.is_graduate = 1" +
+            " AND t1.class_type IS NOT NULL";
+        List<Map<String, Object>> classList = SqlRunnerAdapter.db().selectList(sql);
 
         dataArray = new JsonArray();
-        for (String grade : gradeSet) {
-            String[] gradeGroup = grade.split("-");
+        for (String stduyStatu : stduyStatus) {
             for (Map<String, Object> baseClass : classList) {
-                if(tableData != null && tableData.containsKey(baseClass.get("id").toString())){
-                    continue;
-                }
-                String gradeName = gradeNameMap.get(Long.parseLong(baseClass.get("grade_id").toString()));
-                if(!gradeGroup[0].equals(gradeName)){
-                    continue;
-                }
-
-                if(!gradeGroup[1].equals(baseClass.get("class_type").toString())){
+                if(tableData != null && tableData.containsKey(baseClass.get("id").toString() + "-" + stduyStatu)){
                     continue;
                 }
                 JsonObject paramJson = new JsonObject();
                 paramJson.addProperty("clientId", clientId);
-                paramJson.addProperty("orgIndexCode", baseClass.get("grade_id").toString() + "-" + grade);
+                paramJson.addProperty("orgIndexCode", baseClass.get("id").toString() + "-" + stduyStatu);
                 paramJson.addProperty("orgName", baseClass.get("name").toString());
-                paramJson.addProperty("parentIndexCode", grade);
-                paramJson.addProperty("orgCode", clientId);
+                paramJson.addProperty("parentIndexCode", baseClass.get("orgIndexCode").toString() + "-" + stduyStatu);
+                paramJson.addProperty("orgCode", baseClass.get("id").toString() + "-" + stduyStatu);
                 dataArray.add(paramJson);
-                idCodeMap.put(clientId, baseClass.get("grade_id").toString() + "-" + grade);
+                idCodeMap.put(clientId, baseClass.get("orgIndexCode").toString() + "-" + stduyStatu);
                 clientId ++;
             }
         }

+ 7 - 7
src/test/java/com/xjrsoft/module/job/HikvisionBaseDataTaskTest.java

@@ -99,7 +99,7 @@ class HikvisionBaseDataTaskTest {
             }
             dataMap.put(table, tableData);
         }
-//        DataUtil dataUtil = new DataUtil();
+        DataUtil dataUtil = new DataUtil();
         String tableName = "xjr_department";
         Map<String, String> department = dataMap.get(tableName);//dataUtil.insertDepartment(use, tableName, dataMap.get(tableName));
         if(department.isEmpty() && dataMap.get(tableName) != null){
@@ -117,14 +117,14 @@ class HikvisionBaseDataTaskTest {
 //        dataUtil.insertCar(use, carTableName,baseClass, faceImportMapper);
 
 
-//        tableName = "base_class";
-//        Map<String, String> baseClass = dataMap.get(tableName);
-//        Map<String, String> classes = dataUtil.insertClass(use, tableName, baseClass);
+        tableName = "base_class";
+        Map<String, String> baseClass = dataMap.get(tableName);
+        Map<String, String> classes = dataUtil.insertClass(tableName, baseClass);
 
 
-        tableName = "base_student";
-        Map<String, String> baseStudent = dataMap.get(tableName);
-        Map<String, String> student = insertStudentOne(tableName, baseStudent);
+//        tableName = "base_student";
+//        Map<String, String> baseStudent = dataMap.get(tableName);
+//        Map<String, String> student = insertStudentOne(tableName, baseStudent);
 
 //        selectOrg(use, "base_class");