• 【背景】
    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。
    YunaiV authored
     
    Browse Code »
  • - 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析
    - 新增业绩目标设置与业绩达成统计
    - 新增客户负责人变更记录能力,并用于公海客户分析
    - 完善销售漏斗阶段统计、商机转化率和明细筛选
    - 补充产品分类、时间范围、空金额等统计边界处理
    - 新增相关前端页面、API 与数据库菜单配置
    YunaiV authored
     
    Browse Code »
  • - 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析
    - 新增业绩目标设置与业绩达成统计
    - 新增客户负责人变更记录能力,并用于公海客户分析
    - 完善销售漏斗阶段统计、商机转化率和明细筛选
    - 补充产品分类、时间范围、空金额等统计边界处理
    - 新增相关前端页面、API 与数据库菜单配置
    YunaiV authored
     
    Browse Code »

  • - 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析
    - 新增业绩目标设置与业绩达成统计
    - 新增客户负责人变更记录能力,并用于公海客户分析
    - 完善销售漏斗阶段统计、商机转化率和明细筛选
    - 补充产品分类、时间范围、空金额等统计边界处理
    - 新增相关前端页面、API 与数据库菜单配置
    YunaiV authored
     
    Browse Code »

  • - 新增 MultiDictConvert,支持半角逗号存储的多值字典字段
    - 支持 String、Collection、Set、具体集合类和数组字段
    - 未知字典 label/value 时整体转换失败,避免返回部分结果导致数据缺失
    - 补充单值、多值、空值、顺序保持和失败场景单元测试
    YunaiV authored
     
    Browse Code »

  • - 新增流程评论创建、列表查询接口
    - 封装 BpmCommentService 统一复用 Flowable Comment
    - 评论列表返回评论人和对应任务信息
    - 新增 BPM 评论类型字典与评论枚举
    - 补充任务校验与历史任务 Map 查询能力
    YunaiV authored
     
    Browse Code »

  • - 新增流程评论创建、列表查询接口
    - 封装 BpmCommentService 统一复用 Flowable Comment
    - 评论列表返回评论人和对应任务信息
    - 新增 BPM 评论类型字典与评论枚举
    - 补充任务校验与历史任务 Map 查询能力
    YunaiV authored
     
    Browse Code »

  • - 引入 OpenTelemetry API/SDK/OTLP Exporter
    - 移除 OpenTracing 与 SkyWalking trace toolkit 依赖
    - 改造 Tracer 自动配置、业务链路切面和异常记录逻辑
    - 使用 Span.current() 获取当前 traceId
    - 保留 SkyWalking apm-toolkit-logback-1.x,避免影响日志链路输出
    - 兼容 JDK8 servlet 依赖
    YunaiV authored
     
    Browse Code »








  • 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 路径不变
    YunaiV authored
     
    Browse Code »