Newer
Older
casic-metering-eqpt-xichang / casic-metering-dao / src / main / resources / mapper / plan / PlanEquipmentRelationMapper.xml
zhangyingjie on 13 Sep 2023 3 KB 新增首页看板接口
<?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>