Commit 85a63467dd2d2491686d445738c2a868481dc6a7

Authored by dadiyang
1 parent 8e43004c

fix(crm):回款计划创建查最大期次改单表查询,修 Unknown column 't.contract_id'(A6)

MPJLambdaWrapperX 会给列拼表别名前缀 t.,但 BaseMapper.selectOne 生成的
FROM 不带别名,单表查询直接 SQL 语法错误(2026-09-21 23:50:39 实抓堆栈:
CrmReceivablePlanMapper.selectMaxPeriodByContractId:27 → createReceivablePlan:65
→ 500 系统异常)。同文件 selectCount+MPJ 走 MPJ 自带 FROM 别名不受影响,
仅 selectOne 路径改 LambdaQueryWrapperX。
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
... ... @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.crm.dal.mysql.receivable;
3 3 import cn.hutool.core.date.LocalDateTimeUtil;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  6 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 7 import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
7 8 import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.plan.CrmReceivablePlanPageReqVO;
8 9 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO;
... ... @@ -24,7 +25,9 @@ import java.util.Objects;
24 25 public interface CrmReceivablePlanMapper extends BaseMapperX<CrmReceivablePlanDO> {
25 26  
26 27 default CrmReceivablePlanDO selectMaxPeriodByContractId(Long contractId) {
27   - return selectOne(new MPJLambdaWrapperX<CrmReceivablePlanDO>()
  28 + // 单表查询不能用 MPJLambdaWrapperX:它会给列拼接表别名前缀(t.contract_id),
  29 + // 但 selectOne 生成的 FROM 不带别名,导致 Unknown column 't.contract_id'。
  30 + return selectOne(new LambdaQueryWrapperX<CrmReceivablePlanDO>()
28 31 .eq(CrmReceivablePlanDO::getContractId, contractId)
29 32 .orderByDesc(CrmReceivablePlanDO::getPeriod)
30 33 .last("LIMIT 1"));
... ...