From 69676cf96655ea6235a5e228c18783916d4edb55 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 06 十二月 2023 10:02:18 +0800
Subject: [PATCH] 海康接口对接开发

---
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                                   |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                              |    6 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java                                    |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java        |   55 ++--
 server/dmvisit_admin/src/main/java/com/doumee/api/business/DoorRoleController.java                               |    2 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java                                     |    4 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java                                 |    4 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupInfoResponse.java |   13 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java                              |   22 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java |    8 
 /dev/null                                                                                                        |  154 ------------
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java                               |   20 +
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java                               |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                        |    5 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java                                 |   15 +
 server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java                               |    3 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java          |  152 ++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java                                  |    2 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java                                  |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java     |  173 ++++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java          |   67 +++++
 server/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java                                    |    3 
 22 files changed, 514 insertions(+), 204 deletions(-)

diff --git a/.idea/libraries/Maven__commons_net_commons_net_3_8_0.xml b/.idea/libraries/Maven__commons_net_commons_net_3_8_0.xml
deleted file mode 100644
index d338100..0000000
--- a/.idea/libraries/Maven__commons_net_commons_net_3_8_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: commons-net:commons-net:3.8.0">
-    <CLASSES>
-      <root url="jar://$MAVEN_REPOSITORY$/commons-net/commons-net/3.8.0/commons-net-3.8.0.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$MAVEN_REPOSITORY$/commons-net/commons-net/3.8.0/commons-net-3.8.0-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$MAVEN_REPOSITORY$/commons-net/commons-net/3.8.0/commons-net-3.8.0-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DoorRoleController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DoorRoleController.java
index cc52adb..9d2c1ce 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DoorRoleController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DoorRoleController.java
@@ -6,8 +6,6 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
-import com.doumee.dao.business.model.DoorRole;
-import com.doumee.service.business.DoorRoleService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;    
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
index 1a0ddb4..3785a27 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -4,6 +4,7 @@
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
@@ -34,12 +35,20 @@
     private HkSyncService hkSyncService;
 
     @PreventRepeat
-    @ApiOperation("鍏ㄩ噺鍚屾闂ㄧ璁惧鎺ュ彛")
+    @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ラ棬绂佽澶囨帴鍙�")
     @PostMapping("/getDevices")
     @RequiresPermissions("business:hksync:device")
     public ApiResponse getDevices(@RequestBody AcsDeviceListRequest param) {
-        hkSyncService.syncHkDevices(param);
-        return ApiResponse.success(null);
+        String result = hkSyncService.syncHkDevices(param);
+        return ApiResponse.success(result);
+    }
+    @PreventRepeat
+    @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ュ仠杞﹀簱鎺ュ彛")
+    @PostMapping("/getDevices")
+    @RequiresPermissions("business:hksync:park")
+    public ApiResponse getDevices(@RequestBody ParkListRequest param) {
+        String result = hkSyncService.syncHkParks(param);
+        return ApiResponse.success(result);
     }
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupInfoResponse.java
new file mode 100644
index 0000000..ee1ebbb
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupInfoResponse.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class PrivilegeGroupInfoResponse {
+
+
+    private String  privilegeGroupId;//	string	False	鏉冮檺缁処D, 鐢ㄤ簬璁垮鐧昏鏃跺璁垮鎺堟潈
+    private String privilegeGroupName;//	string	False	鏉冮檺缁勫悕绉�
+    private String remark;//	string	False	鎻忚堪
+    private Integer isDefault	;//number	False	鏄惁鏄粯璁ゆ潈闄愮粍0: 鏄�1: 鍚�
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java
index 4f6f01e..6f8a77a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java
@@ -8,8 +8,8 @@
 public class PrivilegeGroupListResponse {
 
 
-    private String  privilegeGroupId;//	string	False	鏉冮檺缁処D, 鐢ㄤ簬璁垮鐧昏鏃跺璁垮鎺堟潈
-    private String privilegeGroupName;//	string	False	鏉冮檺缁勫悕绉�
-    private String remark;//	string	False	鎻忚堪
-    private Integer isDefault	;//number	False	鏄惁鏄粯璁ゆ潈闄愮粍0: 鏄�1: 鍚�
+    private int total;//	number	False	鏌ヨ鏁版嵁璁板綍鎬绘暟
+    private int pageSize;//	number	False	姣忛〉璁板綍鎬绘暟
+    private int pageNo	;// number	False	褰撳墠椤电爜
+    private List<PrivilegeGroupInfoResponse> list	;// object[]	False	鏉冮檺缁勫璞″垪琛�
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupResponse.java
deleted file mode 100644
index 568f690..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupResponse.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.doumee.core.haikang.model.param.respose;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class PrivilegeGroupResponse {
-
-
-    private int total;//	number	False	鏌ヨ鏁版嵁璁板綍鎬绘暟
-    private int pageSize;//	number	False	姣忛〉璁板綍鎬绘暟
-    private int pageNo	;// number	False	褰撳墠椤电爜
-    private List<PrivilegeGroupListResponse> list	;// object[]	False	鏉冮檺缁勫璞″垪琛�
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 4e57687..79f3e8a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -403,13 +403,13 @@
      *璁垮鏉冮檺缁勫垪琛ㄦ煡璇紙鍒嗛〉锛�
      * @return
      */
-    public  BaseResponse<PrivilegeGroupResponse>   privilegeGroup(PrivilegeGroupRequest param){
+    public  BaseResponse<PrivilegeGroupListResponse>   privilegeGroup(PrivilegeGroupRequest param){
         log.error("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.privilegeGroup(JSONObject.toJSONString(param));
             TypeReference typeReference =
-                    new TypeReference< BaseResponse<PrivilegeGroupResponse> >(){};
-            BaseResponse<PrivilegeGroupResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+                    new TypeReference< BaseResponse<PrivilegeGroupListResponse> >(){};
+            BaseResponse<PrivilegeGroupListResponse>   result = JSONObject.parseObject(res, typeReference.getType());
             log.error("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================鎴愬姛====\n"+res);
             return  result;
         }catch (Exception e){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index 914a43e..fbd8b5f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -31,6 +31,11 @@
          String activity_looknum = "looknum";
          String activity_signup = "signup";
     }
+    public interface DOOR_ROLE_TYPE{
+         int lw = 0;
+         int fk = 1;
+         int nb = 2;
+    }
     public static final String SUCCESS_STR = "SUCCESS" ;
 
     //寮�闂ㄦ椂闂存湁鏁堟湡锛堝垎閽燂級
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
index 1c2f59b..0f4f984 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.DeviceRole;
 
+import java.util.List;
+
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
 public interface DeviceRoleMapper extends BaseMapper<DeviceRole> {
 
+    void insertBatchSomeColumn(List<DeviceRole> addList);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/DoorRoleMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/DoorRoleMapper.java
deleted file mode 100644
index d9ecb58..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/DoorRoleMapper.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.doumee.dao.business;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.doumee.dao.business.model.DoorRole;
-
-/**
- * @author 姹熻箘韫�
- * @date 2023/11/23 18:16
- */
-public interface DoorRoleMapper extends BaseMapper<DoorRole> {
-
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
index 74f98f5..c9b7e2e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Parks;
 
+import java.util.List;
+
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
 public interface ParksMapper extends BaseMapper<Parks> {
 
+    void insertBatchSomeColumn(List<Parks> addList);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
index 4704f20..1e483b8 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -53,7 +53,7 @@
 
     @ApiModelProperty(value = "棰勭害鏍囪瘑", example = "1")
     @ExcelColumn(name="棰勭害鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
     @ExcelColumn(name="鎺掑簭鐮�")
@@ -69,7 +69,7 @@
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId2;
+    private String hkId2;
 
     @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�", example = "1")
     @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
index e9fd108..b86c30d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -104,7 +104,7 @@
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
     @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java
index 5eff5cf..0c48b92 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java
@@ -55,13 +55,13 @@
     @ExcelColumn(name="鍚嶇О")
     private String name;
 
-    @ApiModelProperty(value = "鏄惁榛樿 0鍚� 1鏄�", example = "1")
-    @ExcelColumn(name="鏄惁榛樿 0鍚� 1鏄�")
+    @ApiModelProperty(value = "鏄惁鏄粯璁ゆ潈闄愮粍0: 鏄�1: 鍚�", example = "1")
+    @ExcelColumn(name="鏄惁鏄粯璁ゆ潈闄愮粍0: 鏄�1: 鍚�")
     private Integer isDefault;
 
     @ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳")
     @ExcelColumn(name="绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳")
-    private String type;
+    private Integer type;
 
     @ApiModelProperty(value = "鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
     @ExcelColumn(name="鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
@@ -83,4 +83,18 @@
     @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
     private Integer status;
 
+    @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
+    @ExcelColumn(name="娴峰悍鏍囪瘑")
+    private String hkId;
+
+    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�", example = "1")
+    @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
+    private Integer hkStatus;
+
+    @ApiModelProperty(value = "娴峰悍鏈�杩戝悓姝ユ椂闂�")
+    @ExcelColumn(name="娴峰悍鏈�杩戝悓姝ユ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date hkDate;
+
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DoorRole.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DoorRole.java
deleted file mode 100644
index 8730f40..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DoorRole.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.doumee.dao.business.model;
-
-import com.doumee.core.annotation.excel.ExcelColumn;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.Date;
-
-/**
- * 闂ㄧ瑙掕壊淇℃伅琛�
- * @author 姹熻箘韫�
- * @date 2023/11/23 18:16
- */
-@Data
-@ApiModel("闂ㄧ瑙掕壊淇℃伅琛�")
-@TableName("`door_role`")
-public class DoorRole {
-
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name="涓婚敭")
-    private Integer id;
-
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
-    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
-    private String creator;
-
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date createDate;
-
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
-    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
-    private String edirot;
-
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name="鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date editDate;
-
-    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
-    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
-    private Integer isdeleted;
-
-    @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name="澶囨敞")
-    private String remark;
-
-    @ApiModelProperty(value = "鍚嶇О")
-    @ExcelColumn(name="鍚嶇О")
-    private String name;
-
-    @ApiModelProperty(value = "鏄惁榛樿 0鍚� 1鏄�", example = "1")
-    @ExcelColumn(name="鏄惁榛樿 0鍚� 1鏄�")
-    private Integer isDefault;
-
-    @ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳")
-    @ExcelColumn(name="绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳")
-    private String type;
-
-    @ApiModelProperty(value = "鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
-    @ExcelColumn(name="鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
-    private String doorIds;
-
-    @ApiModelProperty(value = "鍙娇鐢ㄩ棬绂佸悕绉帮紝澶氫釜鑻辨枃閫楀彿闅斿紑")
-    @ExcelColumn(name="鍙娇鐢ㄩ棬绂佸悕绉帮紝澶氫釜鑻辨枃閫楀彿闅斿紑")
-    private String doorNames;
-
-    @ApiModelProperty(value = "鍏宠仈杞﹀簱缂栫爜闆嗗悎")
-    @ExcelColumn(name="鍏宠仈杞﹀簱缂栫爜闆嗗悎")
-    private String parkIds;
-
-    @ApiModelProperty(value = "鍏宠仈杞﹀簱鍚嶇О闆嗗悎")
-    @ExcelColumn(name="鍏宠仈杞﹀簱鍚嶇О闆嗗悎")
-    private String parkNames;
-
-    @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1")
-    @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
-    private Integer status;
-
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
index fc6fe5b..41e5093 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -53,7 +53,7 @@
 
     @ApiModelProperty(value = "棰勭害鏍囪瘑", example = "1")
     @ExcelColumn(name="棰勭害鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
     @ExcelColumn(name="鎺掑簭鐮�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
index acb77ee..9c7d069 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -134,7 +134,7 @@
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触 ", example = "1")
     @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
index e52aa6d..214b280 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
@@ -65,7 +65,7 @@
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�", example = "1")
     @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
index 6d3f956..f904522 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
@@ -53,7 +53,7 @@
 
     @ApiModelProperty(value = "棰勭害鏍囪瘑", example = "1")
     @ExcelColumn(name="棰勭害鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
     @ExcelColumn(name="鎺掑簭鐮�")
@@ -95,7 +95,7 @@
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId2;
+    private String hkId2;
 
     @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0寰呬笅鍙� 1涓嬪彂鎴愬姛 2涓嬪彂澶辫触 3鍙栨秷涓嬪彂", example = "1")
     @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0寰呬笅鍙� 1涓嬪彂鎴愬姛 2涓嬪彂澶辫触 3鍙栨秷涓嬪彂")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
index 20858cc..e5143d5 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
@@ -53,11 +53,11 @@
 
     @ApiModelProperty(value = "棰樼洰")
     @ExcelColumn(name="棰樼洰")
-    private String title;
+    private String name;
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
     @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�", example = "1")
     @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/DoorRoleService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/DoorRoleService.java
deleted file mode 100644
index d7f44f5..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/DoorRoleService.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.doumee.service.business;
-
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.DoorRole;
-import java.util.List;
-
-/**
- * 闂ㄧ瑙掕壊淇℃伅琛⊿ervice瀹氫箟
- * @author 姹熻箘韫�
- * @date 2023/11/23 18:16
- */
-public interface DoorRoleService {
-
-    /**
-     * 鍒涘缓
-     * 
-     * @param doorRole 瀹炰綋瀵硅薄
-     * @return Integer
-     */
-    Integer create(DoorRole doorRole);
-
-    /**
-     * 涓婚敭鍒犻櫎
-     *
-     * @param id 涓婚敭
-     */
-    void deleteById(Integer id);
-
-    /**
-     * 鍒犻櫎
-     *
-     * @param doorRole 瀹炰綋瀵硅薄
-     */
-    void delete(DoorRole doorRole);
-
-    /**
-     * 鎵归噺涓婚敭鍒犻櫎
-     *
-     * @param ids 涓婚敭闆�
-     */
-    void deleteByIdInBatch(List<Integer> ids);
-
-    /**
-     * 涓婚敭鏇存柊
-     *
-     * @param doorRole 瀹炰綋瀵硅薄
-     */
-    void updateById(DoorRole doorRole);
-
-    /**
-     * 鎵归噺涓婚敭鏇存柊
-     *
-     * @param doorRoles 瀹炰綋闆�
-     */
-    void updateByIdInBatch(List<DoorRole> doorRoles);
-
-    /**
-     * 涓婚敭鏌ヨ
-     *
-     * @param id 涓婚敭
-     * @return DoorRole
-     */
-    DoorRole findById(Integer id);
-
-    /**
-     * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     *
-     * @param doorRole 瀹炰綋瀵硅薄
-     * @return DoorRole
-     */
-    DoorRole findOne(DoorRole doorRole);
-
-    /**
-     * 鏉′欢鏌ヨ
-     *
-     * @param doorRole 瀹炰綋瀵硅薄
-     * @return List<DoorRole>
-     */
-    List<DoorRole> findList(DoorRole doorRole);
-  
-    /**
-     * 鍒嗛〉鏌ヨ
-     *
-     * @param pageWrap 鍒嗛〉瀵硅薄
-     * @return PageData<DoorRole>
-     */
-    PageData<DoorRole> findPage(PageWrap<DoorRole> pageWrap);
-
-    /**
-     * 鏉′欢缁熻
-     *
-     * @param doorRole 瀹炰綋瀵硅薄
-     * @return long
-     */
-    long count(DoorRole doorRole);
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
index 7aca817..3bafd26 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
@@ -1,6 +1,8 @@
 package com.doumee.service.business;
 
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
+import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
 
 /**
  * 鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃Service瀹氫箟
@@ -8,5 +10,25 @@
  * @date 2023/11/30 15:33
  */
 public interface HkSyncService {
+    /**
+     * 鍚屾娴峰悍闂ㄧ璁惧
+     * @param param
+     * @return
+     */
     String syncHkDevices(AcsDeviceListRequest param);
+
+    /**
+     * 鍚屾娴峰悍鍋滆溅搴�
+     * @param param
+     * @return
+     */
+
+    String syncHkParks(ParkListRequest param);
+
+    /**
+     * 鍚屾娴峰悍璁垮鏉冮檺缁�
+     * @param param
+     * @return
+     */
+    String syncPrivilege(PrivilegeGroupRequest param);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DoorRoleServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DoorRoleServiceImpl.java
deleted file mode 100644
index 8a2561b..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DoorRoleServiceImpl.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package com.doumee.service.business.impl;
-
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.DoorRoleMapper;
-import com.doumee.dao.business.model.DoorRole;
-import com.doumee.service.business.DoorRoleService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.util.List;
-
-/**
- * 闂ㄧ瑙掕壊淇℃伅琛⊿ervice瀹炵幇
- * @author 姹熻箘韫�
- * @date 2023/11/23 18:16
- */
-@Service
-public class DoorRoleServiceImpl implements DoorRoleService {
-
-    @Autowired
-    private DoorRoleMapper doorRoleMapper;
-
-    @Override
-    public Integer create(DoorRole doorRole) {
-        doorRoleMapper.insert(doorRole);
-        return doorRole.getId();
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        doorRoleMapper.deleteById(id);
-    }
-
-    @Override
-    public void delete(DoorRole doorRole) {
-        UpdateWrapper<DoorRole> deleteWrapper = new UpdateWrapper<>(doorRole);
-        doorRoleMapper.delete(deleteWrapper);
-    }
-
-    @Override
-    public void deleteByIdInBatch(List<Integer> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
-            return;
-        }
-        doorRoleMapper.deleteBatchIds(ids);
-    }
-
-    @Override
-    public void updateById(DoorRole doorRole) {
-        doorRoleMapper.updateById(doorRole);
-    }
-
-    @Override
-    public void updateByIdInBatch(List<DoorRole> doorRoles) {
-        if (CollectionUtils.isEmpty(doorRoles)) {
-            return;
-        }
-        for (DoorRole doorRole: doorRoles) {
-            this.updateById(doorRole);
-        }
-    }
-
-    @Override
-    public DoorRole findById(Integer id) {
-        return doorRoleMapper.selectById(id);
-    }
-
-    @Override
-    public DoorRole findOne(DoorRole doorRole) {
-        QueryWrapper<DoorRole> wrapper = new QueryWrapper<>(doorRole);
-        return doorRoleMapper.selectOne(wrapper);
-    }
-
-    @Override
-    public List<DoorRole> findList(DoorRole doorRole) {
-        QueryWrapper<DoorRole> wrapper = new QueryWrapper<>(doorRole);
-        return doorRoleMapper.selectList(wrapper);
-    }
-  
-    @Override
-    public PageData<DoorRole> findPage(PageWrap<DoorRole> pageWrap) {
-        IPage<DoorRole> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<DoorRole> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(DoorRole::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(DoorRole::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(DoorRole::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(DoorRole::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEdirot() != null) {
-            queryWrapper.lambda().eq(DoorRole::getEdirot, pageWrap.getModel().getEdirot());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(DoorRole::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(DoorRole::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(DoorRole::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(DoorRole::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(DoorRole::getName, pageWrap.getModel().getName());
-        }
-        if (pageWrap.getModel().getIsDefault() != null) {
-            queryWrapper.lambda().eq(DoorRole::getIsDefault, pageWrap.getModel().getIsDefault());
-        }
-        if (pageWrap.getModel().getType() != null) {
-            queryWrapper.lambda().eq(DoorRole::getType, pageWrap.getModel().getType());
-        }
-        if (pageWrap.getModel().getDoorIds() != null) {
-            queryWrapper.lambda().eq(DoorRole::getDoorIds, pageWrap.getModel().getDoorIds());
-        }
-        if (pageWrap.getModel().getDoorNames() != null) {
-            queryWrapper.lambda().eq(DoorRole::getDoorNames, pageWrap.getModel().getDoorNames());
-        }
-        if (pageWrap.getModel().getParkIds() != null) {
-            queryWrapper.lambda().eq(DoorRole::getParkIds, pageWrap.getModel().getParkIds());
-        }
-        if (pageWrap.getModel().getParkNames() != null) {
-            queryWrapper.lambda().eq(DoorRole::getParkNames, pageWrap.getModel().getParkNames());
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(DoorRole::getStatus, pageWrap.getModel().getStatus());
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(doorRoleMapper.selectPage(page, queryWrapper));
-    }
-
-    @Override
-    public long count(DoorRole doorRole) {
-        QueryWrapper<DoorRole> wrapper = new QueryWrapper<>(doorRole);
-        return doorRoleMapper.selectCount(wrapper);
-    }
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
new file mode 100644
index 0000000..35fed63
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -0,0 +1,67 @@
+package com.doumee.service.business.impl.hksync;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
+import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
+import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
+import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse;
+import com.doumee.core.haikang.model.param.respose.ParkListResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.ParksMapper;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.Parks;
+import com.doumee.service.business.HkSyncService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璁惧淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class HkSyncBaseServiceImpl implements HkSyncService {
+
+    @Autowired
+    public HKService hkService;
+
+    /**
+     * 鍚屾娴峰悍鍋滆溅搴撴暟鎹�
+     * @param param
+     * @return
+     */
+    @Override
+//    @Async
+    public   String syncHkParks(ParkListRequest param){
+        return null;
+    }
+    /**
+     * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
+     * @param param
+     * @return
+     */
+    @Override
+//    @Async
+    public String syncHkDevices(AcsDeviceListRequest param){
+
+        return null;
+    }
+    @Override
+//    @Async
+    public String syncPrivilege(PrivilegeGroupRequest param){
+
+        return null;
+    }
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
similarity index 80%
rename from server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.java
rename to server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
index fe25c11..1c99ba1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -1,32 +1,25 @@
-package com.doumee.service.business.impl;
+package com.doumee.service.business.impl.hksync;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse;
+import com.doumee.core.haikang.model.param.respose.ParkListResponse;
 import com.doumee.core.haikang.service.HKService;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.ParksMapper;
 import com.doumee.dao.business.model.Device;
-import com.doumee.service.business.DeviceService;
-import com.doumee.service.business.HkSyncService;
+import com.doumee.dao.business.model.Parks;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -37,13 +30,16 @@
  * @date 2023/11/30 15:33
  */
 @Service
-public class HkSyncServiceImpl implements HkSyncService {
+public class HkSyncDeviceServiceImpl extends HkSyncBaseServiceImpl {
 
     @Autowired
     private DeviceMapper deviceMapper;
 
-    @Autowired
-    private HKService hkService;
+    /**
+     * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
+     * @param param
+     * @return
+     */
     @Override
 //    @Async
     public String syncHkDevices(AcsDeviceListRequest param){
@@ -56,10 +52,11 @@
         List<Device> allList = deviceMapper.selectList(null);
         boolean hasNext = true;
         int curTotal = 0;
+        int curPage = 1;
         while (hasNext){
             //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
             param = new AcsDeviceListRequest();
-            param.setPageNo(1);
+            param.setPageNo(curPage);
             param.setPageSize(10000);
             BaseResponse<AcsDeviceListResponse> response = hkService.acsDeviceList(param);
             if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
@@ -70,11 +67,17 @@
             if(curTotal >= r.getTotal()){
                 hasNext = false;
             }
-            List<AcsDeviceInfoResponse> tlist = r.getList();
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allHkList.addAll(r.getList());
+            }
+            curPage++;
         }
-        //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
-        getAddAndEditList(allList,allHkList,addList,editList,date);
-        getDeleteList(allList,allHkList,deleteList,date);
+        /**
+         * 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+         */
+        getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
         if(deleteList.size()>0){
             //閫昏緫鍒犻櫎
             for(Device d : deleteList){
@@ -89,25 +92,27 @@
                 deviceMapper.updateById(d);
             }
         }
-        return "鍚屾闂ㄧ鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+        return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
     }
 
-    private void getAddAndEditList(List<Device> allList, List<AcsDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList, Date date) {
+    private void getDataChangeList(List<Device> allList, List<AcsDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList,List<Device> deleteList, Date date) {
         if(allHkList!=null && allHkList.size()>0){
             for(AcsDeviceInfoResponse device : allHkList){
                 Device model = getExistedDevice(device,allList);
                 if(model !=null){
                     //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
-                    model =  initDeviceByHkData(model,device,date);
+                    model =  initDataByHkData(model,device,date);
                     editList.add(model);
                 }else{
                     //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
                     model = new Device();
-                    model =  initDeviceByHkData(model,device,date);
+                    model =  initDataByHkData(model,device,date);
                     addList.add(model);
                 }
             }
         }
+        //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
+        getDeleteList(allList,allHkList,deleteList,date);
     }
 
     /**
@@ -117,7 +122,7 @@
      * @param date
      * @return
      */
-    private Device initDeviceByHkData(Device model, AcsDeviceInfoResponse device,Date date) {
+    private Device initDataByHkData(Device model, AcsDeviceInfoResponse device,Date date) {
         model.setIsdeleted(Constants.ZERO);
         model.setIp(device.getIp());
         model.setHkDate(date);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
new file mode 100644
index 0000000..ee02471
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -0,0 +1,152 @@
+package com.doumee.service.business.impl.hksync;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
+import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
+import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse;
+import com.doumee.core.haikang.model.param.respose.ParkListResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.ParksMapper;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.Parks;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 娴峰悍鍋滆溅搴撳悓姝ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class HkSyncParkServiceImpl extends HkSyncBaseServiceImpl {
+
+    @Autowired
+    private ParksMapper parksMapper;
+
+    /**
+     * 鍚屾娴峰悍鍋滆溅搴撴暟鎹�
+     * @param param
+     * @return
+     */
+    @Override
+//    @Async
+    public   String syncHkParks(ParkListRequest param){
+        List<Parks> deleteList = new ArrayList<>();
+        List<Parks> addList = new ArrayList<>();
+        List<Parks> editList = new ArrayList<>();
+        Date date = new Date();
+        //鏌ヨ鍏ㄩ儴褰撳墠鏁版嵁
+        List<Parks> allList = parksMapper.selectList(null);
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+        param = new ParkListRequest();
+        BaseResponse<List<ParkListResponse>> response = hkService.parkList(param);
+        if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+        }
+        List<ParkListResponse> allHkList = response.getData();
+         // 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+        getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
+        if(deleteList.size()>0){
+            //閫昏緫鍒犻櫎
+            for(Parks d : deleteList){
+                parksMapper.updateById(d);
+            }
+        }
+        if(addList.size()>0){
+            parksMapper.insertBatchSomeColumn(addList);
+        }
+        if(editList.size()>0){
+            for(Parks d : editList){
+                parksMapper.updateById(d);
+            }
+        }
+        return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+    }
+    private void getDataChangeList(List<Parks> allList, List<ParkListResponse> allHkList, List<Parks> addList, List<Parks> editList,List<Parks> deleteList, Date date) {
+        if(allHkList!=null && allHkList.size()>0){
+            for(ParkListResponse device : allHkList){
+                Parks model = getExistedData(device,allList);
+                if(model !=null){
+                    //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
+                    model =  initModelByHkData(model,device,date);
+                    editList.add(model);
+                }else{
+                    //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
+                    model = new Parks();
+                    model =  initModelByHkData(model,device,date);
+                    addList.add(model);
+                }
+            }
+        }
+        //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
+        getDeleteList(allList,allHkList,deleteList,date);
+    }
+
+    /**
+     * 鍒濆鍖栨捣搴峰叆搴撴暟鎹�
+     * @param model
+     * @param device
+     * @param date
+     * @return
+     */
+    private Parks initModelByHkData(Parks model, ParkListResponse device,Date date) {
+        model.setIsdeleted(Constants.ZERO);
+        model.setName(device.getParkName());
+        model.setHkDate(date);
+        model.setCreateDate(DateUtil.StringToDate2(device.getCreateTime()));
+        model.setEditDate(DateUtil.StringToDate2(device.getUpdateTime()));
+        model.setHkId(device.getParkIndexCode());
+        model.setHkStatus(Constants.ONE);
+        return  model;
+    }
+
+    private Parks getExistedData(ParkListResponse data, List<Parks> allList) {
+        if(allList.size()>0){
+            for(Parks r : allList){
+                if(StringUtils.equals(r.getHkId(), data.getParkIndexCode())){
+                    //琛ㄧず鏈垹闄�
+                    return  r;
+                }
+            }
+        }
+        return  null;
+    }
+
+    private void getDeleteList(List<Parks> allList, List<ParkListResponse> allHkList,List<Parks> deleteList ,Date date) {
+        if(allList!=null && allList.size()>0){
+            for(Parks data : allList){
+                if(isDeletedDevice(data,allHkList)){
+                    data.setIsdeleted(Constants.ONE);
+                    data.setEditDate(date);
+                    deleteList.add(data);
+                }
+            }
+        }
+    }
+
+    private boolean isDeletedDevice(Parks device, List<ParkListResponse> allHkList) {
+        if(allHkList.size()>0){
+            for(ParkListResponse r : allHkList){
+                if(StringUtils.equals(device.getHkId(), r.getParkIndexCode())){
+                    //琛ㄧず鏈垹闄�
+                    return  false;
+                }
+            }
+        }
+        return  true;
+
+    }
+    
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
new file mode 100644
index 0000000..40b3f34
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -0,0 +1,173 @@
+package com.doumee.service.business.impl.hksync;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
+import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PrivilegeGroupInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PrivilegeGroupListResponse;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.DeviceRoleMapper;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.DeviceRole;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璁垮鏉冮檺缁勪俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class HkSyncPrivilegeServiceImpl extends HkSyncBaseServiceImpl {
+
+    @Autowired
+    private DeviceRoleMapper DeviceRoleMapper;
+    /**
+     * 鍚屾娴峰悍璁垮缁勬潈闄愭暟鎹�
+     * @param param
+     * @return
+     */
+    @Override
+//    @Async
+    public String syncPrivilege(PrivilegeGroupRequest param){
+        List<DeviceRole> deleteList = new ArrayList<>();
+        List<DeviceRole> addList = new ArrayList<>();
+        List<DeviceRole> editList = new ArrayList<>();
+        List<PrivilegeGroupInfoResponse> allHkList = new ArrayList<>();
+        Date date = new Date();
+        //鏌ヨ鍏ㄩ儴鐜版湁鏁版嵁锛屽彧绠$悊鍚屾 璁垮缁�
+        List<Integer> types = new ArrayList<>();
+        types.add(Constants.DOOR_ROLE_TYPE.fk);
+        types.add(Constants.DOOR_ROLE_TYPE.lw);
+        List<DeviceRole> allList = DeviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getType,types));
+        boolean hasNext = true;
+        int curTotal = 0;
+        int curPage = 1;
+        while (hasNext){
+            //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+            param = new PrivilegeGroupRequest();
+            param.setPageNo(curPage);
+            param.setPageSize(10000);
+            BaseResponse<PrivilegeGroupListResponse> response = hkService.privilegeGroup(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+            }
+            PrivilegeGroupListResponse r = response.getData();
+            curTotal += 10000;
+            if(curTotal >= r.getTotal()){
+                hasNext = false;
+            }
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allHkList.addAll(r.getList());
+            }
+            curPage ++;
+        }
+        /**
+         * 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+         */
+        getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
+        if(deleteList.size()>0){
+            //閫昏緫鍒犻櫎
+            for(DeviceRole d : deleteList){
+                DeviceRoleMapper.updateById(d);
+            }
+        }
+        if(addList.size()>0){
+            DeviceRoleMapper.insertBatchSomeColumn(addList);
+        }
+        if(editList.size()>0){
+            for(DeviceRole d : editList){
+                DeviceRoleMapper.updateById(d);
+            }
+        }
+        return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+    }
+
+    private void getDataChangeList(List<DeviceRole> allList, List<PrivilegeGroupInfoResponse> allHkList, List<DeviceRole> addList, List<DeviceRole> editList,List<DeviceRole> deleteList, Date date) {
+        if(allHkList!=null && allHkList.size()>0){
+            for(PrivilegeGroupInfoResponse device : allHkList){
+                DeviceRole model = getExistedData(device,allList);
+                if(model !=null){
+                    //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
+                    model =  initDataByHkData(model,device,date);
+                    editList.add(model);
+                }else{
+                    //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
+                    model = new DeviceRole();
+                    model =  initDataByHkData(model,device,date);
+                    addList.add(model);
+                }
+            }
+        }
+        //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
+        getDeleteList(allList,allHkList,deleteList,date);
+    }
+
+    /**
+     * 鍒濆鍖栨捣搴峰叆搴撴暟鎹�
+     * @param model
+     * @param device
+     * @param date
+     * @return
+     */
+    private DeviceRole initDataByHkData(DeviceRole model, PrivilegeGroupInfoResponse device,Date date) {
+        model.setIsdeleted(Constants.ZERO);
+        model.setHkId(device.getPrivilegeGroupId());
+        model.setName(device.getPrivilegeGroupName());
+        model.setHkStatus(Constants.ONE);
+        model.setIsdeleted(Constants.ONE);
+        model.setIsDefault(device.getIsDefault());
+        model.setType(Constants.ZERO);
+        return  model;
+    }
+
+    private DeviceRole getExistedData(PrivilegeGroupInfoResponse device, List<DeviceRole> allList) {
+        if(allList.size()>0){
+            for(DeviceRole r : allList){
+                if(StringUtils.equals(r.getHkId(), device.getPrivilegeGroupId())){
+                    //琛ㄧず鏈垹闄�
+                    return  r;
+                }
+            }
+        }
+        return  null;
+    }
+
+    private void getDeleteList(List<DeviceRole> allList, List<PrivilegeGroupInfoResponse> allHkList,List<DeviceRole> deleteList ,Date date) {
+        if(allList!=null && allList.size()>0){
+            for(DeviceRole device : allList){
+                if(isDeletedData(device,allHkList)){
+                    device.setIsdeleted(Constants.ONE);
+                    device.setEditDate(date);
+                    deleteList.add(device);
+                }
+            }
+        }
+    }
+
+    private boolean isDeletedData(DeviceRole device, List<PrivilegeGroupInfoResponse> allHkList) {
+        if(allHkList.size()>0){
+            for(PrivilegeGroupInfoResponse r : allHkList){
+                if(StringUtils.equals(device.getHkId(), r.getPrivilegeGroupId())){
+                    //琛ㄧず鏈垹闄�
+                    return  false;
+                }
+            }
+        }
+        return  true;
+
+    }
+    
+}

--
Gitblit v1.9.3