<?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.board.NoticeBoardMapper"> <select id="statisticsInfoList" resultType="com.casic.missiles.dto.board.EquipmentStatisticsList"> select * from ( WITH latest_relation AS ( SELECT * FROM biz_business_order_sample_relation a WHERE id = ( SELECT max( id ) FROM biz_business_order_sample_relation b WHERE a.sample_id = b.sample_id ) ) SELECT e.id AS equipmentId, e.dept_id AS deptId, d.FULL_NAME AS deptname, e.usage_status AS usageStatus, e.equipment_type as equipmentType, e.certificate_valid AS certificateValid, r.sample_status AS latestSampleStatus, IF(EXISTS (SELECT id FROM biz_business_order_sample_relation tmp WHERE tmp.sample_id = e.id AND YEAR ( tmp.update_time ) = YEAR (NOW()) AND tmp.sample_status IN <foreach collection="checkedStatus" item="item" index="index" open="(" close=")" separator=",">#{item} </foreach>), 1, 0 ) AS yearChecked FROM eqpt_equipment_info e LEFT JOIN latest_relation r ON e.id = r.sample_id LEFT JOIN sys_dept d ON e.dept_id = d.id WHERE e.is_del = '0' <if test="equipmentType != null and equipmentType != ''"> AND e.equipment_type = #{equipmentType} </if> <if test="deptName != null and deptName != ''"> and d.FULL_NAME like concat('%',#{deptName},'%') </if> <if test="deptIds != null"> and e.dept_id in <foreach collection="deptIds" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </if>) a </select> <select id="toCheckEquipmentPage" resultType="com.casic.missiles.dto.board.EquipmentBoardList"> select id as id, equipment_no as equipmentNo, equipment_name as equipmentName, company_id as companyId, dept_id as deptId, director_name as directorName, certificate_valid as certificateValid, usage_status as usageStatus from eqpt_equipment_info <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where> </select> <select id="toCheckStatistics" resultType="com.casic.missiles.dto.board.EquipmentToCheckAggr"> select sum(if(certificate_valid <![CDATA[ >= ]]> now(),1,0)) as invalid, sum(if(certificate_valid <![CDATA[ < ]]> now(),1,0)) as valid from eqpt_equipment_info <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where> </select> <select id="inCheckEquipmentPage" resultType="com.casic.missiles.dto.board.EquipmentBoardList"> WITH latest_relation AS ( SELECT * FROM biz_business_order_sample_relation a WHERE id = ( SELECT max( id ) FROM biz_business_order_sample_relation b WHERE a.sample_id = b.sample_id ) ) select e.id as id, e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.company_id as companyId, e.dept_id as deptId, e.director_name as directorName, e.certificate_valid as certificateValid, e.usage_status as usageStatus, r.real_deliver_time, '西昌卫星发射中心计量测试站' as checkOrganization, r.sample_status as sampleStatus from eqpt_equipment_info e LEFT JOIN latest_relation r ON e.id = r.sample_id <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where> </select> <select id="inCheckEquipmentPage" resultType="com.casic.missiles.dto.board.EquipmentInCheckAggr"> WITH latest_relation AS ( SELECT * FROM biz_business_order_sample_relation a WHERE id = ( SELECT max( id ) FROM biz_business_order_sample_relation b WHERE a.sample_id = b.sample_id ) ) select sum(if(r.sample_status in <foreach collection="unCheckStatus" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> ,1,0)) as unCheck, sum(if(r.sample_status in <foreach collection="inCheckStatus" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> ,1,0)) as inCheck, sum(if(r.sample_status in <foreach collection="checkedStatus" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> ,1,0)) as checked from eqpt_equipment_info e LEFT JOIN latest_relation r ON e.id = r.sample_id <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where> </select> </mapper>