<?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.plan.PlanEquipmentRelationMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.casic.missiles.model.plan.PlanEquipmentRelation">
<id column="id" property="id" />
<result column="plan_id" property="planId" />
<result column="equipment_id" property="equipmentId" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, plan_id, equipment_id, create_time, update_time
</sql>
<select id="listByPlanAndName" resultType="com.casic.missiles.model.plan.PlanEquipmentRelation">
SELECT
r1.id AS id,
r1.plan_id AS planId,
e.id AS equipmentId,
e.equipment_no AS equipmentNo,
e.equipment_name AS equipmentName,
e.model AS model,
e.company_id AS companyId,
e.use_position AS usePosition,
e.check_organization AS checkOrganization,
e.certificate_valid AS certificateValid,
e.director_name AS director_name,
e.dept_id AS deptId,
e.usage_status AS usageStatus,
e.manufacture_no AS manufactureNo,
r1.execute_status AS executeStatus,
r1.execute_time AS executeTime,
r1.check_completion AS checkCompletion,
r1.check_finish_time AS checkFinishTime,
r1.create_time AS createTime,
r1.update_time AS updateTime
FROM
eqpt_equipment_info e,
eqpt_plan_equipment_relation r1
WHERE
e.id = r1.equipment_id
<if test="planId != null and planId !=''">
AND r1.plan_id = #{planId}
</if>
<if test="equipmentName != null and equipmentName != ''">
AND e.equipment_name = #{equipmentName}
</if>
</select>
<select id="getPlanEquipmentStatus" resultType="com.casic.missiles.dto.plan.PlanEquipmentStatus">
SELECT
i.receive_status AS receiveStatus,
i.undertake_time AS receiveTime,
r.sample_status AS sampleStatus,
r.measure_complete_time AS measureCompleteTime
FROM
`biz_business_order_info` i
INNER JOIN biz_business_order_sample_relation r ON r.order_id = i.id
WHERE YEAR ( i.update_time ) = YEAR (NOW())
AND YEAR ( r.update_time ) = YEAR (NOW())
AND r.sample_id = #{equipmentId}
ORDER BY i.update_time DESC
LIMIT 1
</select>
<select id="planFinishStatistics" resultType="com.casic.missiles.dto.board.PlanFinishDTO">
select
e.dept_id as deptId,
sum(if(r.check_completion = #{checkedStatus},1,0)) as finished,
count(r.id) as total
from eqpt_plan_equipment_relation r
left join eqpt_equipment_info e on r.equipment_id = e.id
where e.is_del = '0'
AND YEAR ( r.update_time ) = YEAR (NOW())
group by e.dept_id
<if test="deptIds != null">
having e.dept_id in
<foreach collection="deptIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<update id="inspectionStatusUpdate">
update
eqpt_plan_equipment_relation r1,
eqpt_plan p,
eqpt_inspection_equipment_relation r2
set r1.execute_status = #{executeStatus},
r1.execute_time = r2.inspection_time
where r1.plan_id = p.id
and p.year = YEAR(NOW())
and r1.execute_status = '0'
and r1.equipment_id = r2.equipment_id
and r2.inspection_id = #{inspectionId}
</update>
</mapper>