Newer
Older
casic-metering-eqpt-xichang / casic-metering-dao / src / main / resources / mapper / equipment / EquipmentInfoApprovalMapper.xml
<?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.equipment.EquipmentInfoApprovalMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.casic.missiles.model.equipment.EquipmentInfoApproval">
        <id column="id" property="id"/>
        <result column="approval_type" property="approvalType"/>
        <result column="process_id" property="processId"/>
        <result column="approval_status" property="approvalStatus"/>
        <result column="equipment_id" property="equipmentId"/>
        <result column="equipment_no" property="equipmentNo"/>
        <result column="equipment_name" property="equipmentName"/>
        <result column="usage_status" property="usageStatus"/>
        <result column="level" property="level"/>
        <result column="product_country" property="productCountry"/>
        <result column="manufacturer" property="manufacturer"/>
        <result column="manufacture_no" property="manufactureNo"/>
        <result column="product_date" property="productDate"/>
        <result column="unit_price" property="unitPrice"/>
        <result column="purchase_date" property="purchaseDate"/>
        <result column="model" property="model"/>
        <result column="quality_condition" property="qualityCondition"/>
        <result column="company_id" property="companyId"/>
        <result column="dept_id" property="deptId"/>
        <result column="category" property="category"/>
        <result column="check_cycle" property="checkCycle"/>
        <result column="remark" property="remark"/>
        <result column="instructions_file" property="instructionsFile"/>
        <result column="check_organization" property="checkOrganization"/>
        <result column="check_date" property="checkDate"/>
        <result column="certificate_valid" property="certificateValid"/>
        <result column="meter_identify" property="meterIdentify"/>
        <result column="use_position" property="usePosition"/>
        <result column="director_name" property="directorName"/>
        <result column="RFID" property="rfid"/>
        <result column="use_sign" property="useSign"/>
        <result column="install_location" property="installLocation"/>
        <result column="install_location_ext" property="installLocationExt"/>
        <result column="test_task" property="testTask"/>
        <result column="remark_ext" property="remarkExt"/>
        <result column="create_user_id" property="createUserId"/>
        <result column="create_user_name" property="createUserName"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="model_id" property="modelId"/>
        <result column="help_instruction" property="helpInstruction"/>
        <result column="use_position_id" property="usePositionId"/>
        <result column="director_id" property="directorId"/>
        <result column="install_location_id" property="installLocationId"/>
        <result column="check_destination" property="checkDestination"/>
        <result column="limit_instruction" property="limitInstruction"/>
        <result column="group_names" property="groupNames"/>
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id
        , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time
        ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction
    </sql>

    <select id="selectListPage" resultMap="BaseResultMap">
        select<include refid="Base_Column_List"/>,
        (
        SELECT
        GROUP_CONCAT( eqpt_equipment_group_info.group_name )
        FROM
        eqpt_equipment_group_info
        WHERE
        exists ( SELECT id FROM eqpt_equipment_group_relation tmp WHERE tmp.group_id = eqpt_equipment_group_info.id AND
        tmp.equipment_id = eqpt_equipment_info_approval_view.id )
        ) as group_names
        from eqpt_equipment_info_approval_view
        <where>
            <if test="ew != null">
                ${ew.sqlSegment}
            </if>
        </where>
    </select>

    <select id="selectList" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from eqpt_equipment_info_approval_view
        <where>
            <if test="ew != null">
                ${ew.sqlSegment}
            </if>
        </where>
    </select>


    <select id="checkRfid" resultType="java.lang.Integer">
        with
        r2 as (
        select id,rfid from eqpt_equipment_info where is_del = 0
        ),
        r1 as (
        select t.equipment_id, t.rfid from (
        select row_number() over (partition by equipment_id order by id desc) as rn,e.*
        from eqpt_equipment_info_approval e
        where equipment_id not in (select id from eqpt_equipment_info where is_del = 1)
        and equipment_id not in (select id from r2)
        and approval_type != 3
        and approval_status in ('1','3','4','6')
        ) t where t.rn = 1),
        r as (select *
        from r1
        union all
        select *
        from r2)

        select count(DISTINCT equipment_id)
        from r
        where rfid = #{rfid}
        <if test="equipmentId != null and equipmentId !=''">
            and equipment_id != #{equipmentId}
        </if>
    </select>

    <select id="checkLocation" resultType="java.lang.String">
        with
        r2 as (
        select id,install_location_id, usage_status, manufacture_no from eqpt_equipment_info where is_del = 0
        ),
        r1 as (
        select t.equipment_id, t.install_location_id, t.usage_status, t.manufacture_no
        from eqpt_equipment_info_approval t
        where approval_status = '3' and approval_type != 3),
        r as (select *
        from r1
        union all
        select *
        from r2)

        select DISTINCT manufacture_no
        from r
        where install_location_id = #{installLocationId} and usage_status = #{usageStatus}
        <if test="equipmentId != null and equipmentId !=''">
            and equipment_id != #{equipmentId}
        </if>
        LIMIT 1
    </select>

    <select id="checkInfo" resultType="java.lang.Integer">
        with
        r2 as (
            select id as equipment_id,model_id,manufacture_no,manufacturer from eqpt_equipment_info where is_del = 0
        ),
        r1 as (
            select equipment_id, model_id,manufacture_no,manufacturer
            from eqpt_equipment_info_approval
            where approval_status = '3' and approval_type != 3),
        r as (
            select *
            from r1
            union all
            select *
            from r2
        )

        select count(equipment_id)
        from r
        where model_id = #{modelId} and manufacture_no = #{manufactureNo} and manufacturer = #{manufacturer}
        <if test="equipmentId != null and equipmentId !=''">
            and equipment_id != #{equipmentId}
        </if>
    </select>

</mapper>