瀏覽代碼

init project

master
施海荣 3 年之前
當前提交
10e056aa44
共有 100 個檔案被更改,包括 8391 行新增0 行删除
  1. +0
    -0
      1.设计文档/readme.md
  2. +0
    -0
      2.需求文档/readme.md
  3. +0
    -0
      3.测试文档/readme.md
  4. +0
    -0
      4.发布版本/readme.md
  5. +0
    -0
      5.数据库/readme.md
  6. +39
    -0
      6.program/.drone.yml
  7. +41
    -0
      6.program/.gitignore
  8. +0
    -0
      6.program/Dockerfile
  9. +3
    -0
      6.program/README.md
  10. +431
    -0
      6.program/pom.xml
  11. +34
    -0
      6.program/wms-common/pom.xml
  12. +62
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/controller/AttachmentController.java
  13. +49
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/controller/CommonController.java
  14. +17
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/mapper/CommonMapper.java
  15. +46
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/params/DownloadFileParam.java
  16. +38
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/params/UploadFileBase64Param.java
  17. +56
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/service/AttachmentService.java
  18. +38
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/service/CommonService.java
  19. +231
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/service/impl/AttachmentServiceImpl.java
  20. +101
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/service/impl/CommonServiceImpl.java
  21. +35
    -0
      6.program/wms-common/src/main/java/com/mt/wms/common/vo/SysFileVo.java
  22. +6
    -0
      6.program/wms-common/src/main/resources/mapper/CommonMapper.xml
  23. +219
    -0
      6.program/wms-core/pom.xml
  24. +24
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/EnableMesCore.java
  25. +154
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/MyGenerator.java
  26. +418
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/api/Assert.java
  27. +20
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseController.java
  28. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseDto.java
  29. +18
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseParam.java
  30. +18
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseService.java
  31. +255
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseSupport.java
  32. +18
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseVo.java
  33. +41
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/IEnum.java
  34. +63
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/IErrorCode.java
  35. +58
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/base/ITree.java
  36. +43
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/AliyunSmsConfig.java
  37. +34
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/AutoConfiguration.java
  38. +46
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/CommonConfig.java
  39. +68
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/JacksonConfig.java
  40. +47
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/MybatisPlusConfig.java
  41. +152
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/RedissonAutoConfiguration.java
  42. +28
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/RedissonProperties.java
  43. +31
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/TencentCloudConfig.java
  44. +31
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/TencentCloudSmsConfig.java
  45. +29
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/UploadFileConfig.java
  46. +38
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/ValidatorConfig.java
  47. +68
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/config/WxConfig.java
  48. +61
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/constants/CommonConstant.java
  49. +19
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/constants/MessageQueueConstant.java
  50. +97
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/constants/RedisConstant.java
  51. +448
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/LoginLog.java
  52. +390
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/LoginSession.java
  53. +176
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/Resource.java
  54. +144
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/Service.java
  55. +160
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsCode.java
  56. +176
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsScene.java
  57. +208
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsSend.java
  58. +144
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsSign.java
  59. +176
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsTemplate.java
  60. +160
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysDictData.java
  61. +136
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysDictType.java
  62. +152
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysFile.java
  63. +136
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysFileType.java
  64. +224
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysMenu.java
  65. +136
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysMenuResource.java
  66. +184
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysOrg.java
  67. +168
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysPost.java
  68. +176
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysRole.java
  69. +136
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysRoleMenu.java
  70. +273
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysUser.java
  71. +136
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysUserPost.java
  72. +136
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysUserRole.java
  73. +208
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/WechatTemplateMessage.java
  74. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginLogMapper.java
  75. +65
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginLogMapper.xml
  76. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginSessionMapper.java
  77. +58
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginSessionMapper.xml
  78. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ResourceMapper.java
  79. +31
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ResourceMapper.xml
  80. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ServiceMapper.java
  81. +27
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ServiceMapper.xml
  82. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsCodeMapper.java
  83. +29
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsCodeMapper.xml
  84. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSceneMapper.java
  85. +31
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSceneMapper.xml
  86. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSendMapper.java
  87. +35
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSendMapper.xml
  88. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSignMapper.java
  89. +27
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSignMapper.xml
  90. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsTemplateMapper.java
  91. +31
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsTemplateMapper.xml
  92. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictDataMapper.java
  93. +29
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictDataMapper.xml
  94. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictTypeMapper.java
  95. +26
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictTypeMapper.xml
  96. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileMapper.java
  97. +28
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileMapper.xml
  98. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileTypeMapper.java
  99. +26
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileTypeMapper.xml
  100. +16
    -0
      6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysMenuMapper.java

+ 0
- 0
1.设计文档/readme.md 查看文件


+ 0
- 0
2.需求文档/readme.md 查看文件


+ 0
- 0
3.测试文档/readme.md 查看文件


+ 0
- 0
4.发布版本/readme.md 查看文件


+ 0
- 0
5.数据库/readme.md 查看文件


+ 39
- 0
6.program/.drone.yml 查看文件

@@ -0,0 +1,39 @@
---
kind: pipeline
type: docker
name: default

steps:
- name: build
image: docker:dind
volumes:
- name: dockersock
path: /var/run/docker.sock
- name: dockerconfig
path: /root/.docker
commands:
- docker build -t harbor.picaiba.com/wms/wms-cloud-api ./ && docker push harbor.picaiba.com/wms/wms-cloud-api

# - name: deploy
# image: docker:dind
# volumes:
# - name: dockersock
# path: /var/run/docker.sock
# commands:
# - docker service update mes_mes --force
# depends_on:
# - build

volumes:
- name: dockersock
host:
path: /var/run/docker.sock
- name: dockerconfig
host:
path: /root/.docker

trigger:
branch:
- develop
event:
- push

+ 41
- 0
6.program/.gitignore 查看文件

@@ -0,0 +1,41 @@
# ---> Java
# Compiled class file
*.class

.idea/
*.iml

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# ---> Maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar


+ 0
- 0
6.program/Dockerfile 查看文件


+ 3
- 0
6.program/README.md 查看文件

@@ -0,0 +1,3 @@
# wms

仓库系统

+ 431
- 0
6.program/pom.xml 查看文件

@@ -0,0 +1,431 @@
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<modules>
<module>wms-gateway</module>
<module>wms-core</module>
<module>wms-common</module>
<module>wms-passport</module>
<module>wms-upms</module>
<module>wms-empty</module>
</modules>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>

<groupId>com.mt</groupId>
<artifactId>wms</artifactId>
<packaging>pom</packaging>
<version>1.0</version>

<name>wms</name>
<description>wms</description>
<url>https://wms.picaiba.com</url>

<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
<gateway.server.port>8080</gateway.server.port>
<spring.security.user.name>wms</spring.security.user.name>
<spring.security.user.password>wms</spring.security.user.password>
<!-- rabbitmq -->
<spring.rabbitmq.host>127.0.0.1</spring.rabbitmq.host>
<spring.rabbitmq.port>5672</spring.rabbitmq.port>
<spring.rabbitmq.username>guest</spring.rabbitmq.username>
<spring.rabbitmq.password>guest</spring.rabbitmq.password>
<!-- redis -->
<spring.redis.cluster.nodes>redis.picaiba.com:6380</spring.redis.cluster.nodes>
<spring.redis.host>redis.picaiba.com</spring.redis.host>
<spring.redis.port>6380</spring.redis.port>
<spring.redis.password><![CDATA["@WSXcde3"]]></spring.redis.password>
<spring.redis.database>5</spring.redis.database>
<!-- database -->
<spring.datasource.url>jdbc:p6spy:mysql://mysql.picaiba.com:30306/wms?characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false
</spring.datasource.url>
<spring.datasource.username>wms</spring.datasource.username>
<spring.datasource.password>1qaz@WS</spring.datasource.password>
<!-- email -->
<spring.mail.host>smtp.mxhichina.com</spring.mail.host>
<!-- #25 ssl 465 -->
<spring.mail.port>465</spring.mail.port>
<spring.mail.username>noreply@mt.com</spring.mail.username>
<spring.mail.password>noreply</spring.mail.password>
<!-- devtools -->
<spring.devtools.remote.secret>wms</spring.devtools.remote.secret>
<spring.devtools.remote.livereload.enabled>true</spring.devtools.remote.livereload.enabled>
<!-- 公共相关配置-->
<wms.common.uploadPath>/work/uploadFile/</wms.common.uploadPath>
<wms.common.webHost>http://127.0.0.1:8080</wms.common.webHost>
<wms.common.apiHost>http://127.0.0.1:8080</wms.common.apiHost>
<!-- 短信相关配置-->
<wms.sms.channel>aliyun</wms.sms.channel>
<wms.aliyun.sms.product>Dysmsapi</wms.aliyun.sms.product>
<wms.aliyun.sms.domain>dysmsapi.aliyuncs.com</wms.aliyun.sms.domain>
<wms.aliyun.sms.accessKeyId>202020202020</wms.aliyun.sms.accessKeyId>
<wms.aliyun.sms.accessKeySecret>202020202020</wms.aliyun.sms.accessKeySecret>
<wms.tencentcloud.secretId>202020202020</wms.tencentcloud.secretId>
<wms.tencentcloud.secretKey>202020202020</wms.tencentcloud.secretKey>
<wms.tencentcloud.sms.appId>202020202020</wms.tencentcloud.sms.appId>
<wms.tencentcloud.sms.appKey>202020202020</wms.tencentcloud.sms.appKey>
</properties>
</profile>
<profile>
<id>test</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<profileActive>test</profileActive>

<gateway.server.port>9090</gateway.server.port>

<spring.security.user.name>wms</spring.security.user.name>
<spring.security.user.password>wms</spring.security.user.password>
<!-- rabbitmq -->
<spring.rabbitmq.host>127.0.0.1</spring.rabbitmq.host>
<spring.rabbitmq.port>5672</spring.rabbitmq.port>
<spring.rabbitmq.username>wms</spring.rabbitmq.username>
<spring.rabbitmq.password>wms</spring.rabbitmq.password>
<!-- redis -->
<spring.redis.cluster.nodes>redis.picaiba.com:6380</spring.redis.cluster.nodes>
<spring.redis.host>redis.picaiba.com</spring.redis.host>
<spring.redis.port>6380</spring.redis.port>
<spring.redis.password><![CDATA["@WSXcde3"]]></spring.redis.password>
<spring.redis.database>10</spring.redis.database>
<!-- database -->
<spring.datasource.url>jdbc:p6spy:mysql://mysql.picaiba.com:30306/wms?characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false
</spring.datasource.url>
<spring.datasource.username>wms</spring.datasource.username>
<spring.datasource.password>1qaz@WS</spring.datasource.password>
<!-- email -->
<spring.mail.host>smtp.mxhichina.com</spring.mail.host>
<!-- #25 ssl 465 -->
<spring.mail.port>465</spring.mail.port>
<spring.mail.username>noreply@mt.com</spring.mail.username>
<spring.mail.password>noreply</spring.mail.password>
<!-- devtools -->
<spring.devtools.remote.secret>wms</spring.devtools.remote.secret>
<spring.devtools.remote.livereload.enabled>false</spring.devtools.remote.livereload.enabled>
<!-- 公共相关配置-->
<wms.common.uploadPath>/home/api/uploadFile/</wms.common.uploadPath>
<wms.common.webHost>https://wms.mt.com</wms.common.webHost>
<wms.common.apiHost>https://api.wms-test.mt.com</wms.common.apiHost>
<!-- 短信相关配置-->
<wms.sms.channel>aliyun</wms.sms.channel>
<wms.aliyun.sms.product>Dysmsapi</wms.aliyun.sms.product>
<wms.aliyun.sms.domain>dysmsapi.aliyuncs.com</wms.aliyun.sms.domain>
<wms.aliyun.sms.accessKeyId>202020202020</wms.aliyun.sms.accessKeyId>
<wms.aliyun.sms.accessKeySecret>202020202020</wms.aliyun.sms.accessKeySecret>
<wms.tencentcloud.secretId>202020202020</wms.tencentcloud.secretId>
<wms.tencentcloud.secretKey>202020202020</wms.tencentcloud.secretKey>
<wms.tencentcloud.sms.appId>202020202020</wms.tencentcloud.sms.appId>
<wms.tencentcloud.sms.appKey>202020202020</wms.tencentcloud.sms.appKey>
</properties>
</profile>
<profile>
<id>prod</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<profileActive>prod</profileActive>
<gateway.server.port>8090</gateway.server.port>
<spring.security.user.name>wms</spring.security.user.name>
<spring.security.user.password>wms</spring.security.user.password>
<!-- rabbitmq -->
<spring.rabbitmq.host>127.0.0.1</spring.rabbitmq.host>
<spring.rabbitmq.port>5672</spring.rabbitmq.port>
<spring.rabbitmq.username>wms</spring.rabbitmq.username>
<spring.rabbitmq.password>wms</spring.rabbitmq.password>
<!-- redis -->
<spring.redis.cluster.nodes>127.0.0.1:6379</spring.redis.cluster.nodes>
<spring.redis.host>127.0.0.1</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>2018</spring.redis.password>
<spring.redis.database>10</spring.redis.database>
<!-- database -->
<spring.datasource.url>jdbc:p6spy:mysql://localhost:3306/wms?characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false
</spring.datasource.url>
<spring.datasource.username>root</spring.datasource.username>
<spring.datasource.password>root</spring.datasource.password>
<!-- email -->
<spring.mail.host>smtp.mxhichina.com</spring.mail.host>
<!-- #25 ssl 465 -->
<spring.mail.port>465</spring.mail.port>
<spring.mail.username>noreply@mt.com</spring.mail.username>
<spring.mail.password>noreply</spring.mail.password>
<!-- devtools -->
<spring.devtools.remote.secret>wms</spring.devtools.remote.secret>
<spring.devtools.remote.livereload.enabled>false</spring.devtools.remote.livereload.enabled>
<!-- 公共相关配置-->
<wms.common.uploadPath>/home/api/uploadFile/</wms.common.uploadPath>
<wms.common.webHost>https://wms.mt.com</wms.common.webHost>
<wms.common.apiHost>https://api.wms.mt.com</wms.common.apiHost>
<!-- 短信相关配置-->
<wms.sms.channel>aliyun</wms.sms.channel>
<wms.aliyun.sms.product>Dysmsapi</wms.aliyun.sms.product>
<wms.aliyun.sms.domain>dysmsapi.aliyuncs.com</wms.aliyun.sms.domain>
<wms.aliyun.sms.accessKeyId>202020202020</wms.aliyun.sms.accessKeyId>
<wms.aliyun.sms.accessKeySecret>202020202020</wms.aliyun.sms.accessKeySecret>
<wms.tencentcloud.secretId>202020202020</wms.tencentcloud.secretId>
<wms.tencentcloud.secretKey>202020202020</wms.tencentcloud.secretKey>
<wms.tencentcloud.sms.appId>202020202020</wms.tencentcloud.sms.appId>
<wms.tencentcloud.sms.appKey>202020202020</wms.tencentcloud.sms.appKey>
</properties>
</profile>
</profiles>

<dependencies>
<!--配置文件处理器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--测试依赖-->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!--公共依赖-->
<properties>
<java.version>1.8</java.version>
<spring.profiles>dev</spring.profiles>
<spring-boot.version>2.0.4.RELEASE</spring-boot.version>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
<spring-boot-admin.version>2.0.2</spring-boot-admin.version>
<!-- de.codecentric -->
<spring-boot-admin-server-ui-hystrix.version>1.5.7</spring-boot-admin-server-ui-hystrix.version>
<spring-boot-admin-server-ui-turbine.version>1.5.7</spring-boot-admin-server-ui-turbine.version>

<!-- swagger接口工具类 -->
<springfox-swagger2.version>2.9.2</springfox-swagger2.version>
<!-- wechat工具类 -->
<binarywang-weixin.version>3.7.0</binarywang-weixin.version>
<okhttp3.version>3.11.0</okhttp3.version>
<!-- SpringBoot集成mybatis框架 -->
<mybatis-plus.version>3.4.1</mybatis-plus.version>
<p6spy.version>3.9.0</p6spy.version>
<sharding-jdbc-core-spring-boot-starter.version>2.0.3</sharding-jdbc-core-spring-boot-starter.version>
<!-- fastjson -->
<fastjson.version>1.2.75</fastjson.version>
<!-- 阿里大鱼短信 -->
<aliyun-java-sdk-core.version>4.0.9</aliyun-java-sdk-core.version>
<aliyun-java-sdk-dysmsapi.version>1.1.0</aliyun-java-sdk-dysmsapi.version>
<tencentcloud-sdk-java.version>3.1.109</tencentcloud-sdk-java.version>
<!-- hutool工具类 -->
<hutool.version>4.1.21</hutool.version>
<!-- excel工具类 -->
<cn.afterturn.version>4.0.0</cn.afterturn.version>
<!-- pdf工具类 -->
<pdfbox.version>2.0.1</pdfbox.version>
<!-- 条形码转换工具类 -->
<barcode4j.version>2.0</barcode4j.version>
<!-- userAgent -->
<useragent.version>5.11</useragent.version>
<!-- redisson -->
<redisson.version>3.11.2</redisson.version>
<!-- jasperreports -->
<jasperreports.version>6.9.0</jasperreports.version>
<!-- idworker -->
<idworker.version>1.5.0</idworker.version>
<!-- thumbnailator -->
<thumbnailator.version>0.4.13</thumbnailator.version>

</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>Cairo-SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-swagger2.version}</version>
</dependency>
<dependency>
<groupId>com.mt</groupId>
<artifactId>wms-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mt</groupId>
<artifactId>wms-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mt</groupId>
<artifactId>wms-gateway</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mt</groupId>
<artifactId>wms-passport</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mt</groupId>
<artifactId>wms-upms</artifactId>
<version>${project.version}</version>
</dependency>

<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>${p6spy.version}</version>
</dependency>

<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.aspose.words</groupId>-->
<!-- <artifactId>aspose-words</artifactId>-->
<!-- <version>18.5</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${cn.afterturn.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${cn.afterturn.version}</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>${jasperreports.version}</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>${jasperreports.version}</version>
</dependency>
<!-- id生成器 -->
<!-- https://mvnrepository.com/artifact/com.imadcn.framework/idworker -->
<dependency>
<groupId>com.imadcn.framework</groupId>
<artifactId>idworker</artifactId>
<version>${idworker.version}</version>
</dependency>

<!-- 图片处理工具:压缩、缩放、旋转、加水印等 -->
<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>${thumbnailator.version}</version>
</dependency>

</dependencies>
</dependencyManagement>

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>${java.version}</target>
<source>${java.version}</source>
<encoding>${project.build.sourceEncoding}</encoding>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- 使用aliyun镜像 -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
</repository>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
</project>

+ 34
- 0
6.program/wms-common/pom.xml 查看文件

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>wms</artifactId>
<groupId>com.mt</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>wms-common</artifactId>
<dependencies>
<dependency>
<groupId>com.mt</groupId>
<artifactId>wms-core</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>${aliyun-java-sdk-core.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>${aliyun-java-sdk-dysmsapi.version}</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
</dependency>
</dependencies>

</project>

+ 62
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/controller/AttachmentController.java 查看文件

@@ -0,0 +1,62 @@
package com.mt.wms.common.controller;

import com.mt.wms.common.params.DownloadFileParam;
import com.mt.wms.common.params.UploadFileBase64Param;
import com.mt.wms.common.service.AttachmentService;
import com.mt.wms.common.vo.SysFileVo;
import com.mt.wms.core.base.BaseController;
import com.mt.wms.core.constants.CommonConstant;
import com.mt.wms.core.vo.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
* @author jiff
* @date 2021/01/12
* @since 1.0
*/
@RestController
@RequestMapping(CommonConstant.API_MODULE_COMMON + "attachment")
@Slf4j
@Api(value = "附件管理", tags = "附件管理", hidden = false)
public class AttachmentController extends BaseController {
@Autowired
private AttachmentService attachmentService;


@PostMapping(value = "uploadFile")
@ApiOperation(value = "上传文件", notes = "上传文件")
public R<List<SysFileVo>> uploadFile(@ApiParam(value = "文件类型", required = true) @NotEmpty(message = "文件类型编码不得为空") @RequestParam String typeCode) {
return attachmentService.uploadFile(typeCode);
}

@PostMapping("uploadFileBase64")
@ApiOperation(value = "文件上传(base64字符串方式)", notes = "文件上传")
public R<SysFileVo> uploadFileBase64(@Validated @RequestBody UploadFileBase64Param param) {
return attachmentService.uploadFileBase64(param);
}

@PostMapping("uploadFileFormData")
@ApiOperation(value = "文件上传(form表单形式)", notes = "文件上传")
public R<List<SysFileVo>> uploadFileFormData(@ApiParam(value = "文件类型", required = true) @NotEmpty(message = "文件类型编码不得为空") @RequestParam String typeCode, @ApiParam(value = "文件附件", required = true) @NotNull(message = "文件附件不能为空") @RequestParam("files") MultipartFile[] files) {
return attachmentService.uploadFileFormData(typeCode, files);
}

@GetMapping(value = "downloadFile")
@ApiOperation(value = "下载文件", notes = "下载文件")
public R<Object> downloadFile(@Validated DownloadFileParam param) {
return attachmentService.downloadFile(param);
}


}

+ 49
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/controller/CommonController.java 查看文件

@@ -0,0 +1,49 @@
package com.mt.wms.common.controller;

import com.mt.wms.common.service.CommonService;
import com.mt.wms.common.vo.SysFileVo;
import com.mt.wms.core.base.BaseController;
import com.mt.wms.core.constants.CommonConstant;
import com.mt.wms.core.params.IdParam;
import com.mt.wms.core.vo.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;

/**
* <p>
*
* </P>
*
* @author FanYi
* @date 2020/7/6
* @since 1.0
*/
@Api(value = "公共模块", tags = "公共模块")
@RestController
@RequestMapping(CommonConstant.API_MODULE_COMMON)
@Slf4j
@RequiredArgsConstructor
public class CommonController extends BaseController {
private final CommonService commonService;


@PostMapping(value = "downloadFile")
@ApiOperation(value = "获取附件下载地址", notes = "获取附件下载地址")
public R<SysFileVo> downloadFile(@Validated @RequestBody IdParam idParam) {
return successful(commonService.downloadFile(idParam.getId()));
}

@GetMapping(value = "downLoadFileUrl")
@ApiOperation(value = "文件的预览", notes = "文件的预览")
public R<Object> downloadFile(@Validated IdParam idParam, HttpServletResponse response) {
return commonService.downLoadFileUrl(idParam, response);
}


}

+ 17
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/mapper/CommonMapper.java 查看文件

@@ -0,0 +1,17 @@
package com.mt.wms.common.mapper;

import org.springframework.stereotype.Repository;

/**
* <p>
*
* </P>
*
* @author FanYi
* @date 2020/7/6
* @since 1.0
*/
@Repository
public interface CommonMapper {

}

+ 46
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/params/DownloadFileParam.java 查看文件

@@ -0,0 +1,46 @@
/*
* Copyright (c) 2020.
* http://www.ulabcare.com
*/

package com.mt.wms.common.params;

import com.mt.wms.core.base.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;

/**
* 下载文件对象入参
*
* @author jiff
* @date 2021/01/12
* @since 1.0
**/
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Data
@ApiModel(value = "下载文件信息对象", description = "下载文件信息对象")
public class DownloadFileParam extends BaseParam {

@ApiModelProperty(value = "附件ID", example = "1")
@NotNull(message = "附件ID不能为空")
private Long attachmentId;

@ApiModelProperty(value = "下载方式: 0、预览,1、下载", example = "0")
@NotNull(message = "下载方式不能为空")
private String type;

@ApiModelProperty(value = "下载文件自定义文件名", example = "报销发票")
private String fileName;

@ApiModelProperty(value = "压缩尺寸,取值范围(0.00--1.00),图片文件有效", example = "1")
private float scale = 1f;

@ApiModelProperty(value = "压缩质量,取值范围(0.00--1.00),图片文件有效", example = "1")
private float outputQuality = 1f;
}

+ 38
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/params/UploadFileBase64Param.java 查看文件

@@ -0,0 +1,38 @@
package com.mt.wms.common.params;

import com.mt.wms.core.base.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotEmpty;

/**
* <p>
* 文件上传base64字符串方式
* </p>
*
* @author jiff
* @date 2021/01/12
* @since 1.0
**/
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Data
@ApiModel("文件上传base64字符串方式")
public class UploadFileBase64Param extends BaseParam {

@ApiModelProperty("文件类型编码")
@NotEmpty(message = "文件类型编码不能为空")
private String typeCode;

@ApiModelProperty("文件名")
@NotEmpty(message = "文件名不能为空")
private String fileName;

@ApiModelProperty("base64字符串")
@NotEmpty(message = "文件base64字符串不能为空")
private String fileBase64Str;
}

+ 56
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/service/AttachmentService.java 查看文件

@@ -0,0 +1,56 @@
package com.mt.wms.common.service;

import com.mt.wms.common.params.DownloadFileParam;
import com.mt.wms.common.params.UploadFileBase64Param;
import com.mt.wms.common.vo.SysFileVo;
import com.mt.wms.core.params.IdParam;
import com.mt.wms.core.vo.R;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
* @author jiff
* @date 2021/01/12
* @since 1.0
*/
public interface AttachmentService {


/**
* 文件上传(支持多文件上传)
*
* @param typeCode
* @return
*/
R<List<SysFileVo>> uploadFile(String typeCode);

/**
* 文件上传
*
* @param uploadFileBase64Param 上传文件对象
* @return
*/
R<SysFileVo> uploadFileBase64(UploadFileBase64Param uploadFileBase64Param);

/**
* 文件上传(form表单形式)
*
* @param typeCode
* @param files
* @return
*/
R<List<SysFileVo>> uploadFileFormData(String typeCode, MultipartFile[] files);

/**
* 文件下载(下载方式: 0、预览,1、下载)
*
* @param downloadFileParam
* @return
*/
R<Object> downloadFile(DownloadFileParam downloadFileParam);




}

+ 38
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/service/CommonService.java 查看文件

@@ -0,0 +1,38 @@
package com.mt.wms.common.service;

import com.mt.wms.common.vo.SysFileVo;
import com.mt.wms.core.params.IdParam;
import com.mt.wms.core.vo.R;

import javax.servlet.http.HttpServletResponse;

/**
* <p>
*
* </P>
*
* @author FanYi
* @date 2020/7/6
* @since 1.0
*/
public interface CommonService {


/**
* 获取附件下载地址
*
* @param fileId 附件ID
* @return 附件下载地址
*/
SysFileVo downloadFile(Long fileId);

/**
* 附件预览
*
* @param idParam 附件ID
* @return 附件下载地址
*/
R<Object> downLoadFileUrl(IdParam idParam, HttpServletResponse response);


}

+ 231
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/service/impl/AttachmentServiceImpl.java 查看文件

@@ -0,0 +1,231 @@
package com.mt.wms.common.service.impl;

import com.mt.wms.common.params.DownloadFileParam;
import com.mt.wms.common.params.UploadFileBase64Param;
import com.mt.wms.common.service.AttachmentService;
import com.mt.wms.common.vo.SysFileVo;
import com.mt.wms.core.base.BaseService;
import com.mt.wms.core.config.CommonConfig;
import com.mt.wms.core.dal.entity.SysFile;
import com.mt.wms.core.dal.service.SysFileServiceBiz;
import com.mt.wms.core.utils.*;
import com.mt.wms.core.vo.R;
import lombok.extern.log4j.Log4j2;
import net.coobird.thumbnailator.Thumbnails;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* @author jiff
* @date 2021/1/12
* @since 1.0
*/
@Log4j2
@Service
public class AttachmentServiceImpl extends BaseService implements AttachmentService {

@Autowired
private SysFileServiceBiz sysFileServiceBiz;
@Autowired
private CommonConfig commonConfig;

/**
* 文件上传(支持多文件上传)
*
* @param typeCode
* @return
*/
@Override
public R<List<SysFileVo>> uploadFile(String typeCode) {
//获取上传文件路径
String uploadPath = commonConfig.getUploadPath() + typeCode + "/";
log.debug("文件的上传路径:" + uploadPath);
File file = new File(uploadPath);
//判断文件是否存在,不存在则创建
if (!file.exists()) {
file.mkdirs();
}
List<SysFile> fileList = new ArrayList<>();
//多文件上传
CommonsMultipartResolver crm = new CommonsMultipartResolver(getHttpServletRequest().getSession().getServletContext());
if (crm.isMultipart(getHttpServletRequest())) {
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) (getHttpServletRequest());
Iterator<String> files = mRequest.getFileNames();
log.debug("多文件" + files.toString());
while (files.hasNext()) {
MultipartFile mFile = mRequest.getFile(files.next());
log.debug("文件" + mFile.toString());
// 文件名
String fileName = mFile.getOriginalFilename();
//新文件名
String newFileName = DateUtil.getCurrentDateTime() + RandomCodeGenerator.numericCode(4);
// 文件扩展名
String fileExtensionName = FileUtil.getExtensionName(fileName);
//上传文件的真实路径
String filePath = uploadPath + newFileName + "." + fileExtensionName;
File localPath = new File(filePath);
try {
mFile.transferTo(localPath);
//保存文件信息
SysFile sysFile = new SysFile();
sysFile.setTypeCode(typeCode);
sysFile.setFileUrl(filePath);
sysFile.setFileName(newFileName);
if (getLoginUser() != null) {
setCommonField(sysFile);
} else {
sysFile.setCreateTime(LocalDateTime.now());
sysFile.setCreator(1L);
sysFile.setCreatorName("system");
}
fileList.add(sysFile);
} catch (Exception e) {
e.printStackTrace();
log.error("文件上传失败:" + e.getMessage());
return R.failed("文件上传失败");
}
}
}
sysFileServiceBiz.saveBatch(fileList);
return R.ok(BeanUtils.copyList(fileList, SysFileVo.class));
}

/**
* 文件上传
*
* @param uploadFileBase64Param 上传文件对象
* @return
*/
@Override
public R<SysFileVo> uploadFileBase64(UploadFileBase64Param uploadFileBase64Param) {
return null;
}

/**
* 文件上传(form表单形式)
*
* @param typeCode
* @param files
* @return
*/
@Override
public R<List<SysFileVo>> uploadFileFormData(String typeCode, MultipartFile[] files) {
//获取上传文件路径
String uploadPath = commonConfig.getUploadPath() + typeCode + "/";
log.debug("文件的上传路径:" + uploadPath);
File file = new File(uploadPath);
//判断文件是否存在,不存在则创建
if (!file.exists()) {
file.mkdirs();
}
List<SysFile> fileList = new ArrayList<>();
for (MultipartFile multipartFile : files) {

log.debug("上传文件" + multipartFile.toString());
// 文件名
String fileName = multipartFile.getOriginalFilename();
//新文件名
String newFileName = DateUtil.getCurrentDateTime() + RandomCodeGenerator.numericCode(4);
// 文件扩展名
String fileExtensionName = FileUtil.getExtensionName(fileName);
//上传文件的真实路径
String filePath = uploadPath + newFileName + "." + fileExtensionName;
File localPath = new File(filePath);
try {
multipartFile.transferTo(localPath);
//保存文件信息
SysFile sysFile = new SysFile();
sysFile.setTypeCode(typeCode);
sysFile.setFileUrl(filePath);
sysFile.setFileName(newFileName);
if (getLoginUser() != null) {
setCommonField(sysFile);
} else {
sysFile.setCreateTime(LocalDateTime.now());
sysFile.setCreator(1L);
sysFile.setCreatorName("system");
}
fileList.add(sysFile);
} catch (Exception e) {
e.printStackTrace();
log.error("文件上传失败:" + e.getMessage());
return R.failed("文件上传失败");
}
}

sysFileServiceBiz.saveBatch(fileList);
return R.ok(BeanUtils.copyList(fileList, SysFileVo.class));
}

/**
* 文件下载(下载方式: 0、预览,1、下载)
*
* @param downloadFileParam
* @return
*/
@Override
public R<Object> downloadFile(DownloadFileParam downloadFileParam) {
//根据id获取附件信息
SysFile sysFile = sysFileServiceBiz.getById(downloadFileParam.getAttachmentId());
if (sysFile == null) {
return R.failed("文件不存在");
}
HttpServletResponse response = getHttpServletResponse();
// 文件路径
String path = sysFile.getFileUrl();
File file = new File(path);
String fileName = file.getName();
// 文件扩展名
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
try {
//判断下载方式是下载本地还是预览文件
if (downloadFileParam.getType().equals("1")) {
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + new String((StringUtils.isEmpty(downloadFileParam.getFileName()) ? sysFile.getFileName() + "." + suffix : downloadFileParam.getFileName() + "." + suffix).getBytes(Charset.forName("GBK")), StandardCharsets.ISO_8859_1));
} else {
URL u = new URL("file:///" + path);
String contentType = u.openConnection().getContentType();
response.setContentType(contentType);
response.setHeader("Content-Disposition", "inline; filename=" + new String((StringUtils.isEmpty(downloadFileParam.getFileName()) ? sysFile.getFileName() + "." + suffix : downloadFileParam.getFileName() + "." + suffix).getBytes(Charset.forName("GBK")), StandardCharsets.ISO_8859_1));
}
//判断是否是图片格式
ServletOutputStream outputStream = response.getOutputStream();
if ("PNGpngJPGjpg".contains(suffix)) {
Thumbnails.of(file)
.scale(downloadFileParam.getScale())
.outputQuality(downloadFileParam.getOutputQuality())
.toOutputStream(outputStream);
} else {
FileInputStream inputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
inputStream.close();
}
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
log.error("下载文件失败:{}", e.getMessage());
return R.failed("下载文件失败");
}
return null;
}
}

+ 101
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/service/impl/CommonServiceImpl.java 查看文件

@@ -0,0 +1,101 @@
package com.mt.wms.common.service.impl;

import com.mt.wms.common.mapper.CommonMapper;
import com.mt.wms.common.service.CommonService;
import com.mt.wms.common.vo.SysFileVo;
import com.mt.wms.core.config.AliyunSmsConfig;
import com.mt.wms.core.config.CommonConfig;
import com.mt.wms.core.config.TencentCloudConfig;
import com.mt.wms.core.config.TencentCloudSmsConfig;
import com.mt.wms.core.params.IdParam;
import com.mt.wms.core.base.BaseService;
import com.mt.wms.core.vo.R;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;

/**
* <p>
*
* </P>
*
* @author FanYi
* @date 2020/7/6
* @since 1.0
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class CommonServiceImpl extends BaseService implements CommonService {

private final CommonMapper mCommonMapper;

private final CommonConfig mCommonConfig;

private final AliyunSmsConfig mAliyunSmsConfig;

private final TencentCloudSmsConfig tencentCloudSmsConfig;

private final TencentCloudConfig tencentCloudConfig;

private final CommonConfig commonConfig;



/**
* 获取附件下载地址
*
* @param fileId 附件ID
* @return 附件下载地址
*/
@Override
public SysFileVo downloadFile(Long fileId) {

return new SysFileVo().setFileId(null).setFileName(null).setFileUrl(mCommonConfig.getApiHost() + "/common/" + "/home".replace(mCommonConfig.getUploadPath(), ""));
}


@Override
public R<Object> downLoadFileUrl(IdParam idParam, HttpServletResponse response) {

// 文件扩展名
String path = null;
File picFile = new File(path);
String fileName = picFile.getName();
try {
// 文件扩展名
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
URL u = new URL("file:///" + path);
String contentType = null;

contentType = u.openConnection().getContentType();

response.setContentType(contentType);
response.setHeader("Content-Disposition", "inline;filename=" + new String(("dw." + suffix).getBytes("GBK"), "ISO8859_1"));
ServletOutputStream outputStream = response.getOutputStream();
FileInputStream inputStream = new FileInputStream(picFile);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
e.printStackTrace();
log.error("文件预览失败:" + e.getMessage());
return R.failed("文件预览失败");
}
return null;
}

}

+ 35
- 0
6.program/wms-common/src/main/java/com/mt/wms/common/vo/SysFileVo.java 查看文件

@@ -0,0 +1,35 @@
package com.mt.wms.common.vo;

import com.mt.wms.core.base.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
*
* </P>
*
* @author FanYi
* @date 2020/7/8
* @since 1.0
*/
@ApiModel("文件对象")
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Data
public class SysFileVo extends BaseVo {
@ApiModelProperty("文件ID")
private Long fileId;

@ApiModelProperty("文件名称")
private String fileName;

@ApiModelProperty("类型 1图片 2PDF")
private Integer fileType;

@ApiModelProperty("下载路径")
private String fileUrl;
}

+ 6
- 0
6.program/wms-common/src/main/resources/mapper/CommonMapper.xml 查看文件

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.common.mapper.CommonMapper">

</mapper>

+ 219
- 0
6.program/wms-core/pom.xml 查看文件

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>wms</artifactId>
<groupId>com.mt</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>wms-core</artifactId>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp3.version}</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
</dependency>
<!--Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!--io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!--文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>

<!-- pdf工具类 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<!-- pdf字体类 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!-- pdf转图片 -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>${pdfbox.version}</version>
</dependency>
<!-- pdf转图片工具类 -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<version>${pdfbox.version}</version>
</dependency>
<!-- 条形码转换工具 -->
<dependency>
<groupId>net.sf.barcode4j</groupId>
<artifactId>barcode4j-light</artifactId>
<version>${barcode4j.version}</version>
</dependency>
<!-- springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>compile</scope>
</dependency>
<!-- dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</dependency>
<!-- hutool第三方工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- wechat -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>${binarywang-weixin.version}</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
<version>${binarywang-weixin.version}</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>${binarywang-weixin.version}</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>

<!-- Excel工具包 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>${cn.afterturn.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>${cn.afterturn.version}</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>


<!-- redisson,用于分布式锁 -->

<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>${redisson.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>

<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>${tencentcloud-sdk-java.version}</version>
</dependency>
</dependencies>

</project>

+ 24
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/EnableMesCore.java 查看文件

@@ -0,0 +1,24 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core;

import com.mt.wms.core.config.AutoConfiguration;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

/**
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(AutoConfiguration.class)
@Documented
@Inherited
public @interface EnableMesCore {
}

+ 154
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/MyGenerator.java 查看文件

@@ -0,0 +1,154 @@
package com.mt.wms.core;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.mt.wms.core.utils.StringUtils;
import org.junit.jupiter.api.Test;

import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

/**
* Created by FanYi on 2018-08-27 16:38.
**/
public class MyGenerator {
/**
* 数据库地址
*/
static String dbUrl = "jdbc:mysql://mysql.picaiba.com:30306/wms";
static String userName = "wms";
static String password = "1qaz@WS";
/**
* 是否去掉生成实体的属性名前缀
*/
static String[] fieldPrefix = new String[]{"t_"};

/**
* 代码生成器
*
* @param include 需要包含的表名,允许正则表达式
*/
private static void generateByTablesWithInjectConfig(String[] include) {
File file = new File("");
String path = file.getAbsolutePath();
// 全局配置
GlobalConfig config = new GlobalConfig();
// 开启 activeRecord 模式
config.setActiveRecord(true)
//生成目录
.setOutputDir(path + "/src/main/java")
//生成人
.setAuthor("mt")
// 是否覆盖文件
.setFileOverride(true)
// XML ResultMap
.setBaseResultMap(true)
// XML columList
.setBaseColumnList(true)
.setOpen(false)
// 自定义文件命名,注意 %s 会自动填充表实体属性!
.setMapperName("%sMapper")
.setXmlName("%sMapper")
.setServiceName("%sServiceBiz")
.setServiceImplName("%sServiceBizImpl");

// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL)
.setUrl(dbUrl)
.setUsername(userName)
.setPassword(password)
.setDriverName("com.mysql.jdbc.Driver");
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setVersionFieldName("version")
.setLogicDeleteFieldName("valid")
.setCapitalMode(true)
.setChainModel(true)
.setEntityColumnConstant(true)
.setEnableSqlFilter(false)
.setNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
.setTablePrefix(fieldPrefix)
.setEntityTableFieldAnnotationEnable(true)
//修改替换成你需要的表名,多个表名传数组
.setInclude(include);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.mt.wms.core.dal")
.setEntity("entity")
.setMapper("mapper")
.setService("service")
.setServiceImpl("service.impl")
.setXml("mapper");

//模板配置
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setController(null);

// 代码生成器
// AutoGenerator generator = new AutoGenerator();
MybatisPlusGenerator generator = new MybatisPlusGenerator();
generator.setExcludeTables("t_service");
generator.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig)
.setTemplate(templateConfig)
.execute();
}

@Test
public void generateCodeWithInjectConfigForAllTable() {
generateByTablesWithInjectConfig(new String[]{"t_[a-zA-Z0-9_]*"});
}

public static void main(String[] args) {
generateByTablesWithInjectConfig(new String[]{"t_goods[a-zA-Z0-9_]*"});
}


/**
*
*/
public static class MybatisPlusGenerator extends AutoGenerator {

/**
* 需要排除的表名,允许正则表达式
*/
private String[] excludeTables = null;

@Override
protected ConfigBuilder pretreatmentConfigBuilder(ConfigBuilder config) {
super.pretreatmentConfigBuilder(config);
if (excludeTables != null && excludeTables.length > 0) {
List<String> excludeTableList = Arrays.stream(excludeTables).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
config.setTableInfoList(config.getTableInfoList().stream()
.filter(tableInfo -> {
boolean excludeFlag = false;
String tableName = tableInfo.getName();
for (String excludeTableName : excludeTableList) {
if (excludeTableName.equalsIgnoreCase(tableName) || Pattern.matches(excludeTableName, tableName)) {
excludeFlag = true;
break;
}
}
return !excludeFlag;
}).collect(Collectors.toList()));
}
return config;
}

public AutoGenerator setExcludeTables(String... excludeTables) {
this.excludeTables = excludeTables;
return this;
}

}
}

+ 418
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/api/Assert.java 查看文件

@@ -0,0 +1,418 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.api;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.mt.wms.core.base.IErrorCode;
import com.mt.wms.core.exception.ApiException;

import java.util.Collection;
import java.util.Map;

/**
* 接口参数断言工具类
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public class Assert {

protected Assert() {
// to do noting
}

/**
* 断言参数等于0,否则抛出错误消息
*
* @param num 断言参数
* @param errorCode 错误消息
*/
public static void eqZero(Integer num, IErrorCode errorCode) {
if (num == null || num != 0) {
Assert.fail(errorCode);
}
}

/**
* 断言参数等于0,否则抛出错误消息
*
* @param num 断言参数
* @param message 错误消息
*/
public static void eqZero(Integer num, String message) {
if (num == null || num != 0) {
Assert.fail(message);
}
}

/**
* 断言参数小于0,否则抛出错误消息
*
* @param num 断言参数
* @param errorCode 错误消息
*/
public static void ltZero(Integer num, IErrorCode errorCode) {
if (num == null || num >= 0) {
Assert.fail(errorCode);
}
}

/**
* 断言参数小于0,否则抛出错误消息
*
* @param num 断言参数
* @param message 错误消息
*/
public static void ltZero(Integer num, String message) {
if (num == null || num >= 0) {
Assert.fail(message);
}
}

/**
* 断言小于等于0,否则抛出错误消息
*
* @param num 断言参数
* @param errorCode 错误消息
*/
public static void leZero(Integer num, IErrorCode errorCode) {
if (num == null || num > 0) {
Assert.fail(errorCode);
}
}

/**
* 断言小于等于0,否则抛出错误消息
*
* @param num 断言参数
* @param message 错误消息
*/
public static void leZero(Integer num, String message) {
if (num == null || num > 0) {
Assert.fail(message);
}
}

/**
* 断言参数大于0,否则抛出错误消息
*
* @param num 断言参数
* @param errorCode 错误消息
*/
public static void gtZero(Integer num, IErrorCode errorCode) {
if (num == null || num <= 0) {
Assert.fail(errorCode);
}
}

/**
* 断言参数大于0,否则抛出错误消息
*
* @param num 断言参数
* @param message 错误消息
*/
public static void gtZero(Integer num, String message) {
if (num == null || num <= 0) {
Assert.fail(message);
}
}

/**
* 断言大于等于0,否则抛出错误消息
*
* @param num 断言参数
* @param errorCode 错误消息
*/
public static void geZero(Integer num, IErrorCode errorCode) {
if (num == null || num < 0) {
Assert.fail(errorCode);
}
}

/**
* 断言大于等于0,否则抛出错误消息
*
* @param num 断言参数
* @param message 错误消息
*/
public static void geZero(Integer num, String message) {
if (num == null || num < 0) {
Assert.fail(message);
}
}

/**
* 断言num1大于num2,否则抛出错误消息
*
* @param num1 断言参数1
* @param num2 断言参数2
* @param errorCode 错误消息
*/
public static void gt(Integer num1, Integer num2, IErrorCode errorCode) {
if (num1 <= num2) {
Assert.fail(errorCode);
}
}

/**
* 断言num1大于num2,否则抛出错误消息
*
* @param num1 断言参数1
* @param num2 断言参数2
* @param message 错误消息
*/
public static void gt(Integer num1, Integer num2, String message) {
if (num1 <= num2) {
Assert.fail(message);
}
}

/**
* 断言num1大于等于num2,否则抛出错误消息
*
* @param num1 断言参数1
* @param num2 断言参数2
* @param errorCode 错误消息
*/
public static void ge(Integer num1, Integer num2, IErrorCode errorCode) {
if (num1 < num2) {
Assert.fail(errorCode);
}
}

/**
* 断言num1大于等于num2,否则抛出错误消息
*
* @param num1 断言参数1
* @param num2 断言参数2
* @param message 错误消息
*/
public static void ge(Integer num1, Integer num2, String message) {
if (num1 < num2) {
Assert.fail(message);
}
}

/**
* 断言obj1 eq obj2,否则抛出错误消息
*
* @param obj1 断言参数1
* @param obj2 断言参数2
* @param errorCode 错误消息
*/
public static void eq(Object obj1, Object obj2, IErrorCode errorCode) {
if (!obj1.equals(obj2)) {
Assert.fail(errorCode);
}
}

/**
* 断言obj1 eq obj2,否则抛出错误消息(错误码统一为{@link IErrorCode#CODE_FAILED})
*
* @param obj1 断言参数1
* @param obj2 断言参数2
* @param message 错误消息
*/
public static void eq(Object obj1, Object obj2, String message) {
if (!obj1.equals(obj2)) {
Assert.fail(message);
}
}

/**
* 断言参数为true,否则抛出错误消息
*
* @param condition 断言参数
* @param errorCode 错误消息
*/
public static void isTrue(boolean condition, IErrorCode errorCode) {
if (!condition) {
Assert.fail(errorCode);
}
}

/**
* 断言参数为false,否则抛出错误消息
*
* @param condition 断言参数
* @param errorCode 错误消息
*/
public static void isFalse(boolean condition, IErrorCode errorCode) {
if (condition) {
Assert.fail(errorCode);
}
}

/**
* 断言给定的参数都为null,否则抛出错误消息
*
* @param errorCode 错误消息
* @param conditions 断言参数
*/
public static void isNull(IErrorCode errorCode, Object... conditions) {
if (ObjectUtils.isNotNull(conditions)) {
Assert.fail(errorCode);
}
}

/**
* 断言给定的参数都不为null,否则抛出错误消息
*
* @param errorCode 错误消息
* @param conditions 断言参数
*/
public static void notNull(IErrorCode errorCode, Object... conditions) {
if (ObjectUtils.isNull(conditions)) {
Assert.fail(errorCode);
}
}

/**
* 断言给定的参数都为null,否则抛出错误消息(错误码统一为{@link IErrorCode#CODE_FAILED})
*
* @param message 错误消息
* @param conditions 断言参数
*/
public static void isNull(String message, Object... conditions) {
if (ObjectUtils.isNotNull(conditions)) {
Assert.fail(message);
}
}

/**
* 断言给定的参数都不为null,否则抛出错误消息(错误码统一为{@link IErrorCode#CODE_FAILED})
*
* @param message 错误消息
* @param conditions 断言参数
*/
public static void notNull(String message, Object... conditions) {
if (ObjectUtils.isNull(conditions)) {
Assert.fail(message);
}
}

/**
* <p>
* 抛出失败消息
* </p>
*
* @param errorCode 异常错误码
*/
public static void fail(IErrorCode errorCode) {
throw new ApiException(errorCode);
}

/**
* 根据断言条件判断是否抛出错误消息
*
* @param condition 断言条件,true则抛出错误消息,否则正常执行
* @param errorCode 错误消息
*/
public static void fail(boolean condition, IErrorCode errorCode) {
if (condition) {
Assert.fail(errorCode);
}
}

/**
* <p>
* 抛出失败消息
* </p>
*
* @param message 错误消息
*/
public static void fail(String message) {
throw new ApiException(message);
}

/**
* 根据断言条件判断是否抛出错误消息
*
* @param condition 断言条件,true则抛出错误消息,否则正常执行
* @param message 错误消息
*/
public static void fail(boolean condition, String message) {
if (condition) {
Assert.fail(message);
}
}

/**
* 断言参数不为空,否则抛出错误消息
*
* @param array 断言参数
* @param errorCode 错误消息
*/
public static void notEmpty(Object[] array, IErrorCode errorCode) {
if (ObjectUtils.isEmpty(array)) {
Assert.fail(errorCode);
}
}

/**
* 断言数组中的对象没有null元素,否则抛出错误消息
*
* @param array 断言参数
* @param errorCode 错误消息
*/
public static void noNullElements(Object[] array, IErrorCode errorCode) {
if (array != null) {
for (Object element : array) {
if (element == null) {
Assert.fail(errorCode);
}
}
}
}

/**
* 断言参数不为空,否则抛出错误消息
*
* @param collection 断言参数
* @param errorCode 错误消息
*/
public static void notEmpty(Collection<?> collection, IErrorCode errorCode) {
if (CollectionUtils.isNotEmpty(collection)) {
Assert.fail(errorCode);
}
}

/**
* 断言参数不为空,否则抛出错误消息
*
* @param map 断言参数
* @param errorCode 错误消息
*/
public static void notEmpty(Map<?, ?> map, IErrorCode errorCode) {
if (ObjectUtils.isEmpty(map)) {
Assert.fail(errorCode);
}
}

/**
* 断言对象是给定类型的实例,否则抛出错误消息
*
* @param type 断言类型
* @param obj 断言对象
* @param errorCode 错误消息
*/
public static void isInstanceOf(Class<?> type, Object obj, IErrorCode errorCode) {
Assert.notNull(errorCode, type);
if (!type.isInstance(obj)) {
Assert.fail(errorCode);
}
}

public static void isAssignable(Class<?> superType, Class<?> subType, IErrorCode errorCode) {
Assert.notNull(errorCode, superType);
if (subType == null || !superType.isAssignableFrom(subType)) {
Assert.fail(errorCode);
}
}

}

+ 20
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseController.java 查看文件

@@ -0,0 +1,20 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import org.springframework.web.bind.annotation.RestController;

/**
* 控制器基类
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
@RestController
public abstract class BaseController extends BaseSupport {

}

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseDto.java 查看文件

@@ -0,0 +1,16 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import java.io.Serializable;

/**
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public class BaseDto implements Serializable {
}

+ 18
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseParam.java 查看文件

@@ -0,0 +1,18 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import java.io.Serializable;

/**
* 接口请求参数基类
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public class BaseParam implements Serializable {
}

+ 18
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseService.java 查看文件

@@ -0,0 +1,18 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;


/**
* 服务基类
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public abstract class BaseService extends BaseSupport {

}

+ 255
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseSupport.java 查看文件

@@ -0,0 +1,255 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import com.alibaba.fastjson.JSON;
import com.mt.wms.core.enums.WhetherEnum;
import com.mt.wms.core.dto.LoginUser;
import com.mt.wms.core.vo.R;
import lombok.Builder;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.core.NamedThreadLocal;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
* 接口支持基类
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public abstract class BaseSupport {
private static final ThreadLocal<LoginUser> loginUserHolder = new NamedThreadLocal<>("LoginUser");

/**
* 获取当前登录用户信息
*
* @return
*/
protected LoginUser getLoginUser() {
// 后续完善拦截器再使用该方式
// LoginUser loginUser = loginUserHolder.get();
// if (loginUser != null) {
// return loginUser;
// }
HttpSession session = getHttpServletRequest().getSession(false);
LoginUser loginUser = null;
if (session != null) {
String loginUserJson = (String) session.getAttribute(LoginUser.HTTP_HEADER_NAME);
if (StringUtils.isNotBlank(loginUserJson)) {
loginUser = JSON.parseObject(loginUserJson, LoginUser.class);
return loginUser;
}
}
return null;
}

/**
* 获取当前http请求对象
*
* @return
*/
protected HttpServletRequest getHttpServletRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}

/**
* 获取当前http响应对象
*
* @return
*/
protected HttpServletResponse getHttpServletResponse() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
}

/**
* <p>
* 请求成功
* </p>
*
* @param data 数据内容
* @param <T> 对象泛型
* @return
*/
protected <T> R<T> successful(T data) {
return R.ok(data);
}

/**
* <p>
* 请求成功
* </p>
*
* @param msg 提示内容
* @param data 数据内容
* @param <T> 对象泛型
* @return
*/
protected <T> R<T> successful(String msg, T data) {
return R.ok(msg, data);
}

/**
* <p>
* 请求失败
* </p>
*
* @param code 错误码
* @param msg 提示内容
* @param <T> 对象泛型
* @return
*/
protected <T> R<T> failed(int code, String msg) {
return R.failed(code, msg);
}

/**
* <p>
* 请求失败
* </p>
*
* @param msg 提示内容
* @param <T> 对象泛型
* @return
*/
protected <T> R<T> failed(String msg) {
return R.failed(msg);
}

/**
* <p>
* 请求失败
* </p>
*
* @param errorCode 请求错误码
* @param <T> 对象泛型
* @return
*/
protected <T> R<T> failed(IErrorCode errorCode) {
return R.failed(errorCode);
}

protected R<String> addResult(boolean status) {
return status ? successful("添加成功", null) : failed("添加失败");
}

protected R<String> editResult(boolean status) {
return status ? successful("修改成功", null) : failed("修改失败");
}

protected R<String> delResult(boolean status) {
return status ? successful("删除成功", null) : failed("删除失败");
}

protected R<String> enabledResult(boolean status) {
return status ? successful("已启用", null) : failed("已禁用");
}

/**
* 设置公共字段值,一般用于创建新记录,包含以下字段:
*
* <p>
* {@link CommonField#enabled}<br>
* {@link CommonField#valid}<br>
* {@link CommonField#creator}<br>
* {@link CommonField#creatorName}<br>
* {@link CommonField#createTime}<br>
* {@link CommonField#updater}<br>
* {@link CommonField#updaterName}<br>
* {@link CommonField#updateTime}<br>
* </p>
*
* @param t 需要设置的对象
* @param ignoreProperties 忽略的字段
* @param <T>
*/
protected <T extends Serializable> T setCommonField(T t, String... ignoreProperties) {
CommonField commonField = CommonField.builder()
.enabled(WhetherEnum.YES.getValue())
.valid(WhetherEnum.YES.getValue())
.createTime(LocalDateTime.now())
.creator(getLoginUser().getUserId())
.creatorName(getLoginUser().getUserName())
.updateTime(LocalDateTime.now())
.updater(getLoginUser().getUserId())
.updaterName(getLoginUser().getUserName())
.build();
BeanUtils.copyProperties(commonField, t, ignoreProperties);
return t;
}

/**
* 设置更新的公共字段值,一般用于更新记录,包含以下字段:
*
* <p>
* {@link CommonField#updater}<br>
* {@link CommonField#updaterName}<br>
* {@link CommonField#updateTime}<br>
* </p>
*
* @param t 需要设置的对象
* @param <T>
*/
protected <T extends Serializable> T setUpdateCommonField(T t) {
CommonField commonField = CommonField.builder()
.updater(getLoginUser().getUserId())
.updaterName(getLoginUser().getUserName())
.updateTime(LocalDateTime.now())
.build();
BeanUtils.copyProperties(commonField, t, "enabled", "valid");
return t;
}

@Data
@Builder
private static class CommonField implements Serializable {
/**
* 启用状态:0 、停用,1、启用
*/
private Integer enabled;
/**
* 删除标志,是否有效:1 可用 0不可用
*/
private Integer valid;


/**
* 创建人
*/
private Long creator;
/**
* 创建人
*/
private String creatorName;
/**
* 创建时间
*/
private LocalDateTime createTime;


/**
* 更新人
*/
private Long updater;
/**
* 更新人
*/
private String updaterName;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
}

+ 18
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/BaseVo.java 查看文件

@@ -0,0 +1,18 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import java.io.Serializable;

/**
* 视图对象基类
*
* @author jiff
* @date 2018/11/7
* @since 1.0
*/
public class BaseVo implements Serializable {
}

+ 41
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/IEnum.java 查看文件

@@ -0,0 +1,41 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import java.io.Serializable;

/**
* 枚举接口
*
* @param <T>
* @author jiff
* @date 2018/11/7
* @since 1.0
*/
public interface IEnum<T extends Serializable> {

/**
* 数据值
*
* @return 数据值
*/
T getValue();

/**
* 标签名
*
* @return 标签名
*/
String getLabel();

/**
* 备注,对数据值进行详细说明
*
* @return 备注
*/
String getRemark();

}

+ 63
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/IErrorCode.java 查看文件

@@ -0,0 +1,63 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;


/**
* api错误码定义
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public interface IErrorCode {
/**
* 成功
*/
int CODE_SUCCESSFUL = 0;
/**
* 失败
*/
int CODE_FAILED = 1;
/**
* 无效的请求参数
*/
int CODE_INVALID_PARAMETER = 2;
/**
* 数据未授权
*/
int CODE_FORBIDDEN_DATA = 9;
/**
* 用户已存在
*/
int CODE_USER_EXISTENT = 10;
/**
* 用户不存在
*/
int CODE_USER_NON_EXISTENT = 11;
/**
* 用户未登录
*/
int CODE_UNAUTHORIZED = 401;
/**
* 用户未授权
*/
int CODE_FORBIDDEN = 403;

/**
* 错误编码:0、成功 否则失败
*
* @return 错误码:0、成功 否则失败
*/
int getCode();

/**
* 错误描述
*
* @return 错误描述
*/
String getMsg();
}

+ 58
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/base/ITree.java 查看文件

@@ -0,0 +1,58 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.base;

import java.util.List;

/**
* 树接口
*
* @param <T> 泛型参数
* @author jiff
* @date 2018/11/27
* @since 1.0
*/
public interface ITree<T extends ITree> {

/**
* 主键
*
* @return ID
*/
Long getId();

/**
* 父ID
*
* @return 父ID
*/
Long getParentId();

/**
* 获取子列表
*
* @return 子列表
*/
List<T> getChildren();

/**
* 设置子列表
*
* @param children 子列表
* @return 当前对象
*/
T setChildren(List<T> children);

/**
* 设置选中状态
*
* @param checked 选中状态,true:选中,否则未选中
* @return 当前对象
*/
default T setChecked(boolean checked) {
return (T) this;
}
}

+ 43
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/AliyunSmsConfig.java 查看文件

@@ -0,0 +1,43 @@
/*
* Copyright (c) 2020.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotEmpty;

/**
* @author jiff
* @date 2020-03-10
* @since 1.0
*/
@Component
@ConfigurationProperties(prefix = "wms.aliyun.sms")
@Data
@Validated
public class AliyunSmsConfig {
/**
* 开发者标识
*/
@NotEmpty
private String product;

@NotEmpty
private String domain;
/**
* 访问密钥ID
*/
@NotEmpty
private String accessKeyId;
/**
* 访问密钥
*/
@NotEmpty
private String accessKeySecret;
}

+ 34
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/AutoConfiguration.java 查看文件

@@ -0,0 +1,34 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import com.mt.wms.core.runner.MesApplicationRunner;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
@Configuration
@ComponentScan({"com.mt.wms.core.config", "com.mt.wms.core.handler", "com.mt.wms.core.dal.service", "com.mt.wms.core.service", "com.mt.wms.core.utils"})
public class AutoConfiguration {
/**
* springboot启动之后会调用{@link MesApplicationRunner#run(ApplicationArguments)}方法
*
* @param applicationContext
* @return
*/
@Bean
public ApplicationRunner lisApplicationRunner(ApplicationContext applicationContext) {
return new MesApplicationRunner(applicationContext);
}
}

+ 46
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/CommonConfig.java 查看文件

@@ -0,0 +1,46 @@
/*
* Copyright (c) 2020.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotEmpty;

/**
* <p>
*
* </P>
*
* @author FanYi
* @date 2020/7/6
* @since 1.0
*/
@Component
@ConfigurationProperties(prefix = "wms.common")
@Data
@Validated
public class CommonConfig {

/**
* 文件上传路径
*/
@NotEmpty
private String uploadPath;

/**
* 前端主机地址
*/
@NotEmpty
private String webHost;
/**
* 后端主机地址
*/
@NotEmpty
private String apiHost;
}

+ 68
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/JacksonConfig.java 查看文件

@@ -0,0 +1,68 @@
package com.mt.wms.core.config;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;

import java.io.IOException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

/**
* @author shihairong
* @email <shihairong@zimonet.com>
* @description 针对Long型ID序列化超过16位后导致前端js处理丢失精度,改成序列化成String
* @date 2020/12/31 11:37
*/
@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfig {

@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addDeserializer(LocalDateTime.class, new MesLocalDateTimeDeserializer());
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
return objectMapper;
}

class MesLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {

@Override
public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
String text = jsonParser.getText();
if (text == null || text.length() == 0) {
return null;
}
if (text.length() > 10 && text.charAt(10) == 'T') {
if (text.endsWith("Z")) {
return LocalDateTime.ofInstant(Instant.parse(text), ZoneId.systemDefault());
}
}

return LocalDateTime.parse(text, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
}

}


}

+ 47
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/MybatisPlusConfig.java 查看文件

@@ -0,0 +1,47 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
@Configuration
public class MybatisPlusConfig {

@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}

@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}

@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
scannerConfigurer.setBasePackage("com.mt.wms.**.mapper*");
return scannerConfigurer;
}

}

+ 152
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/RedissonAutoConfiguration.java 查看文件

@@ -0,0 +1,152 @@
/*
* Copyright (c) 2019.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.util.ReflectionUtils;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
* redis客户端,主要使用其分布式锁
*
* @author jiff
* @date 2019-08-25
* @since 1.0
*/
@Configuration
@ConditionalOnClass({Redisson.class, RedisOperations.class})
@AutoConfigureBefore(RedisAutoConfiguration.class)
@EnableConfigurationProperties({RedissonProperties.class, RedisProperties.class})
public class RedissonAutoConfiguration {

@Autowired
private RedissonProperties redissonProperties;

@Autowired
private RedisProperties redisProperties;

@Autowired
private ApplicationContext ctx;


@Bean(destroyMethod = "shutdown")
@ConditionalOnMissingBean(RedissonClient.class)
public RedissonClient redisson() throws IOException {
Config config = null;
Method clusterMethod = ReflectionUtils.findMethod(RedisProperties.class, "getCluster");
Method timeoutMethod = ReflectionUtils.findMethod(RedisProperties.class, "getTimeout");
Object timeoutValue = ReflectionUtils.invokeMethod(timeoutMethod, redisProperties);
int timeout;
if (null == timeoutValue) {
timeout = 0;
} else if (!(timeoutValue instanceof Integer)) {
Method millisMethod = ReflectionUtils.findMethod(timeoutValue.getClass(), "toMillis");
timeout = ((Long) ReflectionUtils.invokeMethod(millisMethod, timeoutValue)).intValue();
} else {
timeout = (Integer) timeoutValue;
}

if (redissonProperties.getConfig() != null) {
try {
InputStream is = getConfigStream();
config = Config.fromJSON(is);
} catch (IOException e) {
// trying next format
try {
InputStream is = getConfigStream();
config = Config.fromYAML(is);
} catch (IOException e1) {
throw new IllegalArgumentException("Can't parse config", e1);
}
}
} else if (redisProperties.getSentinel() != null) {
Method nodesMethod = ReflectionUtils.findMethod(RedisProperties.Sentinel.class, "getNodes");
Object nodesValue = ReflectionUtils.invokeMethod(nodesMethod, redisProperties.getSentinel());

String[] nodes;
if (nodesValue instanceof String) {
nodes = convert(Arrays.asList(((String) nodesValue).split(",")));
} else {
nodes = convert((List<String>) nodesValue);
}

config = new Config();
config.useSentinelServers()
.setMasterName(redisProperties.getSentinel().getMaster())
.addSentinelAddress(nodes)
.setDatabase(redisProperties.getDatabase())
.setConnectTimeout(timeout)
.setPassword(redisProperties.getPassword());
} else if (clusterMethod != null && ReflectionUtils.invokeMethod(clusterMethod, redisProperties) != null) {
Object clusterObject = ReflectionUtils.invokeMethod(clusterMethod, redisProperties);
Method nodesMethod = ReflectionUtils.findMethod(clusterObject.getClass(), "getNodes");
List<String> nodesObject = (List) ReflectionUtils.invokeMethod(nodesMethod, clusterObject);

String[] nodes = convert(nodesObject);

config = new Config();
config.useClusterServers()
.addNodeAddress(nodes)
.setConnectTimeout(timeout)
.setPassword(redisProperties.getPassword());
} else {
config = new Config();
String prefix = "redis://";
Method method = ReflectionUtils.findMethod(RedisProperties.class, "isSsl");
if (method != null && (Boolean) ReflectionUtils.invokeMethod(method, redisProperties)) {
prefix = "rediss://";
}

config.useSingleServer()
.setAddress(prefix + redisProperties.getHost() + ":" + redisProperties.getPort())
.setConnectTimeout(timeout)
.setDatabase(redisProperties.getDatabase())
.setPassword(redisProperties.getPassword());
}

return Redisson.create(config);
}

private String[] convert(List<String> nodesObject) {
List<String> nodes = new ArrayList<String>(nodesObject.size());
for (String node : nodesObject) {
if (!node.startsWith("redis://") && !node.startsWith("rediss://")) {
nodes.add("redis://" + node);
} else {
nodes.add(node);
}
}
return nodes.toArray(new String[nodes.size()]);
}

private InputStream getConfigStream() throws IOException {
Resource resource = ctx.getResource(redissonProperties.getConfig());
InputStream is = resource.getInputStream();
return is;
}


}

+ 28
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/RedissonProperties.java 查看文件

@@ -0,0 +1,28 @@
/*
* Copyright (c) 2019.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
* @author jiff
* @date 2019-08-25
* @since 1.0
*/
@ConfigurationProperties(prefix = "spring.redis.redisson")
public class RedissonProperties {

private String config;

public String getConfig() {
return config;
}

public void setConfig(String config) {
this.config = config;
}

}

+ 31
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/TencentCloudConfig.java 查看文件

@@ -0,0 +1,31 @@
package com.mt.wms.core.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

/**
* <p>
* 腾讯云公共配置
* </p>
*
* @author Mr.ZhangShi
* @version 1.0
* @date 2020/8/10
*/
@Component
@ConfigurationProperties(prefix = "wms.tencentcloud")
@Data
public class TencentCloudConfig {

/**
* 账户id
*/
private String secretId;

/**
* 账户密钥
*/
private String secretKey;
}

+ 31
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/TencentCloudSmsConfig.java 查看文件

@@ -0,0 +1,31 @@
package com.mt.wms.core.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

/**
* <p>
* 腾讯云短信配置
* </p>
*
* @author Mr.ZhangShi
* @version 1.0
* @date 2020/8/10
*/
@Component
@ConfigurationProperties(prefix = "wms.tencentcloud.sms")
@Data
public class TencentCloudSmsConfig{

/**
* 短信应用id
*/
private String appId;

/**
* 短信应用key
*/
private String appKey;
}

+ 29
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/UploadFileConfig.java 查看文件

@@ -0,0 +1,29 @@
package com.mt.wms.core.config;

import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.MultipartConfigElement;

/**
* <p>
* </p>
*
* @author Mr.ZhangShi
* @date 2019/4/28
* @since 1.0
*/
@Configuration
public class UploadFileConfig {

@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大 KB,MB
factory.setMaxFileSize("100MB");
/// 设置总上传数据总大小
factory.setMaxRequestSize("100MB");
return factory.createMultipartConfig();
}
}

+ 38
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/ValidatorConfig.java 查看文件

@@ -0,0 +1,38 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import org.hibernate.validator.HibernateValidator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

/**
* 参数验证器配置,可以配置验证模式是快速失败返回还是普通模式,开发阶段先开启普通模式
*
* @author jiff
* @date 2018/11/6
* @since 1.0
*/
@Configuration
public class ValidatorConfig {
@Bean
public Validator validator() {
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
//failFast:true 快速失败返回模式,false 普通模式
.failFast(false)
// .addProperty("hibernate.validator.fail_fast", "true")
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();

return validator;
}

}

+ 68
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/config/WxConfig.java 查看文件

@@ -0,0 +1,68 @@
/*
* Copyright (c) 2020.
* http://www.ulabcare.com
*/

package com.mt.wms.core.config;

import lombok.Data;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotNull;

/**
* @author jiff
* @date 2020-03-10
* @since 1.0
*/
@Component
@ConditionalOnProperty(prefix = "wms.wechat", name = {"ma.appId"})
@ConfigurationProperties(prefix = "wms.wechat")
@Data
@Validated
public class WxConfig {

private String mchId;
private String mchKey;
@NotNull
private WechatProperties ma;


@Data
public static class WechatProperties {
/**
* 应用ID
*/
private String appId;
/**
* 接口秘钥
*/
private String appSecret;
/**
* 微信公众号开发模式接口配置信息中的Token保持一致
*/
private String token;
/**
* 微信生成的 ASEKey
*/
private String aseKey;
/**
* 商户号
*/
private String mchId;
/**
* 商户秘钥
*/
private String mchKey;

/**
* 证书路径
*/
private String keyPath;
}


}

+ 61
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/constants/CommonConstant.java 查看文件

@@ -0,0 +1,61 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.constants;

/**
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public interface CommonConstant {


/**
* 版本控制
*/
Integer VERSION = 0;

/**
* 默认密码
*/
String DEFAULT_PASSWORD = "123456";

/**
* 公共服务模块
*/
String API_MODULE_BASE = "api/";

/**
* 公共服务模块
*/
String API_MODULE_COMMON = API_MODULE_BASE + "common/";

/**
* 统一认证模块
*/
String API_MODULE_PASSPORT = API_MODULE_BASE + "passport/";

/**
* 管理模块
*/
String API_MODULE_MANAGER = API_MODULE_BASE + "manager/";

/**
* 用户管理模块
*/
String API_MODULE_UPMS = API_MODULE_BASE + "upms/";


/**
* 移动端模块
*/
String API_MODULE_MOBILE = API_MODULE_BASE + "mobile/";

/**
* 报表端模块
*/
String API_MODULE_REPORT = API_MODULE_BASE + "report/";
}

+ 19
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/constants/MessageQueueConstant.java 查看文件

@@ -0,0 +1,19 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.constants;

/**
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public interface MessageQueueConstant {
String SMS_CODE = "sms_code";
String SMS_DINGTALK = "sms_dingtalk";
String LOGIN_LOG = "login_log";
String API_LOG = "api_log";

}

+ 97
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/constants/RedisConstant.java 查看文件

@@ -0,0 +1,97 @@
/*
* Copyright (c) 2018.
* http://www.ulabcare.com
*/

package com.mt.wms.core.constants;

import com.mt.wms.core.utils.StringUtils;

/**
* redis key 常量定义类,为了防止key冲突,第一个命名空间尽量定义在该类中。
* <p>
* 建议使用命名空间格式设置key名称:
* <p><pre>
* 1.1 key = 用途:业务限定:key。
* 例如:lock:order:xxx; sequence:order_no:xxx
* 1.2 key采用小写结构,不采用驼峰格式,中间利用下滑线(_)做连接,例如:user_name、user_pass。
* 1.3 key的长度限制在128字节之内,既可以节省空间,又可以加快查询速度。
* </pre></p>
*
* @author jiff
* @date 2018/11/1
* @since 1.0
*/
public interface RedisConstant {
/**
* key命名空间分隔符{@value}
*/
String KEY_NAMESPACE_SEPARATOR = ":";

/**
* 分布式锁的key命名空间
*/
String LOCK_PREFIX = "lock:";

/**
* 短信的key命名空间{@value}
*/
String SMS_PREFIX = "sms";

/**
* 微信的key命名空间{@value}
*/
String WECHAT_PREFIX = "wechat";

/**
* 生成短信验证码键值
*
* @param mobile 手机号码
* @return key
*/
static String genSmsCodeKey(String mobile) {
return genKey(SMS_PREFIX, "code", mobile);
}

/**
* 生成微信oauthCode键值
*
* @param appId appId
* @param oauthCode oauthCode
* @return key
*/
static String genWechatOauthCodeKey(String appId, String oauthCode) {
return genKey(WECHAT_PREFIX, "oauth_code", appId, oauthCode);
}

/**
* 生成微信jsApiTicket键值
*
* @param appId appId
* @return key
*/
static String genWechatJsApiTicketKey(String appId) {
return genKey(WECHAT_PREFIX, "wechat_jsapi_ticket", appId);
}


/**
* 生成微信weChatAccessTokenCode键值
*
* @param appId appId
* @return key
*/
static String genWechatAccessTokenCodeKey(String appId) {
return genKey(WECHAT_PREFIX, "wechat_access_token", appId);
}

/**
* 生成redis键值
*
* @param keys 键值数组
* @return key0:key1:key2:keyN
*/
static String genKey(String... keys) {
return StringUtils.join(keys, KEY_NAMESPACE_SEPARATOR);
}
}

+ 448
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/LoginLog.java 查看文件

@@ -0,0 +1,448 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 登录日志表,存放历史会话信息
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_login_log")
public class LoginLog extends Model<LoginLog> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 会话ID
*/
@TableField("session_id")
private String sessionId;

/**
* 账号ID
*/
@TableField("account_id")
private Long accountId;

/**
* 用户ID
*/
@TableField("user_id")
private Long userId;

/**
* 公司ID
*/
@TableField("corp_id")
private Long corpId;

/**
* 医院ID
*/
@TableField("hospital_id")
private Long hospitalId;

/**
* 组织ID
*/
@TableField("org_id")
private Long orgId;

/**
* 账号
*/
@TableField("account")
private String account;

/**
* 手机号
*/
@TableField("mobile")
private String mobile;

/**
* 用户名称
*/
@TableField("user_name")
private String userName;

/**
* 公司名称
*/
@TableField("corp_name")
private String corpName;

/**
* 医院名称
*/
@TableField("hospital_name")
private String hospitalName;

/**
* 组织名称,存放平台组织或者医院科室或者公司门店
*/
@TableField("org_name")
private String orgName;

/**
* 用户类型:1、平台用户,2、公司用户,3、医院用户,4、患者
*/
@TableField("user_type")
private Integer userType;

/**
* 应用类型:1、pc,2、app,3、wechat,4、miniapp
*/
@TableField("app_type")
private Integer appType;

/**
* 应用编码:暂未使用
*/
@TableField("app_code")
private Integer appCode;

/**
* 登录类型:1、自主登录,2、漫游登录
*/
@TableField("login_type")
private Integer loginType;

/**
* 退出类型:1、自主退出,2、管理退出,3,超时退出
*/
@TableField("logout_type")
private Integer logoutType;

/**
* 登录时间
*/
@TableField("login_time")
private LocalDateTime loginTime;

/**
* 退出时间
*/
@TableField("logout_time")
private LocalDateTime logoutTime;

/**
* 设备类型
*/
@TableField("device_class")
private String deviceClass;

/**
* 设备名称
*/
@TableField("device_name")
private String deviceName;

/**
* 设备品牌
*/
@TableField("device_brand")
private String deviceBrand;

/**
* 操作系统
*/
@TableField("os")
private String os;

/**
* 浏览器
*/
@TableField("browser")
private String browser;

/**
* 国家
*/
@TableField("country")
private String country;

/**
* 省份
*/
@TableField("province")
private String province;

/**
* 地市
*/
@TableField("city")
private String city;

/**
* 区县
*/
@TableField("county")
private String county;

/**
* 地址
*/
@TableField("address")
private String address;

/**
* 精度
*/
@TableField("lng")
private String lng;

/**
* 纬度
*/
@TableField("lat")
private String lat;

/**
* 网络服务提供商
*/
@TableField("isp")
private String isp;

/**
* IP地址
*/
@TableField("ip")
private String ip;

/**
* 用户代理,存放用户登录时客户端信息
*/
@TableField("user_agent")
private String userAgent;

/**
* 退出地址
*/
@TableField("logout_address")
private String logoutAddress;

/**
* 退出IP地址
*/
@TableField("logout_ip")
private String logoutIp;

/**
* 退出用户代理,存放用户退出时客户端信息
*/
@TableField("logout_user_agent")
private String logoutUserAgent;

/**
* 异常状态:0、正常,1、省份异常,2、地市异常,3、区县异常
*/
@TableField("abnormal_status")
private Integer abnormalStatus;

/**
* ip转地址状态:0、未获取,1、登录地址获取成功,2、退出地址获取成功,-1、登录地址获取失败,-2、退出地址获取失败
*/
@TableField("ip_to_address_status")
private Integer ipToAddressStatus;

/**
* ip转地址次数,最多转换3次,三次失败修改状态为失败(-1、-2)
*/
@TableField("ip_to_address_count")
private Integer ipToAddressCount;

/**
* ip转地址时间
*/
@TableField("ip_to_address_time")
private LocalDateTime ipToAddressTime;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String SESSION_ID = "session_id";

public static final String ACCOUNT_ID = "account_id";

public static final String USER_ID = "user_id";

public static final String CORP_ID = "corp_id";

public static final String HOSPITAL_ID = "hospital_id";

public static final String ORG_ID = "org_id";

public static final String ACCOUNT = "account";

public static final String MOBILE = "mobile";

public static final String USER_NAME = "user_name";

public static final String CORP_NAME = "corp_name";

public static final String HOSPITAL_NAME = "hospital_name";

public static final String ORG_NAME = "org_name";

public static final String USER_TYPE = "user_type";

public static final String APP_TYPE = "app_type";

public static final String APP_CODE = "app_code";

public static final String LOGIN_TYPE = "login_type";

public static final String LOGOUT_TYPE = "logout_type";

public static final String LOGIN_TIME = "login_time";

public static final String LOGOUT_TIME = "logout_time";

public static final String DEVICE_CLASS = "device_class";

public static final String DEVICE_NAME = "device_name";

public static final String DEVICE_BRAND = "device_brand";

public static final String OS = "os";

public static final String BROWSER = "browser";

public static final String COUNTRY = "country";

public static final String PROVINCE = "province";

public static final String CITY = "city";

public static final String COUNTY = "county";

public static final String ADDRESS = "address";

public static final String LNG = "lng";

public static final String LAT = "lat";

public static final String ISP = "isp";

public static final String IP = "ip";

public static final String USER_AGENT = "user_agent";

public static final String LOGOUT_ADDRESS = "logout_address";

public static final String LOGOUT_IP = "logout_ip";

public static final String LOGOUT_USER_AGENT = "logout_user_agent";

public static final String ABNORMAL_STATUS = "abnormal_status";

public static final String IP_TO_ADDRESS_STATUS = "ip_to_address_status";

public static final String IP_TO_ADDRESS_COUNT = "ip_to_address_count";

public static final String IP_TO_ADDRESS_TIME = "ip_to_address_time";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 390
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/LoginSession.java 查看文件

@@ -0,0 +1,390 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 登录会话表,存放在线用户信息
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_login_session")
public class LoginSession extends Model<LoginSession> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 会话ID
*/
@TableField("session_id")
private String sessionId;

/**
* 账号ID
*/
@TableField("account_id")
private Long accountId;

/**
* 用户ID
*/
@TableField("user_id")
private Long userId;

/**
* 公司ID
*/
@TableField("corp_id")
private Long corpId;

/**
* 医院ID
*/
@TableField("hospital_id")
private Long hospitalId;

/**
* 组织ID
*/
@TableField("org_id")
private Long orgId;

/**
* 账号
*/
@TableField("account")
private String account;

/**
* 手机号
*/
@TableField("mobile")
private String mobile;

/**
* 用户名称
*/
@TableField("user_name")
private String userName;

/**
* 公司名称
*/
@TableField("corp_name")
private String corpName;

/**
* 医院名称
*/
@TableField("hospital_name")
private String hospitalName;

/**
* 组织名称,存放平台组织或者医院科室或者公司门店
*/
@TableField("org_name")
private String orgName;

/**
* 用户类型:1、平台用户,2、公司用户,3、医院用户,4、患者
*/
@TableField("user_type")
private Integer userType;

/**
* 应用类型:1、pc,2、app,3、wechat,4、miniapp
*/
@TableField("app_type")
private Integer appType;

/**
* 应用编码:暂未使用
*/
@TableField("app_code")
private Integer appCode;

/**
* 登录类型:1、自主登录,2、漫游登录
*/
@TableField("login_type")
private Integer loginType;

/**
* 登录时间
*/
@TableField("login_time")
private LocalDateTime loginTime;

/**
* 设备类型
*/
@TableField("device_class")
private String deviceClass;

/**
* 设备名称
*/
@TableField("device_name")
private String deviceName;

/**
* 设备品牌
*/
@TableField("device_brand")
private String deviceBrand;

/**
* 操作系统
*/
@TableField("os")
private String os;

/**
* 浏览器
*/
@TableField("browser")
private String browser;

/**
* 国家
*/
@TableField("country")
private String country;

/**
* 省份
*/
@TableField("province")
private String province;

/**
* 地市
*/
@TableField("city")
private String city;

/**
* 区县
*/
@TableField("county")
private String county;

/**
* 地址
*/
@TableField("address")
private String address;

/**
* 精度
*/
@TableField("lng")
private String lng;

/**
* 纬度
*/
@TableField("lat")
private String lat;

/**
* 网络服务提供商
*/
@TableField("isp")
private String isp;

/**
* IP地址
*/
@TableField("ip")
private String ip;

/**
* 用户代理,存放用户登录时客户端信息
*/
@TableField("user_agent")
private String userAgent;

/**
* ip转地址状态:0、未获取,1、登录地址获取成功,2、退出地址获取成功,-1、登录地址获取失败,-2、退出地址获取失败
*/
@TableField("ip_to_address_status")
private Integer ipToAddressStatus;

/**
* ip转地址次数,最多转换3次,三次失败修改状态为失败(-1、-2)
*/
@TableField("ip_to_address_count")
private Integer ipToAddressCount;

/**
* ip转地址时间
*/
@TableField("ip_to_address_time")
private LocalDateTime ipToAddressTime;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String SESSION_ID = "session_id";

public static final String ACCOUNT_ID = "account_id";

public static final String USER_ID = "user_id";

public static final String CORP_ID = "corp_id";

public static final String HOSPITAL_ID = "hospital_id";

public static final String ORG_ID = "org_id";

public static final String ACCOUNT = "account";

public static final String MOBILE = "mobile";

public static final String USER_NAME = "user_name";

public static final String CORP_NAME = "corp_name";

public static final String HOSPITAL_NAME = "hospital_name";

public static final String ORG_NAME = "org_name";

public static final String USER_TYPE = "user_type";

public static final String APP_TYPE = "app_type";

public static final String APP_CODE = "app_code";

public static final String LOGIN_TYPE = "login_type";

public static final String LOGIN_TIME = "login_time";

public static final String DEVICE_CLASS = "device_class";

public static final String DEVICE_NAME = "device_name";

public static final String DEVICE_BRAND = "device_brand";

public static final String OS = "os";

public static final String BROWSER = "browser";

public static final String COUNTRY = "country";

public static final String PROVINCE = "province";

public static final String CITY = "city";

public static final String COUNTY = "county";

public static final String ADDRESS = "address";

public static final String LNG = "lng";

public static final String LAT = "lat";

public static final String ISP = "isp";

public static final String IP = "ip";

public static final String USER_AGENT = "user_agent";

public static final String IP_TO_ADDRESS_STATUS = "ip_to_address_status";

public static final String IP_TO_ADDRESS_COUNT = "ip_to_address_count";

public static final String IP_TO_ADDRESS_TIME = "ip_to_address_time";

public static final String REMARK = "remark";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 176
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/Resource.java 查看文件

@@ -0,0 +1,176 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 资源表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_resource")
public class Resource extends Model<Resource> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 服务ID
*/
@TableField("service_id")
private Long serviceId;

/**
* 名称
*/
@TableField("name")
private String name;

/**
* 请求地址,可以用于前端ajax调用,后端用于做权限控制
*/
@TableField("url")
private String url;

/**
* 请求类型:GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
*/
@TableField("method")
private String method;

/**
* 子系统:0、common,1、platform,2、partner,3、hospital,4、patient 用于限定维护菜单资源关系,公共资源允许所有菜单关联,其他资源只允许对应的菜单关联,如:平台菜单只允许关联到公共资源和平台资源
*/
@TableField("subsystem")
private Integer subsystem;

/**
* 分类:0、common,1、pc,2、app,3、wechat,4、miniapp
*/
@TableField("category")
private Integer category;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String SERVICE_ID = "service_id";

public static final String NAME = "name";

public static final String URL = "url";

public static final String METHOD = "method";

public static final String SUBSYSTEM = "subsystem";

public static final String CATEGORY = "category";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 144
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/Service.java 查看文件

@@ -0,0 +1,144 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 服务表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_service")
public class Service extends Model<Service> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 编码
*/
@TableField("code")
private String code;

/**
* 名称
*/
@TableField("name")
private String name;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 160
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsCode.java 查看文件

@@ -0,0 +1,160 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 短信验证码表,过期时间和使用状态可以不用
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sms_code")
public class SmsCode extends Model<SmsCode> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 手机号码
*/
@TableField("mobile")
private String mobile;

/**
* 验证码
*/
@TableField("code")
private String code;

/**
* 1、注册 2、找回密码 3、动态密码
*/
@TableField("type")
private Integer type;

/**
* 过期时间
*/
@TableField("expires_time")
private LocalDateTime expiresTime;

/**
* 使用状态:0、未使用,1、已使用
*/
@TableField("used_status")
private Integer usedStatus;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String MOBILE = "mobile";

public static final String CODE = "code";

public static final String TYPE = "type";

public static final String EXPIRES_TIME = "expires_time";

public static final String USED_STATUS = "used_status";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 176
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsScene.java 查看文件

@@ -0,0 +1,176 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 短信场景表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sms_scene")
public class SmsScene extends Model<SmsScene> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 公司ID,0为公用,默认使用0对应的短信场景
*/
@TableField("corp_id")
private Long corpId;

/**
* 场景类型 0、其他/未分类 1、注册 2、找回密码 3、动态密码 4、订单 5、支付 6、报告单 9、系统通知
*/
@TableField("type")
private Integer type;

/**
* 场景编码,业务系统根据该编码区分不同的业务场景
*/
@TableField("code")
private String code;

/**
* 场景名称
*/
@TableField("name")
private String name;

/**
* 短信签名ID
*/
@TableField("sign_id")
private Long signId;

/**
* 短信模板ID
*/
@TableField("template_id")
private Long templateId;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String CORP_ID = "corp_id";

public static final String TYPE = "type";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String SIGN_ID = "sign_id";

public static final String TEMPLATE_ID = "template_id";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 208
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsSend.java 查看文件

@@ -0,0 +1,208 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 短信发送表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sms_send")
public class SmsSend extends Model<SmsSend> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 公司ID,0为公用,默认使用0对应的短信场景
*/
@TableField("corp_id")
private Long corpId;

/**
* 短信场景ID
*/
@TableField("scene_id")
private Long sceneId;

/**
* 模板编号,第三方模板编码,如阿里云短信模板code
*/
@TableField("template_code")
private String templateCode;

/**
* 短信类型 0、其他/未分类 1、注册 2、找回密码 3、动态密码 4、订单 5、支付 6、报告单 9、系统通知
*/
@TableField("type")
private Integer type;

/**
* 手机号码,多个号码用户英文逗号(,)分隔
*/
@TableField("mobile")
private String mobile;

/**
* 短信内容
*/
@TableField("content")
private String content;

/**
* 关联ID,如:用户ID、订单ID等
*/
@TableField("relation_id")
private String relationId;

/**
* 短信接口测ID
*/
@TableField("sid")
private String sid;

/**
* 发送条数
*/
@TableField("send")
private Integer send;

/**
* 短信接口结果码
*/
@TableField("result_code")
private String resultCode;

/**
* 短信接口结果说明
*/
@TableField("result_info")
private String resultInfo;

/**
* 短信接口响应消息,完整的响应包
*/
@TableField("response")
private String response;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String CORP_ID = "corp_id";

public static final String SCENE_ID = "scene_id";

public static final String TEMPLATE_CODE = "template_code";

public static final String TYPE = "type";

public static final String MOBILE = "mobile";

public static final String CONTENT = "content";

public static final String RELATION_ID = "relation_id";

public static final String SID = "sid";

public static final String SEND = "send";

public static final String RESULT_CODE = "result_code";

public static final String RESULT_INFO = "result_info";

public static final String RESPONSE = "response";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 144
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsSign.java 查看文件

@@ -0,0 +1,144 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 短信签名表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sms_sign")
public class SmsSign extends Model<SmsSign> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 签名名称
*/
@TableField("name")
private String name;

/**
* 申请时间
*/
@TableField("apply_time")
private LocalDateTime applyTime;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String NAME = "name";

public static final String APPLY_TIME = "apply_time";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 176
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SmsTemplate.java 查看文件

@@ -0,0 +1,176 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 短信模板表,用于定义阿里云短信模板
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sms_template")
public class SmsTemplate extends Model<SmsTemplate> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 模板类型:1、验证码,2、短信通知
*/
@TableField("type")
private Integer type;

/**
* 模板编号,第三方模板编码,如阿里云短信模板code
*/
@TableField("code")
private String code;

/**
* 模板名称
*/
@TableField("name")
private String name;

/**
* 模板内容
*/
@TableField("content")
private String content;

/**
* 模板描述
*/
@TableField("description")
private String description;

/**
* 申请时间
*/
@TableField("apply_time")
private LocalDateTime applyTime;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String TYPE = "type";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String CONTENT = "content";

public static final String DESCRIPTION = "description";

public static final String APPLY_TIME = "apply_time";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 160
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysDictData.java 查看文件

@@ -0,0 +1,160 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 数据字典表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_dict_data")
public class SysDictData extends Model<SysDictData> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 字典类型ID
*/
@TableField("dict_type_id")
private Long dictTypeId;

/**
* 数据字典类型编号
*/
@TableField("type_code")
private String typeCode;

/**
* 数据字典类型名称
*/
@TableField("type_name")
private String typeName;

/**
* 数据字典编号
*/
@TableField("data_code")
private String dataCode;

/**
* 数据字典名称
*/
@TableField("data_name")
private String dataName;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String DICT_TYPE_ID = "dict_type_id";

public static final String TYPE_CODE = "type_code";

public static final String TYPE_NAME = "type_name";

public static final String DATA_CODE = "data_code";

public static final String DATA_NAME = "data_name";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 136
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysDictType.java 查看文件

@@ -0,0 +1,136 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 数据字典类型表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_dict_type")
public class SysDictType extends Model<SysDictType> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 数据字典类型
*/
@TableField("type_code")
private String typeCode;

/**
* 类型名称
*/
@TableField("type_name")
private String typeName;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String TYPE_CODE = "type_code";

public static final String TYPE_NAME = "type_name";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 152
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysFile.java 查看文件

@@ -0,0 +1,152 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 文件表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_file")
public class SysFile extends Model<SysFile> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 文件类型编号 如病例ID
*/
@TableField("type_code")
private String typeCode;

/**
* 文件编号
*/
@TableField("file_code")
private String fileCode;

/**
* 文件名称
*/
@TableField("file_name")
private String fileName;

/**
* 文件路径URL
*/
@TableField("file_url")
private String fileUrl;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String TYPE_CODE = "type_code";

public static final String FILE_CODE = "file_code";

public static final String FILE_NAME = "file_name";

public static final String FILE_URL = "file_url";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 136
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysFileType.java 查看文件

@@ -0,0 +1,136 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 文件类型表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_file_type")
public class SysFileType extends Model<SysFileType> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 文件类型编号
*/
@TableField("type_code")
private String typeCode;

/**
* 文件类型名称
*/
@TableField("type_name")
private String typeName;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String TYPE_CODE = "type_code";

public static final String TYPE_NAME = "type_name";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 224
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysMenu.java 查看文件

@@ -0,0 +1,224 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 菜单表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_menu")
public class SysMenu extends Model<SysMenu> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 父菜单ID
*/
@TableField("parent_id")
private Long parentId;

/**
* 菜单编码
*/
@TableField("code")
private String code;

/**
* 菜单名称
*/
@TableField("name")
private String name;

/**
* 菜单图标
*/
@TableField("icon")
private String icon;

/**
* 链接地址,可以是页面地址,也可以是函数事件
*/
@TableField("href")
private String href;

/**
* 请求地址,可以用于前端ajax调用,后端用于做权限控制
*/
@TableField("url")
private String url;

/**
* 请求类型:GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
*/
@TableField("method")
private String method;

/**
* 权限,可以有多个,用逗号分隔,可用于第三方权限框架扩展
*/
@TableField("permission")
private String permission;

/**
* 分类:1、pc,2、app,3、wechat,4、miniapp
*/
@TableField("category")
private Integer category;

/**
* 类型:1、module,2、menu,3、button
*/
@TableField("type")
private Integer type;

/**
* 层级,从1开始
*/
@TableField("level")
private Integer level;

/**
* 显示顺序
*/
@TableField("order_num")
private Integer orderNum;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String PARENT_ID = "parent_id";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String ICON = "icon";

public static final String HREF = "href";

public static final String URL = "url";

public static final String METHOD = "method";

public static final String PERMISSION = "permission";

public static final String CATEGORY = "category";

public static final String TYPE = "type";

public static final String LEVEL = "level";

public static final String ORDER_NUM = "order_num";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 136
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysMenuResource.java 查看文件

@@ -0,0 +1,136 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 菜单资源关系表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_menu_resource")
public class SysMenuResource extends Model<SysMenuResource> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 菜单ID
*/
@TableField("menu_id")
private Long menuId;

/**
* 资源ID
*/
@TableField("resource_id")
private Long resourceId;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String MENU_ID = "menu_id";

public static final String RESOURCE_ID = "resource_id";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 184
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysOrg.java 查看文件

@@ -0,0 +1,184 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 系统组织表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_org")
public class SysOrg extends Model<SysOrg> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 父组织ID
*/
@TableField("parent_id")
private Long parentId;

/**
* 家谱ID,格式:/rootId/.../grandfatherId/parentId
*/
@TableField("genealogy_id")
private String genealogyId;

/**
* 名称
*/
@TableField("name")
private String name;

/**
* 联系人
*/
@TableField("contact")
private String contact;

/**
* 联系电话
*/
@TableField("phone")
private String phone;

/**
* 联系地址
*/
@TableField("address")
private String address;

/**
* 邮箱
*/
@TableField("email")
private String email;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String PARENT_ID = "parent_id";

public static final String GENEALOGY_ID = "genealogy_id";

public static final String NAME = "name";

public static final String CONTACT = "contact";

public static final String PHONE = "phone";

public static final String ADDRESS = "address";

public static final String EMAIL = "email";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 168
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysPost.java 查看文件

@@ -0,0 +1,168 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 岗位表,需根据岗位编码判断用户是否有销售、物流权限
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_post")
public class SysPost extends Model<SysPost> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 上级岗位ID,第一个岗位的上级岗位ID填0
*/
@TableField("parent_id")
private Long parentId;

/**
* 类型:0、内部岗位,1、代理商岗位
*/
@TableField("type")
private Integer type;

/**
* 编码: 内部岗位:省区经理、provincial_manager,地市主管、area_manager,业务员、sale 代理商岗位:代理商、agent
*/
@TableField("code")
private String code;

/**
* 名称
*/
@TableField("name")
private String name;

/**
* 预设标志:1 预设 0 非预设
*/
@TableField("preset")
private Integer preset;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String PARENT_ID = "parent_id";

public static final String TYPE = "type";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String PRESET = "preset";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 176
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysRole.java 查看文件

@@ -0,0 +1,176 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 角色表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_role")
public class SysRole extends Model<SysRole> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 角色编码
*/
@TableField("code")
private String code;

/**
* 角色名称
*/
@TableField("name")
private String name;

/**
* 类型:1、平台,2、药店,3、医院
*/
@TableField("type")
private Integer type;

/**
* 分类:1、pc,2、app,3、wechat,4、miniapp
*/
@TableField("category")
private Integer category;

/**
* 管理角色标志:1 管理角色0 非管理角色,管理角色不允许修改角色菜单关系
*/
@TableField("manager_flag")
private Integer managerFlag;

/**
* 预设角色标志:1 预设 0 非预设
*/
@TableField("preset")
private Integer preset;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String TYPE = "type";

public static final String CATEGORY = "category";

public static final String MANAGER_FLAG = "manager_flag";

public static final String PRESET = "preset";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 136
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysRoleMenu.java 查看文件

@@ -0,0 +1,136 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 角色菜单关系表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_role_menu")
public class SysRoleMenu extends Model<SysRoleMenu> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 角色ID
*/
@TableField("role_id")
private Long roleId;

/**
* 菜单ID
*/
@TableField("menu_id")
private Long menuId;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String ROLE_ID = "role_id";

public static final String MENU_ID = "menu_id";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 273
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysUser.java 查看文件

@@ -0,0 +1,273 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 系统用户表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_user")
public class SysUser extends Model<SysUser> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 组织ID
*/
@TableField("org_id")
private Long orgId;

/**
* 帐号
*/
@TableField("account")
private String account;

/**
* 密码,存放加密后的密码,加密方式:md5(password+nonce_str),转成小写存储
*/
@TableField("password")
private String password;

/**
* 工号
*/
@TableField("code")
private String code;

/**
* 姓名
*/
@TableField("name")
private String name;

/**
* 性别:1、男性,2、女性,0、未知
*/
@TableField("sex")
private Integer sex;

/**
* 系统用户手机号
*/
@TableField("mobile")
private String mobile;

/**
* 电话号码
*/
@TableField("phone")
private String phone;

/**
* 身份证
*/
@TableField("idcard")
private String idcard;

/**
* 生日
*/
@TableField("birthday")
private LocalDate birthday;

/**
* 系统用户邮箱
*/
@TableField("email")
private String email;

/**
* 头像
*/
@TableField("portrait")
private String portrait;

/**
* 微信
*/
@TableField("wechat")
private String wechat;

/**
* QQ
*/
@TableField("qq")
private String qq;

/**
* 联系地址
*/
@TableField("address")
private String address;

/**
* 密码随机串,用于加密明文密码
*/
@TableField("nonce_str")
private String nonceStr;

/**
* 修改密码时间
*/
@TableField("modify_password_time")
private LocalDateTime modifyPasswordTime;

/**
* 手机号码是否激活:0、未激活,1、激活,根据是否使用过短信验证码登录确认是否激活状态
*/
@TableField("mobile_enabled")
private Integer mobileEnabled;

/**
* 启用状态:0 、停用,1、启用
*/
@TableField("enabled")
private Integer enabled;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String ORG_ID = "org_id";

public static final String ACCOUNT = "account";

public static final String PASSWORD = "password";

public static final String CODE = "code";

public static final String NAME = "name";

public static final String SEX = "sex";

public static final String MOBILE = "mobile";

public static final String PHONE = "phone";

public static final String IDCARD = "idcard";

public static final String BIRTHDAY = "birthday";

public static final String EMAIL = "email";

public static final String PORTRAIT = "portrait";

public static final String WECHAT = "wechat";

public static final String QQ = "qq";

public static final String ADDRESS = "address";

public static final String NONCE_STR = "nonce_str";

public static final String MODIFY_PASSWORD_TIME = "modify_password_time";

public static final String MOBILE_ENABLED = "mobile_enabled";

public static final String ENABLED = "enabled";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 136
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysUserPost.java 查看文件

@@ -0,0 +1,136 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 用户岗位关系表,先限定一个用只有一种岗位
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_user_post")
public class SysUserPost extends Model<SysUserPost> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 用户ID
*/
@TableField("user_id")
private Long userId;

/**
* 岗位ID
*/
@TableField("post_id")
private Long postId;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String USER_ID = "user_id";

public static final String POST_ID = "post_id";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 136
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/SysUserRole.java 查看文件

@@ -0,0 +1,136 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 用户角色关系表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_user_role")
public class SysUserRole extends Model<SysUserRole> {

private static final long serialVersionUID = 1L;

/**
* 主键,自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 用户ID
*/
@TableField("user_id")
private Long userId;

/**
* 角色ID
*/
@TableField("role_id")
private Long roleId;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String USER_ID = "user_id";

public static final String ROLE_ID = "role_id";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 208
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/entity/WechatTemplateMessage.java 查看文件

@@ -0,0 +1,208 @@
package com.mt.wms.core.dal.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
* 微信模板消息表
* </p>
*
* @author mt
* @since 2020-12-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_wechat_template_message")
public class WechatTemplateMessage extends Model<WechatTemplateMessage> {

private static final long serialVersionUID = 1L;

/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;

/**
* 账号ID
*/
@TableField("account_id")
private Long accountId;

/**
* 用户类型 1、平台 2、药店 3、医院 4、患者
*/
@TableField("user_type")
private Integer userType;

/**
* 用户ID
*/
@TableField("user_id")
private Long userId;

/**
* 微信用户ID
*/
@TableField("open_id")
private String openId;

/**
* 消息模板ID
*/
@TableField("template_id")
private String templateId;

/**
* 标题
*/
@TableField("title")
private String title;

/**
* 消息内容
*/
@TableField("content")
private String content;

/**
* 链接地址
*/
@TableField("url")
private String url;

/**
* 消息ID
*/
@TableField("message_id")
private String messageId;

/**
* 状态 0、未发送 1、发送中 2、已发送 -1、失败
*/
@TableField("status")
private Integer status;

/**
* 预留字段
*/
@TableField("reserved")
private String reserved;

/**
* 备注
*/
@TableField("remark")
private String remark;

/**
* 删除标志,是否有效:1 可用 0不可用
*/
@TableField("valid")
@TableLogic
private Integer valid;

/**
* 创建人
*/
@TableField("creator")
private Long creator;

/**
* 创建人姓名
*/
@TableField("creator_name")
private String creatorName;

/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;

/**
* 更新人
*/
@TableField("updater")
private Long updater;

/**
* 更新人姓名
*/
@TableField("updater_name")
private String updaterName;

/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

/**
* 版本号
*/
@TableField("version")
@Version
private Integer version;


public static final String ID = "id";

public static final String ACCOUNT_ID = "account_id";

public static final String USER_TYPE = "user_type";

public static final String USER_ID = "user_id";

public static final String OPEN_ID = "open_id";

public static final String TEMPLATE_ID = "template_id";

public static final String TITLE = "title";

public static final String CONTENT = "content";

public static final String URL = "url";

public static final String MESSAGE_ID = "message_id";

public static final String STATUS = "status";

public static final String RESERVED = "reserved";

public static final String REMARK = "remark";

public static final String VALID = "valid";

public static final String CREATOR = "creator";

public static final String CREATOR_NAME = "creator_name";

public static final String CREATE_TIME = "create_time";

public static final String UPDATER = "updater";

public static final String UPDATER_NAME = "updater_name";

public static final String UPDATE_TIME = "update_time";

public static final String VERSION = "version";

@Override
protected Serializable pkVal() {
return this.id;
}

}

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginLogMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.LoginLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 登录日志表,存放历史会话信息 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface LoginLogMapper extends BaseMapper<LoginLog> {

}

+ 65
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginLogMapper.xml 查看文件

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.LoginLogMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.LoginLog">
<id column="id" property="id" />
<result column="session_id" property="sessionId" />
<result column="account_id" property="accountId" />
<result column="user_id" property="userId" />
<result column="corp_id" property="corpId" />
<result column="hospital_id" property="hospitalId" />
<result column="org_id" property="orgId" />
<result column="account" property="account" />
<result column="mobile" property="mobile" />
<result column="user_name" property="userName" />
<result column="corp_name" property="corpName" />
<result column="hospital_name" property="hospitalName" />
<result column="org_name" property="orgName" />
<result column="user_type" property="userType" />
<result column="app_type" property="appType" />
<result column="app_code" property="appCode" />
<result column="login_type" property="loginType" />
<result column="logout_type" property="logoutType" />
<result column="login_time" property="loginTime" />
<result column="logout_time" property="logoutTime" />
<result column="device_class" property="deviceClass" />
<result column="device_name" property="deviceName" />
<result column="device_brand" property="deviceBrand" />
<result column="os" property="os" />
<result column="browser" property="browser" />
<result column="country" property="country" />
<result column="province" property="province" />
<result column="city" property="city" />
<result column="county" property="county" />
<result column="address" property="address" />
<result column="lng" property="lng" />
<result column="lat" property="lat" />
<result column="isp" property="isp" />
<result column="ip" property="ip" />
<result column="user_agent" property="userAgent" />
<result column="logout_address" property="logoutAddress" />
<result column="logout_ip" property="logoutIp" />
<result column="logout_user_agent" property="logoutUserAgent" />
<result column="abnormal_status" property="abnormalStatus" />
<result column="ip_to_address_status" property="ipToAddressStatus" />
<result column="ip_to_address_count" property="ipToAddressCount" />
<result column="ip_to_address_time" property="ipToAddressTime" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, session_id, account_id, user_id, corp_id, hospital_id, org_id, account, mobile, user_name, corp_name, hospital_name, org_name, user_type, app_type, app_code, login_type, logout_type, login_time, logout_time, device_class, device_name, device_brand, os, browser, country, province, city, county, address, lng, lat, isp, ip, user_agent, logout_address, logout_ip, logout_user_agent, abnormal_status, ip_to_address_status, ip_to_address_count, ip_to_address_time, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginSessionMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.LoginSession;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 登录会话表,存放在线用户信息 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface LoginSessionMapper extends BaseMapper<LoginSession> {

}

+ 58
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/LoginSessionMapper.xml 查看文件

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.LoginSessionMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.LoginSession">
<id column="id" property="id" />
<result column="session_id" property="sessionId" />
<result column="account_id" property="accountId" />
<result column="user_id" property="userId" />
<result column="corp_id" property="corpId" />
<result column="hospital_id" property="hospitalId" />
<result column="org_id" property="orgId" />
<result column="account" property="account" />
<result column="mobile" property="mobile" />
<result column="user_name" property="userName" />
<result column="corp_name" property="corpName" />
<result column="hospital_name" property="hospitalName" />
<result column="org_name" property="orgName" />
<result column="user_type" property="userType" />
<result column="app_type" property="appType" />
<result column="app_code" property="appCode" />
<result column="login_type" property="loginType" />
<result column="login_time" property="loginTime" />
<result column="device_class" property="deviceClass" />
<result column="device_name" property="deviceName" />
<result column="device_brand" property="deviceBrand" />
<result column="os" property="os" />
<result column="browser" property="browser" />
<result column="country" property="country" />
<result column="province" property="province" />
<result column="city" property="city" />
<result column="county" property="county" />
<result column="address" property="address" />
<result column="lng" property="lng" />
<result column="lat" property="lat" />
<result column="isp" property="isp" />
<result column="ip" property="ip" />
<result column="user_agent" property="userAgent" />
<result column="ip_to_address_status" property="ipToAddressStatus" />
<result column="ip_to_address_count" property="ipToAddressCount" />
<result column="ip_to_address_time" property="ipToAddressTime" />
<result column="remark" property="remark" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, session_id, account_id, user_id, corp_id, hospital_id, org_id, account, mobile, user_name, corp_name, hospital_name, org_name, user_type, app_type, app_code, login_type, login_time, device_class, device_name, device_brand, os, browser, country, province, city, county, address, lng, lat, isp, ip, user_agent, ip_to_address_status, ip_to_address_count, ip_to_address_time, remark, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ResourceMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.Resource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 资源表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface ResourceMapper extends BaseMapper<Resource> {

}

+ 31
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ResourceMapper.xml 查看文件

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.ResourceMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.Resource">
<id column="id" property="id" />
<result column="service_id" property="serviceId" />
<result column="name" property="name" />
<result column="url" property="url" />
<result column="method" property="method" />
<result column="subsystem" property="subsystem" />
<result column="category" property="category" />
<result column="enabled" property="enabled" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, service_id, name, url, method, subsystem, category, enabled, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ServiceMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.Service;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 服务表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface ServiceMapper extends BaseMapper<Service> {

}

+ 27
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/ServiceMapper.xml 查看文件

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.ServiceMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.Service">
<id column="id" property="id" />
<result column="code" property="code" />
<result column="name" property="name" />
<result column="enabled" property="enabled" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, code, name, enabled, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsCodeMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SmsCode;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 短信验证码表,过期时间和使用状态可以不用 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SmsCodeMapper extends BaseMapper<SmsCode> {

}

+ 29
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsCodeMapper.xml 查看文件

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SmsCodeMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SmsCode">
<id column="id" property="id" />
<result column="mobile" property="mobile" />
<result column="code" property="code" />
<result column="type" property="type" />
<result column="expires_time" property="expiresTime" />
<result column="used_status" property="usedStatus" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, mobile, code, type, expires_time, used_status, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSceneMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SmsScene;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 短信场景表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SmsSceneMapper extends BaseMapper<SmsScene> {

}

+ 31
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSceneMapper.xml 查看文件

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SmsSceneMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SmsScene">
<id column="id" property="id" />
<result column="corp_id" property="corpId" />
<result column="type" property="type" />
<result column="code" property="code" />
<result column="name" property="name" />
<result column="sign_id" property="signId" />
<result column="template_id" property="templateId" />
<result column="enabled" property="enabled" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, corp_id, type, code, name, sign_id, template_id, enabled, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSendMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SmsSend;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 短信发送表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SmsSendMapper extends BaseMapper<SmsSend> {

}

+ 35
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSendMapper.xml 查看文件

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SmsSendMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SmsSend">
<id column="id" property="id" />
<result column="corp_id" property="corpId" />
<result column="scene_id" property="sceneId" />
<result column="template_code" property="templateCode" />
<result column="type" property="type" />
<result column="mobile" property="mobile" />
<result column="content" property="content" />
<result column="relation_id" property="relationId" />
<result column="sid" property="sid" />
<result column="send" property="send" />
<result column="result_code" property="resultCode" />
<result column="result_info" property="resultInfo" />
<result column="response" property="response" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, corp_id, scene_id, template_code, type, mobile, content, relation_id, sid, send, result_code, result_info, response, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSignMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SmsSign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 短信签名表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SmsSignMapper extends BaseMapper<SmsSign> {

}

+ 27
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsSignMapper.xml 查看文件

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SmsSignMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SmsSign">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="apply_time" property="applyTime" />
<result column="enabled" property="enabled" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, name, apply_time, enabled, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsTemplateMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SmsTemplate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 短信模板表,用于定义阿里云短信模板 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SmsTemplateMapper extends BaseMapper<SmsTemplate> {

}

+ 31
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SmsTemplateMapper.xml 查看文件

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SmsTemplateMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SmsTemplate">
<id column="id" property="id" />
<result column="type" property="type" />
<result column="code" property="code" />
<result column="name" property="name" />
<result column="content" property="content" />
<result column="description" property="description" />
<result column="apply_time" property="applyTime" />
<result column="enabled" property="enabled" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, type, code, name, content, description, apply_time, enabled, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictDataMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SysDictData;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 数据字典表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SysDictDataMapper extends BaseMapper<SysDictData> {

}

+ 29
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictDataMapper.xml 查看文件

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SysDictDataMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SysDictData">
<id column="id" property="id" />
<result column="dict_type_id" property="dictTypeId" />
<result column="type_code" property="typeCode" />
<result column="type_name" property="typeName" />
<result column="data_code" property="dataCode" />
<result column="data_name" property="dataName" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, dict_type_id, type_code, type_name, data_code, data_name, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictTypeMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SysDictType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 数据字典类型表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SysDictTypeMapper extends BaseMapper<SysDictType> {

}

+ 26
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysDictTypeMapper.xml 查看文件

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SysDictTypeMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SysDictType">
<id column="id" property="id" />
<result column="type_code" property="typeCode" />
<result column="type_name" property="typeName" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, type_code, type_name, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SysFile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 文件表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SysFileMapper extends BaseMapper<SysFile> {

}

+ 28
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileMapper.xml 查看文件

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SysFileMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SysFile">
<id column="id" property="id" />
<result column="type_code" property="typeCode" />
<result column="file_code" property="fileCode" />
<result column="file_name" property="fileName" />
<result column="file_url" property="fileUrl" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, type_code, file_code, file_name, file_url, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileTypeMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SysFileType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 文件类型表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SysFileTypeMapper extends BaseMapper<SysFileType> {

}

+ 26
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysFileTypeMapper.xml 查看文件

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mt.wms.core.dal.mapper.SysFileTypeMapper">

<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mt.wms.core.dal.entity.SysFileType">
<id column="id" property="id" />
<result column="type_code" property="typeCode" />
<result column="type_name" property="typeName" />
<result column="remark" property="remark" />
<result column="valid" property="valid" />
<result column="creator" property="creator" />
<result column="creator_name" property="creatorName" />
<result column="create_time" property="createTime" />
<result column="updater" property="updater" />
<result column="updater_name" property="updaterName" />
<result column="update_time" property="updateTime" />
<result column="version" property="version" />
</resultMap>

<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, type_code, type_name, remark, valid, creator, creator_name, create_time, updater, updater_name, update_time, version
</sql>

</mapper>

+ 16
- 0
6.program/wms-core/src/main/java/com/mt/wms/core/dal/mapper/SysMenuMapper.java 查看文件

@@ -0,0 +1,16 @@
package com.mt.wms.core.dal.mapper;

import com.mt.wms.core.dal.entity.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 菜单表 Mapper 接口
* </p>
*
* @author mt
* @since 2020-12-21
*/
public interface SysMenuMapper extends BaseMapper<SysMenu> {

}

部分文件因文件數量過多而無法顯示

Loading…
取消
儲存