jiangping
2023-12-04 12c096a36542a5886c1d65e2e04d404ac77316f5
海康接口封装
已添加39个文件
已删除3个文件
已修改5个文件
已重命名1个文件
2488 ■■■■ 文件已修改
log/eva.log 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/resources/application.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/HKUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseRequst.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseResponse.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarChargeAddRequest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarChargeDelRequest.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EntranceListRequest.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FaceAddRequest.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FaceEditRequest.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FacePictureRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgAddRequest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgDelRequest.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgEditRequest.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkListRequest.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkReservationAddRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkReservationDelRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/PrivilegeGroupRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserAddFaceRequest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserAddRequest.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentMDJRequest.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentPermissonRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentRequest.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentVistorRequest.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EntranceListResponse.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FaceAddOrEditesponse.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgListResponse.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgOrUserAddFailureResponse.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgOrUserAddResponse.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgOrUserAddSuccessResponse.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkListResponse.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkReservationAddResponse.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupResponse.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserAddResponse.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserDelResponse.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitAppointmentResponse.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitAppointmentVistorResponse.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 422 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/base/HKConstants.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/base/HKTools.java 998 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/service/HKService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log/eva.log
server/dmvisit_admin/src/main/resources/application.yml
@@ -10,7 +10,7 @@
  #  application:
  #    name: doumeemes
  profiles:
    active: pro
    active: dev
  # JSON返回配置
  jackson:
@@ -30,7 +30,6 @@
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# ç¼“存内容设置
cache:
  session:
@@ -46,7 +45,6 @@
  smart: true
  # æŽ’除跟踪的URL正则
  exclude-patterns: .+/list[a-zA-Z0-9\-\_]*$, .+/tree[a-zA-Z0-9\-\_]*$, .+/page[a-zA-Z0-9\-\_]*$, .+/all[a-zA-Z0-9\-\_]*$, /swagger-resources.*
# æ—¥å¿—配置
logback:
@@ -69,7 +67,6 @@
  compression:
    enabled: true
    mime-types: application/json
  port: 10013
  tomcat:
    max-swallow-size: -1
server/dmvisit_service/src/main/java/com/doumee/core/haikang/HKUtil.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/HKUtil.java ÐÞ¸Ä
@@ -1,9 +1,8 @@
package com.doumee.core.utils.haikang;
package com.doumee.core.haikang;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
package com.doumee.core.haikang.model;
import com.doumee.core.utils.Constants;
import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Data
public class HKConstants {
    private Logger logger = LoggerFactory.getLogger(HKConstants.class);
    //海康平台根据现场环境配置http还是https
    public static String https ;
    /**
     * èƒ½åŠ›å¼€æ”¾å¹³å°çš„ç½‘ç«™è·¯å¾„   è·¯å¾„不用修改,就是/artemis
     */
    public static final String ARTEMIS_PATH = "/artemis";
    /**
     * æŽ¥å£åœ°å€é›†åˆ
     */
    public interface InterfacePath{
        String doorEvents = "/api/acs/v2/door/events";//门禁事件查询
        String rootOrg = "/api/resource/v1/org/rootOrg";//获取跟组织
        String addBatchOrg = "/api/resource/v1/org/batch/add";//批量新增组织
        String delBatchOrg = "/api/resource/v1/org/batch/delete";//批量删除组织
        String editOrg = "/api/resource/v1/org/single/update";//修改组织
        String addUser = "/api/resource/v2/person/single/add";//添加人员
        String addBatchUser = "/api/resource/v1/person/batch/add";//批量添加人员
        String editUser = "/api/resource/v1/person/single/update";//修改人员
        String delBatchUser = "/api/resource/v1/person/batch/delete";//批量删除人员
        String addFace = "/api/resource/v1/face/single/add";//添加人脸
        String editFace = "/api/resource/v1/face/single/update";//修改人脸
        String delFace = "/api/resource/v1/face/single/delete";//删除人脸
        String acsDeviceList = "/api/resource/v2/acsDevice/search";//查询门禁设备列表v2
        String acsDeviceTimeRangeList = "/api/resource/v1/acsDevice/timeRange";//增量获取门禁设备数据
        String parkAddition = "/api/pms/v2/parkingSpace/reservations/addition";//车位预约v2
        String parkDeletion= "/api/pms/v1/parkingSpace/reservations/deletion";//车位取消预约v2
        String carChargeAddtion= "/api/pms/v1/car/charge";//固定车充值包期
        String carChargeDeletion= "/api/pms/v1/car/charge/deletion";//固定车取消包期
        String getParkList= "/api/resource/v1/park/parkList";//获取停车库列表
        String getEntranceList= "/api/resource/v1/entrance/entranceList";//获取出入口列表
        String visitAppiontment= "/api/visitor/v2/appointment";//访客预约v2
        String visitAppiontmentMDJ= "/api/visitor/v1/appointment/registration";//访客预约免登记v2
        String visitCancel= "/api/visitor/v1/appointment/cancel";//取消访客预约
        String facePicture= "/api/resource/v1/person/picture";//提取用户人脸照片
        String privilegeGroup= "/api/visitor/v1/privilege/group";//查询访客权限组
    }
    /**
     * é¡”色枚举
     */
    public  enum Colors {
        SYSTEM(0, "系统用户"  )
        ;
        // æˆå‘˜å˜é‡
        private String name;
        private int key;
        // æž„造方法
        Colors(int key, String name ) {
            this.name = name;
            this.key = key;
        }
        // æ™®é€šæ–¹æ³•
        public static String getName(int index) {
            for (Constants.UserType c : Constants.UserType.values()) {
                if (c.getKey() == index) {
                    return c.getName();
                }
            }
            return null;
        }
        // get set æ–¹æ³•
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
    }
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,310 @@
package com.doumee.core.haikang.model;
import com.alibaba.fastjson.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@Slf4j
public class HKTools {
//    private static final Logger logger = LoggerFactory.getLogger(HKUtil.class);
    public static void main(String[] args) throws ParseException {
    }
    private static Map<String, String> getPath(String str) {
        final String getCamsApi = HKConstants.ARTEMIS_PATH  + str;
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put(HKConstants.https, getCamsApi);// æ ¹æ®çŽ°åœºçŽ¯å¢ƒéƒ¨ç½²ç¡®è®¤æ˜¯http还是https
            }
        };
        return  path;
    }
    /**
     * èŽ·å–é—¨ç¦æ—¶é—´æ•°æ®é›†åˆ
     * @return
     */
    public static String getRootOrg() {
        Map<String, String> path = getPath(HKConstants.InterfacePath.rootOrg);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, "", null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * æ›´æ–°ç»„织信息
     * @param body
     * @return
     */
    public static String editOrg(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.editOrg);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * æ–°å¢žç»„织信息
     * @param body
     * @return
     */
    public static String addBatchOrg(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.addBatchOrg);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * åˆ é™¤ç»„织信息
     * @param body
     * @return
     */
    public static String delOrg(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.delBatchOrg);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * æ–°å¢žäººå‘˜ä¿¡æ¯
     * @param body
     * @return
     */
    public static String addUser(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.addUser);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * æ‰¹é‡æ–°å¢žäººå‘˜ä¿¡æ¯
     * @param body
     * @return
     */
    public static String addBatchUser(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.addBatchUser);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * æ‰¹é‡åˆ é™¤äººå‘˜ä¿¡æ¯
     * @param body
     * @return
     */
    public static String delBatchUser(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.delBatchUser);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * ä¿®æ”¹äººå‘˜ä¿¡æ¯
     * @param body
     * @return
     */
    public static String editUser(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.editUser);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    æ·»åŠ äººè„¸ä¿¡æ¯
     * @param body
     * @return
     */
    public static String addFace(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.addFace);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    ç¼–辑人脸信息
     * @param body
     * @return
     */
    public static String editFace(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.editFace);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    åˆ é™¤äººè„¸ä¿¡æ¯
     * @param body
     * @return
     */
    public static String delFace(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.delFace);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    å…¨é‡èŽ·å–è½¦åº“ä¿¡æ¯
     * @param body
     * @return
     */
    public static String parkList(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.getParkList);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    æ ¹æ®è½¦åº“编码查询出入口列表
     * @param body
     * @return
     */
    public static String entranceList(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.getEntranceList);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    è½¦è¾†é¢„约
     * @param body
     * @return
     */
    public static String parkAddition(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.parkAddition);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    è½¦è¾†å–消预约
     * @param body
     * @return
     */
    public static String parkDeletion(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.parkDeletion);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    å›ºå®šè½¦è¾†å……值(包期)
     * @param body
     * @return
     */
    public static String carChargeAddtion(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.carChargeAddtion);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    å›ºå®šè½¦è¾†å–消包期
     * @param body
     * @return
     */
    public static String carChargeDeletion(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.carChargeDeletion);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * èŽ·å–äººè„¸æ•°æ®ï¼ˆæå–äººè„¸è®¿é—®åœ°å€ï¼‰
     * @param body
     * @return
     */
    public static InputStream getFaceInputStream(String body)  throws  Exception{
        Map<String, String> path = getPath(HKConstants.InterfacePath.facePicture);
        //参数根据接口实际情况设置
        HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null);
        if (200==resp.getStatusLine().getStatusCode()) {
            HttpEntity entity = resp.getEntity();
            InputStream in = entity.getContent();
            return  in;
        }else{
            throw  new Exception("人脸下载出错");
        }
    }
    /**
     *    èŽ·å–é—¨ç¦è®¾å¤‡åˆ—è¡¨
     * @param body
     * @return
     */
    public static String acsDeviceList(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.acsDeviceList);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    å¢žé‡èŽ·å–é—¨ç¦è®¾å¤‡åˆ—è¡¨
     * @param body
     * @return
     */
    public static String acsDeviceTimeRangeList(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.acsDeviceList);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    è®¿å®¢é¢„约
     * @param body
     * @return
     */
    public static String visitAppiontment(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.visitAppiontment);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    è®¿å®¢å…ç™»è®°é¢„约
     * @param body
     * @return
     */
    public static String visitAppiontmentMDJ(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.visitAppiontmentMDJ);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    å–消访客预约
     * @param body
     * @return
     */
    public static String visitCancel(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.visitCancel);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     *    è®¿å®¢æƒé™ç»„
     * @param body
     * @return
     */
    public static String privilegeGroup(String body) {
        Map<String, String> path = getPath(HKConstants.InterfacePath.privilegeGroup);
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数
        return  result;
    }
    /**
     * ä¼ å…¥Data类型日期,返回字符串类型时间(ISO8601标准时间)
     * @param date
     * @return
     */
    public static String getISO8601Timestamp(Date date){
        TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
        //TimeZone tz = TimeZone.getTimeZone("GMT-01");
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        df.setTimeZone(tz);
        String nowAsISO = df.format(date);
        return nowAsISO;
    }
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseRequst.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.doumee.core.haikang.model.param;
import lombok.Data;
@Data
public class BaseRequst<T> {
    private T data;
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.doumee.core.haikang.model.param;
import lombok.Data;
@Data
public class BaseResponse<T> {
    /**
     * è¿”回码
     * 0:成功
     * å…¶ä»–:失败
     * å‚考附录E.other.1 èµ„源目录错误码
     */
    private String code;
    /**
     * æŽ¥å£æ‰§è¡Œæƒ…况说明信息
     */
    private String msg;
    private T data;
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarChargeAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class CarChargeAddRequest {
    private String    parkSyscode;//        string    True    åœè½¦åº“唯一标识,可通过获取停车库列表接口获取
    private String    plateNo;//        string    True    è½¦ç‰Œå·ç 
    private String    fee;//        string    False    åŒ…期费用,单位:元,2位小数
    private String    startTime;//        string    True    åŒ…期开始时间时间格式:yyyy-MM-dd,如:2018-07-26
    private String     endTime;//        string    True    åŒ…期结束时间时间格式:yyyy-MM-dd,如:2018-07-27
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarChargeDelRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class CarChargeDelRequest {
    private String    parkSyscode;//    string    False    åœè½¦åº“唯一标识,为空时则取消当前车辆所有停车库的包期,可通过获取停车库列表接口获取
    private String      plateNo;//    string    True    è½¦ç‰Œå·ç 
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EntranceListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class EntranceListRequest {
    private String   parkIndexCodes        ;//    string    True    åœè½¦åœºå”¯ä¸€æ ‡è¯†é›† å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个, å¯é€šè¿‡èŽ·å–åœè½¦åº“åˆ—è¡¨æŽ¥å£èŽ·å–
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FaceAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class FaceAddRequest {
    private String  personId    ;//    string    True äººå‘˜Id
    private String  faceData;//        string    True äººè„¸å›¾ç‰‡base64编码后的字符数据
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FaceEditRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class FaceEditRequest {
    private String  faceId    ;//    string    True    äººè„¸å›¾ç‰‡Id ï¼Œ  æ·»åŠ äººè„¸ æŽ¥å£è¿”回报文中的faceId字段,    æˆ–获取人员列表v2 æŽ¥å£è¿”回报文中的personPhotoIndexCode字段
    private String  faceData;//        string    True äººè„¸å›¾ç‰‡base64编码后的字符数据
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FacePictureRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class FacePictureRequest {
    private String  picUri    ;//    string    True    å›¾ç‰‡ç›¸å¯¹URI  é€šè¿‡èŽ·å–äººå‘˜åˆ—è¡¨v2接口返回“picUri”字段
    private String  serverIndexCode;//        string    True    å›¾ç‰‡æœåŠ¡å™¨å”¯ä¸€æ ‡è¯† é€šè¿‡èŽ·å–äººå‘˜åˆ—è¡¨v2接口返回“serverIndexCode”字段
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class OrgAddRequest {
    private Integer    clientId;//    number    False    è°ƒç”¨æ–¹æŒ‡å®šæ ‡è¯†ï¼ŒæŽ¥å£æ‰§è¡ŒæˆåŠŸåŽå°†æœåŠ¡ç«¯ç”Ÿæˆçš„æ ‡è¯†ä¸Žæ­¤æ ‡è¯†ç»‘å®šåŽè¿”å›ž  æ‰€ä»¥å»ºè®®æ¯æ¬¡æŽ¥å£è°ƒç”¨ï¼Œclientid保持唯一。1~10个字符,只支持数字。 æ³¨é‡Šï¼šISC不对clientid做校验和存储
    private String  orgIndexCode;//    string    False    ç»„织唯一标志,不允许与其它组织唯一标志重复,包括已删除的组织,值为空或者不传此字段系统自动生成唯一标志;该字段禁止传0值。
    private String  orgName;//    string    True    ç»„织名称,1~32个字符;不能包含 â€™ / \ : * ? " < >
    private String  parentIndexCode    ;//string    True    çˆ¶ç»„织唯一标识码
    private String  orgCode;//    string    False    ç»„织编码,当添加小区节点时必填,编码使用01101开头的8位数字编码,当添加楼栋单元时必填,编码使用01101开头的20位数字编码,其它场景下改值无效
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgDelRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class OrgDelRequest {
    private String[] indexCodes;//    string[]    True    å¾…删除的组织indexCode列表,单次提交上限为1000条  ä»ŽèŽ·å–ç»„ç»‡åˆ—è¡¨ æŽ¥å£èŽ·å–è¿”å›žå‚æ•°orgIndexCode
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgEditRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class OrgEditRequest {
    private String   orgIndexCode    ;//string    True    ç»„织标识,必须保证已存在, èŽ·å–ç»„ç»‡åˆ—è¡¨ æŽ¥å£èŽ·å–è¿”å›žå‚æ•°orgIndexCode。
    private String   orgName    ;//string    False    ç»„织名称,1~32个字符;不能包含 â€™ / \ : * ? " < >
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class ParkListRequest {
    private String  parkIndexCodes    ;//    string    False    åœè½¦åº“唯一标识集合  å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkReservationAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class ParkReservationAddRequest {
    private String   parkSyscode;//    string    True    åœè½¦åº“唯一标识 æ¥æºäºŽæŸ¥è¯¢åœè½¦åº“列表接口,可通过获取停车库列表接口获取
    private String   plateNo;//    string    True    è½¦ç‰Œå·ç 
    private String    phoneNo;//    string    False    æ‰‹æœºå· çº¯æ•°å­—,位数暂不限制
    private String   owner;//    string    False    è”系人姓名
    private String    allowTimes;//    number    False    å…è®¸è¿›å‡ºæ¬¡æ•°ï¼Œ0:单次1:多次
    private String   isCharge    ;//string    False    æ˜¯å¦æ”¶è´¹0:收费1:免费
    private String   resvWay;//    string    False    é¢„约方式,5:第三方预约(默认)6:访客
    private String    startTime    ;//string    False    é¢„约开始时间 æŒ‰æ—¶é—´é¢„约时必填,按次预约不填 ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00
    private String    endTime    ;//string    False    é¢„约结束时间 æŒ‰æ—¶é—´é¢„约时必填,按次预约不填 ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkReservationDelRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class ParkReservationDelRequest {
    private String  reserveOrderNo    ;//string    True    é¢„约单号
    private String  way    ;//number    False    å–消方式1:用户取消(默认)         5:访客平台取消
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/PrivilegeGroupRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class PrivilegeGroupRequest {
    private String  name;//    string    False    è®¿å®¢æƒé™ç»„名称
    private int pageNo    ;//number    True    å½“前页码,要求大于0
    private int  pageSize    ;//number    True    æ¯é¡µè®°å½•总数,要求大于0且不超过1000
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserAddFaceRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
/**
 * äººè„¸base64请求参数
 */
@Data
public class UserAddFaceRequest {
    private String  faceData;//    string    True    äººè„¸å›¾ç‰‡base64编码后的字符
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
import java.util.List;
/**
 * ç”¨æˆ·æ–°å¢žè¯·æ±‚参数
 */
@Data
public class UserAddRequest {
    private Integer  clientId;//number    False    äººå‘˜ä¸´æ—¶æ ‡å¿—,当调用方未指定personId时,clientId作为人员标志,在返回值中标志每个人员的添加结果。所以每次接口调用,每个人员的clientid需保持唯一,1~10个字符,只支持数字。注:clientid只对本次调用有效
    private String   personId    ;//string    False    äººå‘˜ID,可以指定人员personId,不允许与其他人员personId重复,包括已删除的人员。 ä¸ºç©ºæ—¶å¹³å°è‡ªåŠ¨ç”Ÿæˆäººå‘˜ID
    private String   personName;//    string    True    äººå‘˜åç§°ï¼Œ1~32个字符;不能包含 â€™ / \ : * ? " < >
    private String   gender;//    string    True    æ€§åˆ«ï¼Œ1:男;2:女;0:未知
    private String   orgIndexCode;//    string    True    æ‰€å±žç»„织标识,必须是已存在组织,从获取组织列表接口获取返回参数orgIndexCode
    private String   birthday    ;//string    False    å‡ºç”Ÿæ—¥æœŸï¼Œä¸¾ä¾‹ï¼š1992-09-12
    private String   phoneNo    ;//string    False    æ‰‹æœºå·ï¼Œ1-20位数字,平台上人员信息实名标识选择为手机号码时必填
    private String   email;//    string    False    é‚®ç®±ï¼Œä¸¾ä¾‹ï¼šhic@163.com
    private String   certificateType;//    string    False    è¯ä»¶ç±»åž‹ï¼Œå‚考附录A æ•°æ®å­—典,平台上人员信息实名标识选择为身份证件时必填
    private String   certificateNo;//    string    False    è¯ä»¶å·ç ï¼Œ1-20位数字字母,平台上人员信息实名标识选择为身份证件时必填
    private String   jobNo;//    string    False    å·¥å·ï¼Œ1-32个字符,平台上人员信息实名标识选择为工号时必填
    private List<UserAddFaceRequest> faces;//    object[]    False    äººè„¸ä¿¡æ¯
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentMDJRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
import java.util.List;
@Data
public class VisitAppointmentMDJRequest {
    private String receptionistId;//        string    True    è¢«è®¿äººå”¯ä¸€æ ‡è¯†ï¼ŒæŸ¥è¯¢äººå‘˜åˆ—表v2接口获取返回报文中的personId字段
    private VisitAppointmentPermissonRequest visitorPermissionSet    ;//object    False    æƒé™é›†åˆå°è£…对象
    private String   visitStartTime;//        string    True    é¢„计来访时间,时间参数需满足ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00
    private String   visitEndTime    ;//    string    True    é¢„计离开时间,时间参数需满足ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00预计离开时间必须晚于当前时间和预计来访时间
    private String  visitPurpose;//        string    False    æ¥è®¿äº‹ç”±ï¼Œé•¿åº¦ä¸º0~32个字符
    private VisitAppointmentVistorRequest visitorInfo    ;//object         True    è®¿å®¢ä¿¡æ¯
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentPermissonRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class VisitAppointmentPermissonRequest {
    private String    defaultPrivilegeGroupFlag    ;//    string    False    æ˜¯å¦ä½¿ç”¨é»˜è®¤æƒé™ç»„(1:使用;非1:不使用)
 private String[] privilegeGroupIds    ;//string[]    False    æƒé™ç»„ids,查询访客权限组接口获取返回报文中的privilegeGroupId字段
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
import java.util.List;
@Data
public class VisitAppointmentRequest {
    private String receptionistId;//        string    True    è¢«è®¿äººå”¯ä¸€æ ‡è¯†ï¼ŒæŸ¥è¯¢äººå‘˜åˆ—表v2接口获取返回报文中的personId字段
    private VisitAppointmentPermissonRequest visitorPermissionSet    ;//object    False    æƒé™é›†åˆå°è£…对象
    private String   visitStartTime;//        string    True    é¢„计来访时间,时间参数需满足ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00
    private String   visitEndTime    ;//    string    True    é¢„计离开时间,时间参数需满足ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00+08:00预计离开时间必须晚于当前时间和预计来访时间
    private String  visitPurpose;//        string    False    æ¥è®¿äº‹ç”±ï¼Œé•¿åº¦ä¸º0~32个字符
    private List<VisitAppointmentVistorRequest> visitorInfoList    ;//    object[]    True    è®¿å®¢ä¿¡æ¯åˆ—表,最大支持128位访客,其中最多支持4位访客带人脸信息,如果存在人脸上传失败,则整个预约失败。
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitAppointmentVistorRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class VisitAppointmentVistorRequest {
    private String visitorName    ;//sstring    True    è®¿å®¢å§“名,长度不超过32,支持中英文字符,不能包含 â€™ / \ : * ? " < >
    private String gender;//    number    True    è®¿å®¢æ€§åˆ«1-男,2-女
    private String phoneNo;//    string    True    è”系电话,建议填写手机号码,仅支持纯数字
    private String plateNo;//    string    False    è½¦ç‰Œå·ï¼Œä¸èƒ½åŒ…含 â€™ / \ : * ? " < >
    private String certificateType;//    number    False    è¯ä»¶ç±»åž‹ï¼Œè¯¦è§é™„录A.11 è¯ä»¶ç±»åž‹
    private String certificateNo;//string    False    è¯ä»¶å·ç ï¼Œ1~20个数字、字母组成;证件号码非空时,证件类型必填;
    private String certAddr;//    string    False    è¯ä»¶åœ°ï¼Œæ”¯æŒ1-128位字母、汉字
    private String certIssuer;//    string    False    å‘证机关,支持1-32位字母、汉字
    private String nation;//    number    False
    private String birthplace;//    string    False    ç±è´¯ï¼Œæ”¯æŒ1-32位字母、汉字
    private String visitorPhoto;//    string    False    å¤´åƒbase64编码的字节流,图片最大200K,仅支持jpg格式。由于访客头像需要下发到设备,因此该接口会对访客头像进行质量检测,只有人脸评分大于等于75时,接口才会返回成功,可通过人脸评分接口获取人脸图片的评分。请提供五官清晰,人脸居中的正面人脸免冠照片
    private String visitorWorkUnit;//    string    False    æ¥è®¿å•位,支持1-32位字符,不包含’/😗?”<>
    private String visitorAddress;//    string    False    è®¿å®¢ä½å€ï¼Œæ”¯æŒ1-128位中英文数字
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EntranceListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class EntranceListResponse {
  private String entranceIndexCode    ;//    string    False    å‡ºå…¥å£å”¯ä¸€æ ‡è¯†ï¼ˆæœ€å¤§é•¿åº¦64)
  private String entranceName    ;//    string    False    å‡ºå…¥å£åç§°ï¼ˆæœ€å¤§é•¿åº¦64)
  private String parkIndexCode    ;//    string    False    åœè½¦åœºå”¯ä¸€æ ‡è¯†ï¼ˆæœ€å¤§é•¿åº¦64)
  private String roadNum    ;//    number    False    è½¦é“数(最大长度32)
  private String createTime;//        string    False    åˆ›å»ºæ—¶é—´ è¦æ±‚遵守ISO8601标准,如2018-07-26T21:30:08+08:00表示北京时间2017å¹´7月26日21时30分08秒
  private String updateTime;//        string    False    æ›´æ–°æ—¶é—´ è¦æ±‚遵守ISO8601标准,如2018-07-26T21:30:08+08:00表示北京时间2017å¹´7月26日21时30分08秒
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FaceAddOrEditesponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class FaceAddOrEditesponse {
  private String  faceId;//        string    False    äººè„¸Id
  private String  faceUrl;//        string    False    äººè„¸å›¾ç‰‡Url
  private String  personId;//        string    False    äººå‘˜ID
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class OrgListResponse {
  private String orgIndexCode;//    ç»„织唯一标识码(最大长度64)
    private String  orgNo    ;//string    False    ç»„织编号(最大长度64)
    private String orgName;//    string    False    ç»„织名称(最大长度64)  å½“前组织的名称,如默认部门
    private String orgPath    ;//string    False    ç»„织目录(最大长度64) ä¾‹å¦‚:默认部门/综合安防/开发小组
    private String  parentOrgIndexCode;//    string    False    çˆ¶ç»„织唯一标识码(最大长度64)
    private String  parentOrgName;//    string    False    çˆ¶ç»„织名称(最大长度64)
    private String  updateTime;//    string    False    æ›´æ–°æ—¶é—´    è¦æ±‚遵守ISO8601标准,如2018-07-26T21:30:08+08:00表示北京时间2017å¹´7月26日21时30分08秒
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgOrUserAddFailureResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class OrgOrUserAddFailureResponse {
    private String   clientId    ;//number    False    è°ƒç”¨æ–¹æŒ‡å®šId
    private String   code    ;//string    False    é”™è¯¯ç 
    private String   msg    ;//string    False    é”™è¯¯ä¿¡æ¯
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgOrUserAddResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class OrgOrUserAddResponse {
  private List<OrgOrUserAddSuccessResponse> successes    ;//object[]    False    æ‰¹é‡æ·»åŠ æˆåŠŸçš„è®°å½•
  private List<OrgOrUserAddFailureResponse> failures;//    object[]    False    æ‰¹é‡æ·»åŠ å¤±è´¥çš„è®°å½•
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgOrUserAddSuccessResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class OrgOrUserAddSuccessResponse {
  private String clientId;//    number    False    è°ƒç”¨æ–¹æŒ‡å®šId
  private String  orgIndexCode;//    string    False    æœåŠ¡ç«¯ç”Ÿæˆçš„å”¯ä¸€æ ‡è¯†
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class ParkListResponse {
  private String  parkIndexCode    ;//    string    False    åœè½¦åº“唯一标识(最大长度64)
  private String parentParkIndexCode;//        string    False    çˆ¶åœè½¦åº“唯一标识(最大长度64)
  private String parkName;//        string    False    åœè½¦åº“名称(最大长度64)
  private String createTime    ;//    string    False    åˆ›å»ºæ—¶é—´  éµå®ˆISO8601标准,如2017-11-12T15:41:11.688+08:00表示北京时间2017å¹´11月12日15时41分11.688秒
  private String  updateTime;//        string    False    æ›´æ–°æ—¶é—´  éµå®ˆISO8601标准,如2017-11-12T15:41:11.688+08:00表示北京时间2017å¹´11月12日15时41分11.688秒
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkReservationAddResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class ParkReservationAddResponse {
    private String reserveOrderNo    ;//string    False    é¢„约单号
    private String reserveTime    ;//number    False    é¢„约有效时间,单位:分钟
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class PrivilegeGroupListResponse {
    private String  privilegeGroupId;//    string    False    æƒé™ç»„ID, ç”¨äºŽè®¿å®¢ç™»è®°æ—¶å¯¹è®¿å®¢æŽˆæƒ
    private String privilegeGroupName;//    string    False    æƒé™ç»„名称
    private String remark;//    string    False    æè¿°
    private Integer isDefault    ;//number    False    æ˜¯å¦æ˜¯é»˜è®¤æƒé™ç»„0: æ˜¯1: å¦
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class PrivilegeGroupResponse {
    private int total;//    number    False    æŸ¥è¯¢æ•°æ®è®°å½•总数
    private int pageSize;//    number    False    æ¯é¡µè®°å½•总数
    private int pageNo    ;// number    False    å½“前页码
    private List<PrivilegeGroupListResponse> list    ;// object[]    False    æƒé™ç»„对象列表
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserAddResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class UserAddResponse {
  private String personId    ;//string    False    æˆåŠŸæ·»åŠ çš„äººå‘˜Id
  private String faceId;//    string    False    æˆåŠŸæ·»åŠ çš„äººè„¸Id
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserDelResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class UserDelResponse {
  private String  personId    ;//string    False    äººå‘˜æ ‡å¿—
  private String  code    ;//string    False    é”™è¯¯ç 
  private String  msg;//    string    False    é”™è¯¯ä¿¡æ¯
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitAppointmentResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.doumee.core.haikang.model.param.respose;
import com.doumee.core.haikang.model.param.request.VisitAppointmentPermissonRequest;
import com.doumee.core.haikang.model.param.request.VisitAppointmentVistorRequest;
import lombok.Data;
import java.util.List;
@Data
public class VisitAppointmentResponse {
    private String  appointRecordId;//    string    False    é¢„约记录ID,可作为修改、取消预约的依据
    private List<VisitAppointmentVistorRequest>   appointmentInfoList;//    object[]    False    é¢„约详细信息
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitAppointmentVistorResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class VisitAppointmentVistorResponse {
    private String   visitorName        ;//string    False    è®¿å®¢å§“名,支持中英文字符,不能包含 â€™ / \ : * ? " < >
    private String appointRecordId    ;//    string    False é¢„约记录ID
    private String receptionistId    ;//    string    False    è¢«è®¿äººå”¯ä¸€æ ‡è¯†
    private String receptionistName    ;//    string    False    è¢«è®¿äººå§“名,支持中英文字符,不能包含 â€™ / \ : * ? " < >
    private String verificationCode        ;//string    False    è®¿å®¢éªŒè¯ç ï¼Œå¯ç”¨äºŽè®¿å®¢åœ¨è®¿å®¢æœºç™»è®°çš„凭证, æˆ–后期作为查询条件使用
    private String QRCode    ;//    string    False    åŠ¨æ€äºŒç»´ç å†…å®¹ï¼Œå¦‚éœ€è¦ä½¿ç”¨ï¼Œå°†è®¿å®¢äºŒç»´ç å†…å®¹è½¬æˆäºŒç»´ç å›¾ç‰‡å³å¯
    private String orderId    ;//string    False    è®¿å®¢è®°å½•唯一标识,用于已预约登记、访客签离等操作
    private String picUri    ;//    string    False    è®¿å®¢å¤´åƒ,返回图片的相对Uri
    private String svrIndexCode    ;//    string    False    å›¾ç‰‡å­˜å‚¨æœåŠ¡çš„å”¯ä¸€æ ‡è¯†
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,422 @@
package com.doumee.core.haikang.service;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.utils.Constants;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.HKTools;
import com.doumee.core.haikang.model.param.BaseRequst;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import com.alibaba.fastjson.TypeReference;
import java.io.InputStream;
import java.util.List;
@Service
@Slf4j
public class HKService {
    private Logger logger = LoggerFactory.getLogger(HKService.class);
    @Autowired
    private SystemDictDataBiz  systemDictDataBiz;
    @PostConstruct
    public  int  initHkConfig(){
        ArtemisConfig.host = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HOST).getCode();
        ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
        ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
        HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
        return  0;
    }
    /**
     * èŽ·å–æ ¹ç»„ç»‡æ•°æ®
     * @return
     */
    public  BaseResponse<OrgListResponse>  getRootOrg(BaseRequst param){
        log.error("【海康获取根组织】================开始====");
        try {
            String res = HKTools.getRootOrg ();
            TypeReference typeReference =
                    new TypeReference< BaseResponse<OrgListResponse>>(){};
            BaseResponse<OrgListResponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康获取根组织】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康获取根组织】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     * ä¿®æ”¹ç»„织数据
     * @return
     */
    public  BaseResponse editOrg(OrgEditRequest param){
        log.error("【海康修改组织】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.editOrg(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康修改组织】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康修改组织】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *批量新增组织数据
     * @return
     */
    public  BaseResponse<OrgOrUserAddResponse>  addBatchOrg(List<OrgAddRequest> param){
        log.error("【海康新增组织】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.addBatchOrg(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<OrgOrUserAddResponse>>(){};
            BaseResponse<OrgOrUserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康新增组织】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康新增组织】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *批量删除组织数据
     * @return
     */
    public  BaseResponse   delBatchOrg(OrgDelRequest param){
        log.error("【海康删除组织】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.delOrg(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse >(){};
            BaseResponse result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康删除组织】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康删除组织】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *新增人员信息(支持人脸数据)
     * @return
     */
    public  BaseResponse<UserAddResponse>  addUser(UserAddRequest param){
        log.error("【海康新增人员】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.addUser(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<UserAddResponse>>(){};
            BaseResponse<UserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康新增人员】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康新增人员】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *修改人员信息(不支持人脸数据)
     * @return
     */
    public  BaseResponse editUser(UserAddRequest param){
        log.error("【海康修改人员】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.editUser(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<UserAddResponse>>(){};
            BaseResponse<UserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康修改人员】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康修改人员】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *批量新增人员信息(无人脸)
     * @return
     */
    public  BaseResponse<OrgOrUserAddResponse>  addBatchUser(List<UserAddRequest> param){
        log.error("【海康批量新增人员】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.addBatchUser(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<OrgOrUserAddResponse>>(){};
            BaseResponse<OrgOrUserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康批量新增人员】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康批量新增人员】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *批量删除人员信息
     * @return
     */
    public  BaseResponse<OrgOrUserAddFailureResponse>  delBatchUser(List<UserAddRequest> param){
        log.error("【海康批量新增人员】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.delBatchUser(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<OrgOrUserAddFailureResponse>>(){};
            BaseResponse<OrgOrUserAddFailureResponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康批量新增人员】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康批量新增人员】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *添加人脸信息
     * @return
     */
    public  BaseResponse<FaceAddOrEditesponse>  addFace(List<FaceAddRequest> param){
        log.error("【海康添加人脸信息】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.addFace(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<FaceAddOrEditesponse>>(){};
            BaseResponse<FaceAddOrEditesponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康添加人脸信息】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康添加人脸信息】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *编辑人脸信息
     * @return
     */
    public  BaseResponse<FaceAddOrEditesponse>  editFace(List<FaceEditRequest> param){
        log.error("【海康编辑人脸信息】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.editFace(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<FaceAddOrEditesponse>>(){};
            BaseResponse<FaceAddOrEditesponse> result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康编辑人脸信息】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康编辑人脸信息】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *删除人脸信息
     * @return
     */
    public  BaseResponse   delFace(List<FaceEditRequest> param){
        log.error("【海康删除人脸信息】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.editFace(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康删除人脸信息】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康删除人脸信息】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     * èŽ·å–æµ·åº·äººè„¸è®¿é—®åœ°å€
     * @return
     */
    public static InputStream getFaceInputStream(FacePictureRequest param) {
        log.error("【海康人脸访问图片流】================开始===="+JSONObject.toJSONString(param));
        try {
            InputStream res = HKTools.getFaceInputStream(JSONObject.toJSONString(param));
            log.error("【海康人脸访问图片流】================成功====\n");
            return  res;
        }catch (Exception e){
            log.error("【海康人脸访问图片流】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *获取车库列表数据(全量)
     * @return
     */
    public  BaseResponse<List<ParkListResponse>>   parkList(ParkListRequest param){
        log.error("【海获取车库列表数据】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.parkList(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<List<ParkListResponse>>>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康获取车库列表数据】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康获取车库列表数据】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *获取车库列表数据(全量)
     * @return
     */
    public  BaseResponse<List<EntranceListResponse>>   entranceList(EntranceListRequest param){
        log.error("【海获取车库列表数据】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.entranceList(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<List<EntranceListResponse>>>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康获取车库列表数据】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康获取车库列表数据】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *固定车辆充值(包期)
     * @return
     */
    public  BaseResponse   carChargeAddtion(CarChargeAddRequest param){
        log.error("【海康固定车辆充值】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.carChargeAddtion(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康固定车辆充值】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康固定车辆充值】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *固定车辆取消包期
     * @return
     */
    public  BaseResponse   carChargeDeletion(CarChargeDelRequest param){
        log.error("【海康固定车辆取消包期】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康固定车辆取消包期】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康固定车辆取消包期】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *车位预约
     * @return
     */
    public  BaseResponse<ParkReservationAddResponse>   parkReservationAddition(ParkReservationAddRequest param){
        log.error("【海康车位预约】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.parkAddition(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<ParkReservationAddResponse>>(){};
            BaseResponse<ParkReservationAddResponse>  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康车位预约】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康车位预约】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *车位取消预约
     * @return
     */
    public  BaseResponse   parkReservationDeletion(ParkReservationDelRequest param){
        log.error("【海康车位取消预约】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康车位取消预约】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康车位取消预约】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *访客预约
     * @return
     */
    public  BaseResponse<VisitAppointmentResponse>   visitAppiontment(VisitAppointmentRequest param){
        log.error("【海康访客预约】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.visitAppiontment(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<VisitAppointmentResponse>>(){};
            BaseResponse<VisitAppointmentResponse>  result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康访客预约】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康访客预约】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *访客免登记预约
     * @return
     */
    public  BaseResponse<VisitAppointmentVistorResponse>   visitAppiontmentMDJ(VisitAppointmentMDJRequest param){
        log.error("【海康访客免登记预约】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.visitAppiontmentMDJ(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<VisitAppointmentVistorResponse> >(){};
            BaseResponse<VisitAppointmentVistorResponse>   result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康访客免登记预约】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康访客免登记预约】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *访客权限组列表查询(分页)
     * @return
     */
    public  BaseResponse<PrivilegeGroupResponse>   privilegeGroup(PrivilegeGroupRequest param){
        log.error("【海康访客权限组列表查询】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.privilegeGroup(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<PrivilegeGroupResponse> >(){};
            BaseResponse<PrivilegeGroupResponse>   result = JSONObject.parseObject(res, typeReference.getType());
            log.error("【海康访客权限组列表查询】================成功====\n"+res);
            return  result;
        }catch (Exception e){
            log.error("【海康访客权限组列表查询】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
}
server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/base/HKConstants.java
ÎļþÒÑɾ³ý
server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/base/HKTools.java
ÎļþÒÑɾ³ý
server/dmvisit_service/src/main/java/com/doumee/core/utils/haikang/service/HKService.java
ÎļþÒÑɾ³ý
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
@@ -72,16 +72,8 @@
    @ExcelColumn(name="事件类型")
    private String eventType;
    @ApiModelProperty(value = "事件状态,0-瞬时
            1-开始
            2-停止
            4-事件联动结果更新
            5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时
            1-开始
            2-停止
            4-事件联动结果更新
            5-事件图片异步上传")
    @ApiModelProperty(value = "事件状态,0-瞬时 1-开始 2-停止4-事件联动结果更新5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时 1-开始 2-停止 4-事件联动结果更新 5-事件图片异步上传")
    private Integer status;
    @ApiModelProperty(value = "脉冲超时时间")
@@ -108,18 +100,8 @@
    @ExcelColumn(name="卡号")
    private String cardNo;
    @ApiModelProperty(value = "事件号,1:压线事件
            2:上传图片
            3:入场
            4:出场
            5:车牌矫正
            6:图片重传", example = "1")
    @ExcelColumn(name="事件号,1:压线事件
            2:上传图片
            3:入场
            4:出场
            5:车牌矫正
            6:图片重传")
    @ApiModelProperty(value = "事件号,1:压线事件 2:上传图片 3:入场 4:出场 5:车牌矫正 6:图片重传", example = "1")
    @ExcelColumn(name="事件号,1:压线事件 2:上传图片 3:入场 4:出场 5:车牌矫正 6:图片重传")
    private Integer eventCmd;
    @ApiModelProperty(value = "事件编号")
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
@@ -67,26 +67,16 @@
    @ExcelColumn(name="事件发生时间(设备时间")
    private String happenTime;
    @ApiModelProperty(value = "门禁点唯一接入编码
            ")
    @ExcelColumn(name="门禁点唯一接入编码
            ")
    @ApiModelProperty(value = "门禁点唯一接入编码 ")
    @ExcelColumn(name="门禁点唯一接入编码 ")
    private String srcIndex;
    @ApiModelProperty(value = "门禁名称")
    @ExcelColumn(name="门禁名称")
    private String srcName;
    @ApiModelProperty(value = "事件状态,0-瞬时
            1-开始
            2-停止
            4-事件联动结果更新
            5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时
            1-开始
            2-停止
            4-事件联动结果更新
            5-事件图片异步上传")
    @ApiModelProperty(value = "事件状态,0-瞬时 1-开始 2-停止 4-事件联动结果更新 5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时 1-开始 2-停止 4-事件联动结果更新 5-事件图片异步上传")
    private Integer status;
    @ApiModelProperty(value = "脉冲超时时间,单位:秒,瞬时事件此字段填0", example = "1")
@@ -141,16 +131,8 @@
    @ExcelColumn(name="人员编号")
    private String extEventPersonNo;
    @ApiModelProperty(value = "读卡器类别0-无效
            1-IC读卡器
            2-身份证读卡器
            3-二维码读卡器
            4-指纹头", example = "1")
    @ExcelColumn(name="读卡器类别0-无效
            1-IC读卡器
            2-身份证读卡器
            3-二维码读卡器
            4-指纹头")
    @ApiModelProperty(value = "读卡器类别0-无效 1-IC读卡器 2-身份证读卡器 3-二维码读卡器 4-指纹头", example = "1")
    @ExcelColumn(name="读卡器类别0-无效 1-IC读卡器 2-身份证读卡器 3-二维码读卡器 4-指纹头")
    private Integer extEventReaderKind;
    @ApiModelProperty(value = "读卡器id", example = "1")
@@ -165,14 +147,8 @@
    @ExcelColumn(name="图片存储服务器唯一标识")
    private String svrIndexCode;
    @ApiModelProperty(value = "报告上传通道,1-布防int上传
            2-中心组1上传
            3-中心组2上传
            0-无效", example = "1")
    @ExcelColumn(name="报告上传通道,1-布防int上传
            2-中心组1上传
            3-中心组2上传
            0-无效")
    @ApiModelProperty(value = "报告上传通道,1-布防int上传 2-中心组1上传 3-中心组2上传 0-无效", example = "1")
    @ExcelColumn(name="报告上传通道,1-布防int上传 2-中心组1上传 3-中心组2上传 0-无效")
    private Integer extEventReportChannel;
    @ApiModelProperty(value = "群组编号", example = "1")
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -58,7 +58,18 @@
    @ApiModelProperty(value = "人脸照片")
    @ExcelColumn(name="人脸照片")
    private String faceImg;
    @ApiModelProperty(value = "人脸存储服务器标识(海康)")
    @ExcelColumn(name="人脸存储服务器标识(海康)")
    private String faceServeIndexCode;
    @ApiModelProperty(value = "人脸编码(海康)")
    @ExcelColumn(name="人脸编码(海康)")
    private String faceId;
    @ApiModelProperty(value = "人脸同步状态(海康) 0未同步 1已同步 2同步失败")
    @ExcelColumn(name="人脸同步状态(海康) 0未同步 1已同步  2同步失败")
    private Integer faceStatus;
    @ApiModelProperty(value = "人脸同步信息(海康)")
    @ExcelColumn(name="人脸同步信息(海康)")
    private String faceInfo;
    @ApiModelProperty(value = "健康码")
    @ExcelColumn(name="健康码")
    private String imgurl;
@@ -125,7 +136,7 @@
    @ExcelColumn(name="海康标识")
    private Integer hkId;
    @ApiModelProperty(value = "海康同步状态 0未同步 1已同步 2同步失败", example = "1")
    @ApiModelProperty(value = "海康同步状态 0未同步 1已同步 2同步失败 ", example = "1")
    @ExcelColumn(name="海康同步状态 0未同步 1已同步 2同步失败")
    private Integer hkStatus;
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -71,16 +71,8 @@
    @ExcelColumn(name="事件类型")
    private String eventType;
    @ApiModelProperty(value = "事件状态,0-瞬时
            1-开始
            2-停止
            4-事件联动结果更新
            5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时
            1-开始
            2-停止
            4-事件联动结果更新
            5-事件图片异步上传")
    @ApiModelProperty(value = "事件状态,0-瞬时 1-开始 2-停止 4-事件联动结果更新 5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时 1-开始 2-停止 4-事件联动结果更新 5-事件图片异步上传")
    private Integer status;
    @ApiModelProperty(value = "脉冲超时时间")
@@ -95,10 +87,8 @@
    @ExcelColumn(name="事件发生的事件源父设备")
    private String srcParentIndex;
    @ApiModelProperty(value = "访客Is,,对应访客来访记录中的orderId字段
            ")
    @ExcelColumn(name="访客Is,,对应访客来访记录中的orderId字段
            ")
    @ApiModelProperty(value = "访客Is,,对应访客来访记录中的orderId字段 ")
    @ExcelColumn(name="访客Is,,对应访客来访记录中的orderId字段 ")
    private String visitorId;
    @ApiModelProperty(value = "姓名")