" WHEN ro.return_reason LIKE '%质量%' OR ro.return_reason LIKE '%不合格%' THEN '质量问题' "+
" WHEN ro.return_reason LIKE '%订单%' OR ro.return_reason LIKE '%变更%' THEN '订单变更' "+
" WHEN ro.return_reason LIKE '%损坏%' OR ro.return_reason LIKE '%破损%' THEN '物料损坏' "+
" WHEN ro.return_reason LIKE '%过期%' OR ro.return_reason LIKE '%超期%' THEN '过期物料' "+
" ELSE '其他原因' "+
" END AS returnReasonCategory, "+
" COUNT(*) AS returnOrderCount, "+
" SUM(ro.return_amount) AS totalReturnAmount, "+
" CAST(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') AS DECIMAL(10,2)) AS orderCountRatio, "+
" CAST(SUM(ro.return_amount) * 100.0 / (SELECT SUM(return_amount) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') AS DECIMAL(10,2)) AS amountRatio, "+
" mi.material_name AS materialName, "+
" mc.material_category_name AS materialCategoryName, "+
" mi.material_code AS materialCode "+
"FROM wms_return_order ro "+
"INNER JOIN base_material_info_copy1 mi ON ro.material_id = mi.material_id "+
"INNER JOIN base_material_category mc ON mi.material_category_id = mc.material_category_id "+
"WHERE ro.order_status = '1' "+
" AND (#{tenantId} IS NULL OR ro.tenant_id = #{tenantId}) "+
" AND (#{materialCategoryId} IS NULL OR mc.material_category_id = #{materialCategoryId}) "+
"GROUP BY ro.tenant_id, "+
" CASE "+
" WHEN ro.return_reason LIKE '%质量%' OR ro.return_reason LIKE '%不合格%' THEN '质量问题' "+
" WHEN ro.return_reason LIKE '%订单%' OR ro.return_reason LIKE '%变更%' THEN '订单变更' "+
" WHEN ro.return_reason LIKE '%损坏%' OR ro.return_reason LIKE '%破损%' THEN '物料损坏' "+
" WHEN ro.return_reason LIKE '%过期%' OR ro.return_reason LIKE '%超期%' THEN '过期物料' "+
" WHEN ro.return_reason LIKE '%质量%' OR ro.return_reason LIKE '%不合格%' THEN '质量问题' "+
" WHEN ro.return_reason LIKE '%订单%' OR ro.return_reason LIKE '%变更%' THEN '订单变更' "+
" WHEN ro.return_reason LIKE '%损坏%' OR ro.return_reason LIKE '%破损%' THEN '物料损坏' "+
" WHEN ro.return_reason LIKE '%过期%' OR ro.return_reason LIKE '%超期%' THEN '过期物料' "+
" ELSE ro.return_reason "+
" END AS returnReasonCategory, "+
" COUNT(*) AS returnOrderCount, "+
" SUM(ro.return_amount) AS totalReturnAmount, "+
" CAST(CASE "+
" WHEN (SELECT COUNT(*) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') = 0 THEN 0 "+
" ELSE COUNT(*) * 100.0 / (SELECT COUNT(*) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') "+
" END AS DECIMAL(10,2)) AS orderCountRatio, "+
" CAST(CASE "+
" WHEN (SELECT SUM(return_amount) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') = 0 OR (SELECT SUM(return_amount) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') IS NULL THEN 0 "+
" ELSE SUM(ro.return_amount) * 100.0 / (SELECT SUM(return_amount) FROM wms_return_order WHERE tenant_id = ro.tenant_id AND order_status = '1') "+
" END AS DECIMAL(10,2)) AS amountRatio, "+
" mi.material_name AS materialName, "+
" mc.material_category_name AS materialCategoryName, "+
" mi.material_code AS materialCode "+
"FROM wms_return_order ro "+
"INNER JOIN base_material_info_copy1 mi ON ro.material_id = mi.material_id "+
"INNER JOIN base_material_category mc ON mi.material_category_id = mc.material_category_id "+
"WHERE ro.order_status = '1' "+
" AND (#{tenantId} IS NULL OR ro.tenant_id = #{tenantId}) "+
" AND (#{materialCategoryId} IS NULL OR mc.material_category_id = #{materialCategoryId}) "+
"GROUP BY ro.tenant_id, "+
" CASE "+
" WHEN ro.return_reason LIKE '%质量%' OR ro.return_reason LIKE '%不合格%' THEN '质量问题' "+
" WHEN ro.return_reason LIKE '%订单%' OR ro.return_reason LIKE '%变更%' THEN '订单变更' "+
" WHEN ro.return_reason LIKE '%损坏%' OR ro.return_reason LIKE '%破损%' THEN '物料损坏' "+
" WHEN ro.return_reason LIKE '%过期%' OR ro.return_reason LIKE '%超期%' THEN '过期物料' "+