From ff779cb22ce9d538c8306e9f218ae24a497057b3 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 04 七月 2024 10:09:24 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 admin/src/components/system/user/OperaUserWindow.vue                                                                        |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformDeviceService.java                          |   97 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java                                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java                            |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberRoleMapper.java                                   |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java                             |    2 
 server/system_service/src/main/java/com/doumee/dao/system/join/NoticesJoinMapper.java                                       |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBroadcastLogServiceImpl.java           |  131 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/DateIntervalVO.java                                  |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java                    |   60 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java                                    |   16 
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java                                             |   20 
 server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java                                        |    4 
 server/db/business.platform.permissions.sql                                                                                 |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java                                |   15 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/EmpowerJoinMapper.java                             |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java                  |  131 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java                         |   18 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java                 |  134 ++
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java                                               |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java                          |   97 +
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java                      |  188 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                         |  128 -
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java                                    |   11 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java                                             |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java                                   |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java                                |    2 
 admin/src/views/business/visitorManagement.vue                                                                              |    6 
 admin/src/views/business/internalCompany.vue                                                                                |    5 
 server/system_service/src/main/java/com/doumee/dao/business/dao/CompanyMapper.java                                          |    1 
 server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java                                              |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitsMapper.java                                       |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java              |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsDetailMapper.java                            |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java                     |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java                                    |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBroadcastLogMapper.java                         |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java                                         |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitEventMapper.java                                   |    1 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                                    |    3 
 server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml                                                            |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformQueueService.java                           |    2 
 server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java                                                 |    0 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java                                |    2 
 server/visits/admin_timer/src/main/resources/bootstrap.yml                                                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformJobMapper.java                                  |    2 
 server/visits/openapi/src/main/java/com/doumee/api/web/ApiController.java                                                   |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveParamMapper.java                                 |    1 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java                                 |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java                                  |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/InternalWebController.java                                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java                                |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBroadcastLogCloudController.java                   |   91 +
 server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java                                                |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java                        |  172 +-
 server/system_gateway/src/main/resources/bootstrap-dev.yml                                                                  |    2 
 server/db/business.platform_interface_log.permissions.sql                                                                   |    6 
 server/db/business.platform_wms_detail.permissions.sql                                                                      |    6 
 server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java                                                |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java                              |   51 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java                                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBroadcastLog.java                         |  103 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java                                |  104 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformLogMapper.java                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java                                       |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java                               |  112 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/InternalHomeVO.java                                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java                   |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java                           |   97 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java                       |   11 
 server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java                                               |    6 
 server/visits/openapi/src/main/java/com/doumee/api/web/BizResourceController.java                                           |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsJobMapper.java                               |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java                                  |   27 
 server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java                                           |    1 
 server/system_timer/src/main/resources/bootstrap.yml                                                                        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformQueueServiceImpl.java                  |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ProblemWebController.java                                    |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/TrainTimeMapper.java                                    |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java  |    4 
 server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml                                                           |    2 
 server/db/business.platform_log.permissions.sql                                                                             |    6 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformDeviceCloudController.java                         |   91 +
 server/pom.xml                                                                                                              |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformInterfaceLogService.java                    |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java         |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java                         |   47 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java                                     |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java                                     |    2 
 server/system_service/pom.xml                                                                                               |   48 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java                      |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java                                     |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformQueueMapper.java                                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformDevice.java                               |   82 +
 server/db/business.platform_queue.permissions.sql                                                                           |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java                   |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/EmpowerMapper.java                                      |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java                     |   41 
 server/db/business.platform_books.permissions.sql                                                                           |    6 
 server/db/business.platform_broadcast_log.permissions.sql                                                                   |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java                    |   30 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java                    |    1 
 server/db/business.platform_device.permissions.sql                                                                          |    6 
 server/meeting/meeting_service/src/main/resources/application-test.yml                                                      |   49 
 server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java                                        |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java                         |   91 +
 admin/.env.development                                                                                                      |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java                            |   79 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java              |   25 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                                  |  102 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java                                  |    5 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsDetailCloudController.java                      |   91 +
 server/visits/admin_timer/pom.xml                                                                                           |    2 
 server/db/business.platform_show_param.permissions.sql                                                                      |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/TrainTimeServiceImpl.java                      |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformShowParamMapper.java                            |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java                                  |    2 
 server/visits/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java                                           |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformDeviceMapper.java                               |   12 
 server/db/business.platform_job.permissions.sql                                                                             |    6 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java                                    |   16 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java                                   |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java              |  124 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java                                  |   10 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/BookingTime.java                                 |    4 
 server/meeting/meeting_admin/src/main/java/com/doumee/api/business/MeetingController.java                                   |   33 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveMapper.java                                      |    1 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java                          |   91 +
 server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java                                       |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/StagingDataVO.java                                |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java   |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformDeviceServiceImpl.java                 |  125 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java              |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBroadcastLogService.java                    |   97 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberCardMapper.java                                   |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java                               |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java                                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformInterfaceLogMapper.java                         |    2 
 server/system_service/src/main/java/com/doumee/config/jwt/JwtProperties.java                                                |    0 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceEventMapper.java                                  |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java                                |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java |    4 
 server/db/business.platform_group.permissions.sql                                                                           |    6 
 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java                                         |   20 
 server/db/business.platform_wms_job.permissions.sql                                                                         |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java                           |    2 
 admin/src/components/business/OperaCarUseBookWindow.vue                                                                     |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsDetailService.java                       |   97 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java                                     |   47 
 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java                                             |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java                             |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomTimeServiceImpl.java                      |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java                                |    7 
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java                               |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                                       |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformInterfaceLogServiceImpl.java           |   32 
 /dev/null                                                                                                                   |  126 -
 server/meeting/meeting_service/src/main/java/com/doumee/dao/web/request/MeetingPageRequest.java                             |    5 
 server/system_timer/src/main/resources/application-test.yml                                                                 |   40 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java                              |   22 
 server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java                                           |    1 
 server/visits/admin_timer/src/main/resources/logback-spring.xml                                                             |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java                                        |    1 
 server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java                                             |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java                        |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java                    |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java            |    2 
 175 files changed, 3,232 insertions(+), 746 deletions(-)

diff --git a/admin/.env.development b/admin/.env.development
index 844693b..cf6b164 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -1,4 +1,5 @@
 # 寮�鍙戠幆澧冮厤缃�
 NODE_ENV = 'development'
 
-VUE_APP_API_URL  = 'http://192.168.0.135:10010'
+VUE_APP_API_URL  = 'http://localhost:10010'
+#VUE_APP_API_URL  = 'http://192.168.0.173/admin_interface'
diff --git a/admin/src/components/business/OperaCarUseBookWindow.vue b/admin/src/components/business/OperaCarUseBookWindow.vue
index 7685160..972dd87 100644
--- a/admin/src/components/business/OperaCarUseBookWindow.vue
+++ b/admin/src/components/business/OperaCarUseBookWindow.vue
@@ -43,8 +43,8 @@
             </div>
             <div class="item">
               <div class="label">鐩殑鍦扮被鍒�</div>
-              <div class="value status-green" v-if="model.type === 0">銆愬競鍐呯敤杞︺��</div>
-              <spdivan class="value status-red"   v-if="model.type === 1">銆愬競鍐呯敤杞︺��</spdivan>
+              <div class="value status-green" v-if="model.type == 0">銆愬競鍐呯敤杞︺��</div>
+              <div class="value status-red"   v-if="model.type == 1">銆愬競澶栫敤杞︺��</div>
             </div>
             <div class="item">
               <div class="label">鐩殑鍦�</div>
diff --git a/admin/src/components/system/user/OperaUserWindow.vue b/admin/src/components/system/user/OperaUserWindow.vue
index 35d784c..8fe9643 100644
--- a/admin/src/components/system/user/OperaUserWindow.vue
+++ b/admin/src/components/system/user/OperaUserWindow.vue
@@ -7,7 +7,7 @@
     @confirm="confirm"
   >
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鐢ㄦ埛鍚�" prop="username" required>
+      <el-form-item label="鐢ㄦ埛鍚�" prop="username" required v-if="form.id ==null">
         <el-input v-model="form.username" placeholder="璇疯緭鍏ョ敤鎴峰悕" v-trim maxlength="50"/>
       </el-form-item>
       <el-form-item label="濮撳悕" prop="realname" required>
@@ -122,6 +122,7 @@
           this.form.id = null
           this.form.departmentId = null
           this.form.positionIds = []
+          this.form.username=null
         })
         return
       }
diff --git a/admin/src/views/business/internalCompany.vue b/admin/src/views/business/internalCompany.vue
index 243356f..b797cdb 100644
--- a/admin/src/views/business/internalCompany.vue
+++ b/admin/src/views/business/internalCompany.vue
@@ -166,11 +166,12 @@
         direction
       })
         .then(() => {
-          if (direction === 'top') {
+         /* if (direction === 'top') {
             menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
           } else {
             menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
-          }
+          }*/
+          this.search()
         })
         .catch(e => {
           this.$tip.apiFailed(e)
diff --git a/admin/src/views/business/visitorManagement.vue b/admin/src/views/business/visitorManagement.vue
index b143228..15a8e82 100644
--- a/admin/src/views/business/visitorManagement.vue
+++ b/admin/src/views/business/visitorManagement.vue
@@ -40,6 +40,12 @@
                         <span v-if="row.sex === 2">濂�</span>
                     </template>
                 </el-table-column>
+                <el-table-column prop="status" label="鐘舵��" min-width="100px">
+                    <template slot-scope="{row}">
+                        <span v-if="(row.status || 0) === 0" style="color: green">姝e父</span>
+                        <span v-else style="color: red">寮傚父</span>
+                    </template>
+                </el-table-column>
                 <el-table-column label="璇佷欢绫诲瀷" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.idcardType === 0">韬唤璇�</span>
diff --git a/server/db/business.platform.permissions.sql b/server/db/business.platform.permissions.sql
new file mode 100644
index 0000000..f01cac6
--- /dev/null
+++ b/server/db/business.platform.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platform:create', '鏂板缓鏈堝彴淇℃伅琛�', '鏈堝彴淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platform:delete', '鍒犻櫎鏈堝彴淇℃伅琛�', '鏈堝彴淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platform:update', '淇敼鏈堝彴淇℃伅琛�', '鏈堝彴淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platform:query', '鏌ヨ鏈堝彴淇℃伅琛�', '鏈堝彴淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platform:exportExcel', '瀵煎嚭鏈堝彴淇℃伅琛�(Excel)', '鏈堝彴淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_books.permissions.sql b/server/db/business.platform_books.permissions.sql
new file mode 100644
index 0000000..a18bd53
--- /dev/null
+++ b/server/db/business.platform_books.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbooks:create', '鏂板缓鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbooks:delete', '鍒犻櫎鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbooks:update', '淇敼鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbooks:query', '鏌ヨ鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbooks:exportExcel', '瀵煎嚭鏈堝彴鍏ュ洯棰勭害淇℃伅琛�(Excel)', '鏈堝彴鍏ュ洯棰勭害淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_broadcast_log.permissions.sql b/server/db/business.platform_broadcast_log.permissions.sql
new file mode 100644
index 0000000..77cf723
--- /dev/null
+++ b/server/db/business.platform_broadcast_log.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbroadcastlog:create', '鏂板缓鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbroadcastlog:delete', '鍒犻櫎鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbroadcastlog:update', '淇敼鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbroadcastlog:query', '鏌ヨ鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformbroadcastlog:exportExcel', '瀵煎嚭鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�(Excel)', '鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_device.permissions.sql b/server/db/business.platform_device.permissions.sql
new file mode 100644
index 0000000..f02d771
--- /dev/null
+++ b/server/db/business.platform_device.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformdevice:create', '鏂板缓鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformdevice:delete', '鍒犻櫎鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformdevice:update', '淇敼鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformdevice:query', '鏌ヨ鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformdevice:exportExcel', '瀵煎嚭鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃(Excel)', '鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_group.permissions.sql b/server/db/business.platform_group.permissions.sql
new file mode 100644
index 0000000..74ea480
--- /dev/null
+++ b/server/db/business.platform_group.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformgroup:create', '鏂板缓鏈堝彴_鍒嗙粍淇℃伅琛�', '鏈堝彴_鍒嗙粍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformgroup:delete', '鍒犻櫎鏈堝彴_鍒嗙粍淇℃伅琛�', '鏈堝彴_鍒嗙粍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformgroup:update', '淇敼鏈堝彴_鍒嗙粍淇℃伅琛�', '鏈堝彴_鍒嗙粍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformgroup:query', '鏌ヨ鏈堝彴_鍒嗙粍淇℃伅琛�', '鏈堝彴_鍒嗙粍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformgroup:exportExcel', '瀵煎嚭鏈堝彴_鍒嗙粍淇℃伅琛�(Excel)', '鏈堝彴_鍒嗙粍淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_interface_log.permissions.sql b/server/db/business.platform_interface_log.permissions.sql
new file mode 100644
index 0000000..5d26bac
--- /dev/null
+++ b/server/db/business.platform_interface_log.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platforminterfacelog:create', '鏂板缓浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platforminterfacelog:delete', '鍒犻櫎浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platforminterfacelog:update', '淇敼浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platforminterfacelog:query', '鏌ヨ浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platforminterfacelog:exportExcel', '瀵煎嚭浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍(Excel)', '浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_job.permissions.sql b/server/db/business.platform_job.permissions.sql
new file mode 100644
index 0000000..28c4bc1
--- /dev/null
+++ b/server/db/business.platform_job.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformjob:create', '鏂板缓鏈堝彴璋冨害浣滀笟淇℃伅琛�', '鏈堝彴璋冨害浣滀笟淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformjob:delete', '鍒犻櫎鏈堝彴璋冨害浣滀笟淇℃伅琛�', '鏈堝彴璋冨害浣滀笟淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformjob:update', '淇敼鏈堝彴璋冨害浣滀笟淇℃伅琛�', '鏈堝彴璋冨害浣滀笟淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformjob:query', '鏌ヨ鏈堝彴璋冨害浣滀笟淇℃伅琛�', '鏈堝彴璋冨害浣滀笟淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformjob:exportExcel', '瀵煎嚭鏈堝彴璋冨害浣滀笟淇℃伅琛�(Excel)', '鏈堝彴璋冨害浣滀笟淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_log.permissions.sql b/server/db/business.platform_log.permissions.sql
new file mode 100644
index 0000000..fff9343
--- /dev/null
+++ b/server/db/business.platform_log.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformlog:create', '鏂板缓鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformlog:delete', '鍒犻櫎鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformlog:update', '淇敼鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformlog:query', '鏌ヨ鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformlog:exportExcel', '瀵煎嚭鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�(Excel)', '鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_queue.permissions.sql b/server/db/business.platform_queue.permissions.sql
new file mode 100644
index 0000000..4f34009
--- /dev/null
+++ b/server/db/business.platform_queue.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformqueue:create', '鏂板缓鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformqueue:delete', '鍒犻櫎鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformqueue:update', '淇敼鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformqueue:query', '鏌ヨ鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformqueue:exportExcel', '瀵煎嚭鏈堝彴_鍙彿鎺掗槦淇℃伅琛�(Excel)', '鏈堝彴_鍙彿鎺掗槦淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_show_param.permissions.sql b/server/db/business.platform_show_param.permissions.sql
new file mode 100644
index 0000000..f782681
--- /dev/null
+++ b/server/db/business.platform_show_param.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformshowparam:create', '鏂板缓鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformshowparam:delete', '鍒犻櫎鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformshowparam:update', '淇敼鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformshowparam:query', '鏌ヨ鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformshowparam:exportExcel', '瀵煎嚭鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�(Excel)', '鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_wms_detail.permissions.sql b/server/db/business.platform_wms_detail.permissions.sql
new file mode 100644
index 0000000..5e7aa24
--- /dev/null
+++ b/server/db/business.platform_wms_detail.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsdetail:create', '鏂板缓鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsdetail:delete', '鍒犻櫎鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsdetail:update', '淇敼鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsdetail:query', '鏌ヨ鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsdetail:exportExcel', '瀵煎嚭鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�(Excel)', '鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/db/business.platform_wms_job.permissions.sql b/server/db/business.platform_wms_job.permissions.sql
new file mode 100644
index 0000000..0c08dc3
--- /dev/null
+++ b/server/db/business.platform_wms_job.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsjob:create', '鏂板缓鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsjob:delete', '鍒犻櫎鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsjob:update', '淇敼鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsjob:query', '鏌ヨ鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformwmsjob:exportExcel', '瀵煎嚭鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁(Excel)', '鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/api/business/MeetingController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/api/business/MeetingController.java
index d7ce866..ba5284e 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/api/business/MeetingController.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/api/business/MeetingController.java
@@ -7,6 +7,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.QrCodeUtils;
+import com.doumee.dao.admin.request.BusinessOverDTO;
 import com.doumee.dao.business.model.Bookings;
 import com.doumee.dao.web.request.BookingsRequest;
 import com.doumee.dao.web.request.MeetingPageRequest;
@@ -45,7 +46,6 @@
     @ApiOperation(value = "褰撴湀浼氳琛�", notes = "褰撴湀浼氳琛�")
     @GetMapping("/monthMeeting")
     @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "yearMonth", value = "骞存湀  yyyy-MM", required = true)
     })
     public ApiResponse<List<MonthDataResponse>> monthDay(@RequestParam String yearMonth) {
@@ -66,9 +66,6 @@
 
     @ApiOperation("鎴戠殑浼氳鍒楄〃")
     @PostMapping("/myMeetingPage")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
     public ApiResponse<IPage<MeetingListResponse>> myMeetingPage(@RequestBody PageWrap<MeetingPageRequest> pageWrap) {
         LoginUserInfo user = getLoginUser(null);
         pageWrap.getModel().setUserId(user.getId());
@@ -81,7 +78,6 @@
     @ApiOperation("浼氳璇︽儏")
     @GetMapping("/meetingDetail")
     @ApiImplicitParams({
-//            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "浼氳涓婚敭", required = true),
     })
     public ApiResponse<MeetingDetailResponse> meetingDetail(@RequestParam Integer id) {
@@ -91,7 +87,6 @@
     @ApiOperation("鑾峰彇浼氳寮�闂ㄤ簩缁寸爜")
     @GetMapping("/getQrCode")
     @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "浼氳涓婚敭", required = true),
     })
     public ApiResponse<String> getQrCode(@RequestParam Integer id) {
@@ -102,9 +97,7 @@
     @ApiOperation("鑾峰彇浼氳寮�闂ㄤ簩缁寸爜-鍥剧墖娴�")
     @GetMapping("/getQrCodeImg")
     @ApiImplicitParams({
-//            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "浼氳涓婚敭", required = true),
-            @ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
     })
     public void getQrCodeImg(@RequestParam Integer id,@RequestParam String token, HttpServletResponse response) throws  Exception {
         LoginUserInfo user = getLoginUser(null);
@@ -117,9 +110,6 @@
 
     @ApiOperation("浼氳棰勭害")
     @PostMapping("/reservationMeeting")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
     public ApiResponse<Integer> reservationMeeting(@RequestBody BookingsRequest bookingsRequest) {
         LoginUserInfo user = getLoginUser(null);
         bookingsRequest.setCreator(user.getId());
@@ -128,14 +118,21 @@
     }
 
     @ApiOperation("鍙栨秷浼氳棰勭害")
-    @GetMapping("/reservationCancel")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "浼氳涓婚敭", required = true),
-    })
-    public ApiResponse reservationCancel(@RequestParam Integer id) {
+    @PostMapping("/reservationCancel")
+    public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO) {
         LoginUserInfo user = getLoginUser(null);
-        bookingsService.reservationCancel(id,user.getId());
+        businessOverDTO.setUserId(user.getId());
+        bookingsService.reservationCancel(businessOverDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+    @ApiOperation("鎻愬墠缁撴潫浼氳")
+    @PostMapping("/reservationOver")
+    public ApiResponse reservationOver(@RequestBody BusinessOverDTO businessOverDTO) {
+        LoginUserInfo user = getLoginUser(null);
+        businessOverDTO.setUserId(user.getId());
+        bookingsService.reservationOver(businessOverDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java
index ce4d517..5555a88 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/api/common/HomeController.java
@@ -60,7 +60,7 @@
         bookquery.eq(Bookings::getIsdeleted, Constants.ZERO);
         bookquery.eq(Bookings::getStatus, Constants.ZERO);
         bookquery.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d') " );
-        Integer   todayBookingsNum= bookingsJoinMapper.selectCount(bookquery);
+        Long  todayBookingsNum= bookingsJoinMapper.selectCount(bookquery);
         json.put("todayBookingsNum",todayBookingsNum);
 
         //浠婃棩浼氳鏃堕暱锛堝皬鏃讹級
@@ -136,7 +136,7 @@
         MPJLambdaWrapper<Rooms> rm1 = new MPJLambdaWrapper<>();
         rm1.eq(Rooms::getIsdeleted, Constants.ZERO);
         rm1.eq(Rooms::getStatus, Constants.ZERO);
-        Integer roomNum=  roomsJoinMapper.selectCount(rm1);
+        Long roomNum=  roomsJoinMapper.selectCount(rm1);
         json.put("roomNum",roomNum);
 
         //鍛樺伐鏁伴噺
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java
index 412059b..db86fe6 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java
@@ -8,6 +8,7 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.QrCodeUtils;
+import com.doumee.dao.admin.request.BusinessOverDTO;
 import com.doumee.dao.business.model.Bookings;
 import com.doumee.dao.web.request.BookingsRequest;
 import com.doumee.dao.web.request.MeetingPageRequest;
@@ -130,18 +131,25 @@
         return ApiResponse.success("鎿嶄綔鎴愬姛",bookingsService.reservationMeeting(bookingsRequest));
     }
 
+
     @ApiOperation("鍙栨秷浼氳棰勭害")
-    @GetMapping("/reservationCancel")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "浼氳涓婚敭", required = true),
-    })
-    public ApiResponse reservationCancel(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-//        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+    @PostMapping("/reservationCancel")
+    public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         LoginUserInfo user = getLoginUser(token);
-        bookingsService.reservationCancel(id,user.getId());
+        businessOverDTO.setUserId(user.getId())   ;
+        bookingsService.reservationCancel(businessOverDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @ApiOperation("鎻愬墠缁撴潫浼氳")
+    @PostMapping("/reservationOver")
+    public ApiResponse reservationOver(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo user = getLoginUser(token);
+        businessOverDTO.setUserId(user.getId());
+        bookingsService.reservationOver(businessOverDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
 
 }
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
index 0c70925..c72c15d 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
@@ -8,6 +8,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.admin.request.BusinessOverDTO;
 import com.doumee.dao.business.model.Bookings;
 import com.doumee.dao.system.vo.UserResponse;
 import com.doumee.dao.web.request.BookingsRequest;
@@ -143,16 +144,23 @@
     }
 
     @ApiOperation("鍙栨秷浼氳棰勭害")
-    @GetMapping("/reservationCancel")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "浼氳涓婚敭", required = true),
-    })
-    public ApiResponse reservationCancel(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+    @PostMapping("/reservationCancel")
+    public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         LoginUserInfo user = getLoginUser(token);
-        bookingsService.reservationCancel(id,user.getId());
+        businessOverDTO.setUserId(user.getId());
+        bookingsService.reservationCancel(businessOverDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
 
+    @ApiOperation("鎻愬墠缁撴潫浼氳")
+    @PostMapping("/reservationOver")
+    public ApiResponse reservationOver(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo user = getLoginUser(token);
+        businessOverDTO.setUserId(user.getId());
+        bookingsService.reservationOver(businessOverDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
 
 }
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
index 2146546..b4b243e 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.doumee.api.BaseController;
-import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.LoginUserInfo;
diff --git a/server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml b/server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml
index aa4dfc5..b93e438 100644
--- a/server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml
+++ b/server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml
@@ -16,6 +16,7 @@
       config:
         server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
         namespace: dmvisit
+#        namespace: dev_renkang
         username: nacos
         password: nacos
 #        file-extension: yaml
@@ -23,6 +24,7 @@
 #        data-id: com.doumee.meeting.admin
       discovery:
         server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+#        namespace: dev_renkang
         namespace: dmvisit
         username: nacos
         password: nacos
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/JwtPayLoad.java b/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/JwtPayLoad.java
deleted file mode 100644
index 065a6cd..0000000
--- a/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/JwtPayLoad.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.doumee.config.Jwt;
-
-import io.swagger.models.auth.In;
-import lombok.Data;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * jwt鐨勭浜岄儴鍒�
- *
- * @author fengshuonan
- * @Date 2019/7/20 20:45
- */
-@Data
-public class JwtPayLoad {
-
-    /**
-     * 鐢ㄦ埛id
-     */
-    private Integer memberId;
-    private long expire;
-
-
-    public JwtPayLoad() {
-    }
-
-    public JwtPayLoad(Integer memberId) {
-        this.memberId = memberId;
-    }
-
-    /**
-     * payload杞寲涓簃ap褰㈠紡
-     *
-     * @author fengshuonan
-     * @Date 2019/7/20 20:50
-     */
-    public Map<String, Object> toMap() {
-        HashMap<String, Object> map = new HashMap<>();
-        map.put("memberId", this.memberId);
-        return map;
-    }
-
-    /**
-     * payload杞寲涓簃ap褰㈠紡
-     *
-     * @author fengshuonan
-     * @Date 2019/7/20 20:50
-     */
-    public static JwtPayLoad toBean(Map<String, Object> map) {
-        if (map == null || map.size() == 0) {
-            return new JwtPayLoad();
-        } else {
-            JwtPayLoad jwtPayLoad = new JwtPayLoad();
-            jwtPayLoad.setMemberId((Integer) map.get("memberId"));
-
-            return jwtPayLoad;
-        }
-    }
-
-
-
-}
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java b/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
deleted file mode 100644
index e368861..0000000
--- a/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- * Copyright 2018-2020 stylefeng & fengshuonan (sn93@qq.com)
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.doumee.config.Jwt;
-
-
-import io.jsonwebtoken.*;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.Date;
-import java.util.Map;
-
-/**
- * <p>鍚庡彴绯荤粺jwt token宸ュ叿绫�</p>
- * <pre>
- *     jwt鐨刢laim閲屼竴鑸寘鍚互涓嬪嚑绉嶆暟鎹�:
- *         1. iss -- token鐨勫彂琛岃��
- *         2. sub -- 璇WT鎵�闈㈠悜鐨勭敤鎴�
- *         3. aud -- 鎺ユ敹璇WT鐨勪竴鏂�
- *         4. exp -- token鐨勫け鏁堟椂闂�
- *         5. nbf -- 鍦ㄦ鏃堕棿娈典箣鍓�,涓嶄細琚鐞�
- *         6. iat -- jwt鍙戝竷鏃堕棿
- *         7. jti -- jwt鍞竴鏍囪瘑,闃叉閲嶅浣跨敤
- * </pre>
- *
- * @author fengshuonan
- * @Date 2017/8/25 10:59
- */
-public class JwtTokenUtil {
-    //Header 鍚嶇О
-    public static final String HEADER_KEY = "token";
-    //鍙栧�煎悕绉�
-    public static final String UserId_Name = "AppUserId";
-    //鍔犲瘑瀵嗛挜
-    private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1";
-    //杩囨湡鏃堕棿(s) 86400L=1澶� 604800L=7澶�
-    private static final long expire = 86400L;
-
-    /**
-     * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
-     */
-    public static String generateToken(JwtPayLoad jwtPayLoad) {
-        Long expiredSeconds = getExpireSeconds();
-        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
-        return generateToken(jwtPayLoad.getMemberId(), expirationDate, jwtPayLoad.toMap());
-    }
-
-    /**
-     * 楠岃瘉token鏄惁澶辨晥
-     */
-    public static Boolean isTokenExpired(String token) {
-        try {
-            final Date expiration = getExpirationDateFromToken(token);
-            return expiration.before(new Date());
-        } catch (ExpiredJwtException expiredJwtException) {
-            return true;
-        }
-    }
-
-    /**
-     * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
-     */
-    public static String generateTokenOld(JwtPayLoad jwtPayLoad) {
-        Long expiredSeconds = getExpireSeconds();
-        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
-        return generateToken(jwtPayLoad.getMemberId(), expirationDate, jwtPayLoad.toMap());
-    }
-
-    /**
-     * 鑾峰彇jwt鐨刾ayload閮ㄥ垎
-     */
-    public static JwtPayLoad getJwtPayLoad(String token) {
-        Claims claimFromToken = getClaimFromToken(token);
-        return JwtPayLoad.toBean(claimFromToken);
-    }
-
-    /**
-     * 瑙f瀽token鏄惁姝g‘(true-姝g‘, false-閿欒)
-     */
-    public static Boolean checkToken(String token) {
-        try {
-            String jwtSecret = getJwtSecret();
-            Jwts.parser().setSigningKey(jwtSecret).parseClaimsJws(token).getBody();
-            return true;
-        } catch (JwtException e) {
-            return false;
-        }
-    }
-
-    /**
-     * 楠岃瘉token鏄惁澶辨晥
-     */
-    public static Boolean isTokenExpiredOld(String token) {
-        try {
-            final Date expiration = getExpirationDateFromToken(token);
-            return expiration.before(new Date());
-        } catch (ExpiredJwtException expiredJwtException) {
-            return true;
-        }
-    }
-
-    // 浠巘oken涓幏鍙栫敤鎴稩D
-    public static String getUserId(String token){
-        return getClaimFromToken(token).getSubject();
-    }
-
-    /**
-     * 鑾峰彇jwt澶辨晥鏃堕棿
-     */
-    public static Date getExpirationDateFromToken(String token) {
-        return getClaimFromToken(token).getExpiration();
-    }
-
-    /**
-     * 鐢熸垚token,鏍规嵁userId鍜岃繃鏈熸椂闂�
-     */
-    public static String generateToken(Integer userId, Date exppiredDate, Map<String, Object> claims) {
-
-        final Date createdDate = new Date();
-        String secret = getJwtSecret();
-
-        if (claims == null) {
-            return Jwts.builder()
-                    .setSubject(userId.toString())
-                    .setIssuedAt(createdDate)
-                    .setExpiration(exppiredDate)
-                    .signWith(SignatureAlgorithm.HS512, secret)
-                    .compact();
-        } else {
-            return Jwts.builder()
-                    .setClaims(claims)
-                    .setSubject(userId.toString())
-                    .setIssuedAt(createdDate)
-                    .setExpiration(exppiredDate)
-                    .signWith(SignatureAlgorithm.HS512, secret)
-                    .compact();
-        }
-    }
-
-    /**
-     * 鑾峰彇jwt鐨刾ayload閮ㄥ垎
-     */
-    public static Claims getClaimFromToken(String token) {
-        if (StringUtils.isBlank(token)) {
-            throw new IllegalArgumentException("token鍙傛暟涓虹┖锛�");
-        }
-        String jwtSecret = getJwtSecret();
-        return Jwts.parser().setSigningKey(jwtSecret).parseClaimsJws(token).getBody();
-    }
-
-    /**
-     * 鑾峰彇绯荤粺鍦板瘑閽�
-     */
-    private static String getJwtSecret() {
-        return jwtSecret;
-    }
-
-    /**
-     * 鑾峰彇绯荤粺鍦板瘑閽ヨ繃鏈熸椂闂达紙鍗曚綅锛氱锛�
-     */
-    private static Long getExpireSeconds() {
-        return expire;
-    }
-}
\ No newline at end of file
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
deleted file mode 100644
index 70ad1ce..0000000
--- a/server/meeting/meeting_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.doumee.config.Jwt;
-
-import com.doumee.config.annotation.LoginRequired;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.utils.Constants;
-import io.jsonwebtoken.JwtException;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.method.HandlerMethod;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-//@Configuration
-public class WebMvcConfig implements WebMvcConfigurer {
-
-
-    @Autowired
-    private JdbcTemplate dao;
-
-    /**
-     * 娣诲姞鎷︽埅鍣�
-     */
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        //API鎺ュ彛JwtToken鎷︽埅鍣�
-        HandlerInterceptor TokenInterceptor = new HandlerInterceptor() {
-            @Override
-            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-                // 濡傛灉涓嶆槸鏄犲皠鍒版柟娉曠洿鎺ラ�氳繃
-                if (!(handler instanceof HandlerMethod)) {
-                    return true;
-                }
-                HandlerMethod handlerMethod = (HandlerMethod) handler;
-
-                Class<?> beanType = handlerMethod.getBeanType();
-
-//                Method method = handlerMethod.getMethod();
-
-                // 鏈� @LoginRequired 娉ㄨВ锛岄渶瑕佺櫥褰曡璇�
-                if (beanType.isAnnotationPresent(LoginRequired.class)) {
-                    //鑾峰彇token
-                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);  // 浠� http 璇锋眰澶翠腑鍙栧嚭 token
-                    if (StringUtils.isNotBlank(token)) {
-                        checkLogin(request,response);
-                    } else {
-                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-                    }
-                }else if (handlerMethod.hasMethodAnnotation(LoginRequired.class)){
-                    //鑾峰彇token
-                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);  // 浠� http 璇锋眰澶翠腑鍙栧嚭 token
-                    if (StringUtils.isNotBlank(token)) {
-                        checkLogin(request,response);
-                    } else {
-                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-                    }
-                }
-                return true;
-            }
-        };
-        registry.addInterceptor(TokenInterceptor).addPathPatterns("/web/**");
-    }
-
-
-
-    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){
-        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
-        try {
-            //鍒ゆ柇Token鏄惁瓒呮椂
-            boolean expiration = JwtTokenUtil.isTokenExpired(token);
-            if (expiration) {
-                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
-            }
-            //鑾峰彇璐﹀彿ID
-            Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId();
-            Integer isDeleted = dao.queryForObject(" select COALESCE(DELETED,1)  from `system_user` where id  = ?", Integer.class, memberId);
-            if(isDeleted== Constants.ONE){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
-            }
-            Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,1)  from `system_user` where id  = ?", Integer.class, memberId);
-            if(isForbidden== Constants.ONE){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
-            }
-            Integer count = dao.queryForObject("select count(1) from `system_user` where id  = ?", Integer.class, memberId);
-            if (count != null && count > 0) {
-                request.setAttribute(JwtTokenUtil.UserId_Name, memberId);
-                return true;
-            }else{
-                throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鐢ㄦ埛淇℃伅鍑洪敊");
-            }
-        } catch (IllegalArgumentException | JwtException e) {
-            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-        }
-    }
-
-    @Bean
-    public RestTemplate getRestTemplate(){
-        return new RestTemplate();
-    }
-
-
-}
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java
new file mode 100644
index 0000000..ac5dc37
--- /dev/null
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java
@@ -0,0 +1,22 @@
+package com.doumee.dao.admin.request;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.DESUtil;
+import com.doumee.dao.admin.response.DevWgResponseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
+
+@Data
+@ApiModel("浼氳缁撴潫璇锋眰绫�")
+public class BusinessOverDTO {
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private  Integer id  ;
+    @ApiModelProperty(value = "涓氬姟鎿嶄綔澶囨敞")
+    private  String businessRemark;
+    @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",required = true)
+    private  Integer userId  ;
+
+}
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
index c5f169e..ac3f8c2 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
@@ -24,7 +24,8 @@
 
     @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," +
             " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUser ," +
-            " CASE  WHEN a.START_TIME > now() and a.`STATUS` = 0  THEN 1  WHEN a.END_TIME < now()  or a.`STATUS` = 1  THEN 3 ELSE 2  END meetingStatus , b.IMGURL as imgUrl ," +
+            " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN a.END_TIME < now() AND a.`STATUS` = 0  THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
+            " b.IMGURL as imgUrl ," +
             " a.remark  " +
             " from meeting_book a inner join meeting_rooms b  on a.ROOM_ID = b.ID  " +
             " inner join system_user c on a.CREATOR = c.id  " +
@@ -35,12 +36,12 @@
 
     @Select(" select a.id , a.START_TIME , a.END_TIME , b.id as roomId,  b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Y骞�%m鏈�%d鏃�') as meetingDate ," +
             " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUserName ," +
-            " CASE  WHEN a.START_TIME > now() and a.`STATUS` = 0  THEN 1  WHEN a.END_TIME < now()  or a.`STATUS` = 1  THEN 3 ELSE 2  END meetingStatus ," +
+            "  CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN a.END_TIME < now() AND a.`STATUS` = 0  THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
             " a.CONTENT as meetingContent, c.MOBILE as bookingUserMobile , e.`NAME` as bookingUserDepartment , a.CREATOR as bookingUserId  , a.remark  " +
             " from meeting_book a inner join meeting_rooms b  on a.ROOM_ID = b.ID  " +
-            " inner join system_user c on a.CREATOR = c.id " +
-            " inner join system_department_user d on c.id = d.USER_ID " +
-            " INNER JOIN system_department e on d.DEPARTMENT_ID = e.ID   " +
+            " left join system_user c on a.CREATOR = c.id " +
+            " left join system_department_user d on c.id = d.USER_ID " +
+            " left JOIN system_department e on d.DEPARTMENT_ID = e.ID   " +
             "  where a.id = #{id} ")
     MeetingDetailResponse meetingDetail(@Param("id") Integer id);
 
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/BookingTime.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/BookingTime.java
index 771bb2d..6fe3f53 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/BookingTime.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/BookingTime.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
@@ -58,4 +59,7 @@
     @ExcelColumn(name="鏃堕棿娈电紪鐮侊紙鍏宠仈room_time琛級")
     private Integer timeId;
 
+    @ApiModelProperty(value = "缁撴潫鏃堕棿  HH:mm",hidden = true)
+    @TableField(exist = false)
+    private String endTime;
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java
index 7b1a7b2..87769ee 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java
@@ -81,7 +81,7 @@
     @ApiModelProperty(value = "浼氳鍐呭")
     private String content;
 
-    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤")
+    @ApiModelProperty(value = "鐘舵�� 0宸查绾� 1宸叉挙閿� 2宸茬粨鏉� ")
     private Integer status;
 
     @ApiModelProperty(value = "鍙栨秷浜�")
@@ -93,7 +93,17 @@
     @ApiModelProperty(value = "鍙戦�侀�氱煡锛�0=鏈彂閫� 1=宸插彂閫�")
     private Integer sendNotice;
 
+    @ApiModelProperty(value = "鍙栨秷澶囨敞")
+    private String cancelInfo;
 
+    @ApiModelProperty(value = "鎻愬墠缁撴潫浜�")
+    private Integer doneUserId;
+
+    @ApiModelProperty(value = "鎻愬墠缁撴潫鏃堕棿")
+    private Date doneDate;
+
+    @ApiModelProperty(value = "鍙栨秷澶囨敞")
+    private String doneInfo;
 
     @ApiModelProperty(value = "棰勭害浜�")
     @TableField(exist = false)
@@ -162,4 +172,8 @@
     @ApiModelProperty(value = "weekday")
     @TableField(exist = false)
     private String weekday;
+
+    @ApiModelProperty(value = "浼氳鐘舵��: 1=鏈紑濮嬶紱2=杩涜涓紱3=宸茬粨鏉� ; 4=鍗冲皢寮�濮�; 5=宸叉挙閿�")
+    @TableField(exist = false)
+    private Integer meetingStatus;
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java
index 7fdf791..eb6c94e 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java
@@ -59,8 +59,8 @@
     @ExcelColumn(name="寮�鏀惧紑濮嬫椂闂�")
     private String startTime;
 
-    @ApiModelProperty(value = "寮�鍙戠粨鏉熸椂闂�")
-    @ExcelColumn(name="寮�鍙戠粨鏉熸椂闂�")
+    @ApiModelProperty(value = "寮�鏀剧粨鏉熸椂闂�")
+    @ExcelColumn(name="寮�鏀剧粨鏉熸椂闂�")
     private String endTime;
 
     @ApiModelProperty(value = "鐘舵�� 0鍙�� 1涓嶅彲閫� ", example = "1")
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/request/MeetingPageRequest.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/request/MeetingPageRequest.java
index 4a13c06..75332e5 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/request/MeetingPageRequest.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/request/MeetingPageRequest.java
@@ -31,4 +31,9 @@
 
     @ApiModelProperty(value = "浼氳瀹や富閿�")
     private Integer roomsId;
+
+    @ApiModelProperty(value = "浼氳鐘舵��: 1=鏈紑濮嬶紱2=杩涜涓紱3=宸茬粨鏉� ; 4=鍗冲皢寮�濮�; 5=宸叉挙閿�")
+    private Integer meetingStatus;
+
+
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java
index 40450f7..7ea8a40 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java
@@ -4,6 +4,7 @@
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.admin.request.BusinessOverDTO;
 import com.doumee.dao.admin.response.DevWgResponseParam;
 import com.doumee.dao.business.model.Bookings;
 import com.doumee.dao.business.vo.RoomStatisticsVo;
@@ -168,7 +169,7 @@
      * @param id
      * @param userId
      */
-    void reservationCancel(Integer id,Integer userId);
+    void reservationCancel(BusinessOverDTO businessOverDTO);
 
 
     /**
@@ -207,4 +208,6 @@
     void sendBookingsNotice();
 
     IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap);
+
+    void reservationOver(BusinessOverDTO businessOverDTO);
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 021421e..4baca41 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -16,6 +16,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.MeetConstants;
 import com.doumee.core.wx.SendWxMessage;
+import com.doumee.dao.admin.request.BusinessOverDTO;
 import com.doumee.dao.admin.request.QrOpenDoorDto;
 import com.doumee.dao.admin.response.DevWgResponseParam;
 import com.doumee.dao.business.*;
@@ -188,6 +189,7 @@
         bookquery.selectAs(BookingTime::getTimeId, Bookings::getRoomTimeId);
         bookquery.selectAs(BookingTime::getId, Bookings::getBookingTimeId);
         bookquery.eq(Bookings::getIsdeleted, MeetConstants.ZERO);
+        bookquery.eq(BookingTime::getIsdeleted, MeetConstants.ZERO);
         bookquery.eq(Bookings::getRoomId, bookings.getRoomId());
         bookquery.eq(Bookings::getStatus, MeetConstants.ZERO);
         //bookquery.ge(Bookings::getStartTime, bookings.getStartTime());
@@ -199,6 +201,14 @@
         List<Bookings> bookList = bookingsJoinMapper.selectJoinList(Bookings.class, bookquery);
         for (int i = 0; i < bookings.getBookingTimeList().size(); i++) {
             BookingTime s = bookings.getBookingTimeList().get(i);
+            RoomTime roomTime = roomTimeJoinMapper.selectById(s.getTimeId());
+            if(Objects.isNull(roomTime)){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀛樺湪鏈煡璇㈠埌鐨勯厤缃棩鏈燂紝璇峰埛鏂伴噸璇�");
+            }
+            String endRoomTime = gsDate + " " + roomTime.getEndTime()+":00";
+            if(DateUtil.StringToDate(endRoomTime, "yyyy-MM-dd HH:mm:ss").getTime()<=System.currentTimeMillis()){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),endRoomTime + "宸茶秴杩囧綋鍓嶆椂闂达紝鏃犳硶杩涜棰勭害");
+            }
             if (!Objects.isNull(bookList) && bookList.size() > MeetConstants.ZERO) {
                 List<Bookings> detailDataDtoStream =
                         bookList.stream().filter(a -> MeetConstants.equalsInteger(s.getTimeId(), a.getRoomTimeId())
@@ -213,7 +223,6 @@
                                         .filter(a -> MeetConstants.equalsInteger(a.getRoomTimeId(), s.getTimeId()))
                                         .collect(Collectors.toList());
                         if (chriList.size() > 0) {
-                            RoomTime roomTime = roomTimeJoinMapper.selectById(s.getTimeId());
                             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ細璁細" + roomTime.getStartTime() + "-" + roomTime.getEndTime() + "鏃堕棿娈靛唴宸茶浣跨敤");
                         }
                     } else {
@@ -223,7 +232,6 @@
                                         .filter(a -> MeetConstants.equalsInteger(a.getRoomTimeId(), s.getTimeId()))
                                         .collect(Collectors.toList());
                         if (chriList.size() > 0) {
-                            RoomTime roomTime = roomTimeJoinMapper.selectById(s.getTimeId());
                             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ細璁細" + roomTime.getStartTime() + "-" + roomTime.getEndTime() + "鏃堕棿娈靛唴宸茶浣跨敤");
                         }
                     }
@@ -245,14 +253,13 @@
 
 
         bookings.getBookingTimeList().stream().forEach(s -> {
+            s.setId(null);
             s.setCreator(user.getId());
             s.setCreateDate(new Date());
             s.setIsdeleted(MeetConstants.ZERO);
             s.setBookingId(bookings.getId());
             bookingTimeJoinMapper.insert(s);
         });
-
-
     }
 
     public void updateManager(Bookings bookings, LoginUserInfo user) {
@@ -265,16 +272,18 @@
             userRel.setIsdeleted(MeetConstants.ONE);
             userRelJoinMapper.update(userRel, updateWrapper);
         }
-        bookings.getSysList().stream().forEach(s -> {
-            s.setIsdeleted(MeetConstants.ZERO);
-            s.setCreateDate(new Date());
-            s.setCreator(user.getId());
-            s.setUserId(s.getUserId());
-            s.setObjId(bookings.getId());
-            s.setObjType(MeetConstants.ONE);
-            userRelJoinMapper.insert(s);
-        });
-
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(bookings.getSysList())){
+            bookings.getSysList().stream().forEach(s -> {
+                s.setId(null);
+                s.setIsdeleted(MeetConstants.ZERO);
+                s.setCreateDate(new Date());
+                s.setCreator(user.getId());
+                s.setUserId(s.getUserId());
+                s.setObjId(bookings.getId());
+                s.setObjType(MeetConstants.ONE);
+                userRelJoinMapper.insert(s);
+            });
+        }
     }
 
     public void updateProjectRel(Bookings rooms, LoginUserInfo user) {
@@ -288,7 +297,7 @@
             projectRelJoinMapper.update(projectRel, updateWrapper);
 
             rooms.getProjectList().stream().forEach(s -> {
-
+                s.setId(null);
                 s.setIsdeleted(MeetConstants.ZERO);
                 s.setCreateDate(new Date());
                 s.setCreator(user.getId());
@@ -466,7 +475,7 @@
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()), Bookings::getName, pageWrap.getModel().getName());
         queryWrapper.eq(pageWrap.getModel().getStatus() != null, Bookings::getStatus, pageWrap.getModel().getStatus());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getRealName()), SystemUser::getRealname, pageWrap.getModel().getRealName());
-        queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, SystemUser::getId, pageWrap.getModel().getDepartmentId());
+        queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, Company::getId, pageWrap.getModel().getDepartmentId());
 
         if (pageWrap.getModel().getStartTime() != null) {
             queryWrapper.ge(Bookings::getStartTime, pageWrap.getModel().getStartTime());
@@ -483,6 +492,13 @@
         SimpleDateFormat format1 = new SimpleDateFormat("HH:mm");
         IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper);
         result.getRecords().stream().forEach(s -> {
+            if(s.getStartTime().getTime()>System.currentTimeMillis()&&s.getStatus().equals(Constants.ZERO)){
+                s.setMeetingStatus(Constants.ONE);
+            }else if(s.getEndTime().getTime()<System.currentTimeMillis()||Constants.equalsInteger(s.getStatus(),Constants.ONE) || Constants.equalsInteger(s.getStatus(),Constants.TWO) ){
+                s.setMeetingStatus(Constants.THREE);
+            }else{
+                s.setMeetingStatus(Constants.TWO);
+            }
             MPJLambdaWrapper<Multifile> bookquery = new MPJLambdaWrapper<>();
             bookquery.eq(Multifile::getIsdeleted, MeetConstants.ZERO);
             bookquery.eq(Multifile::getObjId, s.getId());
@@ -758,38 +774,59 @@
      */
     @Override
     public IPage<MeetingListResponse> getMyMeetingPage(PageWrap<MeetingPageRequest> pageWrap) {
-        IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), new QueryWrapper<MeetingListResponse>()
+
+        QueryWrapper queryWrapper = new QueryWrapper<MeetingListResponse>()
                 .and(StringUtils.isNotBlank(pageWrap.getModel().getRoomsName()),
                         j -> j.like("a.NAME",pageWrap.getModel().getRoomsName()).or()
                                 .like(" b.NAME", pageWrap.getModel().getRoomsName()))
-                        .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.ONE) && !Objects.isNull(pageWrap.getModel().getUserId()),
-                                " select 1 from meeting_user_rel u where a.id = u.OBJ_ID and  u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ")
-                        .eq(pageWrap.getModel().getQueryType().equals(MeetConstants.TWO) && !Objects.isNull(pageWrap.getModel().getUserId()), "a.CREATOR", pageWrap.getModel().getUserId())
-                        .like(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()), "a.START_TIME", pageWrap.getModel().getQueryDate())
-                        .eq(!Objects.isNull(pageWrap.getModel().getRoomsId()), "b.id", pageWrap.getModel().getRoomsId())
-                        .apply(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.ONE), " now() < a.END_TIME and a.STATUS = 0   ")
-                        .and(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.TWO),
-                                j -> j.apply("now() >= a.END_TIME ").or()
-                                        .eq(" a.STATUS", MeetConstants.ONE))
-                        .eq("b.ISDELETED",MeetConstants.ZERO)
-                        .eq("b.STATUS",MeetConstants.ZERO)
-                        .eq("a.ISDELETED",MeetConstants.ZERO)
-                        .orderByDesc(!Objects.isNull(pageWrap.getModel().getStatus())&&pageWrap.getModel().getStatus().equals(MeetConstants.TWO),"a.START_TIME")
-                        .orderByAsc(Objects.isNull(pageWrap.getModel().getStatus())||pageWrap.getModel().getStatus().equals(MeetConstants.ONE),"a.START_TIME")
-        );
+                .exists(pageWrap.getModel().getQueryType().equals(MeetConstants.ONE) && !Objects.isNull(pageWrap.getModel().getUserId()),
+                        " select 1 from meeting_user_rel u where a.id = u.OBJ_ID and  u.USER_ID = '" + pageWrap.getModel().getUserId() + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ")
+                .eq(pageWrap.getModel().getQueryType().equals(MeetConstants.TWO) && !Objects.isNull(pageWrap.getModel().getUserId()), "a.CREATOR", pageWrap.getModel().getUserId())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()), "a.START_TIME", pageWrap.getModel().getQueryDate())
+                .eq(!Objects.isNull(pageWrap.getModel().getRoomsId()), "b.id", pageWrap.getModel().getRoomsId())
+                .apply(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.ONE), " now() < a.END_TIME and a.STATUS = 0   ")
+                .and(!Objects.isNull(pageWrap.getModel().getStatus()) && pageWrap.getModel().getStatus().equals(MeetConstants.TWO),
+                        j -> j.apply("now() >= a.END_TIME ").or()
+                                .eq(" a.STATUS", MeetConstants.ONE))
+                .eq("b.ISDELETED",MeetConstants.ZERO)
+                .eq("b.STATUS",MeetConstants.ZERO)
+                .eq("a.ISDELETED",MeetConstants.ZERO)
+                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
+                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE),
+                        " now() > a.START_TIME and a.status = 0 "
+                )
+                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
+                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.TWO),
+                        " now() >= a.START_TIME and a.END_TIME >= now() "
+                )
+                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
+                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.THREE),
+                        " now() > a.END_TIME or a.status  = 2 "
+                )
+                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
+                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FOUR),
+                        " now() > a.START_TIME  and   SUBDATE(NOW(), INTERVAL 120 MINUTE) > a.START_TIME "
+                )
+                .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
+                                &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FIVE),
+                        " a.STATUS = 1  "
+                )
+//                        .orderByDesc(!Objects.isNull(pageWrap.getModel().getStatus())&&pageWrap.getModel().getStatus().equals(MeetConstants.TWO),"a.START_TIME")
+//                        .orderByAsc(Objects.isNull(pageWrap.getModel().getStatus())||pageWrap.getModel().getStatus().equals(MeetConstants.ONE),"a.START_TIME")
+                .orderByDesc( Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.TWO),"a.CREATE_DATE")
+                .orderByAsc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.ONE),"a.START_TIME");
+
+        IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), queryWrapper);
         String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
         page.getRecords().forEach(i -> {
             i.setPrefixUrl(path);
             if(i.getMeetingStatus().equals(Constants.ZERO)){
-                if(i.getStatus()==Constants.ONE){
-                    i.setMeetingStatus(5);
-                }else{
-                    //寮�濮嬪墠5鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮�
-                    if(DateUtil.afterMinutesDate(i.getStartTime(),-5).getTime()>System.currentTimeMillis()){
+                if(i.getMeetingStatus()==Constants.ONE){
+                    //寮�濮嬪墠120鍒嗛挓 澶т簬褰撳墠鏃堕棿 鍒欐樉绀哄嵆灏嗗紑濮�
+                    if(DateUtil.afterMinutesDate(i.getStartTime(),-120).getTime()>System.currentTimeMillis()){
                         i.setMeetingStatus(4);
                     }
                 }
-
             }
 
         });
@@ -928,18 +965,15 @@
 
     /**
      * 浼氳棰勭害璁板綍鍙栨秷
-     *
-     * @param id
-     * @param userId
      */
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void reservationCancel(Integer id, Integer userId) {
-        Bookings bookings = bookingsMapper.selectById(id);
+    public void reservationCancel(BusinessOverDTO businessOverDTO) {
+        Bookings bookings = bookingsMapper.selectById(businessOverDTO.getId());
         if (Objects.isNull(bookings)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌棰勭害璁板綍");
         }
-        if (!bookings.getCreator().equals(userId)) {
+        if (!bookings.getCreator().equals(businessOverDTO.getUserId())) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜鍙栨秷");
         }
         if (System.currentTimeMillis() > bookings.getStartTime().getTime()) {
@@ -949,10 +983,11 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏈鎿嶄綔澶辫触,棰勭害鐘舵�佸凡娴佽浆");
         }
         bookings.setCancelTime(new Date());
-        bookings.setCancelUser(userId);
+        bookings.setCancelUser(businessOverDTO.getUserId());
+        bookings.setCancelInfo(businessOverDTO.getBusinessRemark());
         bookings.setStatus(MeetConstants.ONE);
         bookings.setEditDate(new Date());
-        bookings.setEditor(userId);
+        bookings.setEditor(businessOverDTO.getUserId());
         bookingsMapper.updateById(bookings);
         //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡
         this.sendNotice(bookings, 3);
@@ -960,6 +995,63 @@
         sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
     }
 
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void reservationOver(BusinessOverDTO businessOverDTO) {
+        if(Objects.isNull(businessOverDTO)
+            || Objects.isNull(businessOverDTO.getUserId())
+            || Objects.isNull(businessOverDTO.getId())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Bookings bookings = bookingsMapper.selectById(businessOverDTO.getId());
+        if (Objects.isNull(bookings)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌棰勭害璁板綍");
+        }
+        Long userRelList = userRelMapper.selectCount(new QueryWrapper<UserRel>().lambda()
+                .eq(UserRel::getIsdeleted,Constants.ZERO)
+                .eq(UserRel::getObjId,bookings.getRoomId())
+                .eq(UserRel::getObjType,Constants.ONE)
+                .eq(UserRel::getUserId,businessOverDTO.getUserId()));
+
+        if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜璇ユ搷浣�");
+        }
+        if (System.currentTimeMillis() < bookings.getStartTime().getTime()) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳鏈紑濮�,鏃犳硶杩涜缁撴潫锛屽闇�璇ユ搷浣滆浣跨敤鍙栨秷鍔熻兘");
+        }
+        if (System.currentTimeMillis() > bookings.getEndTime().getTime()) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸茬粨鏉燂紝鏃犳硶杩涜璇ユ搷浣�");
+        }
+        if(!bookings.getStatus().equals(MeetConstants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏈鎿嶄綔澶辫触,浼氳鐘舵�佸凡娴佽浆");
+        }
+        bookings.setDoneDate(new Date());
+        bookings.setDoneUserId(businessOverDTO.getUserId());
+        bookings.setStatus(MeetConstants.TWO);
+        bookings.setEditDate(new Date());
+        bookings.setEditor(businessOverDTO.getUserId());
+        bookingsMapper.updateById(bookings);
+
+        //鏌ヨ鎵�鏈夌殑棰勭害鏃堕棿
+        List<BookingTime> bookingTimeList = bookingTimeJoinMapper.selectJoinList(BookingTime.class,
+                new MPJLambdaWrapper<BookingTime>()
+                        .selectAll(BookingTime.class)
+                        .selectAs(RoomTime::getEndTime,BookingTime::getEndTime)
+                        .leftJoin(RoomTime.class,RoomTime::getId,BookingTime::getTimeId)
+                        .eq(BookingTime::getBookingId,bookings.getId()));
+        //鑾峰彇褰撳ぉ  鍙湁褰撳ぉ鏃ユ湡鍐呭彲浠ュ鐞�
+        String today = DateUtil.dateToString(new Date(),"yyyy-mm-dd");
+        //寰幆鏍囪鏁版嵁涓哄凡鍒犻櫎 涓嶅啀鍗犵敤
+        for (BookingTime bookingTime:bookingTimeList) {
+            if(DateUtil.getDateFromString(today + " " + bookingTime.getEndTime() +":00").getTime()>System.currentTimeMillis()){
+                bookingTime.setIsdeleted(Constants.ZERO);
+                bookingTimeJoinMapper.updateById(bookingTime);
+            }
+        }
+
+    }
 
     /**
      * 瀹氭椂鍙戦�佷細璁� 鍗冲皢寮�濮嬮�氱煡
@@ -1020,7 +1112,7 @@
         Notices notices = new Notices(noticeObjectType,bookings.getId(),noticeObjectType.getInfo(),bookings.getCreator(), Constants.ZERO);
         noticeList.add(notices);
         if(noticeList.size()>0){
-            noticesMapper.insertBatchSomeColumn(noticeList);
+            noticesMapper.insert(noticeList);
         }
     }
 
@@ -1131,7 +1223,7 @@
     public IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap) {
         IPage<UserResponse> page = systemUserMapper.getUserPage(pageWrap.toPage(),new QueryWrapper<UserResponse>()
                 .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()), i -> i.like("c.realName", pageWrap.getModel().getKeyword())
-                        .or().like("e.name", pageWrap.getModel().getKeyword())
+                        .or().like("d.COMPANY_NAME_PATH", pageWrap.getModel().getKeyword())
                 )
                 .eq("c.DELETED",0)
                 .eq("c.status",0)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
index 16806fc..dd087e4 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
@@ -3,6 +3,7 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.MeetConstants;
 import com.doumee.dao.business.ProjectsMapper;
@@ -39,6 +40,7 @@
     public Integer create(Projects projects) {
 
         Projects insert = new Projects();
+        insert.setIsdeleted(Constants.ZERO);
         insert.setCreator(projects.getCreator());
         insert.setEditor(projects.getEditor());
         insert.setName(projects.getName());
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomTimeServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomTimeServiceImpl.java
index f4b43de..7a608f2 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomTimeServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomTimeServiceImpl.java
@@ -127,6 +127,7 @@
         bookquery.selectAs(BookingTime::getTimeId, Bookings::getRoomTimeId);
         bookquery.selectAs(BookingTime::getId, Bookings::getBookingTimeId);
         bookquery.eq(Bookings::getIsdeleted, Constants.ZERO);
+        bookquery.eq(BookingTime::getIsdeleted, Constants.ZERO);
         bookquery.eq(Bookings::getRoomId, roomTime.getRoomId());
         bookquery.eq(Bookings::getStatus,Constants.ZERO);
         bookquery.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT('" + DateUtil.dateToString(roomTime.getYudingDate(), "yyyy-MM-dd") + "','%Y-%m-%d') ");
diff --git a/server/meeting/meeting_service/src/main/resources/application-test.yml b/server/meeting/meeting_service/src/main/resources/application-test.yml
index e866548..05b003f 100644
--- a/server/meeting/meeting_service/src/main/resources/application-test.yml
+++ b/server/meeting/meeting_service/src/main/resources/application-test.yml
@@ -7,13 +7,23 @@
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
 
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
 
+#rocketmq:
+#  namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
+#  groupId: GID-wakatest
+#  topic: waka-test
+#  username: 4derRb4Sw5EkqUMI
+#  password: v50N97wf4av8Q8I4
+#
 #knife4j:
 #  enable: true
 #  basic:
 #    enable: true
 #    username: admin
-#    password: test@168.com
+#    password: 111111
 
 debug_model: true
 
@@ -26,4 +36,39 @@
   description: ${project.name}鎺ュ彛鏂囨。
   enabled: true
   # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
-  redirect-uri: /
\ No newline at end of file
+  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
+
+## MQTT##
+mqtt:
+  host: tcp://192.168.10.198:1883
+  userName: root
+  passWord: 123456
+  qos: 1
+  clientId: ClientId_local #ClientId_local蹇呴』鍞竴 姣斿浣犲凡缁忓畾浜嗗彨ABC  閭d綘灏变竴鐩村彨ABC  鍏朵粬鍦版柟灏变笉瑕佷娇鐢ˋBC浜�
+  timeout: 10
+  keepalive: 20
+  topic1: A/pick/warn/#  #绗﹀彿鏄唬琛ㄦ暣涓獁arn涓嬮潰鐨勫叏閮ㄥ瓙涓婚 娌℃湁鐞嗚В鐨勮瘽 鍙互鐧惧害浠旂粏鐞嗚В涓�涓�
+  topic2: A/cmd/resp
+  topic3: ABCF
+  topic4: ABCH
diff --git a/server/pom.xml b/server/pom.xml
index dd100ed..540fde6 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -22,6 +22,7 @@
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.3.12.RELEASE</version>
+    <relativePath/>
   </parent>
   <properties>
     <java.version>1.8</java.version>
diff --git a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
index 73b0de7..15152c8 100644
--- a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
+++ b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -14,7 +14,6 @@
 import com.doumee.service.system.SystemLoginService;
 import com.doumee.service.system.SystemUserService;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.server.reactive.ServerHttpRequest;
diff --git a/server/system_gateway/src/main/resources/bootstrap-dev.yml b/server/system_gateway/src/main/resources/bootstrap-dev.yml
index fc35934..5f046f3 100644
--- a/server/system_gateway/src/main/resources/bootstrap-dev.yml
+++ b/server/system_gateway/src/main/resources/bootstrap-dev.yml
@@ -6,8 +6,8 @@
       password: nacos
       discovery:
         server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+#        namespace: dmvisit
         namespace: dmvisit
-#        namespace: dev_renkang
         username: nacos
         password: nacos
     gateway:
diff --git a/server/system_service/pom.xml b/server/system_service/pom.xml
index d54b462..22a532c 100644
--- a/server/system_service/pom.xml
+++ b/server/system_service/pom.xml
@@ -18,7 +18,7 @@
         <swagger.bootstrap-ui.version>1.9.6</swagger.bootstrap-ui.version>
         <fastjson.version>1.2.70</fastjson.version>
         <druid.version>1.2.0</druid.version>
-        <mybatis.plus.version>3.4.2</mybatis.plus.version>
+        <mybatis.plus.version>3.5.7</mybatis.plus.version>
         <apache.shiro.version>1.7.0</apache.shiro.version>
         <oshi.version>5.7.0</oshi.version>
         <jna.version>5.7.0</jna.version>
@@ -68,27 +68,33 @@
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper-spring-boot-starter</artifactId>
-            <version>1.3.0</version>
-            <!--浣跨敤spring boot2鏁村悎 pagehelper-spring-boot-starter蹇呴』鎺掗櫎涓�涓嬩緷璧�
-                鍥犱负pagehelper-spring-boot-starter涔熷凡缁忓湪pom渚濊禆浜唌ybatis涓巑ybatis-spring
-                鎵�浠ヤ細涓巑ybatis-plus-boot-starter涓殑mybatis涓巑ybatis-spring鍙戠敓鍐茬獊
-            -->
-            <exclusions>
-                <exclusion>
-                    <groupId>org.mybatis</groupId>
-                    <artifactId>mybatis</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.mybatis</groupId>
-                    <artifactId>mybatis-spring</artifactId>
-                </exclusion>
-                <!-- 瑙e喅jsqlparser 渚濊禆鐗堟湰鍐茬獊-->
-                <exclusion>
-                    <artifactId>jsqlparser</artifactId>
-                    <groupId>com.github.jsqlparser</groupId>
-                </exclusion>
-            </exclusions>
+            <version>2.1.0</version>
         </dependency>
+
+        <!-- <dependency>
+             <groupId>com.github.pagehelper</groupId>
+             <artifactId>pagehelper-spring-boot-starter</artifactId>
+             <version>1.3.0</version>
+             &lt;!&ndash;浣跨敤spring boot2鏁村悎 pagehelper-spring-boot-starter蹇呴』鎺掗櫎涓�涓嬩緷璧�
+                 鍥犱负pagehelper-spring-boot-starter涔熷凡缁忓湪pom渚濊禆浜唌ybatis涓巑ybatis-spring
+                 鎵�浠ヤ細涓巑ybatis-plus-boot-starter涓殑mybatis涓巑ybatis-spring鍙戠敓鍐茬獊
+             &ndash;&gt;
+             <exclusions>
+                 <exclusion>
+                     <groupId>org.mybatis</groupId>
+                     <artifactId>mybatis</artifactId>
+                 </exclusion>
+                 <exclusion>
+                     <groupId>org.mybatis</groupId>
+                     <artifactId>mybatis-spring</artifactId>
+                 </exclusion>
+                 &lt;!&ndash; 瑙e喅jsqlparser 渚濊禆鐗堟湰鍐茬獊&ndash;&gt;
+                 &lt;!&ndash;<exclusion>
+                     <artifactId>jsqlparser</artifactId>
+                     <groupId>com.github.jsqlparser</groupId>
+                 </exclusion>&ndash;&gt;
+             </exclusions>
+         </dependency>-->
         <!-- 杩炴帴姹� -->
         <dependency>
             <groupId>com.alibaba</groupId>
diff --git a/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtProperties.java b/server/system_service/src/main/java/com/doumee/config/jwt/JwtProperties.java
similarity index 100%
rename from server/system_gateway/src/main/java/com/doumee/config/jwt/JwtProperties.java
rename to server/system_service/src/main/java/com/doumee/config/jwt/JwtProperties.java
diff --git a/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
similarity index 100%
rename from server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
rename to server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
diff --git a/server/system_service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java b/server/system_service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
deleted file mode 100644
index 1e97d85..0000000
--- a/server/system_service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.doumee.config.mybatis;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.core.injector.AbstractMethod;
-import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
-import com.baomidou.mybatisplus.core.metadata.TableInfo;
-import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
-import com.github.yulichang.injector.MPJSqlInjector;
-
-import java.util.List;
-
-public class EasySqlInjector extends MPJSqlInjector {
-    @Override
-    public List<AbstractMethod> getMethodList(Class<?> mapperClass ) {
-        // 娉ㄦ剰锛氭SQL娉ㄥ叆鍣ㄧ户鎵夸簡DefaultSqlInjector(榛樿娉ㄥ叆鍣�)锛岃皟鐢ㄤ簡DefaultSqlInjector鐨刧etMethodList鏂规硶锛屼繚鐣欎簡mybatis-plus鐨勮嚜甯︽柟娉�
-        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
-        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
-        return methodList;
-    }
-
-}
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java b/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java
index e91bb1e..ace8365 100644
--- a/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java
+++ b/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java
@@ -20,9 +20,5 @@
         interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
         return interceptor;
     }
-    @Bean
-    public EasySqlInjector sqlInjector() {
-        return new EasySqlInjector();
-    }
 
 }
diff --git a/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java b/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
index b686a17..4796b3f 100644
--- a/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
+++ b/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
@@ -27,6 +27,7 @@
     NOT_ALLOWED(5110, "涓嶅厑璁哥殑鎿嶄綔"),
     TOKEN_EXCEED_TIME(5111, "TOKEN杩囨湡"),
     NO_LOGIN(5112, "鏈櫥褰�"),
+    NO_ALLOW_LOGIN(5113, "璇ョ被鐢ㄦ埛涓嶅厑璁哥櫥褰�"),
     ;
 
     private int code;
diff --git a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
index aeb2b8b..6d84788 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
@@ -4,6 +4,7 @@
 import com.doumee.dao.system.model.SystemPermission;
 import com.doumee.dao.system.model.SystemRole;
 import com.doumee.dao.system.model.SystemUser;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.beans.BeanUtils;
 
@@ -38,6 +39,8 @@
     private String sessionId;
 
     private Date loginDate;
+    @ApiModelProperty(value = "璐︽埛鏉ユ簮锛�0=鍚庡彴娣诲姞 锛� 2=鍙告満娉ㄥ唽")
+    private Integer source;
 
     private List<String> roles;
 
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 6ba808c..42bbf6a 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
@@ -94,6 +94,7 @@
     public static final String ERP ="ERP" ;
     public static final Integer THREE =3 ;
     public static final Integer FOUR =4 ;
+    public static final Integer FIVE =5 ;
     public static final String ORG_USER_ORIGIN = "ORG_USER_ORIGIN";
     public static final String VIRTUAL_CARD_INDEX = "02098469790";
     public static final String RETRY_CONNECT_NUM ="RETRY_CONNECT_NUM" ;
@@ -404,7 +405,7 @@
 
 
 public interface  memberType{
-    int lw_visitor = 0;//鍔冲姟璁垮
+    int driver = 0;//鍙告満浜哄憳
     int visitor = 1;//鏅�氳瀹�
     int internal = 2;//鍐呴儴浜哄憳
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/business/dao/CompanyMapper.java b/server/system_service/src/main/java/com/doumee/dao/business/dao/CompanyMapper.java
index 9765f4d..bbf64fd 100644
--- a/server/system_service/src/main/java/com/doumee/dao/business/dao/CompanyMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/business/dao/CompanyMapper.java
@@ -11,5 +11,4 @@
  */
 public interface CompanyMapper extends BaseMapper<Company> {
 
-    void insertBatchSomeColumn(List<Company> addList);
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java
index 6b5e635..1b1d62b 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java
@@ -11,5 +11,4 @@
  */
 public interface MultifileMapper extends BaseMapper<Multifile> {
 
-    void insertBatchSomeColumn(List<Multifile> fileList);
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
index f0ba404..d4cec01 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
@@ -26,7 +26,6 @@
     List<SystemUserListVO> selectManageList(@Param("dto") QuerySystemUserDTO dto, @Param("orderByClause") String orderByClause);
 
 
-    void insertBatchSomeColumn(List<SystemUser> userList);
 
 
 
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java
new file mode 100644
index 0000000..e328a6c
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java
@@ -0,0 +1,24 @@
+package com.doumee.dao.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/05/04 18:21
+ */
+@Data
+@ApiModel("寰俊鐧诲綍鎺堟潈鍙傛暟")
+public class LoginAuthDTO implements Serializable {
+
+    @ApiModelProperty(value = "缂栫爜")
+    private String code;
+
+    @ApiModelProperty(value = "绫诲瀷")
+    private Integer soucre;
+
+}
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java
new file mode 100644
index 0000000..378715b
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/05/04 18:21
+ */
+@Data
+@ApiModel("鍏紬鍙风櫥褰曞弬鏁�")
+public class LoginByOpenidDTO implements Serializable {
+
+    @ApiModelProperty(value = "userId" , hidden = true)
+    private Integer userId;
+}
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java
index d08a08c..7e7ae5b 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java
@@ -1,8 +1,10 @@
 package com.doumee.dao.system.dto;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -22,9 +24,13 @@
     private Integer queryType;
 
     @ApiModelProperty(value = "寮�濮嬫棩鏈�")
+    @JsonFormat(pattern="yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date startDate;
 
     @ApiModelProperty(value = "缁撴潫鏃ユ湡")
+    @JsonFormat(pattern="yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
     @ApiModelProperty(value = "0璁垮瀹℃壒 1璁垮鎶ュ 2鐢ㄨ溅瀹℃壒 3闅愭偅澶勭悊 4鐗╂祦杞﹀鎵� 5绯荤粺绯荤粺")
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/join/NoticesJoinMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/join/NoticesJoinMapper.java
index 3588b69..dd4650f 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/join/NoticesJoinMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/join/NoticesJoinMapper.java
@@ -11,5 +11,4 @@
  */
 public interface NoticesJoinMapper extends MPJJoinMapper<Notices> {
 
-    void insertBatchSomeColumn(List<Notices> noticeList);
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java b/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
index ab03953..55ddcb5 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
@@ -100,7 +100,7 @@
     @ExcelColumn(name="鍏宠仈鍙傛暟3")
     private String param3;
 
-    @ApiModelProperty(value = "鍏宠仈鍙傛暟4")
+    @ApiModelProperty(value = "鎿嶄綔浜�")
     @ExcelColumn(name="鍏宠仈鍙傛暟4")
     private String param4;
 
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index 09c5017..196e1e6 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -104,7 +104,9 @@
     private Integer status;
     @ApiModelProperty(value = "浼佷笟缂栫爜锛堝叧鑱攃ompany锛�")
     private Integer companyId;
-    @ApiModelProperty(value = "0 鍚敤 1 绂佺敤")
+    @ApiModelProperty(value = "璐︽埛鏉ユ簮锛�0=鍚庡彴娣诲姞 锛� 2=鍙告満娉ㄥ唽")
+    private Integer source;
+    @ApiModelProperty(value = "鍏徃鍚嶇О")
     @TableField(exist = false)
     private String companyName;
     @ApiModelProperty(value = "鏁版嵁鏉冮檺鍐呴儴闂ㄧ紪鐮侀泦鍚�")
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
index a413735..15316fd 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
@@ -1,6 +1,7 @@
 package com.doumee.service.system;
 
 import com.doumee.core.model.LoginUserInfo;
+import com.doumee.dao.system.dto.LoginByOpenidDTO;
 import com.doumee.dao.system.dto.LoginDTO;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 
@@ -19,5 +20,14 @@
      * @date 2023/03/21 14:49
      */
     String loginByPassword (LoginDTO dto, HttpServletRequest request);
+
     LoginUserInfo loginByPasswordNew (LoginDTO dto, ServerHttpRequest request);
+
+    /**
+     * 鏍规嵁 openId鐧诲綍
+     * @param userId
+     * @param request
+     * @return
+     */
+    String loginByUserId(Integer userId);
 }
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 f83bec9..23d63ba 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
@@ -158,10 +158,12 @@
         if(noticesDTO.getQueryType().equals(Constants.ZERO)){
             queryWrapper.eq(Notices::getStatus,Constants.ZERO);
             queryWrapper.eq(Notices::getSendacopy,Constants.ZERO);
+            queryWrapper.eq(Notices::getParam2,Constants.ZERO);
             queryWrapper.eq(Notices::getUserId, noticesDTO.getMemberId());
         } else if(noticesDTO.getQueryType().equals(Constants.ONE)){
             queryWrapper.eq(Notices::getStatus,Constants.ONE);
             queryWrapper.eq(Notices::getSendacopy,Constants.ZERO);
+            queryWrapper.eq(Notices::getParam4,noticesDTO.getMemberId());
         } else if(noticesDTO.getQueryType().equals(Constants.TWO)){
             queryWrapper.eq(Notices::getParam3, noticesDTO.getMemberId());
         } else if (noticesDTO.getQueryType().equals(Constants.THREE)) {
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index e54e578..452cc27 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -1,15 +1,19 @@
 package com.doumee.service.system.impl;
 
+import com.doumee.config.jwt.JwtTokenUtil;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.dao.CompanyMapper;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.system.dto.LoginByOpenidDTO;
 import com.doumee.dao.system.dto.LoginDTO;
 import com.doumee.dao.system.model.*;
 import com.doumee.service.common.CaptchaService;
 import com.doumee.service.system.*;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -22,6 +26,7 @@
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
 import java.util.List;
@@ -58,6 +63,11 @@
 
     @Autowired
     private CompanyMapper companyMapper;
+
+    @Resource
+    private JwtTokenUtil jwtTokenUtil;
+
+
 
     @Override
     public String loginByPassword(LoginDTO dto, HttpServletRequest request) {
@@ -127,7 +137,6 @@
                 throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛�");
             }
         }
-
         // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
         SystemUser queryDto = new SystemUser();
         queryDto.setUsername(dto.getUsername());
@@ -135,6 +144,9 @@
         SystemUser user = systemUserService.findOne(queryDto);
         if (user == null) {
             throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+        }
+        if(!Constants.equalsInteger(user.getSource(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN);
         }
         String pwd = Utils.Secure.encryptPassword(new String(dto.getPassword()), user.getSalt());
         // 姣旇緝瀵嗙爜
@@ -158,4 +170,41 @@
         return  userInfo;
     }
 
+
+    /**
+     * 鍐呴儴浜哄憳 涓� 鍙告満 鏍规嵁code鏌ヨopenId鍚庤繘琛岀櫥褰曟帴鍙�
+     * @return
+     */
+    @Override
+    public String loginByUserId(Integer userId) {
+        SystemLoginLog loginLog = new SystemLoginLog();
+        loginLog.setLoginTime(new Date());
+        loginLog.setSystemVersion(systemVersion);
+        loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
+        loginLog.setServerIp(Utils.Server.getIP());
+
+        // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
+        SystemUser user = systemUserService.findById(userId);
+        if (user == null) {
+            throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+        }
+        Company company = new Company();
+        if(Objects.nonNull(user.getCompanyId())){
+            company = companyMapper.selectById(user.getCompanyId());
+        }
+        // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
+        List<SystemRole> roles = systemRoleService.findByUserId(user.getId());
+        List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId());
+
+        SystemRole rt = new SystemRole();
+        rt.setDeleted(Boolean.FALSE);
+        //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎
+        user.setCompanyIdList(systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user));
+
+        LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,company,null);
+        String token = jwtTokenUtil.generateToken(userInfo);
+
+        return  token;
+    }
+
 }
diff --git a/server/system_timer/src/main/resources/application-test.yml b/server/system_timer/src/main/resources/application-test.yml
index 03700b7..1659dd8 100644
--- a/server/system_timer/src/main/resources/application-test.yml
+++ b/server/system_timer/src/main/resources/application-test.yml
@@ -1,21 +1,21 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: doumee
     password: rtjgfEr@&0c0m
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
-
-  jackson:
-    time-zone: GMT+8
-    date-format: yyyy-MM-dd HH:mm:ss
   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
+
 #rocketmq:
 #  namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
 #  groupId: GID-wakatest
@@ -23,30 +23,31 @@
 #  username: 4derRb4Sw5EkqUMI
 #  password: v50N97wf4av8Q8I4
 
-#knife4j:
-#  enable: true
-#  basic:
-#    enable: true
+knife4j:
+  enable: true
+  basic:
+    enable: true
 #    username: admin
 #    password: 111111
 
 debug_model: true
-
-# Swagger閰嶇疆
-swagger:
-  host: dmtest.ahapp.net
-  title: ${project.name}鎺ュ彛鏂囨。
-  description: ${project.name}鎺ュ彛鏂囨。
-  enabled: true
-  context-path: /erp_api
-  # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
-  redirect-uri: /
 
 ########################鍚屾鏁版嵁妯″紡  ########################
 data-sync:
   org-user-data-origin: 1 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
   visitor-data-origin: 1 #璁垮鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
   need-deal-img: true #鏄惁闇�瑕佸鐞嗗浘鐗囨暟鎹�
+
+
+# Swagger閰嶇疆
+swagger:
+  host: 127.0.0.1
+  title: ${project.name}鎺ュ彛鏂囨。
+  description: ${project.name}鎺ュ彛鏂囨。
+  enabled: true
+  context-path:
+  # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
+  redirect-uri: /
 
 ########################寰俊鏀粯鐩稿叧閰嶇疆########################
 wx:
@@ -64,6 +65,7 @@
     appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
 
 
+
 des_pwd: 123456SDFKDJF
 
 ## MQTT##
diff --git a/server/system_timer/src/main/resources/bootstrap.yml b/server/system_timer/src/main/resources/bootstrap.yml
index 107b53b..5eb6d62 100644
--- a/server/system_timer/src/main/resources/bootstrap.yml
+++ b/server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: test
   application:
     name: systemTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/admin_timer/pom.xml b/server/visits/admin_timer/pom.xml
index 191358f..63b40a5 100644
--- a/server/visits/admin_timer/pom.xml
+++ b/server/visits/admin_timer/pom.xml
@@ -5,7 +5,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>com.doumee</groupId>
-        <artifactId>dmvisit</artifactId>
+        <artifactId>visits</artifactId>
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap.yml b/server/visits/admin_timer/src/main/resources/bootstrap.yml
index efae338..fb74d1e 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: test
   application:
     name: visitsTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/admin_timer/src/main/resources/logback-spring.xml b/server/visits/admin_timer/src/main/resources/logback-spring.xml
index c722d73..daa70cf 100644
--- a/server/visits/admin_timer/src/main/resources/logback-spring.xml
+++ b/server/visits/admin_timer/src/main/resources/logback-spring.xml
@@ -8,7 +8,6 @@
     <property name="log.path" value="logs/visitsTimer"></property>
     <property name="log.fileSize" value="100MB"></property>
     <property name="log.historyDays" value="7"></property>
-
     <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>ERROR</level>
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
index 7285243..39f5e8b 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -94,7 +94,7 @@
         for (String id : idArray ){
             idList.add(Integer.valueOf(id));
         }
-        memberService.deleteByIdInBatch(idList,this.getLoginUser(null));
+        memberService.deleteByIdInBatch(idList,this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
@@ -230,8 +230,6 @@
         memberService.batchRemoveBlock(idList,1,this.getLoginUser(token));
         return ApiResponse.success(null);
     }
-
-
 
     @ApiOperation("鏄惁鍙嫓璁跨姸鎬佷慨鏀�")
     @PostMapping("/updateCanVisitById")
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
new file mode 100644
index 0000000..dd1490d
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+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.core.utils.Constants;
+import com.doumee.dao.business.model.PlatformBooks;
+import com.doumee.service.business.PlatformBooksService;
+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/06/28 10:03
+ */
+@Api(tags = "鏈堝彴鍏ュ洯棰勭害淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platformBooks")
+public class PlatformBooksCloudController extends BaseController {
+
+    @Autowired
+    private PlatformBooksService platformBooksService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformbooks:create")
+    public ApiResponse create(@RequestBody PlatformBooks platformBooks) {
+        return ApiResponse.success(platformBooksService.create(platformBooks));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformbooks:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformBooksService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformbooks: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));
+        }
+        platformBooksService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformbooks:update")
+    public ApiResponse updateById(@RequestBody PlatformBooks platformBooks) {
+        platformBooksService.updateById(platformBooks);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformbooks:query")
+    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap) {
+        return ApiResponse.success(platformBooksService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("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")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformBooksService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBroadcastLogCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBroadcastLogCloudController.java
new file mode 100644
index 0000000..0b7d416
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBroadcastLogCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+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.core.utils.Constants;
+import com.doumee.dao.business.model.PlatformBroadcastLog;
+import com.doumee.service.business.PlatformBroadcastLogService;
+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/06/28 10:03
+ */
+@Api(tags = "鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platformBroadcastLog")
+public class PlatformBroadcastLogCloudController extends BaseController {
+
+    @Autowired
+    private PlatformBroadcastLogService platformBroadcastLogService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformbroadcastlog:create")
+    public ApiResponse create(@RequestBody PlatformBroadcastLog platformBroadcastLog) {
+        return ApiResponse.success(platformBroadcastLogService.create(platformBroadcastLog));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformbroadcastlog:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformBroadcastLogService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformbroadcastlog: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));
+        }
+        platformBroadcastLogService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformbroadcastlog:update")
+    public ApiResponse updateById(@RequestBody PlatformBroadcastLog platformBroadcastLog) {
+        platformBroadcastLogService.updateById(platformBroadcastLog);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformbroadcastlog:query")
+    public ApiResponse<PageData<PlatformBroadcastLog>> findPage (@RequestBody PageWrap<PlatformBroadcastLog> pageWrap) {
+        return ApiResponse.success(platformBroadcastLogService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:platformbroadcastlog:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<PlatformBroadcastLog> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(PlatformBroadcastLog.class).export(platformBroadcastLogService.findPage(pageWrap).getRecords(), "鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:platformbroadcastlog:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformBroadcastLogService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformDeviceCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformDeviceCloudController.java
new file mode 100644
index 0000000..4104693
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformDeviceCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+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.core.utils.Constants;
+import com.doumee.dao.business.model.PlatformDevice;
+import com.doumee.service.business.PlatformDeviceService;
+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/06/28 10:03
+ */
+@Api(tags = "鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platformDevice")
+public class PlatformDeviceCloudController extends BaseController {
+
+    @Autowired
+    private PlatformDeviceService platformDeviceService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformdevice:create")
+    public ApiResponse create(@RequestBody PlatformDevice platformDevice) {
+        return ApiResponse.success(platformDeviceService.create(platformDevice));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformdevice:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformDeviceService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformdevice: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));
+        }
+        platformDeviceService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformdevice:update")
+    public ApiResponse updateById(@RequestBody PlatformDevice platformDevice) {
+        platformDeviceService.updateById(platformDevice);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformdevice:query")
+    public ApiResponse<PageData<PlatformDevice>> findPage (@RequestBody PageWrap<PlatformDevice> pageWrap) {
+        return ApiResponse.success(platformDeviceService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:platformdevice:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<PlatformDevice> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(PlatformDevice.class).export(platformDeviceService.findPage(pageWrap).getRecords(), "鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:platformdevice:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformDeviceService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsDetailCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsDetailCloudController.java
new file mode 100644
index 0000000..c38e3f1
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsDetailCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+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.core.utils.Constants;
+import com.doumee.dao.business.model.PlatformWmsDetail;
+import com.doumee.service.business.PlatformWmsDetailService;
+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/06/28 10:03
+ */
+@Api(tags = "鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platformWmsDetail")
+public class PlatformWmsDetailCloudController extends BaseController {
+
+    @Autowired
+    private PlatformWmsDetailService platformWmsDetailService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformwmsdetail:create")
+    public ApiResponse create(@RequestBody PlatformWmsDetail platformWmsDetail) {
+        return ApiResponse.success(platformWmsDetailService.create(platformWmsDetail));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformwmsdetail:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformWmsDetailService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformwmsdetail: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));
+        }
+        platformWmsDetailService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformwmsdetail:update")
+    public ApiResponse updateById(@RequestBody PlatformWmsDetail platformWmsDetail) {
+        platformWmsDetailService.updateById(platformWmsDetail);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformwmsdetail:query")
+    public ApiResponse<PageData<PlatformWmsDetail>> findPage (@RequestBody PageWrap<PlatformWmsDetail> pageWrap) {
+        return ApiResponse.success(platformWmsDetailService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:platformwmsdetail:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<PlatformWmsDetail> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(PlatformWmsDetail.class).export(platformWmsDetailService.findPage(pageWrap).getRecords(), "鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:platformwmsdetail:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformWmsDetailService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java
new file mode 100644
index 0000000..03d84cf
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+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.core.utils.Constants;
+import com.doumee.dao.business.model.PlatformWmsJob;
+import com.doumee.service.business.PlatformWmsJobService;
+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/06/28 10:03
+ */
+@Api(tags = "鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platformWmsJob")
+public class PlatformWmsJobCloudController extends BaseController {
+
+    @Autowired
+    private PlatformWmsJobService platformWmsJobService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformwmsjob:create")
+    public ApiResponse create(@RequestBody PlatformWmsJob platformWmsJob) {
+        return ApiResponse.success(platformWmsJobService.create(platformWmsJob));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformwmsjob:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformWmsJobService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformwmsjob: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));
+        }
+        platformWmsJobService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformwmsjob:update")
+    public ApiResponse updateById(@RequestBody PlatformWmsJob platformWmsJob) {
+        platformWmsJobService.updateById(platformWmsJob);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformwmsjob:query")
+    public ApiResponse<PageData<PlatformWmsJob>> findPage (@RequestBody PageWrap<PlatformWmsJob> pageWrap) {
+        return ApiResponse.success(platformWmsJobService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:platformwmsjob:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<PlatformWmsJob> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(PlatformWmsJob.class).export(platformWmsJobService.findPage(pageWrap).getRecords(), "鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:platformwmsjob:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformWmsJobService.findById(id));
+    }
+}
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 ff53508..8e69cbf 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
@@ -97,7 +97,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().setMemberId(getLoginUser(token).getMemberId());
+        pageWrap.getModel().setReceptMemberId(getLoginUser(token).getMemberId());
         return ApiResponse.success(visitsService.findPage(pageWrap));
     }
 
@@ -124,6 +124,13 @@
         return ApiResponse.success(visitsService.retentionPage(pageWrap));
     }
 
+    @ApiOperation(value = "PC绔瀹㈣褰曟彁浜�", notes = "璁垮鎻愪氦")
+    @PostMapping("/createFk")
+    public ApiResponse createFk(@RequestBody Visits visits) {
+        visits.setSourceType(Constants.ZERO);
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false,Constants.ONE));
+    }
+
 
 
     @ApiOperation(value = "璁垮鎶ュ", notes = "璁垮鎶ュ")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
index bb45612..3d3bc10 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
@@ -100,7 +100,7 @@
                         String endType = originname.substring(originname.lastIndexOf("."), originname.length());
                         String date = DateUtil.getNowShortDate();
                         String fName = date + "/" + UUID.randomUUID() + endType;
-                        String fileName = folder + "/" + fName;
+                        String fileName = folder + fName;
                         boolean r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index);
                         if (r) {
                             JSONObject fileJSON = new JSONObject();
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ApiController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ApiController.java
deleted file mode 100644
index 5b84557..0000000
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ApiController.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.doumee.cloud.web;
-
-import com.doumee.config.Jwt.JwtTokenUtil;
-import com.doumee.dao.business.model.Member;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Controller鍩虹被
- * @author Eva.Caesar Liu
- * @date 2022/03/15 09:54
- */
-@Slf4j
-public class ApiController {
-
-
-    /**
-     * 寰楀埌request瀵硅薄
-     *
-     * @return
-     */
-    public HttpServletRequest getRequest() {
-        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        return request;
-    }
-
-    /**
-     * 鑾峰彇鐢ㄦ埛ID
-     *
-     * @return
-     */
-    protected Integer getMemberId() {
-        Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
-        return obj != null ? Integer.valueOf( obj.toString() ): null;
-    }
-    /**
-     * 鑾峰彇鐢ㄦ埛
-     *
-     * @return
-     */
-    protected Member getMember() {
-        Member member = (Member) this.getRequest().getAttribute(JwtTokenUtil.MEMBER);
-        return member != null ? member : null;
-    }
-}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/InternalWebController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/InternalWebController.java
index e0e31ec..45e0748 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/InternalWebController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/InternalWebController.java
@@ -1,7 +1,6 @@
 package com.doumee.cloud.web;
 
 import com.doumee.api.BaseController;
-import com.doumee.cloud.web.ApiController;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.annotation.trace.Trace;
@@ -95,7 +94,7 @@
     @PostMapping("/createVisit")
     public ApiResponse createVisit(@RequestBody Visits visits,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         visits.setCreateMemberId(getLoginUser(token).getMemberId());
-        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false));
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false,Constants.ZERO));
     }
 
     @ApiOperation(value = "瀹℃壒娴佽褰曞鎵�", notes = "鍐呴儴浜哄憳")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ProblemWebController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ProblemWebController.java
index c7ffcb1..d258b5e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ProblemWebController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ProblemWebController.java
@@ -1,6 +1,5 @@
 package com.doumee.cloud.web;
 
-import com.doumee.cloud.web.ApiController;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
@@ -33,7 +32,7 @@
 @LoginNoRequired
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/problem")
 @Slf4j
-public class ProblemWebController extends ApiController {
+public class ProblemWebController {
 
     @Autowired
     private ProblemsService problemsService;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
index 6f677b7..2ac7672 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
@@ -29,9 +29,11 @@
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.server.ServerWebExchange;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * Created by IntelliJ IDEA.
@@ -60,10 +62,11 @@
     @ApiOperation(value = "璁垮寰俊鎺堟潈", notes = "璁垮寰俊鎺堟潈鑾峰彇openId")
     @GetMapping("/wxAuthorize")
     @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "鎺堟潈鐮�", required = true)
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "鎺堟潈鐮�", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "source", value = "鏉ユ簮:0=鍙告満锛�1=璁垮锛�2=鍐呴儴鍛樺伐", required = true)
     })
-    public ApiResponse<WxAuthorizeVO> wxAuthorize(@RequestParam String code) {
-        WxAuthorizeVO wxAuthorizeVO =  memberService.wxAuthorize(code);
+    public ApiResponse<WxAuthorizeVO> wxAuthorize(@RequestParam String code,@RequestParam Integer source) {
+        WxAuthorizeVO wxAuthorizeVO =  memberService.wxAuthorize(code,source);
         return ApiResponse.success("鏌ヨ鎴愬姛",wxAuthorizeVO);
     }
 
@@ -79,7 +82,7 @@
     @PostMapping("/createFk")
     public ApiResponse createFk(@RequestBody Visits visits) {
         visits.setSourceType(Constants.ZERO);
-        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false));
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false,Constants.ZERO));
     }
 
 
@@ -93,8 +96,9 @@
 
     @ApiOperation(value = "璁垮璁板綍璇︽儏", notes = "璁垮璁板綍璇︽儏")
     @GetMapping("/detail")
-    public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id) {
-        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.getVisitDetail(id,null));
+    public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo loginUserInfo = getLoginUser(token);
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.getVisitDetail(id, Objects.isNull(loginUserInfo)?null:loginUserInfo.getMemberId()));
     }
 
 
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
index f9589bd..3e1b380 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
@@ -23,6 +23,7 @@
 #        data-id: com.doumee.meeting.admin
       discovery:
         server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+#        namespace: dmvisit
         namespace: dmvisit
         username: nacos
         password: nacos
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/JwtPayLoad.java b/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/JwtPayLoad.java
deleted file mode 100644
index 93c6ad9..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/JwtPayLoad.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.doumee.config.Jwt;
-
-import lombok.Data;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * jwt鐨勭浜岄儴鍒�
- *
- * @author fengshuonan
- * @Date 2019/7/20 20:45
- */
-@Data
-public class JwtPayLoad {
-
-    /**
-     * 鐢ㄦ埛id
-     */
-    private String memberId;
-    private long expire;
-
-
-    public JwtPayLoad() {
-    }
-
-    public JwtPayLoad(String memberId) {
-        this.memberId = memberId;
-    }
-
-    /**
-     * payload杞寲涓簃ap褰㈠紡
-     *
-     * @author fengshuonan
-     * @Date 2019/7/20 20:50
-     */
-    public Map<String, Object> toMap() {
-        HashMap<String, Object> map = new HashMap<>();
-        map.put("memberId", this.memberId);
-        return map;
-    }
-
-    /**
-     * payload杞寲涓簃ap褰㈠紡
-     *
-     * @author fengshuonan
-     * @Date 2019/7/20 20:50
-     */
-    public static JwtPayLoad toBean(Map<String, Object> map) {
-        if (map == null || map.size() == 0) {
-            return new JwtPayLoad();
-        } else {
-            JwtPayLoad jwtPayLoad = new JwtPayLoad();
-            jwtPayLoad.setMemberId((String) map.get("memberId"));
-
-            return jwtPayLoad;
-        }
-    }
-
-
-
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java b/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
deleted file mode 100644
index abf47d7..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * Copyright 2018-2020 stylefeng & fengshuonan (sn93@qq.com)
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.doumee.config.Jwt;
-
-
-import io.jsonwebtoken.*;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.Date;
-import java.util.Map;
-
-/**
- * <p>鍚庡彴绯荤粺jwt token宸ュ叿绫�</p>
- * <pre>
- *     jwt鐨刢laim閲屼竴鑸寘鍚互涓嬪嚑绉嶆暟鎹�:
- *         1. iss -- token鐨勫彂琛岃��
- *         2. sub -- 璇WT鎵�闈㈠悜鐨勭敤鎴�
- *         3. aud -- 鎺ユ敹璇WT鐨勪竴鏂�
- *         4. exp -- token鐨勫け鏁堟椂闂�
- *         5. nbf -- 鍦ㄦ鏃堕棿娈典箣鍓�,涓嶄細琚鐞�
- *         6. iat -- jwt鍙戝竷鏃堕棿
- *         7. jti -- jwt鍞竴鏍囪瘑,闃叉閲嶅浣跨敤
- * </pre>
- *
- * @author fengshuonan
- * @Date 2017/8/25 10:59
- */
-public class JwtTokenUtil {
-    //Header 鍚嶇О
-    public static final String HEADER_KEY = "token";
-    //鍙栧�煎悕绉�
-    public static final String UserId_Name = "AppUserId";
-    //鍙栧�煎悕绉�
-    public static final String MEMBER = "MEMBER";
-    //鍔犲瘑瀵嗛挜
-    private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1";
-    //杩囨湡鏃堕棿(s) 86400L=1澶� 604800L=7澶�
-    private static final long expire = 86400L;
-
-    /**
-     * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
-     */
-    public static String generateToken(JwtPayLoad jwtPayLoad) {
-        Long expiredSeconds = getExpireSeconds();
-        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
-        return generateToken(jwtPayLoad.getMemberId(), expirationDate, jwtPayLoad.toMap());
-    }
-
-    /**
-     * 楠岃瘉token鏄惁澶辨晥
-     */
-    public static Boolean isTokenExpired(String token) {
-        try {
-            final Date expiration = getExpirationDateFromToken(token);
-            return expiration.before(new Date());
-        } catch (ExpiredJwtException expiredJwtException) {
-            return true;
-        }
-    }
-
-    /**
-     * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
-     */
-    public static String generateTokenOld(JwtPayLoad jwtPayLoad) {
-        Long expiredSeconds = getExpireSeconds();
-        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
-        return generateToken(jwtPayLoad.getMemberId(), expirationDate, jwtPayLoad.toMap());
-    }
-
-    /**
-     * 鑾峰彇jwt鐨刾ayload閮ㄥ垎
-     */
-    public static JwtPayLoad getJwtPayLoad(String token) {
-        Claims claimFromToken = getClaimFromToken(token);
-        return JwtPayLoad.toBean(claimFromToken);
-    }
-
-    /**
-     * 瑙f瀽token鏄惁姝g‘(true-姝g‘, false-閿欒)
-     */
-    public static Boolean checkToken(String token) {
-        try {
-            String jwtSecret = getJwtSecret();
-            Jwts.parser().setSigningKey(jwtSecret).parseClaimsJws(token).getBody();
-            return true;
-        } catch (JwtException e) {
-            return false;
-        }
-    }
-
-    /**
-     * 楠岃瘉token鏄惁澶辨晥
-     */
-    public static Boolean isTokenExpiredOld(String token) {
-        try {
-            final Date expiration = getExpirationDateFromToken(token);
-            return expiration.before(new Date());
-        } catch (ExpiredJwtException expiredJwtException) {
-            return true;
-        }
-    }
-
-    // 浠巘oken涓幏鍙栫敤鎴稩D
-    public static String getUserId(String token){
-        return getClaimFromToken(token).getSubject();
-    }
-
-    /**
-     * 鑾峰彇jwt澶辨晥鏃堕棿
-     */
-    public static Date getExpirationDateFromToken(String token) {
-        return getClaimFromToken(token).getExpiration();
-    }
-
-    /**
-     * 鐢熸垚token,鏍规嵁userId鍜岃繃鏈熸椂闂�
-     */
-    public static String generateToken(String userId, Date exppiredDate, Map<String, Object> claims) {
-
-        final Date createdDate = new Date();
-        String secret = getJwtSecret();
-
-        if (claims == null) {
-            return Jwts.builder()
-                    .setSubject(userId.toString())
-                    .setIssuedAt(createdDate)
-                    .setExpiration(exppiredDate)
-                    .signWith(SignatureAlgorithm.HS512, secret)
-                    .compact();
-        } else {
-            return Jwts.builder()
-                    .setClaims(claims)
-                    .setSubject(userId.toString())
-                    .setIssuedAt(createdDate)
-                    .setExpiration(exppiredDate)
-                    .signWith(SignatureAlgorithm.HS512, secret)
-                    .compact();
-        }
-    }
-
-    /**
-     * 鑾峰彇jwt鐨刾ayload閮ㄥ垎
-     */
-    public static Claims getClaimFromToken(String token) {
-        if (StringUtils.isBlank(token)) {
-            throw new IllegalArgumentException("token鍙傛暟涓虹┖锛�");
-        }
-        String jwtSecret = getJwtSecret();
-        return Jwts.parser().setSigningKey(jwtSecret).parseClaimsJws(token).getBody();
-    }
-
-    /**
-     * 鑾峰彇绯荤粺鍦板瘑閽�
-     */
-    private static String getJwtSecret() {
-        return jwtSecret;
-    }
-
-    /**
-     * 鑾峰彇绯荤粺鍦板瘑閽ヨ繃鏈熸椂闂达紙鍗曚綅锛氱锛�
-     */
-    private static Long getExpireSeconds() {
-        return expire;
-    }
-}
\ No newline at end of file
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
deleted file mode 100644
index ae63836..0000000
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.doumee.config.Jwt;
-
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.config.annotation.ErpLoginRequired;
-import com.doumee.config.annotation.LoginRequired;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.redis.RedisUtil;
-import com.doumee.dao.business.model.Member;
-import io.jsonwebtoken.JwtException;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.jdbc.core.BeanPropertyRowMapper;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.method.HandlerMethod;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Objects;
-
-@Configuration
-public class WebMvcConfig implements WebMvcConfigurer {
-
-
-    @Autowired
-    private JdbcTemplate dao;
-
-    @Autowired
-    private SystemDictDataBiz systemDictDataBiz;
-
-    @Autowired
-    private RedisTemplate<String,Object> redisTemplate;
-
-    /**
-     * 娣诲姞鎷︽埅鍣�
-     */
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        //API鎺ュ彛JwtToken鎷︽埅鍣�
-        HandlerInterceptor TokenInterceptor = new HandlerInterceptor() {
-            @Override
-            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-                // 濡傛灉涓嶆槸鏄犲皠鍒版柟娉曠洿鎺ラ�氳繃
-                if (!(handler instanceof HandlerMethod)) {
-                    return true;
-                }
-                HandlerMethod handlerMethod = (HandlerMethod) handler;
-
-                Class<?> beanType = handlerMethod.getBeanType();
-
-//                Method method = handlerMethod.getMethod();
-
-                // 鏈� @LoginRequired 娉ㄨВ锛岄渶瑕佺櫥褰曡璇�
-                if (beanType.isAnnotationPresent(LoginRequired.class) || handlerMethod.hasMethodAnnotation(LoginRequired.class)) {
-                    //鑾峰彇token
-                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);  // 浠� http 璇锋眰澶翠腑鍙栧嚭 token
-                    if (StringUtils.isNotBlank(token)) {
-                        checkLogin(request,response);
-                    } else {
-                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-                    }
-                } else if(beanType.isAnnotationPresent(ErpLoginRequired.class) || handlerMethod.hasMethodAnnotation(ErpLoginRequired.class)){
-                    try {
-                        //ERP 涓氬姟娉ㄨВ
-                        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
-                        String redisToken = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,String.class);
-                        if(StringUtils.isBlank(redisToken)||!token.equals(redisToken)){
-                            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎺堟潈宸插け鏁�");
-                        }
-                        request.setAttribute(JwtTokenUtil.HEADER_KEY,token);
-                    } catch (IllegalArgumentException | JwtException e) {
-                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鎺堟潈宸插け鏁�");
-                    }
-//                    request.setAttribute("token", token);
-                }
-                return true;
-            }
-        };
-        registry.addInterceptor(TokenInterceptor).addPathPatterns("/web/**","/visitbiz/**");
-    }
-
-
-
-    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){
-        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
-        try {
-            //鍒ゆ柇Token鏄惁瓒呮椂
-            boolean expiration = JwtTokenUtil.isTokenExpired(token);
-            if (expiration) {
-                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
-            }
-            //鑾峰彇璐﹀彿ID
-            String memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId();
-            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId );
-            if(Objects.isNull(member)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY);
-            }
-            if(member.getIsdeleted()== Constants.ONE){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
-            }
-            if(member.getStatus() != Constants.ZERO){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
-            }
-            request.setAttribute(JwtTokenUtil.UserId_Name, memberId);
-            request.setAttribute(JwtTokenUtil.MEMBER, member);
-            return true;
-        } catch (IllegalArgumentException | JwtException e) {
-            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-        }
-    }
-
-    @Bean
-    public RestTemplate getRestTemplate(){
-        return new RestTemplate();
-    }
-
-
-}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/StagingDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/StagingDataVO.java
index 6ece8b1..344f61e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/StagingDataVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/StagingDataVO.java
@@ -27,16 +27,16 @@
     private Long lwCount;
 
     @ApiModelProperty(value = "鍦ㄥ満杞﹁締")
-    private Integer presenceCarCount;
+    private Long presenceCarCount;
 
     @ApiModelProperty(value = "棰勭害杞﹁締")
-    private Integer visitorCarCount;
+    private Long visitorCarCount;
 
     @ApiModelProperty(value = "闀挎湡杞﹁締")
-    private Integer longCarCount;
+    private Long longCarCount;
 
     @ApiModelProperty(value = "渚涘簲鍟嗘暟閲�")
-    private Integer supplierCount;
+    private Long supplierCount;
 
     @ApiModelProperty(value = "鍔冲姟鍏徃浜哄憳鏁�")
     private List<Map<String,Object>> companyUsers;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveMapper.java
index 4a829af..a2847db 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveMapper.java
@@ -12,7 +12,6 @@
  */
 public interface ApproveMapper extends BaseMapper<Approve> {
 
-    void insertBatchSomeColumn(List<Approve> list);
 
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveParamMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveParamMapper.java
index 0dfa3e2..f1b1bcc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveParamMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ApproveParamMapper.java
@@ -11,5 +11,4 @@
  */
 public interface ApproveParamMapper extends BaseMapper<ApproveParam> {
 
-    void insertBatchSomeColumn(List<ApproveParam> paramList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java
index f502dbe..42c0607 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java
@@ -11,5 +11,4 @@
  */
 public interface CarEventMapper extends BaseMapper<CarEvent> {
 
-    void insertBatchSomeColumn(List<CarEvent> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java
index 3c37d8a..aedf353 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarsMapper.java
@@ -11,5 +11,4 @@
  */
 public interface CarsMapper extends BaseMapper<Cars> {
 
-    void insertBatchSomeColumn(List<Cars> allHkList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceEventMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceEventMapper.java
index c1f1f90..1675b89 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceEventMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceEventMapper.java
@@ -11,5 +11,4 @@
  * @date 2023/11/30 15:33
  */
 public interface DeviceEventMapper extends BaseMapper<DeviceEvent> {
-    void insertBatchSomeColumn(List<DeviceEvent> addList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java
index 1bb0a15..d01fd13 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java
@@ -11,6 +11,4 @@
  */
 public interface DeviceMapper extends BaseMapper<Device> {
 
-    Integer insertBatchSomeColumn(Collection<Device> entityList);
-
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
index 0f4f984..9231588 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
@@ -11,5 +11,4 @@
  */
 public interface DeviceRoleMapper extends BaseMapper<DeviceRole> {
 
-    void insertBatchSomeColumn(List<DeviceRole> addList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/EmpowerMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/EmpowerMapper.java
index bea29ec..7e1b31c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/EmpowerMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/EmpowerMapper.java
@@ -11,5 +11,4 @@
  */
 public interface EmpowerMapper extends BaseMapper<Empower> {
 
-    void insertBatchSomeColumn(List<Empower> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberCardMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberCardMapper.java
index 0032769..5954790 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberCardMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberCardMapper.java
@@ -11,6 +11,4 @@
  * @date 2023/11/30 15:33
  */
 public interface MemberCardMapper extends BaseMapper<MemberCard> {
-
-    void insertBatchSomeColumn(List<MemberCard> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
index a0bf352..f0cb9ad 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
@@ -17,5 +17,4 @@
  */
 public interface MemberMapper extends MPJBaseMapper<Member> {
 
-    void insertBatchSomeColumn(List<Member> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberRoleMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberRoleMapper.java
index cff3a2e..419b97b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberRoleMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberRoleMapper.java
@@ -12,6 +12,5 @@
  */
 public interface MemberRoleMapper extends BaseMapper<MemberRole> {
 
-    void insertBatchSomeColumn(List<MemberRole> list);
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
index 1357775..021bb94 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
@@ -12,5 +12,4 @@
  */
 public interface ParkBookMapper extends BaseMapper<ParkBook> {
 
-    void insertBatchSomeColumn(List<ParkBook> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
index c9b7e2e..aebe554 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
@@ -11,5 +11,4 @@
  */
 public interface ParksMapper extends BaseMapper<Parks> {
 
-    void insertBatchSomeColumn(List<Parks> addList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java
new file mode 100644
index 0000000..fb13a8d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformBooks;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformBooksMapper extends BaseMapper<PlatformBooks> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBroadcastLogMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBroadcastLogMapper.java
new file mode 100644
index 0000000..537e807
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBroadcastLogMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformBroadcastLog;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformBroadcastLogMapper extends BaseMapper<PlatformBroadcastLog> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformDeviceMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformDeviceMapper.java
new file mode 100644
index 0000000..3465f3b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformDeviceMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformDevice;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformDeviceMapper extends BaseMapper<PlatformDevice> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java
index f4db406..435323f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformGroupMapper extends BaseMapper<PlatformGroup> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformInterfaceLogMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformInterfaceLogMapper.java
index d44d8e5..bf6780b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformInterfaceLogMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformInterfaceLogMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformInterfaceLogMapper extends BaseMapper<PlatformInterfaceLog> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformJobMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformJobMapper.java
index 7c85aac..de2d0dc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformJobMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformJobMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformJobMapper extends BaseMapper<PlatformJob> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformLogMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformLogMapper.java
index 0b069ff..9f9a195 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformLogMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformLogMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformLogMapper extends BaseMapper<PlatformLog> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java
index 3e86dd8..eb6c8c2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformMapper extends BaseMapper<Platform> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformQueueMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformQueueMapper.java
index 9e5cd67..9790510 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformQueueMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformQueueMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformQueueMapper extends BaseMapper<PlatformQueue> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformShowParamMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformShowParamMapper.java
index 2f1c7a5..064bdf9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformShowParamMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformShowParamMapper.java
@@ -5,7 +5,7 @@
 
 /**
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformShowParamMapper extends BaseMapper<PlatformShowParam> {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsDetailMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsDetailMapper.java
new file mode 100644
index 0000000..719fdbc
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsDetailMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformWmsDetail;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformWmsDetailMapper extends BaseMapper<PlatformWmsDetail> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsJobMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsJobMapper.java
new file mode 100644
index 0000000..e809183
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsJobMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformWmsJob;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformWmsJobMapper extends BaseMapper<PlatformWmsJob> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
index ff7693c..edc3988 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
@@ -10,6 +10,4 @@
  * @date 2023/11/30 15:33
  */
 public interface RetentionMapper extends BaseMapper<Retention> {
-
-    void insertBatchSomeColumn(List<Retention> retentionList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/TrainTimeMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/TrainTimeMapper.java
index 3602f89..b10839f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/TrainTimeMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/TrainTimeMapper.java
@@ -11,5 +11,4 @@
  */
 public interface TrainTimeMapper extends BaseMapper<TrainTime> {
 
-    void insertBatchSomeColumn(List<TrainTime> newList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitEventMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitEventMapper.java
index b802f66..d667c84 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitEventMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitEventMapper.java
@@ -11,5 +11,4 @@
  */
 public interface VisitEventMapper extends BaseMapper<VisitEvent> {
 
-    void insertBatchSomeColumn(List<VisitEvent> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitsMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitsMapper.java
index 977569f..cd622be 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitsMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/VisitsMapper.java
@@ -11,5 +11,4 @@
  */
 public interface VisitsMapper extends BaseMapper<Visits> {
 
-    void insertBatchSomeColumn(List<Visits> withUserList);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java
index 86d86d7..650aaf6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java
@@ -12,7 +12,5 @@
  */
 public interface ApproveJoinMapper extends MPJJoinMapper<Approve> {
 
-    void insertBatchSomeColumn(List<Approve> list);
-
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/EmpowerJoinMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/EmpowerJoinMapper.java
index f920075..d59bbc1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/EmpowerJoinMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/EmpowerJoinMapper.java
@@ -11,5 +11,4 @@
  * @date 2023/11/30 15:33
  */
 public interface EmpowerJoinMapper extends MPJJoinMapper<Empower> {
-    void insertBatchSomeColumn(List<Empower> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
index 49deff2..48c6832 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -134,8 +134,8 @@
     @ExcelColumn(name="鐢宠浜虹紪鐮�(鍏宠仈member)")
     private Integer memberId;
 
-    @ApiModelProperty(value = "鍙告満缂栫爜锛堝叧鑱攃ar_driver锛�", example = "1")
-    @ExcelColumn(name="鍙告満缂栫爜锛堝叧鑱攃ar_driver锛�")
+    @ApiModelProperty(value = "鍙告満缂栫爜锛堝叧鑱攎emberId锛�", example = "1")
+    @ExcelColumn(name="鍙告満缂栫爜锛堝叧鑱攎emberId锛�")
     private Integer driverId;
 
     @ApiModelProperty(value = "鍙告満濮撳悕", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
index 3516b64..7056886 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -75,8 +75,8 @@
     @ExcelColumn(name="鍋ュ悍鐮�")
     private String imgurl;
 
-    @ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳", example = "1")
-    @ExcelColumn(name="绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳")
+    @ApiModelProperty(value = "绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹�  2鍐呴儴浜哄憳", example = "1")
+    @ExcelColumn(name="绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹� 2鍐呴儴浜哄憳")
     private Integer type;
 
     @ApiModelProperty(value = "璁垮鍚嶇О/鍐呴儴浜哄憳")
@@ -104,6 +104,9 @@
     @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収", example = "1")
     @ExcelColumn(name="璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収")
     private Integer idcardType;
+    @ApiModelProperty(value = "鏄惁鏄墿娴佸徃鏈� 0涓嶆槸 1鏄�", example = "1")
+    @ExcelColumn(name="鏄惁鏄墿娴佸徃鏈� 0涓嶆槸 1鏄�")
+    private Integer isDriver;
 
     @ApiModelProperty(value = "宸ュ彿")
     @ExcelColumn(name="宸ュ彿")
@@ -233,11 +236,9 @@
     @ApiModelProperty(value = "瑙掕壊缂栫爜鏌ヨ")
     @TableField(exist = false)
     private String roleIdParam;
-
     @ApiModelProperty(value = "鍓嶇紑鍦板潃")
     @TableField(exist = false)
     private String prefixUrl;
-
     @ApiModelProperty(value = "鎺堟潈闂ㄧ缁勭紪鐮侀泦鍚�,銆愯瀹㈢銆戝敮涓�鏍囪瘑",hidden = true )
     @TableField(exist = false)
     private Integer[] roleIds;
@@ -247,37 +248,28 @@
     @ApiModelProperty(value = "鏈夋晥鏈熺被鍨� 0闀挎湡鏈夋晥 1鑷畾涔�",hidden = true )
     @TableField(exist = false)
     private  Integer  timeType;
-
     //鏆傛棤浣跨敤
     @ApiModelProperty(value = "濮撳悕/鎵嬫満鍙�/宸ュ彿")
     @TableField(exist = false)
     private String keyword;
-
-
-
     @ApiModelProperty(value = "鏄惁鏈変汉鑴革細0=鏃狅紱1=鏈夛紱")
     @TableField(exist = false)
     private Integer isFace;
-
     @ApiModelProperty(value = "璁块棶娆℃暟")
     @TableField(exist = false)
     private Integer visitTimes;
-
     @ApiModelProperty(value = "鏈�鍚庤闂椂闂�")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date lastVisitDate;
-
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熷紑濮�")
     @ExcelColumn(name="闂ㄧ鏈夋晥鏈熷紑濮�",index= 5,dateFormat = "yyyy-MM-dd")
     private Date startTime;
     @ApiModelProperty(value = "缂栫爜闆嗗悎")
     @TableField(exist = false)
     private List<Integer> idList;
-
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熺粨鏉�", example = "1")
     @ExcelColumn(name="闂ㄧ鏈夋晥鏈熺粨鏉�",index= 6,dateFormat = "yyyy-MM-dd")
     private Date endTime;
-
     @ApiModelProperty(value = "浜鸿劯鐓х墖瀹屾暣鍦板潃")
     @TableField(exist = false)
     private String faceImgFull;
@@ -291,13 +283,15 @@
     @ApiModelProperty(value = "闂ㄧ瑙掕壊鍚嶇О")
     @TableField(exist = false)
     private String roleName;
+    @ApiModelProperty(value = "鏈�鍚庢搷浣滃唴瀹�")
+    @TableField(exist = false)
+    private String optRemark;
     @ApiModelProperty(value = "鍩硅寮�濮嬫椂闂�")
     @TableField(exist = false)
     private Date trainStartTime;
     @ApiModelProperty(value = "鍩硅缁撴潫鏃堕棿")
     @TableField(exist = false)
     private Date trainEndTime;
-
     @ApiModelProperty(value = "闂ㄧ缁勫悕绉伴泦鍚�")
     @TableField(exist = false)
     private List<String> roleNames;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index 3b3b815..96da8e3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -1,7 +1,6 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -10,16 +9,17 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.math.BigDecimal;
 
 /**
  * 鏈堝彴淇℃伅琛�
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("鏈堝彴淇℃伅琛�")
 @TableName("`platform`")
-public class Platform  extends LoginUserModel {
+public class Platform {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -32,6 +32,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -40,7 +41,8 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-      private Date editDate;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
     @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
@@ -74,14 +76,6 @@
     @ExcelColumn(name="宸ヤ綔缁撴潫鏃堕棿")
     private String endTime;
 
-    @ApiModelProperty(value = "鍏宠仈鏈堝彴鐩戞帶鐐硅澶囩紪鐮�(鍏宠仈devices)锛屽涓敤鑻辨枃閫楀彿闅斿紑")
-    @ExcelColumn(name="鍏宠仈鏈堝彴鐩戞帶鐐硅澶囩紪鐮�(鍏宠仈devices)锛屽涓敤鑻辨枃閫楀彿闅斿紑")
-    private String deviceIds;
-
-    @ApiModelProperty(value = "鍏宠仈鏈堝彴灞忓箷缂栫爜闆嗗悎锛堝叧鑱攄evices锛夛紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑")
-    @ExcelColumn(name="鍏宠仈鏈堝彴灞忓箷缂栫爜闆嗗悎锛堝叧鑱攄evices锛夛紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑")
-    private String screenIds;
-
     @ApiModelProperty(value = "鍚屾椂浣滀笟鏁伴噺", example = "1")
     @ExcelColumn(name="鍚屾椂浣滀笟鏁伴噺")
     private Integer workingNum;
@@ -96,6 +90,7 @@
 
     @ApiModelProperty(value = "鏈�鍚庝簨浠舵帹閫佹椂闂�")
     @ExcelColumn(name="鏈�鍚庝簨浠舵帹閫佹椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date lastEventTime;
 
     @ApiModelProperty(value = "鐩戞帶鐐瑰悕绉帮紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑")
@@ -106,4 +101,32 @@
     @ExcelColumn(name="鏈堝彴灞忓箷鍚嶇О锛屽涓敤鑻辨枃閫楀彿闅斿紑")
     private String screenName;
 
+    @ApiModelProperty(value = "娴峰悍鏍囪瘑")
+    @ExcelColumn(name="娴峰悍鏍囪瘑")
+    private String hkId;
+
+    @ApiModelProperty(value = "鍏宠仈鎵跨鍏徃")
+    @ExcelColumn(name="鍏宠仈鎵跨鍏徃")
+    private String companys;
+
+    @ApiModelProperty(value = "X鍧愭爣", example = "1")
+    @ExcelColumn(name="X鍧愭爣")
+    private BigDecimal xpos;
+
+    @ApiModelProperty(value = "Y鍧愭爣", example = "1")
+    @ExcelColumn(name="Y鍧愭爣")
+    private BigDecimal ypos;
+
+    @ApiModelProperty(value = "瀹藉害", example = "1")
+    @ExcelColumn(name="瀹藉害")
+    private BigDecimal width;
+
+    @ApiModelProperty(value = "楂樺害", example = "1")
+    @ExcelColumn(name="楂樺害")
+    private BigDecimal height;
+
+    @ApiModelProperty(value = "瑙掑害", example = "1")
+    @ExcelColumn(name="瑙掑害")
+    private BigDecimal angle;
+
 }
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
new file mode 100644
index 0000000..4e04d39
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -0,0 +1,104 @@
+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;
+import java.math.BigDecimal;
+
+/**
+ * 鏈堝彴鍏ュ洯棰勭害淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Data
+@ApiModel("鏈堝彴鍏ュ洯棰勭害淇℃伅琛�")
+@TableName("`platform_books`")
+public class PlatformBooks {
+
+    @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 name;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鐘舵�� 0寰呭鎵� 1瀹℃壒涓� 2瀹℃壒閫氳繃 3瀹℃壒涓嶉�氳繃", example = "1")
+    @ExcelColumn(name="鐘舵�� 0寰呭鎵� 1瀹℃壒涓� 2瀹℃壒閫氳繃 3瀹℃壒涓嶉�氳繃")
+    private Integer status;
+
+    @ApiModelProperty(value = "鍚堝悓鍙�")
+    @ExcelColumn(name="鍚堝悓鍙�")
+    private String contractNum;
+
+    @ApiModelProperty(value = "棰勮鍒板満鏃堕棿")
+    @ExcelColumn(name="棰勮鍒板満鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date arriveDate;
+
+    @ApiModelProperty(value = "鍏ュ簱绫诲瀷 0鏁存墭鐩� 1浠剁儫", example = "1")
+    @ExcelColumn(name="鍏ュ簱绫诲瀷 0鏁存墭鐩� 1浠剁儫")
+    private Integer inType;
+
+    @ApiModelProperty(value = "鎬昏繍杈撻噺", example = "1")
+    @ExcelColumn(name="鎬昏繍杈撻噺")
+    private BigDecimal totalNum;
+
+    @ApiModelProperty(value = "鍓嶈溅鐗屽彿")
+    @ExcelColumn(name="鍓嶈溅鐗屽彿")
+    private String carCodeFront;
+
+    @ApiModelProperty(value = "鍚庤溅鐗屽彿")
+    @ExcelColumn(name="鍚庤溅鐗屽彿")
+    private String carCodeBack;
+
+    @ApiModelProperty(value = "鍙告満缂栫爜", example = "1")
+    @ExcelColumn(name="鍙告満缂栫爜")
+    private Integer driverId;
+
+    @ApiModelProperty(value = "鍙告満濮撳悕")
+    @ExcelColumn(name="鍙告満濮撳悕")
+    private String driverName;
+
+    @ApiModelProperty(value = "杞︾墝鍙�")
+    @ExcelColumn(name="杞︾墝鍙�")
+    private String plateNum;
+
+    @ApiModelProperty(value = "鍙告満鎵嬫満鍙�")
+    @ExcelColumn(name="鍙告満鎵嬫満鍙�")
+    private String drivierPhone;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBroadcastLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBroadcastLog.java
new file mode 100644
index 0000000..54ab04c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBroadcastLog.java
@@ -0,0 +1,103 @@
+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;
+
+/**
+ * 鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Data
+@ApiModel("鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰�")
+@TableName("`platform_broadcast_log`")
+public class PlatformBroadcastLog {
+
+    @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 name;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜")
+    @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜")
+    private String objId;
+
+    @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷 0鏈堝彴浣滀笟", example = "1")
+    @ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷 0鏈堝彴浣滀笟")
+    private Integer objType;
+
+    @ApiModelProperty(value = "鎻愰啋娆℃暟", example = "1")
+    @ExcelColumn(name="鎻愰啋娆℃暟")
+    private Integer num;
+
+    @ApiModelProperty(value = "璁惧缂栫爜")
+    @ExcelColumn(name="璁惧缂栫爜")
+    private String ids;
+
+    @ApiModelProperty(value = "鎻愰啋鍐呭")
+    @ExcelColumn(name="鎻愰啋鍐呭")
+    private String info;
+
+    @ApiModelProperty(value = "娴峰悍缂栫爜")
+    @ExcelColumn(name="娴峰悍缂栫爜")
+    private String hkId;
+
+    @ApiModelProperty(value = "鎻愰啋涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触", example = "1")
+    @ExcelColumn(name="鎻愰啋涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触")
+    private Integer hkStatus;
+
+    @ApiModelProperty(value = "鎻愰啋涓嬪彂鏃堕棿")
+    @ExcelColumn(name="鎻愰啋涓嬪彂鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date hkDate;
+
+    @ApiModelProperty(value = "鎻愰啋涓嬪彂澶囨敞")
+    @ExcelColumn(name="鎻愰啋涓嬪彂澶囨敞")
+    private String hkInfo;
+
+    @ApiModelProperty(value = "涓氬姟绫诲瀷 0鏈堝彴鎺掗槦鍙彿", example = "1")
+    @ExcelColumn(name="涓氬姟绫诲瀷 0鏈堝彴鎺掗槦鍙彿")
+    private Integer bizType;
+
+    @ApiModelProperty(value = "绫诲瀷 0骞挎挱 1LED", example = "1")
+    @ExcelColumn(name="绫诲瀷 0骞挎挱 1LED")
+    private Integer deviceType;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformDevice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformDevice.java
new file mode 100644
index 0000000..0f5927c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformDevice.java
@@ -0,0 +1,82 @@
+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;
+
+/**
+ * 鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Data
+@ApiModel("鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃")
+@TableName("`platform_device`")
+public class PlatformDevice {
+
+    @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 = "鏈堝彴缂栫爜锛堝叧鑱攑latforms)", example = "1")
+    @ExcelColumn(name="鏈堝彴缂栫爜锛堝叧鑱攑latforms)")
+    private Integer platformId;
+
+    @ApiModelProperty(value = "璁惧娴峰悍鏍囪瘑")
+    @ExcelColumn(name="璁惧娴峰悍鏍囪瘑")
+    private String hkId;
+
+    @ApiModelProperty(value = "璁惧缂栫爜锛堝叧鑱攄evice)")
+    @ExcelColumn(name="璁惧缂栫爜锛堝叧鑱攄evice)")
+    private String deviceId;
+
+    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+    @ExcelColumn(name="鎺掑簭鐮�")
+    private Integer sortnum;
+
+    @ApiModelProperty(value = "璁惧绫诲瀷 0LED 1鐩戞帶鐐� 2骞挎挱", example = "1")
+    @ExcelColumn(name="璁惧绫诲瀷 0LED 1鐩戞帶鐐� 2骞挎挱")
+    private Integer type;
+
+    @ApiModelProperty(value = "璁惧鍚嶇О")
+    @ExcelColumn(name="璁惧鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "璁惧鐘舵�� 0鍦ㄧ嚎 1绂荤嚎", example = "1")
+    @ExcelColumn(name="璁惧鐘舵�� 0鍦ㄧ嚎 1绂荤嚎")
+    private Integer status;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
index f2a4792..8540f4f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -1,7 +1,6 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -14,12 +13,12 @@
 /**
  * 鏈堝彴_鍒嗙粍淇℃伅琛�
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("鏈堝彴_鍒嗙粍淇℃伅琛�")
 @TableName("`platform_group`")
-public class PlatformGroup  extends LoginUserModel {
+public class PlatformGroup {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -32,6 +31,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -40,6 +40,7 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
index 0d8df6c..3d14fd1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
@@ -1,8 +1,6 @@
 package com.doumee.dao.business.model;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -15,12 +13,12 @@
 /**
  * 浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍")
 @TableName("`platform_interface_log`")
-public class PlatformInterfaceLog  extends LoginUserModel {
+public class PlatformInterfaceLog {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -33,6 +31,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -41,6 +40,7 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -61,7 +61,8 @@
 
     @ApiModelProperty(value = "鍦板潃淇℃伅")
     @ExcelColumn(name="鍦板潃淇℃伅")
-    private String url;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date url;
 
     @ApiModelProperty(value = "璇锋眰鍙傛暟")
     @ExcelColumn(name="璇锋眰鍙傛暟")
@@ -87,11 +88,4 @@
     @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�")
     private String objId;
 
-    @ApiModelProperty(value = "寮�濮嬫椂闂�")
-    @TableField(exist = false)
-    private Date startDate;
-
-    @ApiModelProperty(value = "缁撴潫鏃堕棿")
-    @TableField(exist = false)
-    private Date endDate;
 }
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 57def92..7df6ac4 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
@@ -1,7 +1,6 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -15,12 +14,12 @@
 /**
  * 鏈堝彴璋冨害浣滀笟淇℃伅琛�
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("鏈堝彴璋冨害浣滀笟淇℃伅琛�")
 @TableName("`platform_job`")
-public class PlatformJob  extends LoginUserModel {
+public class PlatformJob {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -33,6 +32,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -41,6 +41,7 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -55,8 +56,8 @@
     @ExcelColumn(name="澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍙彿涓� 4浣滀笟涓� 5浣滀笟瀹屾垚 6寮傚父鎸傝捣 7鏈堝彴绛夊緟 8宸蹭綔搴�", example = "1")
-    @ExcelColumn(name="鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍙彿涓� 4浣滀笟涓� 5浣滀笟瀹屾垚 6寮傚父鎸傝捣 7鏈堝彴绛夊緟 8宸蹭綔搴�")
+    @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 宸茶繃鍙�")
     private Integer status;
 
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@@ -65,50 +66,31 @@
 
     @ApiModelProperty(value = "浣滀笟鍗曞彿")
     @ExcelColumn(name="浣滀笟鍗曞彿")
-    private String startTime;
+    private String code;
 
-    @ApiModelProperty(value = "浣滀笟鍞竴鏍囪瘑")
-    @ExcelColumn(name="浣滀笟鍞竴鏍囪瘑")
-    private String endTime;
+    @ApiModelProperty(value = "浣滀笟鍞竴鏍囪瘑(鎵胯繍鍗曞彿锛�")
+    @ExcelColumn(name="浣滀笟鍞竴鏍囪瘑(鎵胯繍鍗曞彿锛�")
+    private String billCode;
 
     @ApiModelProperty(value = "鍙告満缂栫爜", example = "1")
     @ExcelColumn(name="鍙告満缂栫爜")
-    private Integer deviceIds;
+    private Integer driverId;
 
     @ApiModelProperty(value = "鍙告満濮撳悕")
     @ExcelColumn(name="鍙告満濮撳悕")
-    private String screenIds;
+    private String driverName;
+
+    @ApiModelProperty(value = "杞︾墝鍙�")
+    @ExcelColumn(name="杞︾墝鍙�")
+    private String plateNum;
 
     @ApiModelProperty(value = "鍙告満鎵嬫満鍙�")
     @ExcelColumn(name="鍙告満鎵嬫満鍙�")
-    private String workingNum;
-
-    @ApiModelProperty(value = "骞挎挱鎻愰啋娆℃暟", example = "1")
-    @ExcelColumn(name="骞挎挱鎻愰啋娆℃暟")
-    private Integer broadcastNum;
-
-    @ApiModelProperty(value = "骞挎挱璁惧缂栫爜")
-    @ExcelColumn(name="骞挎挱璁惧缂栫爜")
-    private String broadcastIds;
-
-    @ApiModelProperty(value = "骞挎挱鎻愰啋鍐呭")
-    @ExcelColumn(name="骞挎挱鎻愰啋鍐呭")
-    private String broadcastInfo;
-
-    @ApiModelProperty(value = "骞挎挱鎻愰啋涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触", example = "1")
-    @ExcelColumn(name="骞挎挱鎻愰啋涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触")
-    private Integer broadcastHkstatus;
-
-    @ApiModelProperty(value = "骞挎挱鎻愰啋涓嬪彂鏃堕棿")
-    @ExcelColumn(name="骞挎挱鎻愰啋涓嬪彂鏃堕棿")
-    private Date broadcastHkdate;
-
-    @ApiModelProperty(value = "骞挎挱鎻愰啋涓嬪彂澶囨敞")
-    @ExcelColumn(name="骞挎挱鎻愰啋涓嬪彂澶囨敞")
-    private String broadcastHkinfo;
+    private String drivierPhone;
 
     @ApiModelProperty(value = "绛惧埌鏃堕棿")
     @ExcelColumn(name="绛惧埌鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date signDate;
 
     @ApiModelProperty(value = "绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌", example = "1")
@@ -119,12 +101,30 @@
     @ExcelColumn(name="绛惧埌璺濈(绫筹級")
     private BigDecimal signDistance;
 
-    @ApiModelProperty(value = "鍒嗛厤鏈堝彴缂栫爜锛堝叧鑱攑latform)", example = "1")
-    @ExcelColumn(name="鍒嗛厤鏈堝彴缂栫爜锛堝叧鑱攑latform)")
+    @ApiModelProperty(value = "浣滀笟鏈堝彴鍚嶇О闆嗗悎锛屽涓娇鐢ㄨ嫳鏂囬�楀彿闅斿紑")
+    @ExcelColumn(name="浣滀笟鏈堝彴鍚嶇О闆嗗悎锛屽涓娇鐢ㄨ嫳鏂囬�楀彿闅斿紑")
+    private String platformNames;
+
+    @ApiModelProperty(value = "浣滀笟鏈堝彴缂栫爜闆嗗悎锛屽涓娇鐢ㄨ嫳鏂囬�楀彿闅斿紑")
+    @ExcelColumn(name="浣滀笟鏈堝彴缂栫爜闆嗗悎锛屽涓娇鐢ㄨ嫳鏂囬�楀彿闅斿紑")
+    private String platforms;
+
+    @ApiModelProperty(value = "鏈�杩戝垎閰嶆湀鍙扮紪鐮侊紙鍏宠仈platform)", example = "1")
+    @ExcelColumn(name="鏈�杩戝垎閰嶆湀鍙扮紪鐮侊紙鍏宠仈platform)")
     private Integer platformId;
+
+    @ApiModelProperty(value = "閫氱煡鍏ュ洯绛夊緟鏃堕棿")
+    @ExcelColumn(name="閫氱煡鍏ュ洯绛夊緟鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date inwaitDate;
+
+    @ApiModelProperty(value = "閫氱煡鍏ュ洯绛夊緟鎿嶄綔浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="閫氱煡鍏ュ洯绛夊緟鎿嶄綔浜虹紪鐮�")
+    private Integer inwaitUserId;
 
     @ApiModelProperty(value = "鍙彿鏃堕棿")
     @ExcelColumn(name="鍙彿鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date callDate;
 
     @ApiModelProperty(value = "鍙彿浜虹紪鐮�", example = "1")
@@ -137,14 +137,17 @@
 
     @ApiModelProperty(value = "寮�濮嬩綔涓氭椂闂�")
     @ExcelColumn(name="寮�濮嬩綔涓氭椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date startDate;
 
     @ApiModelProperty(value = "浣滀笟瀹屾垚鏃堕棿锛堟渶缁堟椂闂达級")
     @ExcelColumn(name="浣滀笟瀹屾垚鏃堕棿锛堟渶缁堟椂闂达級")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date doneDate;
 
     @ApiModelProperty(value = "寮傚父鎸傝捣鏃堕棿")
     @ExcelColumn(name="寮傚父鎸傝捣鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date errorDate;
 
     @ApiModelProperty(value = "寮傚父鎸傝捣浜虹紪鐮�", example = "1")
@@ -157,6 +160,7 @@
 
     @ApiModelProperty(value = "鏈堝彴杞氦鏃堕棿")
     @ExcelColumn(name="鏈堝彴杞氦鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date transPlatformDate;
 
     @ApiModelProperty(value = "鏈堝彴杞氦澶勭悊浜�", example = "1")
@@ -169,10 +173,12 @@
 
     @ApiModelProperty(value = "杞﹁締杩涘巶鏃堕棿")
     @ExcelColumn(name="杞﹁締杩涘巶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date inDate;
 
     @ApiModelProperty(value = "杞﹁締绂诲巶鏃堕棿")
     @ExcelColumn(name="杞﹁締绂诲巶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date outDate;
 
     @ApiModelProperty(value = "绂诲巶鏂瑰紡 0鑷姩绂诲巶 1鎵嬪姩绂诲満", example = "1")
@@ -185,6 +191,7 @@
 
     @ApiModelProperty(value = "杞﹁締绂诲巶涓嬪彂鏃堕棿")
     @ExcelColumn(name="杞﹁締绂诲巶涓嬪彂鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date outHkdate;
 
     @ApiModelProperty(value = "杞﹁締绂诲巶涓嬪彂澶囨敞")
@@ -201,6 +208,7 @@
 
     @ApiModelProperty(value = "杞﹁締杩涘巶涓嬪彂鏃堕棿")
     @ExcelColumn(name="杞﹁締杩涘巶涓嬪彂鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date inHkdate;
 
     @ApiModelProperty(value = "浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣", example = "1")
@@ -225,6 +233,7 @@
 
     @ApiModelProperty(value = "浣滃簾鏃堕棿")
     @ExcelColumn(name="浣滃簾鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date cancelDate;
 
     @ApiModelProperty(value = "浣滃簾澶勭悊浜虹紪鐮�", example = "1")
@@ -239,4 +248,21 @@
     @ExcelColumn(name="鍏ュ洯浜嬬敱")
     private String reason;
 
+    @ApiModelProperty(value = "鍚堝悓鍙�")
+    @ExcelColumn(name="鍚堝悓鍙�")
+    private String contractNum;
+
+    @ApiModelProperty(value = "棰勮鍒板満鏃堕棿")
+    @ExcelColumn(name="棰勮鍒板満鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date arriveDate;
+
+    @ApiModelProperty(value = "鍏ュ簱绫诲瀷 0鏁存墭鐩� 1浠剁儫", example = "1")
+    @ExcelColumn(name="鍏ュ簱绫诲瀷 0鏁存墭鐩� 1浠剁儫")
+    private Integer inType;
+
+    @ApiModelProperty(value = "鎬昏繍杈撻噺", example = "1")
+    @ExcelColumn(name="鎬昏繍杈撻噺")
+    private BigDecimal totalNum;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
index c1054d7..75657bb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
@@ -1,7 +1,6 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -14,12 +13,12 @@
 /**
  * 鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�")
 @TableName("`platform_log`")
-public class PlatformLog  extends LoginUserModel {
+public class PlatformLog {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -32,6 +31,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -40,6 +40,7 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -62,8 +63,8 @@
     @ExcelColumn(name="绠�浠�")
     private String content;
 
-    @ApiModelProperty(value = "鎿嶄綔绫诲瀷 0涓嬪彂浠诲姟 1鍙告満绛惧埌 2瀹℃牳閫氳繃 3瀹℃壒涓嶉�氳繃 4鍙彿 5杞氦鏈堝彴 6鎸傝捣 7鍙告満杩涘巶 8鍙告満绂诲巶 9浣滀笟浣滃簾鍙栨秷 10浣滀笟瀹屾垚", example = "1")
-    @ExcelColumn(name="鎿嶄綔绫诲瀷 0涓嬪彂浠诲姟 1鍙告満绛惧埌 2瀹℃牳閫氳繃 3瀹℃壒涓嶉�氳繃 4鍙彿 5杞氦鏈堝彴 6鎸傝捣 7鍙告満杩涘巶 8鍙告満绂诲巶 9浣滀笟浣滃簾鍙栨秷 10浣滀笟瀹屾垚")
+    @ApiModelProperty(value = "鎿嶄綔绫诲瀷 0浠诲姟鍒涘缓 1鍙告満纭浠诲姟 2鍙告満绛惧埌 3鍏ュ洯绛夊緟 4鏈堝彴鍙彿 5寮�濮嬩綔涓� 6浣滀笟瀹屾垚 7鏈堝彴杞Щ 8浠诲姟鎸傝捣 9涓嬪彂鎺堟潈绂诲洯 10绂诲洯", example = "1")
+    @ExcelColumn(name="鎿嶄綔绫诲瀷 0浠诲姟鍒涘缓 1鍙告満纭浠诲姟 2鍙告満绛惧埌 3鍏ュ洯绛夊緟 4鏈堝彴鍙彿 5寮�濮嬩綔涓� 6浣滀笟瀹屾垚 7鏈堝彴杞Щ 8浠诲姟鎸傝捣 9涓嬪彂鎺堟潈绂诲洯 10绂诲洯")
     private Integer objType;
 
     @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜")
@@ -78,4 +79,20 @@
     @ExcelColumn(name="鎿嶄綔鍚庡唴瀹�")
     private String afterContent;
 
+    @ApiModelProperty(value = "鍙傛暟1")
+    @ExcelColumn(name="鍙傛暟1")
+    private String param1;
+
+    @ApiModelProperty(value = "鍙傛暟2")
+    @ExcelColumn(name="鍙傛暟2")
+    private String param2;
+
+    @ApiModelProperty(value = "鍙傛暟3")
+    @ExcelColumn(name="鍙傛暟3")
+    private String param3;
+
+    @ApiModelProperty(value = "鍙傛暟4")
+    @ExcelColumn(name="鍙傛暟4")
+    private String param4;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
index 54ee843..4bee734 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
@@ -1,7 +1,6 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -14,12 +13,12 @@
 /**
  * 鏈堝彴_鍙彿鎺掗槦淇℃伅琛�
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("鏈堝彴_鍙彿鎺掗槦淇℃伅琛�")
 @TableName("`platform_queue`")
-public class PlatformQueue  extends LoginUserModel {
+public class PlatformQueue {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -32,6 +31,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -40,6 +40,7 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -54,10 +55,6 @@
     @ExcelColumn(name="鏈堝彴浣滀笟缂栫爜锛堝叧鑱攑latform_job)")
     private Integer jobId;
 
-    @ApiModelProperty(value = "鏍囬")
-    @ExcelColumn(name="鏍囬")
-    private String title;
-
     @ApiModelProperty(value = "绠�浠�")
     @ExcelColumn(name="绠�浠�")
     private String content;
@@ -66,8 +63,8 @@
     @ExcelColumn(name="鐘舵�� 0绛夊緟涓� 1鍙彿涓� 2浣滀笟涓�")
     private Integer status;
 
-    @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜 0浣滀笟", example = "1")
-    @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜 0浣滀笟")
+    @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜 0鏈堝彴浣滀笟", example = "1")
+    @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜 0鏈堝彴浣滀笟")
     private Integer objType;
 
     @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
index d379665..3e3c96d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
@@ -1,7 +1,6 @@
 package com.doumee.dao.business.model;
 
 import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -14,12 +13,12 @@
 /**
  * 鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Data
 @ApiModel("鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛�")
 @TableName("`platform_show_param`")
-public class PlatformShowParam  extends LoginUserModel {
+public class PlatformShowParam {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
@@ -32,6 +31,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -40,6 +40,7 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
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
new file mode 100644
index 0000000..c9de2b1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -0,0 +1,79 @@
+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;
+import java.math.BigDecimal;
+
+/**
+ * 鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Data
+@ApiModel("鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�")
+@TableName("`platform_wms_detail`")
+public class PlatformWmsDetail {
+
+    @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 = "琛屾暟鎹紪鐮侊紙鍏宠仈platform_wms_job)", example = "1")
+    @ExcelColumn(name="琛屾暟鎹紪鐮侊紙鍏宠仈platform_wms_job)")
+    private Integer jobId;
+
+    @ApiModelProperty(value = "閫氱煡鍗曞彿")
+    @ExcelColumn(name="閫氱煡鍗曞彿")
+    private String iocode;
+
+    @ApiModelProperty(value = "鐗╂枡鍚嶇О")
+    @ExcelColumn(name="鐗╂枡鍚嶇О")
+    private String materialName;
+
+    @ApiModelProperty(value = "渚涘簲鍟�")
+    @ExcelColumn(name="渚涘簲鍟�")
+    private String inRepertotyCode;
+
+    @ApiModelProperty(value = "璁″垝鏀惰揣鏁伴噺", example = "1")
+    @ExcelColumn(name="璁″垝鏀惰揣鏁伴噺")
+    private BigDecimal ioQty;
+
+    @ApiModelProperty(value = "鐗╂枡杞崲鐜�")
+    @ExcelColumn(name="鐗╂枡杞崲鐜�")
+    private String rate;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java
new file mode 100644
index 0000000..e07bf62
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java
@@ -0,0 +1,112 @@
+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;
+
+/**
+ * 鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Data
+@ApiModel("鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁")
+@TableName("`platform_wms_job`")
+public class PlatformWmsJob {
+
+    @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 = "鏈堝彴浣滀笟缂栫爜锛堝叧鑱攑latform_job)", example = "1")
+    @ExcelColumn(name="鏈堝彴浣滀笟缂栫爜锛堝叧鑱攑latform_job)")
+    private Integer jobId;
+
+    @ApiModelProperty(value = "閫氱煡鍗曞彿")
+    @ExcelColumn(name="閫氱煡鍗曞彿")
+    private String iocode;
+
+    @ApiModelProperty(value = "浣滀笟绫诲瀷  0鍏ュ簱 1鍑哄簱", example = "1")
+    @ExcelColumn(name="浣滀笟绫诲瀷  0鍏ュ簱 1鍑哄簱")
+    private Integer type;
+
+    @ApiModelProperty(value = "鍙告満鐢佃瘽")
+    @ExcelColumn(name="鍙告満鐢佃瘽")
+    private String driverPhone;
+
+    @ApiModelProperty(value = "鍙告満濮撳悕")
+    @ExcelColumn(name="鍙告満濮撳悕")
+    private String driverName;
+
+    @ApiModelProperty(value = "鎵胯繍鍟�")
+    @ExcelColumn(name="鎵胯繍鍟�")
+    private String carrierName;
+
+    @ApiModelProperty(value = "鎵胯繍鍗曞彿")
+    @ExcelColumn(name="鎵胯繍鍗曞彿")
+    private String carryBillCode;
+
+    @ApiModelProperty(value = "閫氱煡鍒涘缓鏃ユ湡")
+    @ExcelColumn(name="閫氱煡鍒涘缓鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date ioCreatedate;
+
+    @ApiModelProperty(value = "鐘舵�� 0鏈鐞� 1宸插鐞� 2宸插彇娑�", example = "1")
+    @ExcelColumn(name="鐘舵�� 0鏈鐞� 1宸插鐞� 2宸插彇娑�")
+    private Integer status;
+
+    @ApiModelProperty(value = "鍙栨秷鏃堕棿")
+    @ExcelColumn(name="鍙栨秷鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date cancelDate;
+
+    @ApiModelProperty(value = "鍙栨秷澶囨敞")
+    @ExcelColumn(name="鍙栨秷澶囨敞")
+    private String cancelInfo;
+
+    @ApiModelProperty(value = "杞︾墝鍙�")
+    @ExcelColumn(name="杞︾墝鍙�")
+    private String plateNumber;
+
+    @ApiModelProperty(value = "鏀惰揣鍦�")
+    @ExcelColumn(name="鏀惰揣鍦�")
+    private String repertotyAddress;
+
+    @ApiModelProperty(value = "鍚堝悓鍙穈")
+    @ExcelColumn(name="鍚堝悓鍙穈")
+    private String contractNum;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/DateIntervalVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/DateIntervalVO.java
index db66388..727a985 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/DateIntervalVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/DateIntervalVO.java
@@ -28,4 +28,7 @@
     @ApiModelProperty(value = "鏄惁鍗犵敤")
     private Integer isUse;
 
+    @ApiModelProperty(value = "鐢ㄨ溅璁板綍涓婚敭")
+    private Integer carUseBookId;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/InternalHomeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/InternalHomeVO.java
index 086bb3c..7376b5c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/InternalHomeVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/InternalHomeVO.java
@@ -20,7 +20,7 @@
     private Long noticeDealNum;
 
     @ApiModelProperty(value = "鎴戝彂璧风殑寰呭姙鏁伴噺")
-    private Integer noticeCreateNum;
+    private Long noticeCreateNum;
 
     @ApiModelProperty(value = "鎶勯�佺殑寰呭姙鏁伴噺")
     private Long noticeCopyNum;
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 3796270..74fc2e3 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
@@ -7,6 +7,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,6 +18,8 @@
  */
 @Data
 public class VisitDetailVO {
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
 
     @ApiModelProperty(value = "瀹℃壒鐘舵��")
     private Integer status;
@@ -76,6 +79,8 @@
     @ApiModelProperty(value = "瀹℃壒淇℃伅鏁版嵁")
     private ApproveDataVO approveDateVO;
 
+    @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収", example = "1")
+    private Integer idcardType;
 
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
index 03fd6bc..24554db 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -16,6 +16,7 @@
 import com.doumee.dao.web.reqeust.VisitMemberDTO;
 import com.doumee.dao.web.response.MemberVO;
 import com.doumee.dao.web.response.WxAuthorizeVO;
+import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -173,20 +174,13 @@
      * @param code
      * @return
      */
-    WxAuthorizeVO wxAuthorize(String code);
+    WxAuthorizeVO wxAuthorize(String code,Integer source);
 
 
 
     List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO);
 
 
-    /**
-     * 璐﹀彿瀵嗙爜
-     * 鍐呴儴浜哄憳/鍔冲姟璁垮鐧诲綍
-     * @param accountLoginDTO
-     * @return
-     */
-    WxAuthorizeVO accountLogin(AccountLoginDTO accountLoginDTO);
 
     /**
      * 鍐呴儴鍙嫓璁夸汉鍛樺垎椤�
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
new file mode 100644
index 0000000..baaf67e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.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.PlatformBooks;
+import java.util.List;
+
+/**
+ * 鏈堝彴鍏ュ洯棰勭害淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformBooksService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformBooks 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformBooks platformBooks);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformBooks 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformBooks platformBooks);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformBooks 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformBooks platformBooks);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformBookss 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformBooks> platformBookss);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformBooks
+     */
+    PlatformBooks findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformBooks 瀹炰綋瀵硅薄
+     * @return PlatformBooks
+     */
+    PlatformBooks findOne(PlatformBooks platformBooks);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformBooks 瀹炰綋瀵硅薄
+     * @return List<PlatformBooks>
+     */
+    List<PlatformBooks> findList(PlatformBooks platformBooks);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformBooks>
+     */
+    PageData<PlatformBooks> findPage(PageWrap<PlatformBooks> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformBooks 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformBooks platformBooks);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBroadcastLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBroadcastLogService.java
new file mode 100644
index 0000000..d33ad3a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBroadcastLogService.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.PlatformBroadcastLog;
+import java.util.List;
+
+/**
+ * 鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰昐ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformBroadcastLogService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformBroadcastLog 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformBroadcastLog platformBroadcastLog);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformBroadcastLog 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformBroadcastLog platformBroadcastLog);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformBroadcastLog 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformBroadcastLog platformBroadcastLog);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformBroadcastLogs 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformBroadcastLog> platformBroadcastLogs);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformBroadcastLog
+     */
+    PlatformBroadcastLog findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformBroadcastLog 瀹炰綋瀵硅薄
+     * @return PlatformBroadcastLog
+     */
+    PlatformBroadcastLog findOne(PlatformBroadcastLog platformBroadcastLog);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformBroadcastLog 瀹炰綋瀵硅薄
+     * @return List<PlatformBroadcastLog>
+     */
+    List<PlatformBroadcastLog> findList(PlatformBroadcastLog platformBroadcastLog);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformBroadcastLog>
+     */
+    PageData<PlatformBroadcastLog> findPage(PageWrap<PlatformBroadcastLog> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformBroadcastLog 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformBroadcastLog platformBroadcastLog);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformDeviceService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformDeviceService.java
new file mode 100644
index 0000000..3b3522a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformDeviceService.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.PlatformDevice;
+import java.util.List;
+
+/**
+ * 鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformDeviceService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformDevice 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformDevice platformDevice);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformDevice 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformDevice platformDevice);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformDevice 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformDevice platformDevice);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformDevices 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformDevice> platformDevices);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformDevice
+     */
+    PlatformDevice findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformDevice 瀹炰綋瀵硅薄
+     * @return PlatformDevice
+     */
+    PlatformDevice findOne(PlatformDevice platformDevice);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformDevice 瀹炰綋瀵硅薄
+     * @return List<PlatformDevice>
+     */
+    List<PlatformDevice> findList(PlatformDevice platformDevice);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformDevice>
+     */
+    PageData<PlatformDevice> findPage(PageWrap<PlatformDevice> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformDevice 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformDevice platformDevice);
+}
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 d43b533..386eac0 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
@@ -8,7 +8,7 @@
 /**
  * 鏈堝彴_鍒嗙粍淇℃伅琛⊿ervice瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformGroupService {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformInterfaceLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformInterfaceLogService.java
index 1dd001d..3aaab3a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformInterfaceLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformInterfaceLogService.java
@@ -8,7 +8,7 @@
 /**
  * 浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍Service瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformInterfaceLogService {
 
@@ -94,6 +94,4 @@
      * @return long
      */
     long count(PlatformInterfaceLog platformInterfaceLog);
-
-    void clearThreeMonthLog();
 }
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 0e778f3..cef117e 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
@@ -8,7 +8,7 @@
 /**
  * 鏈堝彴璋冨害浣滀笟淇℃伅琛⊿ervice瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformJobService {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
index 2c8cc6a..6ba2888 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
@@ -8,7 +8,7 @@
 /**
  * 鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛⊿ervice瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformLogService {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformQueueService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformQueueService.java
index 7840cbc..22e9fa8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformQueueService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformQueueService.java
@@ -8,7 +8,7 @@
 /**
  * 鏈堝彴_鍙彿鎺掗槦淇℃伅琛⊿ervice瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformQueueService {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
index 3b7c794..d244393 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
@@ -8,7 +8,7 @@
 /**
  * 鏈堝彴淇℃伅琛⊿ervice瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformService {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java
index 79ba49d..96cc3ea 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java
@@ -8,7 +8,7 @@
 /**
  * 鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛⊿ervice瀹氫箟
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 public interface PlatformShowParamService {
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsDetailService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsDetailService.java
new file mode 100644
index 0000000..2a359c9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsDetailService.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.PlatformWmsDetail;
+import java.util.List;
+
+/**
+ * 鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁哠ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformWmsDetailService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformWmsDetail 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformWmsDetail platformWmsDetail);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformWmsDetail 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformWmsDetail platformWmsDetail);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformWmsDetail 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformWmsDetail platformWmsDetail);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformWmsDetails 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformWmsDetail> platformWmsDetails);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformWmsDetail
+     */
+    PlatformWmsDetail findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformWmsDetail 瀹炰綋瀵硅薄
+     * @return PlatformWmsDetail
+     */
+    PlatformWmsDetail findOne(PlatformWmsDetail platformWmsDetail);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformWmsDetail 瀹炰綋瀵硅薄
+     * @return List<PlatformWmsDetail>
+     */
+    List<PlatformWmsDetail> findList(PlatformWmsDetail platformWmsDetail);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformWmsDetail>
+     */
+    PageData<PlatformWmsDetail> findPage(PageWrap<PlatformWmsDetail> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformWmsDetail 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformWmsDetail platformWmsDetail);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java
new file mode 100644
index 0000000..c2b5330
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.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.PlatformWmsJob;
+import java.util.List;
+
+/**
+ * 鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface PlatformWmsJobService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformWmsJob 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformWmsJob platformWmsJob);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformWmsJob 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformWmsJob platformWmsJob);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformWmsJob 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformWmsJob platformWmsJob);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformWmsJobs 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformWmsJob> platformWmsJobs);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformWmsJob
+     */
+    PlatformWmsJob findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformWmsJob 瀹炰綋瀵硅薄
+     * @return PlatformWmsJob
+     */
+    PlatformWmsJob findOne(PlatformWmsJob platformWmsJob);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformWmsJob 瀹炰綋瀵硅薄
+     * @return List<PlatformWmsJob>
+     */
+    List<PlatformWmsJob> findList(PlatformWmsJob platformWmsJob);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformWmsJob>
+     */
+    PageData<PlatformWmsJob> findPage(PageWrap<PlatformWmsJob> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformWmsJob 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformWmsJob platformWmsJob);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
index 35fdec6..569c7ca 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -9,6 +9,7 @@
 import com.doumee.dao.web.reqeust.VisitRecordDTO;
 import com.doumee.dao.web.response.VisitDetailVO;
 import com.doumee.dao.web.response.VisitRecordVO;
+import io.swagger.models.auth.In;
 
 import java.util.List;
 
@@ -27,7 +28,7 @@
      */
     Integer create(Visits visits);
 
-    Integer createFk(Visits visits,Boolean isERP);
+    Integer createFk(Visits visits, Boolean isERP, Integer source);
 
     /**
      * 璁垮鎶ュ
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java
index 261c650..72c55b6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/ERPSyncService.java
@@ -53,7 +53,7 @@
      * @param accessSecret
      * @return
      */
-    AccessTokenResponse createERPToken(String accessKey, String accessSecret);
+//    AccessTokenResponse createERPToken(String accessKey, String accessSecret);
 
 
     /**
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 c3c2cfa..384cdcc 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
@@ -1,7 +1,6 @@
 package com.doumee.service.business.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
@@ -37,6 +36,7 @@
 import org.apache.xpath.operations.Bool;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -258,17 +258,19 @@
                                 &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO)
                         ).count()
                 );
+                //宸插鐞嗘暟鎹�
                 internalHomeVO.setNoticeDealNum(
                         noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),memberId)
+                                &&StringUtils.equals(i.getParam4(),i.getUserId().toString())
                                 &&Constants.equalsInteger(i.getStatus(),Constants.ONE)
                                 &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO)
                         ).count()
                 );
-
+                //鎴戝彂璧风殑鏁版嵁
                 internalHomeVO.setNoticeCreateNum(
                         noticesJoinMapper.selectCount(new QueryWrapper<Notices>().lambda().eq(Notices::getParam3,memberId))
                 );
-
+                //鎶勯�佹垜鐨勬暟鎹�
                 internalHomeVO.setNoticeCopyNum(
                         noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),memberId)
                                 &&Constants.equalsInteger(i.getSendacopy(),Constants.ONE)
@@ -291,7 +293,8 @@
                         .ge(noticesDTO.getStartDate() != null, Notices::getCreateDate, Utils.Date.getStart(noticesDTO.getStartDate() ))
                         .le(noticesDTO.getEndDate() != null,  Notices::getCreateDate, Utils.Date.getEnd(noticesDTO.getEndDate() ))
                         .eq(noticesDTO.getType() != null,  Notices::getType, noticesDTO.getType())
-                        .eq(Notices::getUserId,noticesDTO.getMemberId()).orderByDesc(Notices::getCreateDate)
+                        .eq(Notices::getUserId,noticesDTO.getMemberId())
+                        .orderByDesc(Notices::getCreateDate)
                 );
         internalHomeVO.setTaskNum(noticesList.size());
         if(CollectionUtils.isNotEmpty(noticesList)){
@@ -374,7 +377,8 @@
         if(CollectionUtils.isNotEmpty(approveCopyList)){
             this.organizeApproveCopyData(approveTempl,approveParamList,businessId,approveList);
         }
-        approveMapper.insertBatchSomeColumn(approveList);
+        approveJoinMapper.insert(approveList);
+//        approveJoinMapper.insert(approveList);
 
     }
 
@@ -396,6 +400,7 @@
         createUserApprove.setIsdeleted(Constants.ZERO);
         createUserApprove.setTemplatId(approveTempl.getId());
         createUserApprove.setChekorId(createMember.getId());
+        createUserApprove.setCheckDate(createUserApprove.getCreateDate());
         createUserApprove.setStatus(Constants.approveStatus.pass);
         createUserApprove.setTitle("鍙戣捣鐢宠");
         createUserApprove.setStatusInfo("");
@@ -467,6 +472,7 @@
                 approve.setChekorId(memberId);
                 approve.setStatus(i==0?Constants.ONE:Constants.ZERO);
                 approve.setStatusInfo(i==0?"瀹℃壒涓�":"寰呭鎵�");
+                approve.setTitle("瀹℃壒浜�");
                 approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO);
                 approve.setObjId(businessId);
                 approve.setLevel(i+1);
@@ -549,18 +555,18 @@
             if(CollectionUtils.isNotEmpty(memberList)){
                 userIds.addAll(memberList.stream().map(m->m.getId()).collect(Collectors.toList()));
             }
-            //鍏姟鐢ㄨ溅 榛樿鍔犲叆 鍙告満鎶勯��
-            if(approveTempl.getType()==Constants.THREE||approveTempl.getType()==Constants.FOUR){
-                CarUseBook carUseBook = carUseBookMapper.selectById(businessId);
-                if(Objects.isNull(carUseBook)){
-                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓烘煡璇㈠埌鐢ㄨ溅鐢宠淇℃伅");
-                }
-                CarDriver carDriver = carDriverMapper.selectById(carUseBook.getDriverId());
-                if(Objects.isNull(carDriver)){
-                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓烘煡璇㈠埌鍙告満淇℃伅");
-                }
-                userIds.add(carDriver.getMemberId());
-            }
+            //鍏姟鐢ㄨ溅 榛樿鍔犲叆 鍙告満鎶勯��  2024骞�6鏈�28鏃�16:49:08 鍙告満鎶勯�佷慨鏀瑰埌 瀹℃壒涓氬姟鏃惰繘琛屽彂閫�
+//            if(approveTempl.getType()==Constants.THREE||approveTempl.getType()==Constants.FOUR){
+//                CarUseBook carUseBook = carUseBookMapper.selectById(businessId);
+//                if(Objects.isNull(carUseBook)){
+//                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓烘煡璇㈠埌鐢ㄨ溅鐢宠淇℃伅");
+//                }
+//                CarDriver carDriver = carDriverMapper.selectById(carUseBook.getDriverId());
+//                if(Objects.isNull(carDriver)){
+//                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓烘煡璇㈠埌鍙告満淇℃伅");
+//                }
+//                userIds.add(carDriver.getMemberId());
+//            }
 
             if(CollectionUtils.isNotEmpty(userIds)){
                 for (Integer memberId:userIds) {
@@ -684,11 +690,6 @@
             for(Approve level:levelList){
                 List<Approve> tlist = getLevelInfoFromList(level,approveGroupList);
                 approveDateVO.getApproveList().addAll(tlist);
-                if(tlist.size() ==0
-                        ||Constants.equalsInteger(Constants.approveStatus.unPass,  tlist.get(0).getStatus())
-                        ||Constants.equalsInteger(Constants.approveStatus.cancel,  tlist.get(0).getStatus())){
-                    break;
-                }
             }
         }
 
@@ -702,6 +703,7 @@
             waitModel.setApproveList(copyList);
             approveDateVO.getApproveList().add(waitModel);
         }
+        System.out.println(JSONObject.toJSONString(approveDateVO));
         return approveDateVO;
     }
 
@@ -748,6 +750,9 @@
                         ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
                     waitModel.setMemberName(waitList.size() +"浜轰細绛�");
                 }
+                if(CollectionUtils.isNotEmpty(waitList)){
+                    waitModel.setCreateDate(waitList.get(Constants.ZERO).getCreateDate());
+                }
                 waitModel.setApproveList(waitList);
                 list.add(waitModel);
             }else if(waitList.size()>0){
@@ -775,19 +780,17 @@
                 if(passList.size()>0){
                     approveList.addAll(otherPassList);
                 }
-                waitModel.setMemberName("宸叉妱閫�"+ approveList.size() +"浜�");
+                if(CollectionUtils.isNotEmpty(approveList)){
+                    waitModel.setCreateDate(approveList.get(Constants.ZERO).getCreateDate());
+                }
+                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.pass)){
+                    waitModel.setMemberName("宸叉妱閫�"+ approveList.size() +"浜�");
+                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
+                    waitModel.setMemberName("澶勭悊涓�");
+                }
                 waitModel.setApproveList(approveList);
                 list.add(waitModel);
             }
-            //濡傛灉鏄垨绛�
-//            if(otherPassList.size()>0){
-//                Approve waitModel = new Approve();
-//                waitModel.setApproveType(Constants.ONE);
-//                waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"锛堟妱閫佹垨绛惧鎵逛汉锛�");
-//                waitModel.setStatus(Constants.ONE);
-//                waitModel.setApproveList(otherPassList);
-//                list.add(waitModel);
-//            }
         }
 
 
@@ -810,7 +813,7 @@
             }else if(Constants.equalsInteger(Constants.approveStatus.auditIng,approve.getStatus())||Constants.equalsInteger(Constants.approveStatus.wait,approve.getStatus())){
                 waitList.add(approve);
             }else if(Constants.equalsInteger(Constants.approveStatus.unPass,approve.getStatus())){
-                refuseModel = approve;
+                BeanUtils.copyProperties(approve,refuseModel);
             }
         }
     }
@@ -1003,6 +1006,7 @@
                 .eq(Notices::getUserId,approve.getChekorId())
                 .eq(Notices::getSendacopy,Constants.ZERO)
                 .eq(Notices::getIsdeleted,Constants.ZERO)
+                .last(" limit 1 ")
         );
         if(Objects.isNull(notices)){
             log.info("鏈煡璇㈠埌閫氱煡璁板綍");
@@ -1014,7 +1018,7 @@
         approve.setCheorId(approveDTO.getLoginUserInfo().getMemberId().toString());
         approve.setCheckorName(approveDTO.getLoginUserInfo().getRealname());
         approve.setCheckDate(new Date());
-        approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"宸插悓鎰�":approveDTO.getCheckInfo());
+        approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"宸插悓鎰�":"宸查┏鍥�");
         //鏈骇鎵�鏈� 寰呭鎵硅褰�
         List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class,
                 new MPJLambdaWrapper<Approve>()
@@ -1042,10 +1046,12 @@
         Boolean dealBusinessBean = false;
         //瀹℃壒椹冲洖鎯呭喌
         if(approveDTO.getStatus().equals(Constants.THREE)){
+            dealBusinessBean = true;
             //淇敼鍏朵粬鎵�鏈夊緟瀹℃壒鍜屽鎵逛腑璁板綍鏁版嵁
             approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                     .lambda()
                     .set(Approve::getStatus,Constants.approveStatus.otherUnPass)
+                    .set(Approve::getCheckDate,new Date())
                     .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait)
                     .eq(Approve::getObjId,approve.getObjId())
                     .eq(Approve::getObjType,approve.getObjType())
@@ -1055,8 +1061,10 @@
                 //淇敼鑷繁鐨勯�氱煡璁板綍
                 noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                         .set(Notices::getEditDate,new Date())
+                        .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                         .set(Notices::getReaded,Constants.ONE)
-                        .set(Notices::getParam2,approve.getStatus())
+                        .set(Notices::getParam2,Constants.TWO)
+                        .set(Notices::getStatus,Constants.ONE)
                         .eq(Notices::getId,notices.getId())
                 );
                 //淇敼 鏈鐞嗙殑 閫氱煡鏁版嵁 涓烘妱閫�
@@ -1064,7 +1072,8 @@
                     noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                             .set(Notices::getEditDate,new Date())
                             .set(Notices::getSendacopy,Constants.ONE)
-                            .set(Notices::getParam2,approve.getStatus())
+                            .set(Notices::getStatus,Constants.ONE)
+                            .set(Notices::getParam2,Constants.TWO)
                             .eq(Notices::getObjId,notices.getObjId())
                             .eq(Notices::getObjType,notices.getObjType())
                             .eq(Notices::getReaded,Constants.ZERO)
@@ -1072,34 +1081,45 @@
                     );
                 }
             }
-            return;
         }else{
             //澶勭悊鍏朵粬涓氬姟鏁版嵁
             if((Constants.equalsInteger(approve.getApproveType(),Constants.ZERO)
                     || Constants.equalsInteger( approve.getApproveType(),Constants.TWO)) && Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE)){
                 //鎴栫 / 鍗曚汉瀹� 涓� 缁堝
-                approveJoinMapper.update(null,new UpdateWrapper<Approve>()
-                        .lambda()
-                        .set(Approve::getStatus,Constants.approveStatus.otherDeal)
-                        .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList())));
+                if(CollectionUtils.isNotEmpty(approveList)){
+                    approveJoinMapper.update(null,new UpdateWrapper<Approve>()
+                            .lambda()
+                            .set(Approve::getStatus,Constants.approveStatus.otherDeal)
+                            .set(Approve::getCheckDate,new Date())
+                            .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList())));
+                }
                 dealBusinessBean = true;
             }else if((approve.getApproveType().equals(Constants.ZERO)
                     || approve.getApproveType().equals(Constants.TWO)) &&approve.getIsEndCheck()!=Constants.ONE){
                 //鎴栫 / 鍗曚汉瀹� 闈炵粓瀹� 鍒欏紑鍚笅涓�姝ヤ笟鍔℃祦绋�
                 /**澶勭悊鏈骇鏁版嵁**/
-                approveJoinMapper.update(null,new UpdateWrapper<Approve>()
-                        .lambda()
-                        .set(Approve::getStatus,Constants.approveStatus.otherDeal)
-                        .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList())));
+                if(CollectionUtils.isNotEmpty(approveList)){
+                    approveJoinMapper.update(null,new UpdateWrapper<Approve>()
+                            .lambda()
+                            .set(Approve::getStatus,Constants.approveStatus.otherDeal)
+                            .set(Approve::getCheckDate,new Date())
+                            .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList())));
+                }
                 /**寮�鍚笅涓�绾у埆鐨勬暟鎹负寰呭鏍�**/
                 approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                         .lambda()
                         .set(Approve::getStatus,Constants.approveStatus.auditIng)
+                        .set(Approve::getTitle,"瀹℃壒浜�")
+                        .set(Approve::getCheckDate,new Date())
                         .eq(Approve::getStatus,Constants.approveStatus.wait)
                         .eq(Approve::getObjId,approve.getObjId())
                         .eq(Approve::getObjType,approve.getObjType())
                         .eq(Approve::getLevel,(approve.getLevel()+1))
                 );
+                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
+                        Constants.approveObjectType.unCityUseCar)){
+                    this.updDriver(approveDTO,approve,false);
+                }
             }else if(approve.getApproveType().equals(Constants.ONE)){
                 //浼氱 涓旂粓瀹�
                 //鏃犱粬浜哄鎵圭殑鎯呭喌 鍒欎慨鏀规暟鎹姸鎬�
@@ -1107,7 +1127,7 @@
                     dealBusinessBean = true;
                 }
             }
-            this.passNextNotices(dealBusinessBean,notices,approve,approveList,approveCopyList);
+            this.passNextNotices(dealBusinessBean,notices,approve,approveList,approveCopyList,approveDTO);
         }
         //澶勭悊涓氬姟鏁版嵁
         if(dealBusinessBean){
@@ -1121,12 +1141,14 @@
      * @param approve  瀹℃壒璁板綍
      * @param approveList  鍚岀骇寰呭鎵规暟鎹�
      */
-    public void passNextNotices(Boolean dealBusinessBean,Notices notices,Approve approve,List<Approve> approveList,List<Approve> copyList){
+    public void passNextNotices(Boolean dealBusinessBean,Notices notices,Approve approve,List<Approve> approveList,List<Approve> copyList,ApproveDTO approveDTO){
         //1銆佷慨鏀硅嚜宸辩殑鏁版嵁璁板綍
         noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                 .set(Notices::getEditDate,new Date())
                 .set(Notices::getReaded,Constants.ONE)
-                .set(dealBusinessBean,Notices::getParam2,approve.getStatus())
+                .set(Notices::getStatus,Constants.ONE)
+                .set(dealBusinessBean,Notices::getParam2,Constants.ONE)
+                .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                 .eq(Notices::getId,notices.getId())
         );
         if(Constants.equalsInteger(approve.getApproveType(),Constants.ZERO)){
@@ -1136,7 +1158,9 @@
                     .set(Notices::getEditDate,new Date())
                     .set(Notices::getReaded,Constants.ONE)
                     .set(Notices::getSendacopy,Constants.ONE)
-                    .set(dealBusinessBean,Notices::getParam2,approve.getStatus())
+                    .set(Notices::getStatus,Constants.ONE)
+                    .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
+                    .set(dealBusinessBean,Notices::getParam2,Constants.ONE)
                     .eq(Notices::getObjId,notices.getObjId())
                     .eq(Notices::getObjType,notices.getObjType())
                     .ne(Notices::getId,notices.getId())
@@ -1198,7 +1222,7 @@
                 .eq(Approve::getType,Constants.ZERO)
                 .eq(Approve::getLevel,(approve.getLevel() + Constants.ONE))
         );
-        if(CollectionUtils.isNotEmpty(nextApproveList)){
+        if(CollectionUtils.isEmpty(nextApproveList)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴佹暟鎹紓甯�");
         }
         Notices newNotices = new Notices();
@@ -1238,23 +1262,7 @@
             visitsMapper.updateById(visits);
         }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                 Constants.approveObjectType.unCityUseCar)){
-            // 甯傚唴澶栫敤杞︾敵璇�
-            CarUseBook carUseBook = carUseBookMapper.selectById(approveDTO.getObjId());
-            if(Objects.isNull(carUseBook)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鐢ㄨ溅璁板綍");
-            }
-            carUseBook.setStatus(approveDTO.getStatus());
-            carUseBook.setEditDate(new Date());
-            carUseBook.setEditor(approveDTO.getLoginUserInfo().getMemberId());
-            //濡傛灉閰嶇疆淇敼鍙告満 涓� 鍏ュ弬浜嗘洿鎹㈠悗鍙告満淇℃伅
-            if(approveDTO.getStatus()==Constants.TWO&&Constants.equalsInteger(approve.getDriverParam(),Constants.ONE)){
-                CarDriver carDriver = carDriverMapper.selectById(approveDTO.getDriverId());
-                if(Objects.isNull(carDriver)){
-                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鍙告満淇℃伅");
-                }
-                carUseBook.setDriverId(carDriver.getId());
-            }
-            carUseBookMapper.updateById(carUseBook);
+            this.updDriver(approveDTO,approve,true);
         }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){
             //TODO  鐗╂祦杞﹂绾�
 
@@ -1264,4 +1272,34 @@
     }
 
 
+    public void updDriver(ApproveDTO approveDTO,Approve approve,Boolean dealBusinessBean){
+        // 甯傚唴澶栫敤杞︾敵璇�
+        CarUseBook carUseBook = carUseBookMapper.selectById(approveDTO.getObjId());
+        if(Objects.isNull(carUseBook)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鐢ㄨ溅璁板綍");
+        }
+        if(dealBusinessBean){
+            carUseBook.setStatus(approveDTO.getStatus());
+        }else{
+            if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)){
+                carUseBook.setStatus(Constants.ONE);
+            }
+        }
+        carUseBook.setEditDate(new Date());
+        carUseBook.setEditor(approveDTO.getLoginUserInfo().getMemberId());
+        //濡傛灉閰嶇疆淇敼鍙告満 涓� 鍏ュ弬浜嗘洿鎹㈠悗鍙告満淇℃伅
+        if(approveDTO.getStatus()==Constants.TWO&&Constants.equalsInteger(approve.getDriverParam(),Constants.ONE)){
+            CarDriver carDriver = carDriverMapper.selectOne(new QueryWrapper<CarDriver>().lambda()
+                    .eq(CarDriver::getIsdeleted,Constants.ZERO)
+                    .eq(CarDriver::getStatus,Constants.ZERO)
+                    .eq(CarDriver::getMemberId,approveDTO.getDriverId()));
+            if(Objects.isNull(carDriver)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鍙告満淇℃伅");
+            }
+             carUseBook.setDriverId(carDriver.getMemberId());
+        }
+        carUseBookMapper.updateById(carUseBook);
+    }
+
+
 }
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 7b9bfbb..f1b227b 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
@@ -9,10 +9,8 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.ApproveParamMapper;
 import com.doumee.dao.business.ApproveTemplMapper;
-import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.join.MemberJoinMapper;
 import com.doumee.dao.business.model.*;
-import com.doumee.dao.business.vo.ApproveParamDataVO;
 import com.doumee.service.business.ApproveTemplService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -28,8 +26,6 @@
 
 import java.util.Date;
 import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
 
 /**
  * 瀹℃壒妯$増淇℃伅琛⊿ervice瀹炵幇
@@ -94,7 +90,7 @@
             approveParamMapper.delete(new UpdateWrapper<ApproveParam>().lambda()
                     .eq(ApproveParam::getTemplId,template.getId()));
             //鎵归噺鎻掑叆鏂扮殑閰嶇疆
-            approveParamMapper.insertBatchSomeColumn(model.getParamList());
+            approveParamMapper.insert(model.getParamList());
         }
         return 1;
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 25eeca6..5befe39 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -29,6 +29,7 @@
 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.springframework.util.CollectionUtils;
 
 import java.time.LocalDateTime;
@@ -75,13 +76,13 @@
 
 
     @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer create(CarUseBook carUseBook)  throws Exception {
         if(Objects.isNull(carUseBook)
             || Objects.isNull(carUseBook.getCarId())
                 || Objects.isNull(carUseBook.getStartTime())
                 || Objects.isNull(carUseBook.getEndTime())
                 || Objects.isNull(carUseBook.getCreator())
-                || Objects.isNull(carUseBook.getMemberId())
                 || Objects.isNull(carUseBook.getPlanUseDate())
                 || Objects.isNull(carUseBook.getType())
                 || StringUtils.isEmpty(carUseBook.getMemberIds())
@@ -90,6 +91,9 @@
                 || StringUtils.isEmpty(carUseBook.getAddr())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(Objects.nonNull(carUseBook.getCreator())&&Objects.isNull(carUseBook.getMemberId())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�!");
         }
         if(carUseBook.getEndTime().getTime()<=System.currentTimeMillis()){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"閫夋嫨鏃ユ湡寮傚父[缁撴潫鏃堕棿灏忎簬褰撳墠鏃堕棿],璇峰埛鏂伴噸璇�");
@@ -106,6 +110,7 @@
         if(Objects.isNull(cars)||!cars.getType().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"杞﹁締淇℃伅寮傚父");
         }
+        carUseBook.setCarCode(cars.getCode());
         //鏍规嵁杞﹁締鏌ヨ鍙告満淇℃伅
         CarDriver carDriver = carDriverMapper.selectOne(new QueryWrapper<CarDriver>().lambda()
                 .eq(CarDriver::getCarId,cars.getId())
@@ -204,6 +209,7 @@
                 }
             }
             approve.setCheckInfo(model.getCancelInfo());
+            approve.setCheckDate(model.getCancelTime());
             approveList.add(approve);
         }
         model.setApproveDateVO(approveDataVO);
@@ -368,28 +374,29 @@
                         .or().like(CarUseBook::getEndTime,dateDay)
                         .or().apply("  START_TIME < '"+dateDay+" 00:00:00' and END_TIME  > '"+dateDay+" 23:59:59'  "))
         );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carUseBookList)){
-            for (DateIntervalVO dateIntervalVO:dateIntervalVOList) {
-                //鍒ゆ柇鏃堕棿鏄惁澶т簬褰撳墠
-                if(DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime()<=System.currentTimeMillis()){
-                    dateIntervalVO.setIsUse(Constants.ONE);
-                    continue;
-                }
+        for (DateIntervalVO dateIntervalVO:dateIntervalVOList) {
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carUseBookList)){
                 for (CarUseBook i:carUseBookList  ) {
                     if(
-                        (DateUtil.getDateFromString(dateIntervalVO.getStartTime()).getTime() <= i.getStartTime().getTime() &&
-                                i.getStartTime().getTime() < DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime())
-                        ||
-                        (DateUtil.getDateFromString(dateIntervalVO.getStartTime()).getTime() < i.getEndTime().getTime() &&
-                                i.getEndTime().getTime() <= DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime())
-                        ||
-                        (DateUtil.getDateFromString(dateIntervalVO.getStartTime()).getTime() >= i.getStartTime().getTime() &&
-                                        DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime() <= i.getEndTime().getTime())
+                            (DateUtil.getDateFromString(dateIntervalVO.getStartTime()).getTime() <= i.getStartTime().getTime() &&
+                                    i.getStartTime().getTime() < DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime())
+                                    ||
+                                    (DateUtil.getDateFromString(dateIntervalVO.getStartTime()).getTime() < i.getEndTime().getTime() &&
+                                            i.getEndTime().getTime() <= DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime())
+                                    ||
+                                    (DateUtil.getDateFromString(dateIntervalVO.getStartTime()).getTime() >= i.getStartTime().getTime() &&
+                                            DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime() <= i.getEndTime().getTime())
                     ){
+                        dateIntervalVO.setCarUseBookId(i.getId());
                         dateIntervalVO.setIsUse(Constants.ONE);
                         break;
                     }
                 }
+            }
+            //鍒ゆ柇鏃堕棿鏄惁澶т簬褰撳墠
+            if(Constants.equalsInteger(dateIntervalVO.getIsUse(),Constants.ZERO)  && DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime()<=System.currentTimeMillis()){
+                dateIntervalVO.setIsUse(Constants.ONE);
+                continue;
             }
         }
         return dateIntervalVOList;
@@ -433,7 +440,7 @@
        carUseBook.setCancelTime(new Date());
        carUseBook.setCancelStatus(Constants.ONE);
        carUseBook.setStatus(Constants.FOUR);
-       carUseBook.setCancelUser(loginUserInfo.getId());
+       carUseBook.setCancelUser(loginUserInfo.getMemberId());
        carUseBook.setCancelType(Constants.ONE);
        if(loginUserInfo.getId().equals(carUseBook.getCreator())){
            carUseBook.setCancelType(Constants.ZERO);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 1e84509..d398459 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -292,7 +292,8 @@
              if(companyJoinMapper.selectCount(new QueryWrapper<Company>().lambda()
                      .eq(Company::getIsdeleted,Constants.ZERO )
                      .eq(Company::getType,Constants.ONE )
-                     .likeRight(Company::getCompanyPath,company.getCompanyPath())) >0){
+                     .ne(Company::getId,model.getId())
+                     .likeRight(Company::getCompanyPath,model.getCompanyPath())) >0){
                  throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝涓嬬骇閮ㄩ棬瀛樺湪鍐呴儴缁勭粐锛岃閮ㄩ棬涓嶆敮鎸佸垏鎹负鐩稿叧鏂圭粍缁囷紒~");
              }
         }
@@ -576,7 +577,7 @@
         queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getEditor);
         queryWrapper.eq(Company::getIsdeleted,Constants.ZERO);
         queryWrapper.eq(type!=null,Company::getType,type);
-        queryWrapper.orderByAsc(Company::getSortnum );
+        queryWrapper.orderByAsc(true,"t.sortnum");
         List<Company> companyList = companyJoinMapper.selectJoinList(Company.class,queryWrapper);
         //閰嶇疆缁勫憳浜哄憳绫诲瀷鏉ユ簮鏂瑰紡 0鑷缓 1ERP
         CompanyTree treeBuild = new CompanyTree(companyList, dataSyncConfig.getOrgUserDataOrigin());
@@ -618,7 +619,8 @@
             if (currentMenuIndex - 1 < 0) {
                 return;
             }
-            Company preMenu = companyPool.remove(currentMenuIndex - 1);
+            Company preMenu = companyPool.get(currentMenuIndex - 1);
+            companyPool.remove(currentMenuIndex - 1);
             companyPool.add(currentMenuIndex, preMenu);
         }
         // 涓嬬Щ
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
index ee08189..696ce97 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
@@ -27,6 +27,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 闅愭偅鍖哄煙閰嶇疆绫诲瀷淇℃伅琛⊿ervice瀹炵幇
@@ -45,6 +46,13 @@
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(loginUserInfo == null){
             loginUserInfo = model.getLoginUserInfo();
+        }
+        if(hiddenDangerParamMapper.selectCount(new QueryWrapper<HiddenDangerParam>().lambda()
+                .eq(HiddenDangerParam::getType,model.getType())
+                .eq(HiddenDangerParam::getName,model.getName())
+                .eq(HiddenDangerParam::getIsdeleted,Constants.ZERO)
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ュ悕绉板凡瀛樺湪!");
         }
         if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
             //濡傛灉鏄尯鍩熼厤缃�
@@ -120,6 +128,14 @@
         HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(model.getId());
         if(hiddenDangerParam == null || Constants.equalsInteger(hiddenDangerParam.getIsdeleted(),Constants.ONE)){
             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ラ厤缃俊鎭笉瀛樺湪锛岃杩斿洖鍒锋柊椤甸潰閲嶈瘯锛�");
+        }
+        if(hiddenDangerParamMapper.selectCount(new QueryWrapper<HiddenDangerParam>().lambda()
+                .eq(HiddenDangerParam::getType,model.getType())
+                .eq(HiddenDangerParam::getName,model.getName())
+                .eq(HiddenDangerParam::getIsdeleted,Constants.ZERO)
+                .ne(HiddenDangerParam::getId,model.getId())
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ュ悕绉板凡瀛樺湪!");
         }
         if(Constants.equalsInteger(hiddenDangerParam.getType(),Constants.ZERO)){
             //濡傛灉鏄尯鍩熼厤缃�,鏍¢獙瀹夊叏鍛樹俊鎭槸鍚︽纭�
@@ -228,8 +244,12 @@
     }
     @Override
     public   List<Member> findHiddenAreaMemberList(HiddenDangerParam pageWrap) {
-        QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(pageWrap);
-        pageWrap.setIsdeleted(Constants.ZERO);
+        HiddenDangerParam hiddenDangerParam = new HiddenDangerParam();
+        hiddenDangerParam.setIsdeleted(Constants.ZERO);
+        if(Objects.nonNull(pageWrap.getId())){
+            hiddenDangerParam.setId(pageWrap.getId());
+        }
+        QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(hiddenDangerParam);
         List<HiddenDangerParam> list = hiddenDangerParamMapper.selectList(wrapper);
         List<Member> memberList = new ArrayList<>();
         if(list!=null){
@@ -252,6 +272,7 @@
                         .leftJoin(Company.class, Company::getId,Member::getCompanyId)
                         .eq(Member::getType,Constants.TWO)
                         .eq(Member::getIsdeleted,Constants.ZERO)
+                        .like(StringUtils.isNotBlank(pageWrap.getName()),Member::getName,pageWrap.getName())
                         .in(Member::getId,idList)
                 );
             }
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 f0024a9..87dfe19 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
@@ -84,6 +84,7 @@
         if(Objects.isNull(hiddenDangerParam)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鍖哄煙");
         }
+
         HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(hiddenDanger.getCateId());
         if(Objects.isNull(hiddenDangerCate)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅绫诲瀷");
@@ -317,6 +318,7 @@
                 .eq(pageWrap.getModel().getCheckInfo() != null, HiddenDanger::getCheckInfo, pageWrap.getModel().getCheckInfo())
                 .eq(pageWrap.getModel().getCheckUserId() != null, HiddenDanger::getCheckUserId, pageWrap.getModel().getCheckUserId())
                 .eq(pageWrap.getModel().getAreaName() != null, HiddenDanger::getAreaName, pageWrap.getModel().getAreaName())
+                .like(pageWrap.getModel().getCompanyName() != null,"t4.company_name_path",pageWrap.getModel().getCompanyName())
 
                 .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName())
                         .or().like(Member::getPhone,pageWrap.getModel().getMemberName()))
@@ -448,7 +450,7 @@
             }
         }
         if(fileList.size()>0){
-            multifileMapper.insertBatchSomeColumn(fileList);
+            multifileMapper.insert(fileList);
         }
     }
 
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 9deef32..e9619f0 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
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.PhoneUtil;
+import cn.hutool.http.HttpRequest;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -9,8 +10,6 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.DataSyncConfig;
-import com.doumee.config.Jwt.JwtPayLoad;
-import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.annotation.excel.ExcelImporter;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
@@ -64,10 +63,12 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -128,6 +129,9 @@
     @Lazy
     private SmsEmailService smsEmailService;
 
+    @Autowired
+    private SystemLoginService systemLoginService; 
+    
     @Value("${debug_model}")
     private Boolean isDebug;
     @Override
@@ -458,11 +462,12 @@
             systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
                             .set(SystemUser::getUpdateUser,member.getLoginUserInfo().getId())
                             .set(SystemUser::getUpdateTime,new Date())
-                            .set(StringUtils.isNotBlank(model.getFaceImg()),SystemUser::getAvatar,member.getFaceImg())
-                            .set(StringUtils.isNotBlank(model.getPhone()),SystemUser::getMobile,member.getPhone())
-                            .set(StringUtils.isNotBlank(model.getName()),SystemUser::getRealname,member.getName())
-                            .set(model.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId())
-                            .set(StringUtils.isNotBlank(model.getCode()),SystemUser::getEmpNo,member.getCode())
+                            .set(StringUtils.isNotBlank(member.getFaceImg()),SystemUser::getAvatar,member.getFaceImg())
+                            .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getMobile,member.getPhone())
+                            .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getUsername,member.getPhone())
+                            .set(StringUtils.isNotBlank(member.getName()),SystemUser::getRealname,member.getName())
+                            .set(member.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId())
+                            .set(StringUtils.isNotBlank(member.getCode()),SystemUser::getEmpNo,member.getCode())
                     .eq(SystemUser::getMemberId,model.getId()));
         }
         if(Constants.equalsInteger(model.getCompanyType(),Constants.ZERO)
@@ -739,7 +744,7 @@
                     memberRole.setRoleId(deviceRole.getId());
                     memberRoleList.add(memberRole);
                 }
-                memberRoleMapper.insertBatchSomeColumn(memberRoleList);
+                memberRoleMapper.insert(memberRoleList);
             }
             member.setRoleId(ids);
             return  1;
@@ -803,8 +808,8 @@
         }
         for (Integer id:ids) {
             Member member = memberMapper.selectById(id);
-            if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){
-                member.setStatus(Constants.TWO);
+            if(!Objects.isNull(member)&&member.getStatus()!=Constants.TWO){
+                member.setStatus(Constants.TWO);//鎭㈠姝e父鐘舵��
                 member.setEditor(loginUserInfo.getId());
                 member.setEditDate(new Date());
                 member.setAuthStatus(Constants.ZERO);//鏈巿鏉�
@@ -814,7 +819,6 @@
                 member.setEditor(loginUserInfo.getId());
                 //鍒犻櫎鍛樺伐闂ㄧ鏉冮檺
                 cancelAllMemberEmpower(member,memberRoleMapper,empowerMapper);
-
                 if(Constants.equalsInteger(type,Constants.ONE)){
                     saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.FREEZE,userActionJoinMapper,JSONObject.toJSONString(member));
                 }
@@ -838,8 +842,8 @@
         }
         for (Integer id:ids) {
             Member member = memberMapper.selectById(id);
-            if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){
-                member.setStatus(Constants.ONE);//鎭㈠姝e父鐘舵��
+            if(!Objects.isNull(member)&&member.getStatus()==Constants.TWO){
+                member.setStatus(Constants.ZERO);//鎭㈠姝e父鐘舵��
                 member.setEditor(loginUserInfo.getId());
                 member.setEditDate(new Date());
                 member.setAuthStatus(Constants.ZERO);//鏈巿鏉�
@@ -935,7 +939,7 @@
         userAction.setType(type.getKey());
         userAction.setContent(content);
         String info = type.getInfo();
-        userAction.setRemark(info.replace("${param1}",user!=null?user.getRealname():"绯荤粺").replace("${param2}", com.doumee.core.utils.DateUtil.getPlusTime2(updateMember.getEditDate())));
+        userAction.setRemark(info.replace("${param1}",user!=null?user.getRealname():"绯荤粺").replace("${param2}", com.doumee.core.utils.DateUtil.getPlusTime2(updateMember.getEditDate()!=null?updateMember.getEditDate():new Date())));
         userAction.setMemberId(updateMember.getId()+"");
         userActionMapper.insert(userAction);
     }
@@ -1112,6 +1116,7 @@
             queryWrapper.eq(Member::getCompanyId,member.getCompanyId());
         }
         queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
+        queryWrapper.eq(Member::getWorkStatus,Constants.ZERO);
         List<Member> list =  memberJoinMapper.selectJoinList(Member.class,queryWrapper);
 //        if(list!=null){
 //            for(Member m : list){
@@ -1159,7 +1164,6 @@
         if(pageWrap.getModel().getType() != null){
             if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
                 queryWrapper.select(" * , (select v.COMPANY_NAME  from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2   order by v.CREATE_DATE desc limit 1 ) as companyName  , " +
-                        " (select v.STARTTIME  from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2   order by v.CREATE_DATE desc limit 1 )  as lastVisitDate , " +
                         " (select count(1) from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2 ) as visitTimes  ");
             }
         }
@@ -1470,12 +1474,11 @@
     public PageData<Member> findUnusualPage(PageWrap<MemberQuery> pageWrap) {
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
+        int actiontype =Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ONE)?Constants.UserActionType.BLACKLIST.getKey():Constants.UserActionType.FREEZE.getKey();
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.selectAll(Member.class)
-                .selectAs(Company::getName,Member::getCompanyName)
-                .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0  order by ua.CREATE_DATE desc  limit 1) as optTime")
-                .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID    where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc  limit 1) as creatorName")
-                .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc  limit 1) as visitsLastDate")
+                .selectAs(Company::getCompanyNamePath,Member::getCompanyName)
+                .select(" (select ua.remark from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type="+actiontype+"  order by ua.CREATE_DATE desc  limit 1) as optRemark")
                 .eq(Member::getIsdeleted,Constants.ZERO);
                 queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId());
                 queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
@@ -1553,7 +1556,7 @@
                         list.add(model);
                     }
                     //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
-                    empowerMapper.insertBatchSomeColumn(list);
+                    empowerMapper.insert(list);
                 }
             }
         }
@@ -1623,16 +1626,19 @@
      * @return
      */
     @Override
-    public WxAuthorizeVO wxAuthorize(String code){
+    public WxAuthorizeVO wxAuthorize(String code, Integer source){
+        if(StringUtils.isBlank(code)||Objects.isNull(source)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
         String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode();
         String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode();
         String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code)
                 .replace("APPID", appId).replace("SECRET", appSecret);
-        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
-        String openId = null;
-        if(!Objects.isNull(tokenJson.get("access_token"))){
-            openId = tokenJson.getString("openid");
-        }
+//        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
+        String openId = code;
+//        if(!Objects.isNull(tokenJson.get("access_token"))){
+//            openId = tokenJson.getString("openid");
+//        }
 //        String openId = "12345";
         WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO();
         wxAuthorizeVO.setOpenid(openId);
@@ -1642,6 +1648,7 @@
                 .selectAs(Company::getName,Member::getCompanyName)
                 .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                 .eq(Member::getOpenid,openId)
+                .eq(Member::getType,source)
                 .eq(Member::getIsdeleted,Constants.ZERO)
                 .orderByDesc(Member::getCreateDate)
                 .last(" limit 1 ")
@@ -1660,12 +1667,16 @@
             String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
                     systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
             member.setPrefixUrl(prefixUrl);
-//            JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId()));
-//            String token = JwtTokenUtil.generateToken(payLoad);
-//            //瀛樺偍token鑷硆edis
-//            RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME);
-//            wxAuthorizeVO.setToken(token);
             wxAuthorizeVO.setMember(member);
+            //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token
+            if(Constants.equalsInteger(source,Constants.ZERO)||Constants.equalsInteger(source,Constants.TWO)){
+                SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMemberId,member.getId())
+                        .eq(SystemUser::getStatus,Constants.ZERO).last(" limit 1 "));
+                if(Objects.nonNull(systemUser)){
+                    String token = systemLoginService.loginByUserId(systemUser.getId());
+                    wxAuthorizeVO.setToken(token);
+                }
+            }
         }
         return wxAuthorizeVO;
     }
@@ -1736,51 +1747,6 @@
 
 
 
-    @Override
-    public WxAuthorizeVO accountLogin(AccountLoginDTO accountLoginDTO){
-        System.out.println(DESUtil.decrypt(Constants.EDS_PWD,"eIaPD5AR5DBuTBE9MW14QRG07IDKXCdh"));
-        if(accountLoginDTO.getAccount().length()!=18
-            //&&!IdcardUtil.isValidCard(accountLoginDTO.getAccount())
-        ){
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
-        }
-        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
-                .eq(Member::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, accountLoginDTO.getAccount()))
-                .ne(Member::getType,Constants.memberType.visitor)
-        );
-        if(Objects.isNull(member)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鐢ㄦ埛,璇疯仈绯荤鐞嗗憳");
-        }
-        if(member.getIsdeleted() == Constants.ONE){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
-        }
-        if(member.getStatus() != Constants.ZERO){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
-        }
-        String md5Password = DESUtil.encrypt(Constants.EDS_PWD, accountLoginDTO.getPassword());
-        if(!md5Password.equals(member.getPassward())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璐︽埛瀵嗙爜閿欒!");
-        }
-        if(StringUtils.isNotBlank(accountLoginDTO.getOpenId())){
-            //鍏堟竻绌哄師鏈夎瀹㈢殑openid缁戝畾鍏崇郴
-            memberMapper.update(null, new UpdateWrapper<Member>().lambda()
-                    .ne(Member::getType,Constants.memberType.visitor)
-                    .eq(Member::getOpenid,accountLoginDTO.getOpenId())
-                    .set(Member::getOpenid,null)
-            );
-            //鏇存柊褰撳墠鐧诲綍鐢ㄦ埛 openId
-            member.setOpenid(accountLoginDTO.getOpenId());
-            memberMapper.updateById(member);
-        }
-        WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO();
-        JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId()));
-        String token = JwtTokenUtil.generateToken(payLoad);
-        //瀛樺偍token鑷硆edis
-        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME);
-        wxAuthorizeVO.setToken(token);
-        return wxAuthorizeVO;
-    }
-
 
 
     @Override
@@ -1789,7 +1755,7 @@
         List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO));
         if(CollectionUtils.isNotEmpty(memberList)){
             stagingHeadVO.setWorkerCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.internal)).count());
-            stagingHeadVO.setLwCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.lw_visitor)).count());
+            stagingHeadVO.setLwCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.driver)).count());
             stagingHeadVO.setVisitorCount(memberList.stream().filter(m->m.getType().equals(Constants.memberType.visitor)).count());
         }
         //鍦ㄥ満杞﹁締
@@ -1813,7 +1779,7 @@
                 new MPJLambdaWrapper<Member>()
                         .select("count(1) as memberCount, t1.name as companyName")
                         .leftJoin(Company.class,Company::getId,Member::getCompanyId)
-                        .eq(Member::getType,Constants.memberType.lw_visitor)
+                        .eq(Member::getType,Constants.memberType.driver)
                         .groupBy(Company::getId,Company::getName)
         );
         List<Map<String,Object>> retentionMaps = retentionJoinMapper.selectMaps(new MPJLambdaWrapper<Retention>()
@@ -1888,7 +1854,7 @@
                     throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅銆�"+insert.getName()+"銆戝悓姝ュ畨闃插钩鍙板け璐ワ紝璇风◢鍚庨噸璇曪紒");
                 }
             }
-            memberMapper.insertBatchSomeColumn(newList);
+            memberMapper.insert(newList);
             List<SystemUser> userList = new ArrayList<>();
             for(Member insert: newList){
                 //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
@@ -1898,7 +1864,7 @@
                 }
             }
             if(userList.size()>0){
-                systemUserMapper.insertBatchSomeColumn(userList);
+                systemUserMapper.insert(userList);
             }
         }catch (Exception e){
             //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
@@ -2019,7 +1985,7 @@
         Member member = new Member();
         member.setCreateDate(new Date());
         member.setIsdeleted(Constants.ZERO);
-        member.setType(Constants.TWO);
+        member.setType(Constants.THREE);
         member.setName(registerDriverDTO.getName());
         member.setPhone(registerDriverDTO.getPhone());
         member.setStatus(Constants.ZERO);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
index e2b08a6..40f01f6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
@@ -222,7 +222,7 @@
                 parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 parkBookList.add(parkBook);
             }
-            parkBookMapper.insertBatchSomeColumn(parkBookList);
+            parkBookMapper.insert(parkBookList);
         }
         return 0;
     }
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
new file mode 100644
index 0000000..d1cc8d5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -0,0 +1,131 @@
+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.PlatformBooksMapper;
+import com.doumee.dao.business.model.PlatformBooks;
+import com.doumee.service.business.PlatformBooksService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鏈堝彴鍏ュ洯棰勭害淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Service
+public class PlatformBooksServiceImpl implements PlatformBooksService {
+
+    @Autowired
+    private PlatformBooksMapper platformBooksMapper;
+
+    @Override
+    public Integer create(PlatformBooks platformBooks) {
+        platformBooksMapper.insert(platformBooks);
+        return platformBooks.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformBooksMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformBooks platformBooks) {
+        UpdateWrapper<PlatformBooks> deleteWrapper = new UpdateWrapper<>(platformBooks);
+        platformBooksMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformBooksMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformBooks platformBooks) {
+        platformBooksMapper.updateById(platformBooks);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformBooks> platformBookss) {
+        if (CollectionUtils.isEmpty(platformBookss)) {
+            return;
+        }
+        for (PlatformBooks platformBooks: platformBookss) {
+            this.updateById(platformBooks);
+        }
+    }
+
+    @Override
+    public PlatformBooks findById(Integer id) {
+        return platformBooksMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformBooks findOne(PlatformBooks platformBooks) {
+        QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks);
+        return platformBooksMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformBooks> findList(PlatformBooks platformBooks) {
+        QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks);
+        return platformBooksMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformBooks> findPage(PageWrap<PlatformBooks> pageWrap) {
+        IPage<PlatformBooks> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformBooks> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda()
+                .eq(pageWrap.getModel().getId() != null, PlatformBooks::getId, pageWrap.getModel().getId())
+                .eq(pageWrap.getModel().getCreator() != null, PlatformBooks::getCreator, pageWrap.getModel().getCreator())
+                .ge(pageWrap.getModel().getCreateDate() != null, PlatformBooks::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
+                .le(pageWrap.getModel().getCreateDate() != null, PlatformBooks::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
+                .eq(pageWrap.getModel().getEditor() != null, PlatformBooks::getEditor, pageWrap.getModel().getEditor())
+                .ge(pageWrap.getModel().getEditDate() != null, PlatformBooks::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
+                .le(pageWrap.getModel().getEditDate() != null, PlatformBooks::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
+                .eq(pageWrap.getModel().getIsdeleted() != null, PlatformBooks::getIsdeleted, pageWrap.getModel().getIsdeleted())
+                .eq(pageWrap.getModel().getName() != null, PlatformBooks::getName, pageWrap.getModel().getName())
+                .eq(pageWrap.getModel().getRemark() != null, PlatformBooks::getRemark, pageWrap.getModel().getRemark())
+                .eq(pageWrap.getModel().getStatus() != null, PlatformBooks::getStatus, pageWrap.getModel().getStatus())
+                .eq(pageWrap.getModel().getContractNum() != null, PlatformBooks::getContractNum, pageWrap.getModel().getContractNum())
+                .ge(pageWrap.getModel().getArriveDate() != null, PlatformBooks::getArriveDate, Utils.Date.getStart(pageWrap.getModel().getArriveDate()))
+                .le(pageWrap.getModel().getArriveDate() != null, PlatformBooks::getArriveDate, Utils.Date.getEnd(pageWrap.getModel().getArriveDate()))
+                .eq(pageWrap.getModel().getInType() != null, PlatformBooks::getInType, pageWrap.getModel().getInType())
+                .eq(pageWrap.getModel().getTotalNum() != null, PlatformBooks::getTotalNum, pageWrap.getModel().getTotalNum())
+                .eq(pageWrap.getModel().getCarCodeFront() != null, PlatformBooks::getCarCodeFront, pageWrap.getModel().getCarCodeFront())
+                .eq(pageWrap.getModel().getCarCodeBack() != null, PlatformBooks::getCarCodeBack, pageWrap.getModel().getCarCodeBack())
+                .eq(pageWrap.getModel().getDriverId() != null, PlatformBooks::getDriverId, pageWrap.getModel().getDriverId())
+                .eq(pageWrap.getModel().getDriverName() != null, PlatformBooks::getDriverName, pageWrap.getModel().getDriverName())
+                .eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
+                .eq(pageWrap.getModel().getDrivierPhone() != null, PlatformBooks::getDrivierPhone, pageWrap.getModel().getDrivierPhone())
+        ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformBooks platformBooks) {
+        QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks);
+        return platformBooksMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBroadcastLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBroadcastLogServiceImpl.java
new file mode 100644
index 0000000..da1ba0c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBroadcastLogServiceImpl.java
@@ -0,0 +1,131 @@
+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.PlatformBroadcastLogMapper;
+import com.doumee.dao.business.model.PlatformBroadcastLog;
+import com.doumee.service.business.PlatformBroadcastLogService;
+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;
+
+/**
+ * 鏈堝彴_LED鍜屽箍鎾彁閱掍笅鍙戣褰昐ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Service
+public class PlatformBroadcastLogServiceImpl implements PlatformBroadcastLogService {
+
+    @Autowired
+    private PlatformBroadcastLogMapper platformBroadcastLogMapper;
+
+    @Override
+    public Integer create(PlatformBroadcastLog platformBroadcastLog) {
+        platformBroadcastLogMapper.insert(platformBroadcastLog);
+        return platformBroadcastLog.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformBroadcastLogMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformBroadcastLog platformBroadcastLog) {
+        UpdateWrapper<PlatformBroadcastLog> deleteWrapper = new UpdateWrapper<>(platformBroadcastLog);
+        platformBroadcastLogMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformBroadcastLogMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformBroadcastLog platformBroadcastLog) {
+        platformBroadcastLogMapper.updateById(platformBroadcastLog);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformBroadcastLog> platformBroadcastLogs) {
+        if (CollectionUtils.isEmpty(platformBroadcastLogs)) {
+            return;
+        }
+        for (PlatformBroadcastLog platformBroadcastLog: platformBroadcastLogs) {
+            this.updateById(platformBroadcastLog);
+        }
+    }
+
+    @Override
+    public PlatformBroadcastLog findById(Integer id) {
+        return platformBroadcastLogMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformBroadcastLog findOne(PlatformBroadcastLog platformBroadcastLog) {
+        QueryWrapper<PlatformBroadcastLog> wrapper = new QueryWrapper<>(platformBroadcastLog);
+        return platformBroadcastLogMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformBroadcastLog> findList(PlatformBroadcastLog platformBroadcastLog) {
+        QueryWrapper<PlatformBroadcastLog> wrapper = new QueryWrapper<>(platformBroadcastLog);
+        return platformBroadcastLogMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformBroadcastLog> findPage(PageWrap<PlatformBroadcastLog> pageWrap) {
+        IPage<PlatformBroadcastLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformBroadcastLog> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda()
+                .eq(pageWrap.getModel().getId() != null, PlatformBroadcastLog::getId, pageWrap.getModel().getId())
+                .eq(pageWrap.getModel().getCreator() != null, PlatformBroadcastLog::getCreator, pageWrap.getModel().getCreator())
+                .ge(pageWrap.getModel().getCreateDate() != null, PlatformBroadcastLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
+                .le(pageWrap.getModel().getCreateDate() != null, PlatformBroadcastLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
+                .eq(pageWrap.getModel().getEditor() != null, PlatformBroadcastLog::getEditor, pageWrap.getModel().getEditor())
+                .ge(pageWrap.getModel().getEditDate() != null, PlatformBroadcastLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
+                .le(pageWrap.getModel().getEditDate() != null, PlatformBroadcastLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
+                .eq(pageWrap.getModel().getIsdeleted() != null, PlatformBroadcastLog::getIsdeleted, pageWrap.getModel().getIsdeleted())
+                .eq(pageWrap.getModel().getName() != null, PlatformBroadcastLog::getName, pageWrap.getModel().getName())
+                .eq(pageWrap.getModel().getRemark() != null, PlatformBroadcastLog::getRemark, pageWrap.getModel().getRemark())
+                .eq(pageWrap.getModel().getObjId() != null, PlatformBroadcastLog::getObjId, pageWrap.getModel().getObjId())
+                .eq(pageWrap.getModel().getObjType() != null, PlatformBroadcastLog::getObjType, pageWrap.getModel().getObjType())
+                .eq(pageWrap.getModel().getNum() != null, PlatformBroadcastLog::getNum, pageWrap.getModel().getNum())
+                .eq(pageWrap.getModel().getIds() != null, PlatformBroadcastLog::getIds, pageWrap.getModel().getIds())
+                .eq(pageWrap.getModel().getInfo() != null, PlatformBroadcastLog::getInfo, pageWrap.getModel().getInfo())
+                .eq(pageWrap.getModel().getHkId() != null, PlatformBroadcastLog::getHkId, pageWrap.getModel().getHkId())
+                .eq(pageWrap.getModel().getHkStatus() != null, PlatformBroadcastLog::getHkStatus, pageWrap.getModel().getHkStatus())
+                .ge(pageWrap.getModel().getHkDate() != null, PlatformBroadcastLog::getHkDate, Utils.Date.getStart(pageWrap.getModel().getHkDate()))
+                .le(pageWrap.getModel().getHkDate() != null, PlatformBroadcastLog::getHkDate, Utils.Date.getEnd(pageWrap.getModel().getHkDate()))
+                .eq(pageWrap.getModel().getHkInfo() != null, PlatformBroadcastLog::getHkInfo, pageWrap.getModel().getHkInfo())
+                .eq(pageWrap.getModel().getBizType() != null, PlatformBroadcastLog::getBizType, pageWrap.getModel().getBizType())
+                .eq(pageWrap.getModel().getDeviceType() != null, PlatformBroadcastLog::getDeviceType, pageWrap.getModel().getDeviceType())
+        ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformBroadcastLogMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformBroadcastLog platformBroadcastLog) {
+        QueryWrapper<PlatformBroadcastLog> wrapper = new QueryWrapper<>(platformBroadcastLog);
+        return platformBroadcastLogMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformDeviceServiceImpl.java
new file mode 100644
index 0000000..7c33b95
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformDeviceServiceImpl.java
@@ -0,0 +1,125 @@
+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.PlatformDeviceMapper;
+import com.doumee.dao.business.model.PlatformDevice;
+import com.doumee.service.business.PlatformDeviceService;
+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;
+
+/**
+ * 鏈堝彴_鍏宠仈鐩戞帶鐐筁ED鍜屽箍鎾俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Service
+public class PlatformDeviceServiceImpl implements PlatformDeviceService {
+
+    @Autowired
+    private PlatformDeviceMapper platformDeviceMapper;
+
+    @Override
+    public Integer create(PlatformDevice platformDevice) {
+        platformDeviceMapper.insert(platformDevice);
+        return platformDevice.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformDeviceMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformDevice platformDevice) {
+        UpdateWrapper<PlatformDevice> deleteWrapper = new UpdateWrapper<>(platformDevice);
+        platformDeviceMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformDeviceMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformDevice platformDevice) {
+        platformDeviceMapper.updateById(platformDevice);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformDevice> platformDevices) {
+        if (CollectionUtils.isEmpty(platformDevices)) {
+            return;
+        }
+        for (PlatformDevice platformDevice: platformDevices) {
+            this.updateById(platformDevice);
+        }
+    }
+
+    @Override
+    public PlatformDevice findById(Integer id) {
+        return platformDeviceMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformDevice findOne(PlatformDevice platformDevice) {
+        QueryWrapper<PlatformDevice> wrapper = new QueryWrapper<>(platformDevice);
+        return platformDeviceMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformDevice> findList(PlatformDevice platformDevice) {
+        QueryWrapper<PlatformDevice> wrapper = new QueryWrapper<>(platformDevice);
+        return platformDeviceMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformDevice> findPage(PageWrap<PlatformDevice> pageWrap) {
+        IPage<PlatformDevice> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformDevice> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda()
+                .eq(pageWrap.getModel().getId() != null, PlatformDevice::getId, pageWrap.getModel().getId())
+                .eq(pageWrap.getModel().getCreator() != null, PlatformDevice::getCreator, pageWrap.getModel().getCreator())
+                .ge(pageWrap.getModel().getCreateDate() != null, PlatformDevice::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
+                .le(pageWrap.getModel().getCreateDate() != null, PlatformDevice::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
+                .eq(pageWrap.getModel().getEditor() != null, PlatformDevice::getEditor, pageWrap.getModel().getEditor())
+                .ge(pageWrap.getModel().getEditDate() != null, PlatformDevice::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
+                .le(pageWrap.getModel().getEditDate() != null, PlatformDevice::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
+                .eq(pageWrap.getModel().getIsdeleted() != null, PlatformDevice::getIsdeleted, pageWrap.getModel().getIsdeleted())
+                .eq(pageWrap.getModel().getRemark() != null, PlatformDevice::getRemark, pageWrap.getModel().getRemark())
+                .eq(pageWrap.getModel().getPlatformId() != null, PlatformDevice::getPlatformId, pageWrap.getModel().getPlatformId())
+                .eq(pageWrap.getModel().getHkId() != null, PlatformDevice::getHkId, pageWrap.getModel().getHkId())
+                .eq(pageWrap.getModel().getDeviceId() != null, PlatformDevice::getDeviceId, pageWrap.getModel().getDeviceId())
+                .eq(pageWrap.getModel().getSortnum() != null, PlatformDevice::getSortnum, pageWrap.getModel().getSortnum())
+                .eq(pageWrap.getModel().getType() != null, PlatformDevice::getType, pageWrap.getModel().getType())
+                .eq(pageWrap.getModel().getName() != null, PlatformDevice::getName, pageWrap.getModel().getName())
+                .eq(pageWrap.getModel().getStatus() != null, PlatformDevice::getStatus, pageWrap.getModel().getStatus())
+        ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformDeviceMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformDevice platformDevice) {
+        QueryWrapper<PlatformDevice> wrapper = new QueryWrapper<>(platformDevice);
+        return platformDeviceMapper.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 1ce214b..7258755 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
@@ -19,7 +19,7 @@
 /**
  * 鏈堝彴_鍒嗙粍淇℃伅琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformGroupServiceImpl implements PlatformGroupService {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformInterfaceLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformInterfaceLogServiceImpl.java
index 267001d..fc07100 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformInterfaceLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformInterfaceLogServiceImpl.java
@@ -1,12 +1,9 @@
 package com.doumee.service.business.impl;
 
-import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.PlatformInterfaceLogMapper;
-import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.dao.business.model.PlatformInterfaceLog;
 import com.doumee.service.business.PlatformInterfaceLogService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,13 +19,10 @@
 /**
  * 浣滀笟璋冨害骞冲彴鎺ュ彛浜や簰璁板綍Service瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformInterfaceLogServiceImpl implements PlatformInterfaceLogService {
-
-    @Autowired
-    private SystemDictDataBiz systemDictDataBiz;
 
     @Autowired
     private PlatformInterfaceLogMapper platformInterfaceLogMapper;
@@ -106,18 +100,23 @@
                 .eq(pageWrap.getModel().getIsdeleted() != null, PlatformInterfaceLog::getIsdeleted, pageWrap.getModel().getIsdeleted())
                 .eq(pageWrap.getModel().getRemark() != null, PlatformInterfaceLog::getRemark, pageWrap.getModel().getRemark())
                 .eq(pageWrap.getModel().getType() != null, PlatformInterfaceLog::getType, pageWrap.getModel().getType())
-                .like(pageWrap.getModel().getName() != null, PlatformInterfaceLog::getName, pageWrap.getModel().getName())
-                .like(pageWrap.getModel().getUrl() != null, PlatformInterfaceLog::getUrl, pageWrap.getModel().getUrl())
+                .eq(pageWrap.getModel().getName() != null, PlatformInterfaceLog::getName, pageWrap.getModel().getName())
+                .ge(pageWrap.getModel().getUrl() != null, PlatformInterfaceLog::getUrl, Utils.Date.getStart(pageWrap.getModel().getUrl()))
+                .le(pageWrap.getModel().getUrl() != null, PlatformInterfaceLog::getUrl, Utils.Date.getEnd(pageWrap.getModel().getUrl()))
                 .eq(pageWrap.getModel().getRequest() != null, PlatformInterfaceLog::getRequest, pageWrap.getModel().getRequest())
                 .eq(pageWrap.getModel().getRepose() != null, PlatformInterfaceLog::getRepose, pageWrap.getModel().getRepose())
                 .eq(pageWrap.getModel().getSuccess() != null, PlatformInterfaceLog::getSuccess, pageWrap.getModel().getSuccess())
                 .eq(pageWrap.getModel().getPlat() != null, PlatformInterfaceLog::getPlat, pageWrap.getModel().getPlat())
                 .eq(pageWrap.getModel().getObjType() != null, PlatformInterfaceLog::getObjType, pageWrap.getModel().getObjType())
                 .eq(pageWrap.getModel().getObjId() != null, PlatformInterfaceLog::getObjId, pageWrap.getModel().getObjId())
-                .ge(pageWrap.getModel().getStartDate() != null,PlatformInterfaceLog::getCreateDate, pageWrap.getModel().getStartDate())
-                .le(pageWrap.getModel().getEndDate() != null,PlatformInterfaceLog::getCreateDate, pageWrap.getModel().getEndDate())
-                .orderByDesc(PlatformInterfaceLog::getCreateDate);
         ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
         return PageData.from(platformInterfaceLogMapper.selectPage(page, queryWrapper));
     }
 
@@ -125,14 +124,5 @@
     public long count(PlatformInterfaceLog platformInterfaceLog) {
         QueryWrapper<PlatformInterfaceLog> wrapper = new QueryWrapper<>(platformInterfaceLog);
         return platformInterfaceLogMapper.selectCount(wrapper);
-    }
-    @Override
-    public void clearThreeMonthLog() {
-        int days =15;
-        try {
-            days = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.LOG_DEL_DAYS_LIMIT).getCode());
-        }catch (Exception e){}
-        platformInterfaceLogMapper.delete(new UpdateWrapper<PlatformInterfaceLog>().lambda()
-                .apply("to_days(create_date)+"+days+" < to_days(now())"));
     }
 }
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 b561c14..38cfd43 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
@@ -19,7 +19,7 @@
 /**
  * 鏈堝彴璋冨害浣滀笟淇℃伅琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformJobServiceImpl implements PlatformJobService {
@@ -102,23 +102,22 @@
                 .eq(pageWrap.getModel().getRemark() != null, PlatformJob::getRemark, pageWrap.getModel().getRemark())
                 .eq(pageWrap.getModel().getStatus() != null, PlatformJob::getStatus, pageWrap.getModel().getStatus())
                 .eq(pageWrap.getModel().getSortnum() != null, PlatformJob::getSortnum, pageWrap.getModel().getSortnum())
-                .eq(pageWrap.getModel().getStartTime() != null, PlatformJob::getStartTime, pageWrap.getModel().getStartTime())
-                .eq(pageWrap.getModel().getEndTime() != null, PlatformJob::getEndTime, pageWrap.getModel().getEndTime())
-                .eq(pageWrap.getModel().getDeviceIds() != null, PlatformJob::getDeviceIds, pageWrap.getModel().getDeviceIds())
-                .eq(pageWrap.getModel().getScreenIds() != null, PlatformJob::getScreenIds, pageWrap.getModel().getScreenIds())
-                .eq(pageWrap.getModel().getWorkingNum() != null, PlatformJob::getWorkingNum, pageWrap.getModel().getWorkingNum())
-                .eq(pageWrap.getModel().getBroadcastNum() != null, PlatformJob::getBroadcastNum, pageWrap.getModel().getBroadcastNum())
-                .eq(pageWrap.getModel().getBroadcastIds() != null, PlatformJob::getBroadcastIds, pageWrap.getModel().getBroadcastIds())
-                .eq(pageWrap.getModel().getBroadcastInfo() != null, PlatformJob::getBroadcastInfo, pageWrap.getModel().getBroadcastInfo())
-                .eq(pageWrap.getModel().getBroadcastHkstatus() != null, PlatformJob::getBroadcastHkstatus, pageWrap.getModel().getBroadcastHkstatus())
-                .ge(pageWrap.getModel().getBroadcastHkdate() != null, PlatformJob::getBroadcastHkdate, Utils.Date.getStart(pageWrap.getModel().getBroadcastHkdate()))
-                .le(pageWrap.getModel().getBroadcastHkdate() != null, PlatformJob::getBroadcastHkdate, Utils.Date.getEnd(pageWrap.getModel().getBroadcastHkdate()))
-                .eq(pageWrap.getModel().getBroadcastHkinfo() != null, PlatformJob::getBroadcastHkinfo, pageWrap.getModel().getBroadcastHkinfo())
+                .eq(pageWrap.getModel().getCode() != null, PlatformJob::getCode, pageWrap.getModel().getCode())
+                .eq(pageWrap.getModel().getBillCode() != null, PlatformJob::getBillCode, pageWrap.getModel().getBillCode())
+                .eq(pageWrap.getModel().getDriverId() != null, PlatformJob::getDriverId, pageWrap.getModel().getDriverId())
+                .eq(pageWrap.getModel().getDriverName() != null, PlatformJob::getDriverName, pageWrap.getModel().getDriverName())
+                .eq(pageWrap.getModel().getPlateNum() != null, PlatformJob::getPlateNum, pageWrap.getModel().getPlateNum())
+                .eq(pageWrap.getModel().getDrivierPhone() != null, PlatformJob::getDrivierPhone, pageWrap.getModel().getDrivierPhone())
                 .ge(pageWrap.getModel().getSignDate() != null, PlatformJob::getSignDate, Utils.Date.getStart(pageWrap.getModel().getSignDate()))
                 .le(pageWrap.getModel().getSignDate() != null, PlatformJob::getSignDate, Utils.Date.getEnd(pageWrap.getModel().getSignDate()))
                 .eq(pageWrap.getModel().getSingType() != null, PlatformJob::getSingType, pageWrap.getModel().getSingType())
                 .eq(pageWrap.getModel().getSignDistance() != null, PlatformJob::getSignDistance, pageWrap.getModel().getSignDistance())
+                .eq(pageWrap.getModel().getPlatformNames() != null, PlatformJob::getPlatformNames, pageWrap.getModel().getPlatformNames())
+                .eq(pageWrap.getModel().getPlatforms() != null, PlatformJob::getPlatforms, pageWrap.getModel().getPlatforms())
                 .eq(pageWrap.getModel().getPlatformId() != null, PlatformJob::getPlatformId, pageWrap.getModel().getPlatformId())
+                .ge(pageWrap.getModel().getInwaitDate() != null, PlatformJob::getInwaitDate, Utils.Date.getStart(pageWrap.getModel().getInwaitDate()))
+                .le(pageWrap.getModel().getInwaitDate() != null, PlatformJob::getInwaitDate, Utils.Date.getEnd(pageWrap.getModel().getInwaitDate()))
+                .eq(pageWrap.getModel().getInwaitUserId() != null, PlatformJob::getInwaitUserId, pageWrap.getModel().getInwaitUserId())
                 .ge(pageWrap.getModel().getCallDate() != null, PlatformJob::getCallDate, Utils.Date.getStart(pageWrap.getModel().getCallDate()))
                 .le(pageWrap.getModel().getCallDate() != null, PlatformJob::getCallDate, Utils.Date.getEnd(pageWrap.getModel().getCallDate()))
                 .eq(pageWrap.getModel().getCallUserId() != null, PlatformJob::getCallUserId, pageWrap.getModel().getCallUserId())
@@ -158,6 +157,11 @@
                 .eq(pageWrap.getModel().getCancelUserId() != null, PlatformJob::getCancelUserId, pageWrap.getModel().getCancelUserId())
                 .eq(pageWrap.getModel().getCancelInfo() != null, PlatformJob::getCancelInfo, pageWrap.getModel().getCancelInfo())
                 .eq(pageWrap.getModel().getReason() != null, PlatformJob::getReason, pageWrap.getModel().getReason())
+                .eq(pageWrap.getModel().getContractNum() != null, PlatformJob::getContractNum, pageWrap.getModel().getContractNum())
+                .ge(pageWrap.getModel().getArriveDate() != null, PlatformJob::getArriveDate, Utils.Date.getStart(pageWrap.getModel().getArriveDate()))
+                .le(pageWrap.getModel().getArriveDate() != null, PlatformJob::getArriveDate, Utils.Date.getEnd(pageWrap.getModel().getArriveDate()))
+                .eq(pageWrap.getModel().getInType() != null, PlatformJob::getInType, pageWrap.getModel().getInType())
+                .eq(pageWrap.getModel().getTotalNum() != null, PlatformJob::getTotalNum, pageWrap.getModel().getTotalNum())
         ;
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
index af9ceb7..4008597 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
@@ -19,7 +19,7 @@
 /**
  * 鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformLogServiceImpl implements PlatformLogService {
@@ -106,6 +106,10 @@
                 .eq(pageWrap.getModel().getObjId() != null, PlatformLog::getObjId, pageWrap.getModel().getObjId())
                 .eq(pageWrap.getModel().getBeforeContent() != null, PlatformLog::getBeforeContent, pageWrap.getModel().getBeforeContent())
                 .eq(pageWrap.getModel().getAfterContent() != null, PlatformLog::getAfterContent, pageWrap.getModel().getAfterContent())
+                .eq(pageWrap.getModel().getParam1() != null, PlatformLog::getParam1, pageWrap.getModel().getParam1())
+                .eq(pageWrap.getModel().getParam2() != null, PlatformLog::getParam2, pageWrap.getModel().getParam2())
+                .eq(pageWrap.getModel().getParam3() != null, PlatformLog::getParam3, pageWrap.getModel().getParam3())
+                .eq(pageWrap.getModel().getParam4() != null, PlatformLog::getParam4, pageWrap.getModel().getParam4())
         ;
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformQueueServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformQueueServiceImpl.java
index ebcb9ef..075e998 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformQueueServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformQueueServiceImpl.java
@@ -19,7 +19,7 @@
 /**
  * 鏈堝彴_鍙彿鎺掗槦淇℃伅琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformQueueServiceImpl implements PlatformQueueService {
@@ -100,7 +100,6 @@
                 .eq(pageWrap.getModel().getIsdeleted() != null, PlatformQueue::getIsdeleted, pageWrap.getModel().getIsdeleted())
                 .eq(pageWrap.getModel().getRemark() != null, PlatformQueue::getRemark, pageWrap.getModel().getRemark())
                 .eq(pageWrap.getModel().getJobId() != null, PlatformQueue::getJobId, pageWrap.getModel().getJobId())
-                .eq(pageWrap.getModel().getTitle() != null, PlatformQueue::getTitle, pageWrap.getModel().getTitle())
                 .eq(pageWrap.getModel().getContent() != null, PlatformQueue::getContent, pageWrap.getModel().getContent())
                 .eq(pageWrap.getModel().getStatus() != null, PlatformQueue::getStatus, pageWrap.getModel().getStatus())
                 .eq(pageWrap.getModel().getObjType() != null, PlatformQueue::getObjType, pageWrap.getModel().getObjType())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
index b2e4027..cb3c94c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -19,7 +19,7 @@
 /**
  * 鏈堝彴淇℃伅琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformServiceImpl implements PlatformService {
@@ -105,8 +105,6 @@
                 .eq(pageWrap.getModel().getGroupId() != null, Platform::getGroupId, pageWrap.getModel().getGroupId())
                 .eq(pageWrap.getModel().getStartTime() != null, Platform::getStartTime, pageWrap.getModel().getStartTime())
                 .eq(pageWrap.getModel().getEndTime() != null, Platform::getEndTime, pageWrap.getModel().getEndTime())
-                .eq(pageWrap.getModel().getDeviceIds() != null, Platform::getDeviceIds, pageWrap.getModel().getDeviceIds())
-                .eq(pageWrap.getModel().getScreenIds() != null, Platform::getScreenIds, pageWrap.getModel().getScreenIds())
                 .eq(pageWrap.getModel().getWorkingNum() != null, Platform::getWorkingNum, pageWrap.getModel().getWorkingNum())
                 .eq(pageWrap.getModel().getWariCallTime() != null, Platform::getWariCallTime, pageWrap.getModel().getWariCallTime())
                 .eq(pageWrap.getModel().getAlermTime() != null, Platform::getAlermTime, pageWrap.getModel().getAlermTime())
@@ -114,6 +112,13 @@
                 .le(pageWrap.getModel().getLastEventTime() != null, Platform::getLastEventTime, Utils.Date.getEnd(pageWrap.getModel().getLastEventTime()))
                 .eq(pageWrap.getModel().getDeviceNames() != null, Platform::getDeviceNames, pageWrap.getModel().getDeviceNames())
                 .eq(pageWrap.getModel().getScreenName() != null, Platform::getScreenName, pageWrap.getModel().getScreenName())
+                .eq(pageWrap.getModel().getHkId() != null, Platform::getHkId, pageWrap.getModel().getHkId())
+                .eq(pageWrap.getModel().getCompanys() != null, Platform::getCompanys, pageWrap.getModel().getCompanys())
+                .eq(pageWrap.getModel().getXpos() != null, Platform::getXpos, pageWrap.getModel().getXpos())
+                .eq(pageWrap.getModel().getYpos() != null, Platform::getYpos, pageWrap.getModel().getYpos())
+                .eq(pageWrap.getModel().getWidth() != null, Platform::getWidth, pageWrap.getModel().getWidth())
+                .eq(pageWrap.getModel().getHeight() != null, Platform::getHeight, pageWrap.getModel().getHeight())
+                .eq(pageWrap.getModel().getAngle() != null, Platform::getAngle, pageWrap.getModel().getAngle())
         ;
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java
index e33f7c1..d18bfe7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java
@@ -19,7 +19,7 @@
 /**
  * 鏈堝彴_鏄剧ず閰嶇疆淇℃伅琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
- * @since 2024/04/28 16:06
+ * @date 2024/06/28 10:03
  */
 @Service
 public class PlatformShowParamServiceImpl implements PlatformShowParamService {
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
new file mode 100644
index 0000000..fec4a0a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java
@@ -0,0 +1,124 @@
+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.PlatformWmsDetailMapper;
+import com.doumee.dao.business.model.PlatformWmsDetail;
+import com.doumee.service.business.PlatformWmsDetailService;
+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;
+
+/**
+ * 鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁哠ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Service
+public class PlatformWmsDetailServiceImpl implements PlatformWmsDetailService {
+
+    @Autowired
+    private PlatformWmsDetailMapper platformWmsDetailMapper;
+
+    @Override
+    public Integer create(PlatformWmsDetail platformWmsDetail) {
+        platformWmsDetailMapper.insert(platformWmsDetail);
+        return platformWmsDetail.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformWmsDetailMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformWmsDetail platformWmsDetail) {
+        UpdateWrapper<PlatformWmsDetail> deleteWrapper = new UpdateWrapper<>(platformWmsDetail);
+        platformWmsDetailMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformWmsDetailMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformWmsDetail platformWmsDetail) {
+        platformWmsDetailMapper.updateById(platformWmsDetail);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformWmsDetail> platformWmsDetails) {
+        if (CollectionUtils.isEmpty(platformWmsDetails)) {
+            return;
+        }
+        for (PlatformWmsDetail platformWmsDetail: platformWmsDetails) {
+            this.updateById(platformWmsDetail);
+        }
+    }
+
+    @Override
+    public PlatformWmsDetail findById(Integer id) {
+        return platformWmsDetailMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformWmsDetail findOne(PlatformWmsDetail platformWmsDetail) {
+        QueryWrapper<PlatformWmsDetail> wrapper = new QueryWrapper<>(platformWmsDetail);
+        return platformWmsDetailMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformWmsDetail> findList(PlatformWmsDetail platformWmsDetail) {
+        QueryWrapper<PlatformWmsDetail> wrapper = new QueryWrapper<>(platformWmsDetail);
+        return platformWmsDetailMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformWmsDetail> findPage(PageWrap<PlatformWmsDetail> pageWrap) {
+        IPage<PlatformWmsDetail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformWmsDetail> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda()
+                .eq(pageWrap.getModel().getId() != null, PlatformWmsDetail::getId, pageWrap.getModel().getId())
+                .eq(pageWrap.getModel().getCreator() != null, PlatformWmsDetail::getCreator, pageWrap.getModel().getCreator())
+                .ge(pageWrap.getModel().getCreateDate() != null, PlatformWmsDetail::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
+                .le(pageWrap.getModel().getCreateDate() != null, PlatformWmsDetail::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
+                .eq(pageWrap.getModel().getEditor() != null, PlatformWmsDetail::getEditor, pageWrap.getModel().getEditor())
+                .ge(pageWrap.getModel().getEditDate() != null, PlatformWmsDetail::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
+                .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().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())
+                .eq(pageWrap.getModel().getInRepertotyCode() != null, PlatformWmsDetail::getInRepertotyCode, pageWrap.getModel().getInRepertotyCode())
+                .eq(pageWrap.getModel().getIoQty() != null, PlatformWmsDetail::getIoQty, pageWrap.getModel().getIoQty())
+                .eq(pageWrap.getModel().getRate() != null, PlatformWmsDetail::getRate, pageWrap.getModel().getRate())
+        ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformWmsDetailMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformWmsDetail platformWmsDetail) {
+        QueryWrapper<PlatformWmsDetail> wrapper = new QueryWrapper<>(platformWmsDetail);
+        return platformWmsDetailMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
new file mode 100644
index 0000000..1c94748
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
@@ -0,0 +1,134 @@
+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.PlatformWmsJobMapper;
+import com.doumee.dao.business.model.PlatformWmsJob;
+import com.doumee.service.business.PlatformWmsJobService;
+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;
+
+/**
+ * 鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+@Service
+public class PlatformWmsJobServiceImpl implements PlatformWmsJobService {
+
+    @Autowired
+    private PlatformWmsJobMapper platformWmsJobMapper;
+
+    @Override
+    public Integer create(PlatformWmsJob platformWmsJob) {
+        platformWmsJobMapper.insert(platformWmsJob);
+        return platformWmsJob.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformWmsJobMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformWmsJob platformWmsJob) {
+        UpdateWrapper<PlatformWmsJob> deleteWrapper = new UpdateWrapper<>(platformWmsJob);
+        platformWmsJobMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformWmsJobMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformWmsJob platformWmsJob) {
+        platformWmsJobMapper.updateById(platformWmsJob);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformWmsJob> platformWmsJobs) {
+        if (CollectionUtils.isEmpty(platformWmsJobs)) {
+            return;
+        }
+        for (PlatformWmsJob platformWmsJob: platformWmsJobs) {
+            this.updateById(platformWmsJob);
+        }
+    }
+
+    @Override
+    public PlatformWmsJob findById(Integer id) {
+        return platformWmsJobMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformWmsJob findOne(PlatformWmsJob platformWmsJob) {
+        QueryWrapper<PlatformWmsJob> wrapper = new QueryWrapper<>(platformWmsJob);
+        return platformWmsJobMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformWmsJob> findList(PlatformWmsJob platformWmsJob) {
+        QueryWrapper<PlatformWmsJob> wrapper = new QueryWrapper<>(platformWmsJob);
+        return platformWmsJobMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformWmsJob> findPage(PageWrap<PlatformWmsJob> pageWrap) {
+        IPage<PlatformWmsJob> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformWmsJob> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda()
+                .eq(pageWrap.getModel().getId() != null, PlatformWmsJob::getId, pageWrap.getModel().getId())
+                .eq(pageWrap.getModel().getCreator() != null, PlatformWmsJob::getCreator, pageWrap.getModel().getCreator())
+                .ge(pageWrap.getModel().getCreateDate() != null, PlatformWmsJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
+                .le(pageWrap.getModel().getCreateDate() != null, PlatformWmsJob::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
+                .eq(pageWrap.getModel().getEditor() != null, PlatformWmsJob::getEditor, pageWrap.getModel().getEditor())
+                .ge(pageWrap.getModel().getEditDate() != null, PlatformWmsJob::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
+                .le(pageWrap.getModel().getEditDate() != null, PlatformWmsJob::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
+                .eq(pageWrap.getModel().getIsdeleted() != null, PlatformWmsJob::getIsdeleted, pageWrap.getModel().getIsdeleted())
+                .eq(pageWrap.getModel().getRemark() != null, PlatformWmsJob::getRemark, pageWrap.getModel().getRemark())
+                .eq(pageWrap.getModel().getJobId() != null, PlatformWmsJob::getJobId, pageWrap.getModel().getJobId())
+                .eq(pageWrap.getModel().getIocode() != null, PlatformWmsJob::getIocode, pageWrap.getModel().getIocode())
+                .eq(pageWrap.getModel().getType() != null, PlatformWmsJob::getType, pageWrap.getModel().getType())
+                .eq(pageWrap.getModel().getDriverPhone() != null, PlatformWmsJob::getDriverPhone, pageWrap.getModel().getDriverPhone())
+                .eq(pageWrap.getModel().getDriverName() != null, PlatformWmsJob::getDriverName, pageWrap.getModel().getDriverName())
+                .eq(pageWrap.getModel().getCarrierName() != null, PlatformWmsJob::getCarrierName, pageWrap.getModel().getCarrierName())
+                .eq(pageWrap.getModel().getCarryBillCode() != null, PlatformWmsJob::getCarryBillCode, pageWrap.getModel().getCarryBillCode())
+                .ge(pageWrap.getModel().getIoCreatedate() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getStart(pageWrap.getModel().getIoCreatedate()))
+                .le(pageWrap.getModel().getIoCreatedate() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getEnd(pageWrap.getModel().getIoCreatedate()))
+                .eq(pageWrap.getModel().getStatus() != null, PlatformWmsJob::getStatus, pageWrap.getModel().getStatus())
+                .ge(pageWrap.getModel().getCancelDate() != null, PlatformWmsJob::getCancelDate, Utils.Date.getStart(pageWrap.getModel().getCancelDate()))
+                .le(pageWrap.getModel().getCancelDate() != null, PlatformWmsJob::getCancelDate, Utils.Date.getEnd(pageWrap.getModel().getCancelDate()))
+                .eq(pageWrap.getModel().getCancelInfo() != null, PlatformWmsJob::getCancelInfo, pageWrap.getModel().getCancelInfo())
+                .eq(pageWrap.getModel().getPlateNumber() != null, PlatformWmsJob::getPlateNumber, pageWrap.getModel().getPlateNumber())
+                .eq(pageWrap.getModel().getRepertotyAddress() != null, PlatformWmsJob::getRepertotyAddress, pageWrap.getModel().getRepertotyAddress())
+                .eq(pageWrap.getModel().getContractNum() != null, PlatformWmsJob::getContractNum, pageWrap.getModel().getContractNum())
+        ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformWmsJobMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformWmsJob platformWmsJob) {
+        QueryWrapper<PlatformWmsJob> wrapper = new QueryWrapper<>(platformWmsJob);
+        return platformWmsJobMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
index 0392a44..7c16f43 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
@@ -183,7 +183,7 @@
             if(Objects.isNull(member)){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍔冲姟浜哄憳");
             }
-            if(!member.getType().equals(Constants.memberType.lw_visitor)){
+            if(!member.getType().equals(Constants.memberType.driver)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲姵鍔′汉鍛樼被鍨嬶紝绛旈澶辫触");
             }
             if(!member.getStatus().equals(Constants.ZERO)){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/TrainTimeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/TrainTimeServiceImpl.java
index aa6d84b..ee00da0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/TrainTimeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/TrainTimeServiceImpl.java
@@ -231,7 +231,7 @@
             if(newList == null || newList.size() ==0){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏈夋晥鏁版嵁涓虹┖锛�");
             }
-            trainTimeMapper.insertBatchSomeColumn(newList);
+            trainTimeMapper.insert(newList);
             return "瀵煎叆鎴愬姛";
         }catch (BusinessException e){
             throw e;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java
index e21b168..e34a01b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java
@@ -47,6 +47,7 @@
         update.setEditor(userInfo.getId());
         update.setEditDate(new Date());
         update.setIsdeleted(Constants.ONE);
+        update.setId(id);
         visitReasonMapper.updateById(update);
 
     }
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 7d8d473..2c3918d 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
@@ -170,7 +170,7 @@
                 }
                 visits.setWithUserList(visitsList);
             }
-            this.createFk(visits,true);
+            this.createFk(visits,true,Constants.ONE);
     }
 
     @Transactional(propagation = Propagation.NOT_SUPPORTED)
@@ -197,16 +197,15 @@
      */
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public Integer createFk(Visits visits,Boolean isERP) {
+    public Integer createFk(Visits visits,Boolean isERP,Integer source) {
         isValidBaseParam(visits);
         //妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰
-        ProblemLog problemLog = isValidProblemLog(visits);
+        ProblemLog problemLog = isValidProblemLog(visits,source);
         //鑾峰彇鐢宠鐨勬捣搴疯闂棬绂佺粍淇℃伅
         getHkDeviceRoles(visits,isERP);
         //妫�楠屾嫓璁夸汉鏄惁鍚堟硶
         Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
         if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18
-//            &&!IdcardUtil.isValidCard(visits.getIdcardNo())
         ){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
         }
@@ -215,7 +214,7 @@
         visits.setCreateDate(date);
         //闅忚浜哄憳鏁伴噺
         visits.setMemberNum(Constants.ZERO);
-        //璁垮淇℃伅(浣跨敤韬唤璇佸彿鏌ヨ鏄惁宸插瓨鍦ㄦ敼鏅�氳瀹紝娌℃湁鍒欐柊澧烇紝瀛樺湪鍒欐洿鏂皁penid绛変俊鎭�),鍖呮嫭闅忚浜哄憳鏍¢獙鍜屽鐞�
+        //璁垮淇℃伅(浣跨敤韬唤璇佸彿鏌ヨ鏄惁宸插瓨鍦ㄨ鏅�氳瀹紝娌℃湁鍒欐柊澧烇紝瀛樺湪鍒欐洿鏂皁penid绛変俊鎭�),鍖呮嫭闅忚浜哄憳鏍¢獙鍜屽鐞�
         Member member = dealMemberAndVisits(visits);
         visits.setMemberId(member.getId());
         visits.setVisitType(Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode()));
@@ -454,7 +453,7 @@
                 approve.setObjId(visitId);
                 approveList.add(approve);
             }
-            approveMapper.insertBatchSomeColumn(approveList);
+            approveMapper.insert(approveList);
         }
     }
 
@@ -481,7 +480,7 @@
                 approve.setObjId(visitId);
                 approveList.add(approve);
             }
-            approveMapper.insertBatchSomeColumn(approveList);
+            approveMapper.insert(approveList);
         }
     }
 
@@ -634,12 +633,16 @@
         }else if(visits.getType().equals(Constants.ONE) && StringUtils.isBlank(visits.getConstructionReason())){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏈~鍐欐柦宸ヤ簨鐢憋紒");
         }
-        if(visits.getEndtime().getTime() < System.currentTimeMillis()){
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鍏ュ巶鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿锛�");//
-        }
         if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绂诲巶鏃堕棿蹇呴』澶т簬鍏ュ巶鏃堕棿锛�");//
         }
+        if(visits.getEndtime().getTime() <= System.currentTimeMillis()){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鍏ュ巶鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿锛�");//
+        }
+        if(!DateUtil.getDateLong(visits.getEndtime()).equals(DateUtil.getDateLong(visits.getStarttime()))){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害鏃ユ湡涓嶅彲浠ヨ法澶╋紒");
+        };
+
         if(visits.getSourceType().equals(Constants.ZERO)){
             String code = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VALIDATE_VISIT).getCode();
             int codenum =0;
@@ -718,7 +721,7 @@
                 v.setSourceType(visits.getSourceType());
             }
             //鎵归噺鎻掑叆鏁版嵁
-            visitsMapper.insertBatchSomeColumn(visits.getWithUserList());
+            visitsMapper.insert(visits.getWithUserList());
         }
     }
 
@@ -883,11 +886,10 @@
         }else{
             if(!Constants.equalsInteger(Constants.ZERO,member.getStatus() )){
                 //濡傛灉鐢ㄦ埛鐘舵�佸紓甯革紝鍒欐彁绀�
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿銆�"+cardno+"銆戣绂佹璁块棶鐢宠锛屽鏈夌枒闂紝璇疯仈绯绘偍鐨勬嫓璁夸汉杩涜鏍稿疄");
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝銆�"+member.getName()+"銆戣韩浠借瘉鍙枫��"+cardno+"銆戝湪榛戝悕鍗曞唴锛屾棤娉曠敵璇疯繘鍏ュ洯鍖�");
             }
             //鏍告煡棰勭害鐢ㄦ埛鏄惁瀛樺湪鏈绂荤殑棰勭害璁板綍
 //            isExsitNoOutVisisRecord(member);
-
             member.setFaceImg(visits.getFaceImg());
             member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null);
             member.setEditDate(visits.getCreateDate());
@@ -993,7 +995,16 @@
         return  member;
     }
 
-    private ProblemLog isValidProblemLog(Visits visits) {
+    /**
+     * 鏄惁闇�瑕佺瓟棰�
+     * @param visits
+     * @param source
+     * @return
+     */
+    private ProblemLog isValidProblemLog(Visits visits,Integer source) {
+        if(!Constants.equalsInteger(source,Constants.ZERO)){
+            return null;
+        }
         String required = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROBLEM_VISIT_REQUIRED).getCode();
         if(StringUtils.equals(required,Constants.ONE+"")&&visits.getSourceType()==Constants.ZERO&&!visits.getType().equals(Constants.TWO)){
             //濡傛灉蹇呴』绛旈锛屾煡鎵剧瓟棰樿褰�
@@ -1158,8 +1169,10 @@
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
 
         queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO);
-        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Visits::getType,pageWrap.getModel().getType());
+        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType())&&Constants.equalsInteger(pageWrap.getModel().getType(),Constants.TWO),Visits::getType,pageWrap.getModel().getType());
+        queryWrapper.ne(Objects.nonNull(pageWrap.getModel().getType())&&!Constants.equalsInteger(pageWrap.getModel().getType(),Constants.TWO),Visits::getType,Constants.TWO);
         queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getOpenid()),Visits::getOpenid,pageWrap.getModel().getOpenid());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCarNos()),Visits::getCarNos,pageWrap.getModel().getCarNos());
 //        queryWrapper.eq(StringUtils.isBlank(pageWrap.getModel().getOpenid()),"1","2");
         queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getName,pageWrap.getModel().getName())
                 .or().like(Visits::getPhone,pageWrap.getModel().getName()))
@@ -1168,6 +1181,7 @@
                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus());
         queryWrapper.isNull(Visits::getParentId);
         queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Visits::getMemberId,pageWrap.getModel().getMemberId());
+        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getReceptMemberId()),Visits::getReceptMemberId,pageWrap.getModel().getReceptMemberId());
         queryWrapper.orderByDesc(Visits::getCreateDate);
         IPage<Visits> result = visitsJoinMapper.selectJoinPage(page, Visits.class,queryWrapper);
 
@@ -1243,12 +1257,14 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌琚鍛樺伐淇℃伅");
         }
         VisitDetailVO visitDetailVO = new VisitDetailVO();
+        visitDetailVO.setCreateTime(visits.getCreateDate());
         visitDetailVO.setStatus(visits.getStatus());
         visitDetailVO.setCarNos(visits.getCarNos());
         visitDetailVO.setPhone(visits.getPhone());
         visitDetailVO.setVisitUserName(member.getName());
         visitDetailVO.setVisitReason(visits.getReason());
         visitDetailVO.setQrcode(visits.getQrcode());
+        visitDetailVO.setIdcardType(visits.getIdcardType());
         visitDetailVO.setVisitTime(DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm") + " 鑷� " + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm") );
         //琚浜哄憳閮ㄩ棬
         Company company = companyMapper.selectById(member.getCompanyId());
@@ -1262,6 +1278,7 @@
         visitDetailVO.setConstructionReason(visits.getConstructionReason());
         visitDetailVO.setImgUrl(visits.getImgurl());
         visitDetailVO.setIdCardDecode(visits.getIdcardDecode());
+        visitDetailVO.setFaceImg(visits.getFaceImg());
         visitDetailVO.setPrefix(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
                 systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
         if(StringUtils.isNotBlank(visits.getDoors())){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 7db9c0d..92901c9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -4,12 +4,9 @@
 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.api.R;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.DataSyncConfig;
-import com.doumee.config.Jwt.JwtPayLoad;
-import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.erp.ErpConstants;
 import com.doumee.core.erp.ErpTool;
@@ -154,7 +151,7 @@
             List<Company>  allList = companyMapper.selectList(new QueryWrapper<Company>().lambda().eq(Company::getType,Constants.ONE));
             dealCompanyChangeList(list,addList,updateList,delIds,allList);
             if(addList.size()>0){
-                companyMapper.insertBatchSomeColumn(addList);
+                companyMapper.insert(addList);
             }
             if(updateList.size()>0){
                 for(Company c : updateList){
@@ -307,7 +304,7 @@
                     .eq(Member::getType, Constants.memberType.internal));
             dealUserChangeList(list,addList,updateList,delList,allList,param);
             if(addList.size()>0){
-                memberMapper.insertBatchSomeColumn(addList);
+                memberMapper.insert(addList);
                /* for (Member member:addList) {
                     dealRoleEmpower(member );
                 }*/
@@ -475,31 +472,30 @@
         return  false;
     }
 
-    @Override
-    public AccessTokenResponse createERPToken(String accessKey, String accessSecret){
-        AccessTokenResponse result = new AccessTokenResponse();
-        try{
-            String erpAccessKey = systemDictDataBiz.queryByCode(Constants.ERP_CONFIG,Constants.ERP_ACCESS_KEY).getCode();
-            String erpAccessSecret = systemDictDataBiz.queryByCode(Constants.ERP_CONFIG,Constants.ERP_ACCESS_SECRET).getCode();
-            if(!(accessKey.equals(erpAccessKey)&&erpAccessSecret.equals(accessSecret))){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"绉橀挜鍖归厤澶辫触");
-            }
-            JwtPayLoad payLoad = new JwtPayLoad(erpAccessKey+"-"+erpAccessSecret);
-            String token = JwtTokenUtil.generateToken(payLoad);
-            RedisUtil.addObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,token,Constants.RedisKeys.EXPIRE_TIME);
-            result.setToken(token);
-            result.setExpireTime(Constants.RedisKeys.EXPIRE_TIME);
-            return result;
-        }catch (BusinessException e){
-            throw e;
-        }finally {
-            Map<String,String> param = new HashMap<>();
-            param.put("accessKey",accessKey);
-            param.put("accessSecret",accessSecret);
-            saveInterfaceLog(param,"/visitBiz/accesstoken",JSONObject.toJSONString(result),Constants.ZERO);
-        }
-
-    }
+//    @Override
+//    public AccessTokenResponse createERPToken(String accessKey, String accessSecret){
+//        AccessTokenResponse result = new AccessTokenResponse();
+//        try{
+//            String erpAccessKey = systemDictDataBiz.queryByCode(Constants.ERP_CONFIG,Constants.ERP_ACCESS_KEY).getCode();
+//            String erpAccessSecret = systemDictDataBiz.queryByCode(Constants.ERP_CONFIG,Constants.ERP_ACCESS_SECRET).getCode();
+//            if(!(accessKey.equals(erpAccessKey)&&erpAccessSecret.equals(accessSecret))){
+//                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"绉橀挜鍖归厤澶辫触");
+//
+//            String token = JwtTokenUtil.generateToken(payLoad);
+//            RedisUtil.addObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,token,Constants.RedisKeys.EXPIRE_TIME);
+//            result.setToken(token);
+//            result.setExpireTime(Constants.RedisKeys.EXPIRE_TIME);
+//            return result;
+//        }catch (BusinessException e){
+//            throw e;
+//        }finally {
+//            Map<String,String> param = new HashMap<>();
+//            param.put("accessKey",accessKey);
+//            param.put("accessSecret",accessSecret);
+//            saveInterfaceLog(param,"/visitBiz/accesstoken",JSONObject.toJSONString(result),Constants.ZERO);
+//        }
+//
+//    }
 
     /**
      * 闂ㄧ缁勫叏閲忔帴鍙�
@@ -927,7 +923,7 @@
                 }
             }
             if(memberCardList.size()>0){
-                memberCardMapper.insertBatchSomeColumn(memberCardList);
+                memberCardMapper.insert(memberCardList);
             }
         }
     }
@@ -1011,7 +1007,7 @@
                         parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                         parkBookList.add(parkBook);
                     }
-                    parkBookMapper.insertBatchSomeColumn(parkBookList);
+                    parkBookMapper.insert(parkBookList);
                 }else{
                     throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍋滆溅搴撲俊鎭笉瀛樺湪锛屾巿鏉冨け璐�");
                 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
index 0268516..4e05b11 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -71,7 +71,7 @@
                 }
             }
             if(addList.size()>0){
-                deviceMapper.insertBatchSomeColumn(addList);
+                deviceMapper.insert(addList);
             }
             if(editList.size()>0){
                 for(Device d : editList){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java
index cd1be6c..334dce7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java
@@ -88,7 +88,7 @@
                 }
             }
             if(addList.size()>0){
-                deviceMapper.insertBatchSomeColumn(addList);
+                deviceMapper.insert(addList);
             }
             if(editList.size()>0){
                 for(Device d : editList){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
index b68b0b4..7710cd4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -228,7 +228,7 @@
                 }
             }
             if(addList.size()>0){
-                parksMapper.insertBatchSomeColumn(addList);
+                parksMapper.insert(addList);
             }
             if(editList.size()>0){
                 for(Parks d : editList){
@@ -367,7 +367,7 @@
 
                     List<CarEvent> sublist = allHkList.subList(startIndex, endIndex);
                     if(sublist.size()>0){
-                        carEventMapper.insertBatchSomeColumn(sublist);//鎻掑叆鏂版暟鎹�
+                        carEventMapper.insert(sublist);//鎻掑叆鏂版暟鎹�
                     }
                     startIndex = endIndex;
                     endIndex += sublistSize;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
index 6e23fda..03abcc6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -96,7 +96,7 @@
                 }
             }
             if(addList.size()>0){
-                DeviceRoleMapper.insertBatchSomeColumn(addList);
+                DeviceRoleMapper.insert(addList);
             }
             if(editList.size()>0){
                 for(DeviceRole d : editList){
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 a68cbb0..e34a2ef 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
@@ -99,7 +99,7 @@
             }
             if(list.size()>0){
                 //鎻掑叆闂ㄧ璁板綍
-                deviceEventMapper.insertBatchSomeColumn(list);
+                deviceEventMapper.insert(list);
             }
             if(delRetentionLis.size()>0){
                 //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
@@ -109,7 +109,7 @@
             }
             if(retentionList.size()>0){
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
-                retentionMapper.insertBatchSomeColumn(retentionList);
+                retentionMapper.insert(retentionList);
             }
             log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========鎴愬姛=======");
         }catch (Exception e) {
@@ -289,7 +289,7 @@
             }
             if(list.size()>0){
                 //鎻掑叆闂ㄧ璁板綍
-                visitEventMapper.insertBatchSomeColumn(list);
+                visitEventMapper.insert(list);
             }
             if(delRetentionLis.size()>0){
                 //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
@@ -299,7 +299,7 @@
             }
             if(retentionList.size()>0){
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
-                retentionMapper.insertBatchSomeColumn(retentionList);
+                retentionMapper.insert(retentionList);
             }
             log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
         }catch (Exception e){
@@ -461,7 +461,7 @@
             }
             if(list.size()>0){
                 //鎻掑叆闂ㄧ璁板綍
-                carEventMapper.insertBatchSomeColumn(list);
+                carEventMapper.insert(list);
             }
             if(delRetentionList.size()>0){
                 //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
@@ -471,7 +471,7 @@
             }
             if(retentionList.size()>0){
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
-                retentionMapper.insertBatchSomeColumn(retentionList);
+                retentionMapper.insert(retentionList);
             }
             log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
         }catch (Exception e){
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 a8ab55b..09da7f9 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
@@ -518,7 +518,7 @@
                         .eq(Empower::getMemberId,member.getId())
                         .eq(Empower::getIsdeleted,Constants.ZERO)
                         .in(Empower::getDeviceId,deviceIds) );
-                empowerMapper.insertBatchSomeColumn(list);
+                empowerMapper.insert(list);
             }
         }
     }
@@ -577,7 +577,7 @@
                     .eq(Empower::getMemberId,member.getId())
                     .eq(Empower::getIsdeleted,Constants.ZERO)
                     .in(Empower::getDeviceId,deviceIds) );
-            empowerMapper.insertBatchSomeColumn(list);
+            empowerMapper.insert(list);
         }
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
index df05a04..f471370 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
@@ -101,7 +101,7 @@
                 throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
             }
             companyMapper.delete(new UpdateWrapper<>());//娓呯┖鍘熸湁鏁版嵁
-            companyMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+            companyMapper.insert(allHkList);//鎻掑叆鏂版暟鎹�
         }catch (BusinessException e){
             throw  e;
         }catch (Exception e){
@@ -190,7 +190,7 @@
                 throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
             }
             memberMapper.delete(new UpdateWrapper<>());//娓呯┖鍘熸湁鏁版嵁
-            memberMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+            memberMapper.insert(allHkList);//鎻掑叆鏂版暟鎹�
         }catch (BusinessException e){
             throw  e;
         }catch (Exception e){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
index 0ef439e..e4992e8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
@@ -99,7 +99,7 @@
             }
             //娓呯┖鍘熸湁鐨勬暟鎹�
             carsMapper.delete(new UpdateWrapper<>());
-            carsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+            carsMapper.insert(allHkList);//鎻掑叆鏂版暟鎹�
         }catch (BusinessException e){
             throw  e;
         }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
index 4679a06..188e7f4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
@@ -108,7 +108,7 @@
                     .ge(Visits::getStarttime,start)
                     .eq(Visits::getType,Constants.ONE)
                     .le(Visits::getStarttime,end));
-            visitsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+            visitsMapper.insert(allHkList);//鎻掑叆鏂版暟鎹�
         }catch (BusinessException e){
             throw  e;
         }
diff --git a/server/visits/openapi/src/main/java/com/doumee/api/web/ApiController.java b/server/visits/openapi/src/main/java/com/doumee/api/web/ApiController.java
index ecceb79..1a02b2a 100644
--- a/server/visits/openapi/src/main/java/com/doumee/api/web/ApiController.java
+++ b/server/visits/openapi/src/main/java/com/doumee/api/web/ApiController.java
@@ -1,6 +1,5 @@
 package com.doumee.api.web;
 
-import com.doumee.config.Jwt.JwtTokenUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
@@ -26,10 +25,10 @@
         return request;
     }
 
-    protected String getToken() {
-        Object obj = this.getRequest().getAttribute(JwtTokenUtil.HEADER_KEY);
-        return obj != null ? obj.toString() : null;
-    }
+//    protected String getToken() {
+//        Object obj = this.getRequest().getAttribute(JwtTokenUtil.HEADER_KEY);
+//        return obj != null ? obj.toString() : null;
+//    }
 
 
 }
diff --git a/server/visits/openapi/src/main/java/com/doumee/api/web/BizResourceController.java b/server/visits/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
index c077a10..bca5a78 100644
--- a/server/visits/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
+++ b/server/visits/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -39,7 +39,7 @@
 @RestController
 @RequestMapping("/visitbiz")
 @Slf4j
-public class BizResourceController extends ApiController {
+public class BizResourceController{
 
     @Autowired
     private ERPSyncService erpSyncService;
@@ -51,7 +51,7 @@
     private VisitsService visitsService;
 
 
-    @ApiOperation(value = "璋冪敤鍑嵁鑾峰彇鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝鍚慐RP鎻愪緵缁熸帴鍙h皟鐢ㄥ嚟璇�")
+   /* @ApiOperation(value = "璋冪敤鍑嵁鑾峰彇鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝鍚慐RP鎻愪緵缁熸帴鍙h皟鐢ㄥ嚟璇�")
     @GetMapping("/accesstoken")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "accessKey", value = "璁块棶key锛岀敱璁垮绔彁渚�", required = true),
@@ -60,7 +60,7 @@
     public ApiResponse<AccessTokenResponse> accesstoken(@RequestParam  String accessKey, @RequestParam  String accessSecret) {
         ApiResponse response = ApiResponse.success(null);
         try {
-            response.setData(erpSyncService.createERPToken(accessKey,accessSecret));
+//            response.setData(erpSyncService.createERPToken(accessKey,accessSecret));
         }catch (BusinessException e){
             response = ApiResponse.failed(e.getCode(), e.getMessage());
         }catch (Exception e){
@@ -317,7 +317,7 @@
         map.put("FTP璧勬簮璁块棶鏄犲皠鍦板潃",
         systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode());
         return  ApiResponse.success(map);
-    }
+    }*/
 
 
 
diff --git a/server/visits/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java b/server/visits/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
index fcb986a..c8f4f5e 100644
--- a/server/visits/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
+++ b/server/visits/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
@@ -36,7 +36,7 @@
 @RestController
 @RequestMapping("/erp/resource")
 @Slf4j
-public class ErpResourceController extends ApiController {
+public class ErpResourceController{
     @ApiOperation(value = "鍏ㄩ噺缁勭粐淇℃伅鎺ュ彛", notes = "ERP绔彁渚涳紝渚涜瀹㈢鎷夊彇鍏ㄩ儴缁勭粐淇℃伅锛岀敤浜庡垵濮嬪寲鍙婂懆鏈熸�ф暟鎹牳鏌�")
     @PostMapping("/org/list")
     public ERPApiResponse<PageData<ErpOrgListResponse>> orgList (@RequestBody PageWrap<OrgListRequest> pageWrap) {

--
Gitblit v1.9.3