From 5c445b3bae579035074267cfd5d4b00ff72f94dd Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 4 Sep 2025 13:35:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor(gear):=20=E9=87=8D=E6=9E=84=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E9=85=8D=E7=BD=AE=E5=B9=B6=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构了 application-docker.yml 文件,使用环境变量替代硬编码的配置值 - 优化了 Redis、Mail、SMS 等配置,提高了灵活性和可维护性 -调整了数据源配置,支持动态数据源和更多配置选项 - 移除了 GearPurchasePlanDetailBo 类中未使用的 totalAmount 字段 - 优化了代码格式和注释,提高了代码可读性 --- .../src/main/resources/application-docker.yml | 256 +++++++----------- .../domain/bo/GearPurchasePlanDetailBo.java | 13 +- 2 files changed, 96 insertions(+), 173 deletions(-) diff --git a/gear-admin/src/main/resources/application-docker.yml b/gear-admin/src/main/resources/application-docker.yml index 76efca7..22f0d40 100644 --- a/gear-admin/src/main/resources/application-docker.yml +++ b/gear-admin/src/main/resources/application-docker.yml @@ -1,174 +1,108 @@ ---- # 临时文件存储位置 避免临时文件被系统清理报错 -spring.servlet.multipart.location: /ruoyi/server/temp +# --- 临时文件存储位置 +spring.servlet.multipart.location: ${APP_TEMP_DIR:/ruoyi/server/temp} ---- # 监控中心配置 -spring.boot.admin.client: - # 增加客户端开关 - enabled: true - url: http://localhost:9090/admin - instance: - service-host-type: IP - username: ruoyi - password: 123456 +# --- 监控中心(Spring Boot Admin Client) +spring.boot: + admin: + client: + enabled: ${ADMIN_CLIENT_ENABLED:true} + url: ${ADMIN_SERVER_URL:http://admin:9090/admin} + instance: + service-host-type: IP + username: ${ADMIN_USERNAME:ruoyi} + password: ${ADMIN_PASSWORD:123456} ---- # xxl-job 配置 -xxl.job: - # 执行器开关 - enabled: false - # 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。 - admin-addresses: http://localhost:9100/xxl-job-admin - # 执行器通讯TOKEN:非空时启用 - access-token: xxl-job - executor: - # 执行器AppName:执行器心跳注册分组依据;为空则关闭自动注册 - appname: xxl-job-executor - # 执行器端口号 执行器从9101开始往后写 - port: 9101 - # 执行器注册:默认IP:PORT - address: - # 执行器IP:默认自动获取IP - ip: - # 执行器运行日志文件存储磁盘路径 - logpath: ./logs/xxl-job - # 执行器日志文件保存天数:大于3生效 - logretentiondays: 30 +# --- xxl-job 配置 +xxl: + job: + enabled: ${XXL_ENABLED:false} + admin-addresses: ${XXL_ADMIN_ADDR:http://xxl-job-admin:9100/xxl-job-admin} + access-token: ${XXL_ACCESS_TOKEN:xxl-job} + executor: + appname: ${XXL_APPNAME:xxl-job-executor} + port: ${XXL_PORT:9101} + address: ${XXL_ADDRESS:} + ip: ${XXL_IP:} + logpath: ${XXL_LOGPATH:./logs/xxl-job} + logretentiondays: ${XXL_LOG_RETENTION_DAYS:30} ---- # 数据源配置 -spring: - datasource: - type: com.zaxxer.hikari.HikariDataSource - # 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content - dynamic: - # 性能分析插件(有性能损耗 不建议生产环境使用) - p6spy: false - # 设置默认的数据源或者数据源组,默认值即为 master - primary: master - # 严格模式 匹配不到数据源则报错 - strict: true - datasource: - # 主库数据源 - master: - type: ${spring.datasource.type} - driverClassName: com.mysql.cj.jdbc.Driver - # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 - # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) - url: jdbc:mysql://49.232.154.205:10080/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - username: root - password: Fuande@666 - # 从库数据源 - slave: - lazy: true - type: ${spring.datasource.type} - driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://49.232.154.205:10080/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - username: root - password: Fuande@666 -# oracle: -# type: ${spring.datasource.type} -# driverClassName: oracle.jdbc.OracleDriver -# url: jdbc:oracle:thin:@//localhost:1521/XE -# username: ROOT -# password: root -# hikari: -# connectionTestQuery: SELECT 1 FROM DUAL -# postgres: -# type: ${spring.datasource.type} -# driverClassName: org.postgresql.Driver -# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true -# username: root -# password: root -# sqlserver: -# type: ${spring.datasource.type} -# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver -# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true -# username: SA -# password: root - hikari: - # 最大连接池数量 - maxPoolSize: 20 - # 最小空闲线程数量 - minIdle: 10 - # 配置获取连接等待超时的时间 - connectionTimeout: 30000 - # 校验超时时间 - validationTimeout: 5000 - # 空闲连接存活最大时间,默认10分钟 - idleTimeout: 600000 - # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟 - maxLifetime: 1800000 - # 连接测试query(配置检测连接是否有效) - connectionTestQuery: SELECT 1 - # 多久检查一次连接的活性 - keepaliveTime: 30000 +# --- 数据源(动态数据源 + Hikari) +spring.datasource: + type: com.zaxxer.hikari.HikariDataSource + dynamic: + p6spy: ${DS_P6SPY:false} + primary: ${DS_PRIMARY:master} + strict: ${DS_STRICT:true} + datasource: + master: + type: ${spring.datasource.type} + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://${DB_HOST:mysql}:${DB_PORT:3306}/${DB_NAME:gear}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=${DB_USE_SSL:false}&serverTimezone=${DB_TZ:Asia/Shanghai}&autoReconnect=true&rewriteBatchedStatements=true + username: ${DB_USER:root} + password: ${DB_PASS:root} + slave: + lazy: ${DS_SLAVE_LAZY:true} + type: ${spring.datasource.type} + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://${DB_SLAVE_HOST:${DB_HOST:mysql}}:${DB_SLAVE_PORT:${DB_PORT:3306}}/${DB_SLAVE_NAME:${DB_NAME:gear}}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=${DB_USE_SSL:false}&serverTimezone=${DB_TZ:Asia/Shanghai}&autoReconnect=true&rewriteBatchedStatements=true + username: ${DB_SLAVE_USER:${DB_USER:root}} + password: ${DB_SLAVE_PASS:${DB_PASS:root}} + hikari: + maxPoolSize: ${HIKARI_MAX_POOL:20} + minIdle: ${HIKARI_MIN_IDLE:10} + connectionTimeout: ${HIKARI_CONN_TIMEOUT:30000} + validationTimeout: ${HIKARI_VALID_TIMEOUT:5000} + idleTimeout: ${HIKARI_IDLE_TIMEOUT:600000} + maxLifetime: ${HIKARI_MAX_LIFETIME:1800000} + connectionTestQuery: ${HIKARI_TEST_QUERY:SELECT 1} + keepaliveTime: ${HIKARI_KEEPALIVE:30000} ---- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉) +# --- Redis(单机) spring: redis: - # 地址 - host: redis_gear - # 端口,默认为6379 - port: 6379 - # 数据库索引 - database: 0 - # 密码(如没有密码请注释掉) - # password: - # 连接超时时间 - timeout: 10s - # 是否开启ssl - ssl: false + host: ${REDIS_HOST:redis} + port: ${REDIS_PORT:6379} + database: ${REDIS_DB:0} + # password: ${REDIS_PASSWORD:} # 有密码再开启 + timeout: ${REDIS_TIMEOUT:10s} + ssl: ${REDIS_SSL:false} redisson: - # redis key前缀 - keyPrefix: - # 线程池数量 - threads: 16 - # Netty线程池数量 - nettyThreads: 32 - # 单节点配置 + keyPrefix: ${REDIS_KEY_PREFIX:} + threads: ${REDIS_THREADS:16} + nettyThreads: ${REDIS_NETTY_THREADS:32} singleServerConfig: - # 客户端名称 - clientName: ${ruoyi.name} - # 最小空闲连接数 - connectionMinimumIdleSize: 32 - # 连接池大小 - connectionPoolSize: 64 - # 连接空闲超时,单位:毫秒 - idleConnectionTimeout: 10000 - # 命令等待超时,单位:毫秒 - timeout: 3000 - # 发布和订阅连接池大小 - subscriptionConnectionPoolSize: 50 + clientName: ${APP_NAME:ruoyi} + connectionMinimumIdleSize: ${REDIS_MIN_IDLE:32} + connectionPoolSize: ${REDIS_POOL_SIZE:64} + idleConnectionTimeout: ${REDIS_IDLE_TIMEOUT:10000} + timeout: ${REDIS_CMD_TIMEOUT:3000} + subscriptionConnectionPoolSize: ${REDIS_SUB_POOL:50} ---- # mail 邮件发送 +# --- Mail mail: - enabled: false - host: smtp.163.com - port: 465 - # 是否需要用户名密码验证 - auth: true - # 发送方,遵循RFC-822标准 - from: xxx@163.com - # 用户名(注意:如果使用foxmail邮箱,此处user为qq号) - user: xxx@163.com - # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助) - pass: xxxxxxxxxx - # 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。 - starttlsEnable: true - # 使用SSL安全连接 - sslEnable: true - # SMTP超时时长,单位毫秒,缺省值不超时 - timeout: 0 - # Socket连接超时值,单位毫秒,缺省值不超时 - connectionTimeout: 0 + enabled: ${MAIL_ENABLED:false} + host: ${MAIL_HOST:smtp.163.com} + port: ${MAIL_PORT:465} + auth: ${MAIL_AUTH:true} + from: ${MAIL_FROM:xxx@163.com} + user: ${MAIL_USER:xxx@163.com} + pass: ${MAIL_PASS:xxxxxxxxxx} + starttlsEnable: ${MAIL_STARTTLS:true} + sslEnable: ${MAIL_SSL:true} + timeout: ${MAIL_TIMEOUT:0} + connectionTimeout: ${MAIL_CONN_TIMEOUT:0} ---- # sms 短信 +# --- SMS sms: - enabled: false - # 阿里云 dysmsapi.aliyuncs.com - # 腾讯云 sms.tencentcloudapi.com - endpoint: "dysmsapi.aliyuncs.com" - accessKeyId: xxxxxxx - accessKeySecret: xxxxxx - signName: 测试 - # 腾讯专用 - sdkAppId: + enabled: ${SMS_ENABLED:false} + endpoint: ${SMS_ENDPOINT:dysmsapi.aliyuncs.com} + accessKeyId: ${SMS_AK:xxxxxxx} + accessKeySecret: ${SMS_SK:xxxxxx} + signName: ${SMS_SIGN:测试} + +# --- 其他常用可调 +server: + port: ${SERVER_PORT:8080} + tomcat: + max-threads: ${TOMCAT_MAX_THREADS:200} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPurchasePlanDetailBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPurchasePlanDetailBo.java index 50f6c6a..b3d720a 100644 --- a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPurchasePlanDetailBo.java +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPurchasePlanDetailBo.java @@ -5,9 +5,7 @@ import com.gear.common.core.validate.EditGroup; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.*; - import java.util.Date; - import java.math.BigDecimal; import com.gear.common.core.domain.BaseEntity; @@ -62,20 +60,13 @@ public class GearPurchasePlanDetailBo extends BaseEntity { */ private BigDecimal unitPrice; - /** - * 总金额 - */ - private BigDecimal totalAmount; - /** * 附件 */ private String annex; /** - * 状态(0=新建,1=在途 -,2=到货 -,3=待审核,4=采购完成) + * 状态(0=新建,1=在途,2=到货,3=待审核,4=采购完成) */ private Integer status; @@ -83,6 +74,4 @@ public class GearPurchasePlanDetailBo extends BaseEntity { * 备注 */ private String remark; - - }