盈亏排序

This commit is contained in:
2025-06-20 15:13:10 +08:00
parent 213488feb6
commit f5875180a4
6 changed files with 95 additions and 9 deletions

View File

@@ -813,5 +813,41 @@
ORDER BY
TIMESTAMPDIFF(DAY, NOW(), p.finish_time) ASC
</select>
<select id="selectProfitLossPage" resultType="com.ruoyi.oa.domain.vo.ProjectProfitLossVO">
SELECT
p.project_id,
p.project_name,
p.project_num,
p.begin_time,
p.project_status,
p.funds AS contract_amount,
COALESCE(wd.total_warehouse_cost, 0) AS warehouse_cost,
COALESCE(hr.total_hr_cost, 0) AS hr_cost,
(p.funds - COALESCE(wd.total_warehouse_cost, 0) - COALESCE(hr.total_hr_cost, 0)) AS profit_loss
FROM sys_oa_project p
LEFT JOIN (
SELECT
project_id,
SUM(amount * sign_price) AS total_warehouse_cost
FROM sys_oa_warehouse_detail
WHERE del_flag = 0
GROUP BY project_id
) wd ON p.project_id = wd.project_id
LEFT JOIN (
SELECT
a.project_id,
SUM(
CASE
WHEN a.hour > 0 THEN a.hour * u.labor_cost
ELSE a.day_length * 8 * u.labor_cost
END
) AS total_hr_cost
FROM sys_oa_attendance a
JOIN sys_user u ON a.user_id = u.user_id
WHERE a.del_flag = 0
GROUP BY a.project_id
) hr ON p.project_id = hr.project_id
${ew.customSqlSegment}
</select>
</mapper>