三期内容优化
This commit is contained in:
@@ -117,7 +117,7 @@
|
||||
</select>
|
||||
<select id="selectListToCost" resultType="com.ruoyi.oa.domain.vo.SysOaCostAllVo">
|
||||
SELECT
|
||||
sop.project_name,sop.project_num,sop.project_id,
|
||||
sop.project_name,sop.project_num,sop.project_id,sop.funds,
|
||||
|
||||
(
|
||||
SELECT COALESCE(SUM(soc.cost),0)
|
||||
@@ -126,10 +126,11 @@
|
||||
) AS claimCost,
|
||||
|
||||
(
|
||||
SELECT COALESCE(SUM(soow.amount * sow.price),0)
|
||||
FROM sys_oa_out_warehouse soow
|
||||
JOIN sys_oa_warehouse sow ON soow.id = sow.id
|
||||
WHERE soow.project_id = sop.project_id
|
||||
SELECT COALESCE(SUM(sod.price), 0)
|
||||
FROM sys_oa_finance sof
|
||||
JOIN sys_oa_detail sod ON sof.finance_id = sod.finance_id
|
||||
WHERE sof.project_id = sop.project_id
|
||||
AND sof.finance_type = 0
|
||||
) AS materialCost,
|
||||
|
||||
(
|
||||
@@ -151,74 +152,96 @@
|
||||
|
||||
|
||||
<select id="selectProjectDetails" parameterType="Long" resultType="java.util.Map">
|
||||
SELECT
|
||||
JSON_OBJECT(
|
||||
'userCostList', COALESCE((
|
||||
SELECT JSON_ARRAYAGG(
|
||||
JSON_OBJECT(
|
||||
'userId', CAST(uc.userId AS CHAR),
|
||||
'nickName', COALESCE(uc.nickName, ''),
|
||||
'laborCost', ROUND(COALESCE(uc.laborCost, 0),1),
|
||||
'attendenceNum', ROUND(COALESCE(uc.attendenceNum, 0),1)
|
||||
)
|
||||
)
|
||||
FROM (
|
||||
SELECT
|
||||
a.user_id AS userId,
|
||||
u.nick_name AS nickName,
|
||||
COALESCE(SUM(ROUND((a.day_length * 9 + a.hour) / 9,1) * u.labor_cost), 0) AS laborCost,
|
||||
COALESCE(ROUND(SUM((a.day_length * 9 + a.hour) / 9),1), 0) AS attendenceNum
|
||||
FROM sys_oa_attendance a
|
||||
INNER JOIN sys_user u ON a.user_id = u.user_id
|
||||
WHERE a.project_id = #{projectId} AND a.del_flag = 0
|
||||
GROUP BY a.user_id
|
||||
) uc
|
||||
), JSON_ARRAY()),
|
||||
SELECT JSON_OBJECT(
|
||||
'userCostList',
|
||||
COALESCE(
|
||||
(
|
||||
SELECT JSON_ARRAYAGG(
|
||||
JSON_OBJECT(
|
||||
'userId', CAST(uc.userId AS CHAR),
|
||||
'nickName', COALESCE(uc.nickName, ''),
|
||||
'laborCost', ROUND(COALESCE(uc.laborCost, 0), 1),
|
||||
'attendenceNum', ROUND(COALESCE(uc.attendenceNum, 0), 1)
|
||||
)
|
||||
)
|
||||
FROM (
|
||||
SELECT
|
||||
a.user_id AS userId,
|
||||
u.nick_name AS nickName,
|
||||
COALESCE(
|
||||
SUM(
|
||||
ROUND((a.day_length * 9 + a.hour) / 9, 1) * u.labor_cost
|
||||
),
|
||||
0
|
||||
) AS laborCost,
|
||||
COALESCE(
|
||||
ROUND(
|
||||
SUM((a.day_length * 9 + a.hour) / 9), 1
|
||||
),
|
||||
0
|
||||
) AS attendenceNum
|
||||
FROM sys_oa_attendance a
|
||||
INNER JOIN sys_user u
|
||||
ON a.user_id = u.user_id
|
||||
WHERE a.project_id = #{projectId}
|
||||
AND a.del_flag = 0
|
||||
GROUP BY a.user_id
|
||||
) uc
|
||||
),
|
||||
JSON_ARRAY()
|
||||
),
|
||||
|
||||
'materialList', COALESCE((
|
||||
SELECT JSON_ARRAYAGG(
|
||||
JSON_OBJECT(
|
||||
'materialId', CAST(ml.materialId AS CHAR),
|
||||
'name', COALESCE(ml.name, ''),
|
||||
'price', COALESCE(ml.price, 0),
|
||||
'amount', COALESCE(ml.amount, 0)
|
||||
)
|
||||
)
|
||||
FROM (
|
||||
SELECT
|
||||
ow.id AS materialId,
|
||||
COALESCE(w.name, '') AS name,
|
||||
COALESCE(w.price, 0) AS price,
|
||||
COALESCE(ow.amount, 0) AS amount
|
||||
FROM sys_oa_out_warehouse ow
|
||||
INNER JOIN sys_oa_warehouse w ON ow.warehouse_id = w.id
|
||||
WHERE ow.project_id = #{projectId} AND ow.del_flag = 0
|
||||
) ml
|
||||
), JSON_ARRAY()),
|
||||
'materialList',
|
||||
COALESCE(
|
||||
(
|
||||
SELECT JSON_ARRAYAGG(
|
||||
JSON_OBJECT(
|
||||
'detailId', CAST(d.detail_id AS CHAR),
|
||||
'detailTitle', COALESCE(d.detail_title, ''),
|
||||
'price', COALESCE(d.price, 0),
|
||||
'financeParties', COALESCE(f.finance_parties, ''),
|
||||
'remark', COALESCE(f.remark, '')
|
||||
)
|
||||
)
|
||||
FROM sys_oa_finance f
|
||||
INNER JOIN sys_oa_detail d
|
||||
ON f.finance_id = d.finance_id
|
||||
WHERE f.project_id = #{projectId}
|
||||
AND f.finance_type = 0
|
||||
),
|
||||
JSON_ARRAY()
|
||||
),
|
||||
|
||||
'claimList', COALESCE((
|
||||
SELECT JSON_ARRAYAGG(
|
||||
JSON_OBJECT(
|
||||
'claimId', CAST(cl.claimId AS CHAR),
|
||||
'nickName', COALESCE(cl.nickName, ''),
|
||||
'cost', COALESCE(cl.cost, 0),
|
||||
'remark', COALESCE(cl.remark, '')
|
||||
)
|
||||
)
|
||||
FROM (
|
||||
SELECT
|
||||
c.claim_id AS claimId,
|
||||
COALESCE(u.nick_name, '') AS nickName,
|
||||
COALESCE(c.cost, 0) AS cost,
|
||||
COALESCE(c.remark, '') AS remark
|
||||
FROM sys_oa_claim c
|
||||
INNER JOIN sys_user u ON c.user_id = u.user_id
|
||||
WHERE c.project_id = #{projectId} AND c.del_flag = 0
|
||||
) cl
|
||||
), JSON_ARRAY())
|
||||
) AS data
|
||||
'claimList',
|
||||
COALESCE(
|
||||
(
|
||||
SELECT JSON_ARRAYAGG(
|
||||
JSON_OBJECT(
|
||||
'claimId', CAST(cl.claimId AS CHAR),
|
||||
'nickName', COALESCE(cl.nickName, ''),
|
||||
'cost', COALESCE(cl.cost, 0),
|
||||
'remark', COALESCE(cl.remark, '')
|
||||
)
|
||||
)
|
||||
FROM (
|
||||
SELECT
|
||||
c.claim_id AS claimId,
|
||||
COALESCE(u.nick_name, '') AS nickName,
|
||||
COALESCE(c.cost, 0) AS cost,
|
||||
COALESCE(c.remark, '') AS remark
|
||||
FROM sys_oa_claim c
|
||||
INNER JOIN sys_user u
|
||||
ON c.user_id = u.user_id
|
||||
WHERE c.project_id = #{projectId}
|
||||
AND c.del_flag = 0
|
||||
) cl
|
||||
),
|
||||
JSON_ARRAY()
|
||||
)
|
||||
) AS data
|
||||
FROM sys_oa_project p
|
||||
WHERE p.project_id = #{projectId}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user