| | |
| | | pl.purchase_contract_number as purchase_contract_no |
| | | </when> |
| | | <otherwise> |
| | | pwo.work_order_no, |
| | | sl.sales_contract_no |
| | | pot.work_order_no, |
| | | po_sales.sales_contract_no |
| | | </otherwise> |
| | | </choose> |
| | | FROM |
| | |
| | | </when> |
| | | <otherwise> |
| | | LEFT JOIN production_product_main ppm ON qi.product_main_id = ppm.id |
| | | LEFT JOIN product_work_order pwo ON ppm.work_order_id = pwo.id |
| | | left join product_order po ON po.id = pwo.product_order_id |
| | | left join sales_ledger sl ON sl.id = po.sales_ledger_id |
| | | LEFT JOIN production_operation_task pot ON ppm.production_operation_task_id = pot.id |
| | | left join production_order po ON po.id = pot.production_order_id |
| | | left join ( |
| | | select po2.id as order_id, |
| | | group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as sales_contract_no |
| | | from production_order po2 |
| | | left join production_plan pp2 |
| | | on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0 |
| | | left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id |
| | | group by po2.id |
| | | ) po_sales ON po_sales.order_id = po.id |
| | | </otherwise> |
| | | </choose> |
| | | WHERE |
| | |
| | | </if> |
| | | <if test="qualityInspect.entryDateEnd != null and qualityInspect.entryDateEnd != '' "> |
| | | AND qi.check_time <= DATE_FORMAT(#{qualityInspect.entryDateEnd},'%Y-%m-%d') |
| | | </if> |
| | | <if test="qualityInspect.purchaseContractNo != null and qualityInspect.purchaseContractNo != '' "> |
| | | AND pl.purchase_contract_number like concat('%',#{qualityInspect.purchaseContractNo},'%') |
| | | </if> |
| | | <if test="qualityInspect.workOrderNo != null and qualityInspect.workOrderNo != '' "> |
| | | AND pot.work_order_no like concat('%',#{qualityInspect.workOrderNo},'%') |
| | | </if> |
| | | <if test="qualityInspect.salesContractNo != null and qualityInspect.salesContractNo != '' "> |
| | | AND po_sales.sales_contract_no like concat('%',#{qualityInspect.salesContractNo},'%') |
| | | </if> |
| | | ORDER BY qi.check_time DESC |
| | | </select> |
| | |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN qi.inspect_state = 1 |
| | | AND qi.check_result = '合格' |
| | | THEN qi.quantity |
| | | THEN qi.qualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS qualifiedCount, |
| | |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN qi.inspect_state = 1 |
| | | AND qi.check_result = '不合格' |
| | | THEN qi.quantity |
| | | THEN qi.unqualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS unqualifiedCount, |
| | |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN qi.inspect_state = 1 |
| | | AND qi.check_result = '合格' |
| | | THEN qi.quantity |
| | | THEN qi.qualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) |
| | |
| | | /* 合格 */ |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN qi.inspect_state = 1 AND qi.check_result = '合格' |
| | | THEN qi.quantity |
| | | WHEN qi.inspect_state = 1 |
| | | THEN qi.qualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS qualifiedCount, |
| | |
| | | /* 不合格 */ |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN qi.inspect_state = 1 AND qi.check_result = '不合格' |
| | | THEN qi.quantity |
| | | WHEN qi.inspect_state = 1 |
| | | THEN qi.unqualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS unqualifiedCount, |
| | |
| | | ROUND( |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN qi.inspect_state = 1 AND qi.check_result = '合格' |
| | | THEN qi.quantity |
| | | WHEN qi.inspect_state = 1 |
| | | THEN qi.qualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) |
| | |
| | | |
| | | <select id="getYearlyPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto"> |
| | | SELECT t.modelType, |
| | | |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN pp.product_name = '原材料' AND t.modelType = 0 THEN qi.quantity |
| | |
| | | WHEN pp.product_name = '成品' AND t.modelType = 2 THEN qi.quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS totalCount |
| | | |
| | | ), 0) AS totalCount, |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN pp.product_name = '原材料' AND t.modelType = 0 THEN qi.qualified_quantity |
| | | WHEN pp.product_name = '半成品' AND t.modelType = 1 THEN qi.qualified_quantity |
| | | WHEN pp.product_name = '成品' AND t.modelType = 2 THEN qi.qualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS qualifiedCount, |
| | | COALESCE(SUM( |
| | | CASE |
| | | WHEN pp.product_name = '原材料' AND t.modelType = 0 THEN qi.unqualified_quantity |
| | | WHEN pp.product_name = '半成品' AND t.modelType = 1 THEN qi.unqualified_quantity |
| | | WHEN pp.product_name = '成品' AND t.modelType = 2 THEN qi.unqualified_quantity |
| | | ELSE 0 |
| | | END |
| | | ), 0) AS unqualifiedCount |
| | | FROM (SELECT 0 AS modelType |
| | | UNION ALL |
| | | SELECT 1 |
| | |
| | | ON qi.product_model_id = pm.id |
| | | AND YEAR(qi.check_time) = #{year} |
| | | AND qi.inspect_state = 1 |
| | | AND qi.check_result = '合格' |
| | | |
| | | GROUP BY t.modelType |
| | | ORDER BY t.modelType; |
| | | </select> |