liukangdong
2024-09-11 d941bab56c15b52312c58707ff778f6140e0c5f4
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加26个文件
已复制1个文件
已修改70个文件
已重命名1个文件
2794 ■■■■ 文件已修改
admin/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.production 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaDeviceRoleWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/timer/timer.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/db/business.platform_event.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/resources/application-pro.yml 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/application-pro.yml 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-pro.yml 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/resources/bootstrap-pro.yml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxAccessTokenRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformInfoRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryDataResponse.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryJsonResponse.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/resources/application-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env
@@ -7,7 +7,7 @@
VUE_APP_CONTEXT_PATH = '/admin'
# æŽ¥å£å‰ç¼€
VUE_APP_API_PREFIX = '/admin_interface'
VUE_APP_API_PREFIX = '/gateway_interface'
# é¡¹ç›®åç§°
VUE_APP_TITLE = '安泰智慧园区系统'
admin/.env.production
@@ -1,4 +1,4 @@
# ç”Ÿäº§çŽ¯å¢ƒé…ç½®
NODE_ENV = 'production'
VUE_APP_API_URL  = 'http://10.50.250.178:8088/gateway_interface/'
VUE_APP_API_URL  = 'http://192.168.5.13/gateway_interface'
admin/src/api/index.js
@@ -1,4 +1,4 @@
export const uploadFile = '/admin_interface/visitsAdmin/cloudService/public/upload'
export const uploadFile = '/gateway_interface/visitsAdmin/cloudService/public/upload'
export * from './business/index'
export * from './platform'
admin/src/components/business/OperaDeviceRoleWindow.vue
@@ -158,7 +158,7 @@
    },
    // èŽ·å–è®¾å¤‡
    getLists () {
      getList({})
      getList({type:0, isdeleted:0 })
        .then(res => {
          this.device = res.map(item => {
            return {
admin/src/views/timer/timer.vue
@@ -110,7 +110,7 @@
      this.$dialog.actionConfirm('确认暂停该任务吗?')
          .then(() => {
            this.pausing = true
            this.api.paustById(row.id)
            this.api.pauseById(row.id)
                .then(() => {
                  this.$message.info('暂停成功')
                  this.search()
server/db/business.platform_event.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:create', '新建月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:delete', '删除月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:update', '修改月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:query', '查询月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:exportExcel', '导出月台车辆进出事件推送记录表(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/meeting/meeting_admin/src/main/resources/bootstrap-pro.yml
@@ -10,20 +10,19 @@
        # æš‚时关闭缓存
        enabled: false
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: nacos
      config:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit_test
        username: nacos
        password: nacos
#        file-extension: yaml
#        group: dev
#        data-id: com.doumee.meeting.admin
      #      config:
      #        server-addr: http://175.27.187.84:8848 #配置Nacos地址
      #        namespace: dmvisit
      #        username: nacos
      #        password: nacos
      #        file-extension: yaml
      #        group: dev
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        username: nacos
        password: nacos
      # å®‰å…¨é…ç½®
        password: nacos
server/meeting/meeting_service/src/main/resources/application-pro.yml
@@ -1,23 +1,16 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://localhost:3306/smart_meeting?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Znhys@168.com
    password: Atwl@2024
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
#
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: doumee@168.com
debug_model: true
captcha_check: false
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
debug_model: false
captcha_check: true
# Swagger配置
swagger:
@@ -27,25 +20,5 @@
  enabled: true
  # ç¦ç”¨swagger时的重定向地址
  redirect-uri: /
########################微信支付相关配置########################
wx:
  pay:
    appId: wxfab6da18632e28de
    appSecret: 4ee3b22afa90287834319fc3c1635271
    mchId: 1229817002
    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
    keyPath: /usr/local/apiclient_cert.p12
tencent:
  map:
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
########################定时开启配置########################
timing: true
des_pwd: 123456SDFKDJF
des_pwd: 123456SDFKDJF
server/system_gateway/src/main/resources/application-pro.yml
@@ -1,29 +1,21 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://localhost:3306/smart_meeting?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Znhys@168.com
    password: Atwl@2024
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
    #    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 5000      # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: doumee@168.com
debug_model: true
debug_model: false
captcha_check: false
captcha_check: true
# Swagger配置
swagger:
@@ -34,24 +26,6 @@
  # ç¦ç”¨swagger时的重定向地址
  redirect-uri: /
########################微信支付相关配置########################
wx:
  pay:
    appId: wxfab6da18632e28de
    appSecret: 4ee3b22afa90287834319fc3c1635271
    mchId: 1229817002
    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
    keyPath: /usr/local/apiclient_cert.p12
tencent:
  map:
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
########################定时开启配置########################
timing: true
des_pwd: 123456SDFKDJF
des_pwd: 123456SDFKDJF
server/system_gateway/src/main/resources/application.yml
@@ -83,6 +83,7 @@
    enabled: true
    mime-types: application/json
  port: 10010
  tomcat:
    max-swallow-size: -1
  servlet:
server/system_gateway/src/main/resources/bootstrap-pro.yml
@@ -1,12 +1,12 @@
spring:
  cloud:
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: nacos
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit_test
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
#        namespace: dev_renkang
        username: nacos
        password: nacos
server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
@@ -109,7 +109,7 @@
    @GetMapping("/getVisitConfigDTO")
    public ApiResponse<VisitConfigDTO> getVisitConfigDTO(){
        return ApiResponse.success(systemDictDataService.getVisitConfigDTO());
    };
    }
    /**
     * ä¿®æ”¹è®¿å®¢æ¥è®¿é…ç½®
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -30,6 +30,7 @@
    public static final String HEADER_USER_TOKEN = "dm_user_token";
    public static final String REDIS_TOKEN_KEY = "token_";
    public static final String REDIS_HK_TOKEN_KEY = "hk_token_";
    public static final String HK_TOKEN_VALIDITY = "HK_TOKEN_VALIDITY";
    public static final String[]  ALL_SPELL_LIST_FIRST = new String[]{"A", "B", "C", "D", "E", "F", "G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
    public static final int ZERO = 0 ;
    public static final int ONE = 1 ;
@@ -118,6 +119,10 @@
    public static final String HK_NGINX_URL = "HK_NGINX_URL";
    public static final String PLATFORM_BOOKING_TIPS = "PLATFORM_BOOKING_TIPS";
    public static final String PLATFORM_GUIDEMAP = "PLATFORM_GUIDEMAP";
    public static final String WSM_PARAM ="WSM_PARAM" ;
    public static final String WMS_INBOUND_PLATFROM_URL ="WMS_INBOUND_PLATFROM_URL" ;
    public static final String WMS_GET_INVENTORYLIST_URL ="WMS_GET_INVENTORYLIST_URL" ;
    public static final String WMS_OUTBOUND_PLATFROM_URL ="WMS_OUTBOUND_PLATFROM_URL" ;
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
    public static  boolean DEALING_HK_SYNCPLATFORM = false;
@@ -804,7 +809,7 @@
            this.info = info;
        }
    }
    /**
     * æœˆå°ä½œä¸š çŠ¶æ€
     * 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·
@@ -822,6 +827,7 @@
        AUTHED_LEAVE(9, "已授权离园","已授权离园" ),
        LEAVED(10, "已离园 ","已离园 " ),
        OVER_NUMBER(11, "已过号","已过号" ),
        CANCEL(12, "已取消","已取消" ),
        ;
        // æˆå‘˜å˜é‡
server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
@@ -1,5 +1,12 @@
package com.doumee.core.utils;
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
@@ -9,6 +16,7 @@
import java.io.*;
import java.security.Key;
import java.util.Base64;
import java.util.concurrent.TimeUnit;
public class DESUtil {
@@ -169,4 +177,47 @@
        }
        return null;
    }
    /**
     * æµ·åº·åР坆
     * @param userName
     * @param hour
     * @return
     */
    public static  String generateTokenToHk(String userName,Integer hour, RedisTemplate<String,Object> redisTemplate){
         long currentTimeMillis = System.currentTimeMillis() + 1000*60*60*hour;
         String encrypt = DESUtil.encrypt("12345678",currentTimeMillis + "_" + userName );
         redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+encrypt, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
         return encrypt;
    }
    /**
     * æµ·åº·è§£ç 
     * @param token
     * @return
     */
    public static String verifyHkToken(String token){
        String decrypt = DESUtil.decrypt("12345678",token);
        if(StringUtils.isBlank(decrypt)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token解析失败");
        }
        try{
            Integer index_ = decrypt.indexOf("_");
            long currentTimeMillis = Long.valueOf(decrypt.substring(Constants.ZERO,index_));
            if(currentTimeMillis<=System.currentTimeMillis()){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token已过期");
            }
            String userName = decrypt.substring(index_+Constants.ONE);
            return userName ;
        }catch (Exception e){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token解析失败");
        }
    }
}
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2971,6 +2971,13 @@
        return DateToStr(date, "yyyyMMdd");
    }
    public static String afterDateHourToStr(Integer hour){
        Date date = new Date();
        Long l = date.getTime()+1000*60*60*hour;
        date.setTime(l);
        return DateToStr(date, "yyyyMMdd");
    }
    public static String beforeDateToStr(Integer days){
        Date date = new Date();
        Long l = date.getTime()-1000*60*60*24*days;
server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java
@@ -122,7 +122,7 @@
    }
    public static void main(String[] args) {
        String url= "http://175.27.187.84/file4/member/20223402/DM1005.png";// å¾…处理的图片
        String url= "http://10.50.250.178:8088/file/member/20240910/c9a4d1cc-76ca-4aa1-bead-5dfd5daf1e76.jpg";// å¾…处理的图片
        String imgbese = Image2Base64(url);
        System.out.println(imgbese.replace("\r\n", ""));
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
@@ -203,14 +203,15 @@
        if(Objects.isNull(notices)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(notices.getSendacopy(),Constants.ONE)){
            if(Constants.equalsInteger(Constants.ZERO,notices.getReaded())){
                noticesMapper.update(null,new UpdateWrapper<Notices>().lambda()
                        .set(Notices::getReaded,Constants.ONE).eq(Notices::getId,noticesId));
            }
        }else{
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非抄送数据,无法进行标记");
        if(Constants.equalsInteger(Constants.ZERO,notices.getReaded())){
            noticesMapper.update(null,new UpdateWrapper<Notices>().lambda()
                    .set(Notices::getReaded,Constants.ONE).eq(Notices::getId,noticesId));
        }
//        if(Constants.equalsInteger(notices.getSendacopy(),Constants.ONE)){
//
//        }else{
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非抄送数据,无法进行标记");
//        }
    }
    /**
server/system_timer/src/main/resources/application-pro.yml
@@ -1,28 +1,21 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: doumee
    password: rtjgfEr@&0c0m
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Atwl@2024
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
    #    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 5000      # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: doumee@168.com
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
debug_model: true
captcha_check: false
debug_model: false
captcha_check: true
# Swagger配置
swagger:
@@ -33,22 +26,6 @@
  # ç¦ç”¨swagger时的重定向地址
  redirect-uri: /
timing: true
########################微信支付相关配置########################
wx:
  pay:
    appId: wxfab6da18632e28de
    appSecret: 4ee3b22afa90287834319fc3c1635271
    mchId: 1229817002
    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
    keyPath: /usr/local/apiclient_cert.p12
tencent:
  map:
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
des_pwd: 123456SDFKDJF
des_pwd: 123456SDFKDJF
server/system_timer/src/main/resources/bootstrap-pro.yml
@@ -10,7 +10,7 @@
        # æš‚时关闭缓存
        enabled: false
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: nacos
      #      config:
@@ -22,7 +22,7 @@
      #        group: dev
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit_test
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        username: nacos
        password: nacos
server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
@@ -9,6 +9,7 @@
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,6 +22,7 @@
@Api(tags = "组织人员定时器接口")
@RestController
@RequestMapping("/timer/orguser")
@Slf4j
public class HkUsersTimerController extends BaseController {
    @Autowired
@@ -36,25 +38,34 @@
    @ApiOperation("开启定时同步海康组织数据")
    @GetMapping("/syncOrgData")
    public ApiResponse syncOrgData() {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
        log.info("=========================开启定时同步海康组织数据===========start===========");
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
            || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self) {
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncOrgData(null);
        }
        log.info("=========================开启定时同步海康组织数据===========end===========");
        return ApiResponse.success("开启定时同步海康组织数据成功");
    }
    @ApiOperation("开启定时重新下发删除人员数据")
    @GetMapping("/syncMemberDelData")
    public ApiResponse syncMemberDelData() {
        log.info("=========================开启定时重新下发删除人员数据===========start===========");
        hkSyncOrgUserService.syncMemberDelData();
        log.info("=========================开启定时重新下发删除人员数据===========end===========");
        return ApiResponse.success("开启定时重新下发删除人员数据成功");
    }
    @ApiOperation("开启定时同步海康人员数据")
    @GetMapping("/syncUserData")
    public ApiResponse syncUserData() {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
        log.info("=========================开启定时同步海康人员数据===========start===========");
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
                || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self) {
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncUserData(null);
        }
        log.info("=========================开启定时同步海康人员数据===========end===========");
        return ApiResponse.success("开启定时同步海康人员数据成功");
    }
    @ApiOperation("开启定时冻结人员")
server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
@@ -10,19 +10,19 @@
        # æš‚时关闭缓存
        enabled: false
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: nacos
#      config:
#        server-addr: http://175.27.187.84:8848 #配置Nacos地址
#        namespace: dmvisit
#        username: nacos
#        password: nacos
#        file-extension: yaml
#        group: dev
#        data-id: com.doumee.meeting.admin
      #      config:
      #        server-addr: http://175.27.187.84:8848 #配置Nacos地址
      #        namespace: dmvisit
      #        username: nacos
      #        password: nacos
      #        file-extension: yaml
      #        group: dev
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit_test
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        username: nacos
        password: nacos
        password: nacos
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -4,8 +4,8 @@
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformCarsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
import com.doumee.dao.business.model.Device;
@@ -108,15 +108,15 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("【海康】月台工作状态事件推送")
    @PostMapping("/platform/workstatus")
    public ApiResponse workstatus(@RequestBody EventPlatWorkstatusRequest param, HttpServletResponse response) {
         hkSyncPushService.dealWorkstatusEvent(param,response);
    @PostMapping("/push/platform/workstatus")
    public ApiResponse pushPlatformStatus(@RequestBody EventPlatformRequest param, HttpServletResponse response) {
         hkSyncPushService.dealPlatformStatusEvent(param,response);
        return ApiResponse.success(null);
    }
    @ApiOperation("【海康】月台车辆状态事件推送")
    @PostMapping("/platform/carstatus")
    public ApiResponse carstatus(@RequestBody EventPlatCarstatusRequest param, HttpServletResponse response) {
         hkSyncPushService.dealCarstatusEvent(param,response);
    @PostMapping("/push/platform/carstatus")
    public ApiResponse pushPlatformCarStatus(@RequestBody EventPlatformCarsRequest param, HttpServletResponse response) {
         hkSyncPushService.dealPlatformCarsEvent(param,response);
        return ApiResponse.success(null);
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.PlatformEvent;
import com.doumee.service.business.PlatformEventService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
@Api(tags = "月台车辆进出事件推送记录表")
@RestController
@RequestMapping("/business/platformEvent")
public class PlatformEventController extends BaseController {
    @Autowired
    private PlatformEventService platformEventService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:platformevent:create")
    public ApiResponse create(@RequestBody PlatformEvent platformEvent) {
        return ApiResponse.success(platformEventService.create(platformEvent));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:platformevent:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        platformEventService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:platformevent:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        platformEventService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:platformevent:update")
    public ApiResponse updateById(@RequestBody PlatformEvent platformEvent) {
        platformEventService.updateById(platformEvent);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:platformevent:query")
    public ApiResponse<PageData<PlatformEvent>> findPage (@RequestBody PageWrap<PlatformEvent> pageWrap) {
        return ApiResponse.success(platformEventService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:platformevent:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformEvent> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(PlatformEvent.class).export(platformEventService.findPage(pageWrap).getRecords(), "月台车辆进出事件推送记录表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:platformevent:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(platformEventService.findById(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsInterfaceLogController.java
@@ -1,26 +1,22 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.WmsInterfaceLogMapper;
import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.WmsInterfaceLog;
import com.doumee.service.business.InterfaceLogService;
import com.doumee.service.business.WmsInterfaceLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import com.doumee.api.BaseController;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
@@ -1,7 +1,9 @@
package com.doumee.api.business;
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
import com.doumee.core.haikang.model.param.request.EventSubRequest;
import com.doumee.core.haikang.model.param.request.ParkListRequest;
@@ -10,6 +12,7 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
@@ -21,6 +24,8 @@
import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -39,6 +44,7 @@
@Api(tags = "WMS平台数据推送接口")
@RestController
@RequestMapping("/wms")
@Slf4j
public class WmsPushController extends BaseController {
    @Autowired
@@ -48,7 +54,23 @@
    @ApiOperation("【CMS】推送入库单通知任务")
    @PostMapping("/push/inboundNotice")
    public WmsBaseResponse inboundNotice(@RequestBody List<WmsInboundNoticeRequest> param) {
        WmsBaseResponse result = wmsService.inboundNotice(param);
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
             result = wmsService.inboundNotice(param);
        }catch (BusinessException e){
            log.error("【CMS】推送入库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【CMS】推送入库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/inboundNotice", "推送入库单通知任务",JSONObject.toJSONString(param),
                    success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
@@ -56,28 +78,85 @@
    @ApiOperation("【CMS】推送出库单通知任务")
    @PostMapping("/push/outboundNotice")
    public WmsBaseResponse outboundNotice(@RequestBody List<WmsOutboundNoticeRequest> param) {
        WmsBaseResponse result = wmsService.outboundNotice(param);
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
              result = wmsService.outboundNotice(param);
        }catch (BusinessException e){
            log.error("【CMS】推送出库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【CMS】推送出库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/outboundNotice", "推送出库单通知任务",JSONObject.toJSONString(param),success
                    , JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送取消入库单通知任务")
    @PostMapping("/push/cancelInbound")
    public WmsBaseResponse cancelInbound(@RequestBody List<WmsActionNoticeRequest> param) {
        WmsBaseResponse result = wmsService.cancelInbound(param);
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.cancelInbound(param);
        }catch (BusinessException e){
            log.error("【CMS】推送取消入库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【CMS】推送取消入库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/cancelInbound", "推送取消入库单通知任务",JSONObject.toJSONString(param),
                    success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送取消出库单通知任务")
    @PostMapping("/push/cancelOutbound")
    public WmsBaseResponse cancelOutbound(@RequestBody List<WmsActionNoticeRequest> param) {
        WmsBaseResponse result = wmsService.cancelOutbound(param);
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.cancelOutbound(param);
        }catch (BusinessException e){
            log.error("【CMS】推送取消出库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【CMS】推送取消出库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/cancelOutbound", "推送取消出库单通知任务",
                    JSONObject.toJSONString(param),  success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送出入库作业完成通知任务")
    @PostMapping("/push/doneTask")
    public WmsBaseResponse doneTask(@RequestBody List<WmsActionNoticeRequest> param) {
        WmsBaseResponse result = wmsService.doneTask(param);
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.doneTask(param);
        }catch (BusinessException e){
            log.error("【CMS】推送出入库作业完成通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【CMS】推送出入库作业完成通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/doneTask", "推送出入库作业完成通知任务",JSONObject.toJSONString(param),
                    success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -1,26 +1,38 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformCarsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.dao.business.model.Device;
import com.doumee.service.business.impl.hksync.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
@@ -42,6 +54,14 @@
    private HkSyncPushServiceImpl hkSyncPushService;
    @Autowired
    private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private RedisTemplate<String,Object> redisTemplate;
    @PreventRepeat
    @ApiOperation("【海康】全量同步月台信息接口")
    @PostMapping("/syncPlatforms")
@@ -130,6 +150,20 @@
        String result = hkSyncPushService.dealParkEvent(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】月台工作状态事件订阅推送对接处理接口")
    @PostMapping("/push/platform/workstatus")
    @LoginNoRequired
    public ApiResponse pushPlatformStatus(@RequestBody EventPlatformRequest param, HttpServletResponse response ){
        String result = hkSyncPushService.dealPlatformStatusEvent(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】月台车辆状态事件订阅推送对接处理接口")
    @PostMapping("/push/platform/carstatus")
    @LoginNoRequired
    public ApiResponse pushPlatformCarStatus(@RequestBody EventPlatformCarsRequest param, HttpServletResponse response ){
        String result = hkSyncPushService.dealPlatformCarsEvent(param,response);
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】取消订阅事件")
    @PostMapping("/cancelEventSub")
@@ -138,4 +172,26 @@
         hkSyncPushService.cancelEventSub();
        return ApiResponse.success(null);
    }
    /**
     * èŽ·å–å®‰é˜²å¹³å°ç³»ç»Ÿå…å¯†èœå•è°ƒæ•´åœ°å€
     * @return
     */
    @ApiOperation(value = "获取安防平台系统免密菜单调整地址" )
    @GetMapping("/getHkMenuLink")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type",example = "0",value = "菜单类型", required = true),
    })
    public ApiResponse<String> getHkMenuLink(Integer type,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        LoginUserInfo loginUserInfo = this.getLoginUser(token);
        String hkToken = DESUtil.generateTokenToHk(loginUserInfo.getUsername(),Integer.valueOf(
          systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_TOKEN_VALIDITY).getCode()
        ),redisTemplate);
        String url = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() +
        systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode()
                 + HKService.getMenuUrl(type,hkToken);
        return ApiResponse.success( url);
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
@@ -1,21 +1,28 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.business.model.PlatformReason;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.service.business.PlatformBooksService;
import com.doumee.service.business.PlatformReasonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -30,18 +37,20 @@
    @Autowired
    private PlatformBooksService platformBooksService;
    @Autowired
    private PlatformReasonService platformReasonService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:platformbooks:create")
    @CloudRequiredPermission("business:platformbooks:create")
    public ApiResponse create(@RequestBody PlatformBooks platformBooks) {
        return ApiResponse.success(platformBooksService.create(platformBooks));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:platformbooks:delete")
    @CloudRequiredPermission("business:platformbooks:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        platformBooksService.deleteById(id);
        return ApiResponse.success(null);
@@ -49,7 +58,7 @@
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:platformbooks:delete")
    @CloudRequiredPermission("business:platformbooks:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
@@ -62,7 +71,7 @@
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:platformbooks:update")
    @CloudRequiredPermission("business:platformbooks:update")
    public ApiResponse updateById(@RequestBody PlatformBooks platformBooks) {
        platformBooksService.updateById(platformBooks);
        return ApiResponse.success(null);
@@ -70,22 +79,53 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:platformbooks:query")
    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap) {
    @CloudRequiredPermission("business:platformbooks:query")
    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformBooksService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:platformbooks:exportExcel")
    @CloudRequiredPermission("business:platformbooks:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformBooks> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(PlatformBooks.class).export(platformBooksService.findPage(pageWrap).getRecords(), "月台入园预约信息表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:platformbooks:query")
    @CloudRequiredPermission("business:platformbooks:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(platformBooksService.findById(id));
    }
    @ApiOperation("入园原因")
    @GetMapping("/platformReasonList")
    public ApiResponse<List<PlatformReason>> platformReasonList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        List<PlatformReason> platformReasons = platformReasonService.findList(null);
        return ApiResponse.success(platformReasons);
    }
    @ApiOperation("查询可预约量")
    @PostMapping("/checkSurplusNum")
    public ApiResponse<BigDecimal> checkSurplusNum (@RequestBody PlatformBooksCheckNumDTO platformBooksCheckNumDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformBooksService.checkNum(platformBooksCheckNumDTO));
    }
    @ApiOperation("物流车预约")
    @PostMapping("/apply")
    public ApiResponse<Integer> apply (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
        platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId());
        return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO));
    }
    @ApiOperation("物流车预约详情")
    @GetMapping("/getDetail")
    public ApiResponse<PlatformBooks> getDetail (@RequestParam Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        PlatformBooks platformBooks = platformBooksService.getDetail(id,getLoginUser(token).getMemberId());
        return ApiResponse.success(platformBooks);
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -13,6 +13,7 @@
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.web.reqeust.JobOperateDTO;
import com.doumee.dao.web.reqeust.PlatformDataDTO;
import com.doumee.dao.web.response.PlatformGroupWorkVO;
import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.service.business.PlatformGroupService;
import com.doumee.service.business.PlatformJobService;
@@ -212,6 +213,19 @@
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("授权离场")
    @PostMapping("/powerLevel")
    public ApiResponse powerLevel (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.powerLevel(jobOperateDTO);
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("获取月台组 ç­‰å¾…与异常挂起数据")
    @GetMapping("/getPlatformGroupWork")
    public ApiResponse<PlatformGroupWorkVO> getPlatformGroupWork (@RequestParam Integer platformGroupId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformGroupService.getPlatformGroupWork(platformGroupId));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
@@ -12,8 +12,6 @@
import com.doumee.dao.web.reqeust.PlatformDataDTO;
import com.doumee.service.business.PlatformGroupService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
@@ -9,6 +9,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.web.reqeust.JobDetailDTO;
import com.doumee.service.business.PlatformJobService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -41,7 +42,7 @@
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:platformjob:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformJobService.deleteById(id);
        platformJobService.delete(id);
        return ApiResponse.success(null);
    }
@@ -81,4 +82,11 @@
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformJobService.findById(id));
    }
    @ApiOperation("任务详情")
    @PostMapping("/jobDetail")
    @CloudRequiredPermission("business:platformjob:query")
    public ApiResponse<PlatformJob>  jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformJobService.getDetail(jobDetailDTO));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java
@@ -98,7 +98,7 @@
    @PostMapping("/page")
    @CloudRequiredPermission("business:visits:query")
    public ApiResponse<PageData<Visits>> findPage (@RequestBody PageWrap<Visits> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        pageWrap.getModel().setReceptMemberId(getLoginUser(token).getMemberId());
//        pageWrap.getModel().setReceptMemberId(getLoginUser(token).getMemberId());
        return ApiResponse.success(visitsService.findPage(pageWrap));
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.utils.Constants;
import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.service.business.WmsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "WMS平台数据推送接口")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/wms")
public class WmsPushCloudController extends BaseController {
    @Autowired
    private WmsService wmsService;
    @PreventRepeat
    @ApiOperation("【CMS】推送入库单通知任务")
    @PostMapping("/push/inboundNotice")
    @LoginNoRequired
    public WmsBaseResponse inboundNotice(@RequestBody List<WmsInboundNoticeRequest> param) {
        WmsBaseResponse result = wmsService.inboundNotice(param);
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送出库单通知任务")
    @PostMapping("/push/outboundNotice")
    @LoginNoRequired
    public WmsBaseResponse outboundNotice(@RequestBody List<WmsOutboundNoticeRequest> param) {
        WmsBaseResponse result = wmsService.outboundNotice(param);
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送取消入库单通知任务")
    @PostMapping("/push/cancelInbound")
    @LoginNoRequired
    public WmsBaseResponse cancelInbound(@RequestBody List<WmsActionNoticeRequest> param) {
        WmsBaseResponse result = wmsService.cancelInbound(param);
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送取消出库单通知任务")
    @PostMapping("/push/cancelOutbound")
    @LoginNoRequired
    public WmsBaseResponse cancelOutbound(@RequestBody List<WmsActionNoticeRequest> param) {
        WmsBaseResponse result = wmsService.cancelOutbound(param);
        return result;
    }
    @PreventRepeat
    @ApiOperation("【CMS】推送出入库作业完成通知任务")
    @PostMapping("/push/doneTask")
    @LoginNoRequired
    public WmsBaseResponse doneTask(@RequestBody List<WmsActionNoticeRequest> param) {
        WmsBaseResponse result = wmsService.doneTask(param);
        return result;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -1,26 +1,28 @@
package com.doumee.cloud.openapi;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.dao.openapi.request.*;
import com.doumee.dao.openapi.response.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.PlatformJobService;
import com.doumee.service.business.PlatformLogService;
import com.doumee.service.business.PlatformService;
import com.doumee.service.business.PlatformWaterGasService;
import com.doumee.service.system.SystemUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
/**
 * @author æ±Ÿè¹„蹄
@@ -43,75 +45,147 @@
    @Autowired
    private PlatformWaterGasService platformWaterGasService;
    @Autowired
    private SystemUserService systemUserService;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private RedisTemplate<String,Object> redisTemplate;
    @LoginNoRequired
    @ApiOperation("token解析")
    @GetMapping("/water/decodeToken")
    public Map<String,Object> decodeToken(@RequestParam String token) {
        HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
        hkBaseTokenRequest.setToken(token);
        return this.decodeTokenForHk(hkBaseTokenRequest);
    }
    public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest){
        Map<String,Object> result = new HashMap<>();
        result.put("code","0");
        result.put("msg","success");
        if(Objects.isNull(hkBaseTokenRequest)||StringUtils.isBlank(hkBaseTokenRequest.getToken())){
            result.put("code","-1");
            result.put("msg","token参数为空");
            return result;
        }
        String redisToken = (String) redisTemplate.opsForValue().get(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
        if(StringUtils.isBlank(redisToken)){
            result.put("code","-1");
            result.put("msg","token参数为空");
            return result;
        }
        String userName = DESUtil.verifyHkToken(hkBaseTokenRequest.getToken());
        if(StringUtils.isBlank(userName)){
            result.put("code","-1");
            result.put("msg","token参数为空");
            return result;
        }
        //查询用户信息是否存在
        SystemUser systemUser = new SystemUser();
        systemUser.setUsername(userName);
        systemUser.setDeleted(Boolean.FALSE);
        SystemUser queryBean = systemUserService.findOne(systemUser);
        if(Objects.isNull(queryBean)){
            result.put("code","-1");
            result.put("msg","token参数为空");
            return result;
        }
        if(Constants.equalsInteger(queryBean.getStatus(),Constants.ONE)){
            result.put("code","-2");
            result.put("msg","用户已禁用");
            return result;
        }
        redisTemplate.delete(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
        Map<String,Object> data = new HashMap<>();
        data.put("userId",userName);
        result.put("data",data);
        return result;
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【用水量】本月、上月和去年同月")
    @PostMapping("/water/dataByMonth")
    @LoginNoRequired
    public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) {
        return ApiResponse.success(platformWaterGasService.waterDataByMonth(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【用气量】本月、上月和去年同月")
    @PostMapping("/gas/dataByMonth")
    @LoginNoRequired
    public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
        return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】按天统计运单请求参数")
    @PostMapping("/platform/orderNumByDate")
    @LoginNoRequired
    public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) {
        return ApiResponse.success(platformJobService.orderNumByDate(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】月台状态数量统计")
    @PostMapping("/platform/totalNumByStatus")
    @LoginNoRequired
    public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
        return ApiResponse.success(platformService.getPlatformNumByStatusResponse());
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】月台当前作业信息列表")
    @PostMapping("/platform/workingDataList")
    @LoginNoRequired
    public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
        return ApiResponse.success(platformJobService.platformWorkingDataList(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】月台作业详情信息")
    @PostMapping("/platform/workDataInfo")
    @LoginNoRequired
    public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
        return ApiResponse.success(platformJobService.platformWorkingDataList(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】当前车辆状态数量统计")
    @PostMapping("/platform/carStatusNum")
    @LoginNoRequired
    public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
        return ApiResponse.success(platformJobService.carStatusNum(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】车辆事件列表数据集合(最新N条)")
    @PostMapping("/platform/carLogsList")
    @LoginNoRequired
    public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) {
        return ApiResponse.success(platformLogService.getCarLogsListResponse(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】排队队列列表集合")
    @PostMapping("/platform/queueList")
    @LoginNoRequired
    public ApiResponse<PlatformQueuingListResponse> queueList(@RequestBody PlatformQueuingListRequest param) {
        return ApiResponse.success(platformJobService.queueList(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【月台】预警事件集合列表")
    @PostMapping("/platform/warningEventList")
    @LoginNoRequired
    public ApiResponse<List<PlatformWarnEventListResponse>> warningEventList(@RequestBody PlatformWarnEventListRequest param) {
        return ApiResponse.success(new ArrayList<>());
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -52,7 +52,11 @@
                .apiInfo(this.getApiInfo()).groupName("default")
                .host(host)
                .select()
                .apis( basePackage("com.doumee.cloud;com.doumee.api.common"))
                .apis( basePackage("com.doumee.cloud"))
//                .apis( basePackage("com.doumee.api.common"))
//                .apis( basePackage("com.doumee.cloud.openapi;com.doumee.api.common"))
//                .apis( basePackage("com.doumee.cloud.openapi"))
                // è®¾ç½®éœ€è¦è¢«æ‰«æçš„类,这里设置为添加了@Api注解的类
//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
@@ -10,7 +10,7 @@
        # æš‚时关闭缓存
        enabled: false
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: nacos
#      config:
@@ -22,7 +22,7 @@
#        group: dev
#        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit_test
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        username: nacos
        password: nacos
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: dev
    active: pro
  application:
    name: visitsAdmin
    # å®‰å…¨é…ç½®
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -27,6 +27,21 @@
    public static final String ARTEMIS_PATH = "/artemis";
    /**
     * å¿«æ·èœå•跳转页面参数
     * 1、综合安防:zhaf
     * 2、物业后勤:wyhq
     * 3、行政办公:xzbg
     * 4、运营中心:yyzx
     */
    public interface MenuPageId{
            String zhaf = "zhaf";//综合安防
            String wyhq = "wyhq";//物业后勤
            String xzbg = "xzbg";//行政办公
            String yyzx = "yyzx";//运营中心
    }
    /**
     * æŽ¥å£åœ°å€é›†åˆ
     */
    public interface InterfacePath{
@@ -105,6 +120,8 @@
        String[] privilegIccmeGroup= new String[]{"/api/iccm/v1/privilege/groups","查询访客权限组"};//查询访客权限组
        String[] iccmAppointmentRecords= new String[]{"/api/iccm/v2/appointment/records","iccm查询已预约登记"};//iccm查询已预约登记
        String[] wxAccessToken= new String[]{"/api/wx/v1/oa/get/accessToken","iccm查询已预约登记"};//1.9.1根据微信公众号信息获取AccessToken
        String[] goMenuUrl= new String[]{"/xauthplus-plugin/thirdLogin?type=third&componentId=Infovision iPark Platform&componentMenuId=${menuId}&token=${token}","工作台菜单跳转地址"};
    }
    /**
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -529,6 +529,14 @@
    }
    /**
     *    èŽ·å–å…¨é‡ç»„ç»‡ä¿¡æ¯
     * @param body
     * @return
     */
    public static String orgAllList(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body);
    }
    /**
     *    èŽ·å–è®¿å®¢é¢„çº¦è®°å½•åˆ—è¡¨
     * @param body
     * @return
@@ -546,12 +554,13 @@
        return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointmentRecords,body);
    }
    /**
     *    èŽ·å–å…¨é‡ç»„ç»‡åˆ—è¡¨
     * @param body
     *    æ ¹æ®å¾®ä¿¡å…¬ä¼—号信息获取AccessToken
     * @return
     */
    public static String orgAllList(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body);
    public static String wxAccessToken(String configId,String tagId) {
        String[] wxAccessToken= HKConstants.InterfacePath.wxAccessToken;
        wxAccessToken[0] = HKConstants.InterfacePath.wxAccessToken+"?tagId="+tagId+"&configId"+configId;
        return startDoPostStringArtemis(wxAccessToken,"");
    }
    /**
     *    èŽ·å–å…¨é‡ç”¨æˆ·åˆ—è¡¨
@@ -720,4 +729,9 @@
        return startDoPostStringArtemis(HKConstants.InterfacePath.applyST,body);
    }
    public static String getMenuUrl(String menuId, String token) {
        String url = HKConstants.InterfacePath.goMenuUrl[0];
        url = url.replace("${menuId}", menuId).replace("${token}",token);
        return  url;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java
@@ -39,5 +39,6 @@
 private Integer  speed    ; //    Number    false    é€Ÿåº¦
 private Integer  stayTime        ; //Number    false    åœç•™æ—¶é—´
 private Integer  fontSize        ; //Number    false    å­—体大小
 private Integer  fontColor        ; //Number false    å­—体颜色(1:红色,2:绿色,4:黄色,8:蓝色,16:紫色,32:青色,64:白色)
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxAccessTokenRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
import java.util.List;
@Data
public class WxAccessTokenRequest {
    private String configId;//    Query    String    false    å¾®ä¿¡å…¬ä¼—号配置编号
    private String   tagId;//Query    String    false    æ ‡ç­¾
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventImageInfoRequest {
    private String  resourcesContentType;//: "binary",
    private String  resourcesContent;//: "backgroundImage"
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EventPlatformAttrInfoRequest {
   private String cameraIndexCode;//: "90a3caf18fb449339405099a816c3b2d",
   private String deviceIndexCode;//: "5a939a9cf1ee4e268eac6671ec3527ef",
   private String imageServerCode;//: "bfe11307-3286-49ca-b9ee-9efb34b3f555",
   private String picServerIndexCode;//: "bfe11307-3286-49ca-b9ee-9efb34b3f555"
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformCarsDataRequest {
    private List<EventPlatformCarsStatusInfoRequest> HPVehicleStatus;//
    private  EventPlatformAttrInfoRequest targetAttrs;//
   private String dataType;//HPVehicleStatus
        private String sendTime;//2017-04-22T15:39:01.000+08:00
        private String dateTime;//2004-05-03T17:30:08.000+08:00
        private String ipAddress;//172.6.64.7
        private String ipv6Address;//null
        private Integer portNo;//private;//   80,
        private String protocol;//HTTP
        private String macAddress;//01:17:24:45:D9:F4
        private Integer channelID;//private ;//String : 1,
        private Integer activePostCount;//private String : 1,
        private String eventType;//HPVehicleStatus
        private String eventState;//active
        private String eventDescription;//handingPlatform vehicle status
        private String channelName;//ABC
        private String deviceID;//test0123
        private String eventId;//205F7A23-BF3F-C346-A02E-08DAF55EEA15
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformCarsInfoRequest {
    private String  eventId;//    String    äº‹ä»¶å”¯ä¸€æ ‡è¯†    æ˜¯    64
    private String  srcIndex;//    String    äº‹ä»¶æºç¼–号,物理设备是资源编号    æ˜¯    64
    private String  dateTime;//
    private String  srcType;//    String    äº‹ä»¶æºç±»åž‹    æ˜¯    16
    private String  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  srcName;//    String    äº‹ä»¶æºåç§°    å¦    64
    private Integer   status    ;//Number    äº‹ä»¶çŠ¶æ€    æ˜¯        0-瞬时1-开始2-停止3-事件脉冲4-事件联动结果更新5-异步图片上传
    private Integer  timeout    ;//Number    è„‰å†²è¶…æ—¶æ—¶é—´    æ˜¯        å•位:秒
    private String  happenTime    ;//String    äº‹ä»¶å‘生时间(设备时间)    æ˜¯    64
    private String   srcParentIndex    ;//String    äº‹ä»¶å‘生的事件源父设备编号    å¦    64
    private List<EventPlatformCarsDataRequest> data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformCarsParamRequest {
    private String   sendTime;//    P    String    äº‹ä»¶ä»ŽæŽ¥æ”¶è€…(程序处理后)发出的时间    æ˜¯    32    äº‹ä»¶å‘送时间
    private String    ability;//    P    String    äº‹ä»¶ç±»åˆ«    æ˜¯    64    æ ‡è¯†åœè½¦åœºäº‹ä»¶
    private List<String>  uids;//
    private List<String>  clients;//
    private Integer  dataProcInterval;//
    private List<EventPlatformCarsInfoRequest> events;//    P    Events[]    äº‹ä»¶ä¿¡æ¯    æ˜¯    ä¸é™
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
copy from server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java copy to server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
Îļþ´Ó server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java ¸´ÖÆ
@@ -3,11 +3,11 @@
import lombok.Data;
@Data
public class EventPlatCarstatusRequest {
public class EventPlatformCarsRequest {
//    private String  parkIndexCodes    ;//    string    False    åœè½¦åº“唯一标识集合  å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个
    private String   method    ;//    String    æ–¹æ³•名,用于标识报文用途    æ˜¯    16    äº‹ä»¶å›ºå®šOnEventNotify
    private EventParkParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
    private EventPlatformCarsParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EventPlatformCarsStatusInfoRequest {
    private String HPNo;// 1,车道号
    private Integer plateScore;//: 80车牌评分
    private String motionStatus;//'leave',运动状态  enter#进入,leave#离开
    private String plateNo;//'A12345',车牌号
    private String vehicleDoorStatus;//'open',车门状态  open-开门,close-关门
    private String stockStatus;//'rear',车头车尾状态  Â front#车头,rear#车尾
    private EventImageInfoRequest BackgroundImage;//月台背景大图
    private EventImageInfoRequest PlatePicture;//车牌图
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class EventPlatformDataRequest {
    private List<EventPlatformStatusInfoRequest> HPWorkingStatus;//
    private EventPlatformAttrInfoRequest targetAttrs;//
   private Integer activePostCount;//1,
   private Integer channelID;//1,
   private String dataProcInterval;// 3private String ,
   private String dataType;// HPWorkingStatusprivate String ,
   private String dateTime;// 2021-07-16T18:57:22.000+08:00private String ,
   private String deviceID;// 88private String ,
   private String eventDescription;// handingPlatform working statusprivate String ,
   private String eventState;// activeprivate String ,
   private String eventType;// HPWorkingStatusprivate String ,
   private String ipAddress;// 10.18.99.179private String ,
   private String macAddress;// 58:50:ed:6d:f2:73private String ,
   private String picUploadInterval;// 0private String ,
   private String portNo;//8000,
   private String recvTime;// 2021-07-16T18:56:18.645+08:00private String ,
   private String sendTime;// 2021-07-16T18:56:18.648+08:00private String ,
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformInfoRequest {
    private String  eventId;//    String    äº‹ä»¶å”¯ä¸€æ ‡è¯†    æ˜¯    64
    private String  srcIndex;//    String    äº‹ä»¶æºç¼–号,物理设备是资源编号    æ˜¯    64
    private String  dateTime;//
    private String  srcType;//    String    äº‹ä»¶æºç±»åž‹    æ˜¯    16
    private Integer  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  srcName;//    String    äº‹ä»¶æºåç§°    å¦    64
    private Integer   status    ;//Number    äº‹ä»¶çŠ¶æ€    æ˜¯        0-瞬时1-开始2-停止3-事件脉冲4-事件联动结果更新5-异步图片上传
    private Integer  timeout    ;//Number    è„‰å†²è¶…æ—¶æ—¶é—´    æ˜¯        å•位:秒
    private String  happenTime    ;//String    äº‹ä»¶å‘生时间(设备时间)    æ˜¯    64
    private String   srcParentIndex    ;//String    äº‹ä»¶å‘生的事件源父设备编号    å¦    64
    private EventPlatformDataRequest data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformParamRequest {
    private String   sendTime;//    P    String    äº‹ä»¶ä»ŽæŽ¥æ”¶è€…(程序处理后)发出的时间    æ˜¯    32    äº‹ä»¶å‘送时间
    private String    ability;//    P    String    äº‹ä»¶ç±»åˆ«    æ˜¯    64    æ ‡è¯†åœè½¦åœºäº‹ä»¶
    private List<String>  uids;//
    private List<String>  clients;//
    private Integer  dataProcInterval;//
    private List<EventPlatformInfoRequest> events;//    P    Events[]    äº‹ä»¶ä¿¡æ¯    æ˜¯    ä¸é™
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java
ÎļþÃû´Ó server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java ÐÞ¸Ä
@@ -3,11 +3,11 @@
import lombok.Data;
@Data
public class EventPlatCarstatusRequest {
public class EventPlatformRequest {
//    private String  parkIndexCodes    ;//    string    False    åœè½¦åº“唯一标识集合  å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个
    private String   method    ;//    String    æ–¹æ³•名,用于标识报文用途    æ˜¯    16    äº‹ä»¶å›ºå®šOnEventNotify
    private EventParkParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
    private EventPlatformParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EventPlatformStatusInfoRequest {
   private Integer HPNo;// 1,车道车道号
   private Integer operationPeopleNum;// 0,人数统计
   private String operationStatus;//  no ,作业状态 loading-装货, unloading-卸货
   private String parkingSpaceStatus;// è½¦ä½çŠ¶æ€ no无车 norma正常有车
   private String plateNo;// ,车牌号
   private Integer rate;// 0,装载率
   private String vehicleDoorStatus;// open,车门状态  open-开门,close-关门
   private BigDecimal plateScore;// 90车牌评分
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -9,6 +9,7 @@
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.utils.Constants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -878,6 +879,24 @@
        return  null;
    }
    /**
     *1.9.1根据微信公众号信息获取AccessToken(分页)
     * @return
     */
    public  static  BaseResponse<String>   wxAccessToken(String configId,String tagId){
        log.info("【海康根据微信公众号信息获取AccessToken】================开始====configId:"+configId+" && tagId:"+tagId);
        try {
            String res = HKTools.wxAccessToken(configId,tagId);
            TypeReference typeReference =
                    new TypeReference<BaseResponse<String>>(){};
            BaseResponse<String>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康根据微信公众号信息获取AccessToken");
            return  result;
        }catch (Exception e){
            log.error("【海康根据微信公众号信息获取AccessToken】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *查询访客来访记录(已登记)(分页)
     * @return
     */
@@ -914,6 +933,28 @@
        return  null;
    }
    /**
     *获取工作台菜单免密登陆调整地址
     * @return
     */
    public  static  String   getMenuUrl(Integer type,String token){
        String menuId = HKConstants.MenuPageId.zhaf;
        if(Constants.equalsInteger(type,Constants.ONE)){
            menuId = HKConstants.MenuPageId.wyhq;
        }else  if(Constants.equalsInteger(type,Constants.TWO)){
            menuId = HKConstants.MenuPageId.xzbg;
        }else  if(Constants.equalsInteger(type,Constants.THREE)){
            menuId = HKConstants.MenuPageId.yyzx;
        }
        log.info("【海康获取工作台菜单免密登陆调整地址】================开始====menuId:"+menuId+"==token:"+token);
        try {
            String res = HKTools.getMenuUrl(menuId,token);
            return  res;
        }catch (Exception e){
            log.error("【海康获取工作台菜单免密登陆调整地址】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *增量组织查询(分页)
     * @return
     */
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.wms.model.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("WMS出入库作业单绑定月台信息参数")
public class WmsOrderPlatformInfoRequest extends WmsBaseRequest {
    @ApiModelProperty(value = "通知单号" ,example = "1")
    private String carrierBillCode;
    @ApiModelProperty(value = "月台编号" ,example = "1")
    private String railwayNo;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/request/WmsOrderPlatformRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.wms.model.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("WMS出入库作业单绑定月台信息对象")
public class WmsOrderPlatformRequest extends WmsBaseRequest {
    @ApiModelProperty(value = "单号数据对象" )
    private List<WmsOrderPlatformInfoRequest> data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsBaseResponse.java
@@ -14,8 +14,8 @@
 */
@Data
@ApiModel("WMS接口处理返回参数")
public class WmsBaseResponse {
    @ApiModelProperty(value = "返回参数" ,example = "1")
    private List<WmsBaseDataResponse> data;
public class WmsBaseResponse<T> {
    public static final String CODE_SUCCESS = "1";
    @ApiModelProperty(value = "返回参数"  )
    private List<T> data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryDataResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.doumee.core.wms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("WMS接口处理返回data参数")
public class WmsInventoryDataResponse {
    @ApiModelProperty(value = "是否接收成功 1成功 -1 å¤±è´¥" ,example = "1")
    private String success;
    @ApiModelProperty(value = "消息描述" ,example = "1")
    private String msgDescr;
    @ApiModelProperty(value = "消息描述" ,example = "1")
    private List<WmsInventoryJsonResponse> json;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wms/model/response/WmsInventoryJsonResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.doumee.core.wms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("WMS接口处理返回data参数")
public class WmsInventoryJsonResponse {
    @ApiModelProperty(value = "是否接收成功 1成功 -1 å¤±è´¥" ,example = "1")
    private String item_code;
    @ApiModelProperty(value = "消息描述" ,example = "1")
    private String item_name;
    @ApiModelProperty(value = "内容详情集合" ,example = "1")
    private BigDecimal qty;
    @ApiModelProperty(value = "内容详情集合" ,example = "1")
    private String  supplier_code;
    @ApiModelProperty(value = "g" ,example = "1")
    private String  supplier_name;
    @ApiModelProperty(value = "owner_code" ,example = "1")
    private String  owner_code;
    @ApiModelProperty(value = "owner_name" ,example = "1")
    private String  owner_name;
    @ApiModelProperty(value = "package_type" ,example = "1")
    private String  package_type;
    @ApiModelProperty(value = "package_name" ,example = "1")
    private String  package_name;
    @ApiModelProperty(value = "itemType_code" ,example = "1")
    private String  itemType_code;
    @ApiModelProperty(value = "ItemStatus_Production" ,example = "1")
    private String  ItemStatus_Production;
    @ApiModelProperty(value = "itemType_name" ,example = "1")
    private String  itemType_name;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
package com.doumee.dao.admin.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/2/26 11:02
 */
@Data
@ApiModel("PC端工作台数据")
public class PCWorkPlatformDataVO {
    @ApiModelProperty(value = "今日在园人数")
    private Long todayInParkUserNum;
    @ApiModelProperty(value = "今日入园人数")
    private Long todayInUserNum;
    @ApiModelProperty(value = "今日离园人数")
    private Long todayOutUserNum;
    @ApiModelProperty(value = "在园访客人数")
    private Long inParkVisitUserNum;
    @ApiModelProperty(value = "访客人次")
    private Long visitUserNum;
    @ApiModelProperty(value = "签离人次")
    private Long signLevelNum;
    @ApiModelProperty(value = "在园长期相关方人数")
    private Long inParkLwUserNum;
    @ApiModelProperty(value = "入园人次")
    private Long lwUserInNum;
    @ApiModelProperty(value = "出园人次")
    private Long lwUserOutNum;
    @ApiModelProperty(value = "今日在园车辆")
    private Long todayInParkCarNum;
    @ApiModelProperty(value = "入园车次")
    private Long todayInCarNum;
    @ApiModelProperty(value = "出园车次")
    private Long todayOutCarNum;
    @ApiModelProperty(value = "访客人员")
    private Long visitorCount;
    @ApiModelProperty(value = "劳务人员")
    private Long lwCount;
    @ApiModelProperty(value = "在场车辆")
    private Long presenceCarCount;
    @ApiModelProperty(value = "预约车辆")
    private Long visitorCarCount;
    @ApiModelProperty(value = "长期车辆")
    private Long longCarCount;
    @ApiModelProperty(value = "供应商数量")
    private Long supplierCount;
    @ApiModelProperty(value = "劳务公司人员数")
    private List<Map<String,Object>> companyUsers;
    @ApiModelProperty(value = "滞留人员数据")
    private List<Map<String,Object>> retentionUsers;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.PlatformEvent;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
public interface PlatformEventMapper extends BaseMapper<PlatformEvent> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -69,7 +69,6 @@
    @ApiModelProperty(value = "预计到场时间")
    @ExcelColumn(name="预计到场时间")
    private Date arriveDate;
    @ApiModelProperty(value = "入库类型 0整托盘 1件烟", example = "1")
@@ -140,6 +139,19 @@
    @TableField(exist = false)
    private String prefixUrl;
    @ApiModelProperty(value = "预计到场开始时间")
    @TableField(exist = false)
    private Date arriveDateStart;
    @ApiModelProperty(value = "预计到场结束时间")
    @TableField(exist = false)
    private Date arriveDateEnd;
    @ApiModelProperty(value = "审批人名称")
    @TableField(exist = false)
    private String auditName;
    @ApiModelProperty(value = "审批信息数据")
    @TableField(exist = false)
    private ApproveDataVO approveDateVO;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
@Data
@ApiModel("月台车辆进出事件推送记录表")
@TableName("`platform_event`")
public class PlatformEvent {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "事件唯一标识,同一事件若上报多次,则上报事件的eventId相同")
    @ExcelColumn(name="事件唯一标识,同一事件若上报多次,则上报事件的eventId相同")
    private String eventId;
    @ApiModelProperty(value = "事件类型")
    @ExcelColumn(name="事件类型")
    private String eventType;
    @ApiModelProperty(value = "事件类型(data级)")
    @ExcelColumn(name="事件类型(data级)")
    private String dataEventType;
    @ApiModelProperty(value = "事件源类型,如“acsDevice”")
    @ExcelColumn(name="事件源类型,如“acsDevice”")
    private String srcType;
    @ApiModelProperty(value = "事件发生时间(设备时间")
    @ExcelColumn(name="事件发生时间(设备时间")
    private String happenTime;
    @ApiModelProperty(value = "门禁点唯一接入编码")
    @ExcelColumn(name="门禁点唯一接入编码")
    private String srcIndex;
    @ApiModelProperty(value = "门禁名称")
    @ExcelColumn(name="门禁名称")
    private String srcName;
    @ApiModelProperty(value = "事件状态,0-瞬时             1-开始             2-停止             4-事件联动结果更新             5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时             1-开始             2-停止             4-事件联动结果更新             5-事件图片异步上传")
    private Integer status;
    @ApiModelProperty(value = "脉冲超时时间,单位:秒,瞬时事件此字段填0", example = "1")
    @ExcelColumn(name="脉冲超时时间,单位:秒,瞬时事件此字段填0")
    private Integer timeout;
    @ApiModelProperty(value = "数据类型", example = "1")
    @ExcelColumn(name="数据类型")
    private String dataType;
    @ApiModelProperty(value = "发送时间", example = "1")
    @ExcelColumn(name="发送时间")
    private String sendTime;
    @ApiModelProperty(value = "事件发生日期", example = "1")
    @ExcelColumn(name="事件发生日期")
    private String dateTime;
    @ApiModelProperty(value = "ip地址")
    @ExcelColumn(name="ip地址")
    private String ipAddress;
    @ApiModelProperty(value = "ipv6地址", example = "1")
    @ExcelColumn(name="ipv6地址")
    private String ipv6Address;
    @ApiModelProperty(value = "端口", example = "1")
    @ExcelColumn(name="端口")
    private Integer portNo;
    @ApiModelProperty(value = "协议", example = "1")
    @ExcelColumn(name="协议")
    private String protocol;
    @ApiModelProperty(value = "mac地址")
    @ExcelColumn(name="mac地址")
    private String macAddress;
    @ApiModelProperty(value = "渠道编号", example = "1")
    @ExcelColumn(name="渠道编号")
    private Integer channelId;
    @ApiModelProperty(value = "活动发送次数", example = "1")
    @ExcelColumn(name="活动发送次数")
    private Integer activePostCount;
    @ApiModelProperty(value = "事件状态", example = "1")
    @ExcelColumn(name="事件状态")
    private String eventState;
    @ApiModelProperty(value = "事件描述")
    @ExcelColumn(name="事件描述")
    private String eventDescription;
    @ApiModelProperty(value = "渠道名称", example = "1")
    @ExcelColumn(name="渠道名称")
    private String channelName;
    @ApiModelProperty(value = "设备编码", example = "1")
    @ExcelColumn(name="设备编码")
    private String deviceId;
    @ApiModelProperty(value = "车道号")
    @ExcelColumn(name="车道号")
    private String hpno;
    @ApiModelProperty(value = "运动状态  enter#进入,leave#离开")
    @ExcelColumn(name="运动状态  enter#进入,leave#离开")
    private String motionStatus;
    @ApiModelProperty(value = "车牌号", example = "1")
    @ExcelColumn(name="车牌号")
    private String plateNo;
    @ApiModelProperty(value = "车门状态  open-开门,close-关门", example = "1")
    @ExcelColumn(name="车门状态  open-开门,close-关门")
    private String vehicleDoorStatus;
    @ApiModelProperty(value = "车头车尾状态  Â front#车头,rear#车尾", example = "1")
    @ExcelColumn(name="车头车尾状态  Â front#车头,rear#车尾")
    private String stockStatus;
    @ApiModelProperty(value = "车牌评分[0-100]", example = "1")
    @ExcelColumn(name="车牌评分[0-100]")
    private Integer plateScore;
    @ApiModelProperty(value = "月台背景大图", example = "1")
    @ExcelColumn(name="月台背景大图")
    private String backgroundImageContent;
    @ApiModelProperty(value = "车牌图", example = "1")
    @ExcelColumn(name="车牌图")
    private String platePictureContent;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -59,8 +59,8 @@
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·", example = "1")
    @ExcelColumn(name="状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·")
    @ApiModelProperty(value = "状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·  12取消(WMS)" , example = "1")
    @ExcelColumn(name="状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·  12取消(WMS)")
    private Integer status;
    @ApiModelProperty(value = "排序码", example = "1")
@@ -98,6 +98,21 @@
    @ApiModelProperty(value = "签到方式 0app签到 1扫码签到", example = "1")
    @ExcelColumn(name="签到方式 0app签到 1扫码签到")
    private Integer singType;
    @ApiModelProperty(value = "通知WMS作业绑定月台时间")
    @ExcelColumn(name="通知WMS作业绑定月台时间")
    private Date wmsSendDate;
    @ApiModelProperty(value = "通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败")
    private Integer wmsSendStatus;
    @ApiModelProperty(value = "通知WMS作业绑定月台編碼", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台編碼")
    private String wmsSendPlatformCode;
    @ApiModelProperty(value = "通知WMS作业绑定月台备注", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台备注")
    private String wmsSendInfo;
    @ApiModelProperty(value = "通知WMS作业绑定月台次数", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台次数")
    private Integer wmsSendNum;
    @ApiModelProperty(value = "签到距离(米)", example = "1")
    @ExcelColumn(name="签到距离(米)")
@@ -191,12 +206,17 @@
    @ApiModelProperty(value = "车辆离厂下发时间")
    @ExcelColumn(name="车辆离厂下发时间")
    private Date outHkdate;
    @ApiModelProperty(value = "车辆离厂下发备注")
    @ExcelColumn(name="车辆离厂下发备注")
    private String outHkinfo;
    @ApiModelProperty(value = "离场下发操作人", example = "1")
    @ExcelColumn(name="离场下发操作人")
    private Integer outUserId;
    @ApiModelProperty(value = "车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1")
    @ExcelColumn(name="车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败")
@@ -262,6 +282,11 @@
    @ExcelColumn(name="总运输量")
    private BigDecimal totalNum;
    @ApiModelProperty(value = "确认任务时间")
    @ExcelColumn(name="确认任务时间")
    private Date confirmTaskDate;
    @ApiModelProperty(value = "前方排队数量", example = "1")
    @TableField(exist = false)
    private Integer lineUpNum;
@@ -277,6 +302,11 @@
    @ApiModelProperty(value = "作业月台名称")
    @TableField(exist = false)
    private String platformName ;
    @ApiModelProperty(value = "离场下发操作人名称", example = "1")
    @TableField(exist = false)
    private String outUserName;
    @ApiModelProperty(value = "wms业务主键")
    @TableField(exist = false)
@@ -313,11 +343,34 @@
    @ApiModelProperty(value = "收货地(目的地)")
    @TableField(exist = false)
    private String repertotyAddress;
    @ApiModelProperty(value = "wms月台编号")
    @TableField(exist = false)
    private String platformWmsCode;
    @ApiModelProperty(value = "叫号类型:1=叫号入园 ï¼› 2=月台叫号 ï¼› 3=排队情况", example = "1")
    @TableField(exist = false)
    private Integer callType;
    @ApiModelProperty(value = "作业类型 0=安泰物流车任务;1=市公司车", example = "1")
    @TableField(exist = false)
    private Integer jobType;
    @ApiModelProperty(value = "开始任务时间起")
    @TableField(exist = false)
    private Date beginWorkDateStart;
    @ApiModelProperty(value = "开始任务时间止")
    @TableField(exist = false)
    private Date beginWorkDateEnd;
    @ApiModelProperty(value = "多状态查询 å¤šä¸ªä»¥,分割")
    @TableField(exist = false)
    private String queryStatus;
    @ApiModelProperty(value = "电子锁状态:0=未上锁 1=不分上锁 2=全部上锁")
    @TableField(exist = false)
    private Integer  lockStatus;
    public void dealTime(){
        if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
                || Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -50,14 +50,20 @@
    @ApiModelProperty(value = "0未完成 1已完成 2已取消", example = "1")
    @ExcelColumn(name="状态 0未完成 1已完成 2已取消")
    private Integer status;
    @ApiModelProperty(value = "上锁状态 0未上锁 1已上锁", example = "1")
    @ExcelColumn(name="上锁状态 0未上锁 1已上锁")
    private Integer lockStatus;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "行数据编码(关联platform_wms_job)", example = "1")
    @ApiModelProperty(value = "行数据编码(关联platform_job)", example = "1")
    @ExcelColumn(name="行数据编码(关联platform_wms_job)")
    private Integer jobId;
    @ApiModelProperty(value = "行数据编码(关联platform_wms_job)", example = "1")
    @ExcelColumn(name="行数据编码(关联platform_wms_job)")
    private Integer wmsJobId;
    @ApiModelProperty(value = "通知单号")
    @ExcelColumn(name="通知单号")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.dao.openapi.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("海康大屏BaseToken")
public class HkBaseTokenRequest {
    @ApiModelProperty(value = "token")
    private String token;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java
@@ -11,7 +11,7 @@
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】月台当前作业信息列表请求参数")
@ApiModel("【月台】月台当前作业信息详情请求参数")
public class PlatformDataInfoRequest {
    @ApiModelProperty(value = "安防平台月台主键", example = "1")
    private String id;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java
@@ -13,7 +13,7 @@
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】按天统计运单请求参数")
@ApiModel("【月台】月台各状态数量统计请求参数")
public class PlatformNumByStatusRequest {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
@@ -18,8 +18,10 @@
 */
@Data
@ApiModel("本月、上月、去年同月用水量请求参数")
public class WaterByMonthRequest {
public class WaterByMonthRequest extends HkBaseTokenRequest{
    @ApiModelProperty(value = "年月信息,格式:yyyy-MM",example = "2024-08")
    @JsonFormat(pattern = "yyyy-MM")
    private Date timeInfo;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.doumee.dao.openapi.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】近12个月信息列表")
public class PlatformLastMonthListResponse {
    @ApiModelProperty(value = "时间 æ ¼å¼ï¼šyyyy-MM", example = "2024-12")
    private String timeInfo;
    @ApiModelProperty(value = "用量", example = "1")
    private BigDecimal num;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
@@ -11,7 +11,7 @@
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】按状态统计月台数量")
@ApiModel("【月台】月台各状态数量统计返回参数")
public class PlatformNumByStatusResponse {
    @ApiModelProperty(value = "使用中数量", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.dao.web.response;
import com.doumee.dao.business.model.PlatformJob;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("月台任务数据")
public class PlatformGroupWorkVO {
    @ApiModelProperty(value = "等待数量")
    private Long waitNum ;
    @ApiModelProperty(value = "异常数量")
    private Long exceptionNum ;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
@@ -21,9 +21,14 @@
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    @ApiModelProperty(value = "审批状态")
    @ApiModelProperty(value = "审核状态 0待审核 1审批中  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7拜访中 8已签离")
    private Integer status;
    @ApiModelProperty(value = "业务审核状态 0待审核 1审批中  2审核通过 3审核不通过 4取消 ", example = "1")
    @ExcelColumn(name="审核状态 0待审核 1审批中  2审核通过 3审核不通过 4取消 ")
    private Integer businessStatus;
    @ApiModelProperty(value = "被访人名称")
    private String visitUserName;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
@@ -117,4 +117,13 @@
    ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId);
    void approved(ApproveDTO approveDTO);
    /**
     * æ ¹æ®ä¸šåŠ¡ä¸»é”®æŸ¥è¯¢ å®¡æ‰¹äººåç§°
     * @param businessId
     * @param businessType
     * @return
     */
    String getApproveUserName(Integer businessId,Integer businessType);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformEvent;
import java.util.List;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
public interface PlatformEventService {
    /**
     * åˆ›å»º
     *
     * @param platformEvent å®žä½“对象
     * @return Integer
     */
    Integer create(PlatformEvent platformEvent);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param platformEvent å®žä½“对象
     */
    void delete(PlatformEvent platformEvent);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param platformEvent å®žä½“对象
     */
    void updateById(PlatformEvent platformEvent);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param platformEvents å®žä½“集
     */
    void updateByIdInBatch(List<PlatformEvent> platformEvents);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return PlatformEvent
     */
    PlatformEvent findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param platformEvent å®žä½“对象
     * @return PlatformEvent
     */
    PlatformEvent findOne(PlatformEvent platformEvent);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param platformEvent å®žä½“对象
     * @return List<PlatformEvent>
     */
    List<PlatformEvent> findList(PlatformEvent platformEvent);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<PlatformEvent>
     */
    PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param platformEvent å®žä½“对象
     * @return long
     */
    long count(PlatformEvent platformEvent);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
@@ -5,6 +5,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformGroup;
import com.doumee.dao.web.reqeust.PlatformDataDTO;
import com.doumee.dao.web.response.PlatformGroupWorkVO;
import com.doumee.dao.web.response.PlatformWorkVO;
import java.util.List;
@@ -110,6 +111,11 @@
    List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo);
    /**
     * èŽ·å–æœˆå°ç»„ ç­‰å¾…与异常数据
     * @param platformGroupId
     * @return
     */
    PlatformGroupWorkVO getPlatformGroupWork(Integer platformGroupId);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -36,6 +36,7 @@
     */
    void deleteById(Integer id);
    void delete(Integer id);
    /**
     * åˆ é™¤
     *
@@ -181,6 +182,11 @@
    void finishWork(JobOperateDTO jobOperateDTO);
    /**
     * æ‰‹åŠ¨æŽˆæƒè½¦è¾†ç¦»åœº
     * @param jobOperateDTO
     */
    void powerLevel(JobOperateDTO jobOperateDTO);
    /**
     * èŽ·å–æœˆå°ä¸‹çš„ä»»åŠ¡ä¿¡æ¯
     * @param groupId
     * @param loginUserInfo
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java
@@ -1,12 +1,10 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformJob;
import java.util.List;
@@ -18,6 +16,13 @@
public interface WmsService {
    /**
     * å‡ºå…¥åº“作业分配月台
     * @return WmsBaseResponse
     */
    WmsBaseResponse orderPlatformBind(PlatformJob job);
    WmsBaseResponse getInventoryList();
    void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type);
    /**
     * å…¥åº“单批量通知
     * @param list å‚æ•°
     * @return WmsBaseResponse
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -2,9 +2,7 @@
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
@@ -90,13 +88,13 @@
    void syncMemberDelData();
    String getServiceUrl(HKGetServiceLoginUrlRequest param);
    void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response);
    void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response);
    String syncHkLed(Device param);
    String syncHkBroadcast(Device param);
    String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response);
    String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response);
    String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -478,7 +478,7 @@
            List<String> memberNameList =memberList.stream().map(m->m.getName()).collect(Collectors.toList());
            String memberNames = String.join(",",memberNameList);
            Integer noticeType = Constants.approveTypeToNoticeType(approveTempl.getType());
            String title = "【访客申请】申请人 - ";
            String title = "[访客申请]申请人-";
            Map<String,Object> jsonMap = new HashMap<>();
            for (int j = 0; j < memberList.size(); j++) {
                Member member = memberList.get(j);
@@ -540,8 +540,8 @@
                approve.setTemplatId(approveTempl.getId());
                approve.setChekorId(memberId);
                approve.setStatus(i==0?Constants.ONE:Constants.ZERO);
                approve.setStatusInfo(i==0?"审批中":"待审批");
                approve.setTitle("审批人");
                approve.setStatusInfo(i==0?"审批中":"处理中");
                approve.setTitle(StringUtils.isBlank(approveParam.getRemark())?"审批中":approveParam.getRemark());
                approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO);
                approve.setObjId(businessId);
                approve.setLevel(i+1);
@@ -577,7 +577,7 @@
            if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)){
                title = title + visits.getName();
            }else{
                title = "【访客报备】申请人 - " + visits.getName();
                title = "[访客报备]申请人-" + visits.getName();
            }
            jsonMap.put("name", "访问人:" + visits.getCompanyName() + " - " + visits.getReceptMemberName());
            jsonMap.put("sTime", "入园时间:" + DateUtil.DateToStr(visits.getStarttime() , "yyyy-MM-dd HH:mm"));
@@ -598,7 +598,7 @@
            if(Objects.isNull(carUseBook)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到业务数据信息");
            }
            title = "【用车申请】申请人 - " + carUseBook.getMemberName();
            title = "[用车申请]申请人-" + carUseBook.getMemberName();
            jsonMap.put("name", "申请人:" + carUseBook.getCompanyName() + " - " + carUseBook.getMemberName());
            jsonMap.put("sTime", "开始时间:" + DateUtil.DateToStr(carUseBook.getStartTime() , "yyyy-MM-dd HH:mm"));
            jsonMap.put("eTime", "结束时间:" + DateUtil.DateToStr(carUseBook.getEndTime() , "yyyy-MM-dd HH:mm"));
@@ -610,7 +610,7 @@
            if(Objects.isNull(platformBooks)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到业务数据信息");
            }
            title = "【物流车入园预约】申请人 - " + platformBooks.getDriverName();
            title = "[物流车入园预约]申请人-" + platformBooks.getDriverName();
            jsonMap.put("inType", "入库类型:"+(Constants.equalsInteger(platformBooks.getInType(),Constants.ZERO)?"整托盘":"件烟"));
            jsonMap.put("totalNum", "总运输量:"+platformBooks.getTotalNum()+"万支");
            jsonMap.put("arriveDate", "到场时间:" + DateUtil.DateToStr(platformBooks.getArriveDate() , "yyyy-MM-dd HH:mm"));
@@ -802,7 +802,7 @@
    private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) {
        List<Approve> list = new ArrayList<>();
        if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){
            level.setApproveType(Constants.ZERO);
            level.setApproveType(Constants.TWO);
            //如果是单人审批
            list.add(level);
            return list;
@@ -829,11 +829,17 @@
                waitModel.setType(Constants.ZERO);
                waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"审批人"));
                waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO);
                waitModel.setStatusInfo("处理中");
                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
                    waitModel.setMemberName(waitList.size() +"人会签");
                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
                    waitModel.setStatusInfo("待处理");
                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.auditIng)){
                    waitModel.setStatusInfo("处理中");
                }
                waitModel.setMemberName(waitList.size() +"人会签");
//                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
//                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
//                    waitModel.setMemberName(waitList.size() +"人会签");
//                }
                if(CollectionUtils.isNotEmpty(waitList)){
                    waitModel.setCreateDate(waitList.get(Constants.ZERO).getCreateDate());
                }
@@ -848,15 +854,17 @@
        }else {
            if((waitList.size()> 0 || otherPassList.size()>0)){
                Approve waitModel = new Approve();
                waitModel.setApproveType(Constants.ONE);
                waitModel.setApproveType(Constants.ZERO);
                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
                    waitModel.setStatus(Constants.approveStatus.pass);
                    waitModel.setStatus(level.getStatus());
                    waitModel.setType(Constants.ONE);
                    waitModel.setTitle("审批人(抄送或签审批人)");
                }else{
                    waitModel.setStatus(level.getStatus());
                    waitModel.setType(Constants.ZERO);
                    waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                    waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
                    //waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                    waitModel.setTitle(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人");
                }
                List<Approve> approveList = new ArrayList<>();
                approveList.addAll(waitList);
@@ -870,7 +878,11 @@
                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.pass)){
                    waitModel.setMemberName("已抄送"+ approveList.size() +"人");
                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
                    waitModel.setMemberName("处理中");
                    waitModel.setMemberName(waitList.size() +"人或签");
                    waitModel.setStatusInfo("待处理");
                }else{
                    waitModel.setMemberName(waitList.size() +"人或签");
                    waitModel.setStatusInfo("处理中");
                }
                waitModel.setApproveList(approveList);
                list.add(waitModel);
@@ -1050,6 +1062,23 @@
        return Constants.ZERO;
    }
    @Override
    public String getApproveUserName(Integer businessId,Integer businessType){
         List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class,new MPJLambdaWrapper<Approve>()
                 .selectAll(Approve.class)
                 .selectAs(Member::getName,Approve::getMemberName)
                 .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                .eq(Approve::getObjId,businessId)
                .eq(Approve::getObjType,businessType)
                .eq(Approve::getType,Constants.ZERO)
                .eq(Approve::getStatus,Constants.approveStatus.auditIng)
        );
         if(CollectionUtils.isNotEmpty(approveList)){
             List<String> names = approveList.stream().map(m->m.getMemberName()).collect(Collectors.toList());
             return String.join(",",names);
         }
         return null;
    }
@@ -1146,7 +1175,7 @@
            noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                    .set(Notices::getEditDate,new Date())
                    .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                    .set(Notices::getInfo,"审批未通过")
                    .set(Notices::getInfo,"已拒绝")
                    .set(Notices::getReaded,Constants.ONE)
                    .set(Notices::getParam2,Constants.TWO)
                    .set(Notices::getStatus,Constants.ONE)
@@ -1159,7 +1188,7 @@
                        .set(Notices::getSendacopy,Constants.ONE)
                        .set(Notices::getStatus,Constants.ONE)
                        .set(Notices::getParam2,Constants.TWO)
                        .set(Notices::getInfo,"审批未通过")
                        .set(Notices::getInfo,"已拒绝")
                        .eq(Notices::getObjId,notices.getObjId())
                        .eq(Notices::getObjType,notices.getObjType())
                        .eq(Notices::getReaded,Constants.ZERO)
@@ -1208,8 +1237,6 @@
                    if(Objects.nonNull(visits)){
                        if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                             visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                        }else{
                            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到业务数据对象!请刷新重试");
                        }
                    }
@@ -1271,6 +1298,7 @@
                .set(Notices::getEditDate,new Date())
                .set(Notices::getReaded,Constants.ONE)
                .set(Notices::getStatus,Constants.ONE)
                .set(Notices::getInfo,Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?"已通过":"已拒绝")
                .set(dealBusinessBean,Notices::getParam2,Constants.ONE)
                .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                .eq(Notices::getId,notices.getId())
@@ -1312,14 +1340,14 @@
        String info = "";
        List<String> memberNameList = Arrays.asList(memberNames.split(","));
        if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
            info = "待 "+memberNameList.get(0)+" å¤„理中";
            info = "待"+memberNameList.get(0)+"处理中";
        }else{
            info = "待 "+memberNameList.get(0)+" ç­‰"+memberNameList.size()+"人处理中";
            info = "待"+memberNameList.get(0)+"等"+memberNameList.size()+"人处理中";
        }
        //更新该业务数据的所有记录信息
        noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                        .set(!dealBusinessBean,Notices::getInfo,info)
                        .set(dealBusinessBean,Notices::getInfo,"审批通过")
                        .set(dealBusinessBean,Notices::getInfo,"已通过")
                        .set(Notices::getParam5,memberNames)
                        .eq(Notices::getObjId,notices.getObjId())
                        .eq(Notices::getObjType,notices.getObjType()));
@@ -1335,7 +1363,7 @@
                    copyNotices.setEditDate(new Date());
                    copyNotices.setParam2("2");
                    copyNotices.setParam3("");
                    copyNotices.setInfo("审批通过");
                    copyNotices.setInfo("已通过");
                    copyNotices.setUserId(copyApprove.getChekorId());
                    copyNotices.setStatus(Constants.ZERO);
                    copyNotices.setSendacopy(Constants.ONE);
@@ -1378,9 +1406,9 @@
            notices.setParam5(memberNames);
            notices.setRemark(nextDealApprove.getMemberName());
            if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
                notices.setInfo("待 "+memberNameList.get(0)+" å¤„理中");
                notices.setInfo("待"+memberNameList.get(0)+"处理中");
            }else{
                notices.setInfo("待 "+memberNameList.get(0)+" ç­‰"+memberNameList.size()+"人处理中");
                notices.setInfo("待"+memberNameList.get(0)+"等"+memberNameList.size()+"人处理中");
            }
            noticesJoinMapper.insert(newNotices);
        }
@@ -1400,6 +1428,7 @@
            visits.setEditDate(new Date());
            visits.setEditor(approveDTO.getLoginUserInfo().getMemberId());
            visitsMapper.updateById(visits);
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                Constants.approveObjectType.unCityUseCar)){
            this.updDriver(approveDTO,approve,true);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveTemplServiceImpl.java
@@ -27,6 +27,7 @@
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * å®¡æ‰¹æ¨¡ç‰ˆä¿¡æ¯è¡¨Service实现
@@ -99,7 +100,7 @@
                param.setType(Constants.formatIntegerNum(param.getType()));
                param.setAddrParam(Constants.formatIntegerNum(param.getAddrParam()));
                param.setDriverParam(Constants.formatIntegerNum(param.getDriverParam()));
                param.setApproveType(Constants.formatIntegerNum(param.getApproveType()));
                param.setApproveType(Objects.isNull(param.getApproveType())?Constants.TWO:param.getApproveType());
                level ++ ;
            }
            //先清除原来所有的就陪配置
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -91,11 +91,9 @@
    public List<Device> findIdAndNameList(Device param) {
        LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>(param);
        wrapper.select(Device::getId, Device::getName, Device::getDoorName,Device::getRegionPathName, Device::getRegionName);
        if(null != param.getType() && null != param.getIsdeleted() && null != param.getHkStatus()) {
            wrapper.eq(Device::getType,param.getType())
                   .eq(Device::getIsdeleted,param.getIsdeleted())
                   .eq(Device::getHkStatus,param.getHkStatus());
        }
        wrapper.eq(null != param.getType(),Device::getType,param.getType())
               .eq(null !=param.getIsdeleted(),Device::getIsdeleted,param.getIsdeleted())
               .eq(null != param.getHkStatus(),Device::getHkStatus,param.getHkStatus());
        return deviceMapper.selectList(wrapper);
    }
  
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -144,7 +144,7 @@
        createNotices.setSendacopy(Constants.ZERO);
        createNotices.setParam2("0");
        createNotices.setParam3(hiddenDanger.getLoginUserInfo().getMemberId().toString());
        createNotices.setInfo("待 "+member.getName()+" å¤„理");
        createNotices.setInfo("待"+member.getName()+"处理");
        noticesJoinMapper.insert(createNotices);
        //存储处理人的通知消息
@@ -163,7 +163,7 @@
        notices.setStatus(Constants.ZERO);
        notices.setSendacopy(Constants.ZERO);
        notices.setReaded(Constants.ZERO);
        notices.setInfo("待 "+member.getName()+" å¤„理");
        notices.setInfo("待"+member.getName()+"处理");
        noticesJoinMapper.insert(notices);
@@ -514,13 +514,13 @@
            newNotices.setCreateDate(new Date());
            newNotices.setParam2("0");
            newNotices.setUserId(hiddenDanger.getCheckUserId());
            newNotices.setInfo("待 "+member.getName()+" å¤„理");
            newNotices.setInfo("待"+member.getName()+"处理");
            noticesJoinMapper.insert(newNotices);
            notices.setStatus(Constants.ONE);
            notices.setParam2("3");
            notices.setEditDate(new Date());
            notices.setReaded(Constants.ONE);
            notices.setInfo("待 "+member.getName()+" å¤„理");
            notices.setInfo("待"+member.getName()+"处理");
            noticesJoinMapper.updateById(notices);
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
@@ -166,6 +166,6 @@
             days = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.HK_LOG_DEL_DAYS_LIMIT).getCode());
         }catch (Exception e){}
          interfaceLogMapper.delete(new UpdateWrapper<InterfaceLog>().lambda()
                  .apply("to_days(create_dat e)+"+days+" < to_days(now())") );
                  .apply("to_days(create_date)+"+days+" < to_days(now())") );
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -337,12 +337,14 @@
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份证号格式有误");
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()))
                .eq(Member::getIsdeleted,Constants.ZERO)) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNo()+"】已被使用,不能重复");
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .eq(Member::getPhone,  member.getPhone())
                .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
        }
@@ -392,6 +394,7 @@
            }
            if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                    .eq(Member::getPhone,member.getPhone())
                    .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                    .eq(Member::getIsdeleted,Constants.ZERO)
                    .ne(Member::getId,member.getId())) >0){
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
@@ -406,6 +409,7 @@
            if( !StringUtils.equals(model.getIdcardNo(),encrptNo) ){
                if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                        .eq(Member::getIdcardNo,encrptNo)
                        .in(Member::getType,new Integer[]{Constants.ZERO,Constants.TWO})
                        .eq(Member::getIsdeleted,Constants.ZERO)
                        .ne(Member::getId,member.getId())) >0){
                    throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNoNew()+"】已被使用,不能重复");
@@ -554,7 +558,7 @@
    public void deleteById(Integer id,LoginUserInfo loginUserInfo) {
        Member member=new Member();
        member.setId(id);
        member.setIsdeleted(Constants.ZERO);
        member.setIsdeleted(Constants.ONE);
        member.setEditor(loginUserInfo.getId());
        member.setEditDate(new Date());
        member.setHkStatus(Constants.ZERO);
@@ -781,7 +785,10 @@
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        Member member=new Member();
        for(Integer id : ids){
            deleteById(id,loginUserInfo);
        }
       /* Member member=new Member();
        ids.stream().forEach(s ->{
            member.setId(s);
            member.setIsdeleted(Constants.ONE);
@@ -791,7 +798,7 @@
            member.setEditDate(new Date());
            memberMapper.updateById(member);
            saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.DELETE,userActionJoinMapper,JSONObject.toJSONString(member));
        });
        });*/
    }
@@ -1339,7 +1346,7 @@
    public PageData<Member> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
        pageWrap.getModel().setIsdeleted(Constants.formatIntegerNum(pageWrap.getModel().getIsdeleted()));
        queryWrapper.selectAll(Member.class);
        queryWrapper.selectAs(Company::getName,Member::getCompanyName);
        queryWrapper.selectAs(SystemUser::getRealname,Member::getEditorName);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -18,6 +18,7 @@
import com.doumee.dao.business.join.ApproveJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.web.reqeust.ConfirmTaskDTO;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
@@ -51,6 +52,9 @@
    @Autowired
    private PlatformBooksMapper platformBooksMapper;
    @Autowired
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private ApproveTemplMapper approveTemplMapper;
@@ -159,10 +163,24 @@
                .eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
                .eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone())
                .ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate())
                .ge(pageWrap.getModel().getArriveDateStart() != null, PlatformBooks::getArriveDate, Utils.Date.getStart(pageWrap.getModel().getArriveDateStart()))
                .le(pageWrap.getModel().getArriveDateEnd() != null, PlatformBooks::getArriveDate, Utils.Date.getEnd(pageWrap.getModel().getArriveDateEnd()))
                .orderByDesc(PlatformBooks::getCreateDate)
        ;
        return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
        PageData<PlatformBooks> pageData = PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
        for (PlatformBooks platformBooks:pageData.getRecords()) {
            if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ONE)){
                String auditName = approveService.getApproveUserName(platformBooks.getId(),Constants.approveObjectType.reason);
                platformBooks.setAuditName(auditName);
            }
        }
        return pageData;
    }
    @Override
    public long count(PlatformBooks platformBooks) {
@@ -236,6 +254,7 @@
        platformBooks.setIsdeleted(Constants.ZERO);
        platformBooks.setStatus(Constants.ZERO);
        platformBooks.setDriverId(platformBooksApplyDTO.getUserId());
        platformBooks.setEditDate(new Date());
        platformBooksMapper.insert(platformBooks);
        //创建审批流信息
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,220 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformEventMapper;
import com.doumee.dao.business.model.PlatformEvent;
import com.doumee.service.business.PlatformEventService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
@Service
public class PlatformEventServiceImpl implements PlatformEventService {
    @Autowired
    private PlatformEventMapper platformEventMapper;
    @Override
    public Integer create(PlatformEvent platformEvent) {
        platformEventMapper.insert(platformEvent);
        return platformEvent.getId();
    }
    @Override
    public void deleteById(Integer id) {
        platformEventMapper.deleteById(id);
    }
    @Override
    public void delete(PlatformEvent platformEvent) {
        UpdateWrapper<PlatformEvent> deleteWrapper = new UpdateWrapper<>(platformEvent);
        platformEventMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        platformEventMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(PlatformEvent platformEvent) {
        platformEventMapper.updateById(platformEvent);
    }
    @Override
    public void updateByIdInBatch(List<PlatformEvent> platformEvents) {
        if (CollectionUtils.isEmpty(platformEvents)) {
            return;
        }
        for (PlatformEvent platformEvent: platformEvents) {
            this.updateById(platformEvent);
        }
    }
    @Override
    public PlatformEvent findById(Integer id) {
        return platformEventMapper.selectById(id);
    }
    @Override
    public PlatformEvent findOne(PlatformEvent platformEvent) {
        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
        return platformEventMapper.selectOne(wrapper);
    }
    @Override
    public List<PlatformEvent> findList(PlatformEvent platformEvent) {
        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
        return platformEventMapper.selectList(wrapper);
    }
    @Override
    public PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap) {
        IPage<PlatformEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<PlatformEvent> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(PlatformEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(PlatformEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(PlatformEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(PlatformEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getEventId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventId, pageWrap.getModel().getEventId());
        }
        if (pageWrap.getModel().getEventType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventType, pageWrap.getModel().getEventType());
        }
        if (pageWrap.getModel().getSrcType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcType, pageWrap.getModel().getSrcType());
        }
        if (pageWrap.getModel().getHappenTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getHappenTime, pageWrap.getModel().getHappenTime());
        }
        if (pageWrap.getModel().getSrcIndex() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
        }
        if (pageWrap.getModel().getSrcName() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcName, pageWrap.getModel().getSrcName());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getTimeout() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getTimeout, pageWrap.getModel().getTimeout());
        }
        if (pageWrap.getModel().getDataType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDataType, pageWrap.getModel().getDataType());
        }
        if (pageWrap.getModel().getSendTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSendTime, pageWrap.getModel().getSendTime());
        }
        if (pageWrap.getModel().getDateTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDateTime, pageWrap.getModel().getDateTime());
        }
        if (pageWrap.getModel().getIpAddress() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIpAddress, pageWrap.getModel().getIpAddress());
        }
        if (pageWrap.getModel().getIpv6Address() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIpv6Address, pageWrap.getModel().getIpv6Address());
        }
        if (pageWrap.getModel().getPortNo() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPortNo, pageWrap.getModel().getPortNo());
        }
        if (pageWrap.getModel().getProtocol() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getProtocol, pageWrap.getModel().getProtocol());
        }
        if (pageWrap.getModel().getMacAddress() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getMacAddress, pageWrap.getModel().getMacAddress());
        }
        if (pageWrap.getModel().getChannelId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getChannelId, pageWrap.getModel().getChannelId());
        }
        if (pageWrap.getModel().getActivePostCount() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getActivePostCount, pageWrap.getModel().getActivePostCount());
        }
        if (pageWrap.getModel().getEventState() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventState, pageWrap.getModel().getEventState());
        }
        if (pageWrap.getModel().getEventDescription() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventDescription, pageWrap.getModel().getEventDescription());
        }
        if (pageWrap.getModel().getChannelName() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getChannelName, pageWrap.getModel().getChannelName());
        }
        if (pageWrap.getModel().getDeviceId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDeviceId, pageWrap.getModel().getDeviceId());
        }
        if (pageWrap.getModel().getHpno() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getHpno, pageWrap.getModel().getHpno());
        }
        if (pageWrap.getModel().getMotionStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getMotionStatus, pageWrap.getModel().getMotionStatus());
        }
        if (pageWrap.getModel().getPlateNo() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlateNo, pageWrap.getModel().getPlateNo());
        }
        if (pageWrap.getModel().getVehicleDoorStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getVehicleDoorStatus, pageWrap.getModel().getVehicleDoorStatus());
        }
        if (pageWrap.getModel().getStockStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getStockStatus, pageWrap.getModel().getStockStatus());
        }
        if (pageWrap.getModel().getPlateScore() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlateScore, pageWrap.getModel().getPlateScore());
        }
        if (pageWrap.getModel().getBackgroundImageContent() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getBackgroundImageContent, pageWrap.getModel().getBackgroundImageContent());
        }
        if (pageWrap.getModel().getPlatePictureContent() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlatePictureContent, pageWrap.getModel().getPlatePictureContent());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(platformEventMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(PlatformEvent platformEvent) {
        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
        return platformEventMapper.selectCount(wrapper);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -17,6 +17,7 @@
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.PlatformShowParam;
import com.doumee.dao.web.reqeust.PlatformDataDTO;
import com.doumee.dao.web.response.PlatformGroupWorkVO;
import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.service.business.PlatformGroupService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -303,5 +304,28 @@
    @Override
    public PlatformGroupWorkVO getPlatformGroupWork(Integer platformGroupId){
        PlatformGroupWorkVO platformGroupWorkVO = new PlatformGroupWorkVO();
        platformGroupWorkVO.setExceptionNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
                .eq(PlatformJob::getPlatformGroupId,platformGroupId)
                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey())
            )
        );
        platformGroupWorkVO.setWaitNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
                        .eq(PlatformJob::getPlatformGroupId,platformGroupId)
                        .in(PlatformJob::getStatus,
                                Constants.PlatformJobStatus.WAIT_CALL.getKey(),
                                Constants.PlatformJobStatus.IN_WAIT.getKey(),
                                Constants.PlatformJobStatus.CALLED.getKey()
                        )
                )
        );
        return platformGroupWorkVO;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -17,6 +17,7 @@
import com.doumee.dao.business.model.*;
import com.doumee.dao.openapi.request.*;
import com.doumee.dao.openapi.response.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
@@ -94,6 +95,15 @@
        platformJobMapper.deleteById(id);
    }
    @Override
    public void delete(Integer id) {
        platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
                        .set(PlatformJob::getIsdeleted,Constants.ONE)
                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
                .eq(PlatformJob::getId,id));
    }
    @Override
    public void delete(PlatformJob platformJob) {
        UpdateWrapper<PlatformJob> deleteWrapper = new UpdateWrapper<>(platformJob);
@@ -150,8 +160,10 @@
                .selectAs(Platform::getName,PlatformJob::getPlatformName)
                .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
                .selectAs(SystemUser::getUsername,PlatformJob::getOutUserName)
                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
                .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getOutUserId)
                .eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId())
                .eq(pageWrap.getModel().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator())
                .ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -225,6 +237,12 @@
                .eq(pageWrap.getModel().getInType() != null, PlatformJob::getInType, pageWrap.getModel().getInType())
                .eq(pageWrap.getModel().getTotalNum() != null, PlatformJob::getTotalNum, pageWrap.getModel().getTotalNum())
                .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
                .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
                .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
                .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
                .eq(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
                .ne(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -275,7 +293,7 @@
                                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or()
                                .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_GROUP_ID = "+pageWrap.getModel().getPlatformGroupId()+" ) ")
                )
                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
//                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
                .orderByDesc(PlatformJob::getStatus)
        ;
        IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
@@ -946,6 +964,38 @@
    /**
     * æŽˆæƒç¦»å›­
     */
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void powerLevel(JobOperateDTO jobOperateDTO){
        if(Objects.isNull(jobOperateDTO)
                || Objects.isNull(jobOperateDTO.getJobId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
        if(Objects.isNull(platformJob)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转!");
        }
        PlatformJob oldPlatformJob = new PlatformJob();
        BeanUtils.copyProperties(platformJob,oldPlatformJob);
        platformJob.setOutUserId(jobOperateDTO.getLoginUserInfo().getId());
        platformJob.setOutHkdate(new Date());
        platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey());
        platformJob.setEditDate(new Date());
        platformJobMapper.updateById(platformJob);
        //存储操作日志
        savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob ,
                Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo());
        //TODO æŽˆæƒè½¦è¾†ç¦»åœºæƒé™
    }
    /**
     * æœˆå°ç›¸æœºæŽ¨é€ å¼€å§‹ä½œä¸š
     * @param jobOperateDTO
     */
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java
@@ -99,6 +99,7 @@
                .le(pageWrap.getModel().getEditDate() != null, PlatformWmsDetail::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
                .eq(pageWrap.getModel().getIsdeleted() != null, PlatformWmsDetail::getIsdeleted, pageWrap.getModel().getIsdeleted())
                .eq(pageWrap.getModel().getRemark() != null, PlatformWmsDetail::getRemark, pageWrap.getModel().getRemark())
                .eq(pageWrap.getModel().getWmsJobId() != null, PlatformWmsDetail::getWmsJobId, pageWrap.getModel().getWmsJobId())
                .eq(pageWrap.getModel().getJobId() != null, PlatformWmsDetail::getJobId, pageWrap.getModel().getJobId())
                .eq(pageWrap.getModel().getIocode() != null, PlatformWmsDetail::getIocode, pageWrap.getModel().getIocode())
                .eq(pageWrap.getModel().getMaterialName() != null, PlatformWmsDetail::getMaterialName, pageWrap.getModel().getMaterialName())
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -206,7 +206,8 @@
        getHkDeviceRoles(visits,isERP);
        //检验拜访人是否合法
        Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
        if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18
        if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())
                &&visits.getIdcardNo().length()!=18
        ){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,身份证号码有误,请核实后重试!");
        }
@@ -1260,6 +1261,15 @@
        VisitDetailVO visitDetailVO = new VisitDetailVO();
        visitDetailVO.setCreateTime(visits.getCreateDate());
        visitDetailVO.setStatus(visits.getStatus());
        if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfSuccess)
        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfFail)
        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.signin)
        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.signout)
        || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.invalid)){
            visitDetailVO.setBusinessStatus(Constants.VisitStatus.pass);
        }else{
            visitDetailVO.setBusinessStatus(visits.getStatus());
        }
        visitDetailVO.setCarNos(visits.getCarNos());
        visitDetailVO.setPhone(visits.getPhone());
        visitDetailVO.setVisitUserName(member.getName());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -6,9 +6,7 @@
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
@@ -55,12 +53,6 @@
    }
    @Override
    public  void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response){
    }
    @Override
    public  void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response){
    }
    @Override
//    @Async
    public String syncDoors(DoorsListRequest param){
        return null;
@@ -95,6 +87,15 @@
    public String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
        return  null;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
@@ -183,7 +183,7 @@
    private List<PlatformDevice> getCameraList(List<PlatformCameraInfoResponse> cameras, Platform model) {
        List<PlatformDevice> list = new ArrayList<>();
        if(cameras!=null || cameras.size()>0){
        if(cameras!=null && cameras.size()>0){
            for(PlatformCameraInfoResponse param :cameras){
                PlatformDevice d = new PlatformDevice();
                d.setCreateDate(model.getCreateDate());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -5,13 +5,17 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.config.DataSyncConfig;
import com.doumee.config.SpringContextUtil;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelBodyRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelHeadRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
import com.doumee.core.haikang.model.param.request.event.visit.*;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
@@ -29,6 +33,8 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yaml.snakeyaml.scanner.Constant;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
@@ -66,6 +72,18 @@
    private VisitsJoinMapper visitsMapper;
    @Autowired
    private RetentionMapper retentionMapper;
    @Autowired
    private PlatformMapper platformMapper;
    @Autowired
    private PlatformDeviceMapper platformDeviceMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private PlatformWmsDetailMapper platformWmsDetailMapper;
    @Autowired
    private PlatformEventMapper platformEventMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
    /**
     * æµ·åº·é—¨ç¦äº‹ä»¶æŽ¨é€
     * @param param
@@ -137,7 +155,7 @@
                        .eq(Device::getIsdeleted,Constants.ZERO)
                        .last("limit 1" ));
                delRetentionLis.add(member.getId());
                if(!(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
                if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
                    //如果是进门,录入人员的在场数据记录
                    retentionList.add(getRetentionModelByRequest(member,request));
                }
@@ -308,6 +326,7 @@
        return  null;
    }
    /**
     * æµ·åº·è®¿å®¢äº‹ä»¶æŽ¨é€
     * @param param
@@ -769,5 +788,286 @@
        interfaceLogMapper.insert(hkMonitoryLogDO);
    }
    /**
     * å¤„理月台工作状态事件订阅后推送数据逻辑逻辑
     * @param param
     * @param response
     * @return
     */
    @Override
    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
        log.info("【海康月台工作状态事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventPlatformInfoRequest> events  = param.getParams().getEvents();
            List<Platform> list = new ArrayList<>();
            for(EventPlatformInfoRequest request : events){
                EventPlatformDataRequest   data = request.getData();
                if(data ==null ){
                    continue;
                }
                Integer  workStatus = 0;
                    if( data.getHPWorkingStatus() ==null ||  data.getHPWorkingStatus().size() ==0){
                        continue;//如何推送状态集合为空,不处理跳过
                    }
                    PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
                            .eq(PlatformDevice::getDeviceId,request.getSrcIndex())
                            .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
                            .last("limit 1"));
                    if(model ==null){
                        continue;//监控点未同步,跳过处理
                    }
                    //各车道车辆状态
                    for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){
                    }
            }
            result = "成功";
            log.error("【海康月台工作状态事件推送】========成功=======");
        }catch (Exception e) {
            result = "失败"+e.getMessage();
            log.error("【海康月台工作状态事件推送】========失败=======:\n" + e.getMessage());
        }finally {
            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//不计日志
        }
        return  null;
    }
    /**
     * å¤„理月台车辆状态事件订阅后推送数据逻辑逻辑
     * @param param
     * @param response
     * @return
     */
    @Override
    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
        log.info("【海康月台车辆状态事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventPlatformCarsInfoRequest> events  = param.getParams().getEvents();
            List<PlatformEvent> eventList = new ArrayList<>();
            for(EventPlatformCarsInfoRequest request : events){
                if( request.getData() ==null ||  request.getData().size()==0){
                    continue;
                }
                Integer  workStatus = 0;
                for(EventPlatformCarsDataRequest data :  request.getData()){
                    if( data.getHPVehicleStatus() ==null ||  data.getHPVehicleStatus().size() ==0){
                        continue;//如何推送状态集合为空,不处理跳过
                    }
                    PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
                            .eq(PlatformDevice::getDeviceId,request.getSrcIndex())
                            .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
                            .last("limit 1"));
                    if(model ==null){
                        continue;//监控点未同步,跳过处理
                    }
                    //各车道车辆状态
                    for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){
                        eventList.add(initPlatformEventModel(request,data,status));//封装事件(已月台通道为维度)
                        if(StringUtils.isBlank(status.getPlateNo())){
                            continue;//如果车辆信息为空,不处理直接跳过
                        }
                        PlatformJob job = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
                                .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//前车牌号
                                .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//后车牌号
                                .eq(PlatformJob::getIsdeleted,Constants.ZERO )
                                .last("limit 1 "));
                        PlatformJob update = new PlatformJob();
                        update.setId(job.getId());
                        update.setEditDate(new Date());
                        if(StringUtils.equals(status.getMotionStatus(),"leave")){
                            //如果是车辆离开,不做相关自动完成作业业务处理
                         /*   if(job ==null && !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
                                continue;//如果没查到对应的作业或者作业并非作业中,不做业务处理
                            }
                            if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){
                                //如果是wms推送的外协车辆外协车辆
                               if(platformWmsDetailMapper.selectCount(new QueryWrapper<PlatformWmsDetail>().lambda()
                                       .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)
                                       .eq(PlatformWmsDetail::getJobId,job.getId())
                                       .ne(PlatformWmsDetail::getLockStatus,Constants.ONE)) >0){
                                   continue;//如果外协任务作业,合同号有未上锁的情况,不做自动完成作业逻辑处理,跳过不处理
                               }
                            }
                            //如果是正在作业的状态,标记作业已完成
                            update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//作业已完成
                            update.setDoneDate(update.getEditDate());*/
                        }else  if(StringUtils.equals(status.getMotionStatus(),"enter")){
                            //如果是车辆进入
                            if(job ==null || !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
                                //说明车辆进错月台 æˆ–者还未叫号状态,发起警告
                                dealCarsInErrorPlatformBiz(job,status);
                            }
                            if(job.getStartDate() == null){
                                update.setStartDate(update.getEditDate());
                            }
                            update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//开始作业
                        }else{
                            continue;//其他状态不处理,跳过
                        }
                        //暂时不做相关自动完成作业业务处理
//                        dealPlatformJobLogBiz(update,status);//记录作业日志
                    }
                    break;//只处理第一个数据状态
                }
            }
            if(eventList.size()>0){
                //生成事件
                platformEventMapper.insert(eventList);
            }
            result = "成功";
            log.error("【海康月台车辆状态事件推送】========成功=======");
        }catch (Exception e) {
            result = "失败"+e.getMessage();
            log.error("【海康月台车辆状态事件推送】========失败=======:\n" + e.getMessage());
        }finally {
            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//不计日志
        }
        return  null;
    }
    private PlatformEvent initPlatformEventModel(EventPlatformCarsInfoRequest request, EventPlatformCarsDataRequest data, EventPlatformCarsStatusInfoRequest status) {
        PlatformEvent model = new PlatformEvent();
        model.setCreateDate(new Date());
        model.setIsdeleted(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEventId(request.getEventId());
//        model.setRemark(JSONObject.toJSONString(request));
        model.setEventType(request.getEventType());
        model.setDataEventType(data.getEventType());
        model.setHappenTime(request.getHappenTime());
        model.setSrcIndex(request.getSrcIndex());
        model.setSrcType(request.getSrcType());
        model.setStatus(request.getStatus());
        model.setTimeout(request.getTimeout());
        model.setDateTime(data.getDateTime());
        model.setDataType(data.getDataType());
        model.setSendTime(data.getSendTime());
        model.setIpAddress(data.getIpAddress());
        model.setIpv6Address(data.getIpv6Address());
        model.setPortNo(data.getPortNo());
        model.setMacAddress(data.getMacAddress());
        model.setProtocol(data.getProtocol());
        model.setChannelId(data.getChannelID());
        model.setChannelName(data.getChannelName());
        model.setEventState(data.getEventState());
        model.setActivePostCount(data.getActivePostCount());
        model.setEventDescription(data.getEventDescription());
        model.setDeviceId(data.getDeviceID());
        model.setHpno(status.getHPNo());
        model.setMotionStatus(status.getMotionStatus());
        model.setPlateNo(status.getPlateNo());
        model.setVehicleDoorStatus(status.getVehicleDoorStatus());
        model.setStockStatus(status.getStockStatus());
        model.setBackgroundImageContent(status.getBackgroundImage()!=null?status.getBackgroundImage().getResourcesContent():null);
        model.setPlateScore(status.getPlateScore());
        model.setPlatePictureContent(status.getPlatePicture()!=null?status.getPlatePicture().getResourcesContent():null);
        return model;
    }
    /**
     * è®°å½•月台作业日志
     * @param job
     * @param status
     */
    @Transactional
    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
        platformJobMapper.updateById(job);//更新作业状态
        PlatformLog log = new PlatformLog();
        log.setIsdeleted(Constants.ZERO);
        log.setCreateDate(new Date());
        log.setEditDate(log.getCreateDate());
        log.setJobId(job.getId());
        log.setObjId(job.getId()+"");
        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
            //如果是作业完成
            log.setObjType(Constants.PlatformJobLogType.DONE.getKey());
            log.setTitle(Constants.PlatformJobLogType.DONE.getName());
            log.setContent(Constants.PlatformJobLogType.DONE.getInfo());
            //查询最后一次开始作业的日志
            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
                    .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
                    .eq(PlatformLog::getJobId,job.getId())
                    .orderByDesc(PlatformLog::getCreateDate)
                    .last(" limit 1"));
            String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
            lastBeginPlatform.setParam3(v);
            lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
            platformLogMapper.updateById(lastBeginPlatform);//更新上一次作业的完成时间和作业时长
        }else{
            //如果是作业中
            log.setObjType(Constants.PlatformJobLogType.WORKING.getKey());
            log.setTitle(Constants.PlatformJobLogType.WORKING.getName());
            log.setContent(Constants.PlatformJobLogType.WORKING.getInfo());
            log.setParam1(DateUtil.getDate(log.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
        }
        platformLogMapper.insert(log);
    }
    /**
     * å¤„理车辆进入错误月台业务逻辑
     * @param model (月台设备关联信息)
     * @param status
     */
    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
        //TODO-----------------处理车辆进入错误月台业务逻辑
        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
                .eq(PlatformDevice::getIsdeleted,Constants.ZERO));
        if(deviceList ==null || deviceList.size() == 0){
            return;
        }
        String content ="车辆"+model.getCarCodeFront()+"停错月台了";
        List<String> broadcastList = new ArrayList<>();
        for(PlatformDevice device : deviceList){
            if(StringUtils.isNotBlank(device.getHkId())){
                continue;
            }
            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是LED
                TransparentChannelBodyRequest request = new TransparentChannelBodyRequest();
                TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
                head.setAbility("cld");//固定值
                head.setTreatyType("haixuan_led_net");//固定值
                head.setDeviceIndexCode(device.getHkId());
                request.setMethod("ControlLedGereral");//固定值
                request.setIndexCode(device.getHkId());
                request.setActionType(0);
                request.setContent(content);
                request.setOperationType(219);//固定值
                request.setRegionNo(1);
                request.setRegionType(14);
                request.setFontColor(1);
                request.setCircleTimes(1);//循环次数
                request.setFontSize(16);//
                request.setStayTime(1);//单位??
                HKService.transparentchannel(head,request);
            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是广播点
                broadcastList.add(device.getHkId());
            }
        }
        if(broadcastList.size()>0){
            CustomBroadcastRequest request = new CustomBroadcastRequest();
            request.setAudioPointIndexCode(broadcastList);
            request.setPlayDuration(60);//单位秒
            request.setBroadCastMode("tts");
            request.setPriority(15);
            request.setState(1);//播放/停止标识 1-播放,0-停止
            request.setPlayTtsContent(content);
            HKService.customBroadcast(request);
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -682,9 +682,12 @@
            return  null;
        }
        if(StringUtils.isNotBlank(c.getFaceImg())){
            log.info("===================================="+path+c.getFaceImg()+"======start====");
            info.setVisitorPhoto(ImageBase64Util.Image2Base64(path+c.getFaceImg()));
            log.info("===================================="+path+c.getFaceImg()+"========end===");
        }
        if(info.getVisitorPhoto() == null){
            log.info("===================================="+path+c.getFaceImg()+"======imgerror=====");
            return  null;
        }
        if(StringUtils.isNotBlank(c.getName())){
@@ -696,7 +699,6 @@
                info.setVisitorName(c.getName());
            }
        }
        if(StringUtils.isNotBlank(c.getCompanyName())){
            char[] charArray = c.getCompanyName().toCharArray();
            int length = charArray.length;
@@ -716,7 +718,6 @@
            info.setCertificateType(HKConstants.CertificateType.HUZHAO.getKey()+"");
            info.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD,  c.getIdcardNo()));
        }
        return info;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -73,7 +73,9 @@
     */
    @Override
    public   void syncOrgData(LoginUserInfo user){
        if(Constants.DEALING_HK_ORG || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
        if(Constants.DEALING_HK_ORG ||
                !(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
                        || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self)){
            return   ;
        }
        Constants.DEALING_HK_ORG =true;
@@ -263,7 +265,9 @@
     */
    @Override
    public   void syncUserData(LoginUserInfo user){
        if(Constants.DEALING_HK_USER  || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
        if(Constants.DEALING_HK_USER  ||
                !(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
                || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self)){
            return   ;
        }
        Constants.DEALING_HK_USER =true;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
@@ -289,6 +289,7 @@
                c.setFaceId(model.getPersonPhoto().get(0).getPersonPhotoIndexCode());
                c.setFaceImg(HKConstants.IMG_INDEX+model.getPersonPhoto().get(0).getPicUri());
                c.setFaceServerIndexCode(model.getPersonPhoto().get(0).getServerIndexCode());
                c.setFaceStatus(Constants.ONE);
            }
            newList.add(c);
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
@@ -1,22 +1,26 @@
package com.doumee.service.business.impl.wms;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.core.wms.model.request.*;
import com.doumee.core.wms.model.response.WmsBaseDataResponse;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.WmsService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * WMS平台对接Service实现
@@ -24,6 +28,7 @@
 * @date 2023/11/30 15:33
 */
@Service
@Slf4j
public class WmsServiceImpl implements WmsService {
    @Autowired
    private PlatformWmsJobMapper platformWmsJobMapper;
@@ -35,7 +40,150 @@
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private PlatformWmsDetailMapper platformWmsDetailMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private WmsInterfaceLogMapper wmsInterfaceLogMapper;
    /**
     * å…¥åº“通知任务业务处理
     * @param job å‚æ•°
     * @return
     */
    @Override
    public  WmsBaseResponse<WmsBaseDataResponse> orderPlatformBind(PlatformJob job) {
        if(StringUtils.isBlank(job.getBillCode()) || StringUtils.isBlank(job.getPlatformWmsCode())){
            return null;
        }
        int type = 0;
        if(Constants.equalsInteger(job.getType(),Constants.ONE)
                || Constants.equalsInteger(job.getType(),Constants.THREE)){
            //如果是装货(出库)
            type =1 ;
        }else if(Constants.equalsInteger(job.getType(),Constants.ZERO)
                || Constants.equalsInteger(job.getType(),Constants.TWO)){
            //如果是装货(出库)
            type =0 ;
        }else{
            return null;
        }
        WmsOrderPlatformRequest  param  = new WmsOrderPlatformRequest();
         param.setData(new ArrayList<>());
         WmsOrderPlatformInfoRequest o = new WmsOrderPlatformInfoRequest();
         o.setCarrierBillCode(job.getBillCode());
         o.setRailwayNo(job.getPlatformWmsCode());
         param.getData().add(o);
         String url = type == 0?systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_INBOUND_PLATFROM_URL).getCode():systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_OUTBOUND_PLATFROM_URL).getCode();;
         String name = type ==0?"【WMS】入庫作业单分配月台":"【WMS】出库作业的分配月台";
         WmsBaseResponse<WmsBaseDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(param),new TypeReference< WmsBaseResponse<WmsBaseDataResponse>>(){});
         PlatformJob update = new PlatformJob();
         update.setId(job.getId());
         update.setWmsSendDate(new Date());
         update.setWmsSendNum(job.getWmsSendNum() + 1);
         update.setWmsSendPlatformCode(job.getPlatformWmsCode());
         if(response!=null && response.getData() !=null
                && response.getData().size()>0 && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){
            //如果成功
            update.setWmsSendStatus(Constants.ONE);
            update.setWmsSendInfo("通知WMS作业单分配月台成功");
         }else{
            //如果失败
            update.setWmsSendStatus(Constants.TWO);
            update.setWmsSendInfo("通知WMS作业单分配月台失败:"+(response!=null?JSONObject.toJSONString(response):"接口调用失败"));
         }
         platformJobMapper.updateById(update);
         return response;
    }
    /**
     * å…¥åº“通知任务业务处理
     * @return
     */
    @Override
    public WmsBaseResponse<WmsInventoryDataResponse> getInventoryList(){
         String url =  systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_GET_INVENTORYLIST_URL).getCode() ;
         String name = "【WMS】库存查询" ;
         WmsBaseResponse<WmsInventoryDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(new JSONObject()),new TypeReference< WmsBaseResponse<WmsInventoryDataResponse>>(){});
        if(response!=null
                && response.getData() !=null
                && response.getData().size()>0
                && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){
            //如果请求成功
        }else{
            //如果失败
            if(response ==null){
                response = new WmsBaseResponse();
                response.setData(new ArrayList<>());
            }
            if(response.getData() == null){
                response.setData(new ArrayList<>());
            }
        }
         return response;
    }
    @Override
    public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type){
        if(wmsInterfaceLogMapper ==null){
            return;
        }
        WmsInterfaceLog log = new WmsInterfaceLog();
        log.setCreateDate(new Date());
        log.setUrl(url);
        log.setEditDate(log.getCreateDate());
        log.setPlat(Constants.ZERO);
        log.setName(name);
        log.setIsdeleted(Constants.ZERO);
        log.setRequest(param);
        log.setType(type);
        log.setSuccess(success);
        log.setRepose(respone);
        wmsInterfaceLogMapper.insert(log);
    }
    /**
     * å‘èµ·wms接口请求
     * @param url
     * @param name
     * @param param
     * @param typeReference
     * @return
     * @param <T>
     */
    public  <T> WmsBaseResponse<T> sendHttpRequest(String url, String name, String param,TypeReference<WmsBaseResponse<T>> typeReference){
        log.info("【"+name+"】================开始===="+ JSONObject.toJSONString(param));
        if ( StringUtils.isNotBlank(url)) {
            String res = null;
            int success = 0;
            try {
                Map<String,String> headers = new HashMap<>();
                res = HttpsUtil.postJson(url,param);
                WmsBaseResponse result = JSONObject.parseObject(res, typeReference.getType());
                logResult(result,name);
                if(result!=null && result.getData() !=null ){
                }else{
                    success =1;
                }
                return  result;
            }catch (Exception e){
                success = 1;
                log.error("【"+name+"】================失败===="+ JSONObject.toJSONString(param));
            }finally {
                saveInterfaceLog(url,name,param,success,res,Constants.ZERO);
            }
        }
        return  null;
    }
    private static void logResult(WmsBaseResponse<WmsBaseDataResponse> res,String name) {
        if(StringUtils.equals(res.getData().get(0).getSuccess(), WmsBaseResponse.CODE_SUCCESS)){
            log.info("【WMS接口:"+name+"】================成功====\n"+res);
        }else{
            log.error("【WMS接口:"+name+"】================失败====:\n"+ res);
        }
    }
    /**
     * å…¥åº“通知任务业务处理
     * @param list å‚æ•°
@@ -43,7 +191,7 @@
     */
    @Override
    @Transactional
    public WmsBaseResponse inboundNotice(List<WmsInboundNoticeRequest> list) {
    public WmsBaseResponse<WmsBaseDataResponse> inboundNotice(List<WmsInboundNoticeRequest> list) {
        if(list ==null || list.size() ==0){
            return returnFailReuslt("请求参数不正确,参数不能为空");
        }
@@ -87,7 +235,8 @@
                    entity.setCreateDate(new Date());
                    entity.setIsdeleted(Constants.ZERO);
                    entity.setIocode(d.getIoCode());
                    entity.setJobId(job.getId());
                    entity.setJobId(job.getJobId());
                    entity.setWmsJobId(job.getId());
                    entity.setIoQty(d.getIoQty());
                    entity.setStatus(Constants.ZERO);
                    entity.setRate(d.getRate());
@@ -222,7 +371,7 @@
                job.setPlateNumber(param.getPlateNumber());
                job.setType(Constants.ONE);
                job.setIoCreatedate(param.getCreateDate());
                job.setJobId(model.getId());
                job.setJobId(job.getId());
                job.setDriverPhone(param.getDriverPhone());
                platformWmsJobMapper.insert(job);
                jobList.add(model);
@@ -233,7 +382,8 @@
                    entity.setCreateDate(new Date());
                    entity.setIsdeleted(Constants.ZERO);
                    entity.setIocode(d.getIoCode());
                    entity.setJobId(job.getId());
                    entity.setJobId(job.getJobId());
                    entity.setWmsJobId(job.getId());
                    entity.setIoQty(d.getIoQty());
                    entity.setStatus(Constants.ZERO);
                    entity.setRate(d.getRate());
@@ -340,6 +490,7 @@
     * @return
     */
    private WmsBaseResponse returnSuccessReuslt(String msg) {
        WmsBaseResponse response = new WmsBaseResponse();
        response.setData(new ArrayList<>());
server/visits/dmvisit_service/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: doumee
    password: rtjgfEr@&0c0m
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Atwl@2024
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis: