github YunaiV/yudao-cloud v2026.04(jdk8/11)
v2026.04(jdk8/11):新增代码生成器 Excel 导入,增强 IoT 场景联动与数据流转

latest release: v2026.04(jdk17/21)
3 hours ago

📈 Statistic

  • 总代码行数:391327
  • 源码代码行数:244342
  • 注释行数:88591
  • 单元测试用例数:1884

⭐ New Features

SYSTEM 系统管理专区:

  • 【新增】令牌清理定时任务,由 @半栈幼儿员 贡献 #1536
  • 【优化】用户选择 UserSelectV2 布局,多选支持、默认选中当前用户支持、禁选支持、默认部门支持,由 @半栈幼儿员 贡献 #877

INFRA 基础设施专区:

  • 【优化】上传文件路径新增 PATH_SUFFIX_AS_DIRECTORY 开关,支持后缀(时间戳 + 随机数)作为上级目录或拼接到文件名两种形态,由 @半栈幼儿员 贡献 #1514
  • 【优化】代码生成器 CodegenBuilder 注释中英文引号转中文引号的实现,并补充单测,由 @芋道源码 贡献 3078fe3
  • 【优化】HttpUtils.replaceUrlQuery 改用 hutool UrlQuery#remove 替换反射实现,并补充单测,由 @lliyueling 贡献 #248
  • 【新增】区域数据 area.csv 补全最新地名,并补充 AreaUtils 单测,由 @chenchenche 贡献 #247
  • 【新增】代码生成器支持 Excel 导入功能,覆盖后端及 Vue2 / Vue3 / Vben2 / Vben5 全部前端模板,由 @itkdm 贡献 #1082#1083
  • 【优化】代码生成器 Excel 导入:新增 yudao.codegen.import-enable 全局开关(默认关闭);Vue3 / Vben5 Schema 抽出独立 ImportForm 组件对齐 user 模块;补齐 Vben5 antd / ele × general / schema 共 4 套 frontType 单元测试与 importEnable=true 断言覆盖,由 @芋道源码 贡献 40d2882

IoT 物联网专区:

  • 【新增】场景联动告警触发的消息发送,支持短信、邮件、站内信三种接收方式,由 @芋道源码 贡献 5754c9a
  • 【新增】IoT 数据流转新增 MQTT 与 Database 两种 Action 实现,由 @puhui999 贡献 d668af1
  • 【新增】Vue3 管理后台 IoT 数据流转 Database 数据目的的配置表单,含建表 SQL 提示与一键复制,由 @puhui999 贡献 #867

BPM 工作流专区:

  • 【新增】BPM 条件节点支持「包含」「不包含」操作符,由 @LesanOuO 贡献 #1519#864

AI 大模型专区:

🐞 Bug Fixes

  • 【修复】租户 get-by-website 接口的 website 参数正则不支持端口,导致 localhost:81127.0.0.1:81 等带端口的访问场景下登录页无法识别租户,由 @芋道源码 贡献 9307f56
  • 【修复】Vue3 管理后台响应拦截器对 code = 0 成功码的判断逻辑,避免 ||0 覆盖为默认成功码,由 @zhulh 贡献 #871
  • 【修复】Vue3 管理后台请求拦截器 isToken 语义反转、白名单未生效的问题,由 @funcong 贡献 #866
  • 【修复】Vue2 管理后台 utils/index.jsdebounce 工具函数 later 触发时拿不到调用参数(内层形参 ...args 遮蔽外层闭包),由 @芋道源码 贡献 5a0d8a9,对应 https://gitee.com/yudaocode/yudao-ui-admin-vue2/issues/IDKUIB
  • 【修复】Vue3 管理后台 form-create 单图上传规则 disabled 字段标题与默认值错配,由 @芋道源码 贡献 e98d575
  • 【修复】Vue3 管理后台 TagsView 关闭非当前标签后 keep-alive 缓存未跟随收缩,DOM 节点与 JS heap 持续累积,由 @芋道源码 贡献 a704620,对应 https://t.zsxq.com/O7adc
  • 【修复】convertor.py 在 MySQL 转 PG 等数据库时,报表 / 工作流模块的列注释中文乱码、json / date / longblob 等类型映射缺失、INSERT 转义未对齐等多处遗漏,由 @lk67 贡献 #1528
  • 【修复】Spring Boot Admin 监控页面无法在 iframe 中正常显示,新增 spring.boot.admin.frame-ancestors 配置允许嵌入域名,由 @haoyangyang 贡献 #1515
  • 【修复】微信小程序订单发货信息上传:修正失效的重试机制并改为指数退避(1s / 2s / 4s 共 3 次),由 @芋道源码 贡献 987d49c
  • 【修复】用户无部门时数据权限 DEPT_AND_CHILD / DEPT_CUSTOM 的 null 处理遗漏,并补单测,由 @芋道源码 贡献 3df4f8d

Vben5.0 管理后台专区:

  • 【修复】CRM 客户/联系人/线索新增表单的「地址」树形下拉无内容,以及商机状态「应用部门」、产品「产品类型」、ERP 销售出库的客户/销售人员/结算账户/产品/创建人下拉同样无内容,由 @芋道源码 贡献 42fffd2,对应 https://t.zsxq.com/EdaN8
  • 【修复】CRM「合同配置」「客户公海规则配置」表单 label 错用 labelClass: 'w-100',挤掉 RadioGroup 输入区,改用 labelWidth: 120,由 @芋道源码 贡献 627e31f,对应 https://t.zsxq.com/MdJTA
  • 【修复】MALL 商品管理列表与商品选择器的「价格」列直接展示后端原始的「分」(如 19900.00 应为 199.00 元),由 @芋道源码 贡献 8020b4b,对应 https://gitee.com/zhijiantianya/yudao-cloud/issues/IJJYPP
  • 【修复】MALL 商品保存时 SKU 销售价/市场价/成本价/一二级佣金被反复 *100 漂移,由 @芋道源码 贡献 b293e11,对应 https://t.zsxq.com/DNBTJ
  • IoT 物模型新增/编辑弹窗,事件类型选了「告警」「故障」仍提示「请选择事件类型,由 @芋道源码 贡献 228c546,对应 https://t.zsxq.com/bbGIe
  • 【修复】导出 Excel / 下载模板等 download 接口在 access token 过期时不触发刷新,下载到的文件是「账号未登录」JSON;web-antd / web-ele / web-naive / web-tdesign 四个壳子统一加 Blob 业务错误嗅探拦截器,由 @芋道源码 贡献 897220e,对应 <https://t.zsxq.com/SHqWw >
  • 【修复】form-create 多图上传选 png/jpeg/gif 等被错误拦截,isImage 兼容 MIME / .ext / 纯后缀三种 accept 写法,由 @芋道源码 贡献 e385823,对应 https://t.zsxq.com/3BEPT
  • 【修复】BPM 流程实例审批弹窗:网关分支重算的并发与提交问题(同步自 Vue3 管理后台),由 @芋道源码 贡献 c641542
  • 【修复】BPM 流程设计器审批节点自定义配置编辑后丢失(web-antd / web-ele),由 @lb1565387341 贡献 #259

IoT 物联网专区:

  • 【修复】设备属性上报时,物模型 identifier 与设备上报 key 大小写不一致导致属性丢失;以及 BOOL 类型上报字符串 "true" / "false"Convert.toByteNumberFormatException 落库失败,由 @芋道源码 贡献 3146f64
  • 【修复】IoT 网关调用 biz 的「设备注册 / 子设备注册」RPC URL 缺少 /rpc-api/iot/device 前缀,命中 Security 过滤器返回「账号未登录」,导致设备动态注册(一型一密)失败,由 @芋道源码 贡献 95b1345
  • 【修复】IoT 场景联动设备事件触发器配置「比较值」后永远不触发,并新增结构体/数组事件值的 JSON 整体相等比较,由 @芋道源码 贡献 87c8d7ed5a9e2e,对应 https://t.zsxq.com/cBKXK
  • 【修复】IoT 数据流转规则在属性上报场景下,多条规则命中同一数据目的会重复推送(原先按 ruleId 去重并未在 sink 维度去重),由 @芋道源码 贡献 eda6ffa,对应 https://t.zsxq.com/EdaN8
  • 【修复】IoT 设备消息日志:device_messageparams / data 列宽 NCHAR(2048)VARCHAR(8192) 对齐 MQTT 8KB 上限;@Async 写入加 try/catch 避免静默失败,由 @芋道源码 贡献 47c093a
  • 【修复】IoT 设备消息/设备属性写入 TDengine 时由 SQL NOW 改为应用端显式传入毫秒时间戳 ts,避免 NOW 不被驱动识别或批量写入主键时间冲突导致落库失败,由 @haohaoMT 贡献 9ee57dc5b3e1a8

Admin Uniapp 管理后台专区:

MALL 商城专区:

  • 【修复】H5 公众号微信 JSSDK 签名 URL 错用 location.origin 导致 wx.config invalid signature,改用 location.href.split('#')[0],由 @芋道源码 贡献 b6b0ca3,对应 https://t.zsxq.com/WwYCf
  • 【修复】商城运费模板包邮判断方向反向,件数 / 金额统一为 >=,同步 DO / BO 注释,由 @芋道源码 贡献 ef807be
  • 【修复】商城砍价活动促销明细 promotion id 错用 seckillActivityId,改为 bargainActivity.getActivityId(),由 @芋道源码 贡献 ef807be
  • 【修复】商城 TradePriceCalculatorHelper.buildCalculateRespspu.getGiveIntegral() 兜底 0,避免 recountAllGivePoint 拆箱 NPE,由 @芋道源码 贡献 ef807be
  • 【优化】恢复并补齐商城价格 calculator 单测(Delivery / Coupon / Discount / PointUse / Reward / PriceService),新增 BargainActivity 单测,共 30 用例,由 @芋道源码 贡献 ef807be

MES 制造执行专区:

  • 【修复】MES 「常见缺陷」的「检测项类型」错用了独立的 mes_defect_type 字典,与「检测项设置」语义一致却需要分别维护字典,改为复用 mes_indicator_type 字典,由 @芋道源码 贡献 96918b4

BPM 工作流专区:

  • 【修复】BPM 流程实例抄送:被抄送人字段(userId)误绑成 CreateUser(创建人),由 @huang-suo-chao 贡献 #1531
  • 【修复】OA 请假示例实体 BpmOALeaveDO.type 字段从 String 改为 Integer,对齐 VO 与 MySQL tinyint,避免 PostgreSQL 不自动转换类型导致报错,由 @hushaoge 贡献 #1110
  • 【修复】Vue3 管理后台 BPM 流程实例审批弹窗:网关分支预览与最终提交变量不一致,由 @郭某人 贡献 #875,对应 https://t.zsxq.com/favGP
  • 【优化】Vue3 管理后台 BPM 流程实例审批弹窗:onChange 加 300ms 防抖与请求序号去重,提交前 await 最新一轮重算,避免并发请求乱序与提交竞态;改用 form-create 官方 formData()until 等待 fApi 就绪,由 @芋道源码 贡献 9df6828

🔨 Dependency Upgrades

所有分支:

  • 【升级】redisson from 3.52.0 to 4.3.1
  • 【升级】weixin-java from 4.7.9 to 4.8.2
  • 【升级】druid from 1.2.27 to 1.2.28
  • 【升级】mybatis-plus from 3.5.15 to 3.5.16
  • 【升级】mybatis-plus-join from 1.5.5 to 1.5.7
  • 【升级】netty from 4.2.9.Final to 4.2.12.Final
  • 【升级】lombok from 1.18.42 to 1.18.46
  • 【升级】hutool from 5.8.42 to 5.8.44
  • 【升级】guava from 33.5.0-jre to 33.6.0-jre
  • 【升级】jsoup from 1.21.2 to 1.22.2
  • 【升级】jsch from 2.27.7 to 2.28.2
  • 【升级】commons-net from 3.12.0 to 3.13.0
  • 【升级】vertx from 4.5.22 to 4.5.26
  • 【升级】californium from 3.12.0 to 3.14.0
  • 【升级】j2mod from 3.2.1 to 3.3.0
  • 【升级】taos from 3.7.9 to 3.8.3
  • 【升级】awssdk from 2.40.15 to 2.44.0
  • 【升级】alipay-sdk-java from 4.40.607.ALL to 4.40.771.ALL
  • 【升级】opengauss-jdbc from 5.1.0 to 7.0.0-RC3-og
  • 【升级】kingbase8 from 8.6.0 to 9.0.1.jre7
  • 【升级】jimubi from 2.3.0 to 2.3.2

master-jdk17 分支:

  • 【升级】spring-boot from 3.5.9 to 3.5.14
  • 【升级】spring-doc from 2.8.14 to 2.8.17
  • 【升级】tika-core from 3.2.3 to 3.3.0
  • 【升级】skywalking from 9.5.0 to 9.6.0
  • 【升级】spring-boot-admin from 3.5.6 to 3.5.8
  • 【升级】jimureport from 2.1.3 to 2.3.2(artifactId 从 jimureport-spring-boot3-starter-fastjson2 改为 jimureport-spring-boot3-starter)

cloud-jdk17 分支:

  • 【升级】spring-cloud from 2025.0.0 to 2025.0.1
  • 【升级】spring-cloud-alibaba from 2023.0.3.3 to 2025.0.0.0
  • 【移除】nacos-discovery 的 logback-adapter 排除(新版不再依赖)
  • 【新增】yudao-spring-boot-starter-rpc 引入 httpclient 4.5.14(Spring Cloud Alibaba 2025.0.0.0 不再传递 HttpClient 4.x,WxJava 4.8.x 仍需要)

JDK8 分支专属:

  • 【新增】httpclient5 5.5.2 + httpcore5 5.3.6 版本覆盖(WxJava 4.8.x 需要 HttpClient5 5.4+,Spring Boot 2.7 默认 5.1.x 不兼容)

Don't miss a new yudao-cloud release

NewReleases is sending notifications on new releases.