package cn.iocoder.yudao.module.mes.dal.mysql.dv.metering; import cn.iocoder.yudao.framework.common.pojo.PageResult; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.mes.controller.admin.dv.metering.vo.MesDvMeteringPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.metering.MesDvMeteringDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.time.LocalDate; import java.util.List; /** * MES 计量器具 Mapper * * @author 超级管理员 */ @Mapper public interface MesDvMeteringMapper extends BaseMapperX { default PageResult selectPage(MesDvMeteringPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesDvMeteringDO::getCode, reqVO.getCode()) .likeIfPresent(MesDvMeteringDO::getName, reqVO.getName()) .likeIfPresent(MesDvMeteringDO::getBrand, reqVO.getBrand()) .eqIfPresent(MesDvMeteringDO::getCategory, reqVO.getCategory()) .eqIfPresent(MesDvMeteringDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(MesDvMeteringDO::getChargeUserId, reqVO.getChargeUserId()) .eqIfPresent(MesDvMeteringDO::getStatus, reqVO.getStatus()) .geIfPresent(MesDvMeteringDO::getNextCheckDate, reqVO.getNextCheckDateBegin()) .leIfPresent(MesDvMeteringDO::getNextCheckDate, reqVO.getNextCheckDateEnd()) .orderByDesc(MesDvMeteringDO::getId)); } default MesDvMeteringDO selectByCode(String code) { return selectOne(MesDvMeteringDO::getCode, code); } /** * 按编码查询(含“已被逻辑删除”的记录)——用于导入时判重 */ @InterceptorIgnore(tenantLine = "true", dataPermission = "true") @Select("SELECT * FROM mes_dv_metering WHERE code = #{code} ORDER BY id DESC LIMIT 1") MesDvMeteringDO selectByCodeIncludeDeleted(@Param("code") String code); /** * 恢复被逻辑删除的记录(把 deleted 置回 0) */ @InterceptorIgnore(tenantLine = "true", dataPermission = "true") @Update("UPDATE mes_dv_metering SET deleted = 0 WHERE id = #{id}") int restoreDeletedById(@Param("id") Long id); default List selectListByNextCheckDateBetween(LocalDate begin, LocalDate end) { return selectList(new LambdaQueryWrapperX() .ge(MesDvMeteringDO::getNextCheckDate, begin) .le(MesDvMeteringDO::getNextCheckDate, end)); } default List selectListByNextCheckDateBefore(LocalDate date) { return selectList(new LambdaQueryWrapperX() .isNotNull(MesDvMeteringDO::getNextCheckDate) .lt(MesDvMeteringDO::getNextCheckDate, date)); } }