diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java index bd5e4a1..585fc4c 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java @@ -25,16 +25,20 @@ public interface MainInfoMapper extends BaseMapperX { LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX<>(); String[] busiLineArr = reqVO.getBusiLine().split(","); // 拼接 OR 条件:FIND_IN_SET(a, busi_line) > 0 OR FIND_IN_SET(c, busi_line) > 0 - for (int i = 0; i < busiLineArr.length; i++) { - String val = busiLineArr[i].trim(); - if (StringUtils.hasText(val)) { - if (i == 0) { - queryWrapper.apply("FIND_IN_SET({0}, busi_line) > 0", val); - } else { - queryWrapper.or().apply("FIND_IN_SET({0}, busi_line) > 0", val); + queryWrapper.nested(wrapper -> { + for (int i = 0; i < busiLineArr.length; i++) { + String val = busiLineArr[i].trim(); + if (StringUtils.hasText(val)) { + if (i == 0) { + // 第一个有效条件:直接 apply + wrapper.apply("FIND_IN_SET({0}, busi_line) > 0", val); + } else { + // 后续有效条件:or() + apply + wrapper.or().apply("FIND_IN_SET({0}, busi_line) > 0", val); + } } } - } + }); queryWrapper.eqIfPresent(MainInfoDO::getOrderNo, reqVO.getOrderNo()) .likeIfPresent(MainInfoDO::getOrderName, reqVO.getOrderName()) .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId())