weizhengliang 1 год назад
Родитель
Сommit
64092e014d

+ 2 - 0
app/build.gradle

@@ -139,6 +139,8 @@ dependencies {
      */
      */
     compile 'com.alibaba:fastjson:1.2.23'
     compile 'com.alibaba:fastjson:1.2.23'
 
 
+    compile 'org.mongodb:bson:3.6.3'
+
 
 
     compile project(':resource')
     compile project(':resource')
 
 

+ 8 - 2
app/src/main/java/com/wdkl/ncs/entraceguard/activity/MainActivity.kt

@@ -73,6 +73,7 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
 
 
     private var gpioHelper: GpioHelper? = null
     private var gpioHelper: GpioHelper? = null
     private var interactionVO: InteractionVO? = null
     private var interactionVO: InteractionVO? = null
+    private var tid: String? = ""
 
 
     //呼叫倒计时
     //呼叫倒计时
     lateinit var countDownTimer: CountDownTimer
     lateinit var countDownTimer: CountDownTimer
@@ -168,7 +169,9 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
             videoRoomCallback!!.callSessionCallback = this
             videoRoomCallback!!.callSessionCallback = this
             janusClient!!.setJanusCallback(videoRoomCallback)
             janusClient!!.setJanusCallback(videoRoomCallback)
             janusClient!!.connect()
             janusClient!!.connect()
+
             initCountDownTimer()
             initCountDownTimer()
+            countDownTimer.start()
 
 
             TcpClient.getInstance().sendMsg(EntraceGuardUtil.startVisit(Constants.deviceId).toJson())
             TcpClient.getInstance().sendMsg(EntraceGuardUtil.startVisit(Constants.deviceId).toJson())
         }else{
         }else{
@@ -201,9 +204,9 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
                         TcpAction.EntraceGuardAction.ACCEPT -> { //接通视频
                         TcpAction.EntraceGuardAction.ACCEPT -> { //接通视频
                             //取消响应计时
                             //取消响应计时
                             responseCountDownTimer.cancel()
                             responseCountDownTimer.cancel()
+                            tid = tcpModel.tid
                             interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
                             interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
 
 
-                            countDownTimer.start()
                             RingPlayHelper.playRingTone(this, R.raw.alice, true)
                             RingPlayHelper.playRingTone(this, R.raw.alice, true)
                         }
                         }
 
 
@@ -362,7 +365,10 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
                 janusClient!!.destroyRoom(janusClient!!.currentHandleId, null)
                 janusClient!!.destroyRoom(janusClient!!.currentHandleId, null)
                 janusClient!!.disConnect()
                 janusClient!!.disConnect()
                 RingPlayHelper.stopRingTone()
                 RingPlayHelper.stopRingTone()
-                TcpClient.getInstance().sendMsg(EntraceGuardUtil.timeOut(interactionVO).toJson())
+
+                if (interactionVO != null) {
+                    TcpClient.getInstance().sendMsg(EntraceGuardUtil.timeOut(interactionVO, tid).toJson())
+                }
                 showTipView(R.drawable.no_reponse,R.string.call_no_response, false, 3000)
                 showTipView(R.drawable.no_reponse,R.string.call_no_response, false, 3000)
                 //exitApp(3000)
                 //exitApp(3000)
             }
             }

+ 21 - 0
app/src/main/java/com/wdkl/ncs/entraceguard/model/annotation/Column.java

@@ -0,0 +1,21 @@
+package com.wdkl.ncs.entraceguard.model.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 标识为数据库的字段
+ * @author Allen
+ */
+@Target(ElementType.FIELD) 
+@Retention(RetentionPolicy.RUNTIME) 
+public @interface Column {
+
+	String name() default "";
+
+	boolean allowNullUpdate() default  false;
+
+
+}

+ 17 - 0
app/src/main/java/com/wdkl/ncs/entraceguard/model/annotation/Id.java

@@ -0,0 +1,17 @@
+package com.wdkl.ncs.entraceguard.model.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 标识为此表的主键ID
+ * @author Allen
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Id {
+
+    String name() default "";
+}

+ 17 - 0
app/src/main/java/com/wdkl/ncs/entraceguard/model/annotation/NotDbField.java

@@ -0,0 +1,17 @@
+package com.wdkl.ncs.entraceguard.model.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 标识不是数据库读写的字段
+ * @author Allen
+ * 2010-1-22下午04:08:58
+ */
+@Retention(RetentionPolicy.RUNTIME) 
+@Target(ElementType.METHOD) 
+public @interface NotDbField {
+
+}

+ 17 - 0
app/src/main/java/com/wdkl/ncs/entraceguard/model/annotation/PrimaryKeyField.java

@@ -0,0 +1,17 @@
+package com.wdkl.ncs.entraceguard.model.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 标识不是数据库读写的字段
+ * @author Allen
+ * 2010-1-22下午04:08:58
+ */
+@Retention(RetentionPolicy.RUNTIME) 
+@Target(ElementType.METHOD) 
+public @interface PrimaryKeyField {
+
+}

+ 21 - 0
app/src/main/java/com/wdkl/ncs/entraceguard/model/annotation/Table.java

@@ -0,0 +1,21 @@
+package com.wdkl.ncs.entraceguard.model.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 标识为数据库的表名
+ * @author Allen
+ */
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME) 
+public @interface Table {
+
+	/**
+	 * 数据库的表名
+	 * @return
+	 */
+	String name();
+}

+ 642 - 46
app/src/main/java/com/wdkl/ncs/entraceguard/model/dos/InteractionDO.java

@@ -1,123 +1,395 @@
 package com.wdkl.ncs.entraceguard.model.dos;
 package com.wdkl.ncs.entraceguard.model.dos;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.annotation.JsonNaming;
+import com.google.common.base.Strings;
+import com.wdkl.ncs.entraceguard.model.annotation.Column;
+import com.wdkl.ncs.entraceguard.model.annotation.Id;
+import com.wdkl.ncs.entraceguard.model.annotation.PrimaryKeyField;
+import com.wdkl.ncs.entraceguard.model.annotation.Table;
+
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.ArrayList;
 
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 
 
+@Table(name = "ncs_interaction")
+@ApiModel
+@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
 public class InteractionDO implements Serializable {
 public class InteractionDO implements Serializable {
 
 
-
+    /**
+     * id
+     */
+    @Column(name = "id")
+    @ApiModelProperty(value = "id", required = false)
+    @Id(name = "id")
     private Integer id;
     private Integer id;
     /**
     /**
      * union_id,线下线上同步ID
      * union_id,线下线上同步ID
      */
      */
-
+    @Column(name = "union_id")
+    @ApiModelProperty(value = "union_id,线下线上同步ID", required = false)
     private String unionId;
     private String unionId;
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */
-
+    @Column(name = "create_date")
+    @ApiModelProperty(value = "创建时间", required = false)
     private Long createDate;
     private Long createDate;
     /**
     /**
      * 科室Id
      * 科室Id
      */
      */
-
+    @Column(name = "part_id")
+    @ApiModelProperty(value = "科室Id", required = false)
     private Integer partId;
     private Integer partId;
     /**
     /**
+     * 科室名称
+     */
+    @Column(name = "part_name")
+    @ApiModelProperty(value = "科室名称", required = false)
+    private String partName;
+    /**
      * 交互类型(1:语音通话,2:视频通话,3:卫生间紧急呼叫,4:语音留言,5:文本消息,6:按键事件)
      * 交互类型(1:语音通话,2:视频通话,3:卫生间紧急呼叫,4:语音留言,5:文本消息,6:按键事件)
      */
      */
-
+    @Column(name = "action_type")
+    @ApiModelProperty(value = "交互类型(1:语音通话,2:视频通话,3:卫生间紧急呼叫,4:语音留言,5:文本消息,6:按键事件)", required = false)
     private String actionType;
     private String actionType;
     /**
     /**
      * SUCCESS、FAILED
      * SUCCESS、FAILED
      */
      */
-
+    @Column(name = "action_result")
+    @ApiModelProperty(value = "0失败,1成功", required = false)
     private Integer actionResult;
     private Integer actionResult;
+
+
     /**
     /**
      * 交互发起设备Id
      * 交互发起设备Id
      */
      */
-
+    @Column(name = "from_device_id")
+    @ApiModelProperty(value = "交互发起设备Id", required = false)
     private Integer fromDeviceId;
     private Integer fromDeviceId;
     /**
     /**
-     * 交互对象设备Id
+     * null
      */
      */
+    @Column(name = "from_eth_mac")
+    @ApiModelProperty(value = "发起端设备的有线以太网卡MAC地址", required = false)
+    private String fromEthMac;
 
 
-    private Integer toDeviceId;
+    @Column(name = "from_eth_ip")
+    @ApiModelProperty(value = "发起端设备的有线以太网卡分配的IP地址", required = false)
+    private String fromEthIp;
     /**
     /**
-     * 发起设备所在空间结构
+     * null
+     */
+    @Column(name = "from_sip_id")
+    @ApiModelProperty(value = "发起端设备的SIP账号", required = false)
+    private String fromSipId;
+    /**
+     * null
      */
      */
+    @Column(name = "from_device_type")
+    @ApiModelProperty(value = "发起端设备的设备类型", required = false)
+    private Integer fromDeviceType;
 
 
+    @Column(name = "from_device_name")
+    @ApiModelProperty(value = "发起端设备的名称", required = false)
+    private String fromDeviceName;
+    /**
+     * null
+     */
+    @Column(name = "from_device_phone_number")
+    @ApiModelProperty(value = "发起端设备号码", required = false)
+    private String fromDevicePhoneNumber;
+    /**
+     * 发起设备所在空间结构
+     */
+    @Column(name = "from_device_frame_id")
+    @ApiModelProperty(value = "发起设备所在空间结构", required = false)
     private Integer fromDeviceFrameId;
     private Integer fromDeviceFrameId;
+
+    @Column(name = "from_frame_type")
+    @ApiModelProperty(value = "发起端空间结构类型:0楼、1病房、2床位", required = false)
+    private Integer fromFrameType;
     /**
     /**
-     * 交互对象所在空间结果
+     * null
+     */
+    @Column(name = "from_frame_name")
+    @ApiModelProperty(value = "发起端空间结构名称", required = false)
+    private String fromFrameName;
+    /**
+     * null
      */
      */
+    @Column(name = "from_frame_full_name")
+    @ApiModelProperty(value = "发起端空间结构全名", required = false)
+    private String fromFrameFullName;
 
 
-    private Integer toDeviceFrameId;
+    @Column(name = "from_frame_parent_id")
+    @ApiModelProperty(value = "发起端空间父级id", required = false)
+    private Integer fromFrameParentId;
     /**
     /**
      * 交互发起设备使用者member_id
      * 交互发起设备使用者member_id
      */
      */
-
+    @Column(name = "from_device_member_id")
+    @ApiModelProperty(value = "交互发起设备使用者member_id", required = false)
     private Integer fromDeviceMemberId;
     private Integer fromDeviceMemberId;
     /**
     /**
-     * 交互对象设备使用者member_id
+     * 用户
+     **/
+    @Column(name = "from_customer_id")
+    @ApiModelProperty(value = "发起端用户CustomId", required = false)
+    private Integer fromCustomerId;
+    /**
+     * null
+     */
+    @Column(name = "from_member_name")
+    @ApiModelProperty(value = "发起端用户姓名", required = false)
+    private String fromMemberName;
+    /**
+     * null
+     */
+    @Column(name = "from_member_face")
+    @ApiModelProperty(value = "发起端用户头像", required = false)
+    private String fromMemberFace;
+
+    @Column(name = "from_clerk_id")
+    @ApiModelProperty(value = "发起端用户成员Id,发起端为护士主机,腕表,医生机时才有", required = false)
+    private Integer fromClerkId;
+    /**
+     * null
      */
      */
+    @Column(name = "from_role_name")
+    @ApiModelProperty(value = "发起端用户角色名(医生、护士、护工)", required = false)
+    private String fromRoleName;
 
 
+
+    /**
+     * 交互对象设备Id
+     */
+    @Column(name = "to_device_id")
+    @ApiModelProperty(value = "交互对象设备Id", required = false)
+    private Integer toDeviceId;
+    /**
+     * null
+     */
+    @Column(name = "to_eth_mac")
+    @ApiModelProperty(value = "目的端设备的有线以太网卡MAC地址", required = false)
+    private String toEthMac;
+
+    @Column(name = "to_eth_ip")
+    @ApiModelProperty(value = "目的端设备的有线以太网卡分配的IP地址", required = false)
+    private String toEthIp;
+    /**
+     * null
+     */
+    @Column(name = "to_sip_id")
+    @ApiModelProperty(value = "目的端设备的SIP账号", required = false)
+    private String toSipId;
+    /**
+     * null
+     */
+    @Column(name = "to_device_type")
+    @ApiModelProperty(value = "目的端设备的设备类型", required = false)
+    private Integer toDeviceType;
+
+    @Column(name = "to_device_name")
+    @ApiModelProperty(value = "目的端设备的名称", required = false)
+    private String toDeviceName;
+    /**
+     * null
+     */
+    @Column(name = "to_device_phone_number")
+    @ApiModelProperty(value = "目的端设备号码", required = false)
+    private String toDevicePhoneNumber;
+    /**
+     * 交互对象所在空间结果
+     */
+    @Column(name = "to_device_frame_id")
+    @ApiModelProperty(value = "交互对象所在空间结果", required = false)
+    private Integer toDeviceFrameId;
+
+    @Column(name = "to_frame_type")
+    @ApiModelProperty(value = "目的端空间结构类型:0楼、1病房、2床位", required = false)
+    private Integer toFrameType;
+    /**
+     * null
+     */
+    @Column(name = "to_frame_name")
+    @ApiModelProperty(value = "目的端空间结构名称", required = false)
+    private String toFrameName;
+    /**
+     * null
+     */
+    @Column(name = "to_frame_full_name")
+    @ApiModelProperty(value = "目的端空间结构全名", required = false)
+    private String toFrameFullName;
+
+    @Column(name = "to_frame_parent_id")
+    @ApiModelProperty(value = "目的端空间父级id", required = false)
+    private Integer toFrameParentId;
+    /**
+     * 交互对象设备使用者member_id
+     */
+    @Column(name = "to_device_member_id")
+    @ApiModelProperty(value = "交互对象设备使用者member_id", required = false)
     private Integer toDeviceMemberId;
     private Integer toDeviceMemberId;
+
+    @Column(name = "to_customer_id")
+    @ApiModelProperty(value = "目的端用户CustomId", required = false)
+    private Integer toCustomerId;
+
     /**
     /**
-     * 是否为呼叫系统内部交互(如果是外部电话呼叫为true,否则为false)
+     * null
+     */
+    @Column(name = "to_member_name")
+    @ApiModelProperty(value = "目的端用户姓名", required = false)
+    private String toMemberName;
+    /**
+     * null
      */
      */
+    @Column(name = "to_member_face")
+    @ApiModelProperty(value = "目的端用户头像", required = false)
+    private String toMemberFace;
 
 
+    @Column(name = "to_clerk_id")
+    @ApiModelProperty(value = "目的端用户成员Id,目的端为护士主机,腕表,医生机时才有", required = false)
+    private Integer toClerkId;
+    /**
+     * null
+     */
+    @Column(name = "to_role_name")
+    @ApiModelProperty(value = "目的端用户角色名(医生、护士、护工)", required = false)
+    private String toRoleName;
+    /**
+     * 是否为呼叫系统内部交互(如果是外部电话呼叫为true,否则为false)
+     */
+    @Column(name = "outerior_action")
+    @ApiModelProperty(value = "是否为呼叫系统内部交互(如果是外部电话呼叫为true,否则为false)", required = false)
     private Boolean outeriorAction;
     private Boolean outeriorAction;
     /**
     /**
      * 外部呼叫时的来电号码(根据此号码查询member,并设置from_device信息)
      * 外部呼叫时的来电号码(根据此号码查询member,并设置from_device信息)
      */
      */
-
+    @Column(name = "outerior_action_number")
+    @ApiModelProperty(value = "外部呼叫时的来电号码(根据此号码查询member,并设置from_device信息)", required = false)
     private String outeriorActionNumber;
     private String outeriorActionNumber;
     /**
     /**
      * 外部交互者的用户id
      * 外部交互者的用户id
      */
      */
-
+    @Column(name = "outerior_action_member_id")
+    @ApiModelProperty(value = "外部交互者的用户id", required = false)
     private Long outeriorActionMemberId;
     private Long outeriorActionMemberId;
     /**
     /**
      * 备注Id
      * 备注Id
      */
      */
-
+    @Column(name = "remark_id")
+    @ApiModelProperty(value = "备注Id", required = false)
     private Integer remarkId;
     private Integer remarkId;
     /**
     /**
      * 交互开始时间(通话时指通话接通时间,与create_time相同)
      * 交互开始时间(通话时指通话接通时间,与create_time相同)
      */
      */
-
+    @Column(name = "action_start")
+    @ApiModelProperty(value = "交互开始时间(通话时指通话接通时间,与create_time相同)", required = false)
     private Long actionStart;
     private Long actionStart;
     /**
     /**
      * 应答时间
      * 应答时间
      */
      */
-
+    @Column(name = "action_accept")
+    @ApiModelProperty(value = "应答时间", required = false)
     private Long actionAccept;
     private Long actionAccept;
     /**
     /**
      * 交互结束时间(通话时指通话挂断时间,通话挂断后要更新此字段)。事件响应时间、语音已读时间
      * 交互结束时间(通话时指通话挂断时间,通话挂断后要更新此字段)。事件响应时间、语音已读时间
      */
      */
-
+    @Column(name = "action_end")
+    @ApiModelProperty(value = "交互结束时间(通话时指通话挂断时间,通话挂断后要更新此字段)。事件响应时间、语音已读时间", required = false)
     private Long actionEnd;
     private Long actionEnd;
     /**
     /**
+     * 交互处理者的member_id
+     */
+    @Column(name = "action_end_member_id")
+    @ApiModelProperty(value = "交互处理者的member_id", required = false)
+    private Integer actionEndMemberId;
+    /**
+     * null
+     */
+    @Column(name = "action_end_member_name")
+    @ApiModelProperty(value = "交互处理者的用户姓名", required = false)
+    private String actionEndMemberName;
+    /**
+     * 交互完成时间
+     */
+    @Column(name = "action_completed")
+    @ApiModelProperty(value = "交互完成时间", required = false)
+    private Long actionCompleted;
+    /**
      * 交互数据(类型1,2,3为空)(类型4为音频文件地址)(5为文本内容)(类型6为具体按键类型)
      * 交互数据(类型1,2,3为空)(类型4为音频文件地址)(5为文本内容)(类型6为具体按键类型)
      */
      */
-
+    @Column(name = "data")
+    @ApiModelProperty(value = "交互数据(类型1,2,3为空)(类型4为音频文件地址)(5为文本内容)(类型6为具体按键类型)", required = false)
     private String data;
     private String data;
     /**
     /**
      * 交互错误代码
      * 交互错误代码
      */
      */
-
+    @Column(name = "error_code")
+    @ApiModelProperty(value = "交互错误代码", required = false)
     private String errorCode;
     private String errorCode;
     /**
     /**
      * 交互错误描述
      * 交互错误描述
      */
      */
-
+    @Column(name = "error_message")
+    @ApiModelProperty(value = "交互错误描述", required = false)
     private String errorMessage;
     private String errorMessage;
 
 
-
+    @Column(name = "action_direction_type")
+    @ApiModelProperty(value = "交互方向类型(1:分机到主机、腕表、医生机,2:主机、腕表、医生机到分机,3主机、腕表、医生机之间互通,4:分机到分机)", required = false)
     private Integer actionDirectionType;
     private Integer actionDirectionType;
 
 
+    @Column(name = "action_status")
+    @ApiModelProperty(value = "事件类型的交互状态(包括:发出,响应,取消,完成)", required = false)
+    private String actionStatus;
+    /**
+     * null
+     */
+    @Column(name = "relative_id")
+    @ApiModelProperty(value = "亲属id,外部来电时,from_member亲属的memberId", required = false)
+    private Integer relativeId;
+    /**
+     * null
+     */
+    @Column(name = "relative_name")
+    @ApiModelProperty(value = "外部来电时,from_member亲属关系", required = false)
+    private String relativeName;
+
+
+    /**
+     *交互接收者的顺序,一个JS数组,一个交互可能同时给同一角色的多个用户,用JS数组可以个分多个层级
+     */
+    @Column(name = "spread_member_path")
+    @ApiModelProperty(value = "交互接收者的顺序", required = false)
+    private String spreadMemberPath;
+
+
+    /**
+     *交互接收的memberId,用逗号隔开,可以不考虑顺序,方便查询用户交互记录,把spread_member_path字段打散后用逗号连接
+     */
+    @Column(name = "spread_member_ids")
+    @ApiModelProperty(value = "交互接收的memberId,", required = false)
+    private String spreadMemberIds;
+
+
+    /**
+     *交互已触达的memberIds,交互被多人接收后,有任意一人处理,需要通知其他已触达的用户取消处理
+     */
+    @Column(name = "reached_member_ids")
+    @ApiModelProperty(value = "交互已触达的memberIds", required = false)
+    private String reachedMemberIds;
 
 
+    private ArrayList<Integer[]> spreadMemberPathArray;
 
 
+
+    @PrimaryKeyField
     public Integer getId() {
     public Integer getId() {
         return id;
         return id;
     }
     }
@@ -126,7 +398,6 @@ public class InteractionDO implements Serializable {
         this.id = id;
         this.id = id;
     }
     }
 
 
-
     public String getUnionId() {
     public String getUnionId() {
         return unionId;
         return unionId;
     }
     }
@@ -135,7 +406,6 @@ public class InteractionDO implements Serializable {
         this.unionId = unionId;
         this.unionId = unionId;
     }
     }
 
 
-
     public Long getCreateDate() {
     public Long getCreateDate() {
         return createDate;
         return createDate;
     }
     }
@@ -144,7 +414,6 @@ public class InteractionDO implements Serializable {
         this.createDate = createDate;
         this.createDate = createDate;
     }
     }
 
 
-
     public Integer getPartId() {
     public Integer getPartId() {
         return partId;
         return partId;
     }
     }
@@ -153,6 +422,13 @@ public class InteractionDO implements Serializable {
         this.partId = partId;
         this.partId = partId;
     }
     }
 
 
+    public String getPartName() {
+        return partName;
+    }
+
+    public void setPartName(String partName) {
+        this.partName = partName;
+    }
 
 
     public String getActionType() {
     public String getActionType() {
         return actionType;
         return actionType;
@@ -162,7 +438,6 @@ public class InteractionDO implements Serializable {
         this.actionType = actionType;
         this.actionType = actionType;
     }
     }
 
 
-
     public Integer getActionResult() {
     public Integer getActionResult() {
         return actionResult;
         return actionResult;
     }
     }
@@ -171,7 +446,6 @@ public class InteractionDO implements Serializable {
         this.actionResult = actionResult;
         this.actionResult = actionResult;
     }
     }
 
 
-
     public Integer getFromDeviceId() {
     public Integer getFromDeviceId() {
         return fromDeviceId;
         return fromDeviceId;
     }
     }
@@ -180,15 +454,53 @@ public class InteractionDO implements Serializable {
         this.fromDeviceId = fromDeviceId;
         this.fromDeviceId = fromDeviceId;
     }
     }
 
 
+    public String getFromEthMac() {
+        return fromEthMac;
+    }
 
 
-    public Integer getToDeviceId() {
-        return toDeviceId;
+    public void setFromEthMac(String fromEthMac) {
+        this.fromEthMac = fromEthMac;
     }
     }
 
 
-    public void setToDeviceId(Integer toDeviceId) {
-        this.toDeviceId = toDeviceId;
+    public String getFromEthIp() {
+        return fromEthIp;
+    }
+
+    public void setFromEthIp(String fromEthIp) {
+        this.fromEthIp = fromEthIp;
+    }
+
+    public String getFromSipId() {
+        return fromSipId;
+    }
+
+    public void setFromSipId(String fromSipId) {
+        this.fromSipId = fromSipId;
+    }
+
+    public Integer getFromDeviceType() {
+        return fromDeviceType;
     }
     }
 
 
+    public void setFromDeviceType(Integer fromDeviceType) {
+        this.fromDeviceType = fromDeviceType;
+    }
+
+    public String getFromDeviceName() {
+        return fromDeviceName;
+    }
+
+    public void setFromDeviceName(String fromDeviceName) {
+        this.fromDeviceName = fromDeviceName;
+    }
+
+    public String getFromDevicePhoneNumber() {
+        return fromDevicePhoneNumber;
+    }
+
+    public void setFromDevicePhoneNumber(String fromDevicePhoneNumber) {
+        this.fromDevicePhoneNumber = fromDevicePhoneNumber;
+    }
 
 
     public Integer getFromDeviceFrameId() {
     public Integer getFromDeviceFrameId() {
         return fromDeviceFrameId;
         return fromDeviceFrameId;
@@ -198,15 +510,37 @@ public class InteractionDO implements Serializable {
         this.fromDeviceFrameId = fromDeviceFrameId;
         this.fromDeviceFrameId = fromDeviceFrameId;
     }
     }
 
 
+    public Integer getFromFrameType() {
+        return fromFrameType;
+    }
 
 
-    public Integer getToDeviceFrameId() {
-        return toDeviceFrameId;
+    public void setFromFrameType(Integer fromFrameType) {
+        this.fromFrameType = fromFrameType;
     }
     }
 
 
-    public void setToDeviceFrameId(Integer toDeviceFrameId) {
-        this.toDeviceFrameId = toDeviceFrameId;
+    public String getFromFrameName() {
+        return fromFrameName;
     }
     }
 
 
+    public void setFromFrameName(String fromFrameName) {
+        this.fromFrameName = fromFrameName;
+    }
+
+    public String getFromFrameFullName() {
+        return fromFrameFullName;
+    }
+
+    public void setFromFrameFullName(String fromFrameFullName) {
+        this.fromFrameFullName = fromFrameFullName;
+    }
+
+    public Integer getFromFrameParentId() {
+        return fromFrameParentId;
+    }
+
+    public void setFromFrameParentId(Integer fromFrameParentId) {
+        this.fromFrameParentId = fromFrameParentId;
+    }
 
 
     public Integer getFromDeviceMemberId() {
     public Integer getFromDeviceMemberId() {
         return fromDeviceMemberId;
         return fromDeviceMemberId;
@@ -216,6 +550,141 @@ public class InteractionDO implements Serializable {
         this.fromDeviceMemberId = fromDeviceMemberId;
         this.fromDeviceMemberId = fromDeviceMemberId;
     }
     }
 
 
+    public Integer getFromCustomerId() {
+        return fromCustomerId;
+    }
+
+    public void setFromCustomerId(Integer fromCustomerId) {
+        this.fromCustomerId = fromCustomerId;
+    }
+
+    public String getFromMemberName() {
+        return fromMemberName;
+    }
+
+    public void setFromMemberName(String fromMemberName) {
+        this.fromMemberName = fromMemberName;
+    }
+
+    public String getFromMemberFace() {
+        return fromMemberFace;
+    }
+
+    public void setFromMemberFace(String fromMemberFace) {
+        this.fromMemberFace = fromMemberFace;
+    }
+
+    public Integer getFromClerkId() {
+        return fromClerkId;
+    }
+
+    public void setFromClerkId(Integer fromClerkId) {
+        this.fromClerkId = fromClerkId;
+    }
+
+    public String getFromRoleName() {
+        return fromRoleName;
+    }
+
+    public void setFromRoleName(String fromRoleName) {
+        this.fromRoleName = fromRoleName;
+    }
+
+    public Integer getToDeviceId() {
+        return toDeviceId;
+    }
+
+    public void setToDeviceId(Integer toDeviceId) {
+        this.toDeviceId = toDeviceId;
+    }
+
+    public String getToEthMac() {
+        return toEthMac;
+    }
+
+    public void setToEthMac(String toEthMac) {
+        this.toEthMac = toEthMac;
+    }
+
+    public String getToEthIp() {
+        return toEthIp;
+    }
+
+    public void setToEthIp(String toEthIp) {
+        this.toEthIp = toEthIp;
+    }
+
+    public String getToSipId() {
+        return toSipId;
+    }
+
+    public void setToSipId(String toSipId) {
+        this.toSipId = toSipId;
+    }
+
+    public Integer getToDeviceType() {
+        return toDeviceType;
+    }
+
+    public void setToDeviceType(Integer toDeviceType) {
+        this.toDeviceType = toDeviceType;
+    }
+
+    public String getToDeviceName() {
+        return toDeviceName;
+    }
+
+    public void setToDeviceName(String toDeviceName) {
+        this.toDeviceName = toDeviceName;
+    }
+
+    public String getToDevicePhoneNumber() {
+        return toDevicePhoneNumber;
+    }
+
+    public void setToDevicePhoneNumber(String toDevicePhoneNumber) {
+        this.toDevicePhoneNumber = toDevicePhoneNumber;
+    }
+
+    public Integer getToDeviceFrameId() {
+        return toDeviceFrameId;
+    }
+
+    public void setToDeviceFrameId(Integer toDeviceFrameId) {
+        this.toDeviceFrameId = toDeviceFrameId;
+    }
+
+    public Integer getToFrameType() {
+        return toFrameType;
+    }
+
+    public void setToFrameType(Integer toFrameType) {
+        this.toFrameType = toFrameType;
+    }
+
+    public String getToFrameName() {
+        return toFrameName;
+    }
+
+    public void setToFrameName(String toFrameName) {
+        this.toFrameName = toFrameName;
+    }
+
+    public String getToFrameFullName() {
+        return toFrameFullName;
+    }
+
+    public void setToFrameFullName(String toFrameFullName) {
+        this.toFrameFullName = toFrameFullName;
+    }
+
+    public Integer getToFrameParentId() {
+        return toFrameParentId;
+    }
+
+    public void setToFrameParentId(Integer toFrameParentId) {
+        this.toFrameParentId = toFrameParentId;
+    }
 
 
     public Integer getToDeviceMemberId() {
     public Integer getToDeviceMemberId() {
         return toDeviceMemberId;
         return toDeviceMemberId;
@@ -225,6 +694,45 @@ public class InteractionDO implements Serializable {
         this.toDeviceMemberId = toDeviceMemberId;
         this.toDeviceMemberId = toDeviceMemberId;
     }
     }
 
 
+    public Integer getToCustomerId() {
+        return toCustomerId;
+    }
+
+    public void setToCustomerId(Integer toCustomerId) {
+        this.toCustomerId = toCustomerId;
+    }
+
+    public String getToMemberName() {
+        return toMemberName;
+    }
+
+    public void setToMemberName(String toMemberName) {
+        this.toMemberName = toMemberName;
+    }
+
+    public String getToMemberFace() {
+        return toMemberFace;
+    }
+
+    public void setToMemberFace(String toMemberFace) {
+        this.toMemberFace = toMemberFace;
+    }
+
+    public Integer getToClerkId() {
+        return toClerkId;
+    }
+
+    public void setToClerkId(Integer toClerkId) {
+        this.toClerkId = toClerkId;
+    }
+
+    public String getToRoleName() {
+        return toRoleName;
+    }
+
+    public void setToRoleName(String toRoleName) {
+        this.toRoleName = toRoleName;
+    }
 
 
     public Boolean getOuteriorAction() {
     public Boolean getOuteriorAction() {
         return outeriorAction;
         return outeriorAction;
@@ -234,7 +742,6 @@ public class InteractionDO implements Serializable {
         this.outeriorAction = outeriorAction;
         this.outeriorAction = outeriorAction;
     }
     }
 
 
-
     public String getOuteriorActionNumber() {
     public String getOuteriorActionNumber() {
         return outeriorActionNumber;
         return outeriorActionNumber;
     }
     }
@@ -243,7 +750,6 @@ public class InteractionDO implements Serializable {
         this.outeriorActionNumber = outeriorActionNumber;
         this.outeriorActionNumber = outeriorActionNumber;
     }
     }
 
 
-
     public Long getOuteriorActionMemberId() {
     public Long getOuteriorActionMemberId() {
         return outeriorActionMemberId;
         return outeriorActionMemberId;
     }
     }
@@ -252,7 +758,6 @@ public class InteractionDO implements Serializable {
         this.outeriorActionMemberId = outeriorActionMemberId;
         this.outeriorActionMemberId = outeriorActionMemberId;
     }
     }
 
 
-
     public Integer getRemarkId() {
     public Integer getRemarkId() {
         return remarkId;
         return remarkId;
     }
     }
@@ -261,7 +766,6 @@ public class InteractionDO implements Serializable {
         this.remarkId = remarkId;
         this.remarkId = remarkId;
     }
     }
 
 
-
     public Long getActionStart() {
     public Long getActionStart() {
         return actionStart;
         return actionStart;
     }
     }
@@ -270,7 +774,6 @@ public class InteractionDO implements Serializable {
         this.actionStart = actionStart;
         this.actionStart = actionStart;
     }
     }
 
 
-
     public Long getActionAccept() {
     public Long getActionAccept() {
         return actionAccept;
         return actionAccept;
     }
     }
@@ -279,7 +782,6 @@ public class InteractionDO implements Serializable {
         this.actionAccept = actionAccept;
         this.actionAccept = actionAccept;
     }
     }
 
 
-
     public Long getActionEnd() {
     public Long getActionEnd() {
         return actionEnd;
         return actionEnd;
     }
     }
@@ -288,6 +790,29 @@ public class InteractionDO implements Serializable {
         this.actionEnd = actionEnd;
         this.actionEnd = actionEnd;
     }
     }
 
 
+    public Integer getActionEndMemberId() {
+        return actionEndMemberId;
+    }
+
+    public void setActionEndMemberId(Integer actionEndMemberId) {
+        this.actionEndMemberId = actionEndMemberId;
+    }
+
+    public String getActionEndMemberName() {
+        return actionEndMemberName;
+    }
+
+    public void setActionEndMemberName(String actionEndMemberName) {
+        this.actionEndMemberName = actionEndMemberName;
+    }
+
+    public Long getActionCompleted() {
+        return actionCompleted;
+    }
+
+    public void setActionCompleted(Long actionCompleted) {
+        this.actionCompleted = actionCompleted;
+    }
 
 
     public String getData() {
     public String getData() {
         return data;
         return data;
@@ -297,7 +822,6 @@ public class InteractionDO implements Serializable {
         this.data = data;
         this.data = data;
     }
     }
 
 
-
     public String getErrorCode() {
     public String getErrorCode() {
         return errorCode;
         return errorCode;
     }
     }
@@ -306,7 +830,6 @@ public class InteractionDO implements Serializable {
         this.errorCode = errorCode;
         this.errorCode = errorCode;
     }
     }
 
 
-
     public String getErrorMessage() {
     public String getErrorMessage() {
         return errorMessage;
         return errorMessage;
     }
     }
@@ -323,4 +846,77 @@ public class InteractionDO implements Serializable {
         this.actionDirectionType = actionDirectionType;
         this.actionDirectionType = actionDirectionType;
     }
     }
 
 
+    public String getActionStatus() {
+        return actionStatus;
+    }
+
+    public void setActionStatus(String actionStatus) {
+        this.actionStatus = actionStatus;
+    }
+
+    public Integer getRelativeId() {
+        return relativeId;
+    }
+
+    public void setRelativeId(Integer relativeId) {
+        this.relativeId = relativeId;
+    }
+
+    public String getRelativeName() {
+        return relativeName;
+    }
+
+    public void setRelativeName(String relativeName) {
+        this.relativeName = relativeName;
+    }
+
+
+    public String getSpreadMemberPath() {
+        return spreadMemberPath;
+    }
+
+    public void setSpreadMemberPath(String spreadMemberPath) {
+        this.spreadMemberPath = spreadMemberPath;
+    }
+
+    public String getSpreadMemberIds() {
+        return spreadMemberIds;
+    }
+
+    public void setSpreadMemberIds(String spreadMemberIds) {
+        this.spreadMemberIds = spreadMemberIds;
+    }
+
+    public String getReachedMemberIds() {
+        return reachedMemberIds;
+    }
+
+    public void setReachedMemberIds(String reachedMemberIds) {
+        this.reachedMemberIds = reachedMemberIds;
+    }
+
+    public ArrayList<Integer[]> getSpreadMemberPathArray() {
+        if (spreadMemberPathArray != null) {
+            return spreadMemberPathArray;
+        }
+        if (!Strings.isNullOrEmpty(spreadMemberPath)){
+            ArrayList<Integer[]> arrayList = new ArrayList<>();
+            JSONArray jsonArray = JSON.parseArray(spreadMemberPath);
+            for(Object item:jsonArray){
+                JSONArray itemJsonArray = (JSONArray)item;
+                Integer[] itemArray = new Integer[itemJsonArray.size()];
+                for(int i=0;i<itemJsonArray.size();i++){
+                    itemArray[i] = itemJsonArray.getInteger(i);
+                }
+                arrayList.add(itemArray);
+            }
+            spreadMemberPathArray = arrayList;
+            return spreadMemberPathArray;
+        }
+        return null;
+    }
+
+    public void setSpreadMemberPathArray(ArrayList<Integer[]> spreadMemberPathArray) {
+        this.spreadMemberPathArray = spreadMemberPathArray;
+    }
 }
 }

+ 34 - 316
app/src/main/java/com/wdkl/ncs/entraceguard/model/vo/InteractionVO.java

@@ -1,333 +1,51 @@
 package com.wdkl.ncs.entraceguard.model.vo;
 package com.wdkl.ncs.entraceguard.model.vo;
 
 
-
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.annotation.JsonNaming;
 import com.wdkl.ncs.entraceguard.model.dos.InteractionDO;
 import com.wdkl.ncs.entraceguard.model.dos.InteractionDO;
 
 
-import java.io.Serializable;
-
 /**
 /**
  * @program nc
  * @program nc
  * @description:
  * @description:
  * @author: Vothin
  * @author: Vothin
  * @create: 2021/04/02 15:27
  * @create: 2021/04/02 15:27
  */
  */
-
-public class InteractionVO extends InteractionDO implements Serializable {
-
-    /** 用户 **/
-    private Integer fromCustomerId;
-
-    private String fromMemberName;
-
-    private String fromMemberFace;
-
-    private Integer fromClerkId;
-
-    private String fromRoleName;
-
-
-    private Integer toCustomerId;
-
-    private String toMemberName;
-
-    private String toMemberFace;
-
-    private Integer toClerkId;
-
-    private String toRoleName;
-
-
-    /** 设备 **/
-    private String fromEthMac;
-
-    private String fromEthIp;
-
-
-    private String fromSipId;
-
-    private Integer fromDeviceType;
-
-
-    private String toEthMac;
-
-    private String toEthIp;
-
-
-    private String toSipId;
-
-    private Integer toDeviceType;
-
-    /** 空间结构 **/
-
-    private Integer fromFrameType;
-
-
-    private String fromFrameName;
-
-    private String fromFrameFullName;
-
-
-    private Integer toFrameType;
-
-
-    private String toFrameName;
-
-    private String toFrameFullName;
-
-
-    private Integer relativeId;
-
-    private String relativeName;
-
-    private String outeriorActionName;
-
-
-    public Integer getFromCustomerId() {
-        return fromCustomerId;
-    }
-
-    public void setFromCustomerId(Integer fromCustomerId) {
-        this.fromCustomerId = fromCustomerId;
-    }
-
-    public String getFromMemberName() {
-        return fromMemberName;
-    }
-
-    public void setFromMemberName(String fromMemberName) {
-        this.fromMemberName = fromMemberName;
-    }
-
-    public String getFromMemberFace() {
-        return fromMemberFace;
-    }
-
-    public void setFromMemberFace(String fromMemberFace) {
-        this.fromMemberFace = fromMemberFace;
-    }
-
-    public Integer getFromClerkId() {
-        return fromClerkId;
-    }
-
-    public void setFromClerkId(Integer fromClerkId) {
-        this.fromClerkId = fromClerkId;
-    }
-
-    public String getFromRoleName() {
-        return fromRoleName;
-    }
-
-    public void setFromRoleName(String fromRoleName) {
-        this.fromRoleName = fromRoleName;
-    }
-
-    public Integer getToCustomerId() {
-        return toCustomerId;
-    }
-
-    public void setToCustomerId(Integer toCustomerId) {
-        this.toCustomerId = toCustomerId;
-    }
-
-    public String getToMemberName() {
-        return toMemberName;
-    }
-
-    public void setToMemberName(String toMemberName) {
-        this.toMemberName = toMemberName;
-    }
-
-    public String getToMemberFace() {
-        return toMemberFace;
-    }
-
-    public void setToMemberFace(String toMemberFace) {
-        this.toMemberFace = toMemberFace;
-    }
-
-    public Integer getToClerkId() {
-        return toClerkId;
-    }
-
-    public void setToClerkId(Integer toClerkId) {
-        this.toClerkId = toClerkId;
-    }
-
-    public String getToRoleName() {
-        return toRoleName;
-    }
-
-    public void setToRoleName(String toRoleName) {
-        this.toRoleName = toRoleName;
-    }
-
-    public String getFromEthMac() {
-        return fromEthMac;
-    }
-
-    public void setFromEthMac(String fromEthMac) {
-        this.fromEthMac = fromEthMac;
-    }
-
-    public String getFromEthIp() {
-        return fromEthIp;
-    }
-
-    public void setFromEthIp(String fromEthIp) {
-        this.fromEthIp = fromEthIp;
-    }
-
-    public String getFromSipId() {
-        return fromSipId;
-    }
-
-    public void setFromSipId(String fromSipId) {
-        this.fromSipId = fromSipId;
-    }
-
-    public String getToEthMac() {
-        return toEthMac;
-    }
-
-    public void setToEthMac(String toEthMac) {
-        this.toEthMac = toEthMac;
-    }
-
-    public String getToEthIp() {
-        return toEthIp;
-    }
-
-    public void setToEthIp(String toEthIp) {
-        this.toEthIp = toEthIp;
-    }
-
-    public String getToSipId() {
-        return toSipId;
-    }
-
-    public void setToSipId(String toSipId) {
-        this.toSipId = toSipId;
-    }
-
-    public Integer getFromFrameType() {
-        return fromFrameType;
-    }
-
-    public void setFromFrameType(Integer fromFrameType) {
-        this.fromFrameType = fromFrameType;
-    }
-
-    public String getFromFrameName() {
-        return fromFrameName;
-    }
-
-    public void setFromFrameName(String fromFrameName) {
-        this.fromFrameName = fromFrameName;
-    }
-
-    public String getFromFrameFullName() {
-        return fromFrameFullName;
-    }
-
-    public void setFromFrameFullName(String fromFrameFullName) {
-        this.fromFrameFullName = fromFrameFullName;
-    }
-
-    public Integer getToFrameType() {
-        return toFrameType;
-    }
-
-    public void setToFrameType(Integer toFrameType) {
-        this.toFrameType = toFrameType;
-    }
-
-    public String getToFrameName() {
-        return toFrameName;
-    }
-
-    public void setToFrameName(String toFrameName) {
-        this.toFrameName = toFrameName;
-    }
-
-    public String getToFrameFullName() {
-        return toFrameFullName;
-    }
-
-    public void setToFrameFullName(String toFrameFullName) {
-        this.toFrameFullName = toFrameFullName;
-    }
-
-    public Integer getRelativeId() {
-        return relativeId;
-    }
-
-    public void setRelativeId(Integer relativeId) {
-        this.relativeId = relativeId;
-    }
-
-    public String getRelativeName() {
-        return relativeName;
-    }
-
-    public void setRelativeName(String relativeName) {
-        this.relativeName = relativeName;
-    }
-
-    public String getOuteriorActionName() {
-        return outeriorActionName;
-    }
-
-    public void setOuteriorActionName(String outeriorActionName) {
-        this.outeriorActionName = outeriorActionName;
-    }
-
-    public Integer getFromDeviceType() {
-        return fromDeviceType;
-    }
-
-    public void setFromDeviceType(Integer fromDeviceType) {
-        this.fromDeviceType = fromDeviceType;
-    }
-
-    public Integer getToDeviceType() {
-        return toDeviceType;
-    }
-
-    public void setToDeviceType(Integer toDeviceType) {
-        this.toDeviceType = toDeviceType;
-    }
+@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
+public class InteractionVO extends InteractionDO {
 
 
     @Override
     @Override
     public String toString() {
     public String toString() {
         return "InteractionVO{" +
         return "InteractionVO{" +
-                "fromCustomerId=" + fromCustomerId +
-                ", fromMemberName='" + fromMemberName + '\'' +
-                ", fromMemberFace='" + fromMemberFace + '\'' +
-                ", fromClerkId=" + fromClerkId +
-                ", fromRoleName='" + fromRoleName + '\'' +
-                ", toCustomerId=" + toCustomerId +
-                ", toMemberName='" + toMemberName + '\'' +
-                ", toMemberFace='" + toMemberFace + '\'' +
-                ", toClerkId=" + toClerkId +
-                ", toRoleName='" + toRoleName + '\'' +
-                ", fromEthMac='" + fromEthMac + '\'' +
-                ", fromEthIp='" + fromEthIp + '\'' +
-                ", fromSipId='" + fromSipId + '\'' +
-                ", fromDeviceType='" + fromDeviceType + '\'' +
-                ", toEthMac='" + toEthMac + '\'' +
-                ", toEthIp='" + toEthIp + '\'' +
-                ", toSipId='" + toSipId + '\'' +
-                ", toDeviceType='" + toDeviceType + '\'' +
-                ", fromFrameType=" + fromFrameType +
-                ", fromFrameName='" + fromFrameName + '\'' +
-                ", fromFrameFullName='" + fromFrameFullName + '\'' +
-                ", toFrameType=" + toFrameType +
-                ", toFrameName='" + toFrameName + '\'' +
-                ", toFrameFullName='" + toFrameFullName + '\'' +
-                ", relativeId=" + relativeId +
-                ", relativeName='" + relativeName + '\'' +
-                ", outeriorActionName='" + outeriorActionName + '\'' +
+                "fromCustomerId=" + getFromCustomerId() +
+                ", fromMemberName='" + getFromDeviceType() + '\'' +
+                ", fromMemberFace='" + getFromMemberFace() + '\'' +
+                ", fromClerkId=" + getFromClerkId() +
+                ", fromRoleName='" + getFromRoleName() + '\'' +
+                ", toCustomerId=" + getToCustomerId() +
+                ", toMemberName='" + getToMemberName() + '\'' +
+                ", toMemberFace='" + getToMemberFace() + '\'' +
+                ", toClerkId=" + getToClerkId() +
+                ", toRoleName='" + getToRoleName() + '\'' +
+                ", fromEthMac='" + getFromEthMac() + '\'' +
+                ", fromEthIp='" + getFromEthIp() + '\'' +
+                ", fromSipId='" + getFromSipId() + '\'' +
+                ", fromDeviceType=" + getFromDeviceType() +
+                ", toEthMac='" + getToEthMac() + '\'' +
+                ", toEthIp='" + getToEthIp() + '\'' +
+                ", toSipId='" + getToSipId() + '\'' +
+                ", toDeviceType=" + getToDeviceType() +
+                ", fromFrameType=" + getFromFrameType() +
+                ", fromFrameName='" + getFromFrameName() + '\'' +
+                ", fromFrameFullName='" + getFromFrameFullName() + '\'' +
+                ", toFrameType=" + getToFrameType() +
+                ", toFrameName='" + getToFrameName() + '\'' +
+                ", toFrameFullName='" + getToFrameFullName() + '\'' +
+                ", relativeId=" + getRelativeId() +
+                ", relativeName='" + getRelativeName() + '\'' +
+                ", actionStatus='" + getActionStatus() + '\'' +
+                ", actionEndMemberId=" + getActionEndMemberId() +
+                ", actionEndMemberName='" + getActionEndMemberName() + '\'' +
                 '}';
                 '}';
     }
     }
 }
 }
+

+ 1 - 36
app/src/main/java/com/wdkl/ncs/entraceguard/tcp/TcpClient.java

@@ -102,17 +102,12 @@ public class TcpClient {
                     //连接失败时的处理
                     //连接失败时的处理
                     isRunning = false;
                     isRunning = false;
                     System.out.println("connect retry : " + retryTimes);
                     System.out.println("connect retry : " + retryTimes);
-                    //EventBus.getDefault().post(new MessageEvent(0, Constant.EVENT_TCP_STATE));
+
                     channelFuture.channel().eventLoop().schedule(new Runnable() {
                     channelFuture.channel().eventLoop().schedule(new Runnable() {
                         @Override
                         @Override
                         public void run() {
                         public void run() {
                             retryTimes++;
                             retryTimes++;
                             if (retryTimes > 20) { //重试30次还没连成功,等10分钟后再试
                             if (retryTimes > 20) { //重试30次还没连成功,等10分钟后再试
-//                                System.out.println("TcpClient 重试" + (retryTimes - 1) + "次,结束");
-//                                channel.close();
-//                                workGroup.shutdownGracefully();
-//                                //todo: 从API获取新的serverIP和serverPort,全新连接
-//                                TcpClient.getInstance().init(Constant.TCP_SERVER_URL, Constant.TCP_PORT, Constant.TCP_HEART_BEAT);
                                 retryTimes=1;
                                 retryTimes=1;
                                 channelFuture.channel().eventLoop().schedule(new Runnable() {
                                 channelFuture.channel().eventLoop().schedule(new Runnable() {
                                     @Override
                                     @Override
@@ -131,19 +126,6 @@ public class TcpClient {
                 }
                 }
             }
             }
         });
         });
-//        try {
-//            future.sync();
-//            future.channel().closeFuture().sync();
-//        } catch (InterruptedException e) {
-//            e.printStackTrace();
-//        } finally {
-        //重试之前不关
-//            try {
-//                Thread.sleep(retrySeconds * retryTimes*1000 + 1000);
-//            } catch (InterruptedException e) {
-//            }
-//            workGroup.shutdownGracefully();
-//        }
     }
     }
 
 
     //发送消息,线程安全
     //发送消息,线程安全
@@ -159,21 +141,4 @@ public class TcpClient {
         return channel;
         return channel;
     }
     }
 
 
-    //测试
-    public static void main(String[] args) {
-
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                TcpClient.getInstance().init("192.168.1.188", 5080, 9);
-            }
-        }).start();
-
-        Scanner scanner = new Scanner(System.in);
-        while (true) {
-            System.out.println("please type : ");
-            String line = scanner.nextLine();
-            TcpClient.getInstance().sendMsg(line);
-        }
-    }
 }
 }

+ 3 - 3
app/src/main/java/com/wdkl/ncs/entraceguard/tcp/channel/EntraceGuardUtil.java

@@ -25,15 +25,15 @@ public class EntraceGuardUtil {
     }
     }
 
 
     public static TcpModel startVisit(Integer fromDeviceId){
     public static TcpModel startVisit(Integer fromDeviceId){
-        TcpModel tcpModel = new TcpModel();
+        TcpModel tcpModel = new TcpModel(null);
         tcpModel.setType(TcpType.ENTRACEGUARD);
         tcpModel.setType(TcpType.ENTRACEGUARD);
         tcpModel.setAction(TcpAction.EntraceGuardAction.STRANGER);
         tcpModel.setAction(TcpAction.EntraceGuardAction.STRANGER);
         tcpModel.setFromId(fromDeviceId);
         tcpModel.setFromId(fromDeviceId);
         return tcpModel;
         return tcpModel;
     }
     }
 
 
-    public static TcpModel timeOut(InteractionVO interactionVO){
-        TcpModel tcpModel = new TcpModel();
+    public static TcpModel timeOut(InteractionVO interactionVO, String tid){
+        TcpModel tcpModel = new TcpModel(tid);
         tcpModel.setType(TcpType.ENTRACEGUARD);
         tcpModel.setType(TcpType.ENTRACEGUARD);
         tcpModel.setAction(TcpAction.EntraceGuardAction.TIMEOUT);
         tcpModel.setAction(TcpAction.EntraceGuardAction.TIMEOUT);
         tcpModel.setFromId(interactionVO.getFromDeviceId());
         tcpModel.setFromId(interactionVO.getFromDeviceId());

+ 27 - 72
app/src/main/java/com/wdkl/ncs/entraceguard/tcp/dto/TcpModel.java

@@ -1,15 +1,14 @@
 package com.wdkl.ncs.entraceguard.tcp.dto;
 package com.wdkl.ncs.entraceguard.tcp.dto;
 
 
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.base.Strings;
 import com.google.common.base.Strings;
 import com.wdkl.ncs.entraceguard.tcp.enums.TcpAction;
 import com.wdkl.ncs.entraceguard.tcp.enums.TcpAction;
 import com.wdkl.ncs.entraceguard.tcp.enums.TcpType;
 import com.wdkl.ncs.entraceguard.tcp.enums.TcpType;
 
 
+import org.bson.types.ObjectId;
+
 import java.io.Serializable;
 import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
 
 
 /**
 /**
  * tcp传输对象
  * tcp传输对象
@@ -18,6 +17,7 @@ import java.util.Map;
  * 2021-03-30 11:49
  * 2021-03-30 11:49
  */
  */
 public class TcpModel implements Serializable {
 public class TcpModel implements Serializable {
+    private String tid;
     /**
     /**
      * TCP传输对象的类型
      * TCP传输对象的类型
      */
      */
@@ -41,6 +41,26 @@ public class TcpModel implements Serializable {
      */
      */
     private Object data;
     private Object data;
 
 
+    public TcpModel(){
+        //this.tid = new ObjectId().toString();
+    }
+
+    public TcpModel(String tid){
+        if (Strings.isNullOrEmpty(tid)) {
+            this.tid = new ObjectId().toString();
+        } else {
+            this.tid = tid;
+        }
+    }
+
+    public String getTid() {
+        return tid;
+    }
+
+    public void setTid(String tid) {
+        this.tid = tid;
+    }
+
     public TcpType getType() {
     public TcpType getType() {
         return type;
         return type;
     }
     }
@@ -73,7 +93,7 @@ public class TcpModel implements Serializable {
         this.toId = toId;
         this.toId = toId;
     }
     }
 
 
-    public Object  getData() {
+    public Object getData() {
         return data;
         return data;
     }
     }
 
 
@@ -92,6 +112,7 @@ public class TcpModel implements Serializable {
         TcpModel tcpModel = new TcpModel();
         TcpModel tcpModel = new TcpModel();
 
 
         JSONObject jsonObject = JSON.parseObject(tcpModelJsonString);
         JSONObject jsonObject = JSON.parseObject(tcpModelJsonString);
+        String tid = jsonObject.getString("tid");
         String type = jsonObject.getString("type");
         String type = jsonObject.getString("type");
         String action = jsonObject.getString("action");
         String action = jsonObject.getString("action");
         Integer fromId = jsonObject.getInteger("fromId");
         Integer fromId = jsonObject.getInteger("fromId");
@@ -132,10 +153,11 @@ public class TcpModel implements Serializable {
                 tcpAction = TcpAction.SOSAction.fromString(action);
                 tcpAction = TcpAction.SOSAction.fromString(action);
                 break;
                 break;
             case ENTRACEGUARD:
             case ENTRACEGUARD:
-                tcpAction = TcpAction.EntraceGuardAction.fromString(action);
+                tcpAction =TcpAction.EntraceGuardAction.fromString(action);
                 break;
                 break;
         }
         }
 
 
+        tcpModel.setTid(tid);
         tcpModel.setType(tcpType);
         tcpModel.setType(tcpType);
         tcpModel.setAction(tcpAction);
         tcpModel.setAction(tcpAction);
         tcpModel.setToId(toId);
         tcpModel.setToId(toId);
@@ -145,71 +167,4 @@ public class TcpModel implements Serializable {
         return tcpModel;
         return tcpModel;
     }
     }
 
 
-    public static String callbackSuccess(){
-        TcpModel tcpModel = new TcpModel();
-        tcpModel.setType(TcpType.CALLBACK);
-        tcpModel.setAction(TcpAction.CallbackAction.SUCCESS);
-        return tcpModel.toJson();
-    }
-
-    public static String callbackFailed(){
-        TcpModel tcpModel = new TcpModel();
-        tcpModel.setType(TcpType.CALLBACK);
-        tcpModel.setAction(TcpAction.CallbackAction.FAILED);
-        return tcpModel.toJson();
-    }
-
-    public static String refresh() {
-        TcpModel tcpModel = new TcpModel();
-        tcpModel.setType(TcpType.DATA);
-        tcpModel.setAction(TcpAction.DataAction.REFRESH);
-        return tcpModel.toJson();
-    }
-
-
-    public static String interaction() {
-        TcpModel tcpModel = new TcpModel();
-        tcpModel.setType(TcpType.DATA);
-        tcpModel.setAction(TcpAction.DataAction.INTERACTION);
-        return tcpModel.toJson();
-    }
-
-//    /**
-//     * 示例
-//     * @param args
-//     */
-//    public static void main(String[] args) {
-//        //创建对象示例
-//        TcpModel tcpModel = new TcpModel();
-//        tcpModel.type = TcpType.VOICE;
-//        tcpModel.action = TcpAction.VoiceAction.CALL;
-//
-//        Map map = new HashMap();
-//
-//        DeviceDO deviceDO = new DeviceDO();
-//        deviceDO.setCode("123");
-//        deviceDO.setEthMac("abcd");
-//        map.put("device",deviceDO);
-//
-//        FrameDO frameDO = new FrameDO();
-//        frameDO.setName("ok");
-//        map.put("frame",frameDO);
-//
-//        tcpModel.setData(map);
-//
-//        System.out.println("enum show === " + tcpModel.action.getDescription() + " -- " + tcpModel.action.getName());
-//
-//        //要传输的json字符串
-//        String jsonStr = tcpModel.toJson();
-//        System.out.println("json show === " + jsonStr);
-//
-//        //获利传输的JSON字符串,转换为对象
-//        TcpModel dTcpModel = TcpModel.getModelByJson(jsonStr);
-//        //数据反转
-//        String dataString = dTcpModel.getData().toString();
-//        JSONObject dataJSON = JSON.parseObject(dataString);
-//        DeviceDO dDeviceDO = JSON.parseObject(dataJSON.getString("device"),DeviceDO.class);
-//
-//        System.out.println("json de show === " + dTcpModel.action + " -- " + dDeviceDO.getEthMac());
-//    }
 }
 }