| | |
| | | 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.Mapper; |
| | | import org.apache.ibatis.annotations.*; |
| | | import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | import org.apache.ibatis.annotations.Update; |
| | | |
| | | /** |
| | | * 装机拆机 Mapper |
| | |
| | | |
| | | default PageResult<DevRentDO> selectPage(DevRentPageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<DevRentDO>() |
| | | .gtIfPresent(DevRentDO::getState, reqVO.getState()) |
| | | .eqIfPresent(DevRentDO::getDevId, reqVO.getDevId()) |
| | | .eqIfPresent(DevRentDO::getPatId, reqVO.getPatId()) |
| | | .likeIfPresent(DevRentDO::getPatName, reqVO.getPatName()) |
| | |
| | | .orderByDesc(DevRentDO::getId)); |
| | | } |
| | | |
| | | DevRentDO getDismantleRentByState(DevRentSearchReqVO reqVO ); |
| | | @Select("<script> " + |
| | | "SELECT * FROM lihu.dev_rent " + |
| | | "<where> " + |
| | | " <if test='stateList != null'> " + |
| | | " and state in ( " + |
| | | " <foreach collection='stateList' separator=',' item='state'> " + |
| | | " #{state} " + |
| | | " </foreach> ) " + |
| | | " </if> " + |
| | | " <if test=\"devId != null and devId != ''\"> " + |
| | | " and dev_id = #{devId} " + |
| | | " </if> " + |
| | | " <if test=\"patId != null and patId != ''\"> " + |
| | | " and pat_id = #{patId} " + |
| | | " </if> " + |
| | | " <if test=\"checkType != null \"> " + |
| | | " and check_type = #{checkType} " + |
| | | " </if> " + |
| | | "</where> " + |
| | | "order by create_time desc " + |
| | | "limit 1 " + |
| | | "</script>") |
| | | @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}") |
| | | List<DevRentDO> selectByPatIdAndState(@Param("patId") String patId, @Param("state") Integer state); |
| | | @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<DevRentDO> selectByPatAndChecktypeAndState(@Param("patId") String patId, @Param("checkType") Integer checkType, @Param("state") Integer state); |
| | | |
| | | /** |
| | | * 该患者 + 检查项目、**今日**、状态在给定集合里的**最近一条**检查单。 |
| | | * |
| | | * <p>两处用途: |
| | | * <ol> |
| | | * <li>【撤销回滚】撤销「检查完成」时,把 60(常规检查完成) 的单找出来回滚成 0(待检查);</li> |
| | | * <li>【完成兜底】再次完成时若找不到「待检查(0)」的单,用最近一条 60/50 的单兜底复用, |
| | | * 避免直接报「请先预约确认」。</li> |
| | | * </ol> |
| | | */ |
| | | @Select("<script>" + |
| | | "select * from lihu.dev_rent where pat_id=#{patId} and check_type=#{checkType} " + |
| | | " and to_days(create_time)=to_days(now()) and state in ( " + |
| | | " <foreach collection='stateList' separator=',' item='state'>#{state}</foreach> ) " + |
| | | " order by id desc limit 1" + |
| | | "</script>") |
| | | @Results({ |
| | | @Result(property = "patDetails", column = "pat_details", typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class) |
| | | }) |
| | | DevRentDO selectLatestByPatCheckTypeStates(@Param("patId") String patId, @Param("checkType") Integer checkType, |
| | | @Param("stateList") List<Integer> stateList); |
| | | |
| | | @Select("<script>" + |
| | | "SELECT paid FROM lihu.dev_rent " + |
| | | "where id in (" + |
| | | " <foreach collection='rentIdList' separator=',' item='rentId'>" + |
| | | " #{rentId} " + |
| | | " </foreach> )" + |
| | | "</script>") |
| | | List<Integer> getPaidInfo(@Param("rentIdList")List<Long> 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」。 |
| | | * <p> |
| | | * 用途:作业记录列表页回填患者信息时需要 `job_record.rentId → dev_rent.applyNo`。 |
| | | * 原先用 {@code selectById} 逐条取(N 次查询),本方法改为一次 IN 查询。 |
| | | * <p> |
| | | * 刻意**只取两列**而非 `SELECT *`:dev_rent 含 `pat_details` 等 JSON 大字段, |
| | | * 回填只需 applyNo,没必要把整个 DO 拉回来。 |
| | | * |
| | | * @param rentIdList 租赁 id 列表(调用方需保证非空,MySQL 的 IN () 会语法错误) |
| | | */ |
| | | @Select("<script>" + |
| | | "SELECT id, apply_no FROM lihu.dev_rent WHERE id IN (" + |
| | | " <foreach collection='rentIdList' separator=',' item='rentId'>" + |
| | | " #{rentId} " + |
| | | " </foreach> )" + |
| | | "</script>") |
| | | List<DevRentDO> getApplyNoByIdList(@Param("rentIdList") List<Long> rentIdList); |
| | | } |