SELECT
ppi.quantity,
pos.unit_price,
(ppi.quantity * IFNULL(pos.unit_price, 0)) as calculated_cost,
ppi.unit as unit,
ppm.product_order_id,
ppm.reporting_time as log_date,
po.nps_no as order_no,
pm_mat.product_name as material_name,
pms_mat.model as material_model,
po.strength as strength,
sdd_type.dict_label as category_label
FROM production_product_input ppi
JOIN production_product_main ppm ON ppi.product_main_id = ppm.id
JOIN product_order po ON ppm.product_order_id = po.id
LEFT JOIN production_order_route pr ON po.route_id = pr.id
LEFT JOIN sys_dict_data sdd_type ON pr.dict_code = sdd_type.dict_code
LEFT JOIN production_order_structure pos ON ppm.product_order_id = pos.order_id
AND ppi.product_id = pos.product_model_id
AND ppi.bom_id = pos.bom_id
LEFT JOIN product_material_sku pms_mat ON ppi.product_id = pms_mat.id
LEFT JOIN product_material pm_mat ON pms_mat.product_id = pm_mat.id
AND ppm.reporting_time >= #{dto.startDate}
AND ppm.reporting_time < #{dto.endDate}
AND pr.dict_code = #{dto.dictCode}
AND ppm.product_order_id = #{dto.productOrderId}