-
【背景】 yudao.api-encrypt 开启时,ApiEncryptFilter 构造函数会调用 hutool 的 SecureUtil.aes() 创建 AES 加密器,底层经 JCE(javax.crypto.Cipher)加载 BouncyCastle Provider。在低版本 JDK 8(8u120 以下)上,bcprov-jdk18on 无法通过 JCE 签名认证,导致 Fat Jar 启动失败: Failed to instantiate [apiEncryptFilter]; nested exception is cn.hutool.crypto.CryptoException: SecurityException: JCE cannot authenticate the provider BC at javax.crypto.Cipher.getInstance(Cipher.java:652) 【JCE 根因】 bcprov jar 是 BouncyCastle 自签名(BC2048KE.DSA),非 Oracle 信任的 CA。 JDK 8u120 及更早版本的 JCE 对 Provider jar 做强签名校验且存在认证缺陷, 对自签名证书校验失败;8u121 起修复,9+ 彻底移除该强校验机制。 实测同一 bcprov-jdk18on-1.80.jar: JDK 8u20 → JCE cannot authenticate the provider BC ❌ JDK 8u121+ → 正常 ✅ JDK 17/25 → 正常 ✅(JDK9+ 已无此机制) 故该报错为低版本 JDK 8 的环境问题,非项目代码 bug。 【改动】 将 api-encrypt.enable 默认值改为 false,规避低版本 JDK 8 启动失败。 不影响加密功能本身:需要 API 加密的用户改成 enable: true 即可, 建议同时将 JDK 升级到 8u121 以上(或 17/25)。 【性能】 已实测:开启 vs 关闭的启动耗时基本无差异(JDK25 实测各 3 轮, 平均 17.7s vs 17.0s,差值在误差范围内),关闭不带来启动加速, 仅用于兼容低版本 JDK 8。 -
- 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析 - 新增业绩目标设置与业绩达成统计 - 新增客户负责人变更记录能力,并用于公海客户分析 - 完善销售漏斗阶段统计、商机转化率和明细筛选 - 补充产品分类、时间范围、空金额等统计边界处理 - 新增相关前端页面、API 与数据库菜单配置
-
- 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析 - 新增业绩目标设置与业绩达成统计 - 新增客户负责人变更记录能力,并用于公海客户分析 - 完善销售漏斗阶段统计、商机转化率和明细筛选 - 补充产品分类、时间范围、空金额等统计边界处理 - 新增相关前端页面、API 与数据库菜单配置
-
- 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析 - 新增业绩目标设置与业绩达成统计 - 新增客户负责人变更记录能力,并用于公海客户分析 - 完善销售漏斗阶段统计、商机转化率和明细筛选 - 补充产品分类、时间范围、空金额等统计边界处理 - 新增相关前端页面、API 与数据库菜单配置
-
- 新增 MultiDictConvert,支持半角逗号存储的多值字典字段 - 支持 String、Collection、Set、具体集合类和数组字段 - 未知字典 label/value 时整体转换失败,避免返回部分结果导致数据缺失 - 补充单值、多值、空值、顺序保持和失败场景单元测试
-
- 新增流程评论创建、列表查询接口 - 封装 BpmCommentService 统一复用 Flowable Comment - 评论列表返回评论人和对应任务信息 - 新增 BPM 评论类型字典与评论枚举 - 补充任务校验与历史任务 Map 查询能力
-
- 新增流程评论创建、列表查询接口 - 封装 BpmCommentService 统一复用 Flowable Comment - 评论列表返回评论人和对应任务信息 - 新增 BPM 评论类型字典与评论枚举 - 补充任务校验与历史任务 Map 查询能力
-
- 引入 OpenTelemetry API/SDK/OTLP Exporter - 移除 OpenTracing 与 SkyWalking trace toolkit 依赖 - 改造 Tracer 自动配置、业务链路切面和异常记录逻辑 - 使用 Span.current() 获取当前 traceId - 保留 SkyWalking apm-toolkit-logback-1.x,避免影响日志链路输出 - 兼容 JDK8 servlet 依赖
-
Merge pull request !1570 from Jason/master-jdk17-bpm-bug-fix
-
Merge pull request !1569 from Jason/master-jdk17-bpm-bug-fix
-
- 新增 TDengineTableField.buildFieldName,统一转换为小写下划线字段名 - 建表、写入、历史查询统一使用同一字段名生成规则 - 修复 PT/PA 等全大写 identifier 与 TDengine 小写字段比较不一致的问题 - 补充字段名转换契约测试和设备属性表结构同步测试
-
为流程实例 BPMN 模型视图接口补充 bpm:process-instance:query 权限校验, 避免无权限用户访问流程表单、审批记录和 BPMN XML 等数据。
-
- 将 DM8 转换脚本中的 varchar(n) 改为 varchar(n char),保持与 MySQL 字符长度语义一致 - 更新 DM8 初始化 SQL,避免中文初始化数据因字节长度超限导入失败 - 补充 DM8 导入说明,提示 SET DEFINE OFF 及 PAGE_SIZE/UNICODE_FLAG 配置
-
- 新增 TDengineTableField.buildFieldName,统一转换为小写下划线字段名 - 建表、写入、历史查询统一使用同一字段名生成规则 - 修复 PT/PA 等全大写 identifier 与 TDengine 小写字段比较不一致的问题 - 补充字段名转换契约测试和设备属性表结构同步测试
-
去掉库存 FOR UPDATE 查询中的 ORDER BY 和本地 ID 排序, 避免租户拦截器重写 SQL 后生成 MySQL 语法错误。 对应 https://t.zsxq.com/gHhfb、https://t.zsxq.com/cpUEC
-
将微信异常错误码与 WxMpErrorMsgEnum.CODE_48001.getCode() 比较, 避免 int 与枚举实例比较导致个人订阅号无接口权限场景无法创建粉丝信息。 对应 https://t.zsxq.com/xy7I6
-
- 排除 Redisson 默认引入的 redisson-spring-data-41 - 显式使用 redisson-spring-data-35 适配 Spring Boot 3.5 - RedisTemplate 复用同一个 JSON RedisSerializer - 单测基类切换为 RedissonAutoConfigurationV2
-
升级 Spring Boot 3.5.15、Netty、Redisson、Tika、Hutool、jsch、AWS SDK、Alipay、weixin-java 等依赖。 - easy-trans 迁移到 org.dromara 并同步 Java import - 新增 system 侧 WxJava 配置类,绕过 httpclient4 provided 依赖问题 - 将 WxJava http-client-type 切换为 HttpComponents - 移除显式 httpclient4 依赖
-
升级 Spring Boot 3.5.15、Netty、Redisson、Tika、Hutool、jsch、AWS SDK、Alipay、weixin-java 等依赖。 - easy-trans 迁移到 org.dromara 并同步 Java import - 新增 system 侧 WxJava 配置类,绕过 httpclient4 provided 依赖问题 - 将 WxJava http-client-type 切换为 HttpComponents - 移除显式 httpclient4 依赖
-
- 新增 GET /pay/channel/list 按 appId 返回渠道列表 - Service/Mapper 补充按应用查询全部支付渠道 - 列表转换时清空 config,避免密钥和证书配置下发到列表页 - 保持 /pay/channel/get 返回完整配置用于编辑详情
-
Merge pull request !1567 from XuZhiqiang/master-jdk17
-
- form/detail 模板用 delay(handleBack) 替代内联 setTimeout - 更新 uniapp 代码生成 golden 快照 验证:CodegenEngineUniappTest 通过
-
- common:LocalDateTimeUtils 增加 GMT+8 默认时区的 ofEpochSecond / toEpochSecond 重载 - system:七牛短信回调使用默认时区解析秒级时间戳,避免本机时区影响接收时间 - iot:当前时间规则使用默认时区转 epoch,修复非 GMT+8 环境下匹配结果错误 验证: - yudao-module-system 单测通过 - yudao-module-iot-biz 单测通过 - yudao-module-iot-gateway 编译通过
-
# Conflicts: # sql/mysql/ruoyi-vue-pro.sql
-
get-count 接收可选 ProductSpuPageReqVO(name/categoryId/createTime),每个 tab 复用 appendTabQuery 拼筛选统计;不传参仍为全局计数,向后兼容。
-
form 模板全量对齐 2.x: - :rules/formRules → :schema/createFormSchema(2.x wd-form 只认 schema) - 字段统一包 wd-form-item;下拉字典 → yd-form-picker 独立;radio shape→type - 日期时间 → wd-form-item 触发 + wd-datetime-picker 弹层 + xxxVisible; LocalDateTime 用 formatDateTime、Date/LocalDate 用 formatDate(import 按需) - 图片/文件上传 → yd-upload-img/file(原误生成文本框);小数补 precision - 包名 wot-design-uni(未装)→ @wot-ui/ui(form + detail) search-form:日期范围 → yd-search-date-range;radio shape→type 字典 import 按实际用量门控(纯 select 不越界) writeResult:同名快照撞名补父目录 + 序号兜底,assert 路径不变