jiangping
2024-08-20 165b038153aa55f465a225d421616d32e472c889
最新版本
已添加11个文件
已修改13个文件
671 ■■■■■ 文件已修改
admin/src/components/business/OperaPlatformWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/README.md 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/IccmAppointmentListRequest.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDataRequest.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDetailParamRequest.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInfoRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInvoiceParamRequest.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmParamRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmRequest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmTargetParamRequest.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmValuesParamRequest.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/IccmAppointmentListResponse.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/IccmAppointmentVisitorResponse.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaPlatformWindow.vue
@@ -54,7 +54,7 @@
        <el-input type="number"  v-model="form.workTimeoutAlarmTime" placeholder="请输入作业超时报警时间(分钟)" v-trim/>
      </el-form-item>
      <el-form-item label="停留超时报警时间(分钟):" prop="stayTmeoutAlarmTime">
        <el-input type="number"  v-model="form.stayTmeoutAlarmTime" placeholder="请输入请输入停留超时报警时间(分钟)" v-trim/>
        <el-input type="number"  v-model="form.stayTmeoutAlarmTime" placeholder="请输入停留超时报警时间(分钟)" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -110,6 +110,9 @@
    open (title, target) {
      this.title = title
      this.visible = true
      this.loadGroupList()
      this.loadLedList()
      this.loadBroadcastList()
      // æ–°å»º
      if (target == null) {
        this.$nextTick(() => {
@@ -126,9 +129,6 @@
        }
        this.form.workingNum = this.form.workingNum || 1
      })
      this.loadGroupList()
      this.loadLedList()
      this.loadBroadcastList()
    },
    loadGroupList () {
      allList({})
server/README.md
@@ -2,5 +2,12 @@
官网:http://eva.adjustrd.com/
技术支持QQ群:877957236
1、安装nacos服务
2、按照mysql5.x
3、jdk1.8安装
4、redis安装
5、ftp安装
nohup java -Xms512m -Xmx512m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=10018 -jar /usr/local/jars/dmvisit/openapi.jar >/usr/local/jars/dmvisit/web.log 2>/usr/local/jars/dmvisit/err.log &
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -160,7 +160,16 @@
        return sb.toString();
    }
    public interface VisitIccmStatus{
        //访客状态(0:未签到,1:已签到,2:已签退,3:滞留,4:未访问,5:自动签离,6:未签退)
        int waitSign = 0;
        int signin= 1;
        int signout = 2;
        int noleave =3;
        int novisit =4;
        int autoOut =5;
        int noSignout =6;
    }
    public interface DATAPERMISSION_TYPE{
        public static final  int all = 0;
        public static final  int departAndChild = 1;
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
@@ -37,7 +37,7 @@
    @ApiOperation("开启定时查询访客预约状态")
    @GetMapping("/getOutTimeVisitRecord")
    public ApiResponse getOutTimeVisitRecord() {
        hkSyncVisitService.getOutTimeVisitRecord();
        hkSyncVisitService.getOutTimeVisitRecordIccm();
        return ApiResponse.success("开启定时查询访客预约状态成功");
    }
    @ApiOperation("开启定时今日的访客预约数据")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -6,6 +6,7 @@
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
@@ -111,6 +112,12 @@
        String result = hkSyncPushService.dealVisitEvent(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】访客ICCM事件订阅推送对接处理接口")
    @PostMapping("/push/visitIccm")
    public ApiResponse pushVisitIccm(@RequestBody EventVisitIccmRequest param, HttpServletResponse response) {
        String result = hkSyncPushService.dealVisitEventIccm(param,response);
        return ApiResponse.success(result);
    }
//    @PreventRepeat
    @ApiOperation("【海康】停车场事件订阅推送对接处理接口")
    @PostMapping("/push/parks")
server/visits/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
@@ -106,6 +106,13 @@
        HKService.cancelEventSub(param);//先取消
        HKService.eventSub(param);//门禁事件
        param.setEventDest(path+"/visitIccm");
        param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_ICCM_IN.getKey()
                ,HKConstants.EventTypes.VISIT_SIGN_ICCM_PASS.getKey()
                ,HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey()});
        HKService.cancelEventSub(param);//先取消
        HKService.eventSub(param);//访客事件
        param.setEventDest(path+"/platform/workstatus");
        param.setEventTypes(new Integer[]{HKConstants.EventTypes.PLATFORM_WORKSTATUS.getKey()});
        HKService.cancelEventSub(param);//先取消
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -104,7 +104,7 @@
        String iccmAppointmentMDJ= "/api/iccm/v1/appointment/free/registration";//iccm访客预约免登记
        String privilegIccmeGroup= "/api/iccm/v1/privilege/groups";//查询访客权限组
        String iccmAppointmentInfo= "/api/iccm/v1/appointment/registration";//iccm查询已预约登记
        String iccmAppointmentRecords= "/api/iccm/v2/appointment/records";//iccm查询已预约登记
    }
    /**
@@ -241,10 +241,15 @@
        PARK_PASS_OUT(771760134, "出场放行事件"  ),
        VISIT_SIGN_IN(1392513025, "访客登记"  ),
        VISIT_SIGN_OUT(1392513026, "访客签离"  ),
        VISIT_SIGN_ICCM_IN(541200006, "访客登记"  ),
        VISIT_SIGN_ICCM_OUT(541200007, "访客签离"  ),
        VISIT_SIGN_ICCM_PASS(541200060, "访客通行"  ),
        DOOR_FACE_AUTH_FAIL(197163, "人脸认证失败"  ),
        DOOR_FACE_AUTH_SUCCESS(196893, "人脸认证通过"  ),
        PLATFORM_WORKSTATUS(483329, "月台工作状态事件"  ),
        PLATFORM_CAR_STATUS(487425, "月台车辆状态事件"  )
        ;
        // æˆå‘˜å˜é‡
        private String name;
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -527,6 +527,15 @@
    public static String appointmentRecords(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.appointmentRecords,body);
    }
    /**
     *    èŽ·å–è®¿å®¢é¢„çº¦è®°å½•åˆ—è¡¨ iccm
     * @param body
     * @return
     */
    public static String iccmAppointmentRecords(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointmentRecords,body);
    }
    /**
     *    èŽ·å–å…¨é‡ç»„ç»‡åˆ—è¡¨
     * @param body
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/IccmAppointmentListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
import java.util.List;
@Data
public class IccmAppointmentListRequest {
    private String orderId;//    String    false    è®¿å®¢å•号
private int pageSize    ;//Number    true    åˆ†é¡µå¤§å°
private String phoneNo;//    String    false    è®¿å®¢è”系电话,仅支持1-20位纯数字
private String QRCode    ;//String    false    äºŒç»´ç å†…容
private String visitorName;//    String    false    è¢«è®¿äººå§“名
private int pageNo;//    Number    true    é¡µç 
private String receptionistId;//    String    false    è¢«è®¿äººid
private List<Integer> visitorStatusList;//    Array    false    è®¿å®¢çŠ¶æ€é›†åˆ(0:待审批,1:待访问,2:已驳回,3:已作废,4:已取消,5:已完成)
            private String visitStartTimeBegin;//    String    false    è®¡åˆ’来访时间起始时间
private String visitStartTimeEnd;//    String    false    è®¡åˆ’来访时间结束时间
private String visitEndTimeBegin    ;//String    false    è®¡åˆ’离开时间起始时间
private String visitEndTimeEnd;//    String    false    è®¡åˆ’离开时间结束时间
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDataRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
import java.util.List;
@Data
public class EventVisitIccmDataRequest {
        /**
         * é¢„约记录信息
         */
        private EventVisitIccmInvoiceParamRequest visitorInvoices;
        /**
         * è¢«è®¿äººä¿¡æ¯
         */
        private EventVisitIccmTargetParamRequest targetPerson;
        /**
         * è¢«è®¿äººä¿¡æ¯
         */
        private EventVisitIccmValuesParamRequest paramValues;
        /**
         * æ‹œè®¿äººä¿¡æ¯
         */
        private List<EventVisitIccmDetailParamRequest> visitorInformationList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDetailParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
@Data
public class EventVisitIccmDetailParamRequest {
        private String     visitorId;// eda8994f399544aaaee6eca64ed79827, #访客id
        private String      visitorName;// å°åˆ˜, #访客名称
        private Integer      sex;// 1,  #访客性别
        private String      phone;// 18229602833, #访客手机号
        private String      unit;// , #访客单位
        private Integer      certType;// 111,  #访客证件类型
        private String      certNo;// , #访客证件号码
        private String      certPicUrl;// , #访客证件照base64
        private String      faceUrl;// , #人脸base64
        private String      plateNo;// , #访客个人信息里的车牌
        private String      createTime;// 2023-02-16T20;//19;//46.382+08;//00,
        private String     updateTime;// 2023-02-16T20;//19;//46.382+08;//00,
        private String      visitNum;// 0,
        private String      isBlocked;// 0, #是否拉黑
        private String      tempCardNo;// 123456, #绑定的临时卡号
        private String      companionPerson;// 0, #是否为通行人:0不是1是
        private String      cardNo;// 1676549986273, #访客卡号
        private String      appointmentCode;// 5998, #访客码
        private String      facePic;// /pic?ad00=3001led-do671a*o0d1=4686*2l4767184156*8tp===119***sb9=defce2d7736fc--*49e3=pi17fo=0-510090, #访客人脸图片
        private String      faceDeviceId;// 894c1bfa-e8a7-419a-84d1-1a1fb5f3896a #图片设备id
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
@Data
public class EventVisitIccmInfoRequest {
    private String  eventId;//    String    äº‹ä»¶å”¯ä¸€æ ‡è¯†    æ˜¯    64
    private String  srcIndex;//    String    äº‹ä»¶æºç¼–号,物理设备是资源编号    æ˜¯    64
    private String  srcType;//    String    äº‹ä»¶æºç±»åž‹    æ˜¯    16
    private Integer  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  srcName;//    String    äº‹ä»¶æºåç§°    å¦    64
    private Integer   status    ;//Number    äº‹ä»¶çŠ¶æ€    æ˜¯        0-瞬时1-开始2-停止3-事件脉冲4-事件联动结果更新5-异步图片上传
    private Integer  timeout    ;//Number    è„‰å†²è¶…æ—¶æ—¶é—´    æ˜¯        å•位:秒
    private String  happenTime    ;//String    äº‹ä»¶å‘生时间(设备时间)    æ˜¯    64
    private String   srcParentIndex    ;//String    äº‹ä»¶å‘生的事件源父设备编号    å¦    64
    private EventVisitIccmDataRequest data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInvoiceParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
@Data
public class EventVisitIccmInvoiceParamRequest {
        private String   invoicesId;// 5bc15cabf24141c6ab3da357e29e5d53,  #访客单id
        private String  invoicesNo;// FK20230220090002, #访客单号
        private String  visitorId;// eda8994f399544aaaee6eca64ed79827,  #访客id
        private String  visitorTypeId;// , #访客类型id
        private String  deptId;// fe3d4470fa824449b8dcdf34e833890e, #访问部门id
        private String  campusId;// 39ce5586087c4d78873ff187396acf5b, #园区id
        private String  visitReason;// 7744d9691f1e45b7b4a06394280e45a3,  #访问事由id
        private String  visitReasonRemark;// ,  #访问事由备注
        private String  visitTargetId;// 2cb0bd1b312941569c43f64d781b7cf7,  #被访人id
        private String  companionIds;// ,  #同行人id,逗号分割
        private String  type;// 0,  #类型:0,预约;1,邀约
        private String  appointmentType;// 0,  #预约类型:0:普通预约;1:快速预约;2;//免登记预约; 3;// ç¬¬ä¸‰æ–¹é¢„约 ; 4;//访客机预约; 5;// ä¼šç®¡è®¿å®¢é¢„约; 6;// å¿«é€Ÿé‚€çº¦; 7;//普通邀约; 8;//级联邀约; 9;//级联快速预约; 10;//级联预约
        private String  workflowInstanceId;// f1b53b54414641d58cd7cd332105d723, #流程id
        private String  approveRemark;// , #流程审批备注
        private String  ifInfoAbnormal;// 0,
        private String  beginTime;// 2023-02-20T10;//00;//00.000+08;//00,  #访问开始时间
        private String  finishTime;// 2023-02-20T23;//30;//00.000+08;//00, #访问结束时间
        private String  invoicesStatus;// 3, #访客单状态(0;//待审批,1;//待访问,2;//已驳回,3;//已作废,4;//已取消,5;//已完成)
        private String  workflowInitiatorId;// eda8994f399544aaaee6eca64ed79827, #流程发起人id
        private String  workflowInitiatorType;// 0, #流程发起人类型(0;//访客,1;//员工)
        private String  operator;// eda8994f399544aaaee6eca64ed79827, #操作人
        private String  operatorType;// 0, #操作人类型(0;//访客,1;//员工)
        private String  extendJson;// , #扩展字段
        private String  authIssueStatus;// 0, #权限下发状态(0;//未下发,1;//下发成功,2;//下发失败,3;//权限清除,4;//权限回收)
        private String  createTime;// 2023-02-20T09;//43;//39.479+08;//00, #创建时间
        private String  updateTime;// 2023-02-20T19;//42;//32.640+08;//00,
        private String          campusName;// å•独停车场测试, #园区名称
        private String  deptName;// é»˜è®¤éƒ¨é—¨, #部门名称
        private String  visitorTypeName;// æ™®é€šè®¿å®¢,  #访客类型
        private String  sceneNames;// æµ‹è¯•7,  #权限场景名称,多个逗号分隔
        private String  visitReasonName;// å•†åŠ¡æ´½è°ˆ, #访问事由名称
        private String regionId;//eda8994f399544aaaee6eca64ed79827,#区域id,2.2支持,2.3废弃该字段
        private String regionName;//滨江,#区域名称,2.2支持,2.3废弃该字段
        private String campusRegionIds;//pda8994f399544aaaee6eca64ed79828,#区域id,2.3支持
        private String campusRegionNames;//海康三期, #区域名称,2.3支持
        private String isRepast;//1 #访客就餐,0;//否,1;//是
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
import java.util.List;
@Data
public class EventVisitIccmParamRequest {
    private String   sendTime;//    P    String    äº‹ä»¶ä»ŽæŽ¥æ”¶è€…(程序处理后)发出的时间    æ˜¯    32    äº‹ä»¶å‘送时间
    private String    ability;//    P    String    äº‹ä»¶ç±»åˆ«    æ˜¯    64    æ ‡è¯†åœè½¦åœºäº‹ä»¶
    private String[] uids;//    String[]    ç”¨æˆ·id    å¦    ä¸é™
    private String[] clients    ;//String[]    ç»„件标识    å¦    ä¸é™
    private List<EventVisitIccmInfoRequest> events;//    P    Events[]    äº‹ä»¶ä¿¡æ¯    æ˜¯    ä¸é™
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
@Data
public class EventVisitIccmRequest {
//    private String  parkIndexCodes    ;//    string    False    åœè½¦åº“唯一标识集合  å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个
    private String   method    ;//    String    æ–¹æ³•名,用于标识报文用途    æ˜¯    16    äº‹ä»¶å›ºå®šOnEventNotify
    private EventVisitIccmParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmTargetParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
@Data
public class EventVisitIccmTargetParamRequest {
        private String   personId;// 2cb0bd1b312941569c43f64d781b7cf7, #被访人id
        private String  personNumber;// 10001, #被访人工号
        private String  name;// Lhk管理员, #被访人编号
        private String  sex;// 1, #被访人性别
        private String  jobNo;// 10001, #被访人工号
        private String  pinyin;// lhkguanliyuan, #被访人拼音
        private String  mobile;// 17700001111, #被访人手机号
        private String  orgId;// root000000, #被访人组织id
        private String  certType;// 111, #被访人证件类型
        private String  certificateNo;// 330282202302160001, #被访人证件号码
        private String  orgPathName;// é»˜è®¤ç»„织, #被访人组织
        private String  userName;// Lhk管理员, #被访人用户名
        private String  createTime;// 2023-02-16T10;//10;//51.683+08;//00,
        private String  updateTime;// 2023-02-20T19;//40;//54.138+08;//00
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmValuesParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.doumee.core.haikang.model.param.request.event.visit;
import lombok.Data;
@Data
public class EventVisitIccmValuesParamRequest {
        private String      type;// 1, #事件源类型:1访客机2保安人工3门禁4停车场出入口5api6被访人
        private String   eventType;// 541200007, #541200006[签到消息通知],541200007[签离消息通知],541200009[访客滞留],541200060[通行事件]
        private String   sourceName;// 1号门禁, #门禁名称
        private String   eventId;// demoData, #事件id
        private String     eventTypeName;// demoData, #事件类型名称
        private String                     happenTime;// 23/6/2 0002 11;//36, #发生时间
        private String   srcParentIndex;// demoData, #父类资源 indexcode
        private String   srcIndex;// demoData, #子类indexcode
        private String   srcName;// demoData, #设备名称
        private String   srcType;// demoData, #资源类型
        private String   extEventCardNo;// demoData, #卡号
        private String   extEventInOut;// demoData, #门禁点唯一接入编码
        private String   extEventPictureURL;// demoData, #图片的url
        private String    svrIndexCode;// demoData, #图片服务器唯一编码
        private String   extEventReaderKind;// demoData,  #读卡器类别
        private String   extEventReaderID;// demoData, #读卡器id
        private String   userType;// demoData, #人员类型:0未知,1普通,2来宾,3黑名单,4管理员
        private String   visitorNames;// demoData, #访客姓名,多个逗号拼接
        private String   phones;// demoData, #手机号,多个逗号拼接
        private String   certificateNos;// demoData, #身份证,多个逗号拼接
        private String   certTypes;// 333, #证件类型,多个逗号拼接
        private String   invoicesIds;// 5a9e731d6b9043feb665282786dd8914, #访客单id,多个逗号拼接
        private String   defineEventType;// 9, #事件类型
        private String   plateNos;// demoData, #车牌号码,多个逗号拼接
        private String   parkName;// demoData,  #停车库名称
        private String   parkIndex;// demoData, #停车库编号
        private String   gateName;// demoData,#出入口名称
        private String   gateIndex;// demoData,  #出入口编号
        private String   inOrOut;// 1,#进出类型:1进入2出去
        private String   accessType;// 1,  #事件类型:1门禁事件2车辆事件
        private String   regionName;// demoData#区域名称,
        private String    typeId;//1 #前端跳转url的typeId
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/IccmAppointmentListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class IccmAppointmentListResponse {
   private String campusId    ;//String    false    å›­åŒºid
private String campusName    ;//String    false    å›­åŒºåç§°
private String deptId    ;//String    false    éƒ¨é—¨id
private String deptName    ;//String    false    éƒ¨é—¨åç§°
private String visitorTypeId;//    String    false    è®¿å®¢ç±»åž‹id
private String visitorTypeName;//    String    false    è®¿å®¢ç±»åž‹
private String appointRecordId;//    String    false    è®¿å®¢é¢„约记录id
private String orderId;//    String    false    è®¿å®¢å•号
private String visitPurpose    ;//String    false    æ¥è®¿äº‹ç”±id
private String visitPurposeName;//    String    false    æ¥è®¿äº‹ç”±
private String visitEndTime;//    String    false    è®¿é—®ç»“束时间
private String receptionistId    ;//String    false    è¢«è®¿äººid
private String receptionistName;//    String    false    è¢«è®¿äººå§“名
    private List<AppointmentResInfoResponse> designatedResources;//    object    False    æƒé™ä¸‹å‘指定的资源点集合
    private String[] privilegeGroupNames;//    string[]    False    æƒé™ç»„名称集合
    private String  visitStartTime;//    String    false    è®¿é—®å¼€å§‹æ—¶é—´
    private String oneOrPeople    ;//String    false    é€šè¡Œç ç­–ç•¥ 0:一人一码 1:多人一码
private String extensions    ;//String    false    æ‰©å±•字段
    private List<IccmAppointmentVisitorResponse> visitorList;//Array    false    è®¿å®¢åˆ—表
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/IccmAppointmentVisitorResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class IccmAppointmentVisitorResponse {
private String companion        ;//Boolean    false    æ˜¯å¦åŒè¡Œäºº
private String visitorId        ;//String    false    è®¿å®¢id
private String phoneNo        ;//String    false    è®¿å®¢æ‰‹æœºå·
private String visitorName        ;//String    false    è®¿å®¢å§“名
private Integer gender    ;//    Number    false    æ€§åˆ«(1:男,2:女)
private String svrIndexCode        ;//String    false    å›¾ç‰‡å­˜å‚¨æœåŠ¡çš„å”¯ä¸€æ ‡è¯†
private String picUri    ;//    String    false    è®¿å®¢å¤´åƒ,图片的相对URL
private String identityUri        ;//String    false    è¯ä»¶ç…§,图片的相对URL
private String identitySvrCode    ;//    String    false    è¯ä»¶ç…§å¯¹åº”图片服务器serviceNodes
private String plateNo    ;//    String    false    è®¿å®¢è½¦ç‰Œå·
private String certificateNo        ;//String    false    è¯ä»¶å·
private String visitorWorkUnit        ;//String    false    æ¥è®¿å•位
private Integer visitorStatus        ;//Number    false    è®¿å®¢çŠ¶æ€(0:未签到,1:已签到,2:已签退,3:滞留,4:未访问,5:自动签离,6:未签退)
private Integer certificateType        ;//Number    false    è¯ä»¶ç±»åž‹
private String isCompanion        ;//Boolean    false    æ˜¯å¦åŒè¡Œäºº
private String appointmentCode        ;//String    false    è®¿å®¢ç 
private String QRCode    ;//    String    false    åŠ¨æ€äºŒç»´ç å†…å®¹
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -860,6 +860,24 @@
        return  null;
    }
    /**
     *查询访客预约记录(分页)
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>>   iccmAppointmentRecords(IccmAppointmentListRequest param){
        log.info("【海康访客预约记录查询】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.iccmAppointmentRecords(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference<BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>>>(){};
            BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康访客预约记录查询");
            return  result;
        }catch (Exception e){
            log.error("【海康访客预约记录查询】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *查询访客来访记录(已登记)(分页)
     * @return
     */
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -5,6 +5,7 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
import com.doumee.dao.business.model.Device;
@@ -59,6 +60,7 @@
    void cancelEventSub();
    void syncOrgData();
    void getOutTimeVisitRecordIccm();
    void syncUserData();
    void syncVistAppointData(Date date);
@@ -94,4 +96,6 @@
    String syncHkLed(Device param);
    String syncHkBroadcast(Device param);
    String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -9,6 +9,7 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
import com.doumee.core.haikang.model.param.respose.TaskAdditionResponse;
@@ -89,7 +90,10 @@
        return null;
    }
    @Override
    public String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
        return  null;
@@ -144,6 +148,9 @@
    public void getOutTimeVisitRecord(){
    }
    @Override
    public void getOutTimeVisitRecordIccm(){
    }
    @Override
    public  Integer syncEmpowerData(Integer startPage) {
        return  null;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -11,9 +11,7 @@
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitDataRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.request.event.visit.*;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
@@ -310,7 +308,175 @@
        return  null;
    }
    /**
     * æµ·åº·è®¿å®¢äº‹ä»¶æŽ¨é€
     * @param param
     * @param response
     * @return
     */
    @Override
    public String    dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
        log.info("【海康访客事件推送】==========开始=======:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventVisitIccmInfoRequest> events  = param.getParams().getEvents();
            List<VisitEvent> list = new ArrayList<>();
            List<Integer> delRetentionLis = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            for(EventVisitIccmInfoRequest request : events){
                if(request.getData() ==null || request.getData().getVisitorInvoices() ==null){
                    continue;
                }
                if(request.getData().getVisitorInformationList() == null || request.getData().getVisitorInformationList().size() ==0){
                    continue;
                }
                //海康访客记录编码
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,list);
            }
            if(list.size()>0){
                //插入门禁记录
                visitEventMapper.insert(list);
            }
            if(delRetentionLis.size()>0){
                //先删除原有的在场人员(普通访客)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.memberType.visitor)
                        .in(Retention::getMemberId,delRetentionLis));
            }
            if(retentionList.size()>0){
                //再插入最新的在厂人员
                retentionMapper.insert(retentionList);
            }
            log.error("【海康访客事件推送】========成功=======");
        }catch (Exception e){
            log.error("【海康访客事件推送】========失败=======:\n"+e.getMessage());
        }
        saveInterfaceLog(param,"/business/hksync/push/visitIccm",result,true);
        return  null;
    }
    /**
     *  æ ¹æ®è®¿å®¢æŽ¨é€è®¿å®¢è®°å½•编码,处理访客记录、在场人员等信息
     */
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,List<VisitEvent> list) {
        EventVisitIccmDataRequest model = request.getData();
        EventVisitIccmInvoiceParamRequest data =  request.getData().getVisitorInvoices();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getType,Visits::getMemberType);
        queryWrapper.eq(Visits::getHkId,model.getVisitorInvoices().getInvoicesId() );//访客单号
        queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
        queryWrapper.last("limit 1");
        Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
        if(visits !=null){
            //如果人员信息存在,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件)
            delRetentionLis.add(visits.getMemberId());
            if(dataSyncConfig.getOrgUserDataOrigin() == DataSyncConfig.origin.hk){
                //如果是伊利大屏项目,不做处理
                return;
            }
            Visits updateVistis = new Visits();
            updateVistis.setId(visits.getId());
            if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_IN.getKey()) {
                //如果是访客登记,录入人员的在场数据记录
                retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
                //来访时间
                updateVistis.setStatus(Constants.VisitStatus.signin);
                updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
                //更新最新来访时间
                Member member = new Member();
                member.setLastVisitDate(updateVistis.getInDate());
                member.setId(visits.getMemberId());
                memberMapper.updateById(member);
            }else  if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey())  {
                //如果是访客签离事件
                updateVistis.setStatus(Constants.VisitStatus.signout);
                updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
                updateVistis.setOutType(Constants.ZERO);
                updateVistis.setOutInfo("访客正常签离");
            }else{
                //如果是访客通行
            }
            updateVistis.setEditDate(new Date());
            //更新访客来访或者签离时间信息
            visitsMapper.updateById(updateVistis) ;
        }
    }
    private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
        Retention retention = new Retention();
        retention.setIsdeleted(Constants.ZERO);
        retention.setCreateDate(DateUtil.getISO8601DateByStr(happentTime));
        retention.setClasses(visits.getClasses());
        retention.setCode(visits.getCode());
        retention.setIdcardNo(visits.getIdcardNo());
        retention.setIdcardDecode(visits.getIdcardDecode());
        retention.setName(visits.getName());
        retention.setBirthday(visits.getBirthday());
        retention.setType(visits.getMemberType());
        retention.setCompanyId(visits.getCompanyId());
        retention.setCompanyName(visits.getCompanyName());
        retention.setEventCode(srcType);
        retention.setEventDate(retention.getCreateDate());
        retention.setFaceImg(visits.getFaceImg());
        retention.setImgurl(visits.getImgurl());
        retention.setPhone(visits.getPhone());
        retention.setMemberId(visits.getMemberId());
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
    private VisitEvent getVisitEventModelByRequest(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
        if(request.getData().getTargetPerson() ==null){
            request.getData().setTargetPerson(new EventVisitIccmTargetParamRequest());
        }
        VisitEvent event = new VisitEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        event.setVisitorWorkUint(detail.getUnit());
        event.setVisitorId(detail.getVisitorId());
        event.setVisitorCode(detail.getAppointmentCode());
        event.setTimeout(request.getTimeout());
        event.setSvrIndexCode(request.getSrcIndex());
        event.setHappenTime(request.getHappenTime());
        event.setStatus(request.getStatus());
        event.setEndTime(request.getData().getVisitorInvoices().getFinishTime());
        event.setStartTime(request.getData().getVisitorInvoices().getBeginTime());
        event.setSrcType(request.getSrcType());
        event.setSrcParentIndex(request.getSrcParentIndex());
        event.setSrcName(request.getSrcName());
        event.setSrcIndex(request.getSrcIndex());
        event.setSex(detail.getSex());
        event.setPurpose(request.getData().getVisitorInvoices().getVisitReason());
        event.setPhone(detail.getPhone());
        event.setBeVisitedPersonId(request.getData().getVisitorInvoices().getVisitTargetId());
        event.setBeVisitedPersonName(request.getData().getTargetPerson().getName());
        event.setBeVisitedPersonOrg(request.getData().getTargetPerson().getOrgPathName());
        event.setBeVisitedPersonOrgId(request.getData().getTargetPerson().getName());
        event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
        event.setPersonName(detail.getVisitorName());
        event.setCarNo(detail.getPlateNo());
        event.setIdType(detail.getCertType());
        String idnum = detail.getCertNo();
        if(StringUtils.isNotBlank(idnum)){
            //身份证号存储密文
            event.setIdNo(DESUtil.encrypt(Constants.EDS_PWD,idnum));//身份证号加密
            //脱敏手机号显示n
            event.setIdcardDecode(Constants.getTuominStr(idnum));
        }
        event.setEventType(request.getEventType());
        event.setEventId(request.getEventId());
        return event;
    }
    /**
     *  æ ¹æ®è®¿å®¢æŽ¨é€è®¿å®¢è®°å½•编码,处理访客记录、在场人员等信息
     */
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -73,14 +73,6 @@
                AppointmentInfoResponse model =  getVisitRecord(c.getHkId());
                if(model == null){
                    continue;
                   /* Visits update = new Visits();
                    //已失效
                    update.setStatus(Constants.VisitStatus.invalid);
                    update.setEditDate(date);
                    update.setId(c.getId());
                    update.setRemark("预约已被清除");
                    visitsMapper.updateById(update);
                    continue;*/
                }
                /**
                 *      * 0:待审核(预约待审批)、
@@ -155,6 +147,92 @@
        }
    }
    /**
     * æŸ¥è¯¢ICCM访客数据状态
     */
    @Override
    public void getOutTimeVisitRecordIccm(){
        if(Constants.DEALING_HK_VISIT_EXPIRE){
            return   ;
        }
        Constants.DEALING_HK_VISIT_EXPIRE =true;
        try {
            //查询所有需要同步的数据
            List<Visits> list = getExpireVisitList();
            //按照父级申请分批处理每次申请数据
            if(list ==null || list.size()==0){
                return;
            }
            Date date = new Date();
            for(Visits c : list) {
                //发起海康预约接口(需要登记),根据预约返回接口封装申请记录更新字段
                IccmAppointmentListResponse data =  getVisitRecordIccm(c.getHkId());
                if(data == null || data.getVisitorList() ==null || data.getVisitorList().size()==0){
                    continue;
                }
                /**
                 * è®¿å®¢çŠ¶æ€(0:未签到,1:已签到,2:已签退,3:滞留,4:未访问,5:自动签离,6:未签退)
                 */
                IccmAppointmentVisitorResponse model = data.getVisitorList().get(0);
                if (model.getVisitorStatus()!=null && ",4,".contains( ","  +model.getVisitorStatus()+"," )){
                    //对相应状态下的数据进行【已失效】处理
                    Visits update = new Visits();
                    //已失效
                    update.setStatus(Constants.VisitStatus.invalid);
                    update.setEditDate(date);
                    update.setId(c.getId());
                    update.setInDate(DateUtil.getISO8601DateByStr2(data.getVisitStartTime()));
                    update.setOutDate(DateUtil.getISO8601DateByStr2(data.getVisitEndTime()));
                    update.setRemark("超时未登记");
                    visitsMapper.updateById(update);
                }
                if (model.getVisitorStatus()!=null && ",2,5,".contains( ","  +model.getVisitorStatus()+"," )){
                    // å¯¹ç›¸åº”状态下的数据进行【已签离】处理
                    if(!Constants.equalsInteger(c.getStatus(),Constants.VisitStatus.signout)){
                        Visits update = new Visits();
                        //已失效
                        update.setStatus(Constants.VisitStatus.signout);
                        update.setEditDate(date);
                        update.setId(c.getId());
                        update.setInDate(DateUtil.getISO8601DateByStr2(data.getVisitStartTime()));
                        update.setOutDate(DateUtil.getISO8601DateByStr2(data.getVisitEndTime()));
                        update.setRemark("已签离");
                        visitsMapper.updateById(update);
                        //先删除原有的在场人员(普通访客)
                        retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                                .eq(Retention::getType,Constants.memberType.visitor)
                                .eq(Retention::getMemberId,c.getMemberId()));
                    }
                }
                if (model.getVisitorStatus()!=null&& ",1,3,6,".contains( ","  +model.getVisitorStatus()+"," )){
                    //如果已登记
                    if(!Constants.equalsInteger(c.getStatus(),Constants.VisitStatus.signin)){
                        Visits update = new Visits();
                        //已失效
                        update.setStatus(Constants.VisitStatus.signin);
                        update.setEditDate(date);
                        update.setId(c.getId());
                        update.setInDate(DateUtil.getISO8601DateByStr2(data.getVisitStartTime()));
                        update.setOutDate(DateUtil.getISO8601DateByStr2(data.getVisitEndTime()));
                        update.setRemark("已签到");
                        visitsMapper.updateById(update);
                        //先删除原有的在场人员(普通访客)
                        retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                                .eq(Retention::getType,Constants.memberType.visitor)
                                .eq(Retention::getMemberId,c.getMemberId()));
                        //再插入最新的在厂人员
                        retentionMapper.insert(getRetentionModelByVisitRequest(c,update.getInDate()));
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            Constants.DEALING_HK_VISIT_EXPIRE =false;
        }
    }
    private Retention getRetentionModelByVisitRequest(Visits visits,Date date) {
        Retention retention = new Retention();
        retention.setIsdeleted(Constants.ZERO);
@@ -195,6 +273,24 @@
        }
        return response.getData().getList().get(0);
    }
    public IccmAppointmentListResponse getVisitRecordIccm(String orderId){
        //分页遍历循环查询所有门禁设备数据
        if(StringUtils.isBlank(orderId)){
            return  null;
        }
        IccmAppointmentListRequest param =  new IccmAppointmentListRequest();
        param.setPageNo(1);
        param.setPageSize(1);
        param.setOrderId(orderId);
        BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>> response = HKService.iccmAppointmentRecords(param);
        if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)  ){
           return null;
        }
        if(response.getData() == null || response.getData().getList() == null|| response.getData().getList().size() ==0){
           return  null;
        }
        return response.getData().getList().get(0);
    }
    @Override
    public  void syncVisitData(){
        if(Constants.DEALING_HK_VISIT){
@@ -206,13 +302,9 @@
        List<DeviceRole> roleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                .eq(DeviceRole::getType, Constants.ONE));
        //标记是否走免登记预约
//        String applyType =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode();
//        String applyLwType =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_LW_REQUIRED).getCode();
        try {
            //查询所有需要同步的数据
            List<Visits> list = getVisitList();
            //按照父级申请分批处理每次申请数据
//            List<Visits> list = getParentList(alllist);
            if(list ==null || list.size()==0){
                return;
            }