<?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.BoardMessageMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.board.BoardMessage"> <id column="id" property="id" /> <result column="message_module" property="messageModule" /> <result column="message_type" property="messageType" /> <result column="message_topic" property="messageTopic" /> <result column="source_module" property="sourceModule" /> <result column="read_status" property="readStatus" /> <result column="notify_user_id" property="notifyUserId" /> <result column="notify_dept_id" property="notifyDeptId" /> <result column="biz_id" property="bizId" /> <result column="message_time" property="messageTime" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="set_top" property="setTop"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, message_module, message_type, message_topic, source_module, read_status, notify_user_id, notify_dept_id, biz_id, message_time, create_time, update_time,set_top </sql> <select id="checkMessagePage" resultMap="BaseResultMap"> with message_1 as ( select * from eqpt_board_message where message_module = '检定通知' and notify_user_id = #{userId} ), message_2 as ( select null as id, '检定通知' as message_module, '任务单检完' as message_type, concat('任务单', order_no,'已检完') as message_topic, '计量计划' as source_module, '0' as read_status, create_user_id as notify_user_id, customer_id as notify_dept_id, id as biz_id, update_time as message_time, null as create_time, null as update_time, 0 as set_top from biz_business_order_info where receive_status = '4' and id not in (select biz_id from message_1 where message_module = '检定通知' and message_type = '任务单检完') ), message_3 as ( select null as id, '检定通知' as message_module, '任务单退回' as message_type, concat('任务单', order_no,'已退回') as message_topic, '计量计划' as source_module, '0' as read_status, create_user_id as notify_user_id, customer_id as notify_dept_id, id as biz_id, update_time as message_time, null as create_time, null as update_time, 0 as set_top from biz_business_order_info where receive_status = '5' and id not in (select biz_id from message_1 where message_module = '检定通知' and message_type = '任务单退回') ), message_4 as ( select null as id, '检定通知' as message_module, '设备退回' as message_type, concat('受检设备', r.sample_no,'已退回') as message_topic, '计量计划' as source_module, '0' as read_status, o.create_user_id as notify_user_id, o.customer_id as notify_dept_id, o.id as biz_id, r.update_time as message_time, null as create_time, null as update_time, 0 as set_top from biz_business_order_sample_relation r LEFT JOIN biz_business_order_info o on r.order_id = o.id where r.sample_status = '10' and o.id not in (select biz_id from message_1 where message_module = '检定通知' and message_type = '设备退回') ), message as ( (select * from message_1 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_2 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_3 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_4 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) ) select <include refid="Base_Column_List"/> from message order by set_top desc, message_time desc, biz_id </select> <select id="noticeMessagePage" resultMap="BaseResultMap"> with message_1 as ( select * from eqpt_board_message where message_module = '通知公告' and notify_user_id = #{userId} ), message_2 as ( select null as id, '通知公告' as message_module, '单位通知' as message_type, notice_title as message_topic, '单位通知' as source_module, '0' as read_status, null as notify_user_id, #{userCompanyId} as notify_dept_id, id as biz_id, notice_time as message_time, null as create_time, null as update_time, set_top as set_top from system_notice where system_type = '2' and id not in (select biz_id from message_1 where message_module = '通知公告' and message_type = '单位通知') and (notice_company = #{userCompanyName} or notice_company = #{topCompanyName}) ), message_3 as ( select null as id, '通知公告' as message_module, '溯源公示' as message_type, notice_title as message_topic, '溯源公示' as source_module, '0' as read_status, null as notify_user_id, #{userCompanyId} as notify_dept_id, id as biz_id, notice_time as message_time, null as create_time, null as update_time, set_top as set_top from system_notice where system_type = '1' and id not in (select biz_id from message_1 where message_module = '通知公告' and message_type = '溯源公示') and sync_eqpt = 1 ), message_4 as ( select null as id, '通知公告' as message_module, '分包通知' as message_type, concat(notice_name,notice_no) as message_topic, '计量业务' as source_module, '0' as read_status, null as notify_user_id, customer_id as notify_dept_id, id as biz_id, create_time as message_time, null as create_time, null as update_time, 0 as set_top from biz_business_outsource_notice where approval_status = '4' and id not in (select biz_id from message_1 where message_module = '通知公告' and message_type = '分包通知') ), message as ( (select * from message_1 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_2 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_3 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_4 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) ) select <include refid="Base_Column_List"/> from message order by set_top desc, message_time desc, biz_id </select> <select id="remindMessagePage" resultMap="BaseResultMap"> with message_1 as ( select * from eqpt_board_message where message_module = '工作提醒' and notify_user_id = #{userId} ), message_2 as ( select null as id, '工作提醒' as message_module, '设备到期' as message_type, concat(equipment_name,equipment_no,'已超有效期') as message_topic, '设备台账' as source_module, '0' as read_status, #{userId} as notify_user_id, null as notify_dept_id, id as biz_id, certificate_valid as message_time, null as create_time, null as update_time, 0 as set_top from eqpt_equipment_info where director_name = #{userName} and id not in (select biz_id from message_1 where message_module = '工作提醒' and message_type = '设备到期') and certificate_valid <![CDATA[ < ]]> TIMESTAMP(CURDATE()) ), message_3 as ( select null as id, '工作提醒' as message_module, '计量计划' as message_type, concat(plan_name,'已发布') as message_topic, '溯源公示' as source_module, '0' as read_status, null as notify_user_id, create_dept_id as notify_dept_id, id as biz_id, create_time as message_time, null as create_time, null as update_time, 0 as set_top from eqpt_plan where approval_status = '4' and id not in (select biz_id from message_1 where message_module = '工作提醒' and message_type = '计量计划') ), message_4 as ( select null as id, '工作提醒' as message_module, '合同通知' as message_type, concat(form_name,form_no,'待签署') as message_topic, '计量业务' as source_module, '0' as read_status, sign_user_id as notify_user_id, null as notify_dept_id, id as biz_id, create_time as message_time, null as create_time, null as update_time, 0 as set_top from biz_resource_customer_examine_form where approval_status = '4' and id not in (select biz_id from message_1 where message_module = '工作提醒' and message_type = '合同通知') ), message as ( (select * from message_1 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_2 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_3 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) union all (select * from message_4 <where> <if test="ew != null"> ${ew.sqlSegment} </if> </where>) ) select <include refid="Base_Column_List"/> from message order by set_top desc, message_time desc, biz_id </select> </mapper>