package cn.lihu.jh.module.ecg.dal.mysql.devrent; import java.util.*; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; import org.apache.ibatis.annotations.*; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; /** * 装机拆机 Mapper * * @author 芋道源码 */ @Mapper public interface DevRentMapper extends BaseMapperX { default PageResult selectPage(DevRentPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .gtIfPresent(DevRentDO::getState, reqVO.getState()) .eqIfPresent(DevRentDO::getDevId, reqVO.getDevId()) .eqIfPresent(DevRentDO::getPatId, reqVO.getPatId()) .likeIfPresent(DevRentDO::getPatName, reqVO.getPatName()) .betweenIfPresent(DevRentDO::getRentTime, reqVO.getRentTime()) .betweenIfPresent(DevRentDO::getReturnTime, reqVO.getReturnTime()) .eqIfPresent(DevRentDO::getInterference, reqVO.getInterference()) .eqIfPresent(DevRentDO::getBaseline, reqVO.getBaseline()) .eqIfPresent(DevRentDO::getDetachment, reqVO.getDetachment()) .eqIfPresent(DevRentDO::getRemark, reqVO.getRemark()) .betweenIfPresent(DevRentDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(DevRentDO::getId)); } @Select("") @Results({ @Result(property = "patDetails", column = "pat_details", typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class) }) DevRentDO getRentByState(DevRentSearchReqVO reqVO ); @Select("select * from lihu.dev_rent where state=#{state} and pat_id=#{patId} and check_type=#{checkType} and to_days(create_time)=to_days(now())") List selectByPatAndChecktypeAndState(@Param("patId") String patId, @Param("checkType") Integer checkType, @Param("state") Integer state); @Select("") List getPaidInfo(@Param("rentIdList")List rentIdList); @Update("update lihu.dev_rent set paid = #{paid} where id = #{rentId};") Integer setPaid(@Param("rentId") Long rentId, @Param("paid") Integer paid); /** * 【需求1】按 id 批量取「id + apply_no」。 *

* 用途:作业记录列表页回填患者信息时需要 `job_record.rentId → dev_rent.applyNo`。 * 原先用 {@code selectById} 逐条取(N 次查询),本方法改为一次 IN 查询。 *

* 刻意**只取两列**而非 `SELECT *`:dev_rent 含 `pat_details` 等 JSON 大字段, * 回填只需 applyNo,没必要把整个 DO 拉回来。 * * @param rentIdList 租赁 id 列表(调用方需保证非空,MySQL 的 IN () 会语法错误) */ @Select("") List getApplyNoByIdList(@Param("rentIdList") List rentIdList); }