<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzya.frame.mdm.mdmModuleDbFileds.dao.impl.MdmModuleDbFiledsDaoImpl">

    <resultMap id="get-MdmModuleDbFiledsEntity-result" type="com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity" >
       <result property="id" column="id" jdbcType="VARCHAR"/>
           <result property="mdmId" column="mdm_id" jdbcType="VARCHAR"/>
           <result property="dbId" column="db_id" jdbcType="VARCHAR"/>
           <result property="chName" column="ch_name" jdbcType="VARCHAR"/>
           <result property="enName" column="en_name" jdbcType="VARCHAR"/>
           <result property="filedType" column="filed_type" jdbcType="VARCHAR"/>
           <result property="addType" column="add_type" jdbcType="VARCHAR"/>
           <result property="updateType" column="update_type" jdbcType="VARCHAR"/>
           <result property="showType" column="show_type" jdbcType="VARCHAR"/>
           <result property="queryType" column="query_type" jdbcType="VARCHAR"/>
           <result property="listType" column="list_type" jdbcType="VARCHAR"/>
           <result property="viewType" column="view_type" jdbcType="VARCHAR"/>
           <result property="filedLength" column="filed_length" jdbcType="VARCHAR"/>
           <result property="sorts" column="sorts" jdbcType="INTEGER"/>
           <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/>
           <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
           <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/>
           <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
           <result property="sts" column="sts" jdbcType="VARCHAR"/>
           <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
           <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
        </resultMap>
    <!-- 查询的字段-->
    <sql id = "MdmModuleDbFiledsEntity_Base_Column_List">
        id
       ,mdm_id 
        ,db_id 
        ,ch_name 
        ,en_name 
        ,filed_type 
        ,add_type 
        ,update_type 
        ,show_type 
        ,query_type 
        ,list_type 
        ,view_type 
        ,filed_length 
        ,sorts 
        ,create_user_id 
        ,create_time 
        ,modify_user_id 
        ,modify_time 
        ,sts 
        ,org_id 
        ,company_id 
     </sql>
 <!-- 查询 采用==查询 -->
 <select id="entity_list_base" resultMap="get-MdmModuleDbFiledsEntity-result" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity">
    select
    <include refid="MdmModuleDbFiledsEntity_Base_Column_List" />
    from mdm_module_db_fileds
    <trim prefix="where" prefixOverrides="and"> 
        <if test="id != null and id != ''"> and id = #{id} </if>
            <if test="mdmId != null and mdmId != ''"> and mdm_id = #{mdmId} </if>
            <if test="dbId != null and dbId != ''"> and db_id = #{dbId} </if>
            <if test="chName != null and chName != ''"> and ch_name = #{chName} </if>
            <if test="enName != null and enName != ''"> and en_name = #{enName} </if>
            <if test="filedType != null and filedType != ''"> and filed_type = #{filedType} </if>
            <if test="addType != null and addType != ''"> and add_type = #{addType} </if>
            <if test="updateType != null and updateType != ''"> and update_type = #{updateType} </if>
            <if test="showType != null and showType != ''"> and show_type = #{showType} </if>
            <if test="queryType != null and queryType != ''"> and query_type = #{queryType} </if>
            <if test="listType != null and listType != ''"> and list_type = #{listType} </if>
            <if test="viewType != null and viewType != ''"> and view_type = #{viewType} </if>
            <if test="filedLength != null and filedLength != ''"> and filed_length = #{filedLength} </if>
            <if test="sorts != null"> and sorts = #{sorts} </if>
            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
            <if test="create_time != null"> and create_time = #{create_time} </if>
            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
            <if test="roletype != null and roletype != ''">
                and id in (
                select
                filed_id
                from mdm_module_db_fileds_rule
                where sts='Y'	and rule_code = #{roletype} and rule_value =  #{roleValue}
                )
            </if>
            and sts='Y'
    </trim>
    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
</select>
    
<!-- 查询符合条件的数量 -->
<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity">
        select  count(1)   from mdm_module_db_fileds
    <trim prefix="where" prefixOverrides="and"> 
        <if test="id != null and id != ''"> and id = #{id} </if>
            <if test="mdmId != null and mdmId != ''"> and mdm_id = #{mdmId} </if>
            <if test="dbId != null and dbId != ''"> and db_id = #{dbId} </if>
            <if test="chName != null and chName != ''"> and ch_name = #{chName} </if>
            <if test="enName != null and enName != ''"> and en_name = #{enName} </if>
            <if test="filedType != null and filedType != ''"> and filed_type = #{filedType} </if>
            <if test="addType != null and addType != ''"> and add_type = #{addType} </if>
            <if test="updateType != null and updateType != ''"> and update_type = #{updateType} </if>
            <if test="showType != null and showType != ''"> and show_type = #{showType} </if>
            <if test="queryType != null and queryType != ''"> and query_type = #{queryType} </if>
            <if test="listType != null and listType != ''"> and list_type = #{listType} </if>
            <if test="viewType != null and viewType != ''"> and view_type = #{viewType} </if>
            <if test="filedLength != null and filedLength != ''"> and filed_length = #{filedLength} </if>
            <if test="sorts != null"> and sorts = #{sorts} </if>
            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
            <if test="create_time != null"> and create_time = #{create_time} </if>
            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
            and sts='Y'
    </trim>
    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
    <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if>
    </select>

    <!-- 分页查询列表 采用like格式 -->
<select id="entity_list_like" resultMap="get-MdmModuleDbFiledsEntity-result" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity">
    select
    <include refid="MdmModuleDbFiledsEntity_Base_Column_List" />
    from mdm_module_db_fileds
    <trim prefix="where" prefixOverrides="and"> 
        <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if>
            <if test="mdmId != null and mdmId != ''"> and mdm_id like concat('%',#{mdmId},'%') </if>
            <if test="dbId != null and dbId != ''"> and db_id like concat('%',#{dbId},'%') </if>
            <if test="chName != null and chName != ''"> and ch_name like concat('%',#{chName},'%') </if>
            <if test="enName != null and enName != ''"> and en_name like concat('%',#{enName},'%') </if>
            <if test="filedType != null and filedType != ''"> and filed_type like concat('%',#{filedType},'%') </if>
            <if test="addType != null and addType != ''"> and add_type like concat('%',#{addType},'%') </if>
            <if test="updateType != null and updateType != ''"> and update_type like concat('%',#{updateType},'%') </if>
            <if test="showType != null and showType != ''"> and show_type like concat('%',#{showType},'%') </if>
            <if test="queryType != null and queryType != ''"> and query_type like concat('%',#{queryType},'%') </if>
            <if test="listType != null and listType != ''"> and list_type like concat('%',#{listType},'%') </if>
            <if test="viewType != null and viewType != ''"> and view_type like concat('%',#{viewType},'%') </if>
            <if test="filedLength != null and filedLength != ''"> and filed_length like concat('%',#{filedLength},'%') </if>
            <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if>
            <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if>
            <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if>
            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if>
            <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
            <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
            <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
            <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if>
            and sts='Y'
    </trim>
    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
</select>

<!-- 查询列表 字段采用or格式 -->
<select id="MdmModuleDbFiledsentity_list_or" resultMap="get-MdmModuleDbFiledsEntity-result" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity">
    select
    <include refid="MdmModuleDbFiledsEntity_Base_Column_List" />
    from mdm_module_db_fileds
    <trim prefix="where" prefixOverrides="and"> 
         <if test="id != null and id != ''"> or id = #{id} </if>
             <if test="mdmId != null and mdmId != ''"> or mdm_id = #{mdmId} </if>
             <if test="dbId != null and dbId != ''"> or db_id = #{dbId} </if>
             <if test="chName != null and chName != ''"> or ch_name = #{chName} </if>
             <if test="enName != null and enName != ''"> or en_name = #{enName} </if>
             <if test="filedType != null and filedType != ''"> or filed_type = #{filedType} </if>
             <if test="addType != null and addType != ''"> or add_type = #{addType} </if>
             <if test="updateType != null and updateType != ''"> or update_type = #{updateType} </if>
             <if test="showType != null and showType != ''"> or show_type = #{showType} </if>
             <if test="queryType != null and queryType != ''"> or query_type = #{queryType} </if>
             <if test="listType != null and listType != ''"> or list_type = #{listType} </if>
             <if test="viewType != null and viewType != ''"> or view_type = #{viewType} </if>
             <if test="filedLength != null and filedLength != ''"> or filed_length = #{filedLength} </if>
             <if test="sorts != null"> or sorts = #{sorts} </if>
             <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if>
              <if test="create_time != null"> or create_time = #{create_time} </if>
              <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if>
              <if test="modify_time != null"> or modify_time = #{modify_time} </if>
              <if test="sts != null and sts != ''"> or sts = #{sts} </if>
             <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
              <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if>
            and sts='Y'
    </trim>
    <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
</select>

<!--新增所有列-->
<insert id="entity_insert" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity"  >
    insert into mdm_module_db_fileds(
  <trim suffix="" suffixOverrides=",">
       <if test="id != null and id != ''"> id , </if>
            <if test="mdmId != null and mdmId != ''"> mdm_id , </if>
            <if test="dbId != null and dbId != ''"> db_id , </if>
            <if test="chName != null and chName != ''"> ch_name , </if>
            <if test="enName != null and enName != ''"> en_name , </if>
            <if test="filedType != null and filedType != ''"> filed_type , </if>
            <if test="addType != null and addType != ''"> add_type , </if>
            <if test="updateType != null and updateType != ''"> update_type , </if>
            <if test="showType != null and showType != ''"> show_type , </if>
            <if test="queryType != null and queryType != ''"> query_type , </if>
            <if test="listType != null and listType != ''"> list_type , </if>
            <if test="viewType != null and viewType != ''"> view_type , </if>
            <if test="filedLength != null and filedLength != ''"> filed_length , </if>
            <if test="sorts != null"> sorts , </if>
            <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if>
            <if test="create_time != null"> create_time , </if>
            <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if>
            <if test="modify_time != null"> modify_time , </if>
            <if test="sts != null and sts != ''"> sts , </if>
            <if test="org_id != null and org_id != ''"> org_id , </if>
            <if test="companyId != null and companyId != ''"> company_id , </if>
    <if test="sts == null ">sts,</if>
  </trim>
  )values(
 <trim suffix="" suffixOverrides=",">
       <if test="id != null and id != ''"> #{id} ,</if>
            <if test="mdmId != null and mdmId != ''"> #{mdmId} ,</if>
            <if test="dbId != null and dbId != ''"> #{dbId} ,</if>
            <if test="chName != null and chName != ''"> #{chName} ,</if>
            <if test="enName != null and enName != ''"> #{enName} ,</if>
            <if test="filedType != null and filedType != ''"> #{filedType} ,</if>
            <if test="addType != null and addType != ''"> #{addType} ,</if>
            <if test="updateType != null and updateType != ''"> #{updateType} ,</if>
            <if test="showType != null and showType != ''"> #{showType} ,</if>
            <if test="queryType != null and queryType != ''"> #{queryType} ,</if>
            <if test="listType != null and listType != ''"> #{listType} ,</if>
            <if test="viewType != null and viewType != ''"> #{viewType} ,</if>
            <if test="filedLength != null and filedLength != ''"> #{filedLength} ,</if>
            <if test="sorts != null"> #{sorts} ,</if>
            <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if>
            <if test="create_time != null"> #{create_time} ,</if>
            <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if>
            <if test="modify_time != null"> #{modify_time} ,</if>
            <if test="sts != null and sts != ''"> #{sts} ,</if>
            <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
            <if test="companyId != null and companyId != ''"> #{companyId} ,</if>
    <if test="sts == null ">'Y',</if>
  </trim>
  )  
</insert>
<!-- 批量新增 -->
<insert id="entityInsertBatch"  >
  insert into mdm_module_db_fileds(mdm_id, db_id, ch_name, en_name, filed_type, add_type, update_type, show_type, query_type, list_type, view_type, filed_length, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id,  sts) 
    values
    <foreach collection="entities" item="entity" separator=",">
    (#{entity.mdmId},#{entity.dbId},#{entity.chName},#{entity.enName},#{entity.filedType},#{entity.addType},#{entity.updateType},#{entity.showType},#{entity.queryType},#{entity.listType},#{entity.viewType},#{entity.filedLength},#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId}, 'Y')
    </foreach>
</insert>
<!-- 批量新增或者修改-->
<insert id="entityInsertOrUpdateBatch"  >
    insert into mdm_module_db_fileds(mdm_id, db_id, ch_name, en_name, filed_type, add_type, update_type, show_type, query_type, list_type, view_type, filed_length, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, company_id)
    values
    <foreach collection="entities" item="entity" separator=",">
    (#{entity.mdmId},#{entity.dbId},#{entity.chName},#{entity.enName},#{entity.filedType},#{entity.addType},#{entity.updateType},#{entity.showType},#{entity.queryType},#{entity.listType},#{entity.viewType},#{entity.filedLength},#{entity.create_user_id},#{entity.create_time},#{entity.modify_user_id},#{entity.modify_time},#{entity.sts},#{entity.org_id},#{entity.companyId})
    </foreach>
    on duplicate key update
    mdm_id = values(mdm_id),
    db_id = values(db_id),
    ch_name = values(ch_name),
    en_name = values(en_name),
    filed_type = values(filed_type),
    add_type = values(add_type),
    update_type = values(update_type),
    show_type = values(show_type),
    query_type = values(query_type),
    list_type = values(list_type),
    view_type = values(view_type),
    filed_length = values(filed_length),
    create_user_id = values(create_user_id),
    create_time = values(create_time),
    modify_user_id = values(modify_user_id),
    modify_time = values(modify_time),
    sts = values(sts),
    org_id = values(org_id),
    company_id = values(company_id)</insert>
<!--通过主键修改方法-->
<update id="entity_update" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity" >
update mdm_module_db_fileds  set
<trim suffix="" suffixOverrides=",">
  <if test="mdmId != null and mdmId != ''"> mdm_id = #{mdmId},</if>
  <if test="dbId != null and dbId != ''"> db_id = #{dbId},</if>
  <if test="chName != null and chName != ''"> ch_name = #{chName},</if>
  <if test="enName != null and enName != ''"> en_name = #{enName},</if>
  <if test="filedType != null and filedType != ''"> filed_type = #{filedType},</if>
  <if test="addType != null and addType != ''"> add_type = #{addType},</if>
  <if test="updateType != null and updateType != ''"> update_type = #{updateType},</if>
  <if test="showType != null and showType != ''"> show_type = #{showType},</if>
  <if test="queryType != null and queryType != ''"> query_type = #{queryType},</if>
  <if test="listType != null and listType != ''"> list_type = #{listType},</if>
  <if test="viewType != null and viewType != ''"> view_type = #{viewType},</if>
   filed_length = #{filedLength},
  <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if>
    <if test="create_time != null"> create_time = #{create_time},</if>
    <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if>
    <if test="modify_time != null"> modify_time = #{modify_time},</if>
    <if test="sts != null and sts != ''"> sts = #{sts},</if>
  <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
    <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if>
</trim>
where id = #{id}
</update>
<!-- 逻辑删除 -->
<update id="entity_logicDelete" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity" >
update mdm_module_db_fileds  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
where id = #{id}
</update>
<!-- 多条件逻辑删除 -->
<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity" >
update mdm_module_db_fileds  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
 <trim prefix="where" prefixOverrides="and"> 
        <if test="id != null and id != ''"> and id = #{id} </if>
            <if test="mdmId != null and mdmId != ''"> and mdm_id = #{mdmId} </if>
            <if test="dbId != null and dbId != ''"> and db_id = #{dbId} </if>
            <if test="chName != null and chName != ''"> and ch_name = #{chName} </if>
            <if test="enName != null and enName != ''"> and en_name = #{enName} </if>
            <if test="filedType != null and filedType != ''"> and filed_type = #{filedType} </if>
            <if test="addType != null and addType != ''"> and add_type = #{addType} </if>
            <if test="updateType != null and updateType != ''"> and update_type = #{updateType} </if>
            <if test="showType != null and showType != ''"> and show_type = #{showType} </if>
            <if test="queryType != null and queryType != ''"> and query_type = #{queryType} </if>
            <if test="listType != null and listType != ''"> and list_type = #{listType} </if>
            <if test="viewType != null and viewType != ''"> and view_type = #{viewType} </if>
            <if test="filedLength != null and filedLength != ''"> and filed_length = #{filedLength} </if>
            <if test="sorts != null"> and sorts = #{sorts} </if>
                                                                <if test="sts != null and sts != ''"> and sts = #{sts} </if>
                         <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
            and sts='Y'
    </trim>
</update>
<!--通过主键删除-->
<delete id="entity_delete">
    delete from mdm_module_db_fileds where id = #{id}
</delete>
    <!--通过mdmCode删除-->
    <delete id="deleteMdmModuleDbFileds" parameterType="com.hzya.frame.mdm.mdmModuleDb.entity.MdmModuleDbEntity">
    delete from mdm_module_db_fileds where  mdm_id = #{mdmId}
</delete>
</mapper>

