package com.ltkj.hosp.mapper; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ltkj.hosp.domain.TjOrderDetail; import com.ltkj.hosp.domain.TjProject; import com.ltkj.hosp.vo.ProFcListVo; import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo; import org.apache.ibatis.annotations.*; /** * 体检项目明细Mapper接口 * * @author ltkj * @date 2022-11-22 */ @Mapper public interface TjOrderDetailMapper extends BaseMapper { /** * 查询体检项目明细 * * @param orderDetailId 体检项目明细主键 * @return 体检项目明细 */ public TjOrderDetail selectTjOrderDetailByOrderDetailId(String orderDetailId); /** * 查询体检项目明细列表 * * @param tjOrderDetail 体检项目明细 * @return 体检项目明细集合 */ public List selectTjOrderDetailList(TjOrderDetail tjOrderDetail); /** * 新增体检项目明细 * * @param tjOrderDetail 体检项目明细 * @return 结果 */ public int insertTjOrderDetail(TjOrderDetail tjOrderDetail); /** * 修改体检项目明细 * * @param tjOrderDetail 体检项目明细 * @return 结果 */ public int updateTjOrderDetail(TjOrderDetail tjOrderDetail); /** * 删除体检项目明细 * * @param orderDetailId 体检项目明细主键 * @return 结果 */ public int deleteTjOrderDetailByOrderDetailId(String orderDetailId); @Delete(" delete\n" + " from tj_order_detail\n" + " where order_id = #{orderId}") int deleteTjOrderDetailByOrderId(String orderId); /** * 批量删除体检项目明细 * * @param orderDetailIds 需要删除的数据主键集合 * @return 结果 */ public int deleteTjOrderDetailByOrderDetailIds(String[] orderDetailIds); /** * 查询已缴费项目 */ @Select("SELECT * FROM tj_project p WHERE p.pro_parent_id =0 AND p.pro_id IN (\n" + " SELECT a.pro_id FROM tj_order_detail a WHERE !ISNULL(flowing_water_id) AND order_id=#{orderId} and a.deleted=0 )") public List selectTjOrderDetailListByFlowingWaterIdIsNotNull(String orderId); /** * 查询已缴费项目 */ @Select("SELECT * FROM tj_project p WHERE p.pro_parent_id =0 AND p.pro_id IN (\n" + " SELECT a.pro_id FROM tj_order_detail a WHERE !ISNULL(flowing_water_id) AND order_id=#{orderId} and a.deleted=0 and a.jxbz = #{jxbz} )") public List selectTjOrderDetailListByFlowingWaterIdIsNotNullN(@Param("orderId") String orderId,@Param("jxbz") String jxbz); @Select("SELECT * FROM tj_project p WHERE p.pro_parent_id =0 AND p.pro_id IN (\n" + " SELECT a.pro_id FROM tj_order_detail a WHERE !ISNULL(flowing_water_id) AND order_id=#{orderId} and a.deleted=0 and a.jxbz is null )") List selectTjOrderDetailListByFlowingWaterIdIsNotNullAndJxbzIsNull(String orderId); /** * 查询未缴费项目 */ @Select("SELECT * FROM tj_project p WHERE p.pro_parent_id =0 AND p.pro_id IN (\n" + " SELECT a.pro_id FROM tj_order_detail a WHERE ISNULL(flowing_water_id) AND order_id=#{orderId} and a.deleted=0 )") public List selectTjOrderDetailListByFlowingWaterIdIsNull(String orderId); /** * 查询未缴费项目 */ @Select("SELECT * FROM tj_project p WHERE p.pro_parent_id =0 AND p.pro_id IN (\n" + " SELECT a.pro_id FROM tj_order_detail a WHERE ISNULL(flowing_water_id) AND order_id=#{orderId} and a.deleted=0 and a.jxbz = #{jxbz} )") public List selectTjOrderDetailListByFlowingWaterIdIsNullN(@Param("orderId") String orderId,@Param("jxbz") String jxbz); @Select("SELECT * FROM tj_project p WHERE p.pro_parent_id =0 AND p.pro_id IN (\n" + " SELECT a.pro_id FROM tj_order_detail a WHERE ISNULL(flowing_water_id) AND order_id=#{orderId} and a.deleted=0 and a.jxbz is null )") List selectTjOrderDetailListByFlowingWaterIdIsNullAndJxbzIsNull(String orderId); @Select("SELECT * FROM tj_order_detail WHERE order_id=#{orderId} AND !ISNULL(flowing_water_id) AND deleted='0'") public List getTjOrderDetailListByOrderId(String orderId); @Select("SELECT * FROM tj_order_detail WHERE order_id=#{orderId} AND deleted='0'") public List getTjOrderDetailsByOrderId(String orderId); @Select("SELECT * FROM tj_order_detail WHERE deleted='0' AND order_id=#{orderId} AND pro_id=#{proId}") public TjOrderDetail getTjOrderDetailByOrderId(@Param("orderId") String orderId,@Param("proId") String proId); @Select("SELECT * FROM tj_order_detail WHERE deleted='0' AND order_id=#{orderId} AND tj_status in (0,3) AND !ISNULL(flowing_water_id)") public List getTjOrderDetailListByOrderIdAndStatus(String orderId); @Select({"" }) public List getTjOrderDetailListInProParentIdList(@Param("orderId") String orderId,@Param("proParentIdList") List proParentIdList); @Select("SELECT * FROM tj_order_detail WHERE exception_desc='1'AND deleted='0' AND create_time BETWEEN IFNULL('${startDate}','1970-01-01 00:00:00') AND IFNULL('${endDate}',SYSDATE())") List getTjOrderDetailList(@Param("startDate") String startDate,@Param("endDate") String endDate); @Insert("\tINSERT INTO tj_order_detail(\n" + // "\torder_detail_id,\n" + " order_id,\n" + " pro_id,\n" + " pro_result,\n" + " tj_status,\n" + " create_time,\n" + " create_by,\n" + " is_sampling,\n" + " create_id,\n" + " pro_type) \n" + " \n" + " SELECT #{orderId},a.pro_id,IFNULL(trim(b.pro_default),null),IF(b.need_report<>'Y',1,0),SYSDATE(),#{userName},b.is_sampling,#{userId},IFNULL(a.pac_id,0)" + " FROM tb_transition a LEFT JOIN tj_project b ON a.pro_id=b.pro_id WHERE a.cus_id=#{cusId} AND a.card_id=#{cardId} \n" + "\t\t\n" + "\tUNION\n" + " \n" + "\tSELECT #{orderId},a.parent_pro_id,IFNULL(trim(b.pro_default),null),IF(b.need_report<>'Y',1,0),SYSDATE(),#{userName},b.is_sampling,#{userId},IFNULL(a.pac_id,0) " + "FROM tb_transition a LEFT JOIN tj_project b ON a.parent_pro_id=b.pro_id WHERE a.cus_id=#{cusId} AND a.card_id=#{cardId} GROUP BY a.parent_pro_id") boolean saveTjOrderDetailsByCusId(@Param("cusId")String cusId,@Param("orderId")String orderId,@Param("userName")String userName,@Param("userId") String userId,@Param("cardId") String cardId); @Insert("\tINSERT INTO tj_order_detail(\n" + // "\torder_detail_id,\n" + " order_id,\n" + " pro_id,\n" + " pro_result,\n" + " tj_status,\n" + " create_time,\n" + " create_by,\n" + " is_sampling,\n" + " create_id,\n" + " pro_type," + "flowing_water_id) \n" + " \n" + " SELECT #{orderId},a.pro_id,IFNULL(trim(b.pro_default),null),'1',SYSDATE(),#{userName},b.is_sampling,#{userId},IFNULL(a.pac_id,0) ,#{sl}" + "FROM tb_transition a LEFT JOIN tj_project b ON a.pro_id=b.pro_id WHERE a.cus_id=#{cusId} AND a.card_id=#{cardId} \n" + "\t\t\n" + "\tUNION\n" + " \n" + "\tSELECT #{orderId},a.parent_pro_id,IFNULL(trim(b.pro_default),null),'0',SYSDATE(),#{userName},b.is_sampling,#{userId},IFNULL(a.pac_id,0) ,#{sl}" + " FROM tb_transition a LEFT JOIN tj_project b ON a.parent_pro_id=b.pro_id WHERE a.cus_id=#{cusId} AND a.card_id=#{cardId} GROUP BY a.parent_pro_id") boolean saveJSYTjOrderDetailsByCusId(@Param("cusId")String cusId,@Param("orderId")String orderId,@Param("userName")String userName,@Param("userId") String userId, @Param("cardId") String cardId,@Param("sl") String sl); @Insert("INSERT INTO tj_pure_tone_test (\n" + " tj_num,\n" + "\tcus_id,\n" + "\tcus_name,\n" + "\tpro_id,\n" + "\tpro_name,\n" + "\tcreate_by,\n" + "\tcreate_time,\n" + "\tcreate_id\n" + ")\n" + "SELECT #{tjNum},b.cus_id,b.cus_name,'1740177341251154247','纯音听阈'," + "#{userName},SYSDATE(),#{userId} FROM tb_transition a LEFT JOIN tj_customer b " + "ON a.cus_id=b.cus_idcard WHERE a.cus_id=#{cusId} AND a.card_id=#{cardId} AND a.parent_pro_id IN('1740177341251154247') GROUP BY a.cus_id") boolean saveTjPureToneTesByCusId(@Param("cusId")String cusId,@Param("tjNum")String tjNum,@Param("userName")String userName,@Param("userId") String userId,@Param("cardId") String cardId); @Update("UPDATE tj_order_detail a SET\n" + "a.flowing_water_id=#{ls} ,\n" + "a.update_time=SYSDATE(),\n" + "a.update_by=#{userName},\n" + "a.update_id=#{userId}\n" + "WHERE a.order_id=#{orderId}") boolean updateTjOrderDetailsByOrderId(@Param("orderId")String orderId,@Param("userName")String userName,@Param("userId") String userId,@Param("ls")String ls); @Select("SELECT *\n" + "FROM `tj_order_detail` \n" + "where order_id=#{orderId}\n" + "and pro_id IN\n" + "(select pro_id from tj_project where pro_parent_id=#{proParentId})") public List getDetailByOrderIdAndParId(@Param("orderId")Long orderId,@Param("proParentId")Long proParentId); public List getDetailByOrderIdAndParIds(@Param("orderId")Long orderId,@Param("proParentIds")List proParentIds); @Select("call pro_lis_sqdbgd(1,#{tjnumber,mode=IN})") // @Select("select * from test_detail") List addHuaYanTable(@Param("tjnumber") String tjnumber); @Select("call pro_checkhyAndcg(1,#{tjnumber,mode=IN})") List addHuaYanAndCgTable(String tjnumber); @Delete("delete\n" + " from tj_order_detail\n" + " where jxbz = #{jxbz}") void deleteTjOrderDetailByjxbz(String jxbz); @Select("SELECT\n" + "\tIFNULL(SUM(CASE WHEN aa.mc LIKE '%身高%' THEN aa.jg END),'无') shenggao,\n" + "\tIFNULL(SUM(CASE WHEN aa.mc LIKE '%体重%' THEN aa.jg END),'无') tizhong,\n" + "\tIFNULL(SUM(CASE WHEN aa.mc LIKE '%指数%' THEN aa.jg END),'无') tizhongzhishu,\n" + "\tIFNULL(SUM(CASE WHEN aa.mc LIKE '%收缩压%' THEN aa.jg END),'无') shousuoya,\n" + "\tIFNULL(SUM(CASE WHEN aa.mc LIKE '%舒张压%' THEN aa.jg END),'无') shuzhangya\n" + "FROM\n" + "\t(\n" + "\tSELECT\n" + "\t\tc.pro_name mc,\n" + "\t\tb.pro_result jg \n" + "\tFROM\n" + "\t\ttj_order a\n" + "\t\tJOIN tj_order_detail b ON a.order_id = b.order_id\n" + "\t\tJOIN tj_project c ON c.pro_id = b.pro_id \n" + "\tWHERE\n" + "\t\ta.tj_number =#{tjNum} \n" + "\t\tAND c.pro_parent_id != 0 \n" + "\t\tAND (\n" + "\t\t\tc.pro_name LIKE '%身高%' \n" + "\t\t\tOR c.pro_name LIKE '%体重%' \n" + "\t\t\tOR c.pro_name LIKE '%指数%' \n" + "\t\t\tOR c.pro_name LIKE '%收缩压%' \n" + "\t\tOR c.pro_name LIKE '%舒张压%' \n" + "\t)) aa ") List getShenGaoTiZhongList(String tjNum); // @Select("SELECT a.* FROM tj_order_detail a LEFT JOIN tj_project b ON a.pro_id=b.pro_id \n" + // "LEFT JOIN sys_dept c ON c.dept_id=b.dept_id \n" + // " WHERE a.deleted=0 AND !ISNULL(a.flowing_water_id) AND a.order_id=#{orderId} and b.pro_parent_id = 0 AND c.org_type=1") @Select("SELECT a.* FROM tj_order_detail a LEFT JOIN tj_project b ON a.pro_id=b.pro_id \n" + "LEFT JOIN sys_dept c ON c.dept_id=b.dept_id \n" + " WHERE a.deleted=0 AND a.order_id=#{orderId} and b.pro_parent_id = 0 AND c.org_type=1") List getCaiYangDengJi(Long orderId); @Select("SELECT a.* FROM tj_order_detail a LEFT JOIN tj_project b ON a.pro_id=b.pro_id \n" + "LEFT JOIN sys_dept c ON c.dept_id=b.dept_id \n" + " WHERE a.deleted=0 AND a.order_id=#{orderId} and b.pro_parent_id = 0 AND c.org_type=1 AND a.jxbz = #{jxbz}") List getCaiYangDengJiJxbz(@Param("orderId") Long orderId,@Param("jxbz") String jxbz); @Select("call tj_check_yclist(1,#{tjnumber,mode=IN})") List getzongjianyishengchakanyichangxiangmu(String tjNumber); @Select("call tj_check_yclist(4,#{tjNumber,mode=IN})") List getzongjianyishengchakanyichangxiangmu4(@Param("tjNumber") String tjNumber); @Update("UPDATE tj_order_detail a SET\n" + "a.flowing_water_id=#{ls} ,\n" + "a.update_time=SYSDATE()\n" + "WHERE a.order_id=#{orderId} and a.jxbz=#{jxbz}") void updateTjOrderDetailsFlowingWaterIdByJxbz(@Param("orderId") String orderId, @Param("jxbz")String jxbz,@Param("ls")String ls); @Update("UPDATE tj_order_detail a SET\n" + "a.flowing_water_id=#{ls} ,\n" + "a.update_time=SYSDATE()\n" + "WHERE a.order_id=#{orderId} and isnull(a.jxbz)") void updateTjOrderDetailsFlowingWaterIdByJxbzisnull(@Param("orderId") String orderId,@Param("ls")String ls); @Update("UPDATE tj_order_detail a SET\n" + "a.deleted=1 \n" + "WHERE a.order_detail_id=#{id}") void updateTjOrderDetailDel(@Param("id") String id); @Select("SELECT p.pro_id,p.pro_name,p.pro_parent_id,o.order_id,p.sl * p.pro_price as price,d.dept_id,d.dept_name\n" + " FROM tj_order_detail o \n" + " LEFT JOIN tj_project p ON o.pro_id = p.pro_id\n" + " LEFT JOIN sys_dept d ON p.dept_id = d.dept_id\n" + " WHERE order_id = #{orderId} AND p.pro_parent_id <>0 AND o.is_return = #{type}") List getFcList(@Param("orderId") Long orderId, @Param("type") Integer type); }