package com.ltkj.hosp.mapper; import java.math.BigDecimal; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ltkj.hosp.domain.TjProject; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** * 体检项目Mapper接口 * * @author ltkj * @date 2022-11-17 */ @Mapper public interface TjProjectMapper extends BaseMapper { /** * 查询体检项目 * * @param proId 体检项目主键 * @return 体检项目 */ public TjProject selectTjProjectByProId(Long proId); /** * 查询体检项目列表 * * @param tjProject 体检项目 * @return 体检项目集合 */ public List selectTjProjectList(TjProject tjProject); /** * 新增体检项目 * * @param tjProject 体检项目 * @return 结果 */ public int insertTjProject(TjProject tjProject); /** * 修改体检项目 * * @param tjProject 体检项目 * @return 结果 */ public int updateTjProject(TjProject tjProject); /** * 删除体检项目 * * @param proId 体检项目主键 * @return 结果 */ public int deleteTjProjectByProId(Long proId); /** * 批量删除体检项目 * * @param proIds 需要删除的数据主键集合 * @return 结果 */ public int deleteTjProjectByProIds(Long[] proIds); @Select("SELECT * FROM tj_project WHERE pro_parent_id=#{proId} AND deleted='0'") public List getTjProjectListBySoneId(@Param("proId") String proId); @Select("SELECT * FROM tj_project WHERE pro_id=#{proId} AND deleted='0'") public TjProject getTjProjectById(@Param("proId") String proId); @Select("SELECT GROUP_CONCAT(pro_name ORDER BY pro_name) AS names FROM tj_project WHERE pro_parent_id=#{proId} AND deleted='0' ") String appendTjProjectName(String proId); @Select("SELECT a.pro_id FROM tj_project a WHERE a.dept_id=#{ksId} AND a.pro_status=0 AND a.deleted='0' ") List getKsTjProjectIdListBydeptId(String ksId); @Select("SELECT a.pro_id FROM tj_project a WHERE a.pro_status=0 AND a.deleted='0' ") List getKsTjProjectIdList(); @Select({"" }) String appendTjProjectNames(@Param("proIds")String[] proIds); @Select("SELECT GROUP_CONCAT(pro_name ORDER BY pro_name) AS names FROM tj_project WHERE pro_parent_id=#{proId} AND deleted='0' ") String getAllSonNames(String proId); @Select("SELECT GROUP_CONCAT(c.pro_name ) AS names FROM tj_package a LEFT JOIN tj_package_project b ON a.pac_id=b.pac_id LEFT JOIN tj_project c ON b.pro_id=c.pro_id WHERE a.pac_id=#{pacId}") String getAllNamesByPacId(String pacId); @Select("SELECT sum(pro_price) pro_price FROM tj_project WHERE pro_parent_id=#{proId} AND deleted='0' ") BigDecimal getMoneys(String proId); @Select("SELECT * FROM tj_project WHERE pro_id=#{proId} AND pro_parent_id='0' AND deleted='0' ") List getTjParentProjectList(String proId); @Select("SELECT c.* FROM tj_package a LEFT JOIN tj_package_project b ON a.pac_id=b.pac_id LEFT JOIN " + "tj_project c ON b.pro_id=c.pro_id WHERE a.pac_id=#{pacId} and c.deleted=0") List getTjParentProjectListByPacId(String pacId); @Select("SELECT DISTINCT d.* from (\n" + "\tSELECT * FROM `tj_project` a\n" + "\twhere a.pro_parent_id=0 and a.deleted=0 \n" + "\tand (case WHEN #{proName} is NOt NULL THEN a.pro_name like concat('%',#{proName},'%') ELSE 1=1 END)\n" + "\tand (case WHEN #{checkType} is NOt NULL THEN a.pro_check_type=#{checkType} ELSE 1=1 END)\n" + "\tand (case WHEN #{deptId} is NOt NULL THEN a.dept_id=#{deptId} ELSE 1=1 END)\n" + "UNION \n" + "\tSELECT b.* FROM `tj_project` b JOIN(\n" + "\tSELECT * FROM `tj_project` a\n" + "\twhere a.pro_parent_id!=0 and a.deleted=0\n" + "\tand (case WHEN #{proName} is NOt NULL THEN a.pro_name like concat('%',#{proName},'%') ELSE 1=1 END)\n" + "\tand (case WHEN #{checkType} is NOt NULL THEN a.pro_check_type=#{checkType} ELSE 1=1 END)\n" + "\tand (case WHEN #{deptId} is NOt NULL THEN a.dept_id=#{deptId} ELSE 1=1 END)\n" + ") c\n" + "on c.pro_parent_id=b.pro_id\n" + ") d\n") List getProBySqlAndName(@Param("proName")String proName,@Param("checkType")String checkType,@Param("deptId")String deptId); }