dzx 6 mesiacov pred
rodič
commit
4f08f41567

+ 17 - 3
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -91,14 +91,28 @@ public class DataUtil {
      * 推送学生班级信息
      */
     public Map<String, String> insertClass(String tableName, Map<String, String> tableData) {
+        ApiUtil apiUtil = new ApiUtil();
+        JsonParser jsonParser = new JsonParser();
+        //先查询海康中存在的组织id
+//        Set<Integer> orgCodeList = new HashSet<>();
+//        String listApiPath = "/api/resource/v1/org/orgList";
+//        JsonObject paramsJson = new JsonObject();
+//        paramsJson.addProperty("pageNo", 1);
+//        paramsJson.addProperty("pageSize", 1000);
+//        String orgData = apiUtil.doPost(listApiPath, paramsJson.toString(), null, null);
+//        JsonArray orgDataArray = jsonParser.parse(orgData).getAsJsonObject().get("data").getAsJsonObject().get("list").getAsJsonArray();
+//        for (JsonElement jsonElement : orgDataArray) {
+//            JsonObject orgJson = jsonElement.getAsJsonObject();
+//            orgCodeList.add(orgJson.get("orgNo").getAsInt());
+//        }
+
         Map<String, String> idMap = new HashMap<>();
         //1、查询字典,将走读住读、班级类型先推送过去
         String sql = "SELECT * FROM xjr_dictionary_detail WHERE delete_mark = 0 AND item_id = 2023000000000000030";
         List<Map<String, Object>> detailList = SqlRunnerAdapter.db().selectList(sql);
 
         String apiPath = "/api/resource/v1/org/batch/add";
-        JsonParser jsonParser = new JsonParser();
-        ApiUtil apiUtil = new ApiUtil();
+        
         int clientId = 1;
         Map<Integer, String> idCodeMap = new HashMap<>();
         JsonArray dataArray = new JsonArray();
@@ -188,7 +202,7 @@ public class DataUtil {
                 paramJson.addProperty("orgIndexCode", baseGrade.get("name").toString().replaceAll("级", "") + "-" + classType);
                 paramJson.addProperty("orgName", baseGrade.get("name").toString());
                 paramJson.addProperty("parentIndexCode", classType);
-                paramJson.addProperty("orgCode", clientId);
+//                paramJson.addProperty("orgCode", clientId);
                 dataArray.add(paramJson);
                 idCodeMap.put(clientId, baseGrade.get("name").toString().replaceAll("级", "") + "-" + classType);
                 clientId++;

+ 6 - 1
src/main/java/com/xjrsoft/module/liteflow/node/ImportStudentFaceNode.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.liteflow.node;
 
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
 import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
 import com.xjrsoft.module.hikvision.util.FaceImportUtil;
 import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
@@ -38,7 +39,11 @@ public class ImportStudentFaceNode extends NodeComponent {
             StundentFaceProcess dataObj = stundentFaceProcessService.getById(formId);
             dataObj.setStatus(1);
             dataObj.setExamStatus(1);
-            String result = FaceImportUtil.ImportStudentFace(hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId()), fileUrl);
+            String studentHikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
+            if(StrUtil.isEmpty(studentHikvisionId)){
+                studentHikvisionId = dataObj.getUserId().toString();
+            }
+            String result = FaceImportUtil.ImportStudentFace(studentHikvisionId, fileUrl);
             dataObj.setHikvisionResult(result);
             stundentFaceProcessService.updateById(dataObj);
             stundentFaceProcessService.clearHistory(dataObj);

+ 5 - 0
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -671,8 +671,12 @@ public class DataUtil {
         List<Entity> entityList = new ArrayList();
         SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
         Set<String> teacherIdList = new HashSet<>();
+        Set<String> jianyueIds = new HashSet<>();
         for (JsonElement jsonElement : data) {
             JsonObject asJsonObject = jsonElement.getAsJsonObject();
+            if(jianyueIds.contains(asJsonObject.get("id").getAsString())){
+                continue;
+            }
             JsonArray teachers = asJsonObject.get("teachers").getAsJsonArray();
             if (asJsonObject.get("courseClassId").isJsonNull() || coureseMap.get(asJsonObject.get("courseClassId").getAsString()) == null) {
                 continue;
@@ -735,6 +739,7 @@ public class DataUtil {
             entity.set("course_receive_msg_id", courseReceiveMsgId);
             entity.set("start_time", asJsonObject.get("startTime").getAsString());
             entity.set("end_time", asJsonObject.get("endTime").getAsString());
+            jianyueIds.add(asJsonObject.get("id").getAsString());
             entityList.add(entity);
         }
         if (!entityList.isEmpty()) {

+ 1 - 0
src/main/java/com/xjrsoft/module/student/service/impl/StudentReportRecordServiceImpl.java

@@ -445,6 +445,7 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
                 schoolRoll.setClassId(baseClass.getId());
                 schoolRoll.setMajorSetId(baseClass.getMajorSetId());
                 schoolRoll.setStduyStatus(student.getStduyStatus());
+                schoolRoll.setDeleteMark(DeleteMark.DELETED.getCode());
                 schoolRoll.setEnrollType(baseClass.getEnrollType());
                 schoolRoll.setStudentType(student.getSource());
                 schoolRoll.setGradeId(baseClass.getGradeId());

+ 2 - 2
src/main/resources/sqlScript/鸿合课表视图.sql

@@ -1,5 +1,5 @@
 CREATE VIEW course_table_view AS
-SELECT t1.class_id,t1.class_name,t1.teacher_name,t1.course_name, t2.short_name,t1.weeks_cn,t1.schedule_date,t1.start_time,t1.end_time FROM course_table t1
+SELECT DISTINCT t1.class_id,t1.class_name,t1.teacher_name,t1.course_name, t2.short_name,t1.weeks_cn,t1.schedule_date,t1.start_time,t1.end_time FROM course_table t1
 LEFT JOIN class_time t2 ON t1.time_number = t2.number
 LEFT JOIN base_semester t3 ON t1.base_semester_id = t3.id
-WHERE t1.schedule_date >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY);
+WHERE t1.schedule_date BETWEEN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(CURDATE(), INTERVAL (6 - WEEKDAY(CURDATE())) DAY);

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

@@ -165,17 +165,17 @@ class HikvisionBaseDataTaskTest {
 //        dataUtil.insertCar(use, carTableName,baseClass, faceImportMapper);
 
 
-//        tableName = "base_class";
-//        Map<String, String> baseClass = dataMap.get(tableName);
-//        Map<String, String> classes = dataUtil.insertClass(tableName, baseClass);
+        tableName = "base_class";
+        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);
 //
@@ -245,7 +245,30 @@ class HikvisionBaseDataTaskTest {
                 " INNER JOIN base_class t3 ON t2.class_id = t3.id" +
                 " INNER JOIN base_grade t4 ON t3.grade_id = t4.id" +
                 " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0" +
-                " AND t3.class_type IS NOT NULL AND t3.is_graduate = 1";
+                " AND t3.class_type IS NOT NULL AND t3.is_graduate = 1" +
+                " and t1.credential_number IN (" +
+                " SELECT 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" +
+                " )";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql, String[].class);
         Map<Integer, String> clientMap = new HashMap<>();
         List<Entity> insertList = new ArrayList<>();
@@ -361,8 +384,7 @@ class HikvisionBaseDataTaskTest {
         ApiUtil apiUtil = new ApiUtil();
 
         JsonArray dataArray = new JsonArray();
-        dataArray.add("1828723343029219330-2024-job_class-FB3001");
-        dataArray.add("1828723343029219330-2024-job_class-FB3002");
+        dataArray.add("2025-job_class-FB3002");
         JsonObject paramJson = new JsonObject();
         paramJson.add("indexCodes", dataArray);
         Map<String, String> headerMap = new HashMap<>();

+ 38 - 19
src/test/java/com/xjrsoft/module/job/JianyuekbBaseDataTaskTest.java

@@ -178,24 +178,43 @@ class JianyuekbBaseDataTaskTest {
             ids.add(object.get("serialNo").getAsString());
         }
 
-//        url  = ScheduleUtil.apiUrl + "Class/del";
-//        timestamp = System.currentTimeMillis();
-//        sign = ScheduleUtil.createSign(timestamp);
-//        int maxNum = 100;
-//        int cishu = ids.size() / maxNum + 1;
-//        if(ids.size() < maxNum){
-//            maxNum = ids.size();
-//        }
-//        for (int i = 0; i < cishu; i++){
-//            JsonArray delArray = new JsonArray();
-//            for (int j = 0 + (i * maxNum);  j < maxNum; j ++){
-//                delArray.add(ids.get(j));
-//            }
-//
-//            String delResult = ScheduleUtil.doPost(url, delArray.toString(), sign, timestamp);
-//
-//            System.out.println(delResult);
-//        }
+        url  = ScheduleUtil.apiUrl + "Class/del";
+        timestamp = System.currentTimeMillis();
+        sign = ScheduleUtil.createSign(timestamp);
+        int maxNum = 100;
+        int cishu = ids.size() / maxNum + 1;
+        if(ids.size() < maxNum){
+            maxNum = ids.size();
+        }
+        for (int i = 0; i < cishu; i++){
+            JsonArray delArray = new JsonArray();
+            for (int j = 0 + (i * maxNum);  j < maxNum; j ++){
+                delArray.add(ids.get(j));
+            }
+
+            String delResult = ScheduleUtil.doPost(url, delArray.toString(), sign, timestamp);
+
+            System.out.println(delResult);
+        }
+
+    }
+
+    @Test
+    void deleteClassByJianyueId() throws Exception {
+        long timestamp = System.currentTimeMillis();
+        String sign = ScheduleUtil.createSign(timestamp);
+        String url  = ScheduleUtil.apiUrl + "Class/page";
+
+
+        url  = ScheduleUtil.apiUrl + "Class/del";
+        timestamp = System.currentTimeMillis();
+        sign = ScheduleUtil.createSign(timestamp);
+
+        JsonArray delArray = new JsonArray();
+        delArray.add("CLA000001731");
+        String delResult = ScheduleUtil.doPost(url, delArray.toString(), sign, timestamp);
+
+        System.out.println(delResult);
 
     }
 
@@ -340,7 +359,7 @@ class JianyuekbBaseDataTaskTest {
 
         doPost = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
 
-        sql = "SELECT * FROM base_class WHERE delete_mark = 0 and is_graduate = 1";
+        sql = "SELECT * FROM base_class WHERE delete_mark = 0 and is_graduate = 1 and id = 1917059281647636481";
         List<BaseClass> dataList = use.query(sql, BaseClass.class);
         Map<String, BaseClass> classMap = new HashMap<>();
         for (BaseClass baseClass : dataList) {

+ 32 - 6
src/test/java/com/xjrsoft/module/liteflow/node/ImportStudentFaceNodeTest.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.liteflow.node;
 
+import cn.hutool.core.util.StrUtil;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
@@ -40,10 +41,31 @@ class ImportStudentFaceNodeTest {
     private FaceImportMapper faceImportMapper;
     @Test
     void test(){
-        String sql = "SELECT t3.* FROM base_new_student t1" +
-                " INNER JOIN student_report_record t2 ON t1.id = t2.user_id" +
-                " INNER JOIN xjr_user t3 ON t1.credential_number = t3.credential_number" +
-                " WHERE t2.report_time IS NOT NULL;";
+        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" +
+                ")";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
 
         ApiUtil apiUtil = new ApiUtil();
@@ -85,10 +107,14 @@ 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 result = FaceImportUtil.ImportStudentFace(hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId()), fileUrl);
+                        String studentHikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
+                        if(StrUtil.isEmpty(studentHikvisionId)){
+                            studentHikvisionId = dataObj.getUserId().toString();
+                        }
+                        String result = FaceImportUtil.ImportStudentFace(studentHikvisionId, fileUrl);
                         dataObj.setHikvisionResult(result);
                         dataObj.setModifyDate(new Date());
                         dataObj.setEnabledMark(1);