<?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.casic.missiles.mapper.meter.MeterPriceMapper">

    <select id="getMaxNo" resultType="java.lang.Long">
        SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price
    </select>

    <sql id="MeterPrice">
        SELECT
            mp.id,
            mp.price_no,
            mp.price_name,
            mp.check_type,
            mp.price_type,
            mpc.category_name,
            mp.price_item,
            mpi.item_name,
            mp.price_standard,
            mf.file_name AS price_standard_name,
            mp.price_limit,
            mp.price_description,
            mp.operator_discount_permission,
            mp.director_discount_permission,
            mp.remark,
            mp.create_time,
            mp.update_time,
            mp.model,
            mp.price
        FROM
            meter_price mp
                LEFT JOIN meter_price_category mpc ON mp.price_type = mpc.id
                LEFT JOIN meter_price_item mpi ON mp.price_item = mpi.id
                LEFT JOIN meter_file mf on mp.price_standard = mf.id
    </sql>

    <select id="queryPriceList" resultType="com.casic.missiles.model.meter.MeterPrice">
        <include refid="MeterPrice"/>
        <where>
            mp.is_del = 0
            <if test="request.priceNo != null  and request.priceNo != ''">
                and mp.price_no like CONCAT('%',#{request.priceNo},'%')
            </if>
            <if test="request.priceName != null  and request.priceName != ''">
                and mp.price_name like concat('%', #{request.priceName}, '%')
            </if>
            <if test="request.checkType != null  and  request.checkType != ''">
                and mp.check_type = #{request.checkType}
            </if>
            <if test="request.model != null  and request.model != ''">
                and mp.model like concat('%', #{request.model}, '%')
            </if>
            <if test="request.priceType != null  and request.priceType != ''">
                and mpc.category_name like concat('%', #{request.priceType}, '%')
            </if>
            <if test="request.priceItem != null  and request.priceItem != ''">
                and mpi.item_name like concat('%', #{request.priceItem}, '%')
            </if>
            <if test="request.ids != null and request.ids.size() > 0 ">
                and mp.id in
                <foreach collection='request.ids' item='id' open='(' separator=',' close=')'>
                    #{id}
                </foreach>
            </if>
        </where>
    </select>

    <select id="queryPriceInfo" resultType="com.casic.missiles.model.meter.MeterPrice">
        <include refid="MeterPrice"/>
        where mp.id = #{id}
    </select>

    <insert id="addMeterPriceList" parameterType="java.util.List">
        INSERT INTO meter_price (
            `id`,
            `price_no`,
            `price_name`,
            `check_type`,
            `price_type`,
            `price_item`,
            `price_standard`,
            `price_limit`,
            `price_description`,
            `operator_discount_permission`,
            `director_discount_permission`,
            `remark`,
            `price`
            )
        VALUES
        <foreach collection ="list" item="bean" separator =",">
            (#{bean.id}, #{bean.priceNo}, #{bean.priceName}, #{bean.checkType},
             #{bean.priceType},#{bean.priceItem},#{bean.priceStandard},#{bean.priceLimit}
            ,#{bean.priceDescription},#{bean.operatorDiscountPermission},#{bean.directorDiscountPermission},
             #{bean.remark},#{bean.price}
            )
        </foreach >
    </insert>

    <select id="selectCountByItem" resultType="java.lang.Integer">
        SELECT COUNT(DISTINCT price_item)
        FROM meter_price
        WHERE is_del = 0
    </select>
</mapper>
