<?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.steerinfo.baseinfo.meterbasetimespace.mapper.MeterBaseTimeSpaceMapper">
  <resultMap id="BaseResultMap" type="com.steerinfo.baseinfo.meterbasetimespace.model.MeterBaseTimeSpace">
    <id column="TIME_SPACE_NO" jdbcType="VARCHAR" property="timeSpaceNo" />
    <result column="SPOT_TYPE_NO" jdbcType="VARCHAR" property="spotTypeNo" />
    <result column="SPOT_TYPE_NAME" jdbcType="VARCHAR" property="spotTypeName" />
    <result column="METER_TYPE_NO" jdbcType="VARCHAR" property="meterTypeNo" />
    <result column="METER_TYPE_NAME" jdbcType="VARCHAR" property="meterTypeName" />
    <result column="SPACE_TIME" jdbcType="DECIMAL" property="spaceTime" />
    <result column="MEMO" jdbcType="VARCHAR" property="memo" />
    <result column="CREATE_MAN_NO" jdbcType="VARCHAR" property="createManNo" />
    <result column="CREATE_MAN_NAME" jdbcType="VARCHAR" property="createManName" />
    <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" />
    <result column="UPDATE_MAN_NO" jdbcType="VARCHAR" property="updateManNo" />
    <result column="UPDATE_MAN_NAME" jdbcType="VARCHAR" property="updateManName" />
    <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
    <result column="SPACE_TIME_MAX" jdbcType="DECIMAL" property="spaceTimeMax" />
  </resultMap>
  <sql id="columns">
    TIME_SPACE_NO, SPOT_TYPE_NO, SPOT_TYPE_NAME, METER_TYPE_NO, METER_TYPE_NAME, SPACE_TIME,
    MEMO, CREATE_MAN_NO, CREATE_MAN_NAME, CREATE_TIME, UPDATE_MAN_NO, UPDATE_MAN_NAME,
    UPDATE_TIME, SPACE_TIME_MAX
  </sql>
  <sql id="columns_alias">
    t.TIME_SPACE_NO, t.SPOT_TYPE_NO, t.SPOT_TYPE_NAME, t.METER_TYPE_NO, t.METER_TYPE_NAME,
    t.SPACE_TIME, t.MEMO, t.CREATE_MAN_NO, t.CREATE_MAN_NAME, t.CREATE_TIME, t.UPDATE_MAN_NO,
    t.UPDATE_MAN_NAME, t.UPDATE_TIME, t.SPACE_TIME_MAX
  </sql>
  <sql id="select">
    SELECT <include refid="columns"/> FROM METER_BASE_TIME_SPACE
  </sql>
  <sql id="select_alias">
    SELECT <include refid="columns_alias"/> FROM METER_BASE_TIME_SPACE t
  </sql>
  <sql id="where">
    <where>
      <if test="timeSpaceNo != null and timeSpaceNo != ''">
        and TIME_SPACE_NO = #{timeSpaceNo}
      </if>
      <if test="spotTypeNo != null and spotTypeNo != ''">
        and SPOT_TYPE_NO = #{spotTypeNo}
      </if>
      <if test="spotTypeName != null and spotTypeName != ''">
        and SPOT_TYPE_NAME = #{spotTypeName}
      </if>
      <if test="meterTypeNo != null and meterTypeNo != ''">
        and METER_TYPE_NO = #{meterTypeNo}
      </if>
      <if test="meterTypeName != null and meterTypeName != ''">
        and METER_TYPE_NAME = #{meterTypeName}
      </if>
      <if test="spaceTime != null">
        and SPACE_TIME = #{spaceTime}
      </if>
      <if test="memo != null and memo != ''">
        and MEMO = #{memo}
      </if>
      <if test="createManNo != null and createManNo != ''">
        and CREATE_MAN_NO = #{createManNo}
      </if>
      <if test="createManName != null and createManName != ''">
        and CREATE_MAN_NAME = #{createManName}
      </if>
      <if test="createTime != null">
        and TO_CHAR(CREATE_TIME,'yyyy-MM-dd') = #{createTime}
      </if>
      <if test="updateManNo != null and updateManNo != ''">
        and UPDATE_MAN_NO = #{updateManNo}
      </if>
      <if test="updateManName != null and updateManName != ''">
        and UPDATE_MAN_NAME = #{updateManName}
      </if>
      <if test="updateTime != null">
        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
      </if>
      <if test="spaceTimeMax != null">
        and SPACE_TIME_MAX = #{spaceTimeMax}
      </if>
    </where>
  </sql>
  <sql id="whereLike">
    <where>
      <if test="timeSpaceNo != null and timeSpaceNo != ''">
        and TIME_SPACE_NO LIKE '%${timeSpaceNo}%'
      </if>
      <if test="spotTypeNo != null and spotTypeNo != ''">
        and SPOT_TYPE_NO LIKE '%${spotTypeNo}%'
      </if>
      <if test="spotTypeName != null and spotTypeName != ''">
        and SPOT_TYPE_NAME LIKE '%${spotTypeName}%'
      </if>
      <if test="meterTypeNo != null and meterTypeNo != ''">
        and METER_TYPE_NO LIKE '%${meterTypeNo}%'
      </if>
      <if test="meterTypeName != null and meterTypeName != ''">
        and METER_TYPE_NAME LIKE '%${meterTypeName}%'
      </if>
      <if test="spaceTime != null">
        and SPACE_TIME = #{spaceTime}
      </if>
      <if test="memo != null and memo != ''">
        and MEMO LIKE '%${memo}%'
      </if>
      <if test="createManNo != null and createManNo != ''">
        and CREATE_MAN_NO LIKE '%${createManNo}%'
      </if>
      <if test="createManName != null and createManName != ''">
        and CREATE_MAN_NAME LIKE '%${createManName}%'
      </if>
      <if test="createTime != null">
        and TO_CHAR(CREATE_TIME,'yyyy-MM-dd') = #{createTime}
      </if>
      <if test="updateManNo != null and updateManNo != ''">
        and UPDATE_MAN_NO LIKE '%${updateManNo}%'
      </if>
      <if test="updateManName != null and updateManName != ''">
        and UPDATE_MAN_NAME LIKE '%${updateManName}%'
      </if>
      <if test="updateTime != null">
        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
      </if>
      <if test="spaceTimeMax != null">
        and SPACE_TIME_MAX = #{spaceTimeMax}
      </if>
    </where>
  </sql>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
    delete from METER_BASE_TIME_SPACE
    where TIME_SPACE_NO = #{timeSpaceNo,jdbcType=VARCHAR}
  </delete>
  <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
    delete from METER_BASE_TIME_SPACE
    where 1!=1
    <if test="spotTypeNo != null and spotTypeNo != ''">
      or SPOT_TYPE_NO = #{spotTypeNo}
    </if>
    <if test="spotTypeName != null and spotTypeName != ''">
      or SPOT_TYPE_NAME = #{spotTypeName}
    </if>
    <if test="meterTypeNo != null and meterTypeNo != ''">
      or METER_TYPE_NO = #{meterTypeNo}
    </if>
    <if test="meterTypeName != null and meterTypeName != ''">
      or METER_TYPE_NAME = #{meterTypeName}
    </if>
    <if test="spaceTime != null">
      or SPACE_TIME = #{spaceTime}
    </if>
    <if test="memo != null and memo != ''">
      or MEMO = #{memo}
    </if>
    <if test="createManNo != null and createManNo != ''">
      or CREATE_MAN_NO = #{createManNo}
    </if>
    <if test="createManName != null and createManName != ''">
      or CREATE_MAN_NAME = #{createManName}
    </if>
    <if test="createTime != null">
      or TO_CHAR(CREATE_TIME,'yyyy-MM-dd') = '#{createTime}'
    </if>
    <if test="updateManNo != null and updateManNo != ''">
      or UPDATE_MAN_NO = #{updateManNo}
    </if>
    <if test="updateManName != null and updateManName != ''">
      or UPDATE_MAN_NAME = #{updateManName}
    </if>
    <if test="updateTime != null">
      or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
    </if>
    <if test="spaceTimeMax != null">
      or SPACE_TIME_MAX = #{spaceTimeMax}
    </if>
  </delete>
  <insert id="insert" parameterType="com.steerinfo.baseinfo.meterbasetimespace.model.MeterBaseTimeSpace">
    insert into METER_BASE_TIME_SPACE (TIME_SPACE_NO, SPOT_TYPE_NO, SPOT_TYPE_NAME,
                                       METER_TYPE_NO, METER_TYPE_NAME, SPACE_TIME,
                                       MEMO, CREATE_MAN_NO, CREATE_MAN_NAME,
                                       CREATE_TIME, UPDATE_MAN_NO, UPDATE_MAN_NAME,
                                       UPDATE_TIME, SPACE_TIME_MAX)
    values (#{timeSpaceNo,jdbcType=VARCHAR}, #{spotTypeNo,jdbcType=VARCHAR}, #{spotTypeName,jdbcType=VARCHAR},
            #{meterTypeNo,jdbcType=VARCHAR}, #{meterTypeName,jdbcType=VARCHAR}, #{spaceTime,jdbcType=DECIMAL},
            #{memo,jdbcType=VARCHAR}, #{createManNo,jdbcType=VARCHAR}, #{createManName,jdbcType=VARCHAR},
            #{createTime,jdbcType=TIMESTAMP}, #{updateManNo,jdbcType=VARCHAR}, #{updateManName,jdbcType=VARCHAR},
            #{updateTime,jdbcType=TIMESTAMP}, #{spaceTimeMax,jdbcType=DECIMAL})
  </insert>
  <insert id="insertSelective" parameterType="com.steerinfo.baseinfo.meterbasetimespace.model.MeterBaseTimeSpace">
    insert into METER_BASE_TIME_SPACE
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="timeSpaceNo != null">
        TIME_SPACE_NO,
      </if>
      <if test="spotTypeNo != null">
        SPOT_TYPE_NO,
      </if>
      <if test="spotTypeName != null">
        SPOT_TYPE_NAME,
      </if>
      <if test="meterTypeNo != null">
        METER_TYPE_NO,
      </if>
      <if test="meterTypeName != null">
        METER_TYPE_NAME,
      </if>
      <if test="spaceTime != null">
        SPACE_TIME,
      </if>
      <if test="memo != null">
        MEMO,
      </if>
      <if test="createManNo != null">
        CREATE_MAN_NO,
      </if>
      <if test="createManName != null">
        CREATE_MAN_NAME,
      </if>
      <if test="createTime != null">
        CREATE_TIME,
      </if>
      <if test="updateManNo != null">
        UPDATE_MAN_NO,
      </if>
      <if test="updateManName != null">
        UPDATE_MAN_NAME,
      </if>
      <if test="updateTime != null">
        UPDATE_TIME,
      </if>
      <if test="spaceTimeMax != null">
        SPACE_TIME_MAX,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="timeSpaceNo != null">
        #{timeSpaceNo,jdbcType=VARCHAR},
      </if>
      <if test="spotTypeNo != null">
        #{spotTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="spotTypeName != null">
        #{spotTypeName,jdbcType=VARCHAR},
      </if>
      <if test="meterTypeNo != null">
        #{meterTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="meterTypeName != null">
        #{meterTypeName,jdbcType=VARCHAR},
      </if>
      <if test="spaceTime != null">
        #{spaceTime,jdbcType=DECIMAL},
      </if>
      <if test="memo != null">
        #{memo,jdbcType=VARCHAR},
      </if>
      <if test="createManNo != null">
        #{createManNo,jdbcType=VARCHAR},
      </if>
      <if test="createManName != null">
        #{createManName,jdbcType=VARCHAR},
      </if>
      <if test="createTime != null">
        #{createTime,jdbcType=TIMESTAMP},
      </if>
      <if test="updateManNo != null">
        #{updateManNo,jdbcType=VARCHAR},
      </if>
      <if test="updateManName != null">
        #{updateManName,jdbcType=VARCHAR},
      </if>
      <if test="updateTime != null">
        #{updateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="spaceTimeMax != null">
        #{spaceTimeMax,jdbcType=DECIMAL},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKey" parameterType="com.steerinfo.baseinfo.meterbasetimespace.model.MeterBaseTimeSpace">
    update METER_BASE_TIME_SPACE
    set SPOT_TYPE_NO = #{spotTypeNo,jdbcType=VARCHAR},
        SPOT_TYPE_NAME = #{spotTypeName,jdbcType=VARCHAR},
        METER_TYPE_NO = #{meterTypeNo,jdbcType=VARCHAR},
        METER_TYPE_NAME = #{meterTypeName,jdbcType=VARCHAR},
        SPACE_TIME = #{spaceTime,jdbcType=DECIMAL},
        MEMO = #{memo,jdbcType=VARCHAR},
        CREATE_MAN_NO = #{createManNo,jdbcType=VARCHAR},
        CREATE_MAN_NAME = #{createManName,jdbcType=VARCHAR},
        CREATE_TIME = #{createTime,jdbcType=TIMESTAMP},
        UPDATE_MAN_NO = #{updateManNo,jdbcType=VARCHAR},
        UPDATE_MAN_NAME = #{updateManName,jdbcType=VARCHAR},
        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
        SPACE_TIME_MAX = #{spaceTimeMax,jdbcType=DECIMAL}
    where TIME_SPACE_NO = #{timeSpaceNo,jdbcType=VARCHAR}
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.baseinfo.meterbasetimespace.model.MeterBaseTimeSpace">
    update METER_BASE_TIME_SPACE
    <set>
      <if test="spotTypeNo != null">
        SPOT_TYPE_NO = #{spotTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="spotTypeName != null">
        SPOT_TYPE_NAME = #{spotTypeName,jdbcType=VARCHAR},
      </if>
      <if test="meterTypeNo != null">
        METER_TYPE_NO = #{meterTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="meterTypeName != null">
        METER_TYPE_NAME = #{meterTypeName,jdbcType=VARCHAR},
      </if>
      <if test="spaceTime != null">
        SPACE_TIME = #{spaceTime,jdbcType=DECIMAL},
      </if>
      <if test="memo != null">
        MEMO = #{memo,jdbcType=VARCHAR},
      </if>
      <if test="createManNo != null">
        CREATE_MAN_NO = #{createManNo,jdbcType=VARCHAR},
      </if>
      <if test="createManName != null">
        CREATE_MAN_NAME = #{createManName,jdbcType=VARCHAR},
      </if>
      <if test="createTime != null">
        CREATE_TIME = #{createTime,jdbcType=TIMESTAMP},
      </if>
      <if test="updateManNo != null">
        UPDATE_MAN_NO = #{updateManNo,jdbcType=VARCHAR},
      </if>
      <if test="updateManName != null">
        UPDATE_MAN_NAME = #{updateManName,jdbcType=VARCHAR},
      </if>
      <if test="updateTime != null">
        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="spaceTimeMax != null">
        SPACE_TIME_MAX = #{spaceTimeMax,jdbcType=DECIMAL},
      </if>
    </set>
    where TIME_SPACE_NO = #{timeSpaceNo,jdbcType=VARCHAR}
  </update>
  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
    <include refid="select"/>
    where TIME_SPACE_NO = #{timeSpaceNo,jdbcType=VARCHAR}
  </select>
  <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
    <include refid="select"/>
    <include refid="where"/>
    order by CREATE_TIME  desc
  </select>
  <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
    <include refid="select"/>
    <include refid="whereLike"/>
    order by CREATE_TIME  desc
  </select>
  <insert id="batchInsert" parameterType="java.util.List">
    insert into METER_BASE_TIME_SPACE
    (TIME_SPACE_NO,
    SPOT_TYPE_NO, SPOT_TYPE_NAME, METER_TYPE_NO,
    METER_TYPE_NAME, SPACE_TIME, MEMO,
    CREATE_MAN_NO, CREATE_MAN_NAME, CREATE_TIME,
    UPDATE_MAN_NO, UPDATE_MAN_NAME, UPDATE_TIME,
    SPACE_TIME_MAX)
    ( <foreach collection="list" item="item" separator="union all">
    select
    #{item.timeSpaceNo,jdbcType=VARCHAR},
    #{item.spotTypeNo,jdbcType=VARCHAR}, #{item.spotTypeName,jdbcType=VARCHAR}, #{item.meterTypeNo,jdbcType=VARCHAR},
    #{item.meterTypeName,jdbcType=VARCHAR}, #{item.spaceTime,jdbcType=DECIMAL}, #{item.memo,jdbcType=VARCHAR},
    #{item.createManNo,jdbcType=VARCHAR}, #{item.createManName,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP},
    #{item.updateManNo,jdbcType=VARCHAR}, #{item.updateManName,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
    #{item.spaceTimeMax,jdbcType=DECIMAL} from dual
  </foreach> )
  </insert>
  <update id="batchUpdate" parameterType="java.util.List">
    update METER_BASE_TIME_SPACE
    set
    TIME_SPACE_NO=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.timeSpaceNo,jdbcType=VARCHAR}
    </foreach>
    ,SPOT_TYPE_NO=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.spotTypeNo,jdbcType=VARCHAR}
    </foreach>
    ,SPOT_TYPE_NAME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.spotTypeName,jdbcType=VARCHAR}
    </foreach>
    ,METER_TYPE_NO=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.meterTypeNo,jdbcType=VARCHAR}
    </foreach>
    ,METER_TYPE_NAME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.meterTypeName,jdbcType=VARCHAR}
    </foreach>
    ,SPACE_TIME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.spaceTime,jdbcType=DECIMAL}
    </foreach>
    ,MEMO=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.memo,jdbcType=VARCHAR}
    </foreach>
    ,CREATE_MAN_NO=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.createManNo,jdbcType=VARCHAR}
    </foreach>
    ,CREATE_MAN_NAME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.createManName,jdbcType=VARCHAR}
    </foreach>
    ,CREATE_TIME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.createTime,jdbcType=TIMESTAMP}
    </foreach>
    ,UPDATE_MAN_NO=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.updateManNo,jdbcType=VARCHAR}
    </foreach>
    ,UPDATE_MAN_NAME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.updateManName,jdbcType=VARCHAR}
    </foreach>
    ,UPDATE_TIME=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.updateTime,jdbcType=TIMESTAMP}
    </foreach>
    ,SPACE_TIME_MAX=
    <foreach collection="list" item="item" index="index" separator=" " open="case TIME_SPACE_NO" close="end">
      when #{item.timeSpaceNo,jdbcType=VARCHAR} then #{item.spaceTimeMax,jdbcType=DECIMAL}
    </foreach>
    where TIME_SPACE_NO in
    <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
      #{item.timeSpaceNo,jdbcType=VARCHAR}
    </foreach>
  </update>
  <delete id="batchDelete" parameterType="java.util.List">
    delete from METER_BASE_TIME_SPACE
    where TIME_SPACE_NO in
    <foreach collection="list" item="id" open="(" close=")" separator=",">
      #{id}
    </foreach>
  </delete>
  <!-- 友情提示！！！-->
  <!-- 请将自己写的代码放在此标签之下，方便以后粘贴复制。-->
  <!-- 友情提示！！！-->
  <!-- 请将自己写的代码放在此标签之下，方便以后粘贴复制。-->
  <select id="GetNewID" parameterType="java.lang.String" resultType="java.lang.String">
    SELECT LPAD(NVL(MAX(TO_NUMBER(SUBSTR(TIME_SPACE_NO, LENGTH(TIME_SPACE_NO)-4 ))),0) + 1,5,'0') TIME_SPACE_NO
    FROM METER_BASE_TIME_SPACE
  </select>

  <select id="selectForUpdate" parameterType="java.util.HashMap" resultMap="BaseResultMap">
    <include refid="select"/>
    <where>
      <if test="timeSpaceNo != null and timeSpaceNo != ''">
        and TIME_SPACE_NO != #{timeSpaceNo}
      </if>
      <if test="spotTypeNo != null and spotTypeNo != ''">
        and SPOT_TYPE_NO = #{spotTypeNo}
      </if>
      <if test="spotTypeName != null and spotTypeName != ''">
        and SPOT_TYPE_NAME = #{spotTypeName}
      </if>
      <if test="meterTypeNo != null and meterTypeNo != ''">
        and METER_TYPE_NO = #{meterTypeNo}
      </if>
      <if test="meterTypeName != null and meterTypeName != ''">
        and METER_TYPE_NAME = #{meterTypeName}
      </if>
    </where>
  </select>
</mapper>