qushaowei
2025-06-13 4b27dd367eae2f24958c6bb857fb6959dcdb7a4a
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderMapper.xml
@@ -11,16 +11,11 @@
        t1.recipient_user_id recipientUserId,
        t1.report_repair_id reportRepairId,
        t1.project_maintenance_order_id projectMaintenanceOrderId,
        t2.num equipmentNum,
        t2.name equipmentName,
        t2.model equipmentModel,
        t2.specific_equipment specificEquipment,
        t1.fault_reason faultReason,
        t1.fault_phenomenon faultPhenomenon,
        t1.preventive_measure preventiveMeasure,
        t1.fault_remove faultRemove,
        t1.fault_description faultDescription,
        t1.fault_time faultTime,
        t1.photo photo,
        t1.is_stop isStop,
        t1.maintenance_method maintenanceMethod,
@@ -38,18 +33,41 @@
        t1.business_type businessType,
        t1.responsibility_id responsibilityId,
        t1.outsourcing_unit outsourcingUnit,
        t1.actual_hour actualHour,
        t1.remark,
        t1.repair_order_uda1 repairOrderUda1,
        t1.repair_order_uda2 repairOrderUda2,
        t1.repair_order_uda3 repairOrderUda3,
        t1.repair_order_uda4 repairOrderUda4,
        t1.repair_order_uda5 repairOrderUda5,
        t1.spare_time spareTime,
        t1.part_time partTime,
        report.err_uda2 errUda2,
        report.accept_time acceptTime,
        report.err_uda3 errUda3,
        report.fault_hour faultHour,
        report.fault_time faultTime,
        t2.num equipmentNum,
        t2.name equipmentName,
        t2.model equipmentModel,
        t2.specific_equipment specificEquipment,
        t2.equipment_importance_id equipmentImportanceId,
        t3.depart_name departName,
        t4.name outsourcingUnitName,
        t5.realname responsibilityName,
        t6.name teamName
        from mom_eam_repair_order t1
        left join(select * from mom_eam_equipment_report_repair where del_flag = 0 ) report on report.id = t1.report_repair_id
        left join(select * from mom_eam_equipment where del_flag = 0 and status = 1) t2 on t1.equipment_id= t2.id
        left join sys_depart t3 on t3.id = t1.depart_id
        left join mom_base_supplier t4 on t1.outsourcing_unit = t4.id
        left join sys_user t5 on t5.id = t1.responsibility_id
        left join mom_base_team t6 on t6.id=t1.team_id
        left join mom_eam_repair_order_fault_analysis t7 on t7.repair_order_id=t1.id
        where t1.del_flag = 0
        <if test="id != null and id != ''">
            and t1.id = #{id}
        </if>
        <if test="num != null and num != ''">
            and t1.num like concat('%',#{num},'%')
        </if>
@@ -68,6 +86,9 @@
        <if test="status != null and status != ''">
            and t1.status = #{status}
        </if>
        <if test="repairOrderUda1 != null and repairOrderUda1 != ''">
            and t1.repair_order_uda1 = #{repairOrderUda1}
        </if>
        <if test="equipmentCategoryId != null and equipmentCategoryId != ''">
            and t2.equipment_category_id = #{equipmentCategoryId}
        </if>
@@ -77,10 +98,46 @@
        <if test="specificEquipment != null and specificEquipment != ''">
            and t2.specific_equipment = #{specificEquipment}
        </if>
        <if test="equipmentImportanceId != null and  equipmentImportanceId != ''">
            and t2.equipment_importance_id = #{equipmentImportanceId}
        </if>
        <if test="faultCause != null and  faultCause != ''">
            and t7.repair_order_fault_analysis_uda2 = #{faultCause}
        </if>
        <if test="teamId != null and teamId != ''">
            and t1.team_id = #{teamId}
        </if>
        and t1.repair_order_type = #{repairOrderType}
        <if test="repairOrderType != null and repairOrderType != ''">
            and t1.repair_order_type = #{repairOrderType}
        </if>
        <if test="faultStartTime != null">
            and report.fault_time &gt;= #{faultStartTime}
        </if>
        <if test="faultEndTime != null">
            and report.fault_time &lt;= #{faultEndTime}
        </if>
        <if test="createStartTime != null">
            and t1.create_time &gt;= #{createStartTime}
        </if>
        <if test="createEndTime != null">
            and t1.create_time &lt;= #{createEndTime}
        </if>
        <if test="workCenterIds != null">
            and t2.work_center_id in
            <foreach collection="workCenterIds" open="(" separator="," close=")" item="workCenterId">
                #{workCenterId}
            </foreach>
        </if>
        <if test="equipmentId != null">
            and t1.equipment_id = #{equipmentId}
        </if>
        <if test="statusEnums != null">
            and t1.status not in
            <foreach collection="statusEnums" open="(" separator="," close=")" item="statusEnum">
                #{statusEnum}
            </foreach>
        </if>
        order by t1.create_time desc
    </select>
@@ -137,4 +194,163 @@
    </select>
    <select id="getAllFaultCause"  parameterType="Map" resultType="Map">
        SELECT
            t1.repair_order_fault_analysis_uda2,
            COUNT ( t1.repair_order_fault_analysis_uda2 ) AS total,
            t2.item_text AS faultCause
        FROM
        ( SELECT * FROM v_sys_dict WHERE dict_code = 'repair_order_fault_cause' ) t2
        LEFT JOIN mom_eam_repair_order_fault_analysis t1 ON t1.repair_order_fault_analysis_uda2 = t2.item_value
        WHERE
            del_flag = '0'
        GROUP BY
            t1.repair_order_fault_analysis_uda2,
            t2.item_text
    </select>
    <select id="getFaultCause"  parameterType="Map" resultType="Map">
        SELECT
            t3.item_text  as  faultCause,
            count(t4.repair_order_fault_analysis_uda2) as total
        FROM
                ( SELECT * FROM v_sys_dict WHERE dict_code = 'repair_order_fault_cause' ) t3
                    LEFT JOIN (
                SELECT
                    t1.repair_order_fault_analysis_uda2
                FROM
                    mom_eam_repair_order_fault_analysis t1
                        LEFT JOIN mom_eam_repair_order t2 ON t1.repair_order_id = t2.id
                WHERE
                    t1.del_flag = 0
                  AND t2.del_flag = 0
                  AND t2.equipment_id = #{equipmentId}
            ) t4 ON t3.item_value = t4.repair_order_fault_analysis_uda2
        group by t3.item_text
    </select>
    <select id="getFaultCausePie"  parameterType="Map" resultType="Map">
        SELECT
            t3.item_text  as  x,
            count(t4.repair_order_fault_analysis_uda2) as y
        FROM
                ( SELECT * FROM v_sys_dict WHERE dict_code = 'repair_order_fault_cause' ) t3
                    LEFT JOIN (
                SELECT
                    t1.repair_order_fault_analysis_uda2
                FROM
                    mom_eam_repair_order_fault_analysis t1
                    LEFT JOIN mom_eam_repair_order t2 ON t1.repair_order_id = t2.id
                    left join mom_eam_equipment t11 on t2.equipment_id = t11.id
                WHERE
                    t1.del_flag = 0
                  AND t2.del_flag = 0
                 <if test="params.equipmentNum != null and params.equipmentNum != ''">
                     and t11.num like concat('%',#{params.equipmentNum},'%')
                 </if>
                <if test="params.useId != null and params.useId != ''">
                    and t11.use_id = #{params.useId}
                </if>
                <if test="params.faultStartTime != null">
                    and t2.create_time &gt;= #{params.faultStartTime}
                </if>
                <if test="params.faultEndTime != null">
                    and t2.create_time &lt;= #{params.faultEndTime}
                </if>
            ) t4 ON t3.item_value = t4.repair_order_fault_analysis_uda2
        group by t3.item_text
    </select>
    <select id="getFaultCauseBar"  parameterType="Map" resultType="Map">
        SELECT
            t3.item_text  as  item,
            count(t4.repair_order_fault_analysis_uda2) as count
        FROM
            ( SELECT * FROM v_sys_dict WHERE dict_code = 'repair_order_fault_cause' ) t3
            LEFT JOIN (
                SELECT
                 t1.repair_order_fault_analysis_uda2
                 FROM
                mom_eam_repair_order_fault_analysis t1
                    LEFT JOIN mom_eam_repair_order t2 ON t1.repair_order_id = t2.id
                    left join mom_eam_equipment t11 on t2.equipment_id = t11.id
                WHERE
                t1.del_flag = 0
                AND t2.del_flag = 0
            <if test="params.equipmentNum != null and params.equipmentNum != ''">
                and t11.num like concat('%',#{params.equipmentNum},'%')
            </if>
            <if test="params.useId != null and params.useId != ''">
                and t11.use_id = #{params.useId}
            </if>
            <if test="params.faultStartTime != null">
                and t2.create_time &gt;= #{params.faultStartTime}
            </if>
            <if test="params.faultEndTime != null">
                and t2.create_time &lt;= #{params.faultEndTime}
            </if>
        ) t4 ON t3.item_value = t4.repair_order_fault_analysis_uda2
        group by t3.item_text
    </select>
    <select id="getEquipmentFaultCause"  parameterType="Map" resultType="Map">
        select count(SUBSTRING(CONVERT(VARCHAR(10), t1.fault_time, 120), 1, 10)) as '设备故障次数',
        SUBSTRING(CONVERT(VARCHAR(10), t1.fault_time, 120), 1, 10) as type from mom_eam_equipment_report_repair t1
        left join mom_eam_equipment t2 on t1.equipment_id = t2.id
        where 1=1
        <if test="params.equipmentNum != null and params.equipmentNum != ''">
            and t2.num like concat('%',#{params.equipmentNum},'%')
        </if>
        <if test="params.useId != null and params.useId != ''">
            and t2.use_id = #{params.useId}
        </if>
        <if test="params.faultStartTime != null">
            and t1.fault_time &gt;= #{params.faultStartTime}
        </if>
        <if test="params.faultEndTime != null">
            and t1.fault_time &lt;= #{params.faultEndTime}
        </if>
        GROUP BY SUBSTRING(CONVERT(VARCHAR(10), t1.fault_time, 120), 1, 10)
    </select>
    <select id="getMTPF"  parameterType="Map" resultType="Map">
        SELECT
            t3.item_text  as  item,
            count(t4.repair_order_fault_analysis_uda2) as count
            FROM
            ( SELECT * FROM v_sys_dict WHERE dict_code = 'repair_order_fault_cause' ) t3
                LEFT JOIN (
                    SELECT
                        t1.repair_order_fault_analysis_uda2
                        FROM
                    mom_eam_repair_order_fault_analysis t1
                    LEFT JOIN mom_eam_repair_order t2 ON t1.repair_order_id = t2.id
                    left join mom_eam_equipment t11 on t2.equipment_id = t11.id
                        WHERE
                        t1.del_flag = 0
                        AND t2.del_flag = 0
            <if test="params.equipmentNum != null and params.equipmentNum != ''">
                and t11.num like concat('%',#{params.equipmentNum},'%')
            </if>
            <if test="params.useId != null and params.useId != ''">
                and t11.use_id = #{params.useId}
            </if>
            <if test="params.faultStartTime != null">
                and t2.create_time &gt;= #{params.faultStartTime}
            </if>
            <if test="params.faultEndTime != null">
                and t2.create_time &lt;= #{params.faultEndTime}
            </if>
            ) t4 ON t3.item_value = t4.repair_order_fault_analysis_uda2
        group by t3.item_text
    </select>
    <update id="updateRepair" parameterType="String">
        UPDATE mom_eam_repair_order
        SET actual_end_time = null,
            status = '3'
        WHERE id = #{id}
    </update>
</mapper>