<?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.EquipmentInfoMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.equipment.EquipmentInfo"> <id column="id" property="id" /> <result column="equipmentNo" 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="manufactureNo" 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="certificateValid" 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="is_del" property="isDel" /> <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, equipment_no as equipmentNo, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no as manufactureNo, 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 as certificateValid, 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, is_del,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_view.id ) ) as group_names from eqpt_equipment_info_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_view <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where> </select> <select id="isBindLabel" resultType="java.lang.Long"> SELECT id FROM eqpt_equipment_info WHERE 1=1 <if test="label != null and label !=''"> and RFID =#{label} </if> </select> <update id="bindLabel"> UPDATE eqpt_equipment_info SET RFID = #{request.label} WHERE id = #{request.sampleId} </update> <sql id="equipmentRemindList"> with remind_config_info as ( select c.remind_time as remind_time, r.task_id as task_id, r.model_id as model_id, e.id as equipment_id from eqpt_remind_config c left join eqpt_remind_relation r on c.id = r.remind_id left join eqpt_equipment_task_relation t on r.task_id = t.task_id left join eqpt_equipment_info e on (r.model_id = e.model_id or t.equipment_id = e.id) where e.id is not null ), eqpt_remind as ( select equipment_id,min(remind_time) as remind_time from remind_config_info group by equipment_id ), eqpt_remind_all as ( select e.id as equipment_id, IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), task_ext as ( select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), latest_sample_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 ) ), eqpt_ext as ( select e.* , DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, GROUP_CONCAT(t.task_name) as taskNames, GROUP_CONCAT(t.time_ext) as taskTimes, GROUP_CONCAT(t.id) as taskIds, min(t.start_time) as task_start_time, max(t.end_time) as task_end_time, (case when lsr.sample_status in <foreach collection="checkedStatus" item="item" index="index" open="(" close=")" separator=",">#{item}</foreach> then 1 else 0 end) as check_status from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id left join latest_sample_relation lsr on lsr.sample_id = e.id group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where> ORDER BY remind_valid asc </sql> <select id="selectRemindListPage" resultType="com.casic.missiles.dto.equipment.EquipmentRemindList"> select * from ( <include refid="equipmentRemindList"/> )A </select> <select id="selectRemindList" resultType="com.casic.missiles.dto.equipment.EquipmentRemindList"> select * from ( <include refid="equipmentRemindList"/> )A </select> <sql id="selectBizCertificate"> select c.id as id, e.id as equipmentId, e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, e.model as model, e.company_id as companyId, e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, c.calibration_time as checkDate, c.expiration_date as certificateValid, c.certificate_report_file as minioFileName, c.create_time as createTime, c.update_time as updateTime, '1' as certificateType, c.remark as remark from biz_business_certificate_report_view c ,eqpt_equipment_info_view e where c.sample_id = e.id </sql> <select id="bizCertificateListPage" resultType="com.casic.missiles.dto.equipment.EquipmentCertificateDTO"> SELECT * FROM ( WITH biz_cert AS ( SELECT id AS id, sample_id AS equipment_id, certificate_report_no AS certificate_no, certificate_report_name AS certificate_name, check_organization AS check_organization, calibration_time AS check_date, expiration_date AS certificate_valid, certificate_report_file AS certificate_report_file, create_time AS create_time, update_time AS update_time, '1' as equipment_type FROM biz_business_certificate_report_view ), subcontract_cert AS ( SELECT id, equipment_id, certificate_no, certificate_name, ( SELECT company_name FROM eqpt_subcontractor WHERE id = subcontractor_id ) AS check_organization, check_date, certificate_valid, certificate_report AS certificate_report_file, create_time, update_time , '2' as equipment_type FROM eqpt_subcontract_certificate ), all_cert AS ( SELECT * FROM biz_cert UNION ALL SELECT * FROM subcontract_cert ) SELECT c.id as id, e.id as equipmentId, e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, e.model as model, e.company_id as companyId, e.manufacture_no as manufactureNo, c.certificate_no as certificateNo, c.certificate_name as certificateName, c.check_organization as checkOrganization, c.check_date as checkDate, c.certificate_valid as certificateValid, c.certificate_report_file as minioFileName, c.create_time as createTime, c.update_time as updateTime, c.equipment_type as certificateType FROM all_cert c, eqpt_equipment_info_view e where c.equipment_id = e.id <if test="ew != null"> and ${ew.sqlSegment} </if> )T </select> <select id="bizCertificateList" resultType="com.casic.missiles.dto.equipment.EquipmentCertificateDTO"> <include refid="selectBizCertificate"/> and e.is_del = 0 and c.approval_status = '4' and e.id = #{equipmentId} </select> </mapper>