Browse Source

车辆信息推送

brealinxx 10 months ago
parent
commit
9331a05e21

+ 64 - 1
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -69,7 +69,7 @@ public class DataUtil {
             JsonElement parse = jsonParser.parse(result);
 
             JsonObject resultJson = parse.getAsJsonObject();
-            if(resultJson.get("code").getAsInt() == 0 && "success".equals(resultJson.get("msg").getAsString())){
+            if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
                 JsonArray array = resultJson.get("data").getAsJsonObject().get("successes").getAsJsonArray();
                 for (JsonElement jsonElement : array) {
                     JsonObject jsonObject = jsonElement.getAsJsonObject();
@@ -84,6 +84,57 @@ public class DataUtil {
         return idMap;
     }
 
+    public Map<Long, String> insertTeacher(Db db, String tableName, Map<Long, String> tableData, Map<Long, String> deptMap) throws Exception {
+        String sql = "SELECT t1.id,t1.name,t1.gender,t3.dept_id,t1.birth_date,t1.mobile,t1.email,t1.credential_type,t1.credential_number,t1.user_name FROM xjr_user t1" +
+                " INNER JOIN " + tableName + " t2 ON t1.id = t2.user_id" +
+                " INNER JOIN xjr_user_dept_relation t3 ON t1.id = t3.user_id" +
+                " INNER JOIN xjr_department t4 ON t3.dept_id = t4.id " +
+                " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND t4.delete_mark = 0";
+        List<String[]> list = db.query(sql, String[].class);
+        JsonArray paramArray = new JsonArray();
+        Map<Integer, Long> clientMap = new HashMap<>();
+        for(int i = 0; i < list.size(); i ++){
+            String[] el = list.get(i);
+            if(tableData != null && tableData.containsKey(Long.parseLong(el[0]))){
+                continue;
+            }
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("clientId", i);
+            paramJson.addProperty("personId", el[0]);
+            paramJson.addProperty("personName", el[1]);
+            paramJson.addProperty("orgIndexCode", deptMap.get(Long.parseLong(el[3])));
+            paramJson.addProperty("phoneNo", el[5]);
+            paramJson.addProperty("jobNo", el[9]);
+            paramJson.addProperty("birthday", el[4]);
+            paramArray.add(paramJson);
+
+            clientMap.put(i, Long.parseLong(el[0]));
+        }
+
+        String apiPath = "/api/resource/v1/person/batch/add";
+        Map<Long, String> idMap = new HashMap<>();
+        JsonParser jsonParser = new JsonParser();
+        ApiUtil apiUtil = new ApiUtil();
+        Map<String, String> header = new HashMap<>();
+        header.put("tagId", "insert_teacher");
+
+        String result = apiUtil.doPost(apiPath, paramArray.toString(), null, header);
+        JsonElement parse = jsonParser.parse(result);
+        JsonObject resultJson = parse.getAsJsonObject();
+        if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
+            JsonArray array = resultJson.get("data").getAsJsonObject().get("successes").getAsJsonArray();
+            for (JsonElement jsonElement : array) {
+                JsonObject jsonObject = jsonElement.getAsJsonObject();
+                idMap.put(clientMap.get(jsonObject.get("clientId").getAsInt()), jsonObject.get("personId").getAsString());
+            }
+        }else{
+
+        }
+        //插入记录表
+        insertRecord(db, tableName, idMap);
+        return idMap;
+    }
+
     /*同步车辆数据*/
     public Map<String, String> insertCar(Db db, String tableName, Map<Long, String> tableData) throws Exception {
         String sql = "SELECT * FROM " + tableName + " WHERE delete_mark = 0 and status = 1";
@@ -161,4 +212,16 @@ public class DataUtil {
         db.executeBatch(sqls);
     }
 
+//    void insertRecord(Db db, String tableName, Map<Long, String> idsMap) throws SQLException {
+//        if(idsMap.isEmpty()){
+//            return;
+//        }
+//        List<String> sqls = new ArrayList<>();
+//        for (Long sourceId : idsMap.keySet()) {
+//            String sql = "INSERT INTO hikvision_data(create_date,table_name,source_id,hikvision_id) value(now(),'"
+//                    + tableName + "'," + sourceId + ",'" + idsMap.get(sourceId) + "')";
+//            sqls.add(sql);
+//        }
+//        db.executeBatch(sqls);
+//    };
 }

+ 3 - 3
src/main/java/com/xjrsoft/module/job/HikvisionBaseDataTask.java

@@ -67,9 +67,9 @@ public class HikvisionBaseDataTask {
                 department = dataMap.get(tableName);
             }
 
-            //推送学生
-//            tableName = "base_student";
-//            dataUtil.insertStudent(use, tableName, grade, dataMap.get(tableName));
+            //推送教职工
+            tableName = "base_teacher";
+            dataUtil.insertTeacher(use, tableName, dataMap.get(tableName), department);
 
             //推送车辆
             String carTableName = "car_message_apply";

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

@@ -8,6 +8,7 @@ import com.google.gson.JsonParser;
 import com.xjrsoft.XjrSoftApplication;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.utils.DatasourceUtil;
+import com.xjrsoft.module.hikvision.entity.HikvisionData;
 import com.xjrsoft.module.hikvision.util.ApiUtil;
 import com.xjrsoft.module.hikvision.util.DataUtil;
 import com.xjrsoft.module.organization.entity.Department;
@@ -19,7 +20,6 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.sql.DataSource;
-
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -28,8 +28,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 /**
  * @author dzx
  * @date 2024/5/14
@@ -49,27 +47,31 @@ class HikvisionBaseDataTaskTest {
             tables.add(jianyueData.getTableName());
         }
         sql = "SELECT * FROM hikvision_data WHERE 0 = 0";
-        List<JianyueData> list = use.query(sql, JianyueData.class);
+        List<HikvisionData> list = use.query(sql, HikvisionData.class);
         Map<String, Map<Long, String>> dataMap = new HashMap<>();
         for (String table : tables) {
             Map<Long, String> tableData = new HashMap<>();
-            for (JianyueData jianyueData : list) {
-                if(!table.equals(jianyueData.getTableName())){
+            for (HikvisionData hikvisiondata : list) {
+                if(!table.equals(hikvisiondata.getTableName())){
                     continue;
                 }
-                tableData.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
+                tableData.put(hikvisiondata.getSourceId(), hikvisiondata.getHikvisionId());
             }
             dataMap.put(table, tableData);
         }
         DataUtil dataUtil = new DataUtil();
-//        String tableName = "xjr_department";
-//        Map<Long, String> department = dataUtil.insertDepartment(use, tableName, null);
-
-        String tableNameCar = "car_message_apply";
-        Map<String, String> carmessage = dataUtil.insertCar(use, tableNameCar, null);
-        System.out.println(carmessage);
-        //System.out.println(department.toString());
-
+        String tableName = "xjr_department";
+        Map<Long, String> department = dataMap.get(tableName);
+        Map<Long, String> departments = dataUtil.insertDepartment(use, tableName, department);
+        if(departments != null){
+            department.putAll(departments);
+        }
+//        //System.out.println(department.toString());
+//
+        tableName = "base_teacher";
+        Map<Long, String> TeacherData = dataMap.get(tableName);
+        Map<Long, String> Teacher = dataUtil.insertTeacher(use, tableName, TeacherData, department);
+//        System.out.println(Teacher);
 //        selectOrg(use, tableName);
 //        deleteOrg(use, tableName);