jiangping
2024-09-09 c47f7b9c4899036c52ad0e4f46c4aff7102110bc
最新版本
已添加6个文件
已修改24个文件
676 ■■■■ 文件已修改
admin/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.production 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/index.js 2 ●●● 补丁 | 查看 | 原始文档 | 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 4 ●●●● 补丁 | 查看 | 原始文档 | 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 18 ●●●●● 补丁 | 查看 | 原始文档 | 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/WmsPushCloudController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | 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/WxAccessTokenRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | 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/business/model/PlatformJob.java 18 ●●●●● 补丁 | 查看 | 原始文档 | 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/impl/hksync/HkSyncPushServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java 157 ●●●●● 补丁 | 查看 | 原始文档 | 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://localhost:10010'
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'
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
@@ -118,6 +118,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;
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
@@ -11,11 +11,14 @@
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.utils.Constants;
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;
@@ -154,4 +157,19 @@
         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){
        String token = "";//------------TODO----------康康继续写
        return ApiResponse.success( HKService.getMenuUrl(type,token));
    }
}
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/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/config/swagger/SwaggerConfig.java
@@ -52,8 +52,8 @@
                .apiInfo(this.getApiInfo()).groupName("default")
                .host(host)
                .select()
//                .apis( basePackage("com.doumee.cloud.openapi;com.doumee.api.common"))
                .apis( basePackage("com.doumee.cloud.openapi;"))
                .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/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/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)){
        }else  if(Constants.equalsInteger(type,Constants.TWO)){
        }else  if(Constants.equalsInteger(type,Constants.THREE)){
        }
        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/business/model/PlatformJob.java
@@ -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="签到距离(米)")
@@ -313,6 +328,9 @@
    @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)
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/impl/hksync/HkSyncPushServiceImpl.java
@@ -890,8 +890,8 @@
                        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())){
                            //如果是车辆离开,不做相关自动完成作业业务处理
                         /*   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)){
@@ -905,7 +905,7 @@
                            }
                            //如果是正在作业的状态,标记作业已完成
                            update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//作业已完成
                            update.setDoneDate(update.getEditDate());
                            update.setDoneDate(update.getEditDate());*/
                        }else  if(StringUtils.equals(status.getMotionStatus(),"enter")){
                            //如果是车辆进入
                            if(job ==null || !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
@@ -919,7 +919,8 @@
                        }else{
                            continue;//其他状态不处理,跳过
                        }
                        dealPlatformJobLogBiz(update,status);//记录作业日志
                        //暂时不做相关自动完成作业业务处理
//                        dealPlatformJobLogBiz(update,status);//记录作业日志
                    }
                    break;//只处理第一个数据状态
                }
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("请求参数不正确,参数不能为空");
        }
@@ -342,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: