소스 검색

海康数据同步

dzx 6 달 전
부모
커밋
997942261a

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

@@ -166,16 +166,16 @@ class HikvisionBaseDataTaskTest {
 
 
         tableName = "base_class";
-        Map<String, String> baseClass = dataMap.get(tableName);
-        Map<String, String> classes = dataUtil.insertClass(tableName, baseClass);
+//        Map<String, String> baseClass = dataMap.get(tableName);
+//        Map<String, String> classes = dataUtil.insertClass(tableName, baseClass);
 
 
-//        tableName = "base_student";
-//        List<HikvisionData> studentList = hikvisionDataMapper.selectList(
-//                new QueryWrapper<HikvisionData>().lambda().eq(HikvisionData::getTableName, tableName)
-//        );
-//        Map<String, String> baseStudent = dataMap.get(tableName);
-//        insertStudentOne(tableName, baseStudent, studentList);
+        tableName = "base_student";
+        List<HikvisionData> studentList = hikvisionDataMapper.selectList(
+                new QueryWrapper<HikvisionData>().lambda().eq(HikvisionData::getTableName, tableName)
+        );
+        Map<String, String> baseStudent = dataMap.get(tableName);
+        insertStudentOne(tableName, baseStudent, studentList);
 //        sql = "SELECT * FROM wf_room_applicant WHERE delete_mark = 0 AND STATUS = 1";
 //        List<Map<String, Object>> wfRoomApplicantList = SqlRunnerAdapter.db().selectList(sql);
 //
@@ -686,4 +686,69 @@ class HikvisionBaseDataTaskTest {
         }
     }
 
+
+    @Test
+    void selecAllStudent() throws SQLException {
+        ApiUtil apiUtil = new ApiUtil();
+        String apiPath = "/api/resource/v2/person/orgIndexCode/personList";
+        String sql = "SELECT CONCAT(t1.id, '-', REPLACE(t2.title,'年',''), '-', t1.class_type,'-FB3001') as id 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 t2.id = 1868532405673439232";
+        List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
+        for (Map<String, Object> objectMap : list) {
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("pageNo", 1);
+            jsonObject.addProperty("pageSize", 500);
+            jsonObject.addProperty("orgIndexCode", objectMap.get("id").toString());
+
+            String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
+
+            JsonParser jsonParser = new JsonParser();
+            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+            JsonArray array = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray();
+            Map<Long, String> idMap = new HashMap<>();
+            for (JsonElement jsonElement : array) {
+                JsonObject element = jsonElement.getAsJsonObject();
+                if(!element.has("phoneNo") || element.get("phoneNo").isJsonNull()){
+                    System.out.println(element.toString());
+                    continue;
+                }
+                String personId = element.get("personId").getAsString();
+                String insSql = "INSERT INTO hikvision_data(create_date,TABLE_NAME,source_id,hikvision_id) " +
+                        "SELECT NOW(),'base_student', '" + personId + "','" + personId + "' WHERE NOT EXISTS (SELECT 1 FROM hikvision_data WHERE hikvision_id = '" + personId + "')";
+                SqlRunnerAdapter.db().insert(insSql);
+            }
+        }
+
+        sql = "SELECT CONCAT(t1.id, '-', REPLACE(t2.title,'年',''), '-', t1.class_type,'-FB3003') as id 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 t2.id = 1868532405673439232";
+        list = SqlRunnerAdapter.db().selectList(sql);
+        for (Map<String, Object> objectMap : list) {
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("pageNo", 1);
+            jsonObject.addProperty("pageSize", 500);
+            jsonObject.addProperty("orgIndexCode", objectMap.get("id").toString());
+
+            String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
+
+            JsonParser jsonParser = new JsonParser();
+            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+            JsonArray array = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray();
+            Map<Long, String> idMap = new HashMap<>();
+            for (JsonElement jsonElement : array) {
+                JsonObject element = jsonElement.getAsJsonObject();
+                if(!element.has("phoneNo") || element.get("phoneNo").isJsonNull()){
+                    System.out.println(element.toString());
+                    continue;
+                }
+                String personId = element.get("personId").getAsString();
+                String insSql = "INSERT INTO hikvision_data(create_date,TABLE_NAME,source_id,hikvision_id) " +
+                        "SELECT NOW(),'base_student', '" + personId + "','" + personId + "' WHERE NOT EXISTS (SELECT 1 FROM teacher_out_in_record WHERE hikvision_id = '" + personId + "')";
+                SqlRunnerAdapter.db().insert(insSql);
+            }
+        }
+
+    }
+
 }

+ 5 - 23
src/test/java/com/xjrsoft/module/liteflow/node/ImportStudentFaceNodeTest.java

@@ -43,28 +43,10 @@ class ImportStudentFaceNodeTest {
     void test(){
         String sql = "SELECT t1.* FROM xjr_user t1\n" +
                 "WHERE t1.delete_mark = 0 \n" +
-                "AND t1.credential_number IN (\n" +
-                "\tSELECT t3.credential_number\n" +
-                "        FROM student_report_record t1\n" +
-                "        INNER JOIN base_new_student t3 ON t3.id = t1.user_id\n" +
-                "        LEFT JOIN banding_task_class_student t2 ON t1.user_id = t2.new_student_id AND t2.delete_mark = 0\n" +
-                "        LEFT JOIN banding_task_class t5 ON t2.banding_task_class_id = t5.id\n" +
-                "        LEFT JOIN xjr_user t6 ON t5.teacher_id = t6.id\n" +
-                "        LEFT JOIN xjr_dictionary_detail t7 ON t3.gender = t7.code AND t7.delete_mark = 0\n" +
-                "        LEFT JOIN xjr_dictionary_detail t8 ON t3.source = t8.code AND t8.delete_mark = 0\n" +
-                "        LEFT JOIN xjr_dictionary_detail t9 ON t3.stduy_status = t9.code AND t9.delete_mark = 0\n" +
-                "        LEFT JOIN banding_task t10 ON t5.banding_task_id = t10.id\n" +
-                "        LEFT JOIN enrollment_plan t11 ON t11.id = t3.enrollment_plan_id\n" +
-                "        LEFT JOIN base_grade t4 ON t11.grade_id = t4.id\n" +
-                "        LEFT JOIN student_report_plan t12 ON t12.id = t1.student_report_plan_id\n" +
-                "        LEFT JOIN base_major_set t13 ON t13.id = t5.major_set_id\n" +
-                "        LEFT JOIN xjr_dictionary_detail t14 ON t5.class_type = t14.code AND t14.delete_mark = 0\n" +
-                "        LEFT JOIN xjr_department t15 ON t15.id = t13.department_id\n" +
-                "        WHERE t1.delete_mark = 0 AND t1.enabled_mark = 1\n" +
-                "        AND t12.status IN(1,2)\n" +
-                "        AND t3.enrollment_plan_id = 1897950348853186562\n" +
-                "        AND t12.category = 2\n" +
-                "        AND t1.report_time IS NOT NULL\n" +
+                "AND t1.id IN (" +
+                " SELECT user_id FROM stundent_face_process WHERE create_date > '2025-05-05 0:00:00'\n" +
+                "AND hikvision_result LIKE '%{\"code\":\"0x%'\n" +
+                "AND exam_status = 1" +
                 ")";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
 
@@ -107,7 +89,7 @@ class ImportStudentFaceNodeTest {
                 if(dataJson.get("total").getAsInt() > 0){
                     JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
                             .getAsJsonObject().get("personPhoto").getAsJsonArray();
-                    if(personPhoto.size() != 0){
+                    if(personPhoto.size() == 0){
                         dataObj.setStatus(1);
                         dataObj.setExamStatus(1);
                         String studentHikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());