<?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.meterbasebillprint.mapper.MeterBaseBillPrintMapper">
  <resultMap id="BaseResultMap" type="com.steerinfo.baseinfo.meterbasebillprint.model.MeterBaseBillPrint">
    <id column="BILL_PRINT_NO" jdbcType="VARCHAR" property="billPrintNo" />
    <result column="BASE_SPOT_NO" jdbcType="VARCHAR" property="baseSpotNo" />
    <result column="BASE_SPOT_NAME" jdbcType="VARCHAR" property="baseSpotName" />
    <result column="LOAD_POINT_NO" jdbcType="VARCHAR" property="loadPointNo" />
    <result column="LOAD_POINT_NAME" jdbcType="VARCHAR" property="loadPointName" />
    <result column="MATTER_NO" jdbcType="VARCHAR" property="matterNo" />
    <result column="MATTER_NAME" jdbcType="VARCHAR" property="matterName" />
    <result column="METER_TYPE_NO" jdbcType="VARCHAR" property="meterTypeNo" />
    <result column="METER_TYPE_NAME" jdbcType="VARCHAR" property="meterTypeName" />
    <result column="WEIGHT_TYPE_NO" jdbcType="VARCHAR" property="weightTypeNo" />
    <result column="WEIGHT_TYPE_NAME" jdbcType="VARCHAR" property="weightTypeName" />
    <result column="PRINT_NUM" jdbcType="DECIMAL" property="printNum" />
    <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" />
  </resultMap>
  <sql id="columns">
    BILL_PRINT_NO, BASE_SPOT_NO, BASE_SPOT_NAME, LOAD_POINT_NO, LOAD_POINT_NAME, MATTER_NO, 
    MATTER_NAME, METER_TYPE_NO, METER_TYPE_NAME, WEIGHT_TYPE_NO, WEIGHT_TYPE_NAME, PRINT_NUM, 
    MEMO, CREATE_MAN_NO, CREATE_MAN_NAME, CREATE_TIME, UPDATE_MAN_NO, UPDATE_MAN_NAME, 
    UPDATE_TIME
  </sql>
  <sql id="columns_alias">
    t.BILL_PRINT_NO, t.BASE_SPOT_NO, t.BASE_SPOT_NAME, t.LOAD_POINT_NO, t.LOAD_POINT_NAME, 
    t.MATTER_NO, t.MATTER_NAME, t.METER_TYPE_NO, t.METER_TYPE_NAME, t.WEIGHT_TYPE_NO, 
    t.WEIGHT_TYPE_NAME, t.PRINT_NUM, t.MEMO, t.CREATE_MAN_NO, t.CREATE_MAN_NAME, t.CREATE_TIME, 
    t.UPDATE_MAN_NO, t.UPDATE_MAN_NAME, t.UPDATE_TIME
  </sql>
  <sql id="select">
    SELECT <include refid="columns"/> FROM METER_BASE_BILL_PRINT
  </sql>
  <sql id="select_alias">
    SELECT <include refid="columns_alias"/> FROM METER_BASE_BILL_PRINT t
  </sql>
  <sql id="where">
    <where>
      <if test="billPrintNo != null and billPrintNo != ''">
        and BILL_PRINT_NO = #{billPrintNo}
      </if>
      <if test="baseSpotNo != null and baseSpotNo != ''">
        and BASE_SPOT_NO = #{baseSpotNo}
      </if>
      <if test="baseSpotName != null and baseSpotName != ''">
        and BASE_SPOT_NAME = #{baseSpotName}
      </if>
      <if test="loadPointNo != null and loadPointNo != ''">
        and LOAD_POINT_NO = #{loadPointNo}
      </if>
      <if test="loadPointName != null and loadPointName != ''">
        and LOAD_POINT_NAME = #{loadPointName}
      </if>
      <if test="matterNo != null and matterNo != ''">
        and MATTER_NO = #{matterNo}
      </if>
      <if test="matterName != null and matterName != ''">
        and MATTER_NAME = #{matterName}
      </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="weightTypeNo != null and weightTypeNo != ''">
        and WEIGHT_TYPE_NO = #{weightTypeNo}
      </if>
      <if test="weightTypeName != null and weightTypeName != ''">
        and WEIGHT_TYPE_NAME = #{weightTypeName}
      </if>
      <if test="printNum != null">
        and PRINT_NUM = #{printNum}
      </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>
    </where>
  </sql>
  <sql id="whereLike">
    <where>
      <if test="billPrintNo != null and billPrintNo != ''">
        and BILL_PRINT_NO LIKE '%${billPrintNo}%'
      </if>
      <if test="baseSpotNo != null and baseSpotNo != ''">
        and BASE_SPOT_NO LIKE '%${baseSpotNo}%'
      </if>
      <if test="baseSpotName != null and baseSpotName != ''">
        and BASE_SPOT_NAME LIKE '%${baseSpotName}%'
      </if>
      <if test="loadPointNo != null and loadPointNo != ''">
        and LOAD_POINT_NO LIKE '%${loadPointNo}%'
      </if>
      <if test="loadPointName != null and loadPointName != ''">
        and LOAD_POINT_NAME LIKE '%${loadPointName}%'
      </if>
      <if test="matterNo != null and matterNo != ''">
        and MATTER_NO LIKE '%${matterNo}%'
      </if>
      <if test="matterName != null and matterName != ''">
        and MATTER_NAME LIKE '%${matterName}%'
      </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="weightTypeNo != null and weightTypeNo != ''">
        and WEIGHT_TYPE_NO LIKE '%${weightTypeNo}%'
      </if>
      <if test="weightTypeName != null and weightTypeName != ''">
        and WEIGHT_TYPE_NAME LIKE '%${weightTypeName}%'
      </if>
      <if test="printNum != null">
        and PRINT_NUM = #{printNum}
      </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>
    </where>
  </sql>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
    delete from METER_BASE_BILL_PRINT
    where BILL_PRINT_NO = #{billPrintNo,jdbcType=VARCHAR}
  </delete>
  <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
    delete from METER_BASE_BILL_PRINT
    where 1!=1 
      <if test="baseSpotNo != null and baseSpotNo != ''">
        or BASE_SPOT_NO = #{baseSpotNo}
      </if>
      <if test="baseSpotName != null and baseSpotName != ''">
        or BASE_SPOT_NAME = #{baseSpotName}
      </if>
      <if test="loadPointNo != null and loadPointNo != ''">
        or LOAD_POINT_NO = #{loadPointNo}
      </if>
      <if test="loadPointName != null and loadPointName != ''">
        or LOAD_POINT_NAME = #{loadPointName}
      </if>
      <if test="matterNo != null and matterNo != ''">
        or MATTER_NO = #{matterNo}
      </if>
      <if test="matterName != null and matterName != ''">
        or MATTER_NAME = #{matterName}
      </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="weightTypeNo != null and weightTypeNo != ''">
        or WEIGHT_TYPE_NO = #{weightTypeNo}
      </if>
      <if test="weightTypeName != null and weightTypeName != ''">
        or WEIGHT_TYPE_NAME = #{weightTypeName}
      </if>
      <if test="printNum != null">
        or PRINT_NUM = #{printNum}
      </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>
  </delete>
  <insert id="insert" parameterType="com.steerinfo.baseinfo.meterbasebillprint.model.MeterBaseBillPrint">
    insert into METER_BASE_BILL_PRINT (BILL_PRINT_NO, BASE_SPOT_NO, BASE_SPOT_NAME, 
      LOAD_POINT_NO, LOAD_POINT_NAME, MATTER_NO, 
      MATTER_NAME, METER_TYPE_NO, METER_TYPE_NAME, 
      WEIGHT_TYPE_NO, WEIGHT_TYPE_NAME, PRINT_NUM, 
      MEMO, CREATE_MAN_NO, CREATE_MAN_NAME, 
      CREATE_TIME, UPDATE_MAN_NO, UPDATE_MAN_NAME, 
      UPDATE_TIME)
    values (#{billPrintNo,jdbcType=VARCHAR}, #{baseSpotNo,jdbcType=VARCHAR}, #{baseSpotName,jdbcType=VARCHAR}, 
      #{loadPointNo,jdbcType=VARCHAR}, #{loadPointName,jdbcType=VARCHAR}, #{matterNo,jdbcType=VARCHAR}, 
      #{matterName,jdbcType=VARCHAR}, #{meterTypeNo,jdbcType=VARCHAR}, #{meterTypeName,jdbcType=VARCHAR}, 
      #{weightTypeNo,jdbcType=VARCHAR}, #{weightTypeName,jdbcType=VARCHAR}, #{printNum,jdbcType=DECIMAL}, 
      #{memo,jdbcType=VARCHAR}, #{createManNo,jdbcType=VARCHAR}, #{createManName,jdbcType=VARCHAR}, 
      #{createTime,jdbcType=TIMESTAMP}, #{updateManNo,jdbcType=VARCHAR}, #{updateManName,jdbcType=VARCHAR}, 
      #{updateTime,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.steerinfo.baseinfo.meterbasebillprint.model.MeterBaseBillPrint">
    insert into METER_BASE_BILL_PRINT
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="billPrintNo != null">
        BILL_PRINT_NO,
      </if>
      <if test="baseSpotNo != null">
        BASE_SPOT_NO,
      </if>
      <if test="baseSpotName != null">
        BASE_SPOT_NAME,
      </if>
      <if test="loadPointNo != null">
        LOAD_POINT_NO,
      </if>
      <if test="loadPointName != null">
        LOAD_POINT_NAME,
      </if>
      <if test="matterNo != null">
        MATTER_NO,
      </if>
      <if test="matterName != null">
        MATTER_NAME,
      </if>
      <if test="meterTypeNo != null">
        METER_TYPE_NO,
      </if>
      <if test="meterTypeName != null">
        METER_TYPE_NAME,
      </if>
      <if test="weightTypeNo != null">
        WEIGHT_TYPE_NO,
      </if>
      <if test="weightTypeName != null">
        WEIGHT_TYPE_NAME,
      </if>
      <if test="printNum != null">
        PRINT_NUM,
      </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>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="billPrintNo != null">
        #{billPrintNo,jdbcType=VARCHAR},
      </if>
      <if test="baseSpotNo != null">
        #{baseSpotNo,jdbcType=VARCHAR},
      </if>
      <if test="baseSpotName != null">
        #{baseSpotName,jdbcType=VARCHAR},
      </if>
      <if test="loadPointNo != null">
        #{loadPointNo,jdbcType=VARCHAR},
      </if>
      <if test="loadPointName != null">
        #{loadPointName,jdbcType=VARCHAR},
      </if>
      <if test="matterNo != null">
        #{matterNo,jdbcType=VARCHAR},
      </if>
      <if test="matterName != null">
        #{matterName,jdbcType=VARCHAR},
      </if>
      <if test="meterTypeNo != null">
        #{meterTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="meterTypeName != null">
        #{meterTypeName,jdbcType=VARCHAR},
      </if>
      <if test="weightTypeNo != null">
        #{weightTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="weightTypeName != null">
        #{weightTypeName,jdbcType=VARCHAR},
      </if>
      <if test="printNum != null">
        #{printNum,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>
    </trim>
  </insert>
  <update id="updateByPrimaryKey" parameterType="com.steerinfo.baseinfo.meterbasebillprint.model.MeterBaseBillPrint">
    update METER_BASE_BILL_PRINT
    set BASE_SPOT_NO = #{baseSpotNo,jdbcType=VARCHAR},
      BASE_SPOT_NAME = #{baseSpotName,jdbcType=VARCHAR},
      LOAD_POINT_NO = #{loadPointNo,jdbcType=VARCHAR},
      LOAD_POINT_NAME = #{loadPointName,jdbcType=VARCHAR},
      MATTER_NO = #{matterNo,jdbcType=VARCHAR},
      MATTER_NAME = #{matterName,jdbcType=VARCHAR},
      METER_TYPE_NO = #{meterTypeNo,jdbcType=VARCHAR},
      METER_TYPE_NAME = #{meterTypeName,jdbcType=VARCHAR},
      WEIGHT_TYPE_NO = #{weightTypeNo,jdbcType=VARCHAR},
      WEIGHT_TYPE_NAME = #{weightTypeName,jdbcType=VARCHAR},
      PRINT_NUM = #{printNum,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}
    where BILL_PRINT_NO = #{billPrintNo,jdbcType=VARCHAR}
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.baseinfo.meterbasebillprint.model.MeterBaseBillPrint">
    update METER_BASE_BILL_PRINT
    <set>
      <if test="baseSpotNo != null">
        BASE_SPOT_NO = #{baseSpotNo,jdbcType=VARCHAR},
      </if>
      <if test="baseSpotName != null">
        BASE_SPOT_NAME = #{baseSpotName,jdbcType=VARCHAR},
      </if>
      <if test="loadPointNo != null">
        LOAD_POINT_NO = #{loadPointNo,jdbcType=VARCHAR},
      </if>
      <if test="loadPointName != null">
        LOAD_POINT_NAME = #{loadPointName,jdbcType=VARCHAR},
      </if>
      <if test="matterNo != null">
        MATTER_NO = #{matterNo,jdbcType=VARCHAR},
      </if>
      <if test="matterName != null">
        MATTER_NAME = #{matterName,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="weightTypeNo != null">
        WEIGHT_TYPE_NO = #{weightTypeNo,jdbcType=VARCHAR},
      </if>
      <if test="weightTypeName != null">
        WEIGHT_TYPE_NAME = #{weightTypeName,jdbcType=VARCHAR},
      </if>
      <if test="printNum != null">
        PRINT_NUM = #{printNum,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>
    </set>
    where BILL_PRINT_NO = #{billPrintNo,jdbcType=VARCHAR}
  </update>
  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
    <include refid="select"/>
    where BILL_PRINT_NO = #{billPrintNo,jdbcType=VARCHAR}
  </select>
  <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
    <include refid="select"/>
    <include refid="where"/>
    order by BILL_PRINT_NO desc
  </select>
  <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
    <include refid="select"/>
    <include refid="whereLike"/>
    order by BILL_PRINT_NO desc
  </select>
  <insert id="batchInsert" parameterType="java.util.List">
    insert into METER_BASE_BILL_PRINT 
      (BILL_PRINT_NO, 
      BASE_SPOT_NO, BASE_SPOT_NAME, LOAD_POINT_NO, 
      LOAD_POINT_NAME, MATTER_NO, MATTER_NAME, 
      METER_TYPE_NO, METER_TYPE_NAME, WEIGHT_TYPE_NO, 
      WEIGHT_TYPE_NAME, PRINT_NUM, MEMO, 
      CREATE_MAN_NO, CREATE_MAN_NAME, CREATE_TIME, 
      UPDATE_MAN_NO, UPDATE_MAN_NAME, UPDATE_TIME
      )
    ( <foreach collection="list" item="item" separator="union all"> 
   select  
      #{item.billPrintNo,jdbcType=VARCHAR}, 
      #{item.baseSpotNo,jdbcType=VARCHAR}, #{item.baseSpotName,jdbcType=VARCHAR}, #{item.loadPointNo,jdbcType=VARCHAR}, 
      #{item.loadPointName,jdbcType=VARCHAR}, #{item.matterNo,jdbcType=VARCHAR}, #{item.matterName,jdbcType=VARCHAR}, 
      #{item.meterTypeNo,jdbcType=VARCHAR}, #{item.meterTypeName,jdbcType=VARCHAR}, #{item.weightTypeNo,jdbcType=VARCHAR}, 
      #{item.weightTypeName,jdbcType=VARCHAR}, #{item.printNum,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}
       from dual  
   </foreach> )
  </insert>
  <update id="batchUpdate" parameterType="java.util.List">
     update METER_BASE_BILL_PRINT
     set
       BILL_PRINT_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.billPrintNo,jdbcType=VARCHAR}
       </foreach>
       ,BASE_SPOT_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.baseSpotNo,jdbcType=VARCHAR}
       </foreach>
       ,BASE_SPOT_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.baseSpotName,jdbcType=VARCHAR}
       </foreach>
       ,LOAD_POINT_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.loadPointNo,jdbcType=VARCHAR}
       </foreach>
       ,LOAD_POINT_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.loadPointName,jdbcType=VARCHAR}
       </foreach>
       ,MATTER_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.matterNo,jdbcType=VARCHAR}
       </foreach>
       ,MATTER_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.matterName,jdbcType=VARCHAR}
       </foreach>
       ,METER_TYPE_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.meterTypeNo,jdbcType=VARCHAR}
       </foreach>
       ,METER_TYPE_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.meterTypeName,jdbcType=VARCHAR}
       </foreach>
       ,WEIGHT_TYPE_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.weightTypeNo,jdbcType=VARCHAR}
       </foreach>
       ,WEIGHT_TYPE_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.weightTypeName,jdbcType=VARCHAR}
       </foreach>
       ,PRINT_NUM=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.printNum,jdbcType=DECIMAL}
       </foreach>
       ,MEMO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.memo,jdbcType=VARCHAR}
       </foreach>
       ,CREATE_MAN_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.createManNo,jdbcType=VARCHAR}
       </foreach>
       ,CREATE_MAN_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.createManName,jdbcType=VARCHAR}
       </foreach>
       ,CREATE_TIME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.createTime,jdbcType=TIMESTAMP}
       </foreach>
       ,UPDATE_MAN_NO=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.updateManNo,jdbcType=VARCHAR}
       </foreach>
       ,UPDATE_MAN_NAME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.updateManName,jdbcType=VARCHAR}
       </foreach>
       ,UPDATE_TIME=
       <foreach collection="list" item="item" index="index" separator=" " open="case BILL_PRINT_NO" close="end">
          when #{item.billPrintNo,jdbcType=VARCHAR} then #{item.updateTime,jdbcType=TIMESTAMP}
       </foreach>
     where BILL_PRINT_NO in 
     <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
    #{item.billPrintNo,jdbcType=VARCHAR}
     </foreach> 
  </update>
  <delete id="batchDelete" parameterType="java.util.List">
    delete from METER_BASE_BILL_PRINT
    where BILL_PRINT_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(BILL_PRINT_NO, LENGTH(BILL_PRINT_NO)-3 ))),0) + 1,4,'0') BILL_PRINT_NO
    FROM METER_BASE_BILL_PRINT where instr(BILL_PRINT_NO, to_char(sysdate, 'yyyyMMdd')) > 0
  </select>

  <select id="selectForUpdate" parameterType="java.util.HashMap" resultMap="BaseResultMap">
    <include refid="select"/>
      <where>
        <if test="billPrintNo != null and billPrintNo != ''">
          and BILL_PRINT_NO != #{billPrintNo}
        </if>
        <if test="baseSpotNo != null and baseSpotNo != ''">
          and BASE_SPOT_NO = #{baseSpotNo}
        </if>
        <if test="baseSpotName != null and baseSpotName != ''">
          and BASE_SPOT_NAME = #{baseSpotName}
        </if>
        <if test="loadPointNo != null and loadPointNo != ''">
          and LOAD_POINT_NO = #{loadPointNo}
        </if>
        <if test="loadPointName != null and loadPointName != ''">
          and LOAD_POINT_NAME = #{loadPointName}
        </if>
        <if test="matterNo != null and matterNo != ''">
          and MATTER_NO = #{matterNo}
        </if>
        <if test="matterName != null and matterName != ''">
          and MATTER_NAME = #{matterName}
        </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>