-
#1219
-
MPJLambdaWrapperX 会给列拼表别名前缀 t.,但 BaseMapper.selectOne 生成的 FROM 不带别名,单表查询直接 SQL 语法错误(2026-09-21 23:50:39 实抓堆栈: CrmReceivablePlanMapper.selectMaxPeriodByContractId:27 → createReceivablePlan:65 → 500 系统异常)。同文件 selectCount+MPJ 走 MPJ 自带 FROM 别名不受影响, 仅 selectOne 路径改 LambdaQueryWrapperX。
-
- 新增客户公海、销售漏斗、产品销售、合同汇总等统计分析 - 新增业绩目标设置与业绩达成统计 - 新增客户负责人变更记录能力,并用于公海客户分析 - 完善销售漏斗阶段统计、商机转化率和明细筛选 - 补充产品分类、时间范围、空金额等统计边界处理 - 新增相关前端页面、API 与数据库菜单配置
-
- 调整 MyBatisUtils.findInSet 使用 MyBatis-Plus 参数绑定 - 增加 columnName 白名单校验,避免列名被注入 - 补充 H2 兼容实现,恢复相关单测覆盖 - 替换各模块动态 FIND_IN_SET 字符串拼接写法 - 补充单参数、多参数绑定场景单测