From 39739e34af928aae204c55db7974213c9b938c5a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 21 二月 2024 18:33:14 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java                                                    |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java                   |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                  |   18 
 server/dmvisit_screen/src/main/java/com/doumee/model/CountListResponse.java                                          |   19 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleInfoResponse.java            |   28 
 admin/src/views/business/parkBook.vue                                                                                |  107 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java               |   53 
 admin/src/api/business/parkBook.js                                                                                   |   32 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java         |   35 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserPhotoResponse.java              |   34 
 admin/package-lock.json                                                                                              |  160 +-
 admin/vue.config.js                                                                                                  |    2 
 server/dmvisit_screen/src/main/java/com/doumee/model/BaseRequest.java                                                |   12 
 admin/src/components/business/OperaVisitsHkWindow.vue                                                                |  173 +++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java  |    6 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java           |   13 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java            |    6 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java                                     |   21 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java                                     |   12 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java                          |    3 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java              |   18 
 admin/src/api/business/member.js                                                                                     |    5 
 server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java                                 |   25 
 admin/src/api/business/visits.js                                                                                     |    4 
 server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java                               |   10 
 server/dmvisit_screen/src/main/java/com/doumee/model/CarsDataListResponse.java                                       |   30 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserInfoResponse.java               |   19 
 server/openapi/src/main/resources/application.yml                                                                    |    2 
 server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java                                                 |   66 +
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java                                   |    2 
 server/dmvisit_service/src/main/resources/application-devYL.yml                                                      |    7 
 server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java                                           |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java             |    9 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java |   16 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java |  222 ++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarEventServiceImpl.java                       |   44 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgInfoResponse.java                |    3 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java           |   80 
 admin/src/api/business/company.js                                                                                    |    2 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java                                      |    1 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java         |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java                     |   23 
 server/dmvisit_screen/src/main/java/com/doumee/api/web/YlScreenController.java                                       |  194 ---
 server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java                                       |   10 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangeInfoResponse.java       |   19 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                  |  152 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java                             |    2 
 admin/src/views/business/visits_hk.vue                                                                               |  153 +++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeInfoResponse.java      |   66 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java                                   |    4 
 server/dmvisit_screen/src/main/java/com/doumee/api/web/ApiController.java                                            |    7 
 admin/src/views/business/deviceRole_f.vue                                                                            |    2 
 server/dmvisit_service/src/main/java/com/doumee/config/DataSyncConfig.java                                           |   19 
 admin/src/api/business/cars.js                                                                                       |   14 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java                                         |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java                    |   11 
 server/dmvisit_service/src/main/resources/application-pro.yml                                                        |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java                    |   45 
 server/dmvisit_admin/src/main/resources/application.yml                                                              |    2 
 server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java                                   |  301 +++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java                              |    9 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java                                    |   19 
 server/dmvisit_screen/src/main/java/com/doumee/service/ScreenService.java                                            |   24 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java     |   47 
 server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java                                             |   41 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java                     |    6 
 server/dmvisit_screen/src/main/java/com/doumee/ScreenApplication.java                                                |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java                        |   32 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java                                     |   21 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/ERPSyncController.java                                    |   12 
 server/dmvisit_screen/src/main/java/com/doumee/model/VisitDataListResponse.java                                      |   23 
 server/dmvisit_service/src/main/resources/application-dev.yml                                                        |    8 
 admin/src/views/business/carEvent.vue                                                                                |   13 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                                       |    2 
 server/dmvisit_screen/src/main/resources/application.yml                                                             |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java   |   43 
 server/dmvisit_screen/src/main/java/com/doumee/model/CountDataResponse.java                                          |   31 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java              |   16 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                      |  135 ++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java        |   58 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java                                         |    3 
 admin/src/views/business/cars.vue                                                                                    |   32 
 /dev/null                                                                                                            |   15 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java                     |   13 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                         |   30 
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                            |    1 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java        |    7 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleTimeRangeInfoResponse.java   |   20 
 server/dmvisit_service/src/main/resources/application-test.yml                                                       |   13 
 admin/src/views/business/internalMember.vue                                                                          |   13 
 admin/src/views/business/deviceEvent.vue                                                                             |    6 
 91 files changed, 2,320 insertions(+), 718 deletions(-)

diff --git a/admin/package-lock.json b/admin/package-lock.json
index 9b4b11f..09a1716 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -1819,6 +1819,63 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1826,6 +1883,28 @@
           "dev": true,
           "requires": {
             "minipass": "^3.1.1"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.8.3",
+          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
           }
         }
       }
@@ -13481,87 +13560,6 @@
           "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
           "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
           "dev": true
-        }
-      }
-    },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.8.3",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
-      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "hash-sum": "^2.0.0",
-        "loader-utils": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
         }
       }
     },
diff --git a/admin/src/api/business/cars.js b/admin/src/api/business/cars.js
index f5efbe0..e85d9e2 100644
--- a/admin/src/api/business/cars.js
+++ b/admin/src/api/business/cars.js
@@ -2,29 +2,33 @@
 
 // 鏌ヨ
 export function fetchList (data) {
-  return request.post('/business/parkBook/page', data, {
+  return request.post('/business/cars/page', data, {
     trim: true
   })
 }
 
 // 鍒涘缓
 export function create (data) {
-  return request.post('/business/parkBook/create', data)
+  return request.post('/business/cars/create', data)
 }
 
 // 淇敼
 export function updateById (data) {
-  return request.post('/business/parkBook/updateById', data)
+  return request.post('/business/cars/updateById', data)
+}
+// 淇敼
+export function sync (data) {
+  return request.post('/business/cars/sync', data)
 }
 
 // 鍒犻櫎
 export function deleteById (id) {
-  return request.get(`/business/parkBook/delete/${id}`)
+  return request.get(`/business/cars/delete/${id}`)
 }
 
 // 鎵归噺鍒犻櫎
 export function deleteByIdInBatch (ids) {
-  return request.get('/business/parkBook/delete/batch', {
+  return request.get('/business/cars/delete/batch', {
     params: {
       ids
     }
diff --git a/admin/src/api/business/company.js b/admin/src/api/business/company.js
index b657431..f779d2c 100644
--- a/admin/src/api/business/company.js
+++ b/admin/src/api/business/company.js
@@ -25,7 +25,7 @@
 
 // 閮ㄩ棬淇℃伅鍚屾
 export function companySync (data) {
-  return request.post('/business/company/sync', data)
+  return request.post('/business/company/syncAll', data)
 }
 
 // 鍒犻櫎
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
index 0d97137..0238bdf 100644
--- a/admin/src/api/business/member.js
+++ b/admin/src/api/business/member.js
@@ -9,7 +9,10 @@
     trim: true
   })
 }
-
+// 閮ㄩ棬淇℃伅鍚屾
+export function memberSync (data) {
+  return request.post('/business/member/syncAll', data)
+}
 // 瀵煎嚭Excel
 export function exportExcel (data) {
   return request.post('/business/member/exportExcel', data, {
diff --git a/admin/src/api/business/parkBook.js b/admin/src/api/business/parkBook.js
new file mode 100644
index 0000000..f5efbe0
--- /dev/null
+++ b/admin/src/api/business/parkBook.js
@@ -0,0 +1,32 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/business/parkBook/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/parkBook/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+  return request.post('/business/parkBook/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+  return request.get(`/business/parkBook/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+  return request.get('/business/parkBook/delete/batch', {
+    params: {
+      ids
+    }
+  })
+}
diff --git a/admin/src/api/business/visits.js b/admin/src/api/business/visits.js
index 4fb1516..8bf15d0 100644
--- a/admin/src/api/business/visits.js
+++ b/admin/src/api/business/visits.js
@@ -14,7 +14,9 @@
     download: true
   })
 }
-
+export function syncByDate (data) {
+  return request.post('/business/visits/syncByDate', data)
+}
 // 鍒涘缓
 export function create (data) {
   return request.post('/business/visits/create', data)
diff --git a/admin/src/components/business/OperaVisitsHkWindow.vue b/admin/src/components/business/OperaVisitsHkWindow.vue
new file mode 100644
index 0000000..2b931b1
--- /dev/null
+++ b/admin/src/components/business/OperaVisitsHkWindow.vue
@@ -0,0 +1,173 @@
+<template>
+  <GlobalWindow
+      :title="title"
+      width="500px"
+      :visible.sync="visible"
+      :confirm-working="isWorking"
+      @confirm="confirm"
+  >
+    <el-form :model="form" ref="form" :rules="rules" >
+      <el-form-item label="鍚屾鏃ユ湡" prop="startTime">
+        <el-date-picker
+            v-model="form.startTime"
+            format="yyyy-MM-dd"
+            value-format="yyyy-MM-dd HH:ss:mm"
+            type="date">
+        </el-date-picker>
+      </el-form-item>
+    </el-form>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { syncByDate } from '@/api/business/visits'
+export default {
+  name: 'OperaVisitsHkWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      form:{startTime: null},
+      rules: {
+        startTime: [
+          { required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  methods: {
+    open(title){
+      this.visible=true
+      this.title=title
+    },
+    // 鍚屾淇℃伅
+    confirm () {
+
+      this.$refs.form.validate((valid) => {
+        if (!valid) {
+          return
+        }
+        // 璋冪敤鏂板缓鎺ュ彛
+        this.isWorking = true
+        syncByDate({
+          starttime: this.form.startTime
+        })
+          .then(() => {
+            this.visible = false
+            this.$tip.apiSuccess('鍚屾鎴愬姛')
+            this.$emit('success')
+          })
+          .catch(e => {
+            this.$tip.apiFailed(e)
+          })
+          .finally(() => {
+            this.isWorking = false
+          })
+      })
+    }
+  }
+}
+</script>
+<style>
+    .el-image-viewer__wrapper {
+        z-index: 3000 !important;
+    }
+</style>
+<style lang="scss" scoped>
+    .list {
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        .list_item {
+            width: 100%;
+            margin-bottom: 30px;
+            &:last-child {
+                margin-bottom: 0 !important;
+            }
+            .list_item_label {
+                font-size: 18px;
+                font-weight: 600;
+                color: #000000;
+                margin-bottom: 15px;
+            }
+            .list_item_info {
+                font-size: 14px;
+                color: #222222;
+                margin-bottom: 10px;
+            }
+            .list_item_status {
+                width: 100%;
+                display: flex;
+                flex-direction: column;
+                .list_item_status_item {
+                    width: 100%;
+                    max-height: 100px;
+                    position: relative;
+                    margin-bottom: 30px;
+                    .dian {
+                        width: 15px;
+                        height: 15px;
+                        border-radius: 50%;
+                        background: #ffb447;
+                        position: absolute;
+                        left: 0;
+                        top: 50%;
+                        transform: translate(0, -50%);
+                    }
+                    .xian {
+                        width: 1px;
+                        height: calc(100% + 30px);
+                        background: #ffb447;
+                        position: absolute;
+                        top: 50%;
+                        left: 7px;
+                        transform: translate(-50%, 0);
+                    }
+                    .status_info {
+                        /*width: 100%;*/
+                        height: 100%;
+                        display: flex;
+                        flex-direction: column;
+                        margin-left: 30px;
+                        box-sizing: border-box;
+                        .status_info_a {
+                            font-size: 16px;
+                            color: black;
+                            margin-bottom: 10px;
+                        }
+                        .status_info_b {
+                            font-size: 13px;
+                            color: #666666;
+                            margin-bottom: 10px;
+                        }
+                        .status_info_c {
+                            padding: 5px 10px;
+                            background: #ececec;
+                            font-size: 13px;
+                            color: black;
+                            border-radius: 5px;
+                            box-sizing: border-box;
+                        }
+                    }
+                }
+            }
+            .list_item_val {
+                width: 100%;
+                margin-bottom: 15px;
+                &:last-child {
+                    margin-bottom: 0 !important;
+                }
+                .list_item_val_item {
+                    font-size: 14px;
+                    color: #222222;
+                    margin-bottom: 5px;
+                    &:last-child {
+                        margin-bottom: 0 !important;
+                    }
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/business/carEvent.vue b/admin/src/views/business/carEvent.vue
index 90aee50..bded4fb 100644
--- a/admin/src/views/business/carEvent.vue
+++ b/admin/src/views/business/carEvent.vue
@@ -78,13 +78,26 @@
                         <span v-if="row.inoutType === 1">鍑哄満</span>
                     </template>
                 </el-table-column>
+              <el-table-column label="杞︾墝鎶撴媿鍥�" min-width="100px">
+                <template slot-scope="{row}">
+                  <div  v-if="row.platePicUrl!=null">
+                    <el-image
+                        style="width: 80px; height: 80px"
+                        :src="row.platePicUrl"
+                        :preview-src-list="[row.platePicUrl]">
+                    </el-image>
+                  </div>
+                </template>
+              </el-table-column>
                 <el-table-column label="鎶撴媿鍥剧墖" min-width="100px">
                     <template slot-scope="{row}">
+                      <div  v-if="row.vehiclePicUrl!=null">
                         <el-image
                             style="width: 80px; height: 80px"
                             :src="row.vehiclePicUrl"
                             :preview-src-list="[row.vehiclePicUrl]">
                         </el-image>
+                      </div>
                     </template>
                 </el-table-column>
                 <el-table-column prop="happenTime" label="浜嬩欢鏃堕棿" min-width="100px"></el-table-column>
diff --git a/admin/src/views/business/cars.vue b/admin/src/views/business/cars.vue
index 84cb295..29820fb 100644
--- a/admin/src/views/business/cars.vue
+++ b/admin/src/views/business/cars.vue
@@ -20,7 +20,7 @@
         <template v-slot:table-wrap>
             <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']">
 <!--                <li><el-button type="primary" @click="$refs.operaCarsWindow.open('鏂板缓杞﹁締淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓</el-button></li>-->
-                <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
+                <li><el-button type="primary" @click="syncCars"   v-permissions="['business:cars:sync']">鍚屾</el-button></li>
             </ul>
             <el-table
                 v-loading="isWorking.search"
@@ -30,7 +30,6 @@
             >
                 <el-table-column type="selection" width="55"></el-table-column>
                 <el-table-column prop="code" label="杞︾墝鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="parksName" label="鍋滆溅鍦�" min-width="100px"></el-table-column>
                 <el-table-column label="鐢ㄦ埛绫诲瀷" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.memberType === 0">鍔冲姟璁垮</span>
@@ -41,26 +40,7 @@
                 <el-table-column prop="memberName" label="濮撳悕" min-width="100px"></el-table-column>
                 <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
                 <el-table-column prop="companyName" label="閮ㄩ棬/鍏徃" min-width="100px"></el-table-column>
-                <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-                <el-table-column prop="remark" label="鏈夋晥鏈�" min-width="100px">
-                    <template slot-scope="{row}">
-                        <span>{{validity(row.startTime, row.endTime)}}</span>
-<!--                        <span v-if="!row.startTime || !row.endTime">闀挎湡</span>-->
-<!--                        <span v-else>{{row.startTime}} 鑷� {{row.endTime}}</span>-->
-                    </template>
-                </el-table-column>
                 <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
-                <el-table-column
-                    v-if="containPermissions(['business:member:update', 'business:member:delete'])"
-                    label="鎿嶄綔"
-                    min-width="120"
-                    fixed="right"
-                >
-                    <template slot-scope="{row}">
-<!--                        <el-button type="text" @click="$refs.operaCarsWindow.open('缂栬緫杞﹁締淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:member:update']">缂栬緫</el-button>-->
-                        <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button>
-                    </template>
-                </el-table-column>
             </el-table>
             <pagination
                 @size-change="handleSizeChange"
@@ -79,7 +59,7 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaCarsWindow from '@/components/business/OperaCarsWindow'
-import { validity } from '@/utils/util'
+import { sync } from '@/api/business/cars'
 export default {
   name: 'Cars',
   extends: BaseTable,
@@ -102,6 +82,14 @@
       'field.main': 'id'
     })
     this.search()
+  },
+  methods: {
+    // 鍚屾淇℃伅
+    async syncCars () {
+      const message = await sync({})
+      this.$message.success(message)
+      this.search()
+    }
   }
 }
 </script>
diff --git a/admin/src/views/business/deviceEvent.vue b/admin/src/views/business/deviceEvent.vue
index f055fb4..6230072 100644
--- a/admin/src/views/business/deviceEvent.vue
+++ b/admin/src/views/business/deviceEvent.vue
@@ -60,9 +60,9 @@
                         <span v-if="row.userType === 2">鍐呴儴浜哄憳</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
-                <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="idcard" label="韬唤璇佸彿鐮�" min-width="100px"></el-table-column>
+                <el-table-column prop="personName" label="濮撳悕" min-width="100px"></el-table-column>
+                <el-table-column prop="personPhone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+                <el-table-column prop="personIdcardDecode" label="璇佷欢鍙�" min-width="100px"></el-table-column>
                 <el-table-column prop="personCompanyName" label="鍏徃/缁勭粐" min-width="100px"></el-table-column>
                 <el-table-column prop="devName" label="闂ㄧ鍚嶇О" min-width="100px"></el-table-column>
                 <el-table-column prop="srcName" label="闂ㄧ鐐�" min-width="100px"></el-table-column>
diff --git a/admin/src/views/business/deviceRole_f.vue b/admin/src/views/business/deviceRole_f.vue
index 3bfc907..302cd6d 100644
--- a/admin/src/views/business/deviceRole_f.vue
+++ b/admin/src/views/business/deviceRole_f.vue
@@ -96,7 +96,7 @@
       }).then(() => {
         syncPrivilege({})
           .then(res => {
-            this.$message({ type: 'success', message: '鍚屾鎴愬姛' })
+            this.$message({ type: 'success', message:res || '鍚屾鎴愬姛' })
             this.search()
           })
       }).catch(() => {
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index 5e85fd8..7d48090 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -39,7 +39,7 @@
         <template v-slot:table-wrap>
             <ul class="toolbar" v-permissions="['business:member:delete']">
                 <li><el-button type="primary">闂ㄧ鎺堟潈</el-button></li>
-                <li><el-button type="primary" v-permissions="['business:member:sync']">鍚屾</el-button></li>
+                <li><el-button type="primary" v-permissions="['business:member:sync']"  @click="synchronous()">鍚屾</el-button></li>
                 <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
             </ul>
             <el-table
@@ -121,7 +121,8 @@
 import TableLayout1 from '@/layouts/TableLayout1'
 import Pagination from '@/components/common/Pagination'
 import Tree from '@/components/common/Tree'
-import { fetchList } from '@/api/business/company'
+import { fetchList} from '@/api/business/company'
+import {memberSync} from "@/api/business/member";
 export default {
   name: 'internalMember',
   extends: BaseTable,
@@ -137,6 +138,7 @@
         keyword: '',
         type: 2,
         erpOrgId: '',
+        companyId: '',
         hasFace: ''
       },
       companyTree: []
@@ -162,9 +164,16 @@
           this.search()
         })
     },
+    // 鍚屾淇℃伅
+    async synchronous () {
+      const message = await memberSync({})
+      this.$message.success(message)
+      this.search()
+    } ,
     callback (row) {
       console.log(row)
       this.searchForm.erpOrgId = row.erpId
+      this.searchForm.companyId = row.id
       this.search()
     }
   }
diff --git a/admin/src/views/business/parkBook.vue b/admin/src/views/business/parkBook.vue
new file mode 100644
index 0000000..1a9aea1
--- /dev/null
+++ b/admin/src/views/business/parkBook.vue
@@ -0,0 +1,107 @@
+<template>
+    <TableLayout :permissions="['business:member:query']">
+        <!-- 鎼滅储琛ㄥ崟 -->
+        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline>
+            <el-form-item label="杞︾墝鍙�" prop="code">
+                <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item label="鍛樺伐濮撳悕/鎵嬫満鍙�" prop="memberName">
+                <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ュ憳宸ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item label="閮ㄩ棬" prop="companyName">
+                <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ラ儴闂�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <section>
+                <el-button type="primary" @click="search">鎼滅储</el-button>
+                <el-button @click="reset">閲嶇疆</el-button>
+            </section>
+        </el-form>
+        <!-- 琛ㄦ牸鍜屽垎椤� -->
+        <template v-slot:table-wrap>
+            <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']">
+<!--                <li><el-button type="primary" @click="$refs.operaCarsWindow.open('鏂板缓杞﹁締淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓</el-button></li>-->
+                <li><el-button @click="syncCars" icon="el-icon-delete" v-permissions="['business:cars:sync']">鍚屾</el-button></li>
+                <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cars:delete']">鍒犻櫎</el-button></li>
+            </ul>
+            <el-table
+                v-loading="isWorking.search"
+                :data="tableData.list"
+                stripe
+                @selection-change="handleSelectionChange"
+            >
+                <el-table-column type="selection" width="55"></el-table-column>
+                <el-table-column prop="code" label="杞︾墝鍙�" min-width="100px"></el-table-column>
+                <el-table-column prop="parksName" label="鍋滆溅鍦�" min-width="100px"></el-table-column>
+                <el-table-column label="鐢ㄦ埛绫诲瀷" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span v-if="row.memberType === 0">鍔冲姟璁垮</span>
+                        <span v-if="row.memberType === 1">鏅�氳瀹�</span>
+                        <span v-if="row.memberType === 2">鍐呴儴浜哄憳</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="memberName" label="濮撳悕" min-width="100px"></el-table-column>
+                <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+                <el-table-column prop="companyName" label="閮ㄩ棬/鍏徃" min-width="100px"></el-table-column>
+                <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+                <el-table-column prop="remark" label="鏈夋晥鏈�" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span>{{validity(row.startTime, row.endTime)}}</span>
+<!--                        <span v-if="!row.startTime || !row.endTime">闀挎湡</span>-->
+<!--                        <span v-else>{{row.startTime}} 鑷� {{row.endTime}}</span>-->
+                    </template>
+                </el-table-column>
+                <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+                <el-table-column
+                    v-if="containPermissions(['business:member:update', 'business:member:delete'])"
+                    label="鎿嶄綔"
+                    min-width="120"
+                    fixed="right"
+                >
+                    <template slot-scope="{row}">
+<!--                        <el-button type="text" @click="$refs.operaCarsWindow.open('缂栬緫杞﹁締淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:member:update']">缂栬緫</el-button>-->
+                        <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <pagination
+                @size-change="handleSizeChange"
+                @current-change="handlePageChange"
+                :pagination="tableData.pagination"
+            >
+            </pagination>
+        </template>
+        <!-- 鏂板缓/淇敼 -->
+        <OperaCarsWindow ref="operaCarsWindow" @success="handlePageChange"/>
+    </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaCarsWindow from '@/components/business/OperaCarsWindow'
+export default {
+  name: 'parkBook',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaCarsWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        code: '',
+        memberName: '',
+        companyName: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '杞﹁締淇℃伅琛�',
+      api: '/business/parkBook',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/admin/src/views/business/visits_hk.vue b/admin/src/views/business/visits_hk.vue
new file mode 100644
index 0000000..194d556
--- /dev/null
+++ b/admin/src/views/business/visits_hk.vue
@@ -0,0 +1,153 @@
+<template>
+    <TableLayout :permissions="['business:visits:query']">
+        <!-- 鎼滅储琛ㄥ崟 -->
+        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+            <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="name">
+                <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item label="韬唤璇佸彿" prop="idcardNo">
+                <el-input v-model="searchForm.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item label="鍏徃鍚嶇О" prop="companyName">
+                <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item label="瀹℃壒鐘舵��" prop="status">
+                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+                    <el-option label="寰呭鏍�" value="1"></el-option>
+                    <el-option label="姝e父" value="2"></el-option>
+                    <el-option label="杩熷埌" value="3"></el-option>
+                    <el-option label="瀹℃牳閫�鍥�" value="4"></el-option>
+                    <el-option label="瓒呮湡鑷姩绛剧" value="5"></el-option>
+                    <el-option label="宸茬绂�" value="6"></el-option>
+                    <el-option label="瓒呮湡鏈绂�" value="7"></el-option>
+                    <el-option label="宸插埌杈�" value="8"></el-option>
+                    <el-option label="瀹℃牳澶辨晥" value="9"></el-option>
+                    <el-option label="閭�绾︿腑" value="10"></el-option>
+                    <el-option label="閭�绾﹀け鏁�" value="11"></el-option>
+                </el-select>
+            </el-form-item>
+            <section>
+                <el-button type="primary" @click="search">鎼滅储</el-button>
+<!--                <el-button type="primary" :loading="isWorking.export" v-permissions="['business:visits:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>-->
+                <el-button @click="reset">閲嶇疆</el-button>
+            </section>
+        </el-form>
+        <!-- 琛ㄦ牸鍜屽垎椤� -->
+        <template v-slot:table-wrap>
+          <ul class="toolbar"  v-permissions="['business:visits:sync']">
+            <li><el-button type="primary"  v-permissions="['business:visits:sync']" @click="$refs.OperaVisitsHkWindow.open('鍚屾璁垮璁板綍')">鍚屾</el-button></li>
+          </ul>
+            <el-table
+                v-loading="isWorking.search"
+                :data="tableData.list"
+                stripe
+                @selection-change="handleSelectionChange"
+            >
+                <el-table-column type="selection" width="55"></el-table-column>
+                <el-table-column prop="name" label="璁垮濮撳悕" min-width="100px"></el-table-column>
+                <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+                <el-table-column prop="companyName" label="鍏徃鍚嶇О" min-width="100px"></el-table-column>
+                <el-table-column prop="receptMemberName" label="琚浜�" min-width="100px"></el-table-column>
+                <el-table-column prop="reason" label="鎷滆浜嬬敱" min-width="100px"></el-table-column>
+                <el-table-column label="鎷滆鏃堕棿" min-width="170px">
+                    <template slot-scope="{row}">
+                        <span>璧凤細{{row.starttime}}</span><br/>
+                        <span>姝細{{row.endtime}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="闅忚浜哄憳" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span>{{row.memberNum || '-'}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="闅忚杞﹁締" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span v-if="row.carNos">{{row.carNos.split(',').length}}</span>
+                        <span v-else>-</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="status" fixed="right" label="鐘舵��" min-width="100px">
+                    <template slot-scope="{row}">
+                      <el-option label="寰呭鏍�" value="1"></el-option>
+                      <el-option label="姝e父" value="2"></el-option>
+                      <el-option label="杩熷埌" value="3"></el-option>
+                      <el-option label="瀹℃牳閫�鍥�" value="4"></el-option>
+                      <el-option label="瓒呮湡鑷姩绛剧" value="5"></el-option>
+                      <el-option label="宸茬绂�" value="6"></el-option>
+                      <el-option label="瓒呮湡鏈绂�" value="7"></el-option>
+                      <el-option label="宸插埌杈�" value="8"></el-option>
+                      <el-option label="瀹℃牳澶辨晥" value="9"></el-option>
+                      <el-option label="閭�绾︿腑" value="10"></el-option>
+                      <el-option label="閭�绾﹀け鏁�" value="11"></el-option>
+                        <span v-if="row.status === 1">寰呭鏍�</span>
+                        <span v-if="row.status === 2">姝e父</span>
+                        <span v-if="row.status === 3">杩熷埌</span>
+                        <span v-if="row.status === 4">瀹℃牳閫�鍥�</span>
+                        <span v-if="row.status === 5">瓒呮湡鑷姩绛剧</span>
+                        <span v-if="row.status === 6">宸茬绂�</span>
+                        <span v-if="row.status === 7">瓒呮湡鏈绂�</span>
+                        <span v-if="row.status === 8">宸插埌杈�</span>
+                        <span v-if="row.status === 9">瀹℃牳澶辨晥</span>
+                        <span v-if="row.status === 10">閭�绾︿腑</span>
+                        <span v-if="row.status === 11">閭�绾﹀け鏁�</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    v-if="containPermissions(['business:visits:update', 'business:visits:delete'])"
+                    label="鎿嶄綔"
+                    min-width="100"
+                    fixed="right"
+                >
+                    <template slot-scope="{row}">
+                        <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('璇︽儏', row.id)" v-permissions="['business:visits:update']">鏌ョ湅璇︽儏</el-button>
+<!--                        <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">鏌ヨ瀹℃壒缁撴灉</el-button>-->
+                    </template>
+                </el-table-column>
+            </el-table>
+            <pagination
+                @size-change="handleSizeChange"
+                @current-change="handlePageChange"
+                :pagination="tableData.pagination"
+            >
+            </pagination>
+            <!--      璇︽儏      -->
+            <OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
+            <OperaVisitsHkWindow ref="OperaVisitsHkWindow" />
+        </template>
+    </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
+import OperaVisitsHkWindow from '@/components/business/OperaVisitsHkWindow'
+export default {
+  name: 'Visits',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaVisitsDesWindow,OperaVisitsHkWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        name: '',
+        companyName: '',
+        idcardNo: '',
+        status: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '璁垮鐢宠淇℃伅琛�',
+      api: '/business/visits',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  },
+  methods: {
+  }
+}
+</script>
diff --git a/admin/vue.config.js b/admin/vue.config.js
index e08a5c9..6f55375 100644
--- a/admin/vue.config.js
+++ b/admin/vue.config.js
@@ -14,7 +14,7 @@
         // http://192.168.0.110:10013   纾婄
         // http://192.168.0.132:10013   甯呭摜
         // https://dmtest.ahapp.net/admin_api   娴嬭瘯鏈�
-        target: 'https://dmtest.ahapp.net/admin_api',
+        target: 'http://localhost:10028',
         changeOrigin: true,
         pathRewrite: {
           [`^${[process.env.VUE_APP_API_PREFIX]}`]: ''
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
index 3ea4554..6b1974f 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
@@ -8,6 +8,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.dao.business.model.Cars;
 import com.doumee.service.business.CarsService;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;    
@@ -29,6 +30,8 @@
 
     @Autowired
     private CarsService carsService;
+    @Autowired
+    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
 
     @PreventRepeat
     @ApiOperation("鏂板缓")
@@ -66,6 +69,13 @@
         carsService.updateById(cars);
         return ApiResponse.success(null);
     }
+    @ApiOperation("鍏ㄩ噺鍚屾杞﹁締淇℃伅")
+    @PostMapping("/sync")
+    @RequiresPermissions("business:cars:sync")
+    public ApiResponse sync(@RequestBody Cars cars) {
+        hkSyncVehicleFromHKService.syncVehicleData();
+        return ApiResponse.success(null);
+    }
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
index fd9872f..488965e 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
@@ -1,6 +1,7 @@
 package com.doumee.api.business;
 
 import com.doumee.api.BaseController;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
@@ -10,9 +11,9 @@
 import com.doumee.dao.admin.request.UpdateCompanySortDTO;
 import com.doumee.dao.admin.response.CompanyDTO;
 import com.doumee.dao.business.model.Company;
-import com.doumee.dao.system.dto.UpdateSystemMenuSortDTO;
 import com.doumee.service.business.CompanyService;
-import com.doumee.service.business.ERPSyncService;
+import com.doumee.service.business.ext.ERPSyncService;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -40,6 +41,10 @@
 
     @Autowired
     private ERPSyncService erpSyncService;
+    @Autowired
+    private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
 
     @PreventRepeat
     @ApiOperation("鏂板缓")
@@ -161,11 +166,15 @@
 
 
 
-    @ApiOperation("閮ㄩ棬淇℃伅鍚屾")
-    @PostMapping("/sync")
+    @ApiOperation("鍏ㄩ噺閮ㄩ棬淇℃伅鍚屾")
+    @PostMapping("/syncAll")
     @RequiresPermissions("business:company:sync")
     public ApiResponse sync(){
-        erpSyncService.syncCompany(null);
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
+            erpSyncService.syncCompany(null);
+        }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){
+            hkSyncOrgUserFHKService.syncOrgData();
+        }
         return ApiResponse.success("鍚屾鎴愬姛");
     }
 }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/ERPSyncController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/ERPSyncController.java
index c1e9dbf..92bd26b 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/ERPSyncController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/ERPSyncController.java
@@ -3,15 +3,9 @@
 import com.doumee.api.BaseController;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.erp.model.openapi.request.erp.OrgListRequest;
-import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
 import com.doumee.core.erp.model.openapi.request.erp.UserListRequest;
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
 import com.doumee.core.model.ApiResponse;
-import com.doumee.service.business.ERPSyncService;
-import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncPrivilegeServiceImpl;
+import com.doumee.service.business.ext.ERPSyncService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -35,7 +29,7 @@
     @PreventRepeat
     @ApiOperation("銆怑RP銆戝叏閲忓悓姝RP缁勭粐鎺ュ彛")
     @PostMapping("/getCompanies")
-    //@RequiresPermissions("business:erpsync:company")
+    @RequiresPermissions("business:erpsync:company")
     public ApiResponse getCompanies(@RequestBody OrgListRequest param) {
         String result = erpSyncService.syncCompany(param);
         return ApiResponse.success(result);
@@ -43,7 +37,7 @@
     @PreventRepeat
     @ApiOperation("銆怑RP銆戝叏閲忓悓姝RP浜哄憳鎺ュ彛")
     @PostMapping("/getUsers")
-//    @RequiresPermissions("business:erpsync:users")
+    @RequiresPermissions("business:erpsync:users")
     public ApiResponse getUsers(@RequestBody UserListRequest param) {
         String result = erpSyncService.syncUsers(param);
         return ApiResponse.success(result);
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
index 93eecb0..0929320 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -1,6 +1,7 @@
 package com.doumee.api.business;
 
 import com.doumee.api.BaseController;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
@@ -11,7 +12,9 @@
 import com.doumee.dao.admin.request.MemberQuery;
 import com.doumee.dao.admin.response.MemberInfoDTO;
 import com.doumee.dao.business.model.Member;
+import com.doumee.service.business.ext.ERPSyncService;
 import com.doumee.service.business.MemberService;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -30,6 +33,12 @@
 @RestController
 @RequestMapping("/business/member")
 public class MemberController extends BaseController {
+    @Autowired
+    private ERPSyncService erpSyncService;
+    @Autowired
+    private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
 
     @Autowired
     private MemberService memberService;
@@ -215,4 +224,16 @@
         return ApiResponse.success(memberService.findList(member));
     }
 
+    @ApiOperation("鍏ㄩ噺淇℃伅鍚屾")
+    @PostMapping("/syncAll")
+    @RequiresPermissions("business:member:sync")
+    public ApiResponse sync(){
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
+            erpSyncService.syncUsers(null);
+        }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){
+            hkSyncOrgUserFHKService.syncUserData();
+        }
+        return ApiResponse.success("鍚屾鎴愬姛");
+    }
+
 }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
index 1250411..875640f 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
@@ -8,6 +8,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.dao.business.model.Visits;
 import com.doumee.service.business.VisitsService;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;    
@@ -16,6 +17,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -29,6 +31,8 @@
 
     @Autowired
     private VisitsService visitsService;
+    @Autowired
+    private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService;
 
     @PreventRepeat
     @ApiOperation("鏂板缓")
@@ -67,6 +71,14 @@
         return ApiResponse.success(null);
     }
 
+    @ApiOperation("鏍规嵁鏃ユ湡(starttime)鍚屾璁垮鏁版嵁")
+    @PostMapping("/syncByDate")
+    @RequiresPermissions("business:visits:sync")
+    public ApiResponse syncByDate(@RequestBody Visits visits) {
+        hkSyncVisitFromHKService.syncVistAppointData(visits.getStarttime());
+        return ApiResponse.success(null);
+    }
+
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @RequiresPermissions("business:visits:query")
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java b/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
index 4e2cf2b..d31fad0 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
@@ -5,7 +5,7 @@
 import com.doumee.core.haikang.model.HKTools;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.EventSubRequest;
-import com.doumee.core.haikang.model.param.respose.OrgListResponse;
+import com.doumee.core.haikang.model.param.respose.OrgInfoResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.system.model.SystemDictData;
@@ -56,7 +56,7 @@
             SystemDictData orgName =  systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_ROOTORG_NAME);
             String rootOrgId =org.getCode();
             if(StringUtils.isBlank(rootOrgId)){
-                BaseResponse<OrgListResponse> res = HKService.getRootOrg(null);
+                BaseResponse<OrgInfoResponse> res = HKService.getRootOrg(null);
                 if(res !=null && res.getData()!=null && StringUtils.isNotBlank(res.getData().getOrgIndexCode())){
                     org.setCode(res.getData().getOrgIndexCode());
                     org.setUpdateTime(new Date());
@@ -74,6 +74,7 @@
      * 璁㈤槄闂ㄧ浜嬩欢銆佽瀹簨浠躲�佸拰鍋滆溅鍦轰簨浠�
      */
     public void startHkEventSub(){
+        cancelEventSub();
         EventSubRequest param = new EventSubRequest();
         String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
         param.setEventDest(path+"/parks");
@@ -81,15 +82,18 @@
                 ,HKConstants.EventTypes.PARK_LINE_OUT.getKey()
                 ,HKConstants.EventTypes.PARK_PASS_IN.getKey()
                 ,HKConstants.EventTypes.PARK_PASS_OUT.getKey() });
+        HKService.cancelEventSub(param);////鍏堝彇娑�
         HKService.eventSub(param);//鍋滆溅鍦轰簨浠�
 
         param.setEventDest(path+"/visit");
         param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()
                 ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()});
+        HKService.cancelEventSub(param);//鍏堝彇娑�
         HKService.eventSub(param);//璁垮浜嬩欢
 
         param.setEventDest(path+"/acs");
         param.setEventTypes(new Integer[]{HKConstants.EventTypes.DOOR_FACE_AUTH_FAIL.getKey(),HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()});
+        HKService.cancelEventSub(param);//鍏堝彇娑�
         HKService.eventSub(param);//闂ㄧ浜嬩欢
 
     }
@@ -105,6 +109,8 @@
                 ,HKConstants.EventTypes.PARK_PASS_OUT.getKey()
                 ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey(),
                 HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()});
+        String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
+        param.setEventDest(path);
         HKService.cancelEventSub(param);//鍋滆溅鍦轰簨浠�
 
     }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
index 326d4c9..101e31a 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -1,16 +1,23 @@
 package com.doumee.task;
 
 
+import com.doumee.config.DataSyncConfig;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.Constants;
 import com.doumee.service.business.MemberService;
 import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
 import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncOrgUserServiceImpl;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
 import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+
+import java.util.Date;
 
 /**
  * 瀹氭椂浠诲姟
@@ -27,7 +34,11 @@
     @Autowired
     private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
     @Autowired
-    private HkSyncOrgUserServiceImpl hkSyncOrgUserService;
+    private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserService;
+    @Autowired
+    private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService;
+    @Autowired
+    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
     @Autowired
     private HkSyncVisitServiceImpl hkSyncVisitService;
     @Autowired
@@ -35,17 +46,45 @@
     /**
      * 鏄惁寮�鍙戣��
      */
-    @Value("${timing}")
-    private Boolean timing;
-
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
 
     /**
-     * 缂撳瓨鐪佸競鍖�
+     * 姣忓垎閽熸媺鍙栦竴娆′粖鏃ョ殑璁垮棰勭害鏁版嵁
+     * @throws Exception
+     */
+    @Scheduled(cron= "0 0 23 * * ?")
+    public void syncVehicleUpdateData() throws Exception {
+        hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
+    }
+    /**
+     * 姣忓垎閽熸媺鍙栦竴娆′粖鏃ョ殑璁垮棰勭害鏁版嵁
+     * @throws Exception
+     */
+    @Scheduled(fixedDelay= 60*1000)
+    public void syncVistAppointData() throws Exception {
+        if(Constants.DEALING_FROM_HK_VISIT){
+            return ;
+        }
+        try {
+            Constants.DEALING_FROM_HK_VISIT =true;
+            hkSyncVisitFromHKService.syncVistAppointData(new Date());
+            Constants.DEALING_FROM_HK_VISIT =false;
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+        }finally {
+            Constants.DEALING_FROM_HK_VISIT =false;
+        }
+    }
+    /**
+     * 涓嬭浇娴峰悍绯荤粺鍥剧墖鏁版嵁
      * @throws Exception
      */
     @Scheduled(fixedDelay= 60*1000)
     public void downloadHkImg() throws Exception {
-        hkSyncImgService.downHKImgs(0);
+        if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){
+            hkSyncImgService.downHKImgs(0);
+        }
     }
     /**
      * 瀹氭椂鍚屾缁勭粐淇℃伅鍒版捣搴风郴缁�
@@ -53,7 +92,10 @@
      */
     @Scheduled(fixedDelay= 60*1000)
     public void syncOrgData() {
-        hkSyncOrgUserService.syncOrgData();
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
+            //濡傛灉鏄疎RP绯荤粺鍚屾涓嬪彂
+            hkSyncOrgUserService.syncOrgData();
+        }
     }
     /**
      * 瀹氭椂鍚屾鐢ㄦ埛淇℃伅鍒版捣搴风郴缁�
@@ -61,7 +103,10 @@
      */
     @Scheduled(fixedDelay= 60*1000)
     public void syncUserData()  {
-        hkSyncOrgUserService.syncUserData();
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
+            //濡傛灉鏄疎RP绯荤粺鍚屾涓嬪彂
+            hkSyncOrgUserService.syncUserData();
+        }
     }
     /**
      * 瀹氭椂鍚屾鐢宠閫氳繃鐨勮瀹㈡暟鎹埌娴峰悍绯荤粺
@@ -77,6 +122,7 @@
      */
     @Scheduled(fixedDelay= 60*1000)
     public void syncEmpowerData()  {
+
         hkSyncEmpowerService.syncEmpowerData();
     }
     /**
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index a5c7678..a91f8c2 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -10,7 +10,7 @@
   #  application:
   #    name: doumeemes
   profiles:
-    active: dev
+    active: devYL
 
   # JSON杩斿洖閰嶇疆
   jackson:
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/OpenapiApplication.java b/server/dmvisit_screen/src/main/java/com/doumee/ScreenApplication.java
similarity index 82%
rename from server/dmvisit_screen/src/main/java/com/doumee/OpenapiApplication.java
rename to server/dmvisit_screen/src/main/java/com/doumee/ScreenApplication.java
index fcd92d5..d3c1e75 100644
--- a/server/dmvisit_screen/src/main/java/com/doumee/OpenapiApplication.java
+++ b/server/dmvisit_screen/src/main/java/com/doumee/ScreenApplication.java
@@ -16,10 +16,10 @@
 @SpringBootApplication
 @EnableAsync
 @MapperScan("com.doumee.dao")
-public class OpenapiApplication {
+public class ScreenApplication {
 
     public static void main(String[] args) {
-        ApplicationContext context = SpringApplication.run(OpenapiApplication.class);
+        ApplicationContext context = SpringApplication.run(ScreenApplication.class);
         context.getEnvironment();
     }
 }
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/api/web/ApiController.java b/server/dmvisit_screen/src/main/java/com/doumee/api/web/ApiController.java
index ecceb79..b4b2a20 100644
--- a/server/dmvisit_screen/src/main/java/com/doumee/api/web/ApiController.java
+++ b/server/dmvisit_screen/src/main/java/com/doumee/api/web/ApiController.java
@@ -1,6 +1,5 @@
 package com.doumee.api.web;
 
-import com.doumee.config.Jwt.JwtTokenUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
@@ -25,11 +24,5 @@
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         return request;
     }
-
-    protected String getToken() {
-        Object obj = this.getRequest().getAttribute(JwtTokenUtil.HEADER_KEY);
-        return obj != null ? obj.toString() : null;
-    }
-
 
 }
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/api/web/YlScreenController.java b/server/dmvisit_screen/src/main/java/com/doumee/api/web/YlScreenController.java
index f120330..5c8ef6c 100644
--- a/server/dmvisit_screen/src/main/java/com/doumee/api/web/YlScreenController.java
+++ b/server/dmvisit_screen/src/main/java/com/doumee/api/web/YlScreenController.java
@@ -1,190 +1,66 @@
 package com.doumee.api.web;
 
 import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.config.annotation.ErpLoginRequired;
 import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.erp.model.openapi.request.*;
-import com.doumee.core.erp.model.openapi.response.*;
-import com.doumee.core.utils.Constants;
-import com.doumee.service.business.ERPSyncService;
+import com.doumee.model.*;
+import com.doumee.service.ScreenService;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Created by IntelliJ IDEA.
  *
- * @Author : Rk
+ * @Author : JP
  * @create 2023/5/5 16:02
  */
 
-@Api(tags = "1銆併�愯瀹㈢銆戞暟鎹祫婧愭帴鍙o紙鍚慐RP绔彁渚涙垨鎻愪氦鏁版嵁淇℃伅锛�")
+@Api(tags = "銆愪紛鍒╁ぇ灞忋�戞暟鎹祫婧愭帴鍙�")
 @RestController
-@RequestMapping("/visitbiz")
+@RequestMapping("/screen")
 @Slf4j
-public class BizResourceController extends ApiController {
+public class YlScreenController extends ApiController {
 
     @Autowired
-    private ERPSyncService erpSyncService;
+    private ScreenService screenService;
 
-    @Autowired
-    private SystemDictDataBiz systemDictDataBiz;
-
-
-    @ApiOperation(value = "璋冪敤鍑嵁鑾峰彇鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝鍚慐RP鎻愪緵缁熸帴鍙h皟鐢ㄥ嚟璇�")
-    @GetMapping("/accesstoken")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "query", dataType = "String", name = "accessKey", value = "璁块棶key锛岀敱璁垮绔彁渚�", required = true),
-            @ApiImplicitParam(paramType = "query", dataType = "String", name = "accessSecret", value = "璁块棶绉橀挜锛岀敱璁垮绔彁渚�", required = true)
-    })
-    public ApiResponse<AccessTokenResponse> accesstoken(@RequestParam  String accessKey, @RequestParam  String accessSecret) {
-        return  ApiResponse.success(erpSyncService.createERPToken(accessKey,accessSecret));
+    @ApiOperation(value = "鑾峰彇鍗曢」缁熻鏁版嵁", notes = "鑾峰彇鍗曢」缁熻鏁版嵁锛屼粖鏃ヨ瀹㈡暟銆佹嫓璁夸腑銆佺绂绘暟銆佽繘鍦鸿溅娆°�佸嚭鍦鸿溅娆°�侀绾︽暟銆佸凡瀹℃壒棰勭害鏁般�佽瀹㈣溅杈嗚繘鍦烘暟銆佸憳宸ヨ溅杈嗚繘鍦烘暟")
+    @PostMapping("/countData")
+    public ApiResponse<CountDataResponse> countData(@RequestBody BaseRequest param) {
+        return  ApiResponse.success(screenService.countData(param));
     }
-
-    @ErpLoginRequired
-    @ApiOperation(value = "闂ㄧ缁勫叏閲忔帴鍙�", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝ERP绔悓姝ヨ幏鍙栭棬绂佺粍鍏ㄩ噺淇℃伅")
-    @PostMapping("/resource/role/list")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse<List<RoleListResponse>> roleList(@RequestBody RoleListRequest param) {
-        param.setToken(this.getToken());
-        return  ApiResponse.success(erpSyncService.erpQueryDeviceList(param));
+    @ApiOperation(value = "杞﹁締杩涘嚭鍦烘暟鎹褰曪紙鏈�杩�50鏉★級", notes = "杞﹁締杩涘嚭鍦烘暟鎹褰曪紙鏈�杩�50鏉★級")
+    @PostMapping("/carsDataList")
+    public ApiResponse<List<CarsDataListResponse>> carsDataList(@RequestBody BaseRequest param) {
+        return  ApiResponse.success(screenService.carsDataList(param));
     }
-
-    @ApiOperation(value = "鍋滆溅鍦哄叏閲忎俊鎭帴鍙�", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝ERP绔悓姝ュ叏閮ㄥ仠杞﹀満鏁版嵁")
-    @PostMapping("/resource/park/list")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse<List<ParkListResponse>> parkList(@RequestBody ParkListRequest param) {
-        param.setToken(this.getToken());
-        return  ApiResponse.success(erpSyncService.parkList(param));
+    @ApiOperation(value = "璁垮杩涘嚭鍦烘暟鎹褰曪紙鏈�杩�50鏉★級", notes = "璁垮杩涘嚭鍦烘暟鎹褰曪紙鏈�杩�50鏉★級")
+    @PostMapping("/visitDataList")
+    public ApiResponse<List<VisitDataListResponse>> visitDataList(@RequestBody BaseRequest param) {
+        return  ApiResponse.success(screenService.visitDataList(param));
     }
-
-    @ApiOperation(value = "璁垮鍑哄叆浜嬩欢鍚屾鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝ERP绔幏鍙栬瀹㈠嚭鍏ヨ褰曚俊鎭�")
-    @PostMapping("/resource/visit/list")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse<PageData<VisitEventListResponse>> visitList (@RequestBody PageWrap<VisitListRequest> pageWrap) {
-        pageWrap.getModel().setToken(this.getToken());
-        return ApiResponse.success(erpSyncService.visitListPage(pageWrap));
+    @ApiOperation(value = "杞﹁締杩涘嚭鍦烘洸绾垮浘鏁版嵁锛堜粖鏃ワ級", notes = "杞﹁締杩涘嚭鍦烘洸绾垮浘鏁版嵁锛堜粖鏃ワ級")
+    @PostMapping("/todayCarsData")
+    public ApiResponse<CountListResponse> todayCarsData(@RequestBody BaseRequest param) {
+        return  ApiResponse.success(screenService.todayCarsData(param));
     }
-
-    @ApiOperation(value = "闂ㄧ鍑哄叆浜嬩欢鍚屾鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝ERP绔幏鍙栭棬绂佸嚭鍏ヨ褰曚俊鎭�")
-    @PostMapping("/resource/doorEvent/list")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse<PageData<DoorEventListResponse>> doorEventList (@RequestBody PageWrap<DoorEventListRequest> pageWrap) {
-        pageWrap.getModel().setToken(this.getToken());
-        return ApiResponse.success(erpSyncService.doorEventListPage(pageWrap));
+    @ApiOperation(value = "杞﹁締杩涘嚭鍦烘洸绾垮浘鏁版嵁锛堣繎鏈� 7銆�15銆�30澶╋級", notes = "杞﹁締杩涘嚭鍦烘洸绾垮浘鏁版嵁锛堣繎鏈� 7銆�15銆�30澶╋級")
+    @PostMapping("/carsDaysData")
+    public ApiResponse<CountListResponse> carsDaysData(@RequestBody BaseRequest param) {
+        return  ApiResponse.success(screenService.carsDaysData(param));
     }
-
-    @ApiOperation(value = "杞﹁締鍑哄叆浜嬩欢鍚屾鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝ERP绔幏鍙栬溅杈嗗嚭鍏ヨ褰曚俊鎭�")
-    @PostMapping("/resource/carvisit/list")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse<PageData<CarEventListResponse>> carEventList (@RequestBody PageWrap<CarEventListRequest> pageWrap) {
-        pageWrap.getModel().setToken(this.getToken());
-        return ApiResponse.success(erpSyncService.carEventList(pageWrap));
+    @ApiOperation(value = "璁垮杩涘嚭鍦烘洸绾垮浘鏁版嵁锛堣繎鏈� 7銆�15銆�30澶╋級", notes = "璁垮杩涘嚭鍦烘洸绾垮浘鏁版嵁锛堣繎鏈� 7銆�15銆�30澶╋級")
+    @PostMapping("/visitDaysData")
+    public ApiResponse<CountListResponse> visitDaysData(@RequestBody BaseRequest param) {
+        return  ApiResponse.success(screenService.visitDaysData(param));
     }
-
-    @ApiOperation(value = "缁勭粐鍙樺寲鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝瀹屾垚璁垮绔粍缁囦俊鎭悓姝ワ紝璇ユ帴鍙f敮鎸佸崟涓粍缁囨柊澧炪�佹洿鏂般�佸垹闄ら渶姹�")
-    @PostMapping("/event/org/update")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse orgUpdate(@RequestBody OrgUpdateRequest param) {
-        param.setToken(this.getToken());
-        erpSyncService.orgUpdate(param);
-        return  ApiResponse.success(null);
-    }
-
-    @ApiOperation(value = "浜哄憳鍙樺寲鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝瀹屾垚璁垮绔汉鍛樹俊鎭悓姝ワ紝璇ユ帴鍙f敮鎸佸崟涓汉鍛樻柊澧炪�佹洿鏂般�佸垹闄ら渶姹�")
-    @PostMapping("/event/user/update")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse userUpdate(@RequestBody UserUpdateRequest param) {
-        param.setToken(this.getToken());
-        erpSyncService.userUpdate(param);
-        return  ApiResponse.success(null);
-    }
-
-    @ApiOperation(value = "浜哄憳闂ㄧ缁勬巿鏉冩帴鍙�", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝璁垮绔汉鍛樺悓姝ラ棬绂佺粍鎺堟潈淇℃伅锛岃鎺ュ彛鏀寔浜哄憳闂ㄧ缁勬巿鏉冩柊澧炪�佹洿鏂般�佹竻绌洪渶姹傘��")
-    @PostMapping("/event/role/userAuthor")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse roleUserAuthor(@RequestBody UserAuthorRequest param) {
-        erpSyncService.roleUserAuthor(param);
-        return  ApiResponse.success(null);
-    }
-
-    @ApiOperation(value = "杞﹁締鎺堟潈鍋滆溅鍦烘帴鍙�", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝璁垮绔悓姝ヨ溅杈嗗鍋滆溅鍦虹殑浣跨敤鏉冮檺锛岃鎺ュ彛鏀寔杞﹁締缁戝畾銆佽В缁戝綊灞炰汉锛屾敮鎸佹柊澧炪�佹洿鏂般�佹竻绌鸿溅杈嗘巿鏉冧俊鎭�")
-    @PostMapping("/event/park/carAuthor")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse parkCarAuthor(@RequestBody CarAuthorRequest param) {
-        erpSyncService.parkCarAuthor(param);
-        return  ApiResponse.success(null);
-    }
-
-    @ApiOperation(value = "璁垮鐢宠瀹℃壒缁撴灉閫氱煡鎺ュ彛", notes = "璁垮绔彁渚涳紝渚涜瀹㈢璋冪敤锛屾彁浜よ瀹㈢敵璇峰鎵圭殑缁撴灉")
-    @PostMapping("/event/approve/notice")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
-    })
-    public ApiResponse approveApply(@RequestBody ApproveNoticeRequest param) {
-        param.setToken(this.getToken());
-        erpSyncService.approveApply(param);
-        return  ApiResponse.success(null);
-    }
-
-
-
-    @ApiOperation(value = "FTP璐︽埛淇℃伅", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝FTP璐︽埛淇℃伅,鍏朵腑銆怓TP璧勬簮璁块棶鏄犲皠鍦板潃銆戠敤浜庡浘鐗囧洖鏄句娇鐢紝" +
-            "姣斿浜鸿劯鍥剧墖鍥炴樉鎷兼帴锛氥�怓TP璧勬簮璁块棶鏄犲皠鍦板潃銆�+銆怓TP鐢ㄦ埛鍥剧墖瀛樺偍鐩綍銆�+銆愬疄闄呬汉鑴稿浘鐗囧瓨鍌ㄥ瓧娈靛唴瀹广��" +
-            "濡傦細http://175.27.187.84/file4/member/20231211/skjd-skdjf4enc-flgk.png")
-    @GetMapping("/resource/ftpAccount")
-    public ApiResponse<Map<String,Object>> ftpAccount() {
-        Map<String,Object> map = new HashMap<>();
-        map.put("FTP涓绘満鍦板潃IP",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode());
-        map.put("FTP璁块棶绔彛",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode());
-        map.put("FTP璁块棶鐧诲綍鍚�",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode());
-        map.put("FTP璁块棶鐧婚檰瀵嗙爜",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
-        map.put("FTP璁垮浜嬩欢鍥剧墖瀛樺偍鐩綍",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.VISIT_EVENT_IMG).getCode());
-        map.put("FTP杞﹁締浜嬩欢鍥剧墖瀛樺偍鐩綍",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.CAR_EVENT_IMG).getCode());
-        map.put("FTP闂ㄧ浜嬩欢鍥剧墖瀛樺偍鐩綍",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.DEVICE_EVENT_IMG).getCode());
-        map.put("FTP鐢ㄦ埛鍥剧墖瀛樺偍鐩綍",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
-        map.put("FTP璧勬簮璁块棶鏄犲皠鍦板潃",
-        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode());
-        return  ApiResponse.success(map);
-    }
-
-
 
 }
 
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/model/BaseRequest.java b/server/dmvisit_screen/src/main/java/com/doumee/model/BaseRequest.java
new file mode 100644
index 0000000..fcc074d
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/model/BaseRequest.java
@@ -0,0 +1,12 @@
+package com.doumee.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("璇锋眰鍙傛暟淇℃伅")
+@Data
+public class BaseRequest {
+    @ApiModelProperty(value = "鏌ヨ绫诲瀷 0杩�7澶� 1杩�15澶� 2杩�30澶�", example = "1")
+    private int type;
+}
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/model/CarsDataListResponse.java b/server/dmvisit_screen/src/main/java/com/doumee/model/CarsDataListResponse.java
new file mode 100644
index 0000000..5f48e18
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/model/CarsDataListResponse.java
@@ -0,0 +1,30 @@
+package com.doumee.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel("杞﹁締鍑哄叆璁板綍鏁版嵁闆嗗悎淇℃伅")
+public class CarsDataListResponse {
+
+    @ApiModelProperty(value = "杞︾墝鍙�" )
+    private String carNo  ;
+
+    @ApiModelProperty(value = "浜哄憳绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳", example = "1")
+    private  Integer type;
+    @ApiModelProperty(value = "鍑哄叆绫诲瀷 0杩涘満 1鍑哄満", example = "1")
+    private  Integer inOrOut;
+    @ApiModelProperty(value = "鎵�灞為儴闂ㄦ垨鑰呭崟浣嶅悕绉�")
+    private  String companyName;
+    @ApiModelProperty(value = "浜哄憳鍚嶇О ")
+    private String memberName  ;
+    @ApiModelProperty(value = "鍙戠敓鏃堕棿")
+    private Date createDate;
+
+    @ApiModelProperty(value = "璁垮鍏徃鍚嶇О")
+    private String visitCompanyName;
+}
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/model/CountDataResponse.java b/server/dmvisit_screen/src/main/java/com/doumee/model/CountDataResponse.java
new file mode 100644
index 0000000..42fdca0
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/model/CountDataResponse.java
@@ -0,0 +1,31 @@
+package com.doumee.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("鏁版嵁缁熻淇℃伅")
+public class CountDataResponse {
+
+    @ApiModelProperty(value = "棰勭害鏁�", example = "1")
+    private int    applyTotalNum;
+    @ApiModelProperty(value = "棰勭害宸插鎵规暟", example = "1")
+    private int    applyPassNum;
+    @ApiModelProperty(value = "璁垮鏁�", example = "1")
+    private int    visitorNum;
+    @ApiModelProperty(value = "鎷滆涓瀹㈡暟", example = "1")
+    private int    visitInNum;
+    @ApiModelProperty(value = "绛剧璁垮鏁�", example = "1")
+    private int    visitOutNum;
+    @ApiModelProperty(value = "杩涘満杞︽", example = "1")
+    private int    carInNum;
+    @ApiModelProperty(value = "鍑哄満杞︽", example = "1")
+    private int    carOutNum;
+    @ApiModelProperty(value = "鍦ㄥ満杞﹁締鏁伴噺", example = "1")
+    private int    carNum;
+    @ApiModelProperty(value = "鍛樺伐杞﹁締杩涘満鏁伴噺", example = "1")
+    private int    memberCarNum;
+    @ApiModelProperty(value = "璁垮杞﹁締杩涘満鏁伴噺", example = "1")
+    private int    visitCarNum;
+}
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/model/CountListResponse.java b/server/dmvisit_screen/src/main/java/com/doumee/model/CountListResponse.java
new file mode 100644
index 0000000..8730254
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/model/CountListResponse.java
@@ -0,0 +1,19 @@
+package com.doumee.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("杞﹁締杩涘嚭鍦哄拰璁垮缁熻鏁版嵁")
+public class CountListResponse {
+
+    @ApiModelProperty(value = "妯潗鏍囨棩鏈熸暟鎹泦鍚�", example = "1")
+    private List<String> timeList;
+    @ApiModelProperty(value = "绾靛潗鏍囨暟鎹泦鍚堬紙杞﹁締杩涘満銆佽瀹㈡暟锛�", example = "1")
+    private List<Integer> dataList;
+    @ApiModelProperty(value = "绾靛潗鏍囨暟鎹泦鍚�2(杞﹁締鍑哄満)", example = "1")
+    private List<Integer> secDataList;
+}
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/model/VisitDataListResponse.java b/server/dmvisit_screen/src/main/java/com/doumee/model/VisitDataListResponse.java
new file mode 100644
index 0000000..6552048
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/model/VisitDataListResponse.java
@@ -0,0 +1,23 @@
+package com.doumee.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel("璁垮鍑哄叆璁板綍鏁版嵁闆嗗悎淇℃伅")
+public class VisitDataListResponse {
+
+    @ApiModelProperty(value = "鎷滆鏃堕暱淇℃伅" )
+    private String timeInfo  ;
+    @ApiModelProperty(value = "浜哄憳鍚嶇О ")
+    private String memberName  ;
+    @ApiModelProperty(value = "鍑哄叆绫诲瀷 0杩涘満 1鍑哄満", example = "1")
+    private  Integer inOrOut;
+    @ApiModelProperty(value = "鎵�灞為儴闂ㄦ垨鑰呭崟浣嶅悕绉�")
+    private  String companyName;
+    @ApiModelProperty(value = "鍙戠敓鏃堕棿")
+    private Date createDate;
+}
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/service/ScreenService.java b/server/dmvisit_screen/src/main/java/com/doumee/service/ScreenService.java
new file mode 100644
index 0000000..b7b84a4
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/service/ScreenService.java
@@ -0,0 +1,24 @@
+package com.doumee.service;
+
+import com.doumee.model.*;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+public interface ScreenService {
+
+    CountDataResponse countData(BaseRequest param);
+
+    List<CarsDataListResponse> carsDataList(BaseRequest param);
+
+    List<VisitDataListResponse> visitDataList(BaseRequest param);
+
+    CountListResponse todayCarsData(BaseRequest param);
+    CountListResponse carsDaysData(BaseRequest param);
+    CountListResponse visitDaysData(BaseRequest param);
+}
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java b/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java
new file mode 100644
index 0000000..67275b3
--- /dev/null
+++ b/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java
@@ -0,0 +1,301 @@
+package com.doumee.service.impl;
+
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.VisitEventMapper;
+import com.doumee.dao.business.join.CarEventJoinMapper;
+import com.doumee.dao.business.join.VisitEventJoinMapper;
+import com.doumee.dao.business.join.VisitsJoinMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.model.*;
+import com.doumee.service.ScreenService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+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.Arrays;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class ScreenServiceImpl implements ScreenService {
+
+    @Autowired
+    private VisitsJoinMapper visitsMapper;
+    @Autowired
+    private CarEventJoinMapper carEventMapper;
+    @Autowired
+    private VisitEventJoinMapper visitEventMapper;
+    @Override
+    public   CountDataResponse countData(BaseRequest param){
+        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.select("count(1) as applyTotalNum");
+        queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=TO_DAYS(now()) and status not in(1,4,9)) as applyPassNum");
+        queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=TO_DAYS(now()) and status=8) as visitInNum");
+        queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=TO_DAYS(now()) and status=6) as visitOutNum");
+        queryWrapper.select("(select count(1) from car_event where TO_DAYS(create_date)=TO_DAYS(now()) and inout_type=0 and event_type="+ HKConstants.EventTypes.PARK_PASS_IN.getKey() +") as carInNum");
+        queryWrapper.select("(select count(1) from car_event where TO_DAYS(create_date)=TO_DAYS(now()) and inout_type=1 and event_type="+ HKConstants.EventTypes.PARK_PASS_OUT.getKey() +") as carOutNum");
+        queryWrapper.eq(Visits::getIsdeleted, Constants.ZERO );
+        queryWrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
+        queryWrapper.last("limit 1");
+        CountDataResponse vModel =visitsMapper.selectJoinOne(CountDataResponse.class,queryWrapper);
+        vModel.setVisitorNum(vModel.getVisitInNum()+vModel.getVisitOutNum());//浠婃棩璁垮鎬绘暟
+
+        MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
+        wrapper.select("count(1) as memberCarNum");
+        wrapper.exists("select b.id from cars b where b.code=t.plate_nos" );
+        wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
+        wrapper.last("limit 1");
+        CountDataResponse cModel =carEventMapper.selectJoinOne(CountDataResponse.class,wrapper);
+        vModel.setMemberCarNum(vModel.getMemberCarNum());//浠婃棩鍛樺伐杞﹁締杩涘満鏁�
+        vModel.setMemberCarNum(vModel.getCarInNum() - vModel.getMemberCarNum());//浠婃棩棰勭害杞﹁締杩涘満鏁�
+        return vModel;
+    }
+
+    @Override
+    public    List<CarsDataListResponse> carsDataList(BaseRequest param){
+        List<CarsDataListResponse> list = new ArrayList<>();
+        MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(CarEvent.class)
+                .selectAs(Member::getType,CarEvent::getMemberType)
+                .selectAs(Member::getName,CarEvent::getMemberName)
+                .selectAs(Member::getVisitCompanyName,CarEvent::getVisitCompanyName)
+                .selectAs(Company::getName,CarEvent::getCompanyName);
+        wrapper.leftJoin(Member.class,Member::getId,CarEvent::getMemberId);
+        wrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
+        wrapper.apply("TO_DAYS(t.create_date)=TO_DAYS(now())" );
+        wrapper.in(CarEvent::getEventType, Arrays.asList(new Integer[]{HKConstants.EventTypes.PARK_PASS_IN.getKey(),HKConstants.EventTypes.PARK_PASS_OUT.getKey()}));
+        wrapper.last("limit 50");
+        wrapper.orderByDesc(CarEvent::getCreateDate);
+        List<CarEvent> result =carEventMapper.selectJoinList(CarEvent.class,wrapper);
+        if(result!=null){
+            for(CarEvent event :result){
+                CarsDataListResponse model = new CarsDataListResponse();
+                model.setInOrOut(event.getInoutType());
+                model.setCarNo(event.getPlateNos());
+                model.setCreateDate(event.getCreateDate());
+                model.setCompanyName(event.getCompanyName());
+                model.setMemberName(event.getMemberName());
+                model.setType(event.getMemberType());
+                model.setVisitCompanyName(event.getVisitCompanyName());
+                list.add(model);
+            }
+        }
+        return  list;
+    }
+
+    @Override
+    public   List<VisitDataListResponse> visitDataList(BaseRequest param){
+        List<VisitDataListResponse> list = new ArrayList<>();
+        MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(VisitEvent.class) ;
+        wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
+        wrapper.in(CarEvent::getEventType, Arrays.asList(new Integer[]{HKConstants.EventTypes.PARK_PASS_IN.getKey(),HKConstants.EventTypes.PARK_PASS_OUT.getKey()}));
+        wrapper.last("limit 50");
+        wrapper.orderByDesc(VisitEvent::getCreateDate);
+        List<VisitEvent> result =visitEventMapper.selectList( wrapper);
+        if(result!=null){
+            for(VisitEvent event :result){
+                VisitDataListResponse model = new VisitDataListResponse();
+                model.setInOrOut(Constants.formatIntegerNum(event.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()?1:0);
+                model.setCreateDate(event.getCreateDate());
+                model.setCompanyName(event.getVisitorWorkUint());
+                model.setMemberName(event.getPersonName());
+                model.setTimeInfo(getTimeInfoByModel(event));
+                list.add(model);
+            }
+        }
+        return  list;
+    }
+
+    private String getTimeInfoByModel(VisitEvent event) {
+
+        if(Constants.formatIntegerNum(event.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()
+                    &&StringUtils.isNotBlank(event.getStartTime())
+                    && StringUtils.isNotBlank(event.getEndTime())){
+            //濡傛灉鏈夋椂闂村樊
+            int hour = 0,min=0,sec =0;
+            try {
+                long start = DateUtil.getISO8601DateByStr(event.getStartTime()).getTime();
+                long end = DateUtil.getISO8601DateByStr(event.getEndTime()).getTime();
+                hour =(int)((end-start)/(60*60*1000));
+                min =(int)(((end-start)-(60*60*1000))/(60*1000));
+                sec =(int)(((end-start)%(60*1000)));
+            }catch (Exception e){
+                  return "-";
+            }
+            if(hour <= 0 && min<=0 && sec <=0){
+                return "-";
+            }
+            String timeinfo = "";
+            if(hour>0){
+                timeinfo = hour+"灏忔椂";
+            }
+            if(sec>0){
+                timeinfo += sec+"鍒�";
+            }else if(sec>0){
+                timeinfo+= "1鍒�";
+            }
+            return timeinfo;
+        }
+            return  "-";
+    }
+
+    @Override
+    public CountListResponse todayCarsData(BaseRequest param) {
+        CountListResponse data = new CountListResponse();
+        List<String> times =  new ArrayList<>();
+        List<Integer> numList = new ArrayList<>();
+        List<Integer> numList2 = new ArrayList<>();
+        for (int i = 0; i < 25; i++) {
+            times.add((i)+":00");
+            numList.add(0);
+            numList2.add(0);
+        }
+        //杩涘満
+        List<CarEvent> inList =getCarEventListByHour(HKConstants.EventTypes.PARK_PASS_IN.getKey());
+        if(inList!=null){
+            for(CarEvent event: inList){
+                if(Constants.formatIntegerNum(event.getHour()) >=0 && Constants.formatIntegerNum(event.getHour()) <24 ){
+                    numList.set(Constants.formatIntegerNum(event.getHour()+1),event.getNum());
+                }
+            }
+        }
+        //绂诲満
+        List<CarEvent> outList =getCarEventListByHour(HKConstants.EventTypes.PARK_PASS_OUT.getKey());
+        if(outList!=null){
+            for(CarEvent event: outList){
+                if(Constants.formatIntegerNum(event.getHour()) >=0 && Constants.formatIntegerNum(event.getHour()) <24 ){
+                    numList2.set(Constants.formatIntegerNum(event.getHour()+1),event.getNum());
+                }
+            }
+        }
+        data.setDataList(numList);
+        data.setSecDataList(numList2);
+        data.setTimeList(times);
+        return  data;
+    }
+
+    /**
+     * 鍩轰簬鏃堕棿鐐圭粺璁″嚭鏉ヨ繘鍑哄満鏁版嵁娆℃暟
+     * @param key
+     * @return
+     */
+    private List<CarEvent> getCarEventListByHour(int key) {
+        MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
+        wrapper.select("count(id) as num,HOUR(create_date) as hour");
+        wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
+        wrapper.eq(CarEvent::getEventType,  key);
+        wrapper.groupBy("HOUR(create_date)");
+        wrapper.orderByDesc(CarEvent::getCreateDate);
+        List<CarEvent> result =carEventMapper.selectJoinList(CarEvent.class,wrapper);
+        return  result;
+    }
+    private List<CarEvent> getCarEventListByDays(int days) {
+        MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
+        wrapper.select("count(id) as num, create_date");
+        wrapper.apply("TO_DAYS(create_date)+"+days+" >= TO_DAYS(now()) " );
+        wrapper.eq(CarEvent::getEventType,  HKConstants.EventTypes.PARK_LINE_IN.getKey());
+        wrapper.groupBy("TO_DAYS(create_date)");
+        wrapper.orderByDesc(CarEvent::getCreateDate);
+        List<CarEvent> result =carEventMapper.selectJoinList(CarEvent.class,wrapper);
+        return  result;
+    }
+    private List<VisitEvent> getVisitEventListByDays(int days) {
+        MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>();
+        wrapper.select("count(id) as num, create_date");
+        wrapper.apply("TO_DAYS(create_date)+"+days+" >= TO_DAYS(now()) " );
+        wrapper.eq(VisitEvent::getEventType,  HKConstants.EventTypes.VISIT_SIGN_IN.getKey());
+        wrapper.groupBy("TO_DAYS(create_date)");
+        wrapper.orderByDesc(CarEvent::getCreateDate);
+        List<VisitEvent> result =visitEventMapper.selectJoinList(VisitEvent.class,wrapper);
+        return  result;
+    }
+    @Override
+    public CountListResponse carsDaysData(BaseRequest param) {
+        CountListResponse data = new CountListResponse();
+        int days = 7;//榛樿7澶�
+        if(param.getType() == 1){
+            //杩�30澶�
+            days =15;
+        }else   if(param.getType() == 2){
+            //杩�15澶�
+            days =30;
+        }
+        List<String> times = new ArrayList<>();
+        List<Integer> numList = new ArrayList<>();
+        for (int i = 0; i < days; i++) {
+            times.add(DateUtil.formatDate(DateUtil.dateDayAdd(new Date(), -(days-i)+1),"MM.dd"));
+            numList.add(0);
+        }
+        List<CarEvent> result = getCarEventListByDays(days);
+        if(result!=null&& result.size()>0){
+            for (int i = 0; i < days; i++) {
+                numList.set(i,getNumByDate(times.get(i),result));
+            }
+        }
+        data.setTimeList(times);
+        data.setDataList(numList);
+        return  data;
+    }
+
+    private Integer getNumByDate(String s, List<CarEvent> result) {
+        for(CarEvent event:result){
+            if(StringUtils.equals(s,DateUtil.formatDate(event.getCreateDate(),"MM.dd"))){
+                return event.getNum();
+            }
+        }
+        return 0;
+    }
+    private Integer getVisistNumByDate(String s, List<VisitEvent> result) {
+        for(VisitEvent event:result){
+            if(StringUtils.equals(s,DateUtil.formatDate(event.getCreateDate(),"MM.dd"))){
+                return event.getNum();
+            }
+        }
+        return 0;
+    }
+
+    public static void main(String[] args) {
+        List<String> times = new ArrayList<>();
+        List<String> numList = new ArrayList<>();
+        for (int i = 0; i < 7; i++) {
+           System.out.println(DateUtil.formatDate(DateUtil.dateDayAdd(new Date(), -(7-i)+1),"MM.dd"));
+        }
+    }
+    @Override
+    public CountListResponse visitDaysData(BaseRequest param) {
+        CountListResponse data = new CountListResponse();
+        int days = 7;//榛樿7澶�
+        if(param.getType() == 1){
+            //杩�30澶�
+            days =15;
+        }else   if(param.getType() == 2){
+            //杩�15澶�
+            days =30;
+        }
+        List<String> times = new ArrayList<>();
+        List<Integer> numList = new ArrayList<>();
+        for (int i = 0; i < days; i++) {
+            times.add(DateUtil.formatDate(DateUtil.dateDayAdd(new Date(), -(days-i)+1),"MM.dd"));
+            numList.add(0);
+        }
+        List<VisitEvent> result = getVisitEventListByDays(days);
+        if(result!=null&& result.size()>0){
+            for (int i = 0; i < days; i++) {
+                numList.set(i,getVisistNumByDate(times.get(i),result));
+            }
+        }
+        data.setTimeList(times);
+        data.setDataList(numList);
+        return  data;
+    }
+}
diff --git a/server/dmvisit_screen/src/main/resources/application.yml b/server/dmvisit_screen/src/main/resources/application.yml
index 8dc6444..d27c0e8 100644
--- a/server/dmvisit_screen/src/main/resources/application.yml
+++ b/server/dmvisit_screen/src/main/resources/application.yml
@@ -10,7 +10,7 @@
   #  application:
   #    name: doumeemes
   profiles:
-    active: dev
+    active: devYL
 
   # JSON杩斿洖閰嶇疆
   jackson:
diff --git a/server/dmvisit_service/src/main/java/com/doumee/config/DataSyncConfig.java b/server/dmvisit_service/src/main/java/com/doumee/config/DataSyncConfig.java
index a95d71e..fc22973 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/config/DataSyncConfig.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/config/DataSyncConfig.java
@@ -1,2 +1,19 @@
-package com.doumee.config;public class DataSyncConfig {
+package com.doumee.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "data-sync")
+public class DataSyncConfig {
+    public interface  origin{
+        int erp = 1;
+        int hk = 2;
+        int self = 0;
+    }
+    private Integer orgUserDataOrigin;
+    private Integer visitorDataOrigin;
+    private Boolean needDealImg;
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index ee61b8e..44bdb2d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -30,6 +30,10 @@
 //        String visitEvents = "/api/visitor/v1/event/turnover/search";//璁垮浜嬩欢鏌ヨ
 //        String parkEvents = "/api/pms/v1/crossRecords/page";//鍋滆溅鍦轰簨浠舵煡璇�
         String rootOrg = "/api/resource/v1/org/rootOrg";//鑾峰彇璺熺粍缁�
+        String orgAllList = "/api/resource/v1/org/orgList";//鑾峰彇鍏ㄩ噺缁勭粐淇℃伅
+        String userAllList = "/api/resource/v2/person/personList";//鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
+        String orgTimeRangeList = "/api/resource/v1/org/timeRange";//澧為噺鑾峰彇缁勭粐淇℃伅
+        String userTimeRangeList = "/api/resource/v1/person/personList/timeRange";//澧為噺鑾峰彇鐢ㄦ埛鍒楄〃
         String addBatchOrg = "/api/resource/v1/org/batch/add";//鎵归噺鏂板缁勭粐
         String delBatchOrg = "/api/resource/v1/org/batch/delete";//鎵归噺鍒犻櫎缁勭粐
         String editOrg = "/api/resource/v1/org/single/update";//淇敼缁勭粐
@@ -71,6 +75,12 @@
         String cardLoss= "/api/cis/v1/card/batch/loss";//鎵归噺鎸傚け
         String cardUnloss= "/api/cis/v1/card/batch/unLoss";//鎵归噺瑙f寕
         String taskPersoDetail= "/api/acps/v1/download_record/person/detail/search";//鏌ヨ璁惧閫氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯�
+        String appointmentRecords= "/api/visitor/v2/appointment/records";//鏌ヨ璁垮棰勭害璁板綍v2
+        String visitingRecords= "/api/visitor/v2/visiting/records";//鏌ヨ璁垮鏉ヨ璁板綍v2
+        String vehicleList= "/api/resource/v2/vehicle/advance/vehicleList";//鏌ヨ杞﹁締鍒楄〃v2
+        String vehicleTimeRangeList= "/api/resource/v1/vehicle/timeRange";//澧為噺鑾峰彇杞﹁締鏁版嵁
+
+
     }
 
     /**
@@ -214,6 +224,14 @@
         private String name;
         private int key;
 
+        public static String getName(int index) {
+            for (EventTypes c : EventTypes.values()) {
+                if (c.getKey() == index) {
+                    return c.name;
+                }
+            }
+            return null;
+        }
         // 鏋勯�犳柟娉�
         EventTypes(int key, String name ) {
             this.name = name;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index fc60bf4..cf3b378 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -2,6 +2,8 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.config.SpringContextUtil;
+import com.doumee.core.haikang.model.param.request.CarPictureRequest;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.service.business.InterfaceLogService;
@@ -13,10 +15,7 @@
 import org.apache.tomcat.util.bcel.Const;
 import org.yaml.snakeyaml.scanner.Constant;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.InetSocketAddress;
 import java.net.Proxy;
@@ -34,21 +33,30 @@
 
 
 	public static void main(String[] args) throws Exception {
-//			Proxy proxy = new Proxy(Proxy.Type.DIRECT, new InetSocketAddress("127.0.0.1",Integer.valueOf("1080")));
-			URL realUrl = new URL("https://10.50.60.253/artemis/api/eventService/v1/eventSubscriptionByEventTypes");
-			HttpURLConnection con = (HttpURLConnection) realUrl.openConnection();
-		con.setRequestMethod("GET");
-//		con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) ;Gecko/20100101 Firefox/57.0");
-		BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
-		String inputLine;
-		StringBuffer content = new StringBuffer();
-		while ((inputLine = in.readLine()) != null) {
-			content.append(inputLine);
+		ArtemisConfig.host = "10.50.60.253";
+		ArtemisConfig.appKey = "27786546";
+		ArtemisConfig.appSecret = "kC5dohxU7CvEqgGhVt4R";
+		HKConstants.https = "https://";
+		CarPictureRequest param = new CarPictureRequest();
+		param.setPicUri( "HKIMG=/pic?0dd400=4c40ip-feo831-933*9o4=3=2109*2l0001893117*0t7=6*2ps==014b*=787d*069d70361-95754d-9*l108od0b192=001");
+		param.setAswSyscode("3fa3e5e3-db3e-41ba-97fc-39c948778dfe");
+		InputStream is = HKService.getCarPicture(param);
+		File imageFile = new File("D:\\visit\\111"+UUID.randomUUID().toString()+".png");
+		try {
+			byte[] bytes = new byte[1024];
+			FileOutputStream outStream = new FileOutputStream(imageFile);
+			int index;
+			while ((index = is.read(bytes)) != -1) {
+				outStream.write(bytes, 0, index);
+				outStream.flush();
+			}
+//            outStream = new FileOutputStream(imageFile);
+//            outStream.write(bytes);
+			//鍏抽棴杈撳嚭娴�
+			outStream.close(); //鍐欏叆鏁版嵁
+		} catch ( Exception e) {
+			throw new RuntimeException(e);
 		}
-		in.close();
-		con.disconnect();
-
-		System.out.println(content.toString());
 
 	}
 	public static InterfaceLogService interfaceLogService = null;
@@ -327,6 +335,7 @@
 			throw  new Exception("鑾峰彇闂ㄧ浜嬩欢鐨勫浘鐗囦笅杞藉嚭閿�");
 		}
 	}
+
 	/**
 	 * 鏌ヨ杞﹁締鎶撴媿鍥剧墖
 	 * @param body
@@ -586,4 +595,94 @@
 		return  result;
 	}
 
+	/**
+	 *	鑾峰彇璁垮棰勭害璁板綍鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String visitingRecords(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.visitingRecords);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+
+	/**
+	 *	鑾峰彇璁垮棰勭害璁板綍鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String appointmentRecords(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.appointmentRecords);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 *	鑾峰彇鍏ㄩ噺缁勭粐鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String orgAllList(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.orgAllList);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 *	鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String userAllList(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.userAllList);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 *	澧為噺鑾峰彇缁勭粐鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String orgTimeRangeList(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.orgTimeRangeList);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 *	澧為噺鑾峰彇鐢ㄦ埛鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String userTimeRangeList(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.userTimeRangeList);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 *	澧為噺鑾峰彇杞﹁締鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String vehicleTimeRangeList(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.vehicleTimeRangeList);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 *	鍏ㄩ噺鑾峰彇杞﹁締鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String vehicleList(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.vehicleList);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
index 9a6c9c8..752edcf 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
@@ -1,4 +1,4 @@
-package com.doumee.core.haikang.model.param.respose;
+package com.doumee.core.haikang.model.param;
 
 import lombok.Data;
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java
index 5e10d7d..f2f93c2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java
@@ -3,11 +3,34 @@
 import lombok.Data;
 
 @Data
-public class OrgUserListRequest {
-
-    private String startTime	;//string	True	閽堝鏇存柊鏃堕棿鐨勬煡璇㈠紑濮嬫棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
-    private String  endTime;//	string	False	閽堝鏇存柊鏃堕棿鐨勬煡璇㈡埅姝㈡棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
-    private Integer  pageNo	;//integer	True	椤电爜,pageNo鈮�1
-    private Integer  pageSize;//	integer	True	鍒嗛〉澶у皬
+public class AppointmentListRequest {
+    private String  receptionistId;//	string	False	琚浜哄敮涓�鏍囪瘑,鏌ヨ浜哄憳鍒楄〃v2鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑personId瀛楁
+    private String  visitorName;//	string	False	璁垮濮撳悕锛岄暱搴︿笉瓒呰繃32锛屾敮鎸佷腑鑻辨枃瀛楃锛屼笉鑳藉寘鍚� 鈥� / \ : * ? " < >
+    private String   phoneNo	;//string	False	鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜
+    private String   visitStartTimeBegin;//	string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�    yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�   渚嬪鍖椾含鏃堕棿锛� 2018-07-26T15:00:00+08:00
+    private String    visitStartTimeEnd	;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�  渚嬪鍖椾含鏃堕棿锛�  2018-07-26T15:00:00+08:00
+    private String    visitEndTimeBegin;//	string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�  yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�  渚嬪鍖椾含鏃堕棿锛� 2018-07-26T15:00:00+08:00
+    private String     visitEndTimeEnd;//	string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�  yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�  渚嬪鍖椾含鏃堕棿锛�  2018-07-26T15:00:00+08:00
+    private int    pageNo;//	integer	True	pageNo瑕佹眰澶т簬0涓嶈秴杩�2147483647
+    private int    pageSize;//	integer	True	pageSize瑕佹眰澶т簬0涓斾笉瓒呰繃1000
+    private String     verificationCode;//	string	False	璁垮楠岃瘉鐮佷负璁垮绠$悊缁勪欢鎻愪緵锛岀敤浜庤瀹㈠湪璁垮鏈虹櫥璁扮殑鍑瘉
+    /**
+     * 璁垮鐘舵��,
+     * 0锛氬緟瀹℃牳锛堥绾﹀緟瀹℃壒锛夈��
+     * 1锛氭甯革紙棰勭害鎴愬姛鎴栭绾﹀鎵规垚鍔熷悗<鏈櫥璁�>锛氬綋鍓嶆椂闂存湭瓒呰繃棰勮鏉ヨ鏃堕棿锛夈��
+     * 2锛氳繜鍒帮紙棰勭害鎴愬姛鎴栭绾﹀鎵规垚鍔熷悗<鏈櫥璁�>锛氬綋鍓嶆椂闂磋秴杩囬璁℃潵璁挎椂闂达紝浣嗘湭瓒呰繃棰勮绂诲紑鏃堕棿锛夈��
+     * 3锛氬け鏁堬紙棰勭害鎴愬姛鎴栭绾﹀鎵规垚鍔熷悗<鏈櫥璁�>锛氬綋鍓嶆椂闂村凡瓒呰繃棰勮绂诲紑鏃堕棿锛夈��
+     * 4锛氬鏍搁��鍥烇紙棰勭害寰呭鎵癸紝瀹℃壒浜哄憳瀹℃壒閫�鍥烇級銆�
+     * 5锛氳秴鏈熻嚜鍔ㄧ绂伙紙瓒呮湡鏈绂昏褰曡瀹紝鐢卞悗鍙颁换鍔″畾鏃跺鐞嗙绂伙級銆�
+     * 6锛氬凡绛剧锛堣瀹㈢绂伙級銆�
+     * 7锛氳秴鏈熸湭绛剧锛堣瀹㈢櫥璁帮紝褰撳墠鏃堕棿宸茶秴杩囬璁$寮�鏃堕棿锛岃繕鏈繘琛岀绂伙級銆�
+     * 8锛氬凡鍒拌揪锛涳紙璁垮鐧昏锛屽綋鍓嶆椂闂存湭瓒呰繃棰勮绂诲紑鏃堕棿锛夈��
+     * 9锛氬鏍稿け鏁堬紙棰勭害寰呭鎵癸紝涓�鐩村埌褰撳墠鏃堕棿瓒呰繃棰勮绂诲紑鏃堕棿锛岃繕鏈鎵归�氳繃锛夈��
+     * 10锛氶個绾︿腑锛堝憳宸ュ彂璧烽個绾︼紝璁垮杩樻湭搴旈個锛夈��
+     * 11锛氶個绾﹀け鏁堬紙鍛樺伐鍙戣捣閭�绾︼紝涓�鐩村埌褰撳墠鏃堕棿瓒呰繃棰勮绂诲紑鏃堕棿锛岃瀹㈣繕鏈簲閭�锛�
+     */
+    private String     visitorStatus;//	integer	False	
+    private String   QRCode	;//string	False	璁垮浜岀淮鐮佸唴瀹�,鏀寔鍔ㄦ�佷簩缁寸爜鎴栬�呴潤鎬佷簩缁寸爜
+    private String   orderId;//	string	False	棰勭害璁板綍ID锛岃瀹㈤绾2鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑orderId瀛楁
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgUserListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgUserListRequest.java
deleted file mode 100644
index e7565da..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/OrgUserListRequest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.doumee.core.haikang.model.param.request;
-
-import lombok.Data;
-
-@Data
-public class AcsDeviceListRequest {
-
- private String   name	;//string	False	鍚嶇О锛屾ā绯婃悳绱紝鏈�澶ч暱搴�32锛岃嫢鍖呭惈涓枃锛屾渶澶ч暱搴︽寚涓嶈秴杩囨寜鐓ф寚瀹氱紪鐮佺殑瀛楄妭闀垮害锛屽嵆getBytes(鈥渦tf-8鈥�).length
-    private String[]        regionIndexCodes	;//string[]	False	鍖哄煙缂栧彿,鍙互涓虹┖; String[]锛屾敮鎸佹牴鎹尯鍩熸壒閲忔煡璇紱鍖哄煙缂栧彿涓暟<=1000涓紱鍗曚釜闀垮害<=64Byte锛涳紝鍙粠鏌ヨ鍖哄煙鍒楄〃v2鎺ュ彛鑾峰彇杩斿洖鍙傛暟indexCode
-    private Boolean      isSubRegion;//	boolean	False	true鏃讹紝鎼滅储regionIndexCodes鍙婂叾瀛愬瓩鍖哄煙鐨勮祫婧愶紱  false鏃讹紝鍙悳绱� regionIndexCodes鐨勮祫婧�
-    private Integer      pageNo	;//integer	True	褰撳墠椤电爜
-    private Integer      pageSize;//	integer	True	鍒嗛〉澶у皬
-    private String[]     authCodes	;//string[]	False	鏉冮檺鐮侀泦鍚堬紝璇﹁闄勫綍A.3 璧勬簮鏉冮檺鐮佷腑闂ㄧ璁惧瀵瑰簲鐨勮祫婧愭潈闄愮爜
-
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java
new file mode 100644
index 0000000..bac0630
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class TimeRangeListRequest {
+
+    private String startTime	;//string	True	閽堝鏇存柊鏃堕棿鐨勬煡璇㈠紑濮嬫棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+    private String  endTime;//	string	False	閽堝鏇存柊鏃堕棿鐨勬煡璇㈡埅姝㈡棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+    private Integer  pageNo	;//integer	True	椤电爜,pageNo鈮�1
+    private Integer  pageSize;//	integer	True	鍒嗛〉澶у皬
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java
index eba7e2e..cfaa64e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java
@@ -1,11 +1,9 @@
-package com.doumee.core.haikang.model.param.respose;
+package com.doumee.core.haikang.model.param.request;
 
 import lombok.Data;
 
-import java.util.List;
-
 @Data
-public class VisitingInfoResponse {
+public class VisitingInfoRequest {
     private String   receptionistId;//	string	False	琚浜篒D锛屼粠 鑾峰彇浜哄憳鍒楄〃v2 鎺ュ彛鑾峰彇杩斿洖鍙傛暟personId
     private String    receptionistName	;//string	False	琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
     private String    visitorName	;//string	False	璁垮濮撳悕锛岄暱搴︿笉瓒呰繃32锛屾敮鎸佷腑鑻辨枃瀛楃锛屼笉鑳藉寘鍚� 鈥� / \ : * ? " < >
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java
index dacd650..91dd02f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java
@@ -3,21 +3,51 @@
 import lombok.Data;
 
 import java.util.List;
+import java.util.Map;
 
 @Data
-public class UserInfoResponse {
+public class AppointmentInfoResponse {
 
-private String personId	;//string	False	浜哄憳ID
-private String personName	;//string	False	濮撳悕
-private Integer gender	;//number	False
-private String orgIndexCode;//	string	False	鎵�灞炵粍缁囧敮涓�鏍囪瘑鐮�
-private String phoneNo;//	string	False	鑱旂郴鐢佃瘽
-private String jobNo;//	string	False	宸ュ彿
-private Integer certificateType;//	number	False	璇佷欢绫诲瀷111:韬唤璇�414:鎶ょ収113:鎴峰彛绨�335:椹鹃┒璇�131:宸ヤ綔璇�133:瀛︾敓璇�990:鍏朵粬 ;
-private String certificateNo	;//string	False	璇佷欢鍙风爜   涓�涓叉暟瀛楀瓧绗︿覆
-private String createTime	;//string	False	鍒涘缓鏃堕棿 瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00 琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-private String updateTime;//	string	False	鏇存柊鏃堕棿  瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00  琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-private String orgPath;//	string	False	鎵�灞炵粍缁囩洰褰曪紝@杩涜鍒嗗壊锛屼緥濡� @root000000@
-private String orgPathName;//	string	False	鎵�灞炵粍缁囧悕绉帮紝@杩涜鍒嗗壊锛屽@榛樿閮ㄩ棬@
-private List<UserPhotoResponse> personPhoto;//	object	False	浜哄憳鍥剧墖淇℃伅
+
+    private String appointRecordId		;//string	False	棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
+    private String receptionistId		;//string	False	琚浜哄敮涓�鏍囪瘑
+    private String receptionistName		;//string	False	琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
+    private String receptionistCode		;//string	False	琚浜烘墍灞炵粍缁囩紪鐮�
+    private String visitStartTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
+    private String visitEndTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�  yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛� 棰勮绂诲紑鏃堕棿蹇呴』鏅氫簬褰撳墠鏃堕棿鍜岄璁℃潵璁挎椂闂�
+    private String visitPurpose		;//string	False	鏉ヨ浜嬬敱
+    private String visitorName		;//string	False	璁垮濮撳悕
+    private String visitorWorkUnit		;//string	False	鏉ヨ鍗曚綅
+    private String visitorAddress		;//string	False	璁垮浣忓潃
+    private String visitorId		;//string	False	璁垮Id
+    private String verificationCode		;//string	False	璁垮楠岃瘉鐮侊紝鐢ㄤ簬璁垮鍦ㄨ瀹㈡満鐧昏鐨勫嚟璇�
+    private String QRCode		;//string	False	鍔ㄦ�佷簩缁寸爜锛屽闇�瑕佷娇鐢紝鍙皢璁垮浜岀淮鐮佸唴瀹硅浆鎴愪簩缁寸爜鍥剧墖鍗冲彲
+    private Integer gender;//	integer	False	1-鐢�,  2-濂�
+    private String phoneNo		;//string	False	鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜锛屼粎鏀寔绾暟瀛椼��
+    private String plateNo		;//string	False	璁垮杞︾墝鍙�
+    private Integer certificateType	;//	integer	False	璇佷欢绫诲瀷锛岃瑙侀檮褰旳.11 璇佷欢绫诲瀷
+    private String certificateNo		;//string	False	璇佷欢鍙凤紝鏍煎紡涓猴細1~20涓暟瀛椼�佸瓧姣嶇粍鎴�
+    private String picUri		;//string	False	杩斿洖鍥剧墖鐨勭浉瀵筓ri锛涢渶瑕佽皟鐢ㄨ幏鍙栬瀹㈣褰曚腑鐨勫浘鐗囨帴鍙o紝鏉ヨ幏鍙栧浘鐗囩殑鏁版嵁
+    private String svrIndexCode		;//string	False	涓巔icUri閰嶅杈撳嚭鐨勫瓧娈典俊鎭紝鐢ㄤ簬鈥滆幏鍙栬瀹㈣褰曠殑鍥剧墖鈥濇帴鍙g殑杈撳叆鍙傛暟
+    /**
+     * 璁垮鍗曠姸鎬�,
+     *             0:寰呭鏍搞��
+     *             1锛氭甯搞��
+     *             2锛氳繜鍒般��
+     *             3锛氬け鏁堛��
+     *             4锛氬鏍搁��鍥炪��
+     *             9锛氬鏍稿け鏁堛��
+     *             10锛氶個绾︿腑銆�
+     *             11:閭�绾﹀け鏁�
+     */
+    private Integer visitorStatus		;//integer	False
+    private String certAddr		;//string	False	璇佷欢鍦板潃
+    private String certIssuer		;//string	False	鍙戣瘉鏈哄叧
+    private Integer nation	;//integer	False
+    private String birthplace		;//string	False	绫嶈疮
+    private String orderId		;//string	False	璁垮璁板綍鍞竴鏍囪瘑锛岀敤浜庡凡棰勭害鐧昏銆佽瀹㈢绂荤瓑鎿嶄綔
+    private List<AppointmentResInfoResponse> designatedResources;//	object	False	鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
+    private String[] privilegeGroupNames;//	string[]	False	鏉冮檺缁勫悕绉伴泦鍚�
+    private String identityUri		;//string	False	璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
+    private String identitySvrCode		;//string	False	璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java
index 00ce369..1ef5b93 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java
@@ -6,50 +6,9 @@
 import java.util.Map;
 
 @Data
-public class AppointmentInfoResponse {
+public class AppointmentResInfoResponse {
 
  
-   private String appointRecordId		;//string	False	棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
-private String receptionistId		;//string	False	琚浜哄敮涓�鏍囪瘑
-private String receptionistName		;//string	False	琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
-           private String receptionistCode		;//string	False	琚浜烘墍灞炵粍缁囩紪鐮�
-private String visitStartTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
-           private String visitEndTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�  yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛� 棰勮绂诲紑鏃堕棿蹇呴』鏅氫簬褰撳墠鏃堕棿鍜岄璁℃潵璁挎椂闂�
-private String visitPurpose		;//string	False	鏉ヨ浜嬬敱
-private String visitorName		;//string	False	璁垮濮撳悕
-private String visitorWorkUnit		;//string	False	鏉ヨ鍗曚綅
-private String visitorAddress		;//string	False	璁垮浣忓潃
-private String visitorId		;//string	False	璁垮Id
-private String verificationCode		;//string	False	璁垮楠岃瘉鐮侊紝鐢ㄤ簬璁垮鍦ㄨ瀹㈡満鐧昏鐨勫嚟璇�
-private String QRCode		;//string	False	鍔ㄦ�佷簩缁寸爜锛屽闇�瑕佷娇鐢紝鍙皢璁垮浜岀淮鐮佸唴瀹硅浆鎴愪簩缁寸爜鍥剧墖鍗冲彲
-private Integer gender;//	integer	False	1-鐢�,  2-濂�
-private String phoneNo		;//string	False	鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜锛屼粎鏀寔绾暟瀛椼��
-           private String plateNo		;//string	False	璁垮杞︾墝鍙�
-private Integer certificateType	;//	integer	False	璇佷欢绫诲瀷锛岃瑙侀檮褰旳.11 璇佷欢绫诲瀷
-private String certificateNo		;//string	False	璇佷欢鍙凤紝鏍煎紡涓猴細1~20涓暟瀛椼�佸瓧姣嶇粍鎴�
-private String picUri		;//string	False	杩斿洖鍥剧墖鐨勭浉瀵筓ri锛涢渶瑕佽皟鐢ㄨ幏鍙栬瀹㈣褰曚腑鐨勫浘鐗囨帴鍙o紝鏉ヨ幏鍙栧浘鐗囩殑鏁版嵁
-private String svrIndexCode		;//string	False	涓巔icUri閰嶅杈撳嚭鐨勫瓧娈典俊鎭紝鐢ㄤ簬鈥滆幏鍙栬瀹㈣褰曠殑鍥剧墖鈥濇帴鍙g殑杈撳叆鍙傛暟
-    /**
-     * 璁垮鍗曠姸鎬�,
-     *             0:寰呭鏍搞��
-     *             1锛氭甯搞��
-     *             2锛氳繜鍒般��
-     *             3锛氬け鏁堛��
-     *             4锛氬鏍搁��鍥炪��
-     *             9锛氬鏍稿け鏁堛��
-     *             10锛氶個绾︿腑銆�
-     *             11:閭�绾﹀け鏁�
-     */
-    private Integer visitorStatus		;//integer	False
-
-
-private String certAddr		;//string	False	璇佷欢鍦板潃
-private String certIssuer		;//string	False	鍙戣瘉鏈哄叧
-private Integer nation	;//integer	False
-private String birthplace		;//string	False	绫嶈疮
-private String orderId		;//string	False	璁垮璁板綍鍞竴鏍囪瘑锛岀敤浜庡凡棰勭害鐧昏銆佽瀹㈢绂荤瓑鎿嶄綔
-private List<Map<String,Object>> designatedResources;//	object	False	鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
-private String[] privilegeGroupNames;//	string[]	False	鏉冮檺缁勫悕绉伴泦鍚�
-private String identityUri		;//string	False	璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
-private String identitySvrCode		;//string	False	璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
+   private String  paramKey;//	string	False	鍙傛暟绫诲瀷,  闂ㄧ鐐�1 姊帶妤煎眰2    闂ㄥ彛鏈�3 鍥村鏈�4  鍋滆溅搴�5
+   private String[] paramValues;//	string[]	False	璁惧鐨刬ndexCode闆嗗悎
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgInfoResponse.java
index 2696169..9e0c714 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgInfoResponse.java
@@ -3,7 +3,7 @@
 import lombok.Data;
 
 @Data
-public class OrgListResponse {
+public class OrgInfoResponse {
 
   private String orgIndexCode;//	缁勭粐鍞竴鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�
     private String  orgNo	;//string	False	缁勭粐缂栧彿锛堟渶澶ч暱搴�64锛�
@@ -12,4 +12,5 @@
     private String  parentOrgIndexCode;//	string	False	鐖剁粍缁囧敮涓�鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�
     private String  parentOrgName;//	string	False	鐖剁粍缁囧悕绉帮紙鏈�澶ч暱搴�64锛�
     private String  updateTime;//	string	False	鏇存柊鏃堕棿    瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08+08:00琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangeInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangeInfoResponse.java
index 69475ab..59df4d7 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangeInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangeInfoResponse.java
@@ -3,21 +3,18 @@
 import lombok.Data;
 
 @Data
-public class OrgInfoResponse {
+public class OrgTimeRangeInfoResponse {
 
   private String orgIndexCode;//	缁勭粐鍞竴鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�
-    private String  orgNo	;//string	False	缁勭粐缂栧彿锛堟渶澶ч暱搴�64锛�
     private String  organizationCode;//	string	False	缁勭粐缂栫爜
     private String orgName;//	string	False	缁勭粐鍚嶇О锛堟渶澶ч暱搴�64锛�  褰撳墠缁勭粐鐨勫悕绉帮紝濡傞粯璁ら儴闂�
     private String orgPath	;//string	False	缁勭粐鐩綍锛堟渶澶ч暱搴�64锛� 渚嬪锛氶粯璁ら儴闂�/缁煎悎瀹夐槻/寮�鍙戝皬缁�
-    private String  parentOrgIndexCode;//	string	False	鐖剁粍缁囧敮涓�鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�
-    private String  parentOrgName;//	string	False	鐖剁粍缁囧悕绉帮紙鏈�澶ч暱搴�64锛�
-    private String  updateTime;//	string	False	鏇存柊鏃堕棿    瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08+08:00琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+    private String  parentOrgIndexCode;//	-1鈥濅唬琛ㄦ棤鐖剁粍缁囷紝鍏跺畠浠h〃璇ヨ祫婧愮埗缁勭粐鍞竴鏍囪瘑鐮侊紝渚嬧�渞oot000000鈥�
 
-  ++sort	number	False	鏄剧ず椤哄簭
-++available	boolean	False	鐢ㄤ簬鏍囪瘑缁勭粐鑺傜偣鏄惁鏈夋潈闄愭搷浣滐紝true锛氭湁鏉冮檺锛宖alse锛氭棤鏉冮檺
-++leaf	boolean	False	鏍囪瘑缁勭粐鑺傜偣鏄惁鍙跺瓙鑺傜偣锛宼rue锛氫负鍙跺瓙缁撶偣锛宖alse锛氶潪鍙跺瓙缁撶偣
-++createTime	string	False	鍒涘缓鏃堕棿锛孖OS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
-++updateTime	string	False	淇敼鏃堕棿锛孖OS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
-++status	number	False	璧勬簮鐘舵�侊紝灏忎簬0鍒欎唬琛ㄨ祫婧愬凡琚垹闄わ紝0浠h〃鏈夋晥璧勬簮
+  private Integer sort	;//	number	False	鏄剧ず椤哄簭
+  private Boolean available		;//boolean	False	鐢ㄤ簬鏍囪瘑缁勭粐鑺傜偣鏄惁鏈夋潈闄愭搷浣滐紝true锛氭湁鏉冮檺锛宖alse锛氭棤鏉冮檺
+  private Boolean leaf	;//	boolean	False	鏍囪瘑缁勭粐鑺傜偣鏄惁鍙跺瓙鑺傜偣锛宼rue锛氫负鍙跺瓙缁撶偣锛宖alse锛氶潪鍙跺瓙缁撶偣
+  private String createTime		;//string	False	鍒涘缓鏃堕棿锛孖OS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+  private String updateTime	;//	string	False	淇敼鏃堕棿锛孖OS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+  private Integer status		;//number	False	璧勬簮鐘舵�侊紝灏忎簬0鍒欎唬琛ㄨ祫婧愬凡琚垹闄わ紝0浠h〃鏈夋晥璧勬簮
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserInfoResponse.java
index 64688ec..dacd650 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserInfoResponse.java
@@ -5,10 +5,19 @@
 import java.util.List;
 
 @Data
-public class UserListPageResponse {
+public class UserInfoResponse {
 
-  private int total;//	number	False	鏌ヨ鏁版嵁璁板綍鎬绘暟
-  private int pageSize;//	number	False	姣忛〉璁板綍鎬绘暟
-  private int pageNo	;// number	False	褰撳墠椤电爜
-  private List<OrgInfoResponse> list	;// object[]	False	鏉冮檺缁勫璞″垪琛�
+private String personId	;//string	False	浜哄憳ID
+private String personName	;//string	False	濮撳悕
+private Integer gender	;//number	False
+private String orgIndexCode;//	string	False	鎵�灞炵粍缁囧敮涓�鏍囪瘑鐮�
+private String phoneNo;//	string	False	鑱旂郴鐢佃瘽
+private String jobNo;//	string	False	宸ュ彿
+private Integer certificateType;//	number	False	璇佷欢绫诲瀷111:韬唤璇�414:鎶ょ収113:鎴峰彛绨�335:椹鹃┒璇�131:宸ヤ綔璇�133:瀛︾敓璇�990:鍏朵粬 ;
+private String certificateNo	;//string	False	璇佷欢鍙风爜   涓�涓叉暟瀛楀瓧绗︿覆
+private String createTime	;//string	False	鍒涘缓鏃堕棿 瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00 琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+private String updateTime;//	string	False	鏇存柊鏃堕棿  瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00  琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+private String orgPath;//	string	False	鎵�灞炵粍缁囩洰褰曪紝@杩涜鍒嗗壊锛屼緥濡� @root000000@
+private String orgPathName;//	string	False	鎵�灞炵粍缁囧悕绉帮紝@杩涜鍒嗗壊锛屽@榛樿閮ㄩ棬@
+private List<UserPhotoResponse> personPhoto;//	object	False	浜哄憳鍥剧墖淇℃伅
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserPhotoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserPhotoResponse.java
index db9ed31..ba86087 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserPhotoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserPhotoResponse.java
@@ -2,34 +2,10 @@
 
 import lombok.Data;
 
-import java.util.List;
-
 @Data
-public class UserInfoResponse {
-
-private String personId	;//string	False	浜哄憳ID
-private String personName	;//string	False	濮撳悕
-private String gender	;//number	False
-private String orgIndexCode;//	string	False	鎵�灞炵粍缁囧敮涓�鏍囪瘑鐮�
-private String phoneNo;//	string	False	鑱旂郴鐢佃瘽
-private String jobNo;//	string	False	宸ュ彿
-private String certificateType;//	number	False	璇佷欢绫诲瀷
-111:韬唤璇�
-414:鎶ょ収
-113:鎴峰彛绨�
-335:椹鹃┒璇�
-131:宸ヤ綔璇�
-133:瀛︾敓璇�
-990:鍏朵粬
-private String certificateNo	;//string	False	璇佷欢鍙风爜
-  涓�涓叉暟瀛楀瓧绗︿覆
-private String createTime	;//string	False	鍒涘缓鏃堕棿
-  瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00
-  琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-private String updateTime;//	string	False	鏇存柊鏃堕棿
-  瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00
-  琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-private String orgPath;//	string	False	鎵�灞炵粍缁囩洰褰曪紝@杩涜鍒嗗壊锛屼緥濡� @root000000@
-private String orgPathName;//	string	False	鎵�灞炵粍缁囧悕绉帮紝@杩涜鍒嗗壊锛屽@榛樿閮ㄩ棬@
-private String personPhoto;//	object	False	浜哄憳鍥剧墖淇℃伅
+public class UserPhotoResponse {
+  private String  personPhotoIndexCode	;//string	False	浜鸿劯鍥剧墖鍞竴鏍囩ず
+  private String  picUri;//	string	False	鍥剧墖鐩稿url, 閫氳繃鎻愬彇浜哄憳鍥剧墖鎺ュ彛鑾峰彇鍥剧墖鏁版嵁
+  private String  serverIndexCode	;//string	False	鍥剧墖鏈嶅姟鍣ㄥ敮涓�鏍囩ず  鎻愬彇浜哄憳鍥剧墖鎺ュ彛蹇呰鍙傛暟
+  private String  personId	;//string	False	浜哄憳ID
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeInfoResponse.java
index ce584e9..a22d2de 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeInfoResponse.java
@@ -2,22 +2,56 @@
 
 import lombok.Data;
 
-import java.util.List;
-
 @Data
-public class UserInfoResponse {
+public class UserTimeRangeInfoResponse {
 
-private String personId	;//string	False	浜哄憳ID
-private String personName	;//string	False	濮撳悕
-private Integer gender	;//number	False
-private String orgIndexCode;//	string	False	鎵�灞炵粍缁囧敮涓�鏍囪瘑鐮�
-private String phoneNo;//	string	False	鑱旂郴鐢佃瘽
-private String jobNo;//	string	False	宸ュ彿
-private Integer certificateType;//	number	False	璇佷欢绫诲瀷111:韬唤璇�414:鎶ょ収113:鎴峰彛绨�335:椹鹃┒璇�131:宸ヤ綔璇�133:瀛︾敓璇�990:鍏朵粬
-private String certificateNo	;//string	False	璇佷欢鍙风爜   涓�涓叉暟瀛楀瓧绗︿覆
-private String createTime	;//string	False	鍒涘缓鏃堕棿 瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00 琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-private String updateTime;//	string	False	鏇存柊鏃堕棿  瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00  琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-private String orgPath;//	string	False	鎵�灞炵粍缁囩洰褰曪紝@杩涜鍒嗗壊锛屼緥濡� @root000000@
-private String orgPathName;//	string	False	鎵�灞炵粍缁囧悕绉帮紝@杩涜鍒嗗壊锛屽@榛樿閮ㄩ棬@
-private UserPhotoResponse personPhoto;//	object	False	浜哄憳鍥剧墖淇℃伅
+        private String personId	;//string	False	浜哄憳ID
+        private String personName;//	string	False	濮撳悕
+        private Integer gender;//	number	False
+        private String orgPath	;//string	False	鎵�灞炵粍缁囩洰褰曪紝浠绗﹀彿鍒嗗壊锛屽寘鍚湰缁勭粐锛屼緥濡侤root000000@
+        private String orgPathName;//	string	False	鎵�灞炵粍缁囩洰褰曞悕绉帮紝浠�/鍒嗛殧
+        private String orgIndexCode;//	string	False	鎵�灞炵粍缁囧敮涓�鏍囪瘑鐮�
+        private Integer certificateType;//	number	False	璇佷欢绫诲瀷锛屽弬鑰冮檮褰旳 鏁版嵁瀛楀吀
+        private String certificateNo;//	string	False	璇佷欢鍙风爜
+        private String jobNo;//	string	False	宸ュ彿
+        private String birthday;//	string	False	鍑虹敓鏃ユ湡锛屼緥"1990-01-01"
+        private String phoneNo;//	string	False	鑱旂郴鐢佃瘽
+        private String address;//	string	False	鑱旂郴鍦板潃
+        private String email;//	string	False	閭
+        private Integer education	;//number	False	瀛﹀巻锛岃瑙侀檮褰旳.12 瀛﹀巻绫诲瀷
+        private String lastName;//	string	False	浜哄憳濮撴皬
+        private String givenName;//	string	False	浜哄憳鍚嶇О
+        private String job;//string	False	鑱屼笟
+        private String staffProperty;//	string	False	鑱屽伐鎬ц川
+        private String company;//	string	False	宸ヤ綔鍗曚綅
+        private String employeePost;//	string	False	鑱屼綅
+        private String employeeNumber;//	string	False	鍛樺伐缂栧彿
+        private String postType;//	string	False	宀椾綅绫诲埆
+        private String identityType;//	string	False	韬唤绫诲瀷
+        private String nationality;//	string	False	鍥界睄
+        private Integer nation;//	number	False
+        private String birthplace	;//string	False	绫嶈疮
+        private String censusRegister;//	string	False	鎴风睄
+        private Integer marriaged;//	number	False	濠氬Щ鐘跺喌锛岃瑙侀檮褰旳.58 濠氬Щ鐘跺喌
+        private String politicalStatus;//	string	False	鏀挎不闈㈣矊
+        private String roomNum;//	string	False	鎴块棿鍙�
+        private String houseHolderRel;//	string	False	涓庢埛涓诲叧绯�
+        private String studentId;//	string	False	瀛﹀彿
+        private String stuStartTime;//	string	False	瀛︾敓鍏ュ鏃堕棿锛屼緥"1990-01-01"
+        private String stuEndTime;//	string	False	瀛︾敓姣曚笟鏃堕棿锛屼緥"1990-01-01"
+        private String stuGrade;//	string	False	骞寸骇
+        private String stuClass;//	string	False	鐝骇
+        private String academy	;//string	False	瀛﹂櫌
+        private String profession;//	string	False	瀛︾敓涓撲笟
+        private String dormitory;//	string	False	瀹胯垗妤�
+        private Integer lodge;//	number	False	鏄惁浣忔牎锛�1:鏄紱2:鍚�
+        private String personDesc	;//string	False	浜哄憳鎻忚堪
+        private Integer syncFlag	;//number	False	鍚屾鏍囧織绫诲瀷锛岃瑙侀檮褰旳.77 鍚屾鏍囧織绫诲瀷
+        private String pinyin	;//string	False	鎷奸煶
+        private String certIssuer	;//string	False	鍙戣瘉鏈烘瀯
+        private String certAddr	;//string	False	鍙戣瘉鍦板潃
+        private String certExpireTime;//	string	False	璇佷欢鏈夋晥鏈�
+        private Integer status	;//integer	False	鐘舵�佸皬浜�0鍒欎唬琛ㄨ祫婧愬凡琚垹闄�
+        private String createTime;//	string	False	鍒涘缓鏃堕棿锛孖OS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+        private String updateTime;//	string	False	鏇存柊鏃堕棿锛孖OS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleInfoResponse.java
new file mode 100644
index 0000000..b6c5588
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleInfoResponse.java
@@ -0,0 +1,28 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VehicleInfoResponse {
+
+     private String vehicleId	;//	string	False	杞﹁締ID锛堟渶澶ч暱搴�64锛�
+     private String plateNo	;//	string	False	杞︾墝鍙风爜锛堟渶澶ч暱搴�64锛�
+     private Integer isBandPerson	;//	number	False	鏄惁鍏宠仈浜哄憳
+     private String personId		;//string	False	浜哄憳ID锛堟渶澶ч暱搴�64锛�
+     private String personName	;//	string	False	浜哄憳濮撳悕
+     private Integer plateType	;//	number	False	杞︾墝绫诲瀷锛岃瑙侀檮褰旳.14 杞︾墝绫诲瀷
+     private Integer plateColor		;//number	False	杞︾墝棰滆壊锛岃瑙侀檮褰旳.15 杞︾墝棰滆壊
+     private Integer vehicleType		;//number	False	杞﹁締绫诲瀷锛岃瑙侀檮褰旳.16 杞﹁締绫诲瀷
+     private Integer vehicleColor		;//number	False	杞﹁締棰滆壊锛岃瑙侀檮褰旳.17 杞﹁締棰滆壊
+     private String description 	;//	string	False	杞﹁締鎻忚堪
+     private String regionIndexCode	;//	string	False	鎵�灞炲尯鍩�
+     private String regionName		;//string	False	鎵�灞炲尯鍩熷悕
+     private String regionPath		;//string	False	鎵�灞炲尯鍩熻矾寰勶紝@鍒嗛殧
+     private String regionPathName		;//string	False	鎵�灞炲尯鍩熻矾寰勫悕锛�/鍒嗛殧
+     private String orgPath	;//	string	False	鎵�灞炵粍缁囩洰褰曪紝@鍒嗛殧
+     private String orgPathName	;//	string	False	鎵�灞炲尯鍩熻矾寰勫悕锛�/鍒嗛殧
+     private String createTime	;//	string	False	鍒涘缓鏃堕棿 2019-12-11T11:30:51.502+08:00
+     private String updateTime	;//	string	False	淇敼鏃堕棿 2019-12-11T11:30:51.502+08:00
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleTimeRangeInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleTimeRangeInfoResponse.java
new file mode 100644
index 0000000..39e37cd
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VehicleTimeRangeInfoResponse.java
@@ -0,0 +1,20 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class VehicleTimeRangeInfoResponse {
+     private String vehicleId	;//string	False	dataId
+     private String plateNo	;//string	False	杞︾墝鍙风爜
+     private Integer isBandPerson;//	number	False	鏄惁鍏宠仈浜哄憳
+     private String personId	;//string	False	浜哄憳IndexCode
+     private Integer plateType	;//number	False	杞︾墝绫诲瀷锛岃瑙侀檮褰旳.14 杞︾墝绫诲瀷
+     private Integer plateColor	;//number	False	杞︾墝棰滆壊锛岃瑙侀檮褰旳.15 杞︾墝棰滆壊
+     private Integer vehicleType	;//number	False	杞﹁締绫诲瀷锛岃瑙侀檮褰旳.16 杞﹁締绫诲瀷
+     private Integer vehicleColor;//	number	False	杞﹁締棰滆壊锛岃瑙侀檮褰旳.17 杞﹁締棰滆壊
+     private String description	;//tring	False	杞﹁締鎻忚堪
+     private String regionIndexCode	;//string	False	鎵�灞炲尯鍩�
+     private Integer status;//	number	False	鐘舵�佺爜灏忎簬0鍒欎唬琛ㄨ祫婧愬凡琚垹闄�
+     private String updateTime	;//string	False	鏇存柊鏃ユ湡锛岄伒瀹圛SO8601鏍囧噯锛屽2018-07-26T21:30:08+08:00琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+     private String createTime	;//string	False	鍒涘缓鏃ユ湡锛岄伒瀹圛SO8601鏍囧噯锛屽2018-07-26T21:30:08+08:00琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java
index 3f098bf..f8d4821 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java
@@ -3,49 +3,43 @@
 import lombok.Data;
 
 import java.util.List;
-import java.util.Map;
 
 @Data
-public class AppointmentInfoResponse {
-    private String appointRecordId		;//string	False	棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
-    private String receptionistId		;//string	False	琚浜哄敮涓�鏍囪瘑
-    private String receptionistName		;//string	False	琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
-    private String receptionistCode		;//string	False	琚浜烘墍灞炵粍缁囩紪鐮�
-    private String visitStartTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
-    private String visitEndTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�  yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛� 棰勮绂诲紑鏃堕棿蹇呴』鏅氫簬褰撳墠鏃堕棿鍜岄璁℃潵璁挎椂闂�
-    private String visitPurpose		;//string	False	鏉ヨ浜嬬敱
-    private String visitorName		;//string	False	璁垮濮撳悕
-    private String visitorWorkUnit		;//string	False	鏉ヨ鍗曚綅
-    private String visitorAddress		;//string	False	璁垮浣忓潃
-    private String visitorId		;//string	False	璁垮Id
-    private String verificationCode		;//string	False	璁垮楠岃瘉鐮侊紝鐢ㄤ簬璁垮鍦ㄨ瀹㈡満鐧昏鐨勫嚟璇�
-    private String QRCode		;//string	False	鍔ㄦ�佷簩缁寸爜锛屽闇�瑕佷娇鐢紝鍙皢璁垮浜岀淮鐮佸唴瀹硅浆鎴愪簩缁寸爜鍥剧墖鍗冲彲
-    private Integer gender;//	integer	False	1-鐢�,  2-濂�
-    private String phoneNo		;//string	False	鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜锛屼粎鏀寔绾暟瀛椼��
-    private String plateNo		;//string	False	璁垮杞︾墝鍙�
-    private Integer certificateType	;//	integer	False	璇佷欢绫诲瀷锛岃瑙侀檮褰旳.11 璇佷欢绫诲瀷
-    private String certificateNo		;//string	False	璇佷欢鍙凤紝鏍煎紡涓猴細1~20涓暟瀛椼�佸瓧姣嶇粍鎴�
-    private String picUri		;//string	False	杩斿洖鍥剧墖鐨勭浉瀵筓ri锛涢渶瑕佽皟鐢ㄨ幏鍙栬瀹㈣褰曚腑鐨勫浘鐗囨帴鍙o紝鏉ヨ幏鍙栧浘鐗囩殑鏁版嵁
-    private String svrIndexCode		;//string	False	涓巔icUri閰嶅杈撳嚭鐨勫瓧娈典俊鎭紝鐢ㄤ簬鈥滆幏鍙栬瀹㈣褰曠殑鍥剧墖鈥濇帴鍙g殑杈撳叆鍙傛暟
-    /**
-     * 璁垮鍗曠姸鎬�,
-     *             0:寰呭鏍搞��
-     *             1锛氭甯搞��
-     *             2锛氳繜鍒般��
-     *             3锛氬け鏁堛��
-     *             4锛氬鏍搁��鍥炪��
-     *             9锛氬鏍稿け鏁堛��
-     *             10锛氶個绾︿腑銆�
-     *             11:閭�绾﹀け鏁�
-     */
-    private Integer visitorStatus		;//integer	False
-    private String certAddr		;//string	False	璇佷欢鍦板潃
-    private String certIssuer		;//string	False	鍙戣瘉鏈哄叧
-    private Integer nation	;//integer	False
-    private String birthplace		;//string	False	绫嶈疮
-    private String orderId		;//string	False	璁垮璁板綍鍞竴鏍囪瘑锛岀敤浜庡凡棰勭害鐧昏銆佽瀹㈢绂荤瓑鎿嶄綔
-    private List<AppointmentResInfoResponse> designatedResources;//	object	False	鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
-    private String[] privilegeGroupNames;//	string[]	False	鏉冮檺缁勫悕绉伴泦鍚�
-    private String identityUri		;//string	False	璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
-    private String identitySvrCode		;//string	False	璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
+public class VisitingInfoResponse {
+      
+      private String visitorStatus;//	number	False	5锛氳秴鏈熻嚜鍔ㄧ绂�6锛氬凡绛剧7锛氳秴鏈熸湭绛剧8锛氬凡鍒拌揪
+      private String visiorGroupId	;//string	False	璁垮鍚嶅崟鍒嗙粍ID
+      private String visiorGroupName;//	string	False	璁垮鍚嶅崟鍒嗙粍鍚嶇О锛屾敮鎸佷腑鑻辨枃瀛楃锛屼笉鑳藉寘鍚� 鈥� / \ : * ? " < >
+      private String orderId	;//string	False	璁垮鐧昏鏃剁殑鐧昏id锛屽彲浠ョ敤鏉ュ仛璁垮绛剧銆傛id濡傝瀹㈢櫥璁拌繑鍥炵殑id涓�鑷�
+      private Integer personNum;//	number	False	鏉ヨ浜烘暟锛屼笉灏忎簬1锛屼笉澶т簬999
+      private String plannedStartTime;//	string	False	棰勮鏉ヨ鏃堕棿锛屾椂闂村弬鏁伴渶婊¤冻ISO8601鏍煎紡锛歽yyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛屼緥濡傚寳浜椂闂达細
+      private String plannedEndTime;//	string	False	棰勮绂诲紑鏃堕棿锛屾椂闂村弬鏁伴渶婊¤冻ISO8601鏍煎紡锛歽yyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛屼緥濡傚寳浜椂闂达細
+      private String appointRecordId		;//string	False	棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
+      private String receptionistId		;//string	False	琚浜哄敮涓�鏍囪瘑
+      private String receptionistName		;//string	False	琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
+      private String receptionistCode		;//string	False	琚浜烘墍灞炵粍缁囩紪鐮�
+      private String visitStartTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
+      private String visitEndTime		;//string	False	鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�  yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛� 棰勮绂诲紑鏃堕棿蹇呴』鏅氫簬褰撳墠鏃堕棿鍜岄璁℃潵璁挎椂闂�
+      private String visitPurpose		;//string	False	鏉ヨ浜嬬敱
+      private String visitorName		;//string	False	璁垮濮撳悕
+      private String visitorWorkUnit		;//string	False	鏉ヨ鍗曚綅
+      private String visitorAddress		;//string	False	璁垮浣忓潃
+      private String visitorId		;//string	False	璁垮Id
+      private String verificationCode		;//string	False	璁垮楠岃瘉鐮侊紝鐢ㄤ簬璁垮鍦ㄨ瀹㈡満鐧昏鐨勫嚟璇�
+      private String QRCode		;//string	False	鍔ㄦ�佷簩缁寸爜锛屽闇�瑕佷娇鐢紝鍙皢璁垮浜岀淮鐮佸唴瀹硅浆鎴愪簩缁寸爜鍥剧墖鍗冲彲
+      private Integer gender;//	integer	False	1-鐢�,  2-濂�
+      private String phoneNo		;//string	False	鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜锛屼粎鏀寔绾暟瀛椼��
+      private String plateNo		;//string	False	璁垮杞︾墝鍙�
+      private Integer certificateType	;//	integer	False	璇佷欢绫诲瀷锛岃瑙侀檮褰旳.11 璇佷欢绫诲瀷
+      private String certificateNo		;//string	False	璇佷欢鍙凤紝鏍煎紡涓猴細1~20涓暟瀛椼�佸瓧姣嶇粍鎴�
+      private String picUri		;//string	False	杩斿洖鍥剧墖鐨勭浉瀵筓ri锛涢渶瑕佽皟鐢ㄨ幏鍙栬瀹㈣褰曚腑鐨勫浘鐗囨帴鍙o紝鏉ヨ幏鍙栧浘鐗囩殑鏁版嵁
+      private String svrIndexCode		;//string	False	涓巔icUri閰嶅杈撳嚭鐨勫瓧娈典俊鎭紝鐢ㄤ簬鈥滆幏鍙栬瀹㈣褰曠殑鍥剧墖鈥濇帴鍙g殑杈撳叆鍙傛暟
+      private String certAddr		;//string	False	璇佷欢鍦板潃
+      private String certIssuer		;//string	False	鍙戣瘉鏈哄叧
+      private Integer nation	;//integer	False
+      private String birthplace		;//string	False	绫嶈疮
+      private List<AppointmentResInfoResponse> designatedResources;//	object	False	鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
+      private String[] privilegeGroupNames;//	string[]	False	鏉冮檺缁勫悕绉伴泦鍚�
+      private String identityUri		;//string	False	璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
+      private String identitySvrCode		;//string	False	璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
 }
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 796dcde..b4c1173 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
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.TypeReference;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.HKTools;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseRequst;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
@@ -23,13 +24,13 @@
      * 鑾峰彇鏍圭粍缁囨暟鎹�
      * @return
      */
-    public  static  BaseResponse<OrgListResponse>  getRootOrg(BaseRequst param){
+    public  static  BaseResponse<OrgInfoResponse>  getRootOrg(BaseRequst param){
         log.info("銆愭捣搴疯幏鍙栨牴缁勭粐銆�================寮�濮�====");
         try {
             String res = HKTools.getRootOrg ();
             TypeReference typeReference =
-                    new TypeReference< BaseResponse<OrgListResponse>>(){};
-            BaseResponse<OrgListResponse> result = JSONObject.parseObject(res, typeReference.getType());
+                    new TypeReference< BaseResponse<OrgInfoResponse>>(){};
+            BaseResponse<OrgInfoResponse> result = JSONObject.parseObject(res, typeReference.getType());
             logResult(result,"娴峰悍鑾峰彇鏍圭粍缁�");
             return  result;
         }catch (Exception e){
@@ -782,7 +783,150 @@
         }
         return  null;
     }
-
+    /**
+     *鏌ヨ璁垮棰勭害璁板綍锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<AppointmentInfoResponse>>   appointmentRecords(AppointmentListRequest param){
+        log.info("銆愭捣搴疯瀹㈤绾﹁褰曟煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.appointmentRecords(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<AppointmentInfoResponse>>>(){};
+            BaseResponse<BaseListPageResponse<AppointmentInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍璁垮棰勭害璁板綍鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯瀹㈤绾﹁褰曟煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鏌ヨ璁垮鏉ヨ璁板綍锛堝凡鐧昏锛夛紙鍒嗛〉锛�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<VisitingInfoResponse>>   visitingRecords(VisitingInfoRequest param){
+        log.info("銆愭捣搴疯瀹㈡潵璁胯褰曟煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.visitingRecords(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<VisitingInfoResponse>>>(){};
+            BaseResponse<BaseListPageResponse<VisitingInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍璁垮鏉ヨ璁板綍鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯瀹㈡潵璁胯褰曟煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鍏ㄩ噺缁勭粐鏌ヨ锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<OrgInfoResponse>>   orgAllList(TimeRangeListRequest param){
+        log.info("銆愭捣搴峰叏閲忕粍缁囨煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.orgAllList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<OrgInfoResponse>>> (){};
+            BaseResponse<BaseListPageResponse<OrgInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍏ㄩ噺缁勭粐鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰叏閲忕粍缁囨煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *澧為噺缁勭粐鏌ヨ锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<OrgTimeRangeInfoResponse>>   orgTimeRangeList(TimeRangeListRequest param){
+        log.info("銆愭捣搴峰閲忕粍缁囨煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.orgTimeRangeList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<OrgTimeRangeInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<OrgTimeRangeInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍澧為噺缁勭粐鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰閲忕粍缁囨煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鍏ㄩ噺浜哄憳鏌ヨ锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<UserInfoResponse>>   userAllList(TimeRangeListRequest param){
+        log.info("銆愭捣搴峰叏閲忎汉鍛樻煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.userAllList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<UserInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<UserInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍏ㄩ噺浜哄憳鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰叏閲忎汉鍛樻煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *澧為噺浜哄憳鏌ヨ锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<UserTimeRangeInfoResponse>>   userTimeRangeList(TimeRangeListRequest param){
+        log.info("銆愭捣搴峰閲忎汉鍛樻煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.userTimeRangeList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<UserTimeRangeInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<UserTimeRangeInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍澧為噺浜哄憳鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰閲忎汉鍛樻煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鍏ㄩ噺杞﹁締鏌ヨ锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<VehicleInfoResponse>>   vehicleList(TimeRangeListRequest param){
+        log.info("銆愭捣搴峰叏閲忎汉鍛樻煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.vehicleList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<VehicleInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<VehicleInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍏ㄩ噺浜哄憳鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰叏閲忎汉鍛樻煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *澧為噺杞﹁締鏌ヨ锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>>   vehicleTimeRangeList(TimeRangeListRequest param){
+        log.info("銆愭捣搴峰閲忎汉鍛樻煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.vehicleTimeRangeList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> >(){};
+            BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍澧為噺浜哄憳鏌ヨ");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰閲忎汉鍛樻煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
     private static void logResult(BaseResponse res,String name) {
         if(StringUtils.equals(res.getCode(),HKConstants.RESPONSE_SUCCEE)){
             log.info("銆�"+name+"銆�================鎴愬姛====\n"+res);
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 6cd365e..22b4a0f 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
@@ -85,6 +85,7 @@
     public static  boolean DEALING_HK_ORG = false;
     public static  boolean DEALING_HK_USER = false;
     public static  boolean DEALING_HK_VISIT = false;
+    public static  boolean DEALING_FROM_HK_VISIT = false;
     public static  boolean DEALING_HK_EMPOWER = false;
     public static  boolean DEALING_HK_EMPOWER_DETAIL = false;
     public static  boolean DEALING_HK_EMPOWER_RESULT = false;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 1a307f1..62a16ad 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -58,6 +58,23 @@
         }
         return  null;
     }
+    /**
+     * 浼犲叆Data绫诲瀷鏃ユ湡锛岃繑鍥炲瓧绗︿覆绫诲瀷鏃堕棿锛圛SO8601鏍囧噯鏃堕棿锛�
+     * @param date
+     * @return
+     */
+    public static String getISO8601Timestamp2(Date date){
+        try {
+            TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
+            //TimeZone tz = TimeZone.getTimeZone("GMT-01");
+            DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'+'08:00");
+            df.setTimeZone(tz);
+            String nowAsISO = df.format(date);
+            return nowAsISO;
+        }catch (Exception e){
+        }
+        return  null;
+    }
     public static Date getISO8601DateByStr(String date)  {
         TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
         if(date!=null ){
@@ -68,6 +85,25 @@
         }
         //TimeZone tz = TimeZone.getTimeZone("GMT-01");
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
+//        DateFormat df = new SimpleDateFormat("2023-12-08 T 09:25:54.698+08:00");
+        df.setTimeZone(tz);
+        Date nowAsISO = null;
+        try {
+            nowAsISO = df.parse(date);
+        } catch (ParseException e) {
+        }
+        return nowAsISO;
+    }
+    public static Date getISO8601DateByStr2(String date)  {
+        TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
+        if(date!=null ){
+            int i = date.indexOf("+");
+            if(i >0){
+                date = date.substring(0,i);
+            }
+        }
+        //TimeZone tz = TimeZone.getTimeZone("GMT-01");
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
 //        DateFormat df = new SimpleDateFormat("2023-12-08 T 09:25:54.698+08:00");
         df.setTimeZone(tz);
         Date nowAsISO = null;
@@ -2788,8 +2824,11 @@
     public static void main(String[] args) {
         try {
             System.out.println(RandomStringUtils.randomNumeric(3));
-            Date date = getISO8601DateByStr("2023-02-26T08:59:55.206+08:00");
+            Date date = getISO8601DateByStr("2024-02-21T15:46:36.014+08:00");
             System.out.println(getISO8601Timestamp(date));
+
+
+
         } catch (Exception ex) {
             ex.printStackTrace();
         }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
index 92f37ee..8d94c37 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
@@ -56,5 +56,7 @@
 
     @ApiModelProperty(value = "erp鏈烘瀯涓婚敭 ")
     private String erpOrgId;
+    @ApiModelProperty(value = "鏈烘瀯涓婚敭 ")
+    private String companyId;
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java
index 472c9ee..3c37d8a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Cars;
 
+import java.util.List;
+
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
 public interface CarsMapper extends BaseMapper<Cars> {
 
+    void insertBatchSomeColumn(List<Cars> allHkList);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
index 8ea4fb6..d135487 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
@@ -231,9 +231,6 @@
     @TableField(exist = false)
     private String companyName;
 
-    @ApiModelProperty(value = "浜哄憳绫诲瀷")
-    @TableField(exist = false)
-    private String memberType;
 
     @ApiModelProperty(value = "寮�濮嬫椂闂�")
     @TableField(exist = false)
@@ -242,5 +239,23 @@
     @ApiModelProperty(value = "缁撴潫鏃堕棿")
     @TableField(exist = false)
     private Date endTime;
+    @ApiModelProperty(value = "浜哄憳鍚嶇О ")
+    @TableField(exist = false)
+    private String memberName  ;
+    @ApiModelProperty(value = "缁熻鏁伴噺 ")
+    @TableField(exist = false)
+    private int num  ;
+    @ApiModelProperty(value = "灏忔椂 ")
+    @TableField(exist = false)
+    private Integer hour  ;
+    @ApiModelProperty(value = "浜哄憳缂栫爜 ")
+    private Integer memberId  ;
+    @ApiModelProperty(value = "浜哄憳绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍛樺伐")
+    @TableField(exist = false)
+    private Integer memberType  ;
 
+
+    @ApiModelProperty(value = "璁垮鍏徃鍚嶇О")
+    @TableField(exist = false)
+    private String visitCompanyName;
 }
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 9d0986c..cbc9720 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
@@ -32,7 +32,6 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
@@ -41,7 +40,6 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "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 dc10d8a..5f9a4fb 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
@@ -169,7 +169,6 @@
     @TableField(exist = false)
     private String parentName;
     @ApiModelProperty(value = "娴峰悍涓婄骇缁勭粐")
-    @TableField(exist = false)
     private String hkParentId;
 
     @TableField(exist = false)
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 70c52fd..0d17ae7 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
@@ -210,7 +210,7 @@
     private String companyName;
     @ApiModelProperty(value = "缁勭粐娴峰悍缂栫爜")
     @TableField(exist = false)
-    private String companyHkId;
+    private String hkOrgId;
     @ApiModelProperty(value = "瑙掕壊缂栫爜鏌ヨ")
     @TableField(exist = false)
     private String roleIdParam;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
index 16e3ceb..5a55fa1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -179,4 +179,8 @@
     @ApiModelProperty(value = "鍏徃/閮ㄩ棬鍚嶇О")
     @TableField(exist = false)
     private String companyName;
+
+    @ApiModelProperty(value = "缁熻鏁伴噺 ")
+    @TableField(exist = false)
+    private int num  ;
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/ERPSyncService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java
similarity index 98%
rename from server/dmvisit_service/src/main/java/com/doumee/service/business/ERPSyncService.java
rename to server/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java
index 9aa9384..5eea870 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/ERPSyncService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java
@@ -1,4 +1,4 @@
-package com.doumee.service.business;
+package com.doumee.service.business.ext;
 
 import com.doumee.core.erp.model.openapi.request.erp.*;
 import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse;
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/ext/HkSyncService.java
similarity index 86%
rename from server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
rename to server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index faf672b..6a57897 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/ext/HkSyncService.java
@@ -1,4 +1,4 @@
-package com.doumee.service.business;
+package com.doumee.service.business.ext;
 
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
 import com.doumee.core.haikang.model.param.request.DoorsListRequest;
@@ -9,6 +9,7 @@
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
 
 /**
  * 鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃Service瀹氫箟
@@ -57,6 +58,12 @@
     void syncOrgData();
 
     void syncUserData();
+    void syncVistAppointData(Date date);
+    void syncVehicleData();
+    void syncVehicleUpdateData(Date date);
+    void syncUserUpdateData(Date start, Date end);
+
+    void syncOrgUpdateData(Date start, Date end);
 
     void syncVisitData();
     void syncEmpowerData();
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarEventServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarEventServiceImpl.java
index 97192ed..33f91cc 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarEventServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarEventServiceImpl.java
@@ -290,15 +290,7 @@
         if(null != carEventExcel && carEventExcel.getRecords().size() > 0) {
             carEventExcel.getRecords().stream().forEach(obj->{
                 CarEventVo vo = new CarEventVo();
-                if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.PARK_LINE_IN.getKey()){
-                    vo.setEventTypeName(HKConstants.EventTypes.PARK_LINE_IN.getName());
-                }else if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
-                    vo.setEventTypeName(HKConstants.EventTypes.PARK_PASS_IN.getName());
-                }else if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.PARK_LINE_OUT.getKey()){
-                    vo.setEventTypeName(HKConstants.EventTypes.PARK_LINE_OUT.getName());
-                }else{
-                    vo.setEventTypeName(HKConstants.EventTypes.PARK_PASS_OUT.getName());
-                }
+                vo.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType())) ;
                 if(null != obj.getPersonType()) {
                     if(Constants.ZERO == obj.getPersonType()){
                         vo.setTypeName(Constants.Status.LW_FK.getDes());
@@ -336,8 +328,8 @@
         MPJLambdaWrapper<CarEvent> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
 
-        queryWrapper.leftJoin(Cars.class,Cars::getCode,CarEvent::getPlateNos)
-                .leftJoin(Member.class,Member::getId,Cars::getMemberId)
+        queryWrapper
+                .leftJoin(Member.class,Member::getId,CarEvent::getMemberId)
                 .leftJoin(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.selectAll(CarEvent.class)
                 .selectAs(Member::getType,CarEventDTO::getPersonType)
@@ -357,7 +349,7 @@
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
                         Company::getName,
                         pageWrap.getModel().getCompanyName())
-                .eq(StringUtils.isNotBlank(pageWrap.getModel().getMemberType()),
+                .eq( pageWrap.getModel().getMemberType()!=null,
                         Member::getType,
                         pageWrap.getModel().getMemberType())
                 .eq(Objects.nonNull(pageWrap.getModel().getEventType()),
@@ -366,7 +358,8 @@
                 .ge(Objects.nonNull(pageWrap.getModel().getStartTime()),
                         CarEvent::getCreateDate, pageWrap.getModel().getStartTime())
                 .le(Objects.nonNull(pageWrap.getModel().getEndTime()),
-                        CarEvent::getCreateDate, pageWrap.getModel().getEndTime());
+                        CarEvent::getCreateDate, pageWrap.getModel().getEndTime())
+                .orderByDesc(CarEvent::getCreateDate);
         IPage<CarEventDTO> carEventDTOIPage = carEventJoinMapper.selectJoinPage(page, CarEventDTO.class, queryWrapper);
         return carEventDTOIPage;
     }
@@ -377,18 +370,21 @@
         Map<String,SystemDictData> dataMap = list.stream().collect(Collectors.toMap(SystemDictData::getLabel, Function.identity()));
         List<CarEventDTO> newDataList = new ArrayList<>();
         newCarEventDTOList.stream().forEach(obj->{
-            obj.setVehiclePicUrl(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
-                    +dataMap.get(Constants.CAR_EVENT_IMG).getCode()
-                    +obj.getVehiclePicUrl());
-            if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.PARK_LINE_IN.getKey()){
-                obj.setEventTypeName(HKConstants.EventTypes.PARK_LINE_IN.getName());
-            }else if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
-                obj.setEventTypeName(HKConstants.EventTypes.PARK_PASS_IN.getName());
-            }else if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.PARK_LINE_OUT.getKey()){
-                obj.setEventTypeName(HKConstants.EventTypes.PARK_LINE_OUT.getName());
-            }else{
-                obj.setEventTypeName(HKConstants.EventTypes.PARK_PASS_OUT.getName());
+            if(obj.getVehiclePicUrl()!=null
+                    && !obj.getVehiclePicUrl().startsWith(HKConstants.IMG_INDEX)
+                    && !obj.getVehiclePicUrl().startsWith(HKConstants.IMG_INDEX_ERROR)){
+                obj.setVehiclePicUrl(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
+                        +dataMap.get(Constants.CAR_EVENT_IMG).getCode()
+                        +obj.getVehiclePicUrl());
             }
+            if(obj.getPlatePicUrl()!=null
+                    && !obj.getVehiclePicUrl().startsWith(HKConstants.IMG_INDEX)
+                    && !obj.getVehiclePicUrl().startsWith(HKConstants.IMG_INDEX_ERROR)){
+                obj.setPlatePicUrl(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
+                        +dataMap.get(Constants.CAR_EVENT_IMG).getCode()
+                        +obj.getPlatePicUrl());
+            }
+             obj.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType()) );
             newDataList.add(obj);
         });
         return newDataList;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 84656aa..a827a1b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
@@ -56,6 +57,8 @@
 
     @Autowired
     private CompanyMapper companyMapper;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
@@ -441,23 +444,29 @@
     @Override
     public List<CompanyDTO> findCompanyTreePage(Integer type) {
         //閰嶇疆缁勫憳浜哄憳绫诲瀷鏉ユ簮鏂瑰紡 0鑷缓 1ERP
-        String origin = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORG_USER_ORIGIN).getCode();
         LambdaQueryWrapper<Company> wrapper = new LambdaQueryWrapper<>();
 
         wrapper.eq(Company::getIsdeleted,Constants.ZERO)
                 .eq(Constants.equalsInteger(type,Constants.ONE),Company::getType,type);
         List<Company> companies = companyMapper.selectList(wrapper);
-        return getCompanyTree( companies, null,origin);
+        return getCompanyTree( companies, null);
     }
 
 
-    private List<CompanyDTO> getCompanyTree(List<Company> companies, String parentId,String origin){
+    private List<CompanyDTO> getCompanyTree(List<Company> companies, String parentId){
         if (CollectionUtils.isEmpty(companies)){
             return null;
         }
-        List<Company> collect = companies.stream()
-                                        .filter(s -> (StringUtils.equals(origin, Constants.ONE+"")?StringUtils.equals(s.getErpParentId(), parentId):StringUtils.equals(s.getParentId()+"", parentId)))
-                                        .collect(Collectors.toList());
+        int  origin =Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin());
+        List<Company> collect = null;
+        if(origin == DataSyncConfig.origin.erp){
+            companies.stream().filter(s -> ( StringUtils.equals(s.getErpParentId()+"", parentId))).collect(Collectors.toList());
+        }else if(origin == DataSyncConfig.origin.hk){
+            companies.stream().filter(s -> ( StringUtils.equals(s.getHkParentId()+"", parentId))).collect(Collectors.toList());
+        }else{
+            companies.stream().filter(s -> ( StringUtils.equals(s.getParentId()+"", parentId))).collect(Collectors.toList());
+        }
+
         if (CollectionUtils.isEmpty(companies)){
             return null;
         }
@@ -466,7 +475,13 @@
             Company company = collect.get(i);
             CompanyDTO companyDTO = new CompanyDTO();
             BeanUtils.copyProperties(company,companyDTO);
-            companyDTO.setCompanyDTOList(getCompanyTree(companies,StringUtils.equals(origin, Constants.ONE+"")?company.getErpId(): company.getId()+"",origin));
+            String pId = company.getId()+"";
+            if(origin == 1){
+                pId = company.getErpId();
+            }else if(origin == 2){
+                pId = company.getHkParentId();
+            }
+            companyDTO.setCompanyDTOList(getCompanyTree(companies,pId));
             companyDTOList.add(companyDTO);
         }
         return companyDTOList;
@@ -510,8 +525,7 @@
         queryWrapper.eq(Company::getType,type);
         List<Company> companyList = companyJoinMapper.selectJoinList(Company.class,queryWrapper);
         //閰嶇疆缁勫憳浜哄憳绫诲瀷鏉ユ簮鏂瑰紡 0鑷缓 1ERP
-        String origin = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORG_USER_ORIGIN).getCode();
-        CompanyTree treeBuild = new CompanyTree(companyList,Integer.valueOf(origin));
+        CompanyTree treeBuild = new CompanyTree(companyList, dataSyncConfig.getOrgUserDataOrigin());
         companyList = treeBuild.buildTree();
         return companyList;
     }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
index 3a3ff3e..6aa8bcf 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
@@ -14,10 +14,7 @@
 import com.doumee.dao.admin.response.DeviceEventDTO;
 import com.doumee.dao.business.DeviceEventMapper;
 import com.doumee.dao.business.join.DeviceEventJoinMapper;
-import com.doumee.dao.business.model.Company;
-import com.doumee.dao.business.model.Device;
-import com.doumee.dao.business.model.DeviceEvent;
-import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.SystemDictDataMapper;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.DeviceEventVo;
@@ -343,11 +340,7 @@
                 }else {
                     eventVo.setExtEventInOutName("");
                 }
-                if (Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()) {
-                    eventVo.setEventTypeName(HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getName());
-                } else if (Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.DOOR_FACE_AUTH_FAIL.getKey()) {
-                    eventVo.setEventTypeName(HKConstants.EventTypes.DOOR_FACE_AUTH_FAIL.getName());
-                }
+                eventVo.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType())) ;
                 try {
                     eventVo.setHappenTime(DateUtil.timeEscape(obj.getHappenTime()));
                 } catch (ParseException e) {
@@ -393,7 +386,8 @@
                         pageWrap.getModel().getStartTime())
                 .le(Objects.nonNull(pageWrap.getModel().getEndTime()),
                         DeviceEvent::getCreateDate,
-                        pageWrap.getModel().getEndTime());
+                        pageWrap.getModel().getEndTime())
+                .orderByDesc(DeviceEvent::getCreateDate);
         queryWrapper.orderByDesc(DeviceEvent::getHappenTime);
         IPage<DeviceEventDTO> deviceEventDTOIPage = deviceEventJoinMapper.selectJoinPage(page, DeviceEventDTO.class, queryWrapper);
         return deviceEventDTOIPage;
@@ -402,31 +396,22 @@
     // 瀵瑰浘鐗囪繘琛屽垽鏂鐞�
     private List<DeviceEventDTO> newDeviceEvent(List<DeviceEventDTO> DeviceEventDTOList) {
         List<DeviceEventDTO> newDeviceEventDTOS = new ArrayList<>();
+        List<String> codes = Arrays.asList(Constants.FTP_RESOURCE_PATH,Constants.DEVICE_EVENT_IMG);
+        List<SystemDictData> list = systemDictDataMapper.list(codes);
         for (DeviceEventDTO dto:DeviceEventDTOList) {
-           if(StringUtils.isNotBlank(dto.getExtEventPictureURL())) {
-               String extEventPictureURL = dto.getExtEventPictureURL();
-               // 浣跨敤split("/")灏哢RL鎸夌収"/"杩涜鍒嗗壊鎴愬涓儴鍒�
-               String[] parts = extEventPictureURL.split("\\\\");
-               String newStr = parts[0];
-               boolean number = Validator.isNumber(newStr);
-               if(number) {
-                   List<String> codes = Arrays.asList(Constants.FTP_RESOURCE_PATH,Constants.DEVICE_EVENT_IMG);
-                   List<SystemDictData> list = systemDictDataMapper.list(codes);
+           if(StringUtils.isNotBlank(dto.getExtEventPictureURL())
+                   && !dto.getExtEventPictureURL().startsWith(HKConstants.IMG_INDEX)
+                   && !dto.getExtEventPictureURL().startsWith(HKConstants.IMG_INDEX_ERROR)) {
                    if(null != list && list.size() > 0) {
                        Map<String,SystemDictData> dataMap = list.stream().collect(Collectors.toMap(SystemDictData::getLabel, Function.identity()));
-                       dto.setExtEventPictureURL(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
-                                                 +dataMap.get(Constants.DEVICE_EVENT_IMG).getCode()
-                                                 +dto.getExtEventPictureURL());
+                       if(StringUtils.isNotBlank(dto.getExtEventPictureURL())){
+                           dto.setExtEventPictureURL(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
+                                   +dataMap.get(Constants.DEVICE_EVENT_IMG).getCode()
+                                   +dto.getExtEventPictureURL());
+                       }
                    }
-               }else {
-                   dto.setExtEventPictureURL(null);
-               }
            }
-            if(Constants.formatIntegerNum(dto.getEventType()) == HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()){
-                dto.setEventTypeName(HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getName());
-            }else if(Constants.formatIntegerNum(dto.getEventType()) == HKConstants.EventTypes.DOOR_FACE_AUTH_FAIL.getKey()){
-                dto.setEventTypeName(HKConstants.EventTypes.DOOR_FACE_AUTH_FAIL.getName());
-            }
+            dto.setEventTypeName(HKConstants.EventTypes.getName(dto.getEventType())) ;
             try {
                 dto.setHappenTime(DateUtil.timeEscape(dto.getHappenTime()));
             } catch (ParseException e) {
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
index 1eb177e..406c8c9 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -201,6 +201,7 @@
         IPage<DeviceRole> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<DeviceRole> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setIsdeleted(Constants.ZERO);
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.lambda().eq(DeviceRole::getId, pageWrap.getModel().getId());
         }
@@ -233,10 +234,9 @@
         if (StringUtils.isNotBlank(pageWrap.getModel().getType())) {
             if(pageWrap.getModel().getType().length() > 1) {
                 String[] types = pageWrap.getModel().getType().split(",");
-                queryWrapper.lambda()
-                        .eq(DeviceRole::getType, types[0])
+                queryWrapper.lambda().and(p-> p.eq(DeviceRole::getType, types[0])
                         .or()
-                        .eq(DeviceRole::getType, types[1]);
+                        .eq(DeviceRole::getType, types[1]));
             }else {
                 queryWrapper.lambda().eq(DeviceRole::getType, pageWrap.getModel().getType());
             }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
index 7c2f924..4ab1ef6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
@@ -18,20 +18,17 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.admin.response.CarEventDTO;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.MemberCardJoinMapper;
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.MemberCard;
-import com.doumee.dao.business.model.Retention;
-import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.service.business.MemberCardService;
 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.service.business.impl.hksync.HkSyncOrgUserServiceImpl;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -41,8 +38,6 @@
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
 
 /**
  * 鐢ㄦ埛鍗$墖缁戝畾淇℃伅琛⊿ervice瀹炵幇
@@ -90,7 +85,7 @@
         }
         CardInfoRequest cr = new CardInfoRequest();
         cr.setCardNo(memberCard.getCode());
-        cr.setOrgIndexCode(member.getCompanyHkId());
+        cr.setOrgIndexCode(member.getHkOrgId());
         cr.setPersonId(member.getHkId());
         cr.setCardType(memberCard.getType());
         List<CardInfoRequest> cardList = new ArrayList<>();
@@ -232,8 +227,8 @@
      */
     private void dealMemberRoleEmpower(Member member ) {
         //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級
-        List<MemberCard> cards = HkSyncOrgUserServiceImpl.getNormalCardList(member,memberCardMapper);
-        HkSyncOrgUserServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper);
+        List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper);
+        HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper);
     }
 
     @Override
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index e41b4b1..dfc80bd 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -9,6 +9,7 @@
 import cn.hutool.core.util.ReUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.config.Jwt.JwtPayLoad;
 import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.annotation.excel.ExcelImporter;
@@ -96,6 +97,8 @@
 
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
 
 
     @Override
@@ -571,7 +574,6 @@
         } catch (Exception e) {
 
         }
-//
 
     }
 
@@ -592,12 +594,15 @@
                 .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
                 .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit())
                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus())
-                .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId())
                 .eq(Member::getIsdeleted,Constants.ZERO)
 //                .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
                 .eq(Member::getType,Constants.memberType.internal)
                 .orderByDesc(Member::getCreateDate);
-
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin())==DataSyncConfig.origin.erp){
+            queryWrapper.eq( StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId());
+        }else{
+            queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Member::getCompanyId,pageWrap.getModel().getCompanyId());
+        }
         IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
 
         if(CollectionUtils.isNotEmpty(memberIPage.getRecords())){
@@ -630,13 +635,23 @@
             roleIds = roleIds.replace("[","").replace("]","");
             List<String> ids = Arrays.asList(roleIds.split(","));
             ids.forEach(i->{
-                DeviceRole deviceRole = deviceRoleList.stream().filter(m->m.getId().toString().equals(i)).findFirst().get();
+//                DeviceRole deviceRole = deviceRoleList.stream().filter(m->m.getId().toString().equals(i)).findFirst().get();
+                DeviceRole deviceRole = findRoleById(deviceRoleList,i);
                 if(!Objects.isNull(deviceRole)){
                     stringList.add(deviceRole.getName());
                 }
             });
         }
         return stringList;
+    }
+
+    private DeviceRole findRoleById(List<DeviceRole> deviceRoleList, String id) {
+        for(DeviceRole role  : deviceRoleList){
+            if(StringUtils.equals(role.getId().toString(),id)){
+                return role;
+            }
+        }
+        return null;
     }
 
     @Override
@@ -654,13 +669,16 @@
                 .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName())
                         .or().like(Company::getName,pageWrap.getModel().getCompanyName()))
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
-                .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId())
                 .eq(Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,Constants.Status.ENABLE.getValue())
                 .eq(!Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus())
                 .eq(Member::getType,Constants.memberType.visitor)
                 .eq(Member::getIsdeleted,Constants.ZERO)
                 .orderByDesc(Member::getCreateDate);
-
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin())==DataSyncConfig.origin.erp){
+            queryWrapper.eq( StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId());
+        }else{
+            queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Member::getCompanyId,pageWrap.getModel().getCompanyId());
+        }
         IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
         return PageData.from(memberIPage);
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
index 95e889d..212b187 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
@@ -107,10 +107,9 @@
 
         queryWrapper.leftJoin(" parks p on p.id=t.PARENT_HK_ID");
 
-        queryWrapper.isNotNull(Parks::getParentHkId);
         queryWrapper.eq(Parks::getIsdeleted, Constants.ZERO);
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Parks::getName,pageWrap.getModel().getName());
-        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getParentHkId()),Parks::getName,pageWrap.getModel().getParentHkId());
+        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getParentHkId()),Parks::getParentHkId,pageWrap.getModel().getParentHkId());
         queryWrapper.orderByDesc(Parks::getCreateDate);
         IPage<Parks> result = parksJoinMapper.selectJoinPage(page, Parks.class,queryWrapper);
         return PageData.from(result);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java
index a90c2bf..11ae971 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java
@@ -257,11 +257,7 @@
                 eventVo.setPersonCompanyName(obj.getPersonCompanyName());
                 eventVo.setCarNo(obj.getCarNo());
                 eventVo.setBeVisitedPersonName(obj.getBeVisitedPersonName()+"-"+obj.getBeVisitedPersonOrg());
-                if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_IN.getKey()){
-                    eventVo.setEventTypeName(HKConstants.EventTypes.VISIT_SIGN_IN.getName());
-                }else if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()){
-                    eventVo.setEventTypeName(HKConstants.EventTypes.VISIT_SIGN_OUT.getName());
-                }
+                eventVo.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType()));
                 eventVo.setHappenTime(obj.getHappenTime());
                 voList.add(eventVo);
             });
@@ -315,14 +311,17 @@
         Map<String,SystemDictData> dataMap = list.stream().collect(Collectors.toMap(SystemDictData::getLabel, Function.identity()));
         List<VisitEventDTO> newDataList = new ArrayList<>();
         VisitEventDTOList.stream().forEach(obj->{
-            obj.setCaptureUrl(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
-                    +dataMap.get(Constants.MEMBER_IMG).getCode()
-                    +obj.getCaptureUrl());
-            if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_IN.getKey()){
-                obj.setEventTypeName(HKConstants.EventTypes.VISIT_SIGN_IN.getName());
-            }else if(Constants.formatIntegerNum(obj.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()){
-                obj.setEventTypeName(HKConstants.EventTypes.VISIT_SIGN_OUT.getName());
+
+            if(StringUtils.isNotBlank( obj.getCaptureUrl())
+                    && !obj.getCaptureUrl().startsWith(HKConstants.IMG_INDEX)
+                    && !obj.getCaptureUrl().startsWith(HKConstants.IMG_INDEX_ERROR)) {
+                if(null != list && list.size() > 0) {
+                    obj.setCaptureUrl(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
+                            +dataMap.get(Constants.MEMBER_IMG).getCode()
+                            +obj.getCaptureUrl());
+                }
             }
+            obj.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType())) ;
             newDataList.add(obj);
         });
         return newDataList;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 58d3b84..569739a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.config.Jwt.JwtPayLoad;
 import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.constants.ResponseStatus;
@@ -32,7 +33,7 @@
 import com.doumee.dao.business.join.DeviceEventJoinMapper;
 import com.doumee.dao.business.join.VisitEventJoinMapper;
 import com.doumee.dao.business.model.*;
-import com.doumee.service.business.ERPSyncService;
+import com.doumee.service.business.ext.ERPSyncService;
 import com.doumee.service.business.InterfaceLogService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.Synchronized;
@@ -59,6 +60,8 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
 
@@ -131,7 +134,7 @@
     @Transactional
     @Synchronized
     public String syncCompany(OrgListRequest param){
-        if(!StringUtils.equals(Constants.ONE+"", systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORG_USER_ORIGIN).getCode())){
+        if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佺粍缁囧悓姝ユ搷浣渵");
         }
         //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
@@ -282,8 +285,8 @@
     @Transactional
     @Synchronized
     public  String syncUsers(UserListRequest param){
-        if(!StringUtils.equals(Constants.ONE+"", systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORG_USER_ORIGIN).getCode())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佷汉鍛樺悓姝ユ搷浣渵");
+        if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佺粍缁囧悓姝ユ搷浣渵");
         }
         List<ErpUserListResponse>  list = erpTool.getErpUserList(ErpConstants.userListUrl,param);
         if(list !=null && list.size()>0) {
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
index 1198e7a..7900171 100644
--- 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
@@ -11,12 +11,13 @@
 import com.doumee.core.haikang.model.param.respose.TaskAdditionResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.dao.business.model.Device;
-import com.doumee.service.business.HkSyncService;
+import com.doumee.service.business.ext.HkSyncService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -84,9 +85,24 @@
     public  void syncUserData(){
     }
     @Override
+    public  void syncUserUpdateData(Date start, Date end){
+    }
+    @Override
+    public  void syncVistAppointData(Date date){
+    }
+    public  void syncVehicleData(){
+    }
+    @Override
+    public  void syncVehicleUpdateData(Date date){
+    }
+    @Override
     public  void syncOrgData( ){
     }
     @Override
+    public  void syncOrgUpdateData( Date start, Date end){
+    }
+
+    @Override
     public  void  syncVisitData() {
     }
     @Override
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
index ba0a311..00fbb5a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
@@ -15,19 +16,14 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.FtpUtil;
 import com.doumee.dao.business.*;
-import com.doumee.dao.business.model.CarEvent;
-import com.doumee.dao.business.model.Device;
-import com.doumee.dao.business.model.DeviceEvent;
-import com.doumee.dao.business.model.VisitEvent;
+import com.doumee.dao.business.model.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -44,6 +40,8 @@
 
     @Autowired
     private CarEventMapper carEventMapper;
+    @Autowired
+    private MemberMapper memberMapper;
     @Autowired
     private DeviceEventMapper deviceEventMapper;
     @Autowired
@@ -63,6 +61,8 @@
             startDealCarImg();
             //鏌ヨ鎵�鏈夐棬绂佷簨浠惰褰曚腑鎵�鏈変笅杞界殑娴峰悍绔� 鎶撴媿鐓х墖 鍜�   韬唤璇佸浘鐗嘦RL
             startDealDeviceImg();
+            //鏌ヨ鎵�鏈変汉鍛樹汉鑴哥収鐗�
+            startDealMemberImg();
         }catch (Exception e){
             e.printStackTrace();
         }finally {
@@ -71,6 +71,35 @@
         return  null;
     }
 
+    private void startDealMemberImg() {
+        List<Member> list = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                .eq(Member::getIsdeleted,Constants.ZERO)
+                .likeRight(Member::getFaceImg,HKConstants.IMG_INDEX));
+        Date date= new Date();
+        if(list !=null && list.size()>0){
+            for(Member model:list){
+                String serverIndex = model.getFaceServerIndexCode();//鏈嶅姟鍣ㄧ紪鐮�
+                if(StringUtils.isBlank(serverIndex)){
+                    continue;
+                }
+                String rs1 = null;
+                Member event = new Member();
+                event.setId(model.getId());
+                event.setEditDate(date);
+                if(StringUtils.isNotBlank(model.getFaceImg())){
+                    String img1 = model.getFaceImg().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs1 = downHkImgToFtp(img1,serverIndex,Constants.MEMBER_IMG);
+                    if(StringUtils.isNotBlank(rs1)){
+                        event.setFaceImg(rs1);
+                    }else{
+                        event.setFaceImg(model.getFaceImg().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
+                }
+                memberMapper.updateById(event);
+            }
+        }
+
+    }
     private void startDealDeviceImg() {
         List<DeviceEvent> deviceEventList = deviceEventMapper.selectList(new QueryWrapper<DeviceEvent>().lambda()
                 .eq(DeviceEvent::getIsdeleted,Constants.ZERO)
@@ -225,11 +254,17 @@
             param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,""));
             param.setSvrIndexCode(serverIndex);
             is = HKService.getVisitPicture(param);
+        }else if(StringUtils.equals(folder_code,Constants.MEMBER_IMG)){
+            //璁垮浜嬩欢鍥剧墖
+            FacePictureRequest param = new FacePictureRequest();
+            param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,""));
+            param.setServerIndexCode(serverIndex);
+            is = HKService.getFaceInputStream(param);
         }
         if(is ==null){
             return  null;
         }
-        //TODO------jiangping---------
+
         try {
             if(ftp == null){
                  ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
@@ -240,7 +275,7 @@
                 ftp.connect();
             }
             String date = DateUtil.getNowShortDate();
-            String fName =  date+"/"+ UUID.randomUUID().toString()+".jpg";
+            String fName =  date+"/"+ UUID.randomUUID().toString()+".png";
             String fileName = folder+fName;
             boolean r = ftp.uploadInputstream(is,fileName);//涓婁紶
             if(r){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
index 1393d71..5b0a837 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
@@ -2,19 +2,12 @@
 
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.haikang.model.HKConstants;
-import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.EventSubRequest;
-import com.doumee.core.haikang.model.param.respose.OrgListResponse;
-import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
-import com.doumee.dao.system.model.SystemDictData;
 import com.hikvision.artemis.sdk.config.ArtemisConfig;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
-import java.util.Date;
 
 /**
  * 娴峰悍浜嬩欢璁㈤槄琛⊿ervice瀹炵幇
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
index 2459aa6..df5556f 100644
--- 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
@@ -56,7 +56,7 @@
             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));
+            List<DeviceRole> allList = DeviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getType,types).eq(DeviceRole::getIsdeleted,Constants.ZERO));
             boolean hasNext = true;
             int curTotal = 0;
             int curPage = 1;
@@ -141,7 +141,7 @@
         model.setHkId(device.getPrivilegeGroupId());
         model.setName(device.getPrivilegeGroupName());
         model.setHkStatus(Constants.ONE);
-        model.setIsdeleted(Constants.ONE);
+        model.setIsdeleted(Constants.ZERO);
         model.setIsDefault(device.getIsDefault());
         model.setType(String.valueOf(Constants.ZERO));
         return  model;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index a6ed00d..fe0d178 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -48,6 +48,8 @@
     @Autowired
     private InterfaceLogMapper interfaceLogMapper;
     @Autowired
+    private CarsMapper carsMapper;
+    @Autowired
     private DeviceEventMapper deviceEventMapper;
     @Autowired
     private MemberMapper memberMapper;
@@ -440,8 +442,9 @@
         event.setVehicleColor(request.getData().getVehicleColor());
         event.setVehicleClass(request.getData().getVehicleClass());
         event.setTimestr(request.getData().getTime());
+        event.setEventId(request.getEventId());
         event.setTimeout(request.getTimeout());
-        event.setSvrIndex(request.getSrcIndex());
+        event.setSvrIndex(request.getData().getSvrIndex());
         event.setSubModel(request.getData().getSubModel());
         event.setSubLogo(request.getData().getSubLogo());
         event.setStatus(request.getStatus());
@@ -469,6 +472,7 @@
         event.setEventCmd(request.getData().getEventCmd());
         event.setCardNo(request.getData().getCardNo());
         event.setCarAttributeName(request.getData().getCarAttributeName());
+
         if(request.getData().getInResult()!=null && request.getData().getInResult().getRlsResult() !=null ){
             //鏀捐鏂瑰紡
             event.setReleaseWay(request.getData().getInResult().getRlsResult().getReleaseWay());
@@ -483,7 +487,15 @@
             event.setVehiclePicUrl(getHkImgUrl(request.getData().getPicUrl().getVehiclePicUrl()));
             event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl()));
         }
-
+        if(StringUtils.isNotBlank(event.getPlateNos())){
+                Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>().lambda()
+                        .eq(Cars::getCode,event.getPlateNos())
+                                .eq(Cars::getIsdeleted,Constants.ONE )
+                        .last("limit 1" ));
+                if(cars!=null){
+                    event.setMemberId(cars.getMemberId());
+                }
+        }
         return event;
 
     }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 7b0aca6..02a711f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -1,9 +1,7 @@
 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.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
@@ -14,16 +12,11 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.ImageBase64Util;
 import com.doumee.core.wx.wxPlat.WxPlatNotice;
-import com.doumee.dao.business.CompanyMapper;
 import com.doumee.dao.business.DeviceRoleMapper;
-import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.VisitsMapper;
 import com.doumee.dao.business.join.VisitsJoinMapper;
-import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.DeviceRole;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Visits;
-import com.doumee.service.business.ERPSyncService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -49,7 +42,7 @@
     @Autowired
     private WxPlatNotice wxPlatNotice;
     /**
-     * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
+     * 鍚屾娴峰悍璁垮淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
      */
     @Override
     public  void syncVisitData(){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index 299175e..fed9403 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -4,9 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.DataSyncConfig;
-import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
-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.*;
@@ -19,7 +17,7 @@
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.MemberJoinMapper;
 import com.doumee.dao.business.model.*;
-import com.doumee.service.business.ERPSyncService;
+import com.doumee.service.business.ext.ERPSyncService;
 import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
@@ -38,7 +36,7 @@
  */
 @Service
 @Slf4j
-public class HkSyncOrgUserFERPServiceImpl extends HkSyncBaseServiceImpl {
+public class HkSyncOrgUserToHKServiceImpl extends HkSyncBaseServiceImpl {
     @Autowired
     private CompanyMapper companyMapper;
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
index 9602356..e598615 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
@@ -36,7 +36,7 @@
  */
 @Service
 @Slf4j
-public class HkSyncOrgUserForHKServiceImpl extends HkSyncBaseServiceImpl {
+public class HkSyncOrgUserFromHKServiceImpl extends HkSyncBaseServiceImpl {
     @Autowired
     private CompanyMapper companyMapper;
     @Autowired
@@ -65,7 +65,7 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佺粍缁囧悓姝ユ搷浣渵");
             }
             LoginUserInfo user =  (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-            OrgUserListRequest param = new OrgUserListRequest();
+            TimeRangeListRequest param = new TimeRangeListRequest();
             //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
             boolean hasNext = true;
             int curTotal = 0;
@@ -74,12 +74,15 @@
             List<Company>  allHkList = new ArrayList<>();
             while (hasNext){
                 //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
-                param = new OrgUserListRequest();
+                param = new TimeRangeListRequest();
                 param.setPageNo(curPage);
                 param.setPageSize(100);
                 BaseResponse<BaseListPageResponse<OrgInfoResponse>> response = HKService.orgAllList(param);
                 if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                     throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+                }
+                if(response.getData() == null || response.getData().getTotal() ==0){
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
                 }
                 BaseListPageResponse<OrgInfoResponse> r = response.getData();
                 curTotal += 100;
@@ -152,7 +155,7 @@
             if(companies == null || companies.size() == 0){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璇峰厛鍚屾浼佷笟缁勭粐淇℃伅~");
             }
-            OrgUserListRequest param = new OrgUserListRequest();
+            TimeRangeListRequest param = new TimeRangeListRequest();
             //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
             boolean hasNext = true;
             int curTotal = 0;
@@ -160,13 +163,16 @@
             List<Member>  allHkList = new ArrayList<>();
             while (hasNext){
                 //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
-                param = new OrgUserListRequest();
+                param = new TimeRangeListRequest();
                 param.setPageNo(curPage);
                 param.setPageSize(100);
                 BaseResponse<BaseListPageResponse<UserInfoResponse>> response = HKService.userAllList(param);
                 if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                     throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
                 }
+                if(response.getData() == null || response.getData().getTotal() ==0){
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+                }
                 BaseListPageResponse<UserInfoResponse> r = response.getData();
                 curTotal += 100;
                 if(curTotal >= r.getTotal()){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
new file mode 100644
index 0000000..4f8ce59
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
@@ -0,0 +1,222 @@
+package com.doumee.service.business.impl.hksync.fhk;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
+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.BaseListPageResponse;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.AppointmentListRequest;
+import com.doumee.core.haikang.model.param.request.TimeRangeListRequest;
+import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
+import com.doumee.core.haikang.model.param.respose.VehicleInfoResponse;
+import com.doumee.core.haikang.model.param.respose.VehicleTimeRangeInfoResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.model.Cars;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Visits;
+import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎷夊彇娴峰悍杞﹁締淇℃伅閫氳繃姝ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class HkSyncVehicleFromHKServiceImpl extends HkSyncBaseServiceImpl {
+    @Autowired
+    private CompanyMapper companyMapper;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private ParksMapper parksMapper;
+    @Autowired
+    private CarsMapper carsMapper;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Override
+    @Transactional
+    public   void syncVehicleData(){
+        try {
+            if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+            }
+            TimeRangeListRequest param =  new TimeRangeListRequest();
+            //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+            boolean hasNext = true;
+            int curTotal = 0;
+            int curPage = 1;
+
+            List<Cars>  allHkList = new ArrayList<>();
+            while (hasNext){
+                //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+                param.setPageNo(curPage);
+                param.setPageSize(100);
+                BaseResponse<BaseListPageResponse<VehicleInfoResponse>> response = HKService.vehicleList(param);
+                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)  ){
+                    throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+                }
+                if(response.getData() == null || response.getData().getTotal() ==0){
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+                }
+                BaseListPageResponse<VehicleInfoResponse> r = response.getData();
+                curTotal += 100;
+                if(curTotal >= r.getTotal()){
+                    hasNext = false;
+                }
+                if(r.getList() == null || r.getList().size()==0){
+                    hasNext =false;
+                }else{
+                    allHkList.addAll(getNewModelBYList(r.getList()));
+                }
+                curPage++;
+            }
+            if(allHkList .size() == 0){
+                throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
+            }
+            //娓呯┖鍘熸湁鐨勬暟鎹�
+            carsMapper.delete(new UpdateWrapper<>());
+            carsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+        }catch (BusinessException e){
+            throw  e;
+        }
+    }
+    @Override
+    @Transactional
+    public   void syncVehicleUpdateData(Date date){
+        try {
+            if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+            }
+            TimeRangeListRequest param =  new TimeRangeListRequest();
+            //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+            boolean hasNext = true;
+            int curTotal = 0;
+            int curPage = 1;
+            Date start =Utils.Date.getStart(date);
+            Date end = new Date();
+            if(DateUtil.daysBetweenDates(end,start) >1){
+                end =  Utils.Date.getEnd(date);
+            }
+            param.setStartTime(DateUtil.getISO8601Timestamp2( start));
+            param.setEndTime(DateUtil.getISO8601Timestamp2( end));
+            while (hasNext){
+                //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+                param.setPageNo(curPage);
+                param.setPageSize(100);
+                BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> response = HKService.vehicleTimeRangeList(param);
+                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)  ){
+                    throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+                }
+                if(response.getData() == null || response.getData().getTotal() ==0){
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+                }
+                BaseListPageResponse<VehicleTimeRangeInfoResponse> r = response.getData();
+                curTotal += 100;
+                if(curTotal >= r.getTotal()){
+                    hasNext = false;
+                }
+                if(r.getList() == null || r.getList().size()==0){
+                    hasNext =false;
+                }else{
+                     dealUpdateByList(r.getList());
+                }
+                curPage++;
+            }
+        }catch (BusinessException e){
+            throw  e;
+        }
+    }
+
+    private void dealUpdateByList(List<VehicleTimeRangeInfoResponse> list) {
+        List<Cars> newList = new ArrayList<>();
+        if(list == null || list.size()==0){
+            return   ;
+        }
+        for(VehicleTimeRangeInfoResponse model :list){
+            if(Constants.formatIntegerNum(model.getStatus()) <0){
+                //濡傛灉宸插垹闄�
+                carsMapper.update(null,new UpdateWrapper<Cars>().lambda()
+                        .eq(Cars::getHkId,model.getVehicleId())
+                        .set(Cars::getIsdeleted,Constants.ONE ));
+            }else{
+                Cars c = new Cars();
+                c.setHkId(model.getVehicleId());
+                c.setCode(model.getPlateNo());
+                c.setRemark(JSONObject.toJSONString(model));
+                c.setHkStatus(Constants.ONE);
+                c.setHkDate(new Date());
+                c.setIsdeleted(Constants.ZERO);
+                c.setStatus(Constants.ZERO);
+                c.setCreateDate(DateUtil.getISO8601DateByStr(model.getCreateTime()));
+                c.setEditDate(DateUtil.getISO8601DateByStr(model.getUpdateTime()));
+                if(StringUtils.isNotBlank(model.getPersonId())){
+                    //琚闂汉
+                    Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,model.getPersonId()).last("limit 1"));
+                    c.setMemberId(member!=null?member.getId():null);
+                }
+                Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>().lambda().eq(Cars::getHkId,model.getVehicleId()).last("limit 1"));
+                if(cars!=null){
+                    //鏇存柊
+                    c.setId(cars.getId());
+                    carsMapper.updateById(c);
+                }else{
+                    //鏂板
+                    carsMapper.insert(c);
+                }
+
+            }
+
+        }
+    }
+
+    private List<Cars> getNewModelBYList(List<VehicleInfoResponse> list ) {
+        List<Cars> newList = new ArrayList<>();
+        if(list == null || list.size()==0){
+            return  newList;
+        }
+        for(VehicleInfoResponse model :list){
+            Cars c = new Cars();
+            c.setHkId(model.getVehicleId());
+            c.setCode(model.getPlateNo());
+            c.setRemark(JSONObject.toJSONString(model));
+            c.setHkStatus(Constants.ONE);
+            c.setHkDate(new Date());
+            c.setIsdeleted(Constants.ZERO);
+            c.setCreateDate(c.getHkDate());
+            c.setCreateDate(DateUtil.getISO8601DateByStr(model.getCreateTime()));
+            c.setEditDate(DateUtil.getISO8601DateByStr(model.getUpdateTime()));
+            if(StringUtils.isNotBlank(model.getPersonId())){
+                //琚闂汉
+                Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,model.getPersonId()).last("limit 1"));
+                c.setMemberId(member!=null?member.getId():null);
+            }
+            newList.add(c);
+        }
+        return newList;
+    }
+
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
index d8251d0..08c8874 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
@@ -10,12 +10,8 @@
 import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.AppointmentListRequest;
-import com.doumee.core.haikang.model.param.request.OrgUserListRequest;
 import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
-import com.doumee.core.haikang.model.param.respose.OrgInfoResponse;
-import com.doumee.core.haikang.model.param.respose.UserInfoResponse;
 import com.doumee.core.haikang.service.HKService;
-import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DESUtil;
 import com.doumee.core.utils.DateUtil;
@@ -23,15 +19,12 @@
 import com.doumee.dao.business.CompanyMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.VisitsMapper;
-import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Visits;
 import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -46,7 +39,7 @@
  */
 @Service
 @Slf4j
-public class HkSyncVistFromHKServiceImpl extends HkSyncBaseServiceImpl {
+public class HkSyncVisitFromHKServiceImpl extends HkSyncBaseServiceImpl {
     @Autowired
     private CompanyMapper companyMapper;
     @Autowired
@@ -64,11 +57,7 @@
      */
     @Override
     @Transactional
-    public   void syncVistAppointData(){
-        if(Constants.DEALING_FROM_HK_VISIT){
-            return ;
-        }
-        Constants.DEALING_FROM_HK_VISIT =true;
+    public   void syncVistAppointData(Date date){
         try {
             if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
@@ -79,7 +68,13 @@
             int curTotal = 0;
             int curPage = 1;
             //鏌ヨ浠婂ぉ鐨�
-            param.setVisitStartTimeBegin(DateUtil.getISO8601Timestamp( Utils.Date.getStart(new Date())));
+            Date start =Utils.Date.getStart(date);
+            Date end = new Date();
+            if(DateUtil.daysBetweenDates(end,start) >1){
+                end =  Utils.Date.getEnd(date);
+           }
+            param.setVisitStartTimeBegin(DateUtil.getISO8601Timestamp2( start));
+            param.setVisitStartTimeEnd(DateUtil.getISO8601Timestamp2( end));
 
             List<Visits>  allHkList = new ArrayList<>();
             while (hasNext){
@@ -87,8 +82,11 @@
                 param.setPageNo(curPage);
                 param.setPageSize(100);
                 BaseResponse<BaseListPageResponse<AppointmentInfoResponse>> response = HKService.appointmentRecords(param);
-                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)  ){
                     throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+                }
+                if(response.getData() == null || response.getData().getTotal() ==0){
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
                 }
                 BaseListPageResponse<AppointmentInfoResponse> r = response.getData();
                 curTotal += 100;
@@ -105,15 +103,14 @@
             if(allHkList .size() == 0){
                 throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
             }
-            //娓呯┖鍘熸湁鏁版嵁
-            visitsMapper.delete(new UpdateWrapper<Visits>().lambda().apply("to_days(create_date)=to_days(now())" ));
+            //娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹�
+            visitsMapper.delete(new UpdateWrapper<Visits>().lambda()
+                    .ge(Visits::getStarttime,start)
+                    .eq(Visits::getType,Constants.ONE)
+                    .le(Visits::getStarttime,end));
             visitsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
         }catch (BusinessException e){
             throw  e;
-        }catch (Exception e){
-            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
-        }finally {
-            Constants.DEALING_FROM_HK_VISIT =false;
         }
     }
 
@@ -131,8 +128,8 @@
             c.setHkDate(new Date());
             c.setIsdeleted(Constants.ZERO);
             c.setCreateDate(c.getHkDate());
-            c.setStarttime(DateUtil.getISO8601DateByStr(model.getVisitStartTime()));
-            c.setEndtime(DateUtil.getISO8601DateByStr(model.getVisitEndTime()));
+            c.setStarttime(DateUtil.getISO8601DateByStr2(model.getVisitStartTime()));
+            c.setEndtime(DateUtil.getISO8601DateByStr2(model.getVisitEndTime()));
             c.setReason(model.getVisitPurpose());
             c.setStatus(model.getVisitorStatus());
             c.setType(Constants.ONE);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java b/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java
index cd09625..365c4bc 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java
@@ -1,6 +1,8 @@
 package com.doumee.service.common.tree;
 
+import com.doumee.config.DataSyncConfig;
 import com.doumee.dao.business.model.Company;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,13 +42,18 @@
         // treeNode锛氭煡璇㈠嚭鐨勬瘡涓�鏉℃暟鎹紙鑺傜偣锛�
         for (Company treeNode : nodeList){
             // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆�
-            if(origin==0){
-                if (Objects.isNull(treeNode.getParentId())) {
+            if(origin== DataSyncConfig.origin.hk){
+                if (Objects.isNull(treeNode.getHkParentId())) {
                     // 鏄紝娣诲姞
                     rootNodeList.add(treeNode);
                 }
-            }else{
+            }else if(origin== DataSyncConfig.origin.erp){
                 if (Objects.isNull(treeNode.getErpParentId())) {
+                    // 鏄紝娣诲姞
+                    rootNodeList.add(treeNode);
+                }
+            }else {
+                if (Objects.isNull(treeNode.getParentId())) {
                     // 鏄紝娣诲姞
                     rootNodeList.add(treeNode);
                 }
@@ -84,17 +91,21 @@
         // nodeList锛氭墍鏈夎妭鐐归泦鍚堬紙鎵�鏈夋暟鎹級
         for (Company treeNode : nodeList) {
             // 鍒ゆ柇褰撳墠鑺傜偣鐨勭埗鑺傜偣ID鏄惁绛変簬鏍硅妭鐐圭殑ID锛屽嵆褰撳墠鑺傜偣涓哄叾涓嬬殑瀛愯妭鐐�
-
-            if(origin==0){
-                if (!Objects.isNull(treeNode.getParentId())&&treeNode.getParentId().equals(pNode.getId())) {
+            if(origin==DataSyncConfig.origin.hk){
+                if (!Objects.isNull(treeNode.getHkParentId())&&treeNode.getHkParentId().equals(pNode.getHkId())) {
                     // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶
                     childTree.add(buildChildTree(treeNode));
                 }
-            }else{
+            }else  if(origin==DataSyncConfig.origin.erp){
                 if (!Objects.isNull(treeNode.getErpParentId())&&treeNode.getErpParentId().equals(pNode.getErpId())) {
                     // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶
                     childTree.add(buildChildTree(treeNode));
                 }
+            }else  {
+                if (!Objects.isNull(treeNode.getParentId())&&treeNode.getParentId().equals(pNode.getId())) {
+                    // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶
+                    childTree.add(buildChildTree(treeNode));
+                }
             }
         }
         // for寰幆缁撴潫锛屽嵆鑺傜偣涓嬫病鏈変换浣曡妭鐐癸紝鏍戝舰鏋勫缓缁撴潫锛岃缃爲缁撴灉
diff --git a/server/dmvisit_service/src/main/resources/application-dev.yml b/server/dmvisit_service/src/main/resources/application-dev.yml
index e8089b8..d4489a4 100644
--- a/server/dmvisit_service/src/main/resources/application-dev.yml
+++ b/server/dmvisit_service/src/main/resources/application-dev.yml
@@ -1,7 +1,7 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: doumee
     password: rtjgfEr@&0c0m
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -26,6 +26,10 @@
     password: 111111
 
 debug_model: true
+
+########################鍚屾鏁版嵁妯″紡  ########################
+data-sync:
+  org-user-data-origin: 2 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
 
 # Swagger閰嶇疆
 swagger:
@@ -53,8 +57,6 @@
     appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
 
 
-########################瀹氭椂寮�鍚厤缃�########################
-timing: true
 
 des_pwd: 123456SDFKDJF
 
diff --git a/server/dmvisit_service/src/main/resources/application-devYL.yml b/server/dmvisit_service/src/main/resources/application-devYL.yml
index 3325ac7..200579d 100644
--- a/server/dmvisit_service/src/main/resources/application-devYL.yml
+++ b/server/dmvisit_service/src/main/resources/application-devYL.yml
@@ -1,7 +1,7 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit_yl?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: doumee
     password: rtjgfEr@&0c0m
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -26,6 +26,11 @@
     password: 111111
 
 debug_model: true
+########################鍚屾鏁版嵁妯″紡  ########################
+data-sync:
+  org-user-data-origin: 2 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
+  visitor-data-origin: 2 #璁垮鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
+  need-deal-img: false #鏄惁闇�瑕佸鐞嗗浘鐗囨暟鎹�
 
 # Swagger閰嶇疆
 swagger:
diff --git a/server/dmvisit_service/src/main/resources/application-pro.yml b/server/dmvisit_service/src/main/resources/application-pro.yml
index a5d0603..75623af 100644
--- a/server/dmvisit_service/src/main/resources/application-pro.yml
+++ b/server/dmvisit_service/src/main/resources/application-pro.yml
@@ -1,7 +1,7 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: doumee
     password: rtjgfEr@&0c0m
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -45,7 +45,5 @@
     appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
 
 
-########################瀹氭椂寮�鍚厤缃�########################
-timing: true
 
 des_pwd: 123456SDFKDJF
\ No newline at end of file
diff --git a/server/dmvisit_service/src/main/resources/application-test.yml b/server/dmvisit_service/src/main/resources/application-test.yml
index a02c75b..fd8f9db 100644
--- a/server/dmvisit_service/src/main/resources/application-test.yml
+++ b/server/dmvisit_service/src/main/resources/application-test.yml
@@ -1,7 +1,7 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: doumee
     password: rtjgfEr@&0c0m
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -33,9 +33,15 @@
   title: ${project.name}鎺ュ彛鏂囨。
   description: ${project.name}鎺ュ彛鏂囨。
   enabled: true
-  context-path: /visit_api
+  context-path: /erp_api
   # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
   redirect-uri: /
+
+########################鍚屾鏁版嵁妯″紡  ########################
+data-sync:
+  org-user-data-origin: 1 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
+  visitor-data-origin: 1 #璁垮鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
+  need-deal-img: true #鏄惁闇�瑕佸鐞嗗浘鐗囨暟鎹�
 
 ########################寰俊鏀粯鐩稿叧閰嶇疆########################
 wx:
@@ -52,9 +58,6 @@
     remoteHost: https://apis.map.qq.com
     appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
 
-
-########################瀹氭椂寮�鍚厤缃�########################
-timing: true
 
 des_pwd: 123456SDFKDJF
 
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java b/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
index a0fc90a..f9f7345 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
@@ -48,7 +48,7 @@
     /**
      * 鏄惁寮�鍙戣��
      */
-    @Value("${timing}")
+    @Value("${debug_model}")
     private Boolean timing;
 
     /**
diff --git a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
index f120330..c7b1c55 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -8,7 +8,7 @@
 import com.doumee.core.erp.model.openapi.request.*;
 import com.doumee.core.erp.model.openapi.response.*;
 import com.doumee.core.utils.Constants;
-import com.doumee.service.business.ERPSyncService;
+import com.doumee.service.business.ext.ERPSyncService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
diff --git a/server/openapi/src/main/resources/application.yml b/server/openapi/src/main/resources/application.yml
index 8dc6444..1a26401 100644
--- a/server/openapi/src/main/resources/application.yml
+++ b/server/openapi/src/main/resources/application.yml
@@ -10,7 +10,7 @@
   #  application:
   #    name: doumeemes
   profiles:
-    active: dev
+    active: test
 
   # JSON杩斿洖閰嶇疆
   jackson:

--
Gitblit v1.9.3