Explorar o código

海康门禁调整

dzx hai 1 ano
pai
achega
09c27be038

+ 65 - 5
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -13,7 +13,6 @@ import com.xjrsoft.module.system.entity.DictionaryDetail;
 import lombok.extern.slf4j.Slf4j;
 import lombok.var;
 
-import java.math.BigDecimal;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -52,7 +51,7 @@ public class DataUtil {
         for (Integer level : levelSet) {
             JsonArray dataArray = new JsonArray();
             for (Department department : dataList) {
-                if(tableData.containsKey(department.getId().toString())){
+                if(tableData != null && tableData.containsKey(department.getId().toString())){
                     continue;
                 }
                 if(department.getHierarchy().length() == level){
@@ -250,13 +249,74 @@ public class DataUtil {
         return idMap;
     }
 
+    public Map<String, String> insertStudentOne(Db db, String tableName, Map<String, String> tableData) throws Exception {
+        String sql = "SELECT t1.id,t1.name,CONCAT(t3.id,'-',t4.name,'-',t3.class_type,'-',t2.stduy_status)," +
+                " t1.user_name,t1.gender,DATE_FORMAT(t1.birth_date, '%Y-%m-%d'),t1.mobile,t1.email,t1.credential_type,t1.credential_number FROM xjr_user t1" +
+                " INNER JOIN base_student_school_roll t2 ON t1.id = t2.user_id" +
+                " INNER JOIN base_class t3 ON t2.class_id = t3.id" +
+                " INNER JOIN base_grade t4 ON t2.grade_id = t4.id" +
+                " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND t3.class_type IS NOT NULL";
+        List<String[]> list = db.query(sql, String[].class);
+        Map<Integer, String> clientMap = new HashMap<>();
+
+        String apiPath = "/api/resource/v2/person/single/add";
+        Map<String, String> idMap = new HashMap<>();
+        JsonParser jsonParser = new JsonParser();
+        ApiUtil apiUtil = new ApiUtil();
+        Map<String, String> header = new HashMap<>();
+        header.put("tagId", "insert_student");
+
+        for(int i = 1; i < list.size(); i ++){
+            String[] el = list.get(i);
+            if(tableData != null && tableData.containsKey(el[0])){
+                continue;
+            }
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("clientId", i);
+            paramJson.addProperty("personId", el[0]);
+            paramJson.addProperty("personName", el[1]);
+            paramJson.addProperty("orgIndexCode", el[2]);
+            paramJson.addProperty("phoneNo", el[6]);
+            paramJson.addProperty("jobNo", el[3]);
+            paramJson.addProperty("birthday", el[5]);
+            paramJson.addProperty("personType", 2);
+
+            int gender;
+            switch (el[4]) {
+                case "SB10001":
+                    gender = 1;
+                    break;
+                case "SB10002":
+                    gender = 2;
+                    break;
+                default:
+                    gender = 0;
+                    break;
+            }
+            paramJson.addProperty("gender", gender);
+
+            clientMap.put(i, el[0]);
+            String result = apiUtil.doPost(apiPath, paramJson.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())){
+                JsonObject array = resultJson.get("data").getAsJsonObject();
+                idMap.put(el[0], array.get("personId").getAsString());
+            }
+        }
+
+        //插入记录表
+        insertRecord(db, tableName, idMap);
+        return idMap;
+    }
+
     public Map<String, String> insertStudent(Db db, String tableName, Map<String, String> tableData) throws Exception {
         String sql = "SELECT t1.id,t1.name,CONCAT(t3.id,'-',t4.name,'-',t3.class_type,'-',t2.stduy_status)," +
                 " t1.user_name,t1.gender,t1.birth_date,t1.mobile,t1.email,t1.credential_type,t1.credential_number FROM xjr_user t1" +
                 " INNER JOIN base_student_school_roll t2 ON t1.id = t2.user_id" +
                 " INNER JOIN base_class t3 ON t2.class_id = t3.id" +
                 " INNER JOIN base_grade t4 ON t2.grade_id = t4.id" +
-                " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0";
+                " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND t3.class_type IS NOT NULL ";
         List<String[]> list = db.query(sql, String[].class);
         Map<Integer, String> clientMap = new HashMap<>();
 
@@ -267,7 +327,7 @@ public class DataUtil {
         Map<String, String> header = new HashMap<>();
         header.put("tagId", "insert_student");
 
-        int maxCount = 1000;
+        int maxCount = 100;
 
         int frequency = list.size() / maxCount;
         for(int index = 0; index < frequency; index ++){
@@ -441,7 +501,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();

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

@@ -82,7 +82,7 @@ public class HikvisionBaseDataTask {
 
             tableName = "base_student";
             Map<String, String> baseStudent = dataMap.get(tableName);
-            Map<String, String> student = dataUtil.insertStudent(use, tableName, baseStudent);
+            Map<String, String> student = dataUtil.insertStudentOne(use, tableName, baseStudent);
 
             log.info("数据推送完成");
         } catch (Exception e) {

+ 1 - 0
src/main/java/com/xjrsoft/module/personnel/controller/ReservationSchoolController.java

@@ -101,6 +101,7 @@ public class ReservationSchoolController {
                 , MPJWrappers.<ReservationSchool>lambdaJoin()
                         .orderByDesc(ReservationSchoolPeople::getId)
                         .disableSubLogicDel()
+                                .select("(SELECT COUNT(*) FROM reservation_school_people WHERE reservationSchooId = t.id) as people_count")
                          .eq(ReservationSchool::getRespondentUserId,StpUtil.getLoginIdAsLong())
                         .le(ObjectUtil.isNotNull(dto.getVisitTime()),ReservationSchool::getStartTime,dto.getVisitTime())
                         .ge(ObjectUtil.isNotNull(dto.getVisitTime()),ReservationSchool::getEndTime,dto.getVisitTime())

+ 3 - 0
src/main/java/com/xjrsoft/module/personnel/vo/ReservationSchoolVisitorPageVo.java

@@ -79,4 +79,7 @@ public class ReservationSchoolVisitorPageVo {
      */
     @ApiModelProperty("被访人用户")
     private String respondentUserCn;
+
+    @ApiModelProperty("同行人数")
+    private Integer peopleCount;
 }

+ 1 - 1
src/main/resources/application.yml

@@ -5,7 +5,7 @@ server:
 spring:
   # 环境 dev|pre|prod
   profiles:
-    active: dev
+    active: prod
   # jackson时间格式化
   jackson:
     time-zone: GMT+8

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

@@ -61,34 +61,97 @@ class HikvisionBaseDataTaskTest {
         }
         DataUtil dataUtil = new DataUtil();
         String tableName = "xjr_department";
-//        Map<String, String> department = dataMap.get(tableName);
-//        Map<String, String> departments = dataUtil.insertDepartment(use, tableName, department);
-//        if(departments != null){
-//            department.putAll(departments);
+//        Map<String, String> department = dataUtil.insertDepartment(use, tableName, dataMap.get(tableName));
+//        if(department.isEmpty() && dataMap.get(tableName) != null){
+//            department = dataMap.get(tableName);
 //        }
-////        //System.out.println(department.toString());
-////
+//
+//        //推送教职工
 //        tableName = "base_teacher";
-//        Map<String, String> TeacherData = dataMap.get(tableName);
-//        Map<String, String> Teacher = dataUtil.insertTeacher(use, tableName, TeacherData, department);
-//        System.out.println(Teacher);
-//        selectOrg(use, tableName);
-//        deleteOrg(use, tableName);
-
-//        selecAllPersonById(use);
-
+//        dataUtil.insertTeacher(use, tableName, dataMap.get(tableName), department);
+//
+//        //推送车辆
+//        String carTableName = "car_message_apply";
+//        dataUtil.insertCar(use, carTableName, null);
+//
 //        tableName = "base_class";
 //        Map<String, String> baseClass = dataMap.get(tableName);
 //        Map<String, String> classes = dataUtil.insertClass(use, tableName, baseClass);
 
+
         tableName = "base_student";
         Map<String, String> baseStudent = dataMap.get(tableName);
-        Map<String, String> student = dataUtil.insertStudent(use, tableName, baseStudent);
+        Map<String, String> student = insertStudentOne(use, tableName, baseStudent);
+    }
+
+
+    public Map<String, String> insertStudentOne(Db db, String tableName, Map<String, String> tableData) throws Exception {
+        String sql = "SELECT t1.id,t1.name,CONCAT(t3.id,'-',t4.name,'-',t3.class_type,'-',t2.stduy_status)," +
+                " t1.user_name,t1.gender,DATE_FORMAT(t1.birth_date, '%Y-%m-%d'),t1.mobile,t1.email,t1.credential_type,t1.credential_number FROM xjr_user t1" +
+                " INNER JOIN base_student_school_roll t2 ON t1.id = t2.user_id" +
+                " INNER JOIN base_class t3 ON t2.class_id = t3.id" +
+                " INNER JOIN base_grade t4 ON t2.grade_id = t4.id" +
+                " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0" +
+                " AND t3.class_type IS NOT NULL" +
+                " AND t1.id NOT IN (SELECT source_id FROM hikvision_data WHERE table_name = 'base_student'\n" +
+                ")";
+        List<String[]> list = db.query(sql, String[].class);
+        Map<Integer, String> clientMap = new HashMap<>();
+
+        String apiPath = "/api/resource/v2/person/single/add";
+        Map<String, String> idMap = new HashMap<>();
+        JsonParser jsonParser = new JsonParser();
+        ApiUtil apiUtil = new ApiUtil();
+        Map<String, String> header = new HashMap<>();
+        header.put("tagId", "insert_student");
 
-//        selectResource(use);
-//        deleteClass(use);
+        for(int i = 0; i < list.size(); i ++){
+            String[] el = list.get(i);
+            if(tableData != null && tableData.containsKey(el[0])){
+                continue;
+            }
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("clientId", i);
+            paramJson.addProperty("personId", el[0]);
+            paramJson.addProperty("personName", el[1]);
+            paramJson.addProperty("orgIndexCode", el[2]);
+            paramJson.addProperty("phoneNo", el[6]);
+            paramJson.addProperty("jobNo", el[3]);
+            paramJson.addProperty("birthday", el[5]);
+            paramJson.addProperty("personType", 2);
+
+            int gender;
+            switch (el[4]) {
+                case "SB10001":
+                    gender = 1;
+                    break;
+                case "SB10002":
+                    gender = 2;
+                    break;
+                default:
+                    gender = 0;
+                    break;
+            }
+            paramJson.addProperty("gender", gender);
+
+            clientMap.put(i, el[0]);
+            System.out.println("请求参数:" + paramJson.toString());
+            String result = apiUtil.doPost(apiPath, paramJson.toString(), null, header);
+            System.out.println("返回结果:" + result);
+            JsonElement parse = jsonParser.parse(result);
+            JsonObject resultJson = parse.getAsJsonObject();
+            if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
+                JsonObject array = resultJson.get("data").getAsJsonObject();
+                idMap.put(el[0], array.get("personId").getAsString());
+            }
+        }
+
+        //插入记录表
+        return idMap;
     }
 
+
+
     void deleteClass(Db db) throws SQLException {
 
         String apiPath = "/api/resource/v1/org/orgList";