mybatis动态sql多条件查询

controler

 /**
     *
     *张子辉
     * pc  状态码 0 1     0进行中    1已完成
     * 安卓 状态码 2 3  2 医院code 排序    3创建时间排序
     * 空 默认时间排序
     */
    @ApiOperation(value = "患者列表综合", notes = "患者列表综合", httpMethod = "GET")
    @GetMapping("/queryAllPatientS")
    public PageList<PatientRegisterDomain> queryAllPatientS(String name,String idCard,String callTime,String firstaidStatus,String createTime,int pageCurrent, int pageSize,String statu,Integer carId,String orgName,String account){
        return patientRegisterImpl.queryAllpatient(name,idCard,callTime,firstaidStatus,createTime,pageCurrent,pageSize,statu,carId,orgName,account);
    }

service

//患者列表
    PageList<PatientRegisterDomain> queryAllpatient(String name,String idCard,String callTime,String firstaidStatus,String createTime,int pageCurrent, int pageSize,String statu,Integer carId,String orgName,String account);

serviceImpl

 //患者列表
    @Override
    public PageList<PatientRegisterDomain> queryAllpatient(String name,String idCard,String callTime,String firstaidStatus,String createTime,int pageCurrent, int pageSize,String statu,Integer carId,String orgName,String account) {
        PageHelper.startPage(pageCurrent, pageSize);
        //调用 马磊患者id接口
        String o = null;
        if (account != null && account != "") {
            YqjjFirstaid yqjjFirstaid = YqjjFirstaidImpl.selectByAccount(account);
            o = yqjjFirstaid.getId().toString();
        }

        List<PatientRegisterDomain> all = patientRegisterDao.queryAllpatient(name,idCard,callTime,firstaidStatus,createTime,pageCurrent,pageSize,statu,carId,orgName,o);
        for (int i = 0; i < all.size(); i++) {
            String accounts = yqjjFirstaidDao.selectAccountById(all.get(i).getFirstaidId());
            all.get(i).setFirstaidAccount(accounts);
        }
        PageInfo<PatientRegisterDomain> pageInfo = new PageInfo<>(all);
        PageList pageList = new PageList(pageInfo.getTotal(), pageInfo.getList());
        return pageList;
    }

dao


    //患者列表
    List<PatientRegisterDomain> queryAllpatient(String name,String idCard,String callTime,String firstaidStatus,String createTime,int pageCurrent, int pageSize,String statu,Integer carId,String orgName,String o);

mapper

 <!--患者列表sql-->
    <select id="queryAllpatient" parameterType="com.xyhsoft.ygt.yqjj.api.patient.domain.PatientRegisterDomain" resultMap="BaseResultMap">
        select
        p.ID,
        p.FIRSTAID_ID,
        p.CAR_ID,
        p.RECORD_NUM,
        p.NAME,
        p.ID_CARD,
        p.GENDER,
        p.AGE,
        p.PHONE,
        p.NATIONALITY,
        p.NATION,
        p.PROFESSION,
        p.SITE_LOCATION,
        p.HOME_ADDRESS,
        p.CALL_TIME,
        p.VISIT_TIME,
        p.ARRIVAL_TIME,
        p.DEPARTURE_TIME,
        p.CHIEF_COMPLAINT,
        p.HPI,
        p.PAST_HISTORY,
        p.ALLERGIC_HISTORY,
        p.POSITIVE_SIGN,
        p.NEGATIVE_SYMPTOMS,
        p.MEDICALHISTORY_PROVIDER,
        p.PATIENT_RELATION,
        p.CHECK_T,
        p.CHECK_P,
        p.CHECK_R,
        p.CHECK_SYS,
        p.CHECK_DIA,
        p.CONSCIOUSNESS,
        p.PUPIL,
        p.LIGHT_REFLEX,
        p.HEAD_NECK,
        p.THORACIC_DORSAL,
        p.HEART_LUNG,
        p.ABDOMEN,
        p.SPINE_LIMBS,
        p.NERVOUS_SYSTEM,
        p.RECORD_OTHER,
        p.REFLEX_SKIN,
        p.HOSPITAL_DIAGNOSIS,
        p.THERAPEUTIC_MEASURES,
        p.AUXILIARY_EXAMINATION,
        p.MEASURES_OTHER,
        p.MEASURES_SPO2H,
        p.MEASURES_GLU,
        p.MEASURES_THERAPY,
        p.DOCTOR_NAME,
        p.VISIT_RESULT,
        p.VISIT_DOCTOR,
        p.VISIT_NURSE,
        p.VISIT_DRIVER,
        p.PATIENT_TO,
        p.PATIENT_OTHER,
        p.DELIVERY_ADDRESS,
        p.DELIVERY_TIME,
        p.ILLNESS_P,
        p.ILLNESS_T,
        p.ILLNESS_SYS,
        p.ILLNESS_DIA,
        p.DELIVERY_CONSCIOUSNESS,
        p.DISEASE_CLASSIFY,
        p.REMEDY_RESULT,
        p.PATIENT_COOPERATION,
        p.MEDICAL_STAFF,
        p.HOSPITAL_OUTCOME,
        p.DEATH_CERTIFICATE,
        p.FIRSTAID_STATUS,
        p.HOSP_NAME,
        p.NOTIFICATION_OTHER,
        p.PATIENT_RELATION2,
        p.DUTY_SIGNATURE,
        p.NUNCIATOR_SIGNATURE,
        p.NUNCIATOR_TIME,
        p.ECG_CODE,
        p.ECG_DIAGNOSIS,
        p.CREATE_BY,
        p.UPDATE_BY,
        p.CREATE_TIME,
        p.UPDATE_TIME,
        p.ORG_CODE,
        p.ORG_NAME,
        f.org_name,
        f.LONGITUDE,
        f.LATITUDE
        from yqjj_patient p left join  yqjj_firstaid f on p.FIRSTAID_ID = f.ID
        <where>
            <if test="name != null and name != ''">
                p.NAME like concat('%',#{name},'%')
            </if>

            <if test="idCard != null and idCard != ''">
                and  p.ID_CARD = #{idCard}
            </if>


            <if test=" callTime != null  and callTime != '' ">
                and p.CALL_TIME &gt;= DATE_FORMAT(#{callTime},'%Y-%m-%d 00:00:00')
            </if>
            <if test=" callTime != null and callTime != ''">
                and p.CALL_TIME &lt;=  DATE_FORMAT(#{callTime},'%Y-%m-%d 23:59:59')
            </if>

            <if test="firstaidStatus != null and firstaidStatus != ''">
                and p.FIRSTAID_STATUS = #{firstaidStatus}
            </if>

            <if test=" createTime != null  and createTime != ''">
                and p.CREATE_TIME &gt;= DATE_FORMAT(#{createTime},'%Y-%m-%d 00:00:00')
            </if>
            <if test=" createTime != null  and createTime != '' ">
                and p.CREATE_TIME &lt;=  DATE_FORMAT(#{createTime},'%Y-%m-%d 23:59:59')
            </if>


            <if test="carId != null and carId != ''">
                and  p.CAR_ID = #{carId}
            </if>

            <if test="orgName != null and orgName != ''">
                and  f.ORG_NAME = #{orgName}
            </if>

            <if test="o != null and o != ''">
                and  p.FIRSTAID_ID = #{o}
            </if>
        </where>
        order by
        <choose>
            <when test="statu == 2">
                p.ORG_CODE asc
            </when>
            <when test="statu ==3 ">
                p.CREATE_TIME desc
            </when>
            <otherwise>
                p.CREATE_TIME desc
            </otherwise>
        </choose>
第二种方式
			 <!--<if test="statu == 2">p.ORG_CODE asc</if>-->
           <!--<if test="statu == 3">p.CREATE_TIME asc</if>-->

多条件查询 让我们的结果展示的更快 减少代码的冗余

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值