-
[BUG] MES 库存调拨:新建调拨单选了转移日期、保存提示成功,但日期存成 1970-01-01、列表显示空白
-
全局 TimestampLocalDateTimeDeserializer 原先只认 epoch 毫秒,对非数字字符串 (如 '2026-09-11 00:00:00')经 p.getValueAsLong() 静默返回 0 → 1970-01-01, 请求不报错、数据被静默损坏。 实测用户入口:管理端新建 MES 库存调拨单,转移日期控件发字符串(value-format= 'YYYY-MM-DD 00:00:00')→ 保存提示成功 → DB 存 1970-01-01、列表日期列空白。 同类:HRM 考勤打卡(LocalDateTime,前端发 Date 对象)等。 修复:反序列化器兼容 1. epoch 毫秒(JSON 数字/数字字符串,原契约零回归) 2. yyyy-MM-dd HH
ss(含毫秒)
3. ISO-8601(本地/带时区,覆盖前端 Date 对象序列化)
4. 纯日期 yyyy-MM-dd(当日零点)
无法解析时抛清晰错误(含原始值),不再静默落 1970。
单测 11 例覆盖全部在用格式+非法输入。全量回归(360 例)零日期回归。 -
[FIX] Excel 框架:导入模板下拉对空字典/空选项源整列跳过+AreaConvert 补写方向(A43,惠及所有模板)
-
…500(ISSUE-001)- #1223 #1223
-
[FIX] 框架:@EnableAsync 显式 proxyTargetClass=true,修 IM 写操作 getSelf() NoSuchBean 全量 500(ISSUE-001)
-
导入模板下载恒500有两处独立根因:(1)空字典下拉拼出 $F$1:$F$0 非法区间致 FormulaParseException(已由 SelectSheetWriteHandler 跳过空字典修复);(2)修复(1)后暴露 第二处——bankAreaId 列用 AreaConvert,但 AreaConvert 只实现了 convertToJavaData(读), 未实现 convertToExcelData(写),生成模板写示例数据时抛 UnsupportedOperationException。 现补 convertToExcelData:地区编号经 AreaUtils.format(id,"/") 转全路径,与读方向 parseArea 的 "/" 分隔一致可往返。
-
…ion 500(A43,框架层单点修复惠及所有模板)
-
仅含 @Async 而无 CGLIB 触发器(如 @Transactional)的 bean(如 ImWebSocketServiceImpl) 被 JDK 动态代理后,getSelf()=SpringUtil.getBean(getClass()) 按实现类取 bean 必抛 NoSuchBeanDefinitionException,致 IM 模块全部写操作事务内通知发送回滚整体 500。 与 @EnableTransactionManagement(proxyTargetClass = true) 口径对齐根治。 验证:修复后 IM 域回归 7 例两轮全绿(jobs 1422-1425/1427-1431); 诊断实证 proxyClass=jdk.proxy2.$Proxy926 仅接口型。
-
- 修复 WebProperties 嵌套属性级联校验 - 修复邮件模板代码块包含特殊字符时的替换异常 - 补充相关回归测试
-
当 ServiceException 携带成功码 0 时,由 GlobalExceptionHandler 统一返回系统异常, 避免 CommonResult.error 再次抛出 IllegalArgumentException。 Refs #1196
-
通过 FilterRegistrationBean#setEnabled(false) 避免多 SecurityFilterChain 场景下过滤器越界处理请求,并关联 Issue #1198。
-
- 新增 MultiDictConvert,支持半角逗号存储的多值字典字段 - 支持 String、Collection、Set、具体集合类和数组字段 - 未知字典 label/value 时整体转换失败,避免返回部分结果导致数据缺失 - 补充单值、多值、空值、顺序保持和失败场景单元测试
-
- 引入 OpenTelemetry API/SDK/OTLP Exporter - 移除 OpenTracing 与 SkyWalking trace toolkit 依赖 - 改造 Tracer 自动配置、业务链路切面和异常记录逻辑 - 使用 Span.current() 获取当前 traceId - 保留 SkyWalking apm-toolkit-logback-1.x,避免影响日志链路输出 - 兼容 JDK8 servlet 依赖
-
- 排除 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 依赖
-
- common:LocalDateTimeUtils 增加 GMT+8 默认时区的 ofEpochSecond / toEpochSecond 重载 - system:七牛短信回调使用默认时区解析秒级时间戳,避免本机时区影响接收时间 - iot:当前时间规则使用默认时区转 epoch,修复非 GMT+8 环境下匹配结果错误 验证: - yudao-module-system 单测通过 - yudao-module-iot-biz 单测通过 - yudao-module-iot-gateway 编译通过
-
将 Redis、RabbitMQ、RocketMQ 的多租户 Bean 拆到独立条件配置, 避免未引入 yudao-spring-boot-starter-mq 的模块启动时因解析 YudaoTenantAutoConfiguration 方法签名触发 NoClassDefFoundError。 Closes https://gitee.com/zhijiantianya/yudao-cloud/issues/IJTOF4
-
- 新增 URL Path 编解码工具,保留 + 字符语义 - 文件访问基于原始 URI 解码 path,避免中文、空格、% 等字符下载异常 - 文件客户端生成 URL 时按路径段编码,S3 兼容完整 URL 和裸 path - 优化 Content-Disposition 文件名,支持 filename 和 filename* - 下载文件名优先使用文件记录的原始名称 - 补充 HTTP、Local、S3、文件服务相关单测
-
Merge pull request !1544 from 熊猫大侠/master-jdk17-iotalert
-
- 调整 MyBatisUtils.findInSet 使用 MyBatis-Plus 参数绑定 - 增加 columnName 白名单校验,避免列名被注入 - 补充 H2 兼容实现,恢复相关单测覆盖 - 替换各模块动态 FIND_IN_SET 字符串拼接写法 - 补充单参数、多参数绑定场景单测
-
# Conflicts: # pom.xml # yudao-dependencies/pom.xml # yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java # yudao-server/pom.xml