|
|
|
|
@ -9,4 +9,92 @@
|
|
|
|
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<select id="selectStatPage"
|
|
|
|
|
resultType="cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.BaogongRecordStatRespVO">
|
|
|
|
|
SELECT
|
|
|
|
|
r.id,
|
|
|
|
|
t.code AS taskCode,
|
|
|
|
|
p.code AS planCode,
|
|
|
|
|
r.creator AS employeeId,
|
|
|
|
|
u.nickname AS employeeName,
|
|
|
|
|
pr.name AS productName,
|
|
|
|
|
pr.bar_code AS productCode,
|
|
|
|
|
(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)) AS baogongNum,
|
|
|
|
|
IFNULL(r.num, 0) AS passNum,
|
|
|
|
|
IFNULL(r.no_pass_num, 0) AS noPassNum,
|
|
|
|
|
CASE
|
|
|
|
|
WHEN (IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)) = 0 THEN 0
|
|
|
|
|
ELSE ROUND(IFNULL(r.num, 0) / (IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)) * 100, 2)
|
|
|
|
|
END AS passRate,
|
|
|
|
|
r.remark AS reason,
|
|
|
|
|
r.baogong_time AS baogongTime
|
|
|
|
|
FROM mes_baogong_record r
|
|
|
|
|
LEFT JOIN mes_plan p ON p.id = r.plan_id AND p.deleted = b'0'
|
|
|
|
|
LEFT JOIN mes_task t ON t.id = p.task_id AND t.deleted = b'0'
|
|
|
|
|
LEFT JOIN erp_product pr ON pr.id = p.product_id AND pr.deleted = b'0'
|
|
|
|
|
LEFT JOIN system_users u ON u.id = CAST(r.creator AS UNSIGNED)
|
|
|
|
|
WHERE r.deleted = b'0'
|
|
|
|
|
<if test="reqVO.beginBaogongTime != null">
|
|
|
|
|
AND r.baogong_time >= #{reqVO.beginBaogongTime}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="reqVO.endBaogongTime != null">
|
|
|
|
|
AND r.baogong_time <= #{reqVO.endBaogongTime}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="reqVO.ids != null and reqVO.ids.size() > 0">
|
|
|
|
|
AND r.id IN
|
|
|
|
|
<foreach collection="reqVO.ids" item="id" open="(" separator="," close=")">
|
|
|
|
|
#{id}
|
|
|
|
|
</foreach>
|
|
|
|
|
</if>
|
|
|
|
|
ORDER BY r.baogong_time DESC
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectTrendSummary"
|
|
|
|
|
resultType="cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.BaogongRecordTrendRespVO">
|
|
|
|
|
SELECT
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)), 0) AS baogongNum,
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0)), 0) AS passNum,
|
|
|
|
|
IFNULL(SUM(IFNULL(r.no_pass_num, 0)), 0) AS noPassNum,
|
|
|
|
|
CASE
|
|
|
|
|
WHEN IFNULL(SUM(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)), 0) = 0 THEN 0
|
|
|
|
|
ELSE ROUND(
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0)), 0) /
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)), 0) * 100, 2
|
|
|
|
|
)
|
|
|
|
|
END AS passRate
|
|
|
|
|
FROM mes_baogong_record r
|
|
|
|
|
WHERE r.deleted = b'0'
|
|
|
|
|
<if test="reqVO.beginBaogongTime != null">
|
|
|
|
|
AND r.baogong_time >= #{reqVO.beginBaogongTime}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="reqVO.endBaogongTime != null">
|
|
|
|
|
AND r.baogong_time <= #{reqVO.endBaogongTime}
|
|
|
|
|
</if>
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectTrendByDay"
|
|
|
|
|
resultType="cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.BaogongRecordTrendDayRespVO">
|
|
|
|
|
SELECT
|
|
|
|
|
DATE_FORMAT(r.baogong_time, '%Y-%m-%d') AS day,
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)), 0) AS baogongNum,
|
|
|
|
|
CASE
|
|
|
|
|
WHEN IFNULL(SUM(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)), 0) = 0 THEN 0
|
|
|
|
|
ELSE ROUND(
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0)), 0) /
|
|
|
|
|
IFNULL(SUM(IFNULL(r.num, 0) + IFNULL(r.no_pass_num, 0)), 0) * 100, 2
|
|
|
|
|
)
|
|
|
|
|
END AS passRate
|
|
|
|
|
FROM mes_baogong_record r
|
|
|
|
|
WHERE r.deleted = b'0'
|
|
|
|
|
<if test="reqVO.beginBaogongTime != null">
|
|
|
|
|
AND r.baogong_time >= #{reqVO.beginBaogongTime}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="reqVO.endBaogongTime != null">
|
|
|
|
|
AND r.baogong_time <= #{reqVO.endBaogongTime}
|
|
|
|
|
</if>
|
|
|
|
|
GROUP BY DATE_FORMAT(r.baogong_time, '%Y-%m-%d')
|
|
|
|
|
ORDER BY day ASC
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</mapper>
|