You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
5.2 KiB
XML

<?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.op.mes.mapper.H5ApiMapper">
<resultMap type="H5" id="H5Result">
<result property="workOrderCode" column="workorder_code"/>
<result property="lineName" column="machine_name"/>
<result property="productName" column="product_name"/>
<result property="category" column="category"/>
<result property="specifications" column="umrez"/>
<result property="StandardStaffing" column="man_standar"/>
<result property="actualEmployment" column="use_man"/>
<result property="productionDuration" column="work_time"/>
<result property="planProduction" column="plan_production"/>
<result property="production" column="quantity_feedback"/>
<result property="parentOrder" column="parent_order"/>
<result property="standardEfficiency" column="standardEfficiency"/>
<result property="actualEfficiency" column="actualEfficiency"/>
<result property="efficiencyAcRate" column="efficiencyAcRate"/>
</resultMap>
<select id="selectMesLineProdceList" parameterType="H5" resultMap="H5Result">
SELECT
mrw.workorder_code,
mrw.machine_name,
mrw.product_code,
mrw.product_name,
bpa.category,
bp.umrez,
SUM ( mrw.quantity ) AS plan_production,
SUM ( mrw.quantity_feedback ) AS quantity_feedback,
MAX(A.quantity_s) AS quantity_s,
MAX(A.quantity_s_total) AS quantity_s_total,
bpa.man_standar,
MAX(A.use_man) AS use_man,
FORMAT(ROUND((MAX(A.work_time)), 1), '0.#') AS work_time,
mrw.parent_order ,
bpa.iei,
FORMAT(ROUND((bpa.iei / bp.umrez / bpa.man_standar), 1), '0.#') AS standardEfficiency,
FORMAT(ROUND(
CASE
WHEN MAX(A.use_man) = 0 OR SUM(A.work_time) = 0 THEN NULL
ELSE (SUM(mrw.quantity_feedback)) / MAX(A.use_man) / (MAX(A.work_time))
END,
1
), '0.#') AS actualEfficiency,
FORMAT(
CASE
WHEN (bpa.iei / bp.umrez / bpa.man_standar) = 0
THEN NULL
ELSE (CAST(
ROUND(
CASE
WHEN MAX(A.use_man) = 0 OR SUM(A.work_time) = 0 THEN NULL
ELSE (SUM(mrw.quantity_feedback)) / MAX(A.use_man) / (MAX(A.work_time))
END,
1
) AS DECIMAL(10,1))
/ CAST(
ROUND((bpa.iei / bp.umrez / bpa.man_standar), 1) AS DECIMAL(10,1)
) * 100
)
END,
'0.#'
) + '%' AS efficiencyAcRate
FROM
[dbo].[mes_report_work] mrw
LEFT JOIN base_product_attached bpa ON bpa.product_code = RIGHT ( mrw.product_code, 11 )
LEFT JOIN base_product bp ON bp.product_code = mrw.product_code
LEFT JOIN (
SELECT
mrws.workorder_code,
mrws.parent_order,
MAX(mrws.use_man) AS use_man,
MAX(pow.quantity_split) AS quantity_s,
SUM(mrws.quantity_feedback) AS quantity_s_total,
SUM (mrws.work_time ) AS work_time
FROM
[dbo].[mes_report_work] mrws
LEFT JOIN pro_order_workorder pow ON mrws.workorder_code=pow.workorder_code
WHERE
CAST (mrws.feedback_time AS DATE ) = #{feedbackTime}
AND mrws.parent_order != '0'
GROUP BY
mrws.workorder_code,
mrws.parent_order
) A ON A.parent_order= mrw.workorder_code
WHERE
CAST ( mrw.feedback_time AS DATE ) = #{feedbackTime}
AND mrw.parent_order = '0'
GROUP BY
mrw.workorder_code,
mrw.machine_name,
mrw.product_code,
mrw.product_name,
bpa.category,
bp.umrez,
bpa.man_standar,
mrw.use_man,
mrw.parent_order,
bpa.iei
ORDER BY mrw.machine_name ASC
</select>
<select id="selectMesLineProsdceLists" parameterType="H5" resultMap="H5Result">
SELECT
mrw.workorder_code,
mrw.machine_name,
mrw.product_code,
SUM ( mrw.quantity ) AS plan_production,
SUM ( mrw.quantity_feedback ) AS quantity_feedback,
mrw.use_man,
SUM ( mrw.work_time ) AS work_time,
mrw.parent_order
FROM
[dbo].[mes_report_work] mrw
LEFT JOIN base_product_attached bpa ON bpa.product_code = RIGHT(mrw.product_code, 11)
LEFT JOIN base_product bp ON bp.product_code = mrw.product_code
<where>
<if test="feedbackTime != null and feedbackTime != ''">
CAST ( mrw.feedback_time AS DATE ) = #{feedbackTime}
</if>
AND mrw.parent_order != '0'
</where>
GROUP BY
mrw.workorder_code,
mrw.machine_name,
mrw.product_code,
mrw.use_man,
mrw.parent_order;
</select>
</mapper>