package thyyxxk.webserver.dao.his.medicine;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import thyyxxk.webserver.entity.dictionary.CodeName;
import thyyxxk.webserver.entity.medicine.YpZdManuFactory;

import java.util.List;

@Mapper
public interface YpZdManuFactoryDao extends BaseMapper<YpZdManuFactory> {

    @Select(" select mf.* from yp_zd_manufactory as mf " +
            " where mf.code like '%${text}%' or mf.name like '%${text}%' " +
            " or mf.py_code like ('%' + upper(#{text}) + '%') or mf.d_code like ('%' + upper(#{text}) + '%') " +
            " order by mf.code ")
    List<YpZdManuFactory> selectYpManuFactory(@Param("text") String text);

    @Select(" select * from yp_zd_manufactory where code = #{code} ")
    YpZdManuFactory selectYpManuFactoryByCode(@Param("code") String code);

    @Update("<script>" +
            "update yp_zd_manufactory " +
            "<trim prefix=\"set\" suffixOverrides=\",\">" +
            "<if test=\"code != null and code != '' \">" +
            "code = #{code}, " +
            "</if>" +
            "<if test=\"name != null and name != '' \">" +
            "name = #{name}, " +
            "</if>" +
            "<if test=\"pyCode != null and pyCode != '' \">" +
            "py_code = #{pyCode}, " +
            "</if>" +
            "<if test=\"dCode != null and dCode != '' \">" +
            "d_code = #{dCode}, " +
            "</if>" +
            "<if test=\"delFlag != null and delFlag != '' \">" +
            "del_flag = #{delFlag}, " +
            "</if>" +
            "<if test=\"abbrName != null and abbrName != '' \">" +
            "abbr_name = #{abbrName}, " +
            "</if>" +
            "<if test=\"address != null and address != '' \">" +
            "address = #{address}, " +
            "</if>" +
            "<if test=\"zipCode != null and zipCode != '' \">" +
            "zip_code = #{zipCode}, " +
            "</if>" +
            "<if test=\"telNo != null and telNo != '' \">" +
            "tel_no = #{telNo}, " +
            "</if>" +
            "<if test=\"relName != null and relName != '' \">" +
            "rel_name = #{relName}, " +
            "</if>" +
            "<if test=\"productRange != null and productRange != '' \">" +
            "product_range = #{productRange}, " +
            "</if>" +
            "<if test=\"comment != null and comment != '' \">" +
            "comment = #{comment}, " +
            "</if>" +
            "<if test=\"useFlag != null and useFlag != '' \">" +
            "use_flag = #{useFlag}, " +
            "</if>" +
            "</trim>" +
            "where code = #{code} " +
            "</script>")
    int updateYpManuFactoryByCode(YpZdManuFactory ypZdManuFactory);

    @Delete(" delete from yp_zd_manufactory where code = #{code} ")
    int deleteYpManuFactoryByCode(@Param("code") String code);

    @Update(" update yp_zd_manufactory set del_flag = '1' where code = #{code} ")
    int updateYpManuFactoryDelFlagByCode(@Param("code") String code);

    @Select("select rtrim(code) as code, rtrim(name) as name, isnull(del_flag, '0') as statusFlag, " +
            " case when del_flag = '1' then 'true' else 'false' end as disabled " +
            "from yp_zd_manufactory with(nolock) order by code ")
    List<CodeName> selectYpManuFactoryCode();

}
