Skip to content

【v2026-04】

新增代码生成器 Excel 导入,增强 IoT 场景联动与数据流转

📈 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 大模型专区:

  • 【新增】AI 知识库段落补齐删除接口 DELETE /ai/knowledge/segment/delete,对齐前端调用,由 @芋道源码 贡献 ea3ad5c

  • 【新增】AI 通义千问支持多模态模型(qwen-vl / qvq / qwen-omni / qwen3.5 与 3.6 系列),并兼容从 metadata 解析 reasoningContent,由 @芋道源码 贡献 814a963 ,对应 https://t.zsxq.com/g5V0j https://t.zsxq.com/geWKz https://t.zsxq.com/7g2du

🐞 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 ,对应

  • 【修复】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 整体相等比较,由 @芋道源码 贡献 87c8d7e d5a9e2e ,对应 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 贡献 9ee57dc 5b3e1a8 Admin Uniapp 管理后台专区:

  • 【修复】用户详情页「状态」字段错绑成 formData?.sex,由 @芋道源码 贡献 93be4cf ,对应 https://gitee.com/yudaocode/yudao-ui-admin-uniapp/issues/IJ2F7Z

  • 【修复】iOS 打包后页面底部出现白色留白,manifest.config.tsapp-plus.safearea.bottom.offset = 'none',由 @芋道源码 贡献 466785f ,对应 https://gitee.com/yudaocode/yudao-ui-admin-uniapp/issues/IEZGWJ 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 不兼容)

Lucking