From d941bab56c15b52312c58707ff778f6140e0c5f4 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 11 九月 2024 17:47:41 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java                                     |    2 
 server/system_timer/src/main/resources/bootstrap-pro.yml                                                                                    |    6 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java                                            |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java               |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java              |   11 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java                                                      |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java                                         |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java                                         |    8 
 admin/src/components/business/OperaDeviceRoleWindow.vue                                                                                     |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java                                  |   21 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java       |   28 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                                         |   15 
 server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java                                                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryDataResponse.java                                |   24 
 admin/src/views/timer/timer.vue                                                                                                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java                              |  306 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java                                                 |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java                              |   19 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java               |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java |   18 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java           |    4 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                                                    |    8 
 server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml                                                                            |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java                                                     |   11 
 server/visits/dmvisit_service/src/main/resources/application-pro.yml                                                                        |    6 
 server/system_timer/src/main/resources/application-pro.yml                                                                                  |   47 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java                                            |   10 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java                                                 |    2 
 admin/.env.production                                                                                                                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformInfoRequest.java                              |   20 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java                                        |   81 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java                                                     |   16 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java                                              |   90 +
 server/system_gateway/src/main/resources/bootstrap-pro.yml                                                                                  |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java       |   14 
 server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java                                                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java                                                |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java           |   28 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java                                   |    3 
 server/visits/admin_timer/src/main/resources/bootstrap-pro.yml                                                                              |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxAccessTokenRequest.java                           |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java           |   20 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java                                               |   14 
 server/system_gateway/src/main/resources/application-pro.yml                                                                                |   44 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java                              |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java                  |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java                                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java                                            |   20 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java                                  |  220 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java                                        |  165 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java     |   18 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java                                         |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                                      |   22 
 admin/.env                                                                                                                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java                                                |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java                                   |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformRequest.java                                  |   20 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java                                    |   52 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                                  |   17 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java                  |    1 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java                                                    |   89 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java                                           |   97 ++
 admin/src/api/index.js                                                                                                                      |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java                                            |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                                                  |   59 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java                                                  |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java      |   17 
 server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java                                                  |   15 
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                                                     |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java                              |    1 
 server/db/business.platform_event.permissions.sql                                                                                           |    6 
 server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml                                                                           |   23 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java                                          |   20 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java                                          |   58 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java                                                 |   56 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java                                   |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java                                         |    4 
 server/meeting/meeting_service/src/main/resources/application-pro.yml                                                                       |   43 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java                                                |   75 +
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                                                                |    2 
 server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java                                                                      |   51 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java          |   17 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java                                              |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java                                  |   24 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java                                                 |  106 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                                  |   41 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java                                           |    8 
 server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java                                                          |   15 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java                                                |  177 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java                                             |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java                                         |   87 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java       |   20 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryJsonResponse.java                                |   43 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java                             |    5 
 server/system_gateway/src/main/resources/application.yml                                                                                    |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java                         |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java                                          |    2 
 98 files changed, 2,485 insertions(+), 309 deletions(-)

diff --git a/admin/.env b/admin/.env
index f63f7ba..3cdd7a8 100644
--- a/admin/.env
+++ b/admin/.env
@@ -7,7 +7,7 @@
 VUE_APP_CONTEXT_PATH = '/admin'
 
 # 鎺ュ彛鍓嶇紑
-VUE_APP_API_PREFIX = '/admin_interface'
+VUE_APP_API_PREFIX = '/gateway_interface'
 
 # 椤圭洰鍚嶇О
 VUE_APP_TITLE = '瀹夋嘲鏅烘収鍥尯绯荤粺'
diff --git a/admin/.env.production b/admin/.env.production
index 2b788b9..fb08007 100644
--- a/admin/.env.production
+++ b/admin/.env.production
@@ -1,4 +1,4 @@
 # 鐢熶骇鐜閰嶇疆
 NODE_ENV = 'production'
 
-VUE_APP_API_URL  = 'http://10.50.250.178:8088/gateway_interface/'
+VUE_APP_API_URL  = 'http://192.168.5.13/gateway_interface'
diff --git a/admin/src/api/index.js b/admin/src/api/index.js
index af847c6..039a7d1 100644
--- a/admin/src/api/index.js
+++ b/admin/src/api/index.js
@@ -1,4 +1,4 @@
-export const uploadFile = '/admin_interface/visitsAdmin/cloudService/public/upload'
+export const uploadFile = '/gateway_interface/visitsAdmin/cloudService/public/upload'
 
 export * from './business/index'
 export * from './platform'
diff --git a/admin/src/components/business/OperaDeviceRoleWindow.vue b/admin/src/components/business/OperaDeviceRoleWindow.vue
index f8a5257..c588141 100644
--- a/admin/src/components/business/OperaDeviceRoleWindow.vue
+++ b/admin/src/components/business/OperaDeviceRoleWindow.vue
@@ -158,7 +158,7 @@
     },
     // 鑾峰彇璁惧
     getLists () {
-      getList({})
+      getList({type:0, isdeleted:0 })
         .then(res => {
           this.device = res.map(item => {
             return {
diff --git a/admin/src/views/timer/timer.vue b/admin/src/views/timer/timer.vue
index 6eeca3f..8529d97 100644
--- a/admin/src/views/timer/timer.vue
+++ b/admin/src/views/timer/timer.vue
@@ -110,7 +110,7 @@
       this.$dialog.actionConfirm('纭鏆傚仠璇ヤ换鍔″悧?')
           .then(() => {
             this.pausing = true
-            this.api.paustById(row.id)
+            this.api.pauseById(row.id)
                 .then(() => {
                   this.$message.info('鏆傚仠鎴愬姛')
                   this.search()
diff --git a/server/db/business.platform_event.permissions.sql b/server/db/business.platform_event.permissions.sql
new file mode 100644
index 0000000..037b95d
--- /dev/null
+++ b/server/db/business.platform_event.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:create', '鏂板缓鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:delete', '鍒犻櫎鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:update', '淇敼鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:query', '鏌ヨ鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:exportExcel', '瀵煎嚭鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml b/server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml
index 7013a1d..fe9ee9f 100644
--- a/server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml
+++ b/server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml
@@ -10,20 +10,19 @@
         # 鏆傛椂鍏抽棴缂撳瓨
         enabled: false
     nacos:
-      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
       password: nacos
-      config:
-        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit_test
-        username: nacos
-        password: nacos
-#        file-extension: yaml
-#        group: dev
-#        data-id: com.doumee.meeting.admin
+      #      config:
+      #        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      #        namespace: dmvisit
+      #        username: nacos
+      #        password: nacos
+      #        file-extension: yaml
+      #        group: dev
+      #        data-id: com.doumee.meeting.admin
       discovery:
-        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+        server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
         namespace: dmvisit
         username: nacos
-        password: nacos
-      # 瀹夊叏閰嶇疆
+        password: nacos
\ No newline at end of file
diff --git a/server/meeting/meeting_service/src/main/resources/application-pro.yml b/server/meeting/meeting_service/src/main/resources/application-pro.yml
index 829aa61..37ffb2f 100644
--- a/server/meeting/meeting_service/src/main/resources/application-pro.yml
+++ b/server/meeting/meeting_service/src/main/resources/application-pro.yml
@@ -1,23 +1,16 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://localhost:3306/smart_meeting?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Znhys@168.com
+    password: Atwl@2024
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
-
-#
-#knife4j:
-#  enable: true
-#  basic:
-#    enable: true
-#    username: admin
-#    password: doumee@168.com
-
-debug_model: true
-
-captcha_check: false
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
+debug_model: false
+captcha_check: true
 
 # Swagger閰嶇疆
 swagger:
@@ -27,25 +20,5 @@
   enabled: true
   # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
   redirect-uri: /
-
-
-########################寰俊鏀粯鐩稿叧閰嶇疆########################
-wx:
-  pay:
-    appId: wxfab6da18632e28de
-    appSecret: 4ee3b22afa90287834319fc3c1635271
-    mchId: 1229817002
-    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
-    keyPath: /usr/local/apiclient_cert.p12
-
-tencent:
-  map:
-    remoteHost: https://apis.map.qq.com
-    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
-
-
-########################瀹氭椂寮�鍚厤缃�########################
 timing: true
-
-des_pwd: 123456SDFKDJF
\ No newline at end of file
+des_pwd: 123456SDFKDJF
diff --git a/server/system_gateway/src/main/resources/application-pro.yml b/server/system_gateway/src/main/resources/application-pro.yml
index af1432e..033cb47 100644
--- a/server/system_gateway/src/main/resources/application-pro.yml
+++ b/server/system_gateway/src/main/resources/application-pro.yml
@@ -1,29 +1,21 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://localhost:3306/smart_meeting?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Znhys@168.com
+    password: Atwl@2024
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
-  redis:
-    #    database: 0
-    host: 127.0.0.1
-    port: 6379
-    password:
-    timeout: 5000      # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
+
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
 
 
-#knife4j:
-#  enable: true
-#  basic:
-#    enable: true
-#    username: admin
-#    password: doumee@168.com
 
-debug_model: true
+debug_model: false
 
-captcha_check: false
+captcha_check: true
 
 # Swagger閰嶇疆
 swagger:
@@ -34,24 +26,6 @@
   # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
   redirect-uri: /
 
-
-########################寰俊鏀粯鐩稿叧閰嶇疆########################
-wx:
-  pay:
-    appId: wxfab6da18632e28de
-    appSecret: 4ee3b22afa90287834319fc3c1635271
-    mchId: 1229817002
-    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
-    keyPath: /usr/local/apiclient_cert.p12
-
-tencent:
-  map:
-    remoteHost: https://apis.map.qq.com
-    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
-
-
-########################瀹氭椂寮�鍚厤缃�########################
 timing: true
 
-des_pwd: 123456SDFKDJF
\ No newline at end of file
+des_pwd: 123456SDFKDJF
diff --git a/server/system_gateway/src/main/resources/application.yml b/server/system_gateway/src/main/resources/application.yml
index a5edc83..6503fa3 100644
--- a/server/system_gateway/src/main/resources/application.yml
+++ b/server/system_gateway/src/main/resources/application.yml
@@ -83,6 +83,7 @@
     enabled: true
     mime-types: application/json
   port: 10010
+
   tomcat:
     max-swallow-size: -1
   servlet:
diff --git a/server/system_gateway/src/main/resources/bootstrap-pro.yml b/server/system_gateway/src/main/resources/bootstrap-pro.yml
index 409373d..3768d91 100644
--- a/server/system_gateway/src/main/resources/bootstrap-pro.yml
+++ b/server/system_gateway/src/main/resources/bootstrap-pro.yml
@@ -1,12 +1,12 @@
 spring:
   cloud:
     nacos:
-      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
       password: nacos
       discovery:
-        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit_test
+        server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
+        namespace: dmvisit
 #        namespace: dev_renkang
         username: nacos
         password: nacos
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
index 868ae70..38ce34c 100644
--- a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
@@ -109,7 +109,7 @@
     @GetMapping("/getVisitConfigDTO")
     public ApiResponse<VisitConfigDTO> getVisitConfigDTO(){
         return ApiResponse.success(systemDictDataService.getVisitConfigDTO());
-    };
+    }
 
     /**
      * 淇敼璁垮鏉ヨ閰嶇疆
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index 76f1b7f..09a1473 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -30,6 +30,7 @@
     public static final String HEADER_USER_TOKEN = "dm_user_token";
     public static final String REDIS_TOKEN_KEY = "token_";
     public static final String REDIS_HK_TOKEN_KEY = "hk_token_";
+    public static final String HK_TOKEN_VALIDITY = "HK_TOKEN_VALIDITY";
     public static final String[]  ALL_SPELL_LIST_FIRST = new String[]{"A", "B", "C", "D", "E", "F", "G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
     public static final int ZERO = 0 ;
     public static final int ONE = 1 ;
@@ -118,6 +119,10 @@
     public static final String HK_NGINX_URL = "HK_NGINX_URL";
     public static final String PLATFORM_BOOKING_TIPS = "PLATFORM_BOOKING_TIPS";
     public static final String PLATFORM_GUIDEMAP = "PLATFORM_GUIDEMAP";
+    public static final String WSM_PARAM ="WSM_PARAM" ;
+    public static final String WMS_INBOUND_PLATFROM_URL ="WMS_INBOUND_PLATFROM_URL" ;
+    public static final String WMS_GET_INVENTORYLIST_URL ="WMS_GET_INVENTORYLIST_URL" ;
+    public static final String WMS_OUTBOUND_PLATFROM_URL ="WMS_OUTBOUND_PLATFROM_URL" ;
     public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
     public static  boolean DEALING_HK_SYNCDEVICE = false;
     public static  boolean DEALING_HK_SYNCPLATFORM = false;
@@ -804,7 +809,7 @@
             this.info = info;
         }
     }
-    
+
     /**
      * 鏈堝彴浣滀笟 鐘舵��
      * 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�
@@ -822,6 +827,7 @@
         AUTHED_LEAVE(9, "宸叉巿鏉冪鍥�","宸叉巿鏉冪鍥�" ),
         LEAVED(10, "宸茬鍥� ","宸茬鍥� " ),
         OVER_NUMBER(11, "宸茶繃鍙�","宸茶繃鍙�" ),
+        CANCEL(12, "宸插彇娑�","宸插彇娑�" ),
         ;
 
         // 鎴愬憳鍙橀噺
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
index 3486129..959cc6e 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
@@ -1,5 +1,12 @@
 package com.doumee.core.utils;
 
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+
 import javax.crypto.Cipher;
 import javax.crypto.CipherInputStream;
 import javax.crypto.CipherOutputStream;
@@ -9,6 +16,7 @@
 import java.io.*;
 import java.security.Key;
 import java.util.Base64;
+import java.util.concurrent.TimeUnit;
 
 public class DESUtil {
 
@@ -169,4 +177,47 @@
         }
         return null;
     }
+
+
+    /**
+     * 娴峰悍鍔犲瘑
+     * @param userName
+     * @param hour
+     * @return
+     */
+    public static  String generateTokenToHk(String userName,Integer hour, RedisTemplate<String,Object> redisTemplate){
+         long currentTimeMillis = System.currentTimeMillis() + 1000*60*60*hour;
+         String encrypt = DESUtil.encrypt("12345678",currentTimeMillis + "_" + userName );
+         redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+encrypt, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
+         return encrypt;
+    }
+
+
+    /**
+     * 娴峰悍瑙g爜
+     * @param token
+     * @return
+     */
+    public static String verifyHkToken(String token){
+        String decrypt = DESUtil.decrypt("12345678",token);
+        if(StringUtils.isBlank(decrypt)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token瑙f瀽澶辫触");
+        }
+        try{
+            Integer index_ = decrypt.indexOf("_");
+            long currentTimeMillis = Long.valueOf(decrypt.substring(Constants.ZERO,index_));
+            if(currentTimeMillis<=System.currentTimeMillis()){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token宸茶繃鏈�");
+            }
+            String userName = decrypt.substring(index_+Constants.ONE);
+            return userName ;
+        }catch (Exception e){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token瑙f瀽澶辫触");
+        }
+
+    }
+
+
+
+
 }
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index a4cd38c..fbd64de 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2971,6 +2971,13 @@
         return DateToStr(date, "yyyyMMdd");
     }
 
+    public static String afterDateHourToStr(Integer hour){
+        Date date = new Date();
+        Long l = date.getTime()+1000*60*60*hour;
+        date.setTime(l);
+        return DateToStr(date, "yyyyMMdd");
+    }
+
     public static String beforeDateToStr(Integer days){
         Date date = new Date();
         Long l = date.getTime()-1000*60*60*24*days;
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java b/server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java
index 0ee1cc5..3bd91a7 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java
@@ -122,7 +122,7 @@
     }
 
     public static void main(String[] args) {
-        String url= "http://175.27.187.84/file4/member/20223402/DM1005.png";// 寰呭鐞嗙殑鍥剧墖
+        String url= "http://10.50.250.178:8088/file/member/20240910/c9a4d1cc-76ca-4aa1-bead-5dfd5daf1e76.jpg";// 寰呭鐞嗙殑鍥剧墖
         String imgbese = Image2Base64(url);
         System.out.println(imgbese.replace("\r\n", ""));
 
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
index c7c5d13..15af0a6 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
@@ -203,14 +203,15 @@
         if(Objects.isNull(notices)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(Constants.equalsInteger(notices.getSendacopy(),Constants.ONE)){
-            if(Constants.equalsInteger(Constants.ZERO,notices.getReaded())){
-                noticesMapper.update(null,new UpdateWrapper<Notices>().lambda()
-                        .set(Notices::getReaded,Constants.ONE).eq(Notices::getId,noticesId));
-            }
-        }else{
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴妱閫佹暟鎹�,鏃犳硶杩涜鏍囪");
+        if(Constants.equalsInteger(Constants.ZERO,notices.getReaded())){
+            noticesMapper.update(null,new UpdateWrapper<Notices>().lambda()
+                    .set(Notices::getReaded,Constants.ONE).eq(Notices::getId,noticesId));
         }
+//        if(Constants.equalsInteger(notices.getSendacopy(),Constants.ONE)){
+//
+//        }else{
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴妱閫佹暟鎹�,鏃犳硶杩涜鏍囪");
+//        }
     }
 
     /**
diff --git a/server/system_timer/src/main/resources/application-pro.yml b/server/system_timer/src/main/resources/application-pro.yml
index 820aa2f..033cb47 100644
--- a/server/system_timer/src/main/resources/application-pro.yml
+++ b/server/system_timer/src/main/resources/application-pro.yml
@@ -1,28 +1,21 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-    username: doumee
-    password: rtjgfEr@&0c0m
+    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: root
+    password: Atwl@2024
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
 
-  redis:
-    #    database: 0
-    host: 127.0.0.1
-    port: 6379
-    password:
-    timeout: 5000      # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-#knife4j:
-#  enable: true
-#  basic:
-#    enable: true
-#    username: admin
-#    password: doumee@168.com
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
 
-debug_model: true
 
-captcha_check: false
+
+debug_model: false
+
+captcha_check: true
 
 # Swagger閰嶇疆
 swagger:
@@ -33,22 +26,6 @@
   # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
   redirect-uri: /
 
+timing: true
 
-########################寰俊鏀粯鐩稿叧閰嶇疆########################
-wx:
-  pay:
-    appId: wxfab6da18632e28de
-    appSecret: 4ee3b22afa90287834319fc3c1635271
-    mchId: 1229817002
-    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
-    keyPath: /usr/local/apiclient_cert.p12
-
-tencent:
-  map:
-    remoteHost: https://apis.map.qq.com
-    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
-
-
-
-des_pwd: 123456SDFKDJF
\ No newline at end of file
+des_pwd: 123456SDFKDJF
diff --git a/server/system_timer/src/main/resources/bootstrap-pro.yml b/server/system_timer/src/main/resources/bootstrap-pro.yml
index 6a95c65..fe9ee9f 100644
--- a/server/system_timer/src/main/resources/bootstrap-pro.yml
+++ b/server/system_timer/src/main/resources/bootstrap-pro.yml
@@ -10,7 +10,7 @@
         # 鏆傛椂鍏抽棴缂撳瓨
         enabled: false
     nacos:
-      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
       password: nacos
       #      config:
@@ -22,7 +22,7 @@
       #        group: dev
       #        data-id: com.doumee.meeting.admin
       discovery:
-        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit_test
+        server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
+        namespace: dmvisit
         username: nacos
         password: nacos
\ No newline at end of file
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
index ffef6c7..495a7e2 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
@@ -9,6 +9,7 @@
 import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,6 +22,7 @@
 @Api(tags = "缁勭粐浜哄憳瀹氭椂鍣ㄦ帴鍙�")
 @RestController
 @RequestMapping("/timer/orguser")
+@Slf4j
 public class HkUsersTimerController extends BaseController {
 
     @Autowired
@@ -36,25 +38,34 @@
     @ApiOperation("寮�鍚畾鏃跺悓姝ユ捣搴风粍缁囨暟鎹�")
     @GetMapping("/syncOrgData")
     public ApiResponse syncOrgData() {
-        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
+        log.info("=========================寮�鍚畾鏃跺悓姝ユ捣搴风粍缁囨暟鎹�===========start===========");
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
+            || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self) {
             //濡傛灉鏄疎RP绯荤粺鍚屾涓嬪彂
             hkSyncOrgUserService.syncOrgData(null);
         }
+        log.info("=========================寮�鍚畾鏃跺悓姝ユ捣搴风粍缁囨暟鎹�===========end===========");
         return ApiResponse.success("寮�鍚畾鏃跺悓姝ユ捣搴风粍缁囨暟鎹垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃堕噸鏂颁笅鍙戝垹闄や汉鍛樻暟鎹�")
     @GetMapping("/syncMemberDelData")
     public ApiResponse syncMemberDelData() {
+        log.info("=========================寮�鍚畾鏃堕噸鏂颁笅鍙戝垹闄や汉鍛樻暟鎹�===========start===========");
         hkSyncOrgUserService.syncMemberDelData();
+
+        log.info("=========================寮�鍚畾鏃堕噸鏂颁笅鍙戝垹闄や汉鍛樻暟鎹�===========end===========");
         return ApiResponse.success("寮�鍚畾鏃堕噸鏂颁笅鍙戝垹闄や汉鍛樻暟鎹垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃跺悓姝ユ捣搴蜂汉鍛樻暟鎹�")
     @GetMapping("/syncUserData")
     public ApiResponse syncUserData() {
-        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
+        log.info("=========================寮�鍚畾鏃跺悓姝ユ捣搴蜂汉鍛樻暟鎹�===========start===========");
+        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
+                || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self) {
             //濡傛灉鏄疎RP绯荤粺鍚屾涓嬪彂
             hkSyncOrgUserService.syncUserData(null);
         }
+        log.info("=========================寮�鍚畾鏃跺悓姝ユ捣搴蜂汉鍛樻暟鎹�===========end===========");
         return ApiResponse.success("寮�鍚畾鏃跺悓姝ユ捣搴蜂汉鍛樻暟鎹垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃跺喕缁撲汉鍛�")
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml b/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
index f84b8c1..fe9ee9f 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
@@ -10,19 +10,19 @@
         # 鏆傛椂鍏抽棴缂撳瓨
         enabled: false
     nacos:
-      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
       password: nacos
-#      config:
-#        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-#        namespace: dmvisit
-#        username: nacos
-#        password: nacos
-#        file-extension: yaml
-#        group: dev
-#        data-id: com.doumee.meeting.admin
+      #      config:
+      #        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      #        namespace: dmvisit
+      #        username: nacos
+      #        password: nacos
+      #        file-extension: yaml
+      #        group: dev
+      #        data-id: com.doumee.meeting.admin
       discovery:
-        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit_test
+        server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
+        namespace: dmvisit
         username: nacos
-        password: nacos
+        password: nacos
\ No newline at end of file
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
index 144d6dc..582ed58 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -4,8 +4,8 @@
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformCarsRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.dao.business.model.Device;
@@ -108,15 +108,15 @@
         return ApiResponse.success(null);
     }
     @ApiOperation("銆愭捣搴枫�戞湀鍙板伐浣滅姸鎬佷簨浠舵帹閫�")
-    @PostMapping("/platform/workstatus")
-    public ApiResponse workstatus(@RequestBody EventPlatWorkstatusRequest param, HttpServletResponse response) {
-         hkSyncPushService.dealWorkstatusEvent(param,response);
+    @PostMapping("/push/platform/workstatus")
+    public ApiResponse pushPlatformStatus(@RequestBody EventPlatformRequest param, HttpServletResponse response) {
+         hkSyncPushService.dealPlatformStatusEvent(param,response);
         return ApiResponse.success(null);
     }
     @ApiOperation("銆愭捣搴枫�戞湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫�")
-    @PostMapping("/platform/carstatus")
-    public ApiResponse carstatus(@RequestBody EventPlatCarstatusRequest param, HttpServletResponse response) {
-         hkSyncPushService.dealCarstatusEvent(param,response);
+    @PostMapping("/push/platform/carstatus")
+    public ApiResponse pushPlatformCarStatus(@RequestBody EventPlatformCarsRequest param, HttpServletResponse response) {
+         hkSyncPushService.dealPlatformCarsEvent(param,response);
         return ApiResponse.success(null);
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java
new file mode 100644
index 0000000..8b2ef50
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.dao.business.model.PlatformEvent;
+import com.doumee.service.business.PlatformEventService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/08/28 17:24
+ */
+@Api(tags = "鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃")
+@RestController
+@RequestMapping("/business/platformEvent")
+public class PlatformEventController extends BaseController {
+
+    @Autowired
+    private PlatformEventService platformEventService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformevent:create")
+    public ApiResponse create(@RequestBody PlatformEvent platformEvent) {
+        return ApiResponse.success(platformEventService.create(platformEvent));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformevent:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformEventService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformevent:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        platformEventService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformevent:update")
+    public ApiResponse updateById(@RequestBody PlatformEvent platformEvent) {
+        platformEventService.updateById(platformEvent);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformevent:query")
+    public ApiResponse<PageData<PlatformEvent>> findPage (@RequestBody PageWrap<PlatformEvent> pageWrap) {
+        return ApiResponse.success(platformEventService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:platformevent:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<PlatformEvent> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(PlatformEvent.class).export(platformEventService.findPage(pageWrap).getRecords(), "鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:platformevent:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformEventService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java
index 07aa390..b3df154 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java
@@ -1,26 +1,22 @@
 package com.doumee.api.business;
 
+import com.doumee.api.BaseController;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
-import com.doumee.dao.business.WmsInterfaceLogMapper;
-import com.doumee.dao.business.model.InterfaceLog;
+import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.WmsInterfaceLog;
-import com.doumee.service.business.InterfaceLogService;
 import com.doumee.service.business.WmsInterfaceLogService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import javax.servlet.http.HttpServletResponse;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
-
-import com.doumee.api.BaseController;
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
index 026283a..b526e8e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
@@ -1,7 +1,9 @@
 package com.doumee.api.business;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.api.BaseController;
 import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
 import com.doumee.core.haikang.model.param.request.EventSubRequest;
 import com.doumee.core.haikang.model.param.request.ParkListRequest;
@@ -10,6 +12,7 @@
 import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
 import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
 import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
@@ -21,6 +24,8 @@
 import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -39,6 +44,7 @@
 @Api(tags = "WMS骞冲彴鏁版嵁鎺ㄩ�佹帴鍙�")
 @RestController
 @RequestMapping("/wms")
+@Slf4j
 public class WmsPushController extends BaseController {
 
     @Autowired
@@ -48,7 +54,23 @@
     @ApiOperation("銆怌MS銆戞帹閫佸叆搴撳崟閫氱煡浠诲姟")
     @PostMapping("/push/inboundNotice")
     public WmsBaseResponse inboundNotice(@RequestBody List<WmsInboundNoticeRequest> param) {
-        WmsBaseResponse result = wmsService.inboundNotice(param);
+
+        int success = Constants.ZERO;
+        WmsBaseResponse result =null;
+        try {
+             result = wmsService.inboundNotice(param);
+        }catch (BusinessException e){
+            log.error("銆怌MS銆戞帹閫佸叆搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            success = Constants.ONE;
+        }catch (Exception e){
+            log.error("銆怌MS銆戞帹閫佸叆搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            e.printStackTrace();
+            success = Constants.ONE;
+        }finally {
+            wmsService.saveInterfaceLog("/wms/push/inboundNotice", "鎺ㄩ�佸叆搴撳崟閫氱煡浠诲姟",JSONObject.toJSONString(param),
+                    success, JSONObject.toJSONString(result),Constants.ONE);
+        }
+
         return result;
     }
 
@@ -56,28 +78,85 @@
     @ApiOperation("銆怌MS銆戞帹閫佸嚭搴撳崟閫氱煡浠诲姟")
     @PostMapping("/push/outboundNotice")
     public WmsBaseResponse outboundNotice(@RequestBody List<WmsOutboundNoticeRequest> param) {
-        WmsBaseResponse result = wmsService.outboundNotice(param);
+        int success = Constants.ZERO;
+        WmsBaseResponse result =null;
+        try {
+              result = wmsService.outboundNotice(param);
+        }catch (BusinessException e){
+            log.error("銆怌MS銆戞帹閫佸嚭搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            success = Constants.ONE;
+        }catch (Exception e){
+            log.error("銆怌MS銆戞帹閫佸嚭搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            e.printStackTrace();
+            success = Constants.ONE;
+        }finally {
+            wmsService.saveInterfaceLog("/wms/push/outboundNotice", "鎺ㄩ�佸嚭搴撳崟閫氱煡浠诲姟",JSONObject.toJSONString(param),success
+                    , JSONObject.toJSONString(result),Constants.ONE);
+        }
+
         return result;
     }
     @PreventRepeat
     @ApiOperation("銆怌MS銆戞帹閫佸彇娑堝叆搴撳崟閫氱煡浠诲姟")
     @PostMapping("/push/cancelInbound")
     public WmsBaseResponse cancelInbound(@RequestBody List<WmsActionNoticeRequest> param) {
-        WmsBaseResponse result = wmsService.cancelInbound(param);
+        int success = Constants.ZERO;
+        WmsBaseResponse result =null;
+        try {
+            result = wmsService.cancelInbound(param);
+        }catch (BusinessException e){
+            log.error("銆怌MS銆戞帹閫佸彇娑堝叆搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            success = Constants.ONE;
+        }catch (Exception e){
+            log.error("銆怌MS銆戞帹閫佸彇娑堝叆搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            e.printStackTrace();
+            success = Constants.ONE;
+        }finally {
+            wmsService.saveInterfaceLog("/wms/push/cancelInbound", "鎺ㄩ�佸彇娑堝叆搴撳崟閫氱煡浠诲姟",JSONObject.toJSONString(param),
+                    success, JSONObject.toJSONString(result),Constants.ONE);
+        }
         return result;
     }
     @PreventRepeat
     @ApiOperation("銆怌MS銆戞帹閫佸彇娑堝嚭搴撳崟閫氱煡浠诲姟")
     @PostMapping("/push/cancelOutbound")
     public WmsBaseResponse cancelOutbound(@RequestBody List<WmsActionNoticeRequest> param) {
-        WmsBaseResponse result = wmsService.cancelOutbound(param);
+        int success = Constants.ZERO;
+        WmsBaseResponse result =null;
+        try {
+            result = wmsService.cancelOutbound(param);
+        }catch (BusinessException e){
+            log.error("銆怌MS銆戞帹閫佸彇娑堝嚭搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            success = Constants.ONE;
+        }catch (Exception e){
+            log.error("銆怌MS銆戞帹閫佸彇娑堝嚭搴撳崟閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            e.printStackTrace();
+            success = Constants.ONE;
+        }finally {
+            wmsService.saveInterfaceLog("/wms/push/cancelOutbound", "鎺ㄩ�佸彇娑堝嚭搴撳崟閫氱煡浠诲姟",
+                    JSONObject.toJSONString(param),  success, JSONObject.toJSONString(result),Constants.ONE);
+        }
         return result;
     }
     @PreventRepeat
     @ApiOperation("銆怌MS銆戞帹閫佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟")
     @PostMapping("/push/doneTask")
     public WmsBaseResponse doneTask(@RequestBody List<WmsActionNoticeRequest> param) {
-        WmsBaseResponse result = wmsService.doneTask(param);
+        int success = Constants.ZERO;
+        WmsBaseResponse result =null;
+        try {
+            result = wmsService.doneTask(param);
+        }catch (BusinessException e){
+            log.error("銆怌MS銆戞帹閫佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            success = Constants.ONE;
+        }catch (Exception e){
+            log.error("銆怌MS銆戞帹閫佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟===澶辫触锛�"+e.getMessage());
+            e.printStackTrace();
+            success = Constants.ONE;
+        }finally {
+            wmsService.saveInterfaceLog("/wms/push/doneTask", "鎺ㄩ�佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟",JSONObject.toJSONString(param),
+                    success, JSONObject.toJSONString(result),Constants.ONE);
+        }
         return result;
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 9118d7a..3d751ba 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -1,26 +1,38 @@
 package com.doumee.cloud.admin;
 
 import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.annotation.CloudRequiredPermission;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformCarsRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
 import com.doumee.dao.business.model.Device;
 import com.doumee.service.business.impl.hksync.*;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
@@ -42,6 +54,14 @@
     private HkSyncPushServiceImpl hkSyncPushService;
     @Autowired
     private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private RedisTemplate<String,Object> redisTemplate;
+
+
     @PreventRepeat
     @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ユ湀鍙颁俊鎭帴鍙�")
     @PostMapping("/syncPlatforms")
@@ -130,6 +150,20 @@
         String result = hkSyncPushService.dealParkEvent(param,response);
         return ApiResponse.success(result);
     }
+    @ApiOperation("銆愭捣搴枫�戞湀鍙板伐浣滅姸鎬佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�")
+    @PostMapping("/push/platform/workstatus")
+    @LoginNoRequired
+    public ApiResponse pushPlatformStatus(@RequestBody EventPlatformRequest param, HttpServletResponse response ){
+        String result = hkSyncPushService.dealPlatformStatusEvent(param,response);
+        return ApiResponse.success(result);
+    }
+    @ApiOperation("銆愭捣搴枫�戞湀鍙拌溅杈嗙姸鎬佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�")
+    @PostMapping("/push/platform/carstatus")
+    @LoginNoRequired
+    public ApiResponse pushPlatformCarStatus(@RequestBody EventPlatformCarsRequest param, HttpServletResponse response ){
+        String result = hkSyncPushService.dealPlatformCarsEvent(param,response);
+        return ApiResponse.success(result);
+    }
     @PreventRepeat
     @ApiOperation("銆愭捣搴枫�戝彇娑堣闃呬簨浠�")
     @PostMapping("/cancelEventSub")
@@ -138,4 +172,26 @@
          hkSyncPushService.cancelEventSub();
         return ApiResponse.success(null);
     }
+
+    /**
+     * 鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟璋冩暣鍦板潃
+     * @return
+     */
+    @ApiOperation(value = "鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟璋冩暣鍦板潃" )
+    @GetMapping("/getHkMenuLink")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type",example = "0",value = "鑿滃崟绫诲瀷", required = true),
+    })
+    public ApiResponse<String> getHkMenuLink(Integer type,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        LoginUserInfo loginUserInfo = this.getLoginUser(token);
+        String hkToken = DESUtil.generateTokenToHk(loginUserInfo.getUsername(),Integer.valueOf(
+          systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_TOKEN_VALIDITY).getCode()
+        ),redisTemplate);
+        String url = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() +
+        systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode()
+                 + HKService.getMenuUrl(type,hkToken);
+
+        return ApiResponse.success( url);
+    }
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
index dd1490d..cea4426 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
@@ -1,21 +1,28 @@
 package com.doumee.cloud.admin;
 
 import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.PlatformBooks;
+import com.doumee.dao.business.model.PlatformReason;
+import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
+import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
+import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.service.business.PlatformBooksService;
+import com.doumee.service.business.PlatformReasonService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,18 +37,20 @@
 
     @Autowired
     private PlatformBooksService platformBooksService;
+    @Autowired
+    private PlatformReasonService platformReasonService;
 
     @PreventRepeat
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
-    @RequiresPermissions("business:platformbooks:create")
+    @CloudRequiredPermission("business:platformbooks:create")
     public ApiResponse create(@RequestBody PlatformBooks platformBooks) {
         return ApiResponse.success(platformBooksService.create(platformBooks));
     }
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
-    @RequiresPermissions("business:platformbooks:delete")
+    @CloudRequiredPermission("business:platformbooks:delete")
     public ApiResponse deleteById(@PathVariable Integer id) {
         platformBooksService.deleteById(id);
         return ApiResponse.success(null);
@@ -49,7 +58,7 @@
 
     @ApiOperation("鎵归噺鍒犻櫎")
     @GetMapping("/delete/batch")
-    @RequiresPermissions("business:platformbooks:delete")
+    @CloudRequiredPermission("business:platformbooks:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
         String [] idArray = ids.split(",");
         List<Integer> idList = new ArrayList<>();
@@ -62,7 +71,7 @@
 
     @ApiOperation("鏍规嵁ID淇敼")
     @PostMapping("/updateById")
-    @RequiresPermissions("business:platformbooks:update")
+    @CloudRequiredPermission("business:platformbooks:update")
     public ApiResponse updateById(@RequestBody PlatformBooks platformBooks) {
         platformBooksService.updateById(platformBooks);
         return ApiResponse.success(null);
@@ -70,22 +79,53 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    @RequiresPermissions("business:platformbooks:query")
-    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap) {
+    @CloudRequiredPermission("business:platformbooks:query")
+    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(platformBooksService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
-    @RequiresPermissions("business:platformbooks:exportExcel")
+    @CloudRequiredPermission("business:platformbooks:exportExcel")
     public void exportExcel (@RequestBody PageWrap<PlatformBooks> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(PlatformBooks.class).export(platformBooksService.findPage(pageWrap).getRecords(), "鏈堝彴鍏ュ洯棰勭害淇℃伅琛�", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
-    @RequiresPermissions("business:platformbooks:query")
+    @CloudRequiredPermission("business:platformbooks:query")
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(platformBooksService.findById(id));
     }
+
+
+
+    @ApiOperation("鍏ュ洯鍘熷洜")
+    @GetMapping("/platformReasonList")
+    public ApiResponse<List<PlatformReason>> platformReasonList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        List<PlatformReason> platformReasons = platformReasonService.findList(null);
+        return ApiResponse.success(platformReasons);
+    }
+
+    @ApiOperation("鏌ヨ鍙绾﹂噺")
+    @PostMapping("/checkSurplusNum")
+    public ApiResponse<BigDecimal> checkSurplusNum (@RequestBody PlatformBooksCheckNumDTO platformBooksCheckNumDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformBooksService.checkNum(platformBooksCheckNumDTO));
+    }
+
+    @ApiOperation("鐗╂祦杞﹂绾�")
+    @PostMapping("/apply")
+    public ApiResponse<Integer> apply (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo loginUserInfo = getLoginUser(token);
+        platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
+        platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId());
+        return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO));
+    }
+
+    @ApiOperation("鐗╂祦杞﹂绾﹁鎯�")
+    @GetMapping("/getDetail")
+    public ApiResponse<PlatformBooks> getDetail (@RequestParam Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        PlatformBooks platformBooks = platformBooksService.getDetail(id,getLoginUser(token).getMemberId());
+        return ApiResponse.success(platformBooks);
+    }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
index 5acfa7d..3359739 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -13,6 +13,7 @@
 import com.doumee.dao.business.model.PlatformJob;
 import com.doumee.dao.web.reqeust.JobOperateDTO;
 import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformGroupWorkVO;
 import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.PlatformGroupService;
 import com.doumee.service.business.PlatformJobService;
@@ -212,6 +213,19 @@
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @ApiOperation("鎺堟潈绂诲満")
+    @PostMapping("/powerLevel")
+    public ApiResponse powerLevel (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.powerLevel(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("鑾峰彇鏈堝彴缁� 绛夊緟涓庡紓甯告寕璧锋暟鎹�")
+    @GetMapping("/getPlatformGroupWork")
+    public ApiResponse<PlatformGroupWorkVO> getPlatformGroupWork (@RequestParam Integer platformGroupId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformGroupService.getPlatformGroupWork(platformGroupId));
+    }
 
 
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
index c4a02f9..598439a 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
@@ -12,8 +12,6 @@
 import com.doumee.dao.web.reqeust.PlatformDataDTO;
 import com.doumee.service.business.PlatformGroupService;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
index 5c71da5..f71d7c1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
@@ -9,6 +9,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.web.reqeust.JobDetailDTO;
 import com.doumee.service.business.PlatformJobService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -41,7 +42,7 @@
     @GetMapping("/delete/{id}")
     @CloudRequiredPermission("business:platformjob:delete")
     public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        platformJobService.deleteById(id);
+        platformJobService.delete(id);
         return ApiResponse.success(null);
     }
 
@@ -81,4 +82,11 @@
     public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(platformJobService.findById(id));
     }
+
+    @ApiOperation("浠诲姟璇︽儏")
+    @PostMapping("/jobDetail")
+    @CloudRequiredPermission("business:platformjob:query")
+    public ApiResponse<PlatformJob>  jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformJobService.getDetail(jobDetailDTO));
+    }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java
index 35c331f..1178e83 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java
@@ -98,7 +98,7 @@
     @PostMapping("/page")
     @CloudRequiredPermission("business:visits:query")
     public ApiResponse<PageData<Visits>> findPage (@RequestBody PageWrap<Visits> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        pageWrap.getModel().setReceptMemberId(getLoginUser(token).getMemberId());
+//        pageWrap.getModel().setReceptMemberId(getLoginUser(token).getMemberId());
         return ApiResponse.success(visitsService.findPage(pageWrap));
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
new file mode 100644
index 0000000..828af42
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
@@ -0,0 +1,75 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
+import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
+import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
+import com.doumee.core.wms.model.response.WmsBaseResponse;
+import com.doumee.service.business.WmsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Api(tags = "WMS骞冲彴鏁版嵁鎺ㄩ�佹帴鍙�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/wms")
+public class WmsPushCloudController extends BaseController {
+
+    @Autowired
+    private WmsService wmsService;
+
+    @PreventRepeat
+    @ApiOperation("銆怌MS銆戞帹閫佸叆搴撳崟閫氱煡浠诲姟")
+    @PostMapping("/push/inboundNotice")
+    @LoginNoRequired
+    public WmsBaseResponse inboundNotice(@RequestBody List<WmsInboundNoticeRequest> param) {
+        WmsBaseResponse result = wmsService.inboundNotice(param);
+        return result;
+    }
+
+    @PreventRepeat
+    @ApiOperation("銆怌MS銆戞帹閫佸嚭搴撳崟閫氱煡浠诲姟")
+    @PostMapping("/push/outboundNotice")
+    @LoginNoRequired
+    public WmsBaseResponse outboundNotice(@RequestBody List<WmsOutboundNoticeRequest> param) {
+        WmsBaseResponse result = wmsService.outboundNotice(param);
+        return result;
+    }
+    @PreventRepeat
+    @ApiOperation("銆怌MS銆戞帹閫佸彇娑堝叆搴撳崟閫氱煡浠诲姟")
+    @PostMapping("/push/cancelInbound")
+    @LoginNoRequired
+    public WmsBaseResponse cancelInbound(@RequestBody List<WmsActionNoticeRequest> param) {
+        WmsBaseResponse result = wmsService.cancelInbound(param);
+        return result;
+    }
+    @PreventRepeat
+    @ApiOperation("銆怌MS銆戞帹閫佸彇娑堝嚭搴撳崟閫氱煡浠诲姟")
+    @PostMapping("/push/cancelOutbound")
+    @LoginNoRequired
+    public WmsBaseResponse cancelOutbound(@RequestBody List<WmsActionNoticeRequest> param) {
+        WmsBaseResponse result = wmsService.cancelOutbound(param);
+        return result;
+    }
+    @PreventRepeat
+    @ApiOperation("銆怌MS銆戞帹閫佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟")
+    @PostMapping("/push/doneTask")
+    @LoginNoRequired
+    public WmsBaseResponse doneTask(@RequestBody List<WmsActionNoticeRequest> param) {
+        WmsBaseResponse result = wmsService.doneTask(param);
+        return result;
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
index 686dbf0..f26fc55 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -1,26 +1,28 @@
 package com.doumee.cloud.openapi;
 
 import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
 import com.doumee.dao.openapi.request.*;
 import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.PlatformJobService;
 import com.doumee.service.business.PlatformLogService;
 import com.doumee.service.business.PlatformService;
 import com.doumee.service.business.PlatformWaterGasService;
+import com.doumee.service.system.SystemUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-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 org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author 姹熻箘韫�
@@ -43,75 +45,147 @@
     @Autowired
     private PlatformWaterGasService platformWaterGasService;
 
+    @Autowired
+    private SystemUserService systemUserService;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private RedisTemplate<String,Object> redisTemplate;
+
+    @LoginNoRequired
+    @ApiOperation("token瑙f瀽")
+    @GetMapping("/water/decodeToken")
+    public Map<String,Object> decodeToken(@RequestParam String token) {
+        HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
+        hkBaseTokenRequest.setToken(token);
+        return this.decodeTokenForHk(hkBaseTokenRequest);
+    }
+
+    public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest){
+        Map<String,Object> result = new HashMap<>();
+        result.put("code","0");
+        result.put("msg","success");
+        if(Objects.isNull(hkBaseTokenRequest)||StringUtils.isBlank(hkBaseTokenRequest.getToken())){
+            result.put("code","-1");
+            result.put("msg","token鍙傛暟涓虹┖");
+            return result;
+        }
+        String redisToken = (String) redisTemplate.opsForValue().get(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
+        if(StringUtils.isBlank(redisToken)){
+            result.put("code","-1");
+            result.put("msg","token鍙傛暟涓虹┖");
+            return result;
+        }
+        String userName = DESUtil.verifyHkToken(hkBaseTokenRequest.getToken());
+        if(StringUtils.isBlank(userName)){
+            result.put("code","-1");
+            result.put("msg","token鍙傛暟涓虹┖");
+            return result;
+        }
+        //鏌ヨ鐢ㄦ埛淇℃伅鏄惁瀛樺湪
+        SystemUser systemUser = new SystemUser();
+        systemUser.setUsername(userName);
+        systemUser.setDeleted(Boolean.FALSE);
+        SystemUser queryBean = systemUserService.findOne(systemUser);
+        if(Objects.isNull(queryBean)){
+            result.put("code","-1");
+            result.put("msg","token鍙傛暟涓虹┖");
+            return result;
+        }
+        if(Constants.equalsInteger(queryBean.getStatus(),Constants.ONE)){
+            result.put("code","-2");
+            result.put("msg","鐢ㄦ埛宸茬鐢�");
+            return result;
+        }
+        redisTemplate.delete(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
+        Map<String,Object> data = new HashMap<>();
+        data.put("userId",userName);
+        result.put("data",data);
+        return result;
+    }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愮敤姘撮噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
     @PostMapping("/water/dataByMonth")
-    @LoginNoRequired
     public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) {
         return ApiResponse.success(platformWaterGasService.waterDataByMonth(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愮敤姘旈噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
     @PostMapping("/gas/dataByMonth")
-    @LoginNoRequired
     public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
         return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡姹傚弬鏁�")
     @PostMapping("/platform/orderNumByDate")
-    @LoginNoRequired
     public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) {
         return ApiResponse.success(platformJobService.orderNumByDate(param));
     }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙扮姸鎬佹暟閲忕粺璁�")
     @PostMapping("/platform/totalNumByStatus")
-    @LoginNoRequired
     public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
         return ApiResponse.success(platformService.getPlatformNumByStatusResponse());
     }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙板綋鍓嶄綔涓氫俊鎭垪琛�")
     @PostMapping("/platform/workingDataList")
-    @LoginNoRequired
     public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
         return ApiResponse.success(platformJobService.platformWorkingDataList(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙颁綔涓氳鎯呬俊鎭�")
     @PostMapping("/platform/workDataInfo")
-    @LoginNoRequired
     public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
         return ApiResponse.success(platformJobService.platformWorkingDataList(param));
     }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戝綋鍓嶈溅杈嗙姸鎬佹暟閲忕粺璁�")
     @PostMapping("/platform/carStatusNum")
-    @LoginNoRequired
     public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
         return ApiResponse.success(platformJobService.carStatusNum(param));
     }
 
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戣溅杈嗕簨浠跺垪琛ㄦ暟鎹泦鍚堬紙鏈�鏂癗鏉★級")
     @PostMapping("/platform/carLogsList")
-    @LoginNoRequired
     public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) {
         return ApiResponse.success(platformLogService.getCarLogsListResponse(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞帓闃熼槦鍒楀垪琛ㄩ泦鍚�")
     @PostMapping("/platform/queueList")
-    @LoginNoRequired
     public ApiResponse<PlatformQueuingListResponse> queueList(@RequestBody PlatformQueuingListRequest param) {
         return ApiResponse.success(platformJobService.queueList(param));
     }
 
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戦璀︿簨浠堕泦鍚堝垪琛�")
     @PostMapping("/platform/warningEventList")
-    @LoginNoRequired
     public ApiResponse<List<PlatformWarnEventListResponse>> warningEventList(@RequestBody PlatformWarnEventListRequest param) {
         return ApiResponse.success(new ArrayList<>());
     }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
index 1be6534..eff6a72 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -52,7 +52,11 @@
                 .apiInfo(this.getApiInfo()).groupName("default")
                 .host(host)
                 .select()
-                .apis( basePackage("com.doumee.cloud;com.doumee.api.common"))
+                .apis( basePackage("com.doumee.cloud"))
+//                .apis( basePackage("com.doumee.api.common"))
+
+//                .apis( basePackage("com.doumee.cloud.openapi;com.doumee.api.common"))
+//                .apis( basePackage("com.doumee.cloud.openapi"))
                 // 璁剧疆闇�瑕佽鎵弿鐨勭被锛岃繖閲岃缃负娣诲姞浜咢Api娉ㄨВ鐨勭被
 //                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                 .paths(PathSelectors.any())
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
index 9b992cf..7a8e489 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
@@ -10,7 +10,7 @@
         # 鏆傛椂鍏抽棴缂撳瓨
         enabled: false
     nacos:
-      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
       password: nacos
 #      config:
@@ -22,7 +22,7 @@
 #        group: dev
 #        data-id: com.doumee.meeting.admin
       discovery:
-        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit_test
+        server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
+        namespace: dmvisit
         username: nacos
         password: nacos
\ No newline at end of file
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 9dc10e9..2df12af 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: pro
   application:
     name: visitsAdmin
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index cf0970f..2844c21 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -27,6 +27,21 @@
     public static final String ARTEMIS_PATH = "/artemis";
 
     /**
+     * 蹇嵎鑿滃崟璺宠浆椤甸潰鍙傛暟
+     * 1銆佺患鍚堝畨闃诧細zhaf
+     * 2銆佺墿涓氬悗鍕わ細wyhq
+     * 3銆佽鏀垮姙鍏細xzbg
+     * 4銆佽繍钀ヤ腑蹇冿細yyzx
+     */
+    public interface MenuPageId{
+            String zhaf = "zhaf";//缁煎悎瀹夐槻
+            String wyhq = "wyhq";//鐗╀笟鍚庡嫟
+            String xzbg = "xzbg";//琛屾斂鍔炲叕
+            String yyzx = "yyzx";//杩愯惀涓績
+
+    }
+
+    /**
      * 鎺ュ彛鍦板潃闆嗗悎
      */
     public interface InterfacePath{
@@ -105,6 +120,8 @@
 
         String[] privilegIccmeGroup= new String[]{"/api/iccm/v1/privilege/groups","鏌ヨ璁垮鏉冮檺缁�"};//鏌ヨ璁垮鏉冮檺缁�
         String[] iccmAppointmentRecords= new String[]{"/api/iccm/v2/appointment/records","iccm鏌ヨ宸查绾︾櫥璁�"};//iccm鏌ヨ宸查绾︾櫥璁�
+        String[] wxAccessToken= new String[]{"/api/wx/v1/oa/get/accessToken","iccm鏌ヨ宸查绾︾櫥璁�"};//1.9.1鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken
+        String[] goMenuUrl= new String[]{"/xauthplus-plugin/thirdLogin?type=third&componentId=Infovision iPark Platform&componentMenuId=${menuId}&token=${token}","宸ヤ綔鍙拌彍鍗曡烦杞湴鍧�"};
     }
 
     /**
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 4a50aaf..b230c6a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -529,6 +529,14 @@
 	}
 
 	/**
+	 *	鑾峰彇鍏ㄩ噺缁勭粐淇℃伅
+	 * @param body
+	 * @return
+	 */
+	public static String orgAllList(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body);
+	}
+	/**
 	 *	鑾峰彇璁垮棰勭害璁板綍鍒楄〃
 	 * @param body
 	 * @return
@@ -546,12 +554,13 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointmentRecords,body);
 	}
 	/**
-	 *	鑾峰彇鍏ㄩ噺缁勭粐鍒楄〃
-	 * @param body
+	 *	鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken
 	 * @return
 	 */
-	public static String orgAllList(String body) {
-		return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body);
+	public static String wxAccessToken(String configId,String tagId) {
+		String[] wxAccessToken= HKConstants.InterfacePath.wxAccessToken;
+		wxAccessToken[0] = HKConstants.InterfacePath.wxAccessToken+"?tagId="+tagId+"&configId"+configId;
+		return startDoPostStringArtemis(wxAccessToken,"");
 	}
 	/**
 	 *	鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
@@ -720,4 +729,9 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.applyST,body);
 	}
 
+	public static String getMenuUrl(String menuId, String token) {
+		String url = HKConstants.InterfacePath.goMenuUrl[0];
+		url = url.replace("${menuId}", menuId).replace("${token}",token);
+		return  url;
+	}
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java
index b19e85a..729b00e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java
@@ -39,5 +39,6 @@
  private Integer  speed	; //	Number	false	閫熷害
  private Integer  stayTime		; //Number	false	鍋滅暀鏃堕棿
  private Integer  fontSize		; //Number	false	瀛椾綋澶у皬
+ private Integer  fontColor		; //Number false	瀛椾綋棰滆壊(1:绾㈣壊锛�2锛氱豢鑹诧紝4:榛勮壊锛�8锛氳摑鑹诧紝16锛氱传鑹诧紝32锛氶潚鑹诧紝64锛氱櫧鑹�)
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxAccessTokenRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxAccessTokenRequest.java
new file mode 100644
index 0000000..e95c42a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxAccessTokenRequest.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WxAccessTokenRequest {
+    private String configId;//	Query	String	false	寰俊鍏紬鍙烽厤缃紪鍙�
+    private String   tagId;//Query	String	false	鏍囩
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java
new file mode 100644
index 0000000..51216fe
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventImageInfoRequest {
+    private String  resourcesContentType;//: "binary",
+    private String  resourcesContent;//: "backgroundImage"
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java
new file mode 100644
index 0000000..07032d1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class EventPlatformAttrInfoRequest {
+   private String cameraIndexCode;//: "90a3caf18fb449339405099a816c3b2d",
+   private String deviceIndexCode;//: "5a939a9cf1ee4e268eac6671ec3527ef",
+   private String imageServerCode;//: "bfe11307-3286-49ca-b9ee-9efb34b3f555",
+   private String picServerIndexCode;//: "bfe11307-3286-49ca-b9ee-9efb34b3f555"
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java
new file mode 100644
index 0000000..18c6f1f
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java
@@ -0,0 +1,28 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventPlatformCarsDataRequest {
+    private List<EventPlatformCarsStatusInfoRequest> HPVehicleStatus;//
+    private  EventPlatformAttrInfoRequest targetAttrs;//
+   private String dataType;//HPVehicleStatus
+        private String sendTime;//2017-04-22T15:39:01.000+08:00
+        private String dateTime;//2004-05-03T17:30:08.000+08:00
+        private String ipAddress;//172.6.64.7
+        private String ipv6Address;//null
+        private Integer portNo;//private;//   80,
+        private String protocol;//HTTP
+        private String macAddress;//01:17:24:45:D9:F4
+        private Integer channelID;//private ;//String : 1,
+        private Integer activePostCount;//private String : 1,
+        private String eventType;//HPVehicleStatus
+        private String eventState;//active
+        private String eventDescription;//handingPlatform vehicle status
+        private String channelName;//ABC
+        private String deviceID;//test0123
+        private String eventId;//205F7A23-BF3F-C346-A02E-08DAF55EEA15
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java
new file mode 100644
index 0000000..4c89337
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java
@@ -0,0 +1,20 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventPlatformCarsInfoRequest {
+    private String  eventId;//	String	浜嬩欢鍞竴鏍囪瘑	鏄�	64
+    private String  srcIndex;//	String	浜嬩欢婧愮紪鍙凤紝鐗╃悊璁惧鏄祫婧愮紪鍙�	鏄�	64
+    private String  dateTime;//
+    private String  srcType;//	String	浜嬩欢婧愮被鍨�	鏄�	16
+    private String  eventType	;//Number	浜嬩欢绫诲瀷	鏄�
+    private String  srcName;//	String	浜嬩欢婧愬悕绉�	鍚�	64
+    private Integer   status	;//Number	浜嬩欢鐘舵��	鏄�		0-鐬椂1-寮�濮�2-鍋滄3-浜嬩欢鑴夊啿4-浜嬩欢鑱斿姩缁撴灉鏇存柊5-寮傛鍥剧墖涓婁紶
+    private Integer  timeout	;//Number	鑴夊啿瓒呮椂鏃堕棿	鏄�		鍗曚綅锛氱
+    private String  happenTime	;//String	浜嬩欢鍙戠敓鏃堕棿锛堣澶囨椂闂达級	鏄�	64
+    private String   srcParentIndex	;//String	浜嬩欢鍙戠敓鐨勪簨浠舵簮鐖惰澶囩紪鍙�	鍚�	64
+    private List<EventPlatformCarsDataRequest> data;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java
new file mode 100644
index 0000000..e5f97e9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventPlatformCarsParamRequest {
+
+
+    private String   sendTime;//	P	String	浜嬩欢浠庢帴鏀惰�咃紙绋嬪簭澶勭悊鍚庯級鍙戝嚭鐨勬椂闂�	鏄�	32	浜嬩欢鍙戦�佹椂闂�
+    private String    ability;//	P	String	浜嬩欢绫诲埆	鏄�	64	鏍囪瘑鍋滆溅鍦轰簨浠�
+    private List<String>  uids;//
+    private List<String>  clients;//
+    private Integer  dataProcInterval;//
+    private List<EventPlatformCarsInfoRequest> events;//	P	Events[]	浜嬩欢淇℃伅	鏄�	涓嶉檺
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
similarity index 69%
copy from server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java
copy to server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
index 2b796f3..9382d63 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
@@ -3,11 +3,11 @@
 import lombok.Data;
 
 @Data
-public class EventPlatCarstatusRequest {
+public class EventPlatformCarsRequest {
 
 //    private String  parkIndexCodes	;//	string	False	鍋滆溅搴撳敮涓�鏍囪瘑闆嗗悎  澶氫釜鍊间娇鐢ㄨ嫳鏂囬�楀彿鍒嗛殧锛屼笉瓒呰繃1000涓�
 
     private String   method	;//	String	鏂规硶鍚嶏紝鐢ㄤ簬鏍囪瘑鎶ユ枃鐢ㄩ��	鏄�	16	浜嬩欢鍥哄畾OnEventNotify
-    private EventParkParamRequest params	;//	Params	浜嬩欢鍙傛暟淇℃伅	鏄�	涓嶉檺	鍏蜂綋鍙傛暟淇℃伅
+    private EventPlatformCarsParamRequest params	;//	Params	浜嬩欢鍙傛暟淇℃伅	鏄�	涓嶉檺	鍏蜂綋鍙傛暟淇℃伅
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java
new file mode 100644
index 0000000..13d09a8
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class EventPlatformCarsStatusInfoRequest {
+    private String HPNo;// 1,杞﹂亾鍙�
+    private Integer plateScore;//: 80杞︾墝璇勫垎
+    private String motionStatus;//'leave',杩愬姩鐘舵��  enter#杩涘叆,leave#绂诲紑
+    private String plateNo;//'A12345',杞︾墝鍙�
+    private String vehicleDoorStatus;//'open',杞﹂棬鐘舵�伮� open-寮�闂紝close-鍏抽棬
+    private String stockStatus;//'rear',杞﹀ご杞﹀熬鐘舵�伮� 聽front#杞﹀ご,rear#杞﹀熬
+    private EventImageInfoRequest BackgroundImage;//鏈堝彴鑳屾櫙澶у浘
+    private EventImageInfoRequest PlatePicture;//杞︾墝鍥�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java
new file mode 100644
index 0000000..48c60f0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java
@@ -0,0 +1,28 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class EventPlatformDataRequest {
+    private List<EventPlatformStatusInfoRequest> HPWorkingStatus;//
+    private EventPlatformAttrInfoRequest targetAttrs;//
+   private Integer activePostCount;//1,
+   private Integer channelID;//1,
+   private String dataProcInterval;// 3private String ,
+   private String dataType;// HPWorkingStatusprivate String ,
+   private String dateTime;// 2021-07-16T18:57:22.000+08:00private String ,
+   private String deviceID;// 88private String ,
+   private String eventDescription;// handingPlatform working statusprivate String ,
+   private String eventState;// activeprivate String ,
+   private String eventType;// HPWorkingStatusprivate String ,
+   private String ipAddress;// 10.18.99.179private String ,
+   private String macAddress;// 58:50:ed:6d:f2:73private String ,
+   private String picUploadInterval;// 0private String ,
+   private String portNo;//8000,
+   private String recvTime;// 2021-07-16T18:56:18.645+08:00private String ,
+   private String sendTime;// 2021-07-16T18:56:18.648+08:00private String ,
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java
new file mode 100644
index 0000000..246ec64
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java
@@ -0,0 +1,20 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventPlatformInfoRequest {
+    private String  eventId;//	String	浜嬩欢鍞竴鏍囪瘑	鏄�	64
+    private String  srcIndex;//	String	浜嬩欢婧愮紪鍙凤紝鐗╃悊璁惧鏄祫婧愮紪鍙�	鏄�	64
+    private String  dateTime;//
+    private String  srcType;//	String	浜嬩欢婧愮被鍨�	鏄�	16
+    private Integer  eventType	;//Number	浜嬩欢绫诲瀷	鏄�
+    private String  srcName;//	String	浜嬩欢婧愬悕绉�	鍚�	64
+    private Integer   status	;//Number	浜嬩欢鐘舵��	鏄�		0-鐬椂1-寮�濮�2-鍋滄3-浜嬩欢鑴夊啿4-浜嬩欢鑱斿姩缁撴灉鏇存柊5-寮傛鍥剧墖涓婁紶
+    private Integer  timeout	;//Number	鑴夊啿瓒呮椂鏃堕棿	鏄�		鍗曚綅锛氱
+    private String  happenTime	;//String	浜嬩欢鍙戠敓鏃堕棿锛堣澶囨椂闂达級	鏄�	64
+    private String   srcParentIndex	;//String	浜嬩欢鍙戠敓鐨勪簨浠舵簮鐖惰澶囩紪鍙�	鍚�	64
+    private EventPlatformDataRequest data;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java
new file mode 100644
index 0000000..ce673a6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventPlatformParamRequest {
+
+
+    private String   sendTime;//	P	String	浜嬩欢浠庢帴鏀惰�咃紙绋嬪簭澶勭悊鍚庯級鍙戝嚭鐨勬椂闂�	鏄�	32	浜嬩欢鍙戦�佹椂闂�
+    private String    ability;//	P	String	浜嬩欢绫诲埆	鏄�	64	鏍囪瘑鍋滆溅鍦轰簨浠�
+    private List<String>  uids;//
+    private List<String>  clients;//
+    private Integer  dataProcInterval;//
+    private List<EventPlatformInfoRequest> events;//	P	Events[]	浜嬩欢淇℃伅	鏄�	涓嶉檺
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java
similarity index 70%
rename from server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java
rename to server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java
index 2b796f3..7cc950e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java
@@ -3,11 +3,11 @@
 import lombok.Data;
 
 @Data
-public class EventPlatCarstatusRequest {
+public class EventPlatformRequest {
 
 //    private String  parkIndexCodes	;//	string	False	鍋滆溅搴撳敮涓�鏍囪瘑闆嗗悎  澶氫釜鍊间娇鐢ㄨ嫳鏂囬�楀彿鍒嗛殧锛屼笉瓒呰繃1000涓�
 
     private String   method	;//	String	鏂规硶鍚嶏紝鐢ㄤ簬鏍囪瘑鎶ユ枃鐢ㄩ��	鏄�	16	浜嬩欢鍥哄畾OnEventNotify
-    private EventParkParamRequest params	;//	Params	浜嬩欢鍙傛暟淇℃伅	鏄�	涓嶉檺	鍏蜂綋鍙傛暟淇℃伅
+    private EventPlatformParamRequest params	;//	Params	浜嬩欢鍙傛暟淇℃伅	鏄�	涓嶉檺	鍏蜂綋鍙傛暟淇℃伅
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java
new file mode 100644
index 0000000..a8e2939
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.haikang.model.param.request.event.parks;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class EventPlatformStatusInfoRequest {
+   private Integer HPNo;// 1,杞﹂亾杞﹂亾鍙�
+   private Integer operationPeopleNum;// 0,浜烘暟缁熻
+   private String operationStatus;//  no ,浣滀笟鐘舵�� loading-瑁呰揣锛� unloading-鍗歌揣
+   private String parkingSpaceStatus;// 杞︿綅鐘舵�� no鏃犺溅 norma姝e父鏈夎溅
+   private String plateNo;// ,杞︾墝鍙�
+   private Integer rate;// 0,瑁呰浇鐜�
+   private String vehicleDoorStatus;// open,杞﹂棬鐘舵��  open-寮�闂紝close-鍏抽棬
+   private BigDecimal plateScore;// 90杞︾墝璇勫垎
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 2b59378..68ecacd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -9,6 +9,7 @@
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.respose.*;
+import com.doumee.core.utils.Constants;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -878,6 +879,24 @@
         return  null;
     }
     /**
+     *1.9.1鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken锛堝垎椤碉級
+     * @return
+     */
+    public  static  BaseResponse<String>   wxAccessToken(String configId,String tagId){
+        log.info("銆愭捣搴锋牴鎹井淇″叕浼楀彿淇℃伅鑾峰彇AccessToken銆�================寮�濮�====configId:"+configId+" && tagId:"+tagId);
+        try {
+            String res = HKTools.wxAccessToken(configId,tagId);
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<String>>(){};
+            BaseResponse<String>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋牴鎹井淇″叕浼楀彿淇℃伅鑾峰彇AccessToken銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *鏌ヨ璁垮鏉ヨ璁板綍锛堝凡鐧昏锛夛紙鍒嗛〉锛�
      * @return
      */
@@ -914,6 +933,28 @@
         return  null;
     }
     /**
+     *鑾峰彇宸ヤ綔鍙拌彍鍗曞厤瀵嗙櫥闄嗚皟鏁村湴鍧�
+     * @return
+     */
+    public  static  String   getMenuUrl(Integer type,String token){
+        String menuId = HKConstants.MenuPageId.zhaf;
+        if(Constants.equalsInteger(type,Constants.ONE)){
+            menuId = HKConstants.MenuPageId.wyhq;
+        }else  if(Constants.equalsInteger(type,Constants.TWO)){
+            menuId = HKConstants.MenuPageId.xzbg;
+        }else  if(Constants.equalsInteger(type,Constants.THREE)){
+            menuId = HKConstants.MenuPageId.yyzx;
+        }
+        log.info("銆愭捣搴疯幏鍙栧伐浣滃彴鑿滃崟鍏嶅瘑鐧婚檰璋冩暣鍦板潃銆�================寮�濮�====menuId:"+menuId+"==token:"+token);
+        try {
+            String res = HKTools.getMenuUrl(menuId,token);
+            return  res;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯幏鍙栧伐浣滃彴鑿滃崟鍏嶅瘑鐧婚檰璋冩暣鍦板潃銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *澧為噺缁勭粐鏌ヨ锛堝垎椤碉級
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformInfoRequest.java
new file mode 100644
index 0000000..1700d25
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformInfoRequest.java
@@ -0,0 +1,20 @@
+package com.doumee.core.wms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("WMS鍑哄叆搴撲綔涓氬崟缁戝畾鏈堝彴淇℃伅鍙傛暟")
+public class WmsOrderPlatformInfoRequest extends WmsBaseRequest {
+    @ApiModelProperty(value = "閫氱煡鍗曞彿" ,example = "1")
+    private String carrierBillCode;
+    @ApiModelProperty(value = "鏈堝彴缂栧彿" ,example = "1")
+    private String railwayNo;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformRequest.java
new file mode 100644
index 0000000..36ba227
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformRequest.java
@@ -0,0 +1,20 @@
+package com.doumee.core.wms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("WMS鍑哄叆搴撲綔涓氬崟缁戝畾鏈堝彴淇℃伅瀵硅薄")
+public class WmsOrderPlatformRequest extends WmsBaseRequest {
+    @ApiModelProperty(value = "鍗曞彿鏁版嵁瀵硅薄" )
+    private List<WmsOrderPlatformInfoRequest> data;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java
index 89f9764..1ac7965 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java
@@ -14,8 +14,8 @@
  */
 @Data
 @ApiModel("WMS鎺ュ彛澶勭悊杩斿洖鍙傛暟")
-public class WmsBaseResponse {
-    @ApiModelProperty(value = "杩斿洖鍙傛暟" ,example = "1")
-    private List<WmsBaseDataResponse> data;
-
+public class WmsBaseResponse<T> {
+    public static final String CODE_SUCCESS = "1";
+    @ApiModelProperty(value = "杩斿洖鍙傛暟"  )
+    private List<T> data;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryDataResponse.java
new file mode 100644
index 0000000..25e1c01
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryDataResponse.java
@@ -0,0 +1,24 @@
+package com.doumee.core.wms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("WMS鎺ュ彛澶勭悊杩斿洖data鍙傛暟")
+public class WmsInventoryDataResponse {
+
+    @ApiModelProperty(value = "鏄惁鎺ユ敹鎴愬姛 1鎴愬姛 -1 澶辫触" ,example = "1")
+    private String success;
+    @ApiModelProperty(value = "娑堟伅鎻忚堪" ,example = "1")
+    private String msgDescr;
+    @ApiModelProperty(value = "娑堟伅鎻忚堪" ,example = "1")
+    private List<WmsInventoryJsonResponse> json;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryJsonResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryJsonResponse.java
new file mode 100644
index 0000000..2d72b76
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryJsonResponse.java
@@ -0,0 +1,43 @@
+package com.doumee.core.wms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("WMS鎺ュ彛澶勭悊杩斿洖data鍙傛暟")
+public class WmsInventoryJsonResponse {
+
+    @ApiModelProperty(value = "鏄惁鎺ユ敹鎴愬姛 1鎴愬姛 -1 澶辫触" ,example = "1")
+    private String item_code;
+    @ApiModelProperty(value = "娑堟伅鎻忚堪" ,example = "1")
+    private String item_name;
+    @ApiModelProperty(value = "鍐呭璇︽儏闆嗗悎" ,example = "1")
+    private BigDecimal qty;
+    @ApiModelProperty(value = "鍐呭璇︽儏闆嗗悎" ,example = "1")
+    private String  supplier_code;
+    @ApiModelProperty(value = "g" ,example = "1")
+    private String  supplier_name;
+    @ApiModelProperty(value = "owner_code" ,example = "1")
+    private String  owner_code;
+    @ApiModelProperty(value = "owner_name" ,example = "1")
+    private String  owner_name;
+    @ApiModelProperty(value = "package_type" ,example = "1")
+    private String  package_type;
+    @ApiModelProperty(value = "package_name" ,example = "1")
+    private String  package_name;
+    @ApiModelProperty(value = "itemType_code" ,example = "1")
+    private String  itemType_code;
+    @ApiModelProperty(value = "ItemStatus_Production" ,example = "1")
+    private String  ItemStatus_Production;
+    @ApiModelProperty(value = "itemType_name" ,example = "1")
+    private String  itemType_name;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java
new file mode 100644
index 0000000..287cbc1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java
@@ -0,0 +1,87 @@
+package com.doumee.dao.admin.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/2/26 11:02
+ */
+@Data
+@ApiModel("PC绔伐浣滃彴鏁版嵁")
+public class PCWorkPlatformDataVO {
+
+    @ApiModelProperty(value = "浠婃棩鍦ㄥ洯浜烘暟")
+    private Long todayInParkUserNum;
+
+    @ApiModelProperty(value = "浠婃棩鍏ュ洯浜烘暟")
+    private Long todayInUserNum;
+
+    @ApiModelProperty(value = "浠婃棩绂诲洯浜烘暟")
+    private Long todayOutUserNum;
+
+
+    @ApiModelProperty(value = "鍦ㄥ洯璁垮浜烘暟")
+    private Long inParkVisitUserNum;
+
+    @ApiModelProperty(value = "璁垮浜烘")
+    private Long visitUserNum;
+
+    @ApiModelProperty(value = "绛剧浜烘")
+    private Long signLevelNum;
+
+
+    @ApiModelProperty(value = "鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁�")
+    private Long inParkLwUserNum;
+
+    @ApiModelProperty(value = "鍏ュ洯浜烘")
+    private Long lwUserInNum;
+
+    @ApiModelProperty(value = "鍑哄洯浜烘")
+    private Long lwUserOutNum;
+
+
+    @ApiModelProperty(value = "浠婃棩鍦ㄥ洯杞﹁締")
+    private Long todayInParkCarNum;
+
+    @ApiModelProperty(value = "鍏ュ洯杞︽")
+    private Long todayInCarNum;
+
+    @ApiModelProperty(value = "鍑哄洯杞︽")
+    private Long todayOutCarNum;
+
+
+
+
+
+    @ApiModelProperty(value = "璁垮浜哄憳")
+    private Long visitorCount;
+
+    @ApiModelProperty(value = "鍔冲姟浜哄憳")
+    private Long lwCount;
+
+    @ApiModelProperty(value = "鍦ㄥ満杞﹁締")
+    private Long presenceCarCount;
+
+    @ApiModelProperty(value = "棰勭害杞﹁締")
+    private Long visitorCarCount;
+
+    @ApiModelProperty(value = "闀挎湡杞﹁締")
+    private Long longCarCount;
+
+    @ApiModelProperty(value = "渚涘簲鍟嗘暟閲�")
+    private Long supplierCount;
+
+    @ApiModelProperty(value = "鍔冲姟鍏徃浜哄憳鏁�")
+    private List<Map<String,Object>> companyUsers;
+
+    @ApiModelProperty(value = "婊炵暀浜哄憳鏁版嵁")
+    private List<Map<String,Object>> retentionUsers;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java
new file mode 100644
index 0000000..a7ebd19
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformEvent;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/08/28 17:24
+ */
+public interface PlatformEventMapper extends BaseMapper<PlatformEvent> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
index 12e06bd..ff5947f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -69,7 +69,6 @@
 
     @ApiModelProperty(value = "棰勮鍒板満鏃堕棿")
     @ExcelColumn(name="棰勮鍒板満鏃堕棿")
-  
     private Date arriveDate;
 
     @ApiModelProperty(value = "鍏ュ簱绫诲瀷 0鏁存墭鐩� 1浠剁儫", example = "1")
@@ -140,6 +139,19 @@
     @TableField(exist = false)
     private String prefixUrl;
 
+    @ApiModelProperty(value = "棰勮鍒板満寮�濮嬫椂闂�")
+    @TableField(exist = false)
+    private Date arriveDateStart;
+
+    @ApiModelProperty(value = "棰勮鍒板満缁撴潫鏃堕棿")
+    @TableField(exist = false)
+    private Date arriveDateEnd;
+
+    @ApiModelProperty(value = "瀹℃壒浜哄悕绉�")
+    @TableField(exist = false)
+    private String auditName;
+
+
     @ApiModelProperty(value = "瀹℃壒淇℃伅鏁版嵁")
     @TableField(exist = false)
     private ApproveDataVO approveDateVO;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java
new file mode 100644
index 0000000..3f39246
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java
@@ -0,0 +1,177 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃
+ * @author 姹熻箘韫�
+ * @date 2024/08/28 17:24
+ */
+@Data
+@ApiModel("鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃")
+@TableName("`platform_event`")
+public class PlatformEvent {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name="涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "浜嬩欢鍞竴鏍囪瘑锛屽悓涓�浜嬩欢鑻ヤ笂鎶ュ娆★紝鍒欎笂鎶ヤ簨浠剁殑eventId鐩稿悓")
+    @ExcelColumn(name="浜嬩欢鍞竴鏍囪瘑锛屽悓涓�浜嬩欢鑻ヤ笂鎶ュ娆★紝鍒欎笂鎶ヤ簨浠剁殑eventId鐩稿悓")
+    private String eventId;
+
+    @ApiModelProperty(value = "浜嬩欢绫诲瀷")
+    @ExcelColumn(name="浜嬩欢绫诲瀷")
+    private String eventType;
+    @ApiModelProperty(value = "浜嬩欢绫诲瀷(data绾э級")
+    @ExcelColumn(name="浜嬩欢绫诲瀷锛坉ata绾э級")
+    private String dataEventType;
+
+    @ApiModelProperty(value = "浜嬩欢婧愮被鍨嬶紝濡傗�渁csDevice鈥�")
+    @ExcelColumn(name="浜嬩欢婧愮被鍨嬶紝濡傗�渁csDevice鈥�")
+    private String srcType;
+
+    @ApiModelProperty(value = "浜嬩欢鍙戠敓鏃堕棿锛堣澶囨椂闂�")
+    @ExcelColumn(name="浜嬩欢鍙戠敓鏃堕棿锛堣澶囨椂闂�")
+    private String happenTime;
+
+    @ApiModelProperty(value = "闂ㄧ鐐瑰敮涓�鎺ュ叆缂栫爜")
+    @ExcelColumn(name="闂ㄧ鐐瑰敮涓�鎺ュ叆缂栫爜")
+    private String srcIndex;
+
+    @ApiModelProperty(value = "闂ㄧ鍚嶇О")
+    @ExcelColumn(name="闂ㄧ鍚嶇О")
+    private String srcName;
+
+    @ApiModelProperty(value = "浜嬩欢鐘舵��,0-鐬椂             1-寮�濮�             2-鍋滄             4-浜嬩欢鑱斿姩缁撴灉鏇存柊             5-浜嬩欢鍥剧墖寮傛涓婁紶", example = "1")
+    @ExcelColumn(name="浜嬩欢鐘舵��,0-鐬椂             1-寮�濮�             2-鍋滄             4-浜嬩欢鑱斿姩缁撴灉鏇存柊             5-浜嬩欢鍥剧墖寮傛涓婁紶")
+    private Integer status;
+
+    @ApiModelProperty(value = "鑴夊啿瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝鐬椂浜嬩欢姝ゅ瓧娈靛~0", example = "1")
+    @ExcelColumn(name="鑴夊啿瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝鐬椂浜嬩欢姝ゅ瓧娈靛~0")
+    private Integer timeout;
+
+    @ApiModelProperty(value = "鏁版嵁绫诲瀷", example = "1")
+    @ExcelColumn(name="鏁版嵁绫诲瀷")
+    private String dataType;
+
+    @ApiModelProperty(value = "鍙戦�佹椂闂�", example = "1")
+    @ExcelColumn(name="鍙戦�佹椂闂�")
+    private String sendTime;
+
+    @ApiModelProperty(value = "浜嬩欢鍙戠敓鏃ユ湡", example = "1")
+    @ExcelColumn(name="浜嬩欢鍙戠敓鏃ユ湡")
+    private String dateTime;
+
+    @ApiModelProperty(value = "ip鍦板潃")
+    @ExcelColumn(name="ip鍦板潃")
+    private String ipAddress;
+
+    @ApiModelProperty(value = "ipv6鍦板潃", example = "1")
+    @ExcelColumn(name="ipv6鍦板潃")
+    private String ipv6Address;
+
+    @ApiModelProperty(value = "绔彛", example = "1")
+    @ExcelColumn(name="绔彛")
+    private Integer portNo;
+
+    @ApiModelProperty(value = "鍗忚", example = "1")
+    @ExcelColumn(name="鍗忚")
+    private String protocol;
+
+    @ApiModelProperty(value = "mac鍦板潃")
+    @ExcelColumn(name="mac鍦板潃")
+    private String macAddress;
+
+    @ApiModelProperty(value = "娓犻亾缂栧彿", example = "1")
+    @ExcelColumn(name="娓犻亾缂栧彿")
+    private Integer channelId;
+
+    @ApiModelProperty(value = "娲诲姩鍙戦�佹鏁�", example = "1")
+    @ExcelColumn(name="娲诲姩鍙戦�佹鏁�")
+    private Integer activePostCount;
+
+    @ApiModelProperty(value = "浜嬩欢鐘舵��", example = "1")
+    @ExcelColumn(name="浜嬩欢鐘舵��")
+    private String eventState;
+
+    @ApiModelProperty(value = "浜嬩欢鎻忚堪")
+    @ExcelColumn(name="浜嬩欢鎻忚堪")
+    private String eventDescription;
+
+    @ApiModelProperty(value = "娓犻亾鍚嶇О", example = "1")
+    @ExcelColumn(name="娓犻亾鍚嶇О")
+    private String channelName;
+
+    @ApiModelProperty(value = "璁惧缂栫爜", example = "1")
+    @ExcelColumn(name="璁惧缂栫爜")
+    private String deviceId;
+
+    @ApiModelProperty(value = "杞﹂亾鍙�")
+    @ExcelColumn(name="杞﹂亾鍙�")
+    private String hpno;
+
+    @ApiModelProperty(value = "杩愬姩鐘舵�伮� enter#杩涘叆,leave#绂诲紑")
+    @ExcelColumn(name="杩愬姩鐘舵�伮� enter#杩涘叆,leave#绂诲紑")
+    private String motionStatus;
+
+    @ApiModelProperty(value = "杞︾墝鍙�", example = "1")
+    @ExcelColumn(name="杞︾墝鍙�")
+    private String plateNo;
+
+    @ApiModelProperty(value = "杞﹂棬鐘舵�伮� open-寮�闂紝close-鍏抽棬", example = "1")
+    @ExcelColumn(name="杞﹂棬鐘舵�伮� open-寮�闂紝close-鍏抽棬")
+    private String vehicleDoorStatus;
+
+    @ApiModelProperty(value = "杞﹀ご杞﹀熬鐘舵�伮� 聽front#杞﹀ご,rear#杞﹀熬", example = "1")
+    @ExcelColumn(name="杞﹀ご杞﹀熬鐘舵�伮� 聽front#杞﹀ご,rear#杞﹀熬")
+    private String stockStatus;
+
+    @ApiModelProperty(value = "杞︾墝璇勫垎[0-100]", example = "1")
+    @ExcelColumn(name="杞︾墝璇勫垎[0-100]")
+    private Integer plateScore;
+
+    @ApiModelProperty(value = "鏈堝彴鑳屾櫙澶у浘", example = "1")
+    @ExcelColumn(name="鏈堝彴鑳屾櫙澶у浘")
+    private String backgroundImageContent;
+
+    @ApiModelProperty(value = "杞︾墝鍥�", example = "1")
+    @ExcelColumn(name="杞︾墝鍥�")
+    private String platePictureContent;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index cce09ae..8125540 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -59,8 +59,8 @@
     @ExcelColumn(name="澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�", example = "1")
-    @ExcelColumn(name="鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�")
+    @ApiModelProperty(value = "鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�" , example = "1")
+    @ExcelColumn(name="鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�")
     private Integer status;
 
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@@ -98,6 +98,21 @@
     @ApiModelProperty(value = "绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌", example = "1")
     @ExcelColumn(name="绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌")
     private Integer singType;
+    @ApiModelProperty(value = "閫氱煡WMS浣滀笟缁戝畾鏈堝彴鏃堕棿")
+    @ExcelColumn(name="閫氱煡WMS浣滀笟缁戝畾鏈堝彴鏃堕棿")
+    private Date wmsSendDate;
+    @ApiModelProperty(value = "閫氱煡WMS浣滀笟缁戝畾鏈堝彴鐘舵�� 0寰呴�氱煡 1閫氱煡鎴愬姛 2閫氱煡澶辫触", example = "1")
+    @ExcelColumn(name="閫氱煡WMS浣滀笟缁戝畾鏈堝彴鐘舵�� 0寰呴�氱煡 1閫氱煡鎴愬姛 2閫氱煡澶辫触")
+    private Integer wmsSendStatus;
+    @ApiModelProperty(value = "閫氱煡WMS浣滀笟缁戝畾鏈堝彴绶ㄧ⒓", example = "1")
+    @ExcelColumn(name="閫氱煡WMS浣滀笟缁戝畾鏈堝彴绶ㄧ⒓")
+    private String wmsSendPlatformCode;
+    @ApiModelProperty(value = "閫氱煡WMS浣滀笟缁戝畾鏈堝彴澶囨敞", example = "1")
+    @ExcelColumn(name="閫氱煡WMS浣滀笟缁戝畾鏈堝彴澶囨敞")
+    private String wmsSendInfo;
+    @ApiModelProperty(value = "閫氱煡WMS浣滀笟缁戝畾鏈堝彴娆℃暟", example = "1")
+    @ExcelColumn(name="閫氱煡WMS浣滀笟缁戝畾鏈堝彴娆℃暟")
+    private Integer wmsSendNum;
 
     @ApiModelProperty(value = "绛惧埌璺濈(绫筹級", example = "1")
     @ExcelColumn(name="绛惧埌璺濈(绫筹級")
@@ -191,12 +206,17 @@
 
     @ApiModelProperty(value = "杞﹁締绂诲巶涓嬪彂鏃堕棿")
     @ExcelColumn(name="杞﹁締绂诲巶涓嬪彂鏃堕棿")
-  
     private Date outHkdate;
 
     @ApiModelProperty(value = "杞﹁締绂诲巶涓嬪彂澶囨敞")
     @ExcelColumn(name="杞﹁締绂诲巶涓嬪彂澶囨敞")
     private String outHkinfo;
+
+
+    @ApiModelProperty(value = "绂诲満涓嬪彂鎿嶄綔浜�", example = "1")
+    @ExcelColumn(name="绂诲満涓嬪彂鎿嶄綔浜�")
+    private Integer outUserId;
+
 
     @ApiModelProperty(value = "杞﹁締杩涘巶涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触", example = "1")
     @ExcelColumn(name="杞﹁締杩涘巶涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触")
@@ -262,6 +282,11 @@
     @ExcelColumn(name="鎬昏繍杈撻噺")
     private BigDecimal totalNum;
 
+    @ApiModelProperty(value = "纭浠诲姟鏃堕棿")
+    @ExcelColumn(name="纭浠诲姟鏃堕棿")
+    private Date confirmTaskDate;
+
+
     @ApiModelProperty(value = "鍓嶆柟鎺掗槦鏁伴噺", example = "1")
     @TableField(exist = false)
     private Integer lineUpNum;
@@ -277,6 +302,11 @@
     @ApiModelProperty(value = "浣滀笟鏈堝彴鍚嶇О")
     @TableField(exist = false)
     private String platformName ;
+
+
+    @ApiModelProperty(value = "绂诲満涓嬪彂鎿嶄綔浜哄悕绉�", example = "1")
+    @TableField(exist = false)
+    private String outUserName;
 
     @ApiModelProperty(value = "wms涓氬姟涓婚敭")
     @TableField(exist = false)
@@ -313,11 +343,34 @@
     @ApiModelProperty(value = "鏀惰揣鍦帮紙鐩殑鍦帮級")
     @TableField(exist = false)
     private String repertotyAddress;
+    @ApiModelProperty(value = "wms鏈堝彴缂栧彿")
+    @TableField(exist = false)
+    private String platformWmsCode;
 
     @ApiModelProperty(value = "鍙彿绫诲瀷锛�1=鍙彿鍏ュ洯 锛� 2=鏈堝彴鍙彿 锛� 3=鎺掗槦鎯呭喌", example = "1")
     @TableField(exist = false)
     private Integer callType;
 
+    @ApiModelProperty(value = "浣滀笟绫诲瀷 0=瀹夋嘲鐗╂祦杞︿换鍔★紱1=甯傚叕鍙歌溅", example = "1")
+    @TableField(exist = false)
+    private Integer jobType;
+
+    @ApiModelProperty(value = "寮�濮嬩换鍔℃椂闂磋捣")
+    @TableField(exist = false)
+    private Date beginWorkDateStart;
+
+    @ApiModelProperty(value = "寮�濮嬩换鍔℃椂闂存")
+    @TableField(exist = false)
+    private Date beginWorkDateEnd;
+
+    @ApiModelProperty(value = "澶氱姸鎬佹煡璇� 澶氫釜浠�,鍒嗗壊")
+    @TableField(exist = false)
+    private String queryStatus;
+
+    @ApiModelProperty(value = "鐢靛瓙閿佺姸鎬侊細0=鏈笂閿� 1=涓嶅垎涓婇攣 2=鍏ㄩ儴涓婇攣")
+    @TableField(exist = false)
+    private Integer  lockStatus;
+
     public void dealTime(){
         if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
                 || Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
index ba79ab3..f4d58da 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -50,14 +50,20 @@
     @ApiModelProperty(value = "0鏈畬鎴� 1宸插畬鎴� 2宸插彇娑�", example = "1")
     @ExcelColumn(name="鐘舵�� 0鏈畬鎴� 1宸插畬鎴� 2宸插彇娑�")
     private Integer status;
+    @ApiModelProperty(value = "涓婇攣鐘舵�� 0鏈笂閿� 1宸蹭笂閿�", example = "1")
+    @ExcelColumn(name="涓婇攣鐘舵�� 0鏈笂閿� 1宸蹭笂閿�")
+    private Integer lockStatus;
 
     @ApiModelProperty(value = "澶囨敞")
     @ExcelColumn(name="澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "琛屾暟鎹紪鐮侊紙鍏宠仈platform_wms_job)", example = "1")
+    @ApiModelProperty(value = "琛屾暟鎹紪鐮侊紙鍏宠仈platform_job)", example = "1")
     @ExcelColumn(name="琛屾暟鎹紪鐮侊紙鍏宠仈platform_wms_job)")
     private Integer jobId;
+    @ApiModelProperty(value = "琛屾暟鎹紪鐮侊紙鍏宠仈platform_wms_job)", example = "1")
+    @ExcelColumn(name="琛屾暟鎹紪鐮侊紙鍏宠仈platform_wms_job)")
+    private Integer wmsJobId;
 
     @ApiModelProperty(value = "閫氱煡鍗曞彿")
     @ExcelColumn(name="閫氱煡鍗曞彿")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java
new file mode 100644
index 0000000..a324ca1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.openapi.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+@ApiModel("娴峰悍澶у睆BaseToken")
+public class HkBaseTokenRequest {
+
+    @ApiModelProperty(value = "token")
+    private String token;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java
index f180ed7..dbbedf9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java
@@ -11,7 +11,7 @@
  * @create 2023/12/7 11:19
  */
 @Data
-@ApiModel("銆愭湀鍙般�戞湀鍙板綋鍓嶄綔涓氫俊鎭垪琛ㄨ姹傚弬鏁�")
+@ApiModel("銆愭湀鍙般�戞湀鍙板綋鍓嶄綔涓氫俊鎭鎯呰姹傚弬鏁�")
 public class PlatformDataInfoRequest {
     @ApiModelProperty(value = "瀹夐槻骞冲彴鏈堝彴涓婚敭", example = "1")
     private String id;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java
index 099ded7..0a46828 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java
@@ -13,7 +13,7 @@
  * @create 2023/12/7 11:19
  */
 @Data
-@ApiModel("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡姹傚弬鏁�")
+@ApiModel("銆愭湀鍙般�戞湀鍙板悇鐘舵�佹暟閲忕粺璁¤姹傚弬鏁�")
 public class PlatformNumByStatusRequest {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
index 816c6db..65c78c0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
@@ -18,8 +18,10 @@
  */
 @Data
 @ApiModel("鏈湀銆佷笂鏈堛�佸幓骞村悓鏈堢敤姘撮噺璇锋眰鍙傛暟")
-public class WaterByMonthRequest {
+public class WaterByMonthRequest extends HkBaseTokenRequest{
+
     @ApiModelProperty(value = "骞存湀淇℃伅锛屾牸寮忥細yyyy-MM",example = "2024-08")
     @JsonFormat(pattern = "yyyy-MM")
     private Date timeInfo;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java
new file mode 100644
index 0000000..1b3b5cb
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java
@@ -0,0 +1,22 @@
+package com.doumee.dao.openapi.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+@ApiModel("銆愭湀鍙般�戣繎12涓湀淇℃伅鍒楄〃")
+public class PlatformLastMonthListResponse {
+    @ApiModelProperty(value = "鏃堕棿 鏍煎紡锛歽yyy-MM", example = "2024-12")
+    private String timeInfo;
+    @ApiModelProperty(value = "鐢ㄩ噺", example = "1")
+    private BigDecimal num;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
index f2f3b8e..b2b94bb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
@@ -11,7 +11,7 @@
  * @create 2023/12/7 11:19
  */
 @Data
-@ApiModel("銆愭湀鍙般�戞寜鐘舵�佺粺璁℃湀鍙版暟閲�")
+@ApiModel("銆愭湀鍙般�戞湀鍙板悇鐘舵�佹暟閲忕粺璁¤繑鍥炲弬鏁�")
 public class PlatformNumByStatusResponse {
 
     @ApiModelProperty(value = "浣跨敤涓暟閲�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java
new file mode 100644
index 0000000..b4dba48
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.dao.business.model.PlatformJob;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("鏈堝彴浠诲姟鏁版嵁")
+public class PlatformGroupWorkVO {
+
+    @ApiModelProperty(value = "绛夊緟鏁伴噺")
+    private Long waitNum ;
+
+    @ApiModelProperty(value = "寮傚父鏁伴噺")
+    private Long exceptionNum ;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
index 74fc2e3..2a659c6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
@@ -21,9 +21,14 @@
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
 
-    @ApiModelProperty(value = "瀹℃壒鐘舵��")
+    @ApiModelProperty(value = "瀹℃牳鐘舵�� 0寰呭鏍� 1瀹℃壒涓�  2瀹℃牳閫氳繃 3瀹℃牳涓嶉�氳繃 4鍙栨秷 5涓嬪彂鎴愬姛 6涓嬪彂澶辫触 7鎷滆涓� 8宸茬绂�")
     private Integer status;
 
+    @ApiModelProperty(value = "涓氬姟瀹℃牳鐘舵�� 0寰呭鏍� 1瀹℃壒涓�  2瀹℃牳閫氳繃 3瀹℃牳涓嶉�氳繃 4鍙栨秷 ", example = "1")
+    @ExcelColumn(name="瀹℃牳鐘舵�� 0寰呭鏍� 1瀹℃壒涓�  2瀹℃牳閫氳繃 3瀹℃牳涓嶉�氳繃 4鍙栨秷 ")
+    private Integer businessStatus;
+
+
     @ApiModelProperty(value = "琚浜哄悕绉�")
     private String visitUserName;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
index e6e7570..a161b3e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
@@ -117,4 +117,13 @@
     ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId);
 
     void approved(ApproveDTO approveDTO);
+
+    /**
+     * 鏍规嵁涓氬姟涓婚敭鏌ヨ 瀹℃壒浜哄悕绉�
+     * @param businessId
+     * @param businessType
+     * @return
+     */
+    String getApproveUserName(Integer businessId,Integer businessType);
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java
new file mode 100644
index 0000000..21e4231
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.PlatformEvent;
+import java.util.List;
+
+/**
+ * 鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/08/28 17:24
+ */
+public interface PlatformEventService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformEvent 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformEvent platformEvent);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformEvent 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformEvent platformEvent);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformEvent 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformEvent platformEvent);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformEvents 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformEvent> platformEvents);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformEvent
+     */
+    PlatformEvent findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformEvent 瀹炰綋瀵硅薄
+     * @return PlatformEvent
+     */
+    PlatformEvent findOne(PlatformEvent platformEvent);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformEvent 瀹炰綋瀵硅薄
+     * @return List<PlatformEvent>
+     */
+    List<PlatformEvent> findList(PlatformEvent platformEvent);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformEvent>
+     */
+    PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformEvent 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformEvent platformEvent);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
index 1b843fc..f558b09 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
@@ -5,6 +5,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.PlatformGroup;
 import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformGroupWorkVO;
 import com.doumee.dao.web.response.PlatformWorkVO;
 
 import java.util.List;
@@ -110,6 +111,11 @@
     List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo);
 
 
-
+    /**
+     * 鑾峰彇鏈堝彴缁� 绛夊緟涓庡紓甯告暟鎹�
+     * @param platformGroupId
+     * @return
+     */
+    PlatformGroupWorkVO getPlatformGroupWork(Integer platformGroupId);
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index 483569a..d82cd9f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -36,6 +36,7 @@
      */
     void deleteById(Integer id);
 
+    void delete(Integer id);
     /**
      * 鍒犻櫎
      *
@@ -181,6 +182,11 @@
     void finishWork(JobOperateDTO jobOperateDTO);
 
     /**
+     * 鎵嬪姩鎺堟潈杞﹁締绂诲満
+     * @param jobOperateDTO
+     */
+    void powerLevel(JobOperateDTO jobOperateDTO);
+    /**
      * 鑾峰彇鏈堝彴涓嬬殑浠诲姟淇℃伅
      * @param groupId
      * @param loginUserInfo
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java
index a04670b..ebd0ed7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java
@@ -1,12 +1,10 @@
 package com.doumee.service.business;
 
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
 import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
 import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
 import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
-import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformJob;
 
 import java.util.List;
 
@@ -18,6 +16,13 @@
 public interface WmsService {
 
     /**
+     * 鍑哄叆搴撲綔涓氬垎閰嶆湀鍙�
+     * @return WmsBaseResponse
+     */
+    WmsBaseResponse orderPlatformBind(PlatformJob job);
+    WmsBaseResponse getInventoryList();
+    void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type);
+    /**
      * 鍏ュ簱鍗曟壒閲忛�氱煡
      * @param list 鍙傛暟
      * @return WmsBaseResponse
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index 4802f9f..1bbc12c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -2,9 +2,7 @@
 
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.*;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
@@ -90,13 +88,13 @@
     void syncMemberDelData();
     String getServiceUrl(HKGetServiceLoginUrlRequest param);
 
-    void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response);
-
-    void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response);
 
     String syncHkLed(Device param);
 
     String syncHkBroadcast(Device param);
     String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response);
 
+    String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response);
+
+    String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index 9cef87e..31bb57e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -478,7 +478,7 @@
             List<String> memberNameList =memberList.stream().map(m->m.getName()).collect(Collectors.toList());
             String memberNames = String.join(",",memberNameList);
             Integer noticeType = Constants.approveTypeToNoticeType(approveTempl.getType());
-            String title = "銆愯瀹㈢敵璇枫�戠敵璇蜂汉 - ";
+            String title = "[璁垮鐢宠]鐢宠浜�-";
             Map<String,Object> jsonMap = new HashMap<>();
             for (int j = 0; j < memberList.size(); j++) {
                 Member member = memberList.get(j);
@@ -540,8 +540,8 @@
                 approve.setTemplatId(approveTempl.getId());
                 approve.setChekorId(memberId);
                 approve.setStatus(i==0?Constants.ONE:Constants.ZERO);
-                approve.setStatusInfo(i==0?"瀹℃壒涓�":"寰呭鎵�");
-                approve.setTitle("瀹℃壒浜�");
+                approve.setStatusInfo(i==0?"瀹℃壒涓�":"澶勭悊涓�");
+                approve.setTitle(StringUtils.isBlank(approveParam.getRemark())?"瀹℃壒涓�":approveParam.getRemark());
                 approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO);
                 approve.setObjId(businessId);
                 approve.setLevel(i+1);
@@ -577,7 +577,7 @@
             if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)){
                 title = title + visits.getName();
             }else{
-                title = "銆愯瀹㈡姤澶囥�戠敵璇蜂汉 - " + visits.getName();
+                title = "[璁垮鎶ュ]鐢宠浜�-" + visits.getName();
             }
             jsonMap.put("name", "璁块棶浜�:" + visits.getCompanyName() + " - " + visits.getReceptMemberName());
             jsonMap.put("sTime", "鍏ュ洯鏃堕棿:" + DateUtil.DateToStr(visits.getStarttime() , "yyyy-MM-dd HH:mm"));
@@ -598,7 +598,7 @@
             if(Objects.isNull(carUseBook)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌涓氬姟鏁版嵁淇℃伅");
             }
-            title = "銆愮敤杞︾敵璇枫�戠敵璇蜂汉 - " + carUseBook.getMemberName();
+            title = "[鐢ㄨ溅鐢宠]鐢宠浜�-" + carUseBook.getMemberName();
             jsonMap.put("name", "鐢宠浜�:" + carUseBook.getCompanyName() + " - " + carUseBook.getMemberName());
             jsonMap.put("sTime", "寮�濮嬫椂闂�:" + DateUtil.DateToStr(carUseBook.getStartTime() , "yyyy-MM-dd HH:mm"));
             jsonMap.put("eTime", "缁撴潫鏃堕棿:" + DateUtil.DateToStr(carUseBook.getEndTime() , "yyyy-MM-dd HH:mm"));
@@ -610,7 +610,7 @@
             if(Objects.isNull(platformBooks)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌涓氬姟鏁版嵁淇℃伅");
             }
-            title = "銆愮墿娴佽溅鍏ュ洯棰勭害銆戠敵璇蜂汉 - " + platformBooks.getDriverName();
+            title = "[鐗╂祦杞﹀叆鍥绾鐢宠浜�-" + platformBooks.getDriverName();
             jsonMap.put("inType", "鍏ュ簱绫诲瀷锛�"+(Constants.equalsInteger(platformBooks.getInType(),Constants.ZERO)?"鏁存墭鐩�":"浠剁儫"));
             jsonMap.put("totalNum", "鎬昏繍杈撻噺锛�"+platformBooks.getTotalNum()+"涓囨敮");
             jsonMap.put("arriveDate", "鍒板満鏃堕棿锛�" + DateUtil.DateToStr(platformBooks.getArriveDate() , "yyyy-MM-dd HH:mm"));
@@ -802,7 +802,7 @@
     private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) {
         List<Approve> list = new ArrayList<>();
         if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){
-            level.setApproveType(Constants.ZERO);
+            level.setApproveType(Constants.TWO);
             //濡傛灉鏄崟浜哄鎵�
             list.add(level);
             return list;
@@ -829,11 +829,17 @@
                 waitModel.setType(Constants.ZERO);
                 waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"));
                 waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO);
-                waitModel.setStatusInfo("澶勭悊涓�");
-                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
-                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
-                    waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
+                    waitModel.setStatusInfo("寰呭鐞�");
+                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.auditIng)){
+                    waitModel.setStatusInfo("澶勭悊涓�");
                 }
+
+                waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+//                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
+//                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
+//                    waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+//                }
                 if(CollectionUtils.isNotEmpty(waitList)){
                     waitModel.setCreateDate(waitList.get(Constants.ZERO).getCreateDate());
                 }
@@ -848,15 +854,17 @@
         }else {
             if((waitList.size()> 0 || otherPassList.size()>0)){
                 Approve waitModel = new Approve();
-                waitModel.setApproveType(Constants.ONE);
+                waitModel.setApproveType(Constants.ZERO);
                 if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
-                    waitModel.setStatus(Constants.approveStatus.pass);
+                    waitModel.setStatus(level.getStatus());
                     waitModel.setType(Constants.ONE);
                     waitModel.setTitle("瀹℃壒浜猴紙鎶勯�佹垨绛惧鎵逛汉锛�");
                 }else{
+                    waitModel.setStatus(level.getStatus());
                     waitModel.setType(Constants.ZERO);
-                    waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
-                    waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
+                    //waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
+                    waitModel.setTitle(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
+
                 }
                 List<Approve> approveList = new ArrayList<>();
                 approveList.addAll(waitList);
@@ -870,7 +878,11 @@
                 if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.pass)){
                     waitModel.setMemberName("宸叉妱閫�"+ approveList.size() +"浜�");
                 }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
-                    waitModel.setMemberName("澶勭悊涓�");
+                    waitModel.setMemberName(waitList.size() +"浜烘垨绛�");
+                    waitModel.setStatusInfo("寰呭鐞�");
+                }else{
+                    waitModel.setMemberName(waitList.size() +"浜烘垨绛�");
+                    waitModel.setStatusInfo("澶勭悊涓�");
                 }
                 waitModel.setApproveList(approveList);
                 list.add(waitModel);
@@ -1050,6 +1062,23 @@
         return Constants.ZERO;
     }
 
+    @Override
+    public String getApproveUserName(Integer businessId,Integer businessType){
+         List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class,new MPJLambdaWrapper<Approve>()
+                 .selectAll(Approve.class)
+                 .selectAs(Member::getName,Approve::getMemberName)
+                 .leftJoin(Member.class,Member::getId,Approve::getChekorId)
+                .eq(Approve::getObjId,businessId)
+                .eq(Approve::getObjType,businessType)
+                .eq(Approve::getType,Constants.ZERO)
+                .eq(Approve::getStatus,Constants.approveStatus.auditIng)
+        );
+         if(CollectionUtils.isNotEmpty(approveList)){
+             List<String> names = approveList.stream().map(m->m.getMemberName()).collect(Collectors.toList());
+             return String.join(",",names);
+         }
+         return null;
+    }
 
 
 
@@ -1146,7 +1175,7 @@
             noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                     .set(Notices::getEditDate,new Date())
                     .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
-                    .set(Notices::getInfo,"瀹℃壒鏈�氳繃")
+                    .set(Notices::getInfo,"宸叉嫆缁�")
                     .set(Notices::getReaded,Constants.ONE)
                     .set(Notices::getParam2,Constants.TWO)
                     .set(Notices::getStatus,Constants.ONE)
@@ -1159,7 +1188,7 @@
                         .set(Notices::getSendacopy,Constants.ONE)
                         .set(Notices::getStatus,Constants.ONE)
                         .set(Notices::getParam2,Constants.TWO)
-                        .set(Notices::getInfo,"瀹℃壒鏈�氳繃")
+                        .set(Notices::getInfo,"宸叉嫆缁�")
                         .eq(Notices::getObjId,notices.getObjId())
                         .eq(Notices::getObjType,notices.getObjType())
                         .eq(Notices::getReaded,Constants.ZERO)
@@ -1208,8 +1237,6 @@
                     if(Objects.nonNull(visits)){
                         if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                              visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
-                        }else{
-                            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌涓氬姟鏁版嵁瀵硅薄!璇峰埛鏂伴噸璇�");
                         }
                     }
 
@@ -1271,6 +1298,7 @@
                 .set(Notices::getEditDate,new Date())
                 .set(Notices::getReaded,Constants.ONE)
                 .set(Notices::getStatus,Constants.ONE)
+                .set(Notices::getInfo,Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?"宸查�氳繃":"宸叉嫆缁�")
                 .set(dealBusinessBean,Notices::getParam2,Constants.ONE)
                 .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                 .eq(Notices::getId,notices.getId())
@@ -1312,14 +1340,14 @@
         String info = "";
         List<String> memberNameList = Arrays.asList(memberNames.split(","));
         if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
-            info = "寰� "+memberNameList.get(0)+" 澶勭悊涓�";
+            info = "寰�"+memberNameList.get(0)+"澶勭悊涓�";
         }else{
-            info = "寰� "+memberNameList.get(0)+" 绛�"+memberNameList.size()+"浜哄鐞嗕腑";
+            info = "寰�"+memberNameList.get(0)+"绛�"+memberNameList.size()+"浜哄鐞嗕腑";
         }
         //鏇存柊璇ヤ笟鍔℃暟鎹殑鎵�鏈夎褰曚俊鎭�
         noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                         .set(!dealBusinessBean,Notices::getInfo,info)
-                        .set(dealBusinessBean,Notices::getInfo,"瀹℃壒閫氳繃")
+                        .set(dealBusinessBean,Notices::getInfo,"宸查�氳繃")
                         .set(Notices::getParam5,memberNames)
                         .eq(Notices::getObjId,notices.getObjId())
                         .eq(Notices::getObjType,notices.getObjType()));
@@ -1335,7 +1363,7 @@
                     copyNotices.setEditDate(new Date());
                     copyNotices.setParam2("2");
                     copyNotices.setParam3("");
-                    copyNotices.setInfo("瀹℃壒閫氳繃");
+                    copyNotices.setInfo("宸查�氳繃");
                     copyNotices.setUserId(copyApprove.getChekorId());
                     copyNotices.setStatus(Constants.ZERO);
                     copyNotices.setSendacopy(Constants.ONE);
@@ -1378,9 +1406,9 @@
             notices.setParam5(memberNames);
             notices.setRemark(nextDealApprove.getMemberName());
             if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
-                notices.setInfo("寰� "+memberNameList.get(0)+" 澶勭悊涓�");
+                notices.setInfo("寰�"+memberNameList.get(0)+"澶勭悊涓�");
             }else{
-                notices.setInfo("寰� "+memberNameList.get(0)+" 绛�"+memberNameList.size()+"浜哄鐞嗕腑");
+                notices.setInfo("寰�"+memberNameList.get(0)+"绛�"+memberNameList.size()+"浜哄鐞嗕腑");
             }
             noticesJoinMapper.insert(newNotices);
         }
@@ -1400,6 +1428,7 @@
             visits.setEditDate(new Date());
             visits.setEditor(approveDTO.getLoginUserInfo().getMemberId());
             visitsMapper.updateById(visits);
+
         }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                 Constants.approveObjectType.unCityUseCar)){
             this.updDriver(approveDTO,approve,true);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
index 9150d38..b3b0653 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
@@ -27,6 +27,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 瀹℃壒妯$増淇℃伅琛⊿ervice瀹炵幇
@@ -99,7 +100,7 @@
                 param.setType(Constants.formatIntegerNum(param.getType()));
                 param.setAddrParam(Constants.formatIntegerNum(param.getAddrParam()));
                 param.setDriverParam(Constants.formatIntegerNum(param.getDriverParam()));
-                param.setApproveType(Constants.formatIntegerNum(param.getApproveType()));
+                param.setApproveType(Objects.isNull(param.getApproveType())?Constants.TWO:param.getApproveType());
                 level ++ ;
             }
             //鍏堟竻闄ゅ師鏉ユ墍鏈夌殑灏遍櫔閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 3617b81..0992819 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -91,11 +91,9 @@
     public List<Device> findIdAndNameList(Device param) {
         LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>(param);
         wrapper.select(Device::getId, Device::getName, Device::getDoorName,Device::getRegionPathName, Device::getRegionName);
-        if(null != param.getType() && null != param.getIsdeleted() && null != param.getHkStatus()) {
-            wrapper.eq(Device::getType,param.getType())
-                   .eq(Device::getIsdeleted,param.getIsdeleted())
-                   .eq(Device::getHkStatus,param.getHkStatus());
-        }
+        wrapper.eq(null != param.getType(),Device::getType,param.getType())
+               .eq(null !=param.getIsdeleted(),Device::getIsdeleted,param.getIsdeleted())
+               .eq(null != param.getHkStatus(),Device::getHkStatus,param.getHkStatus());
         return deviceMapper.selectList(wrapper);
     }
   
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index 3d3bcbe..32c7945 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -144,7 +144,7 @@
         createNotices.setSendacopy(Constants.ZERO);
         createNotices.setParam2("0");
         createNotices.setParam3(hiddenDanger.getLoginUserInfo().getMemberId().toString());
-        createNotices.setInfo("寰� "+member.getName()+" 澶勭悊");
+        createNotices.setInfo("寰�"+member.getName()+"澶勭悊");
         noticesJoinMapper.insert(createNotices);
 
         //瀛樺偍澶勭悊浜虹殑閫氱煡娑堟伅
@@ -163,7 +163,7 @@
         notices.setStatus(Constants.ZERO);
         notices.setSendacopy(Constants.ZERO);
         notices.setReaded(Constants.ZERO);
-        notices.setInfo("寰� "+member.getName()+" 澶勭悊");
+        notices.setInfo("寰�"+member.getName()+"澶勭悊");
         noticesJoinMapper.insert(notices);
 
 
@@ -514,13 +514,13 @@
             newNotices.setCreateDate(new Date());
             newNotices.setParam2("0");
             newNotices.setUserId(hiddenDanger.getCheckUserId());
-            newNotices.setInfo("寰� "+member.getName()+" 澶勭悊");
+            newNotices.setInfo("寰�"+member.getName()+"澶勭悊");
             noticesJoinMapper.insert(newNotices);
             notices.setStatus(Constants.ONE);
             notices.setParam2("3");
             notices.setEditDate(new Date());
             notices.setReaded(Constants.ONE);
-            notices.setInfo("寰� "+member.getName()+" 澶勭悊");
+            notices.setInfo("寰�"+member.getName()+"澶勭悊");
             noticesJoinMapper.updateById(notices);
         }
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
index 6fe0fdf..0ac1181 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
@@ -166,6 +166,6 @@
              days = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.HK_LOG_DEL_DAYS_LIMIT).getCode());
          }catch (Exception e){}
           interfaceLogMapper.delete(new UpdateWrapper<InterfaceLog>().lambda()
-                  .apply("to_days(create_dat e)+"+days+" < to_days(now())") );
+                  .apply("to_days(create_date)+"+days+" < to_days(now())") );
     }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index a7ccd11..066d9bc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -337,12 +337,14 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"韬唤璇佸彿鏍煎紡鏈夎");
         }
         if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
+                .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                 .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()))
                 .eq(Member::getIsdeleted,Constants.ZERO)) >0){
             throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "韬唤璇佸彿銆�"+member.getIdcardNo()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
         }
         if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                 .eq(Member::getPhone,  member.getPhone())
+                .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                 .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
             throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
         }
@@ -392,6 +394,7 @@
             }
             if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                     .eq(Member::getPhone,member.getPhone())
+                    .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                     .eq(Member::getIsdeleted,Constants.ZERO)
                     .ne(Member::getId,member.getId())) >0){
                 throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
@@ -406,6 +409,7 @@
             if( !StringUtils.equals(model.getIdcardNo(),encrptNo) ){
                 if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                         .eq(Member::getIdcardNo,encrptNo)
+                        .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                         .eq(Member::getIsdeleted,Constants.ZERO)
                         .ne(Member::getId,member.getId())) >0){
                     throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "韬唤璇佸彿銆�"+member.getIdcardNoNew()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
@@ -554,7 +558,7 @@
     public void deleteById(Integer id,LoginUserInfo loginUserInfo) {
         Member member=new Member();
         member.setId(id);
-        member.setIsdeleted(Constants.ZERO);
+        member.setIsdeleted(Constants.ONE);
         member.setEditor(loginUserInfo.getId());
         member.setEditDate(new Date());
         member.setHkStatus(Constants.ZERO);
@@ -781,7 +785,10 @@
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-        Member member=new Member();
+        for(Integer id : ids){
+            deleteById(id,loginUserInfo);
+        }
+       /* Member member=new Member();
         ids.stream().forEach(s ->{
             member.setId(s);
             member.setIsdeleted(Constants.ONE);
@@ -791,7 +798,7 @@
             member.setEditDate(new Date());
             memberMapper.updateById(member);
             saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.DELETE,userActionJoinMapper,JSONObject.toJSONString(member));
-        });
+        });*/
 
     }
 
@@ -1339,7 +1346,7 @@
     public PageData<Member> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) {
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
-
+        pageWrap.getModel().setIsdeleted(Constants.formatIntegerNum(pageWrap.getModel().getIsdeleted()));
         queryWrapper.selectAll(Member.class);
         queryWrapper.selectAs(Company::getName,Member::getCompanyName);
         queryWrapper.selectAs(SystemUser::getRealname,Member::getEditorName);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index e47c027..e9b3d38 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -18,6 +18,7 @@
 import com.doumee.dao.business.join.ApproveJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.ApproveDataVO;
+import com.doumee.dao.system.join.NoticesJoinMapper;
 import com.doumee.dao.web.reqeust.ConfirmTaskDTO;
 import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
 import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
@@ -51,6 +52,9 @@
 
     @Autowired
     private PlatformBooksMapper platformBooksMapper;
+
+    @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
 
     @Autowired
     private ApproveTemplMapper approveTemplMapper;
@@ -159,10 +163,24 @@
                 .eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
                 .eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone())
                 .ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate())
+                .ge(pageWrap.getModel().getArriveDateStart() != null, PlatformBooks::getArriveDate, Utils.Date.getStart(pageWrap.getModel().getArriveDateStart()))
+                .le(pageWrap.getModel().getArriveDateEnd() != null, PlatformBooks::getArriveDate, Utils.Date.getEnd(pageWrap.getModel().getArriveDateEnd()))
                 .orderByDesc(PlatformBooks::getCreateDate)
         ;
-        return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
+        PageData<PlatformBooks> pageData = PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
+        for (PlatformBooks platformBooks:pageData.getRecords()) {
+            if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ONE)){
+                String auditName = approveService.getApproveUserName(platformBooks.getId(),Constants.approveObjectType.reason);
+                platformBooks.setAuditName(auditName);
+            }
+        }
+
+        return pageData;
     }
+
+
+
+
 
     @Override
     public long count(PlatformBooks platformBooks) {
@@ -236,6 +254,7 @@
         platformBooks.setIsdeleted(Constants.ZERO);
         platformBooks.setStatus(Constants.ZERO);
         platformBooks.setDriverId(platformBooksApplyDTO.getUserId());
+        platformBooks.setEditDate(new Date());
         platformBooksMapper.insert(platformBooks);
 
         //鍒涘缓瀹℃壒娴佷俊鎭�
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java
new file mode 100644
index 0000000..cddc0f2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java
@@ -0,0 +1,220 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.PlatformEventMapper;
+import com.doumee.dao.business.model.PlatformEvent;
+import com.doumee.service.business.PlatformEventService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鏈堝彴杞﹁締杩涘嚭浜嬩欢鎺ㄩ�佽褰曡〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/08/28 17:24
+ */
+@Service
+public class PlatformEventServiceImpl implements PlatformEventService {
+
+    @Autowired
+    private PlatformEventMapper platformEventMapper;
+
+    @Override
+    public Integer create(PlatformEvent platformEvent) {
+        platformEventMapper.insert(platformEvent);
+        return platformEvent.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformEventMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformEvent platformEvent) {
+        UpdateWrapper<PlatformEvent> deleteWrapper = new UpdateWrapper<>(platformEvent);
+        platformEventMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformEventMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformEvent platformEvent) {
+        platformEventMapper.updateById(platformEvent);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformEvent> platformEvents) {
+        if (CollectionUtils.isEmpty(platformEvents)) {
+            return;
+        }
+        for (PlatformEvent platformEvent: platformEvents) {
+            this.updateById(platformEvent);
+        }
+    }
+
+    @Override
+    public PlatformEvent findById(Integer id) {
+        return platformEventMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformEvent findOne(PlatformEvent platformEvent) {
+        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
+        return platformEventMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformEvent> findList(PlatformEvent platformEvent) {
+        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
+        return platformEventMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap) {
+        IPage<PlatformEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformEvent> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        if (pageWrap.getModel().getId() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getId, pageWrap.getModel().getId());
+        }
+        if (pageWrap.getModel().getCreator() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getCreator, pageWrap.getModel().getCreator());
+        }
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.lambda().ge(PlatformEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.lambda().le(PlatformEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        if (pageWrap.getModel().getEditor() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getEditor, pageWrap.getModel().getEditor());
+        }
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.lambda().ge(PlatformEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.lambda().le(PlatformEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        if (pageWrap.getModel().getIsdeleted() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        }
+        if (pageWrap.getModel().getRemark() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getRemark, pageWrap.getModel().getRemark());
+        }
+        if (pageWrap.getModel().getEventId() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getEventId, pageWrap.getModel().getEventId());
+        }
+        if (pageWrap.getModel().getEventType() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getEventType, pageWrap.getModel().getEventType());
+        }
+        if (pageWrap.getModel().getSrcType() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getSrcType, pageWrap.getModel().getSrcType());
+        }
+        if (pageWrap.getModel().getHappenTime() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getHappenTime, pageWrap.getModel().getHappenTime());
+        }
+        if (pageWrap.getModel().getSrcIndex() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
+        }
+        if (pageWrap.getModel().getSrcName() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getSrcName, pageWrap.getModel().getSrcName());
+        }
+        if (pageWrap.getModel().getStatus() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getStatus, pageWrap.getModel().getStatus());
+        }
+        if (pageWrap.getModel().getTimeout() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getTimeout, pageWrap.getModel().getTimeout());
+        }
+        if (pageWrap.getModel().getDataType() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getDataType, pageWrap.getModel().getDataType());
+        }
+        if (pageWrap.getModel().getSendTime() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getSendTime, pageWrap.getModel().getSendTime());
+        }
+        if (pageWrap.getModel().getDateTime() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getDateTime, pageWrap.getModel().getDateTime());
+        }
+        if (pageWrap.getModel().getIpAddress() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getIpAddress, pageWrap.getModel().getIpAddress());
+        }
+        if (pageWrap.getModel().getIpv6Address() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getIpv6Address, pageWrap.getModel().getIpv6Address());
+        }
+        if (pageWrap.getModel().getPortNo() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getPortNo, pageWrap.getModel().getPortNo());
+        }
+        if (pageWrap.getModel().getProtocol() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getProtocol, pageWrap.getModel().getProtocol());
+        }
+        if (pageWrap.getModel().getMacAddress() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getMacAddress, pageWrap.getModel().getMacAddress());
+        }
+        if (pageWrap.getModel().getChannelId() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getChannelId, pageWrap.getModel().getChannelId());
+        }
+        if (pageWrap.getModel().getActivePostCount() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getActivePostCount, pageWrap.getModel().getActivePostCount());
+        }
+        if (pageWrap.getModel().getEventState() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getEventState, pageWrap.getModel().getEventState());
+        }
+        if (pageWrap.getModel().getEventDescription() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getEventDescription, pageWrap.getModel().getEventDescription());
+        }
+        if (pageWrap.getModel().getChannelName() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getChannelName, pageWrap.getModel().getChannelName());
+        }
+        if (pageWrap.getModel().getDeviceId() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getDeviceId, pageWrap.getModel().getDeviceId());
+        }
+        if (pageWrap.getModel().getHpno() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getHpno, pageWrap.getModel().getHpno());
+        }
+        if (pageWrap.getModel().getMotionStatus() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getMotionStatus, pageWrap.getModel().getMotionStatus());
+        }
+        if (pageWrap.getModel().getPlateNo() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getPlateNo, pageWrap.getModel().getPlateNo());
+        }
+        if (pageWrap.getModel().getVehicleDoorStatus() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getVehicleDoorStatus, pageWrap.getModel().getVehicleDoorStatus());
+        }
+        if (pageWrap.getModel().getStockStatus() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getStockStatus, pageWrap.getModel().getStockStatus());
+        }
+        if (pageWrap.getModel().getPlateScore() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getPlateScore, pageWrap.getModel().getPlateScore());
+        }
+        if (pageWrap.getModel().getBackgroundImageContent() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getBackgroundImageContent, pageWrap.getModel().getBackgroundImageContent());
+        }
+        if (pageWrap.getModel().getPlatePictureContent() != null) {
+            queryWrapper.lambda().eq(PlatformEvent::getPlatePictureContent, pageWrap.getModel().getPlatePictureContent());
+        }
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformEventMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformEvent platformEvent) {
+        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
+        return platformEventMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
index 578a97b..7257cc8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -17,6 +17,7 @@
 import com.doumee.dao.business.model.PlatformJob;
 import com.doumee.dao.business.model.PlatformShowParam;
 import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformGroupWorkVO;
 import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.PlatformGroupService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -303,5 +304,28 @@
 
 
 
+    @Override
+    public PlatformGroupWorkVO getPlatformGroupWork(Integer platformGroupId){
+        PlatformGroupWorkVO platformGroupWorkVO = new PlatformGroupWorkVO();
+        platformGroupWorkVO.setExceptionNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                .eq(PlatformJob::getPlatformGroupId,platformGroupId)
+                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey())
+            )
+        );
+
+        platformGroupWorkVO.setWaitNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                        .eq(PlatformJob::getPlatformGroupId,platformGroupId)
+                        .in(PlatformJob::getStatus,
+                                Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+                                Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                                Constants.PlatformJobStatus.CALLED.getKey()
+
+                        )
+                )
+        );
+        return platformGroupWorkVO;
+    }
+
+
 }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index a4b0ac7..0432147 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -17,6 +17,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.openapi.request.*;
 import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.dao.web.response.LineUpVO;
@@ -94,6 +95,15 @@
         platformJobMapper.deleteById(id);
     }
 
+
+    @Override
+    public void delete(Integer id) {
+        platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
+                        .set(PlatformJob::getIsdeleted,Constants.ONE)
+                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
+                .eq(PlatformJob::getId,id));
+    }
+
     @Override
     public void delete(PlatformJob platformJob) {
         UpdateWrapper<PlatformJob> deleteWrapper = new UpdateWrapper<>(platformJob);
@@ -150,8 +160,10 @@
                 .selectAs(Platform::getName,PlatformJob::getPlatformName)
                 .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                 .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
+                .selectAs(SystemUser::getUsername,PlatformJob::getOutUserName)
                 .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                 .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
+                .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getOutUserId)
                 .eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId())
                 .eq(pageWrap.getModel().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator())
                 .ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -225,6 +237,12 @@
                 .eq(pageWrap.getModel().getInType() != null, PlatformJob::getInType, pageWrap.getModel().getInType())
                 .eq(pageWrap.getModel().getTotalNum() != null, PlatformJob::getTotalNum, pageWrap.getModel().getTotalNum())
                 .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
+
+                .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
+                .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
+                .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
+                .eq(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
+                .ne(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
         ;
 
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -275,7 +293,7 @@
                                 .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or()
                                 .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_GROUP_ID = "+pageWrap.getModel().getPlatformGroupId()+" ) ")
                 )
-                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
+//                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
                 .orderByDesc(PlatformJob::getStatus)
         ;
         IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
@@ -946,6 +964,38 @@
 
 
     /**
+     * 鎺堟潈绂诲洯
+     */
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void powerLevel(JobOperateDTO jobOperateDTO){
+        if(Objects.isNull(jobOperateDTO)
+                || Objects.isNull(jobOperateDTO.getJobId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
+        if(Objects.isNull(platformJob)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
+        }
+        PlatformJob oldPlatformJob = new PlatformJob();
+        BeanUtils.copyProperties(platformJob,oldPlatformJob);
+        platformJob.setOutUserId(jobOperateDTO.getLoginUserInfo().getId());
+        platformJob.setOutHkdate(new Date());
+        platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey());
+        platformJob.setEditDate(new Date());
+        platformJobMapper.updateById(platformJob);
+        //瀛樺偍鎿嶄綔鏃ュ織
+        savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob ,
+                Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo());
+
+        //TODO 鎺堟潈杞﹁締绂诲満鏉冮檺
+    }
+
+
+    /**
      * 鏈堝彴鐩告満鎺ㄩ�� 寮�濮嬩綔涓�
      * @param jobOperateDTO
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java
index fec4a0a..8119eeb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java
@@ -99,6 +99,7 @@
                 .le(pageWrap.getModel().getEditDate() != null, PlatformWmsDetail::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
                 .eq(pageWrap.getModel().getIsdeleted() != null, PlatformWmsDetail::getIsdeleted, pageWrap.getModel().getIsdeleted())
                 .eq(pageWrap.getModel().getRemark() != null, PlatformWmsDetail::getRemark, pageWrap.getModel().getRemark())
+                .eq(pageWrap.getModel().getWmsJobId() != null, PlatformWmsDetail::getWmsJobId, pageWrap.getModel().getWmsJobId())
                 .eq(pageWrap.getModel().getJobId() != null, PlatformWmsDetail::getJobId, pageWrap.getModel().getJobId())
                 .eq(pageWrap.getModel().getIocode() != null, PlatformWmsDetail::getIocode, pageWrap.getModel().getIocode())
                 .eq(pageWrap.getModel().getMaterialName() != null, PlatformWmsDetail::getMaterialName, pageWrap.getModel().getMaterialName())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index dee709a..316f676 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -206,7 +206,8 @@
         getHkDeviceRoles(visits,isERP);
         //妫�楠屾嫓璁夸汉鏄惁鍚堟硶
         Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
-        if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18
+        if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())
+                &&visits.getIdcardNo().length()!=18
         ){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
         }
@@ -1260,6 +1261,15 @@
         VisitDetailVO visitDetailVO = new VisitDetailVO();
         visitDetailVO.setCreateTime(visits.getCreateDate());
         visitDetailVO.setStatus(visits.getStatus());
+        if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfSuccess)
+        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfFail)
+        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.signin)
+        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.signout)
+        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.invalid)){
+            visitDetailVO.setBusinessStatus(Constants.VisitStatus.pass);
+        }else{
+            visitDetailVO.setBusinessStatus(visits.getStatus());
+        }
         visitDetailVO.setCarNos(visits.getCarNos());
         visitDetailVO.setPhone(visits.getPhone());
         visitDetailVO.setVisitUserName(member.getName());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index c07db90..64ed8c0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -6,9 +6,7 @@
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.*;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
@@ -55,12 +53,6 @@
     }
 
     @Override
-    public  void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response){
-    }
-    @Override
-    public  void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response){
-    }
-    @Override
 //    @Async
     public String syncDoors(DoorsListRequest param){
         return null;
@@ -95,6 +87,15 @@
     public String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
         return  null;
     }
+
+    @Override
+    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
+        return  null;
+    }
+    @Override
+    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
+        return  null;
+    }
     @Override
     public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
         return  null;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
index 6fc54ed..4935818 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
@@ -183,7 +183,7 @@
 
     private List<PlatformDevice> getCameraList(List<PlatformCameraInfoResponse> cameras, Platform model) {
         List<PlatformDevice> list = new ArrayList<>();
-        if(cameras!=null || cameras.size()>0){
+        if(cameras!=null && cameras.size()>0){
             for(PlatformCameraInfoResponse param :cameras){
                 PlatformDevice d = new PlatformDevice();
                 d.setCreateDate(model.getCreateDate());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index b190e72..c312ebc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -5,13 +5,17 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.config.DataSyncConfig;
 import com.doumee.config.SpringContextUtil;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
+import com.doumee.core.haikang.model.param.request.TransparentChannelBodyRequest;
+import com.doumee.core.haikang.model.param.request.TransparentChannelHeadRequest;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.*;
 import com.doumee.core.haikang.model.param.request.event.visit.*;
+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;
@@ -29,6 +33,8 @@
 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 org.yaml.snakeyaml.scanner.Constant;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
@@ -66,6 +72,18 @@
     private VisitsJoinMapper visitsMapper;
     @Autowired
     private RetentionMapper retentionMapper;
+    @Autowired
+    private PlatformMapper platformMapper;
+    @Autowired
+    private PlatformDeviceMapper platformDeviceMapper;
+    @Autowired
+    private PlatformJobMapper platformJobMapper;
+    @Autowired
+    private PlatformWmsDetailMapper platformWmsDetailMapper;
+    @Autowired
+    private PlatformEventMapper platformEventMapper;
+    @Autowired
+    private PlatformLogMapper platformLogMapper;
     /**
      * 娴峰悍闂ㄧ浜嬩欢鎺ㄩ��
      * @param param
@@ -137,7 +155,7 @@
                         .eq(Device::getIsdeleted,Constants.ZERO)
                         .last("limit 1" ));
                 delRetentionLis.add(member.getId());
-                if(!(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
+                if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
                     //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
                     retentionList.add(getRetentionModelByRequest(member,request));
                 }
@@ -308,6 +326,7 @@
         return  null;
 
     }
+
     /**
      * 娴峰悍璁垮浜嬩欢鎺ㄩ��
      * @param param
@@ -769,5 +788,286 @@
         interfaceLogMapper.insert(hkMonitoryLogDO);
     }
 
+    /**
+     * 澶勭悊鏈堝彴宸ヤ綔鐘舵�佷簨浠惰闃呭悗鎺ㄩ�佹暟鎹�昏緫閫昏緫
+     * @param param
+     * @param response
+     * @return
+     */
+    @Override
+    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
+        log.info("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
+        String result = null;
+        try {
+            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+                return null;
+            }
+            //闂ㄧ浜嬩欢闆嗗悎
+            List<EventPlatformInfoRequest> events  = param.getParams().getEvents();
+            List<Platform> list = new ArrayList<>();
+            for(EventPlatformInfoRequest request : events){
+                EventPlatformDataRequest   data = request.getData();
+                if(data ==null ){
+                    continue;
+                }
+                Integer  workStatus = 0;
+                    if( data.getHPWorkingStatus() ==null ||  data.getHPWorkingStatus().size() ==0){
+                        continue;//濡備綍鎺ㄩ�佺姸鎬侀泦鍚堜负绌猴紝涓嶅鐞嗚烦杩�
+                    }
+                    PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
+                            .eq(PlatformDevice::getDeviceId,request.getSrcIndex())
+                            .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
+                            .last("limit 1"));
+                    if(model ==null){
+                        continue;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞�
+                    }
+                    //鍚勮溅閬撹溅杈嗙姸鎬�
+                    for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){
 
+                    }
+            }
+            result = "鎴愬姛";
+            log.error("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
+        }catch (Exception e) {
+            result = "澶辫触"+e.getMessage();
+            log.error("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
+        }finally {
+            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//涓嶈鏃ュ織
+        }
+        return  null;
+    }
+    /**
+     * 澶勭悊鏈堝彴杞﹁締鐘舵�佷簨浠惰闃呭悗鎺ㄩ�佹暟鎹�昏緫閫昏緫
+     * @param param
+     * @param response
+     * @return
+     */
+    @Override
+    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
+        log.info("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
+        String result = null;
+        try {
+            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+                return null;
+            }
+            //闂ㄧ浜嬩欢闆嗗悎
+            List<EventPlatformCarsInfoRequest> events  = param.getParams().getEvents();
+            List<PlatformEvent> eventList = new ArrayList<>();
+            for(EventPlatformCarsInfoRequest request : events){
+                if( request.getData() ==null ||  request.getData().size()==0){
+                    continue;
+                }
+                Integer  workStatus = 0;
+                for(EventPlatformCarsDataRequest data :  request.getData()){
+                    if( data.getHPVehicleStatus() ==null ||  data.getHPVehicleStatus().size() ==0){
+                        continue;//濡備綍鎺ㄩ�佺姸鎬侀泦鍚堜负绌猴紝涓嶅鐞嗚烦杩�
+                    }
+                    PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
+                            .eq(PlatformDevice::getDeviceId,request.getSrcIndex())
+                            .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
+                            .last("limit 1"));
+                    if(model ==null){
+                        continue;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞�
+
+                    }
+                    //鍚勮溅閬撹溅杈嗙姸鎬�
+                    for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){
+                        eventList.add(initPlatformEventModel(request,data,status));//灏佽浜嬩欢锛堝凡鏈堝彴閫氶亾涓虹淮搴︼級
+                        if(StringUtils.isBlank(status.getPlateNo())){
+                            continue;//濡傛灉杞﹁締淇℃伅涓虹┖锛屼笉澶勭悊鐩存帴璺宠繃
+                        }
+                        PlatformJob job = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
+                                .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//鍓嶈溅鐗屽彿
+                                .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//鍚庤溅鐗屽彿
+                                .eq(PlatformJob::getIsdeleted,Constants.ZERO )
+                                .last("limit 1 "));
+                        PlatformJob update = new PlatformJob();
+                        update.setId(job.getId());
+                        update.setEditDate(new Date());
+                        if(StringUtils.equals(status.getMotionStatus(),"leave")){
+                            //濡傛灉鏄溅杈嗙寮�,涓嶅仛鐩稿叧鑷姩瀹屾垚浣滀笟涓氬姟澶勭悊
+                         /*   if(job ==null && !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
+                                continue;//濡傛灉娌℃煡鍒板搴旂殑浣滀笟鎴栬�呬綔涓氬苟闈炰綔涓氫腑锛屼笉鍋氫笟鍔″鐞�
+                            }
+                            if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){
+                                //濡傛灉鏄痺ms鎺ㄩ�佺殑澶栧崗杞﹁締澶栧崗杞﹁締
+                               if(platformWmsDetailMapper.selectCount(new QueryWrapper<PlatformWmsDetail>().lambda()
+                                       .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)
+                                       .eq(PlatformWmsDetail::getJobId,job.getId())
+                                       .ne(PlatformWmsDetail::getLockStatus,Constants.ONE)) >0){
+                                   continue;//濡傛灉澶栧崗浠诲姟浣滀笟锛屽悎鍚屽彿鏈夋湭涓婇攣鐨勬儏鍐碉紝涓嶅仛鑷姩瀹屾垚浣滀笟閫昏緫澶勭悊锛岃烦杩囦笉澶勭悊
+                               }
+                            }
+                            //濡傛灉鏄鍦ㄤ綔涓氱殑鐘舵�侊紝鏍囪浣滀笟宸插畬鎴�
+                            update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//浣滀笟宸插畬鎴�
+                            update.setDoneDate(update.getEditDate());*/
+                        }else  if(StringUtils.equals(status.getMotionStatus(),"enter")){
+                            //濡傛灉鏄溅杈嗚繘鍏�
+                            if(job ==null || !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
+                                //璇存槑杞﹁締杩涢敊鏈堝彴 鎴栬�呰繕鏈彨鍙风姸鎬侊紝鍙戣捣璀﹀憡
+                                dealCarsInErrorPlatformBiz(job,status);
+                            }
+                            if(job.getStartDate() == null){
+                                update.setStartDate(update.getEditDate());
+                            }
+                            update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//寮�濮嬩綔涓�
+                        }else{
+                            continue;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩�
+                        }
+                        //鏆傛椂涓嶅仛鐩稿叧鑷姩瀹屾垚浣滀笟涓氬姟澶勭悊
+//                        dealPlatformJobLogBiz(update,status);//璁板綍浣滀笟鏃ュ織
+                    }
+                    break;//鍙鐞嗙涓�涓暟鎹姸鎬�
+                }
+            }
+            if(eventList.size()>0){
+                //鐢熸垚浜嬩欢
+                platformEventMapper.insert(eventList);
+            }
+            result = "鎴愬姛";
+            log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
+        }catch (Exception e) {
+            result = "澶辫触"+e.getMessage();
+            log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
+        }finally {
+            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//涓嶈鏃ュ織
+        }
+        return  null;
+    }
+
+    private PlatformEvent initPlatformEventModel(EventPlatformCarsInfoRequest request, EventPlatformCarsDataRequest data, EventPlatformCarsStatusInfoRequest status) {
+        PlatformEvent model = new PlatformEvent();
+        model.setCreateDate(new Date());
+        model.setIsdeleted(Constants.ZERO);
+        model.setEditDate(model.getCreateDate());
+        model.setEventId(request.getEventId());
+//        model.setRemark(JSONObject.toJSONString(request));
+        model.setEventType(request.getEventType());
+        model.setDataEventType(data.getEventType());
+        model.setHappenTime(request.getHappenTime());
+        model.setSrcIndex(request.getSrcIndex());
+        model.setSrcType(request.getSrcType());
+        model.setStatus(request.getStatus());
+        model.setTimeout(request.getTimeout());
+        model.setDateTime(data.getDateTime());
+        model.setDataType(data.getDataType());
+        model.setSendTime(data.getSendTime());
+        model.setIpAddress(data.getIpAddress());
+        model.setIpv6Address(data.getIpv6Address());
+        model.setPortNo(data.getPortNo());
+        model.setMacAddress(data.getMacAddress());
+        model.setProtocol(data.getProtocol());
+        model.setChannelId(data.getChannelID());
+        model.setChannelName(data.getChannelName());
+        model.setEventState(data.getEventState());
+        model.setActivePostCount(data.getActivePostCount());
+        model.setEventDescription(data.getEventDescription());
+        model.setDeviceId(data.getDeviceID());
+        model.setHpno(status.getHPNo());
+        model.setMotionStatus(status.getMotionStatus());
+        model.setPlateNo(status.getPlateNo());
+        model.setVehicleDoorStatus(status.getVehicleDoorStatus());
+        model.setStockStatus(status.getStockStatus());
+        model.setBackgroundImageContent(status.getBackgroundImage()!=null?status.getBackgroundImage().getResourcesContent():null);
+        model.setPlateScore(status.getPlateScore());
+        model.setPlatePictureContent(status.getPlatePicture()!=null?status.getPlatePicture().getResourcesContent():null);
+        return model;
+    }
+
+    /**
+     * 璁板綍鏈堝彴浣滀笟鏃ュ織
+     * @param job
+     * @param status
+     */
+    @Transactional
+    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
+        platformJobMapper.updateById(job);//鏇存柊浣滀笟鐘舵��
+        PlatformLog log = new PlatformLog();
+        log.setIsdeleted(Constants.ZERO);
+        log.setCreateDate(new Date());
+        log.setEditDate(log.getCreateDate());
+        log.setJobId(job.getId());
+        log.setObjId(job.getId()+"");
+        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
+            //濡傛灉鏄綔涓氬畬鎴�
+            log.setObjType(Constants.PlatformJobLogType.DONE.getKey());
+            log.setTitle(Constants.PlatformJobLogType.DONE.getName());
+            log.setContent(Constants.PlatformJobLogType.DONE.getInfo());
+            //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+                    .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+                    .eq(PlatformLog::getJobId,job.getId())
+                    .orderByDesc(PlatformLog::getCreateDate)
+                    .last(" limit 1"));
+            String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
+            lastBeginPlatform.setParam3(v);
+            lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+            platformLogMapper.updateById(lastBeginPlatform);//鏇存柊涓婁竴娆′綔涓氱殑瀹屾垚鏃堕棿鍜屼綔涓氭椂闀�
+        }else{
+            //濡傛灉鏄綔涓氫腑
+            log.setObjType(Constants.PlatformJobLogType.WORKING.getKey());
+            log.setTitle(Constants.PlatformJobLogType.WORKING.getName());
+            log.setContent(Constants.PlatformJobLogType.WORKING.getInfo());
+            log.setParam1(DateUtil.getDate(log.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+        }
+        platformLogMapper.insert(log);
+    }
+
+    /**
+     * 澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
+     * @param model (鏈堝彴璁惧鍏宠仈淇℃伅锛�
+     * @param status
+     */
+    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
+        //TODO-----------------澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
+
+        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
+                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
+                .eq(PlatformDevice::getIsdeleted,Constants.ZERO));
+        if(deviceList ==null || deviceList.size() == 0){
+            return;
+        }
+        String content ="杞﹁締"+model.getCarCodeFront()+"鍋滈敊鏈堝彴浜�";
+        List<String> broadcastList = new ArrayList<>();
+        for(PlatformDevice device : deviceList){
+            if(StringUtils.isNotBlank(device.getHkId())){
+                continue;
+            }
+            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
+                //濡傛灉鏄疞ED
+                TransparentChannelBodyRequest request = new TransparentChannelBodyRequest();
+                TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
+                head.setAbility("cld");//鍥哄畾鍊�
+                head.setTreatyType("haixuan_led_net");//鍥哄畾鍊�
+                head.setDeviceIndexCode(device.getHkId());
+                request.setMethod("ControlLedGereral");//鍥哄畾鍊�
+                request.setIndexCode(device.getHkId());
+                request.setActionType(0);
+                request.setContent(content);
+                request.setOperationType(219);//鍥哄畾鍊�
+                request.setRegionNo(1);
+                request.setRegionType(14);
+                request.setFontColor(1);
+                request.setCircleTimes(1);//寰幆娆℃暟
+                request.setFontSize(16);//
+                request.setStayTime(1);//鍗曚綅锛燂紵
+                HKService.transparentchannel(head,request);
+            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
+                //濡傛灉鏄箍鎾偣
+                broadcastList.add(device.getHkId());
+            }
+        }
+        if(broadcastList.size()>0){
+            CustomBroadcastRequest request = new CustomBroadcastRequest();
+            request.setAudioPointIndexCode(broadcastList);
+            request.setPlayDuration(60);//鍗曚綅绉�
+            request.setBroadCastMode("tts");
+            request.setPriority(15);
+            request.setState(1);//鎾斁/鍋滄鏍囪瘑 1-鎾斁锛�0-鍋滄
+            request.setPlayTtsContent(content);
+            HKService.customBroadcast(request);
+        }
+
+    }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 9c4fba9..6951543 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -682,9 +682,12 @@
             return  null;
         }
         if(StringUtils.isNotBlank(c.getFaceImg())){
+            log.info("===================================="+path+c.getFaceImg()+"======start====");
             info.setVisitorPhoto(ImageBase64Util.Image2Base64(path+c.getFaceImg()));
+            log.info("===================================="+path+c.getFaceImg()+"========end===");
         }
         if(info.getVisitorPhoto() == null){
+            log.info("===================================="+path+c.getFaceImg()+"======imgerror=====");
             return  null;
         }
         if(StringUtils.isNotBlank(c.getName())){
@@ -696,7 +699,6 @@
                 info.setVisitorName(c.getName());
             }
         }
-
         if(StringUtils.isNotBlank(c.getCompanyName())){
             char[] charArray = c.getCompanyName().toCharArray();
             int length = charArray.length;
@@ -716,7 +718,6 @@
             info.setCertificateType(HKConstants.CertificateType.HUZHAO.getKey()+"");
             info.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD,  c.getIdcardNo()));
         }
-
         return info;
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index fb18e3a..eb378b4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -73,7 +73,9 @@
      */
     @Override
     public   void syncOrgData(LoginUserInfo user){
-        if(Constants.DEALING_HK_ORG || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
+        if(Constants.DEALING_HK_ORG ||
+                !(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
+                        || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self)){
             return   ;
         }
         Constants.DEALING_HK_ORG =true;
@@ -263,7 +265,9 @@
      */
     @Override
     public   void syncUserData(LoginUserInfo user){
-        if(Constants.DEALING_HK_USER  || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
+        if(Constants.DEALING_HK_USER  ||
+                !(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
+                || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self)){
             return   ;
         }
         Constants.DEALING_HK_USER =true;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
index d310af4..db07126 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
@@ -289,6 +289,7 @@
                 c.setFaceId(model.getPersonPhoto().get(0).getPersonPhotoIndexCode());
                 c.setFaceImg(HKConstants.IMG_INDEX+model.getPersonPhoto().get(0).getPicUri());
                 c.setFaceServerIndexCode(model.getPersonPhoto().get(0).getServerIndexCode());
+                c.setFaceStatus(Constants.ONE);
             }
             newList.add(c);
         }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
index 54652e2..b8ee494 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
@@ -1,22 +1,26 @@
 package com.doumee.service.business.impl.wms;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 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.utils.Constants;
+import com.doumee.core.utils.HttpsUtil;
 import com.doumee.core.wms.model.request.*;
 import com.doumee.core.wms.model.response.WmsBaseDataResponse;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
+import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.WmsService;
+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;
+import java.util.*;
 
 /**
  * WMS骞冲彴瀵规帴Service瀹炵幇
@@ -24,6 +28,7 @@
  * @date 2023/11/30 15:33
  */
 @Service
+@Slf4j
 public class WmsServiceImpl implements WmsService {
     @Autowired
     private PlatformWmsJobMapper platformWmsJobMapper;
@@ -35,7 +40,150 @@
     private PlatformJobMapper platformJobMapper;
     @Autowired
     private PlatformWmsDetailMapper platformWmsDetailMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private WmsInterfaceLogMapper wmsInterfaceLogMapper;
 
+    /**
+     * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊
+     * @param job 鍙傛暟
+     * @return
+     */
+    @Override
+    public  WmsBaseResponse<WmsBaseDataResponse> orderPlatformBind(PlatformJob job) {
+        if(StringUtils.isBlank(job.getBillCode()) || StringUtils.isBlank(job.getPlatformWmsCode())){
+
+            return null;
+        }
+        int type = 0;
+        if(Constants.equalsInteger(job.getType(),Constants.ONE)
+                || Constants.equalsInteger(job.getType(),Constants.THREE)){
+            //濡傛灉鏄璐э紙鍑哄簱锛�
+            type =1 ;
+        }else if(Constants.equalsInteger(job.getType(),Constants.ZERO)
+                || Constants.equalsInteger(job.getType(),Constants.TWO)){
+            //濡傛灉鏄璐э紙鍑哄簱锛�
+            type =0 ;
+        }else{
+            return null;
+        }
+        WmsOrderPlatformRequest  param  = new WmsOrderPlatformRequest();
+         param.setData(new ArrayList<>());
+         WmsOrderPlatformInfoRequest o = new WmsOrderPlatformInfoRequest();
+         o.setCarrierBillCode(job.getBillCode());
+         o.setRailwayNo(job.getPlatformWmsCode());
+         param.getData().add(o);
+         String url = type == 0?systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_INBOUND_PLATFROM_URL).getCode():systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_OUTBOUND_PLATFROM_URL).getCode();;
+         String name = type ==0?"銆怶MS銆戝叆搴綔涓氬崟鍒嗛厤鏈堝彴":"銆怶MS銆戝嚭搴撲綔涓氱殑鍒嗛厤鏈堝彴";
+         WmsBaseResponse<WmsBaseDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(param),new TypeReference< WmsBaseResponse<WmsBaseDataResponse>>(){});
+         PlatformJob update = new PlatformJob();
+         update.setId(job.getId());
+         update.setWmsSendDate(new Date());
+         update.setWmsSendNum(job.getWmsSendNum() + 1);
+         update.setWmsSendPlatformCode(job.getPlatformWmsCode());
+         if(response!=null && response.getData() !=null
+                && response.getData().size()>0 && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){
+            //濡傛灉鎴愬姛
+            update.setWmsSendStatus(Constants.ONE);
+            update.setWmsSendInfo("閫氱煡WMS浣滀笟鍗曞垎閰嶆湀鍙版垚鍔�");
+         }else{
+            //濡傛灉澶辫触
+            update.setWmsSendStatus(Constants.TWO);
+            update.setWmsSendInfo("閫氱煡WMS浣滀笟鍗曞垎閰嶆湀鍙板け璐�:"+(response!=null?JSONObject.toJSONString(response):"鎺ュ彛璋冪敤澶辫触"));
+         }
+         platformJobMapper.updateById(update);
+         return response;
+
+    }
+    /**
+     * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊
+     * @return
+     */
+    @Override
+    public WmsBaseResponse<WmsInventoryDataResponse> getInventoryList(){
+         String url =  systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_GET_INVENTORYLIST_URL).getCode() ;
+         String name = "銆怶MS銆戝簱瀛樻煡璇�" ;
+         WmsBaseResponse<WmsInventoryDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(new JSONObject()),new TypeReference< WmsBaseResponse<WmsInventoryDataResponse>>(){});
+        if(response!=null
+                && response.getData() !=null
+                && response.getData().size()>0
+                && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){
+            //濡傛灉璇锋眰鎴愬姛
+
+        }else{
+            //濡傛灉澶辫触
+            if(response ==null){
+                response = new WmsBaseResponse();
+                response.setData(new ArrayList<>());
+            }
+            if(response.getData() == null){
+                response.setData(new ArrayList<>());
+            }
+        }
+         return response;
+
+    }
+    @Override
+    public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type){
+        if(wmsInterfaceLogMapper ==null){
+            return;
+        }
+        WmsInterfaceLog log = new WmsInterfaceLog();
+        log.setCreateDate(new Date());
+        log.setUrl(url);
+        log.setEditDate(log.getCreateDate());
+        log.setPlat(Constants.ZERO);
+        log.setName(name);
+        log.setIsdeleted(Constants.ZERO);
+        log.setRequest(param);
+        log.setType(type);
+        log.setSuccess(success);
+        log.setRepose(respone);
+        wmsInterfaceLogMapper.insert(log);
+    }
+
+    /**
+     * 鍙戣捣wms鎺ュ彛璇锋眰
+     * @param url
+     * @param name
+     * @param param
+     * @param typeReference
+     * @return
+     * @param <T>
+     */
+    public  <T> WmsBaseResponse<T> sendHttpRequest(String url, String name, String param,TypeReference<WmsBaseResponse<T>> typeReference){
+        log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
+        if ( StringUtils.isNotBlank(url)) {
+            String res = null;
+            int success = 0;
+            try {
+                Map<String,String> headers = new HashMap<>();
+                res = HttpsUtil.postJson(url,param);
+                WmsBaseResponse result = JSONObject.parseObject(res, typeReference.getType());
+                logResult(result,name);
+                if(result!=null && result.getData() !=null ){
+
+                }else{
+                    success =1;
+                }
+                return  result;
+            }catch (Exception e){
+                success = 1;
+                log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(param));
+            }finally {
+                saveInterfaceLog(url,name,param,success,res,Constants.ZERO);
+            }
+        }
+        return  null;
+    }
+    private static void logResult(WmsBaseResponse<WmsBaseDataResponse> res,String name) {
+        if(StringUtils.equals(res.getData().get(0).getSuccess(), WmsBaseResponse.CODE_SUCCESS)){
+            log.info("銆怶MS鎺ュ彛锛�"+name+"銆�================鎴愬姛====\n"+res);
+        }else{
+            log.error("銆怶MS鎺ュ彛锛�"+name+"銆�================澶辫触====锛歕n"+ res);
+        }
+    }
     /**
      * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊
      * @param list 鍙傛暟
@@ -43,7 +191,7 @@
      */
     @Override
     @Transactional
-    public WmsBaseResponse inboundNotice(List<WmsInboundNoticeRequest> list) {
+    public WmsBaseResponse<WmsBaseDataResponse> inboundNotice(List<WmsInboundNoticeRequest> list) {
         if(list ==null || list.size() ==0){
             return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖");
         }
@@ -87,7 +235,8 @@
                     entity.setCreateDate(new Date());
                     entity.setIsdeleted(Constants.ZERO);
                     entity.setIocode(d.getIoCode());
-                    entity.setJobId(job.getId());
+                    entity.setJobId(job.getJobId());
+                    entity.setWmsJobId(job.getId());
                     entity.setIoQty(d.getIoQty());
                     entity.setStatus(Constants.ZERO);
                     entity.setRate(d.getRate());
@@ -222,7 +371,7 @@
                 job.setPlateNumber(param.getPlateNumber());
                 job.setType(Constants.ONE);
                 job.setIoCreatedate(param.getCreateDate());
-                job.setJobId(model.getId());
+                job.setJobId(job.getId());
                 job.setDriverPhone(param.getDriverPhone());
                 platformWmsJobMapper.insert(job);
                 jobList.add(model);
@@ -233,7 +382,8 @@
                     entity.setCreateDate(new Date());
                     entity.setIsdeleted(Constants.ZERO);
                     entity.setIocode(d.getIoCode());
-                    entity.setJobId(job.getId());
+                    entity.setJobId(job.getJobId());
+                    entity.setWmsJobId(job.getId());
                     entity.setIoQty(d.getIoQty());
                     entity.setStatus(Constants.ZERO);
                     entity.setRate(d.getRate());
@@ -340,6 +490,7 @@
      * @return
      */
 
+
     private WmsBaseResponse returnSuccessReuslt(String msg) {
         WmsBaseResponse response = new WmsBaseResponse();
         response.setData(new ArrayList<>());
diff --git a/server/visits/dmvisit_service/src/main/resources/application-pro.yml b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
index 2371a18..e5da850 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-pro.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-    username: doumee
-    password: rtjgfEr@&0c0m
+    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: root
+    password: Atwl@2024
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:

--
Gitblit v1.9.3