预设项目进度控制
This commit is contained in:
@@ -184,87 +184,73 @@
|
||||
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
|
||||
),
|
||||
(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(
|
||||
'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
|
||||
),
|
||||
(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
|
||||
),
|
||||
(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
|
||||
@@ -310,4 +296,88 @@
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- 最内层 TaskItem -->
|
||||
<resultMap id="TaskItemResultMap" type="com.ruoyi.oa.domain.vo.SysOaTaskItemVo">
|
||||
<id property="itemId" column="item_id"/>
|
||||
<result property="files" column="file_urls"/>
|
||||
<result property="nickName" column="nick_name"/>
|
||||
<result property="signTime" column="sign_time"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- Task, 包含 List<TaskItem> -->
|
||||
<resultMap id="TaskResultMap" type="com.ruoyi.oa.domain.vo.SysOaTaskVo">
|
||||
<id property="taskId" column="task_id"/>
|
||||
<result property="taskType" column="task_type"/>
|
||||
<result property="status" column="task_status"/>
|
||||
|
||||
<collection property="taskItemVoList"
|
||||
resultMap="TaskItemResultMap"
|
||||
column="item_id"
|
||||
javaType="ArrayList" />
|
||||
</resultMap>
|
||||
|
||||
<!-- Project, 包含 List<Task> -->
|
||||
<resultMap id="ProjectResultMap" type="com.ruoyi.oa.domain.vo.SysOaProjectVo">
|
||||
<id property="projectId" column="p_id"/>
|
||||
<result property="projectName" column="project_name"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
|
||||
<collection property="taskList"
|
||||
resultMap="TaskResultMap"
|
||||
column="task_id"
|
||||
javaType="ArrayList" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
<select id="selectFileVoList" resultMap="ProjectResultMap">
|
||||
SELECT
|
||||
sop.project_id AS p_id,
|
||||
sop.project_name AS project_name,
|
||||
sop.update_time,
|
||||
t.task_id AS task_id,
|
||||
t.task_type AS task_type,
|
||||
t.status AS task_status,
|
||||
|
||||
CASE
|
||||
WHEN t.status = 0 THEN u0.nick_name
|
||||
WHEN t.status = 1 THEN u1.nick_name
|
||||
ELSE ''
|
||||
END AS nick_name,
|
||||
|
||||
ti.item_id AS item_id,
|
||||
case
|
||||
when ti.sign_time is not null then ti.sign_time
|
||||
else t.finish_time
|
||||
end AS sign_time,
|
||||
|
||||
GROUP_CONCAT(
|
||||
f.file_url
|
||||
SEPARATOR ','
|
||||
) AS file_urls
|
||||
|
||||
FROM sys_oa_project sop
|
||||
LEFT JOIN sys_oa_task t
|
||||
ON sop.project_id = t.project_id
|
||||
|
||||
LEFT JOIN sys_user u0
|
||||
ON t.create_user_id = u0.user_id
|
||||
|
||||
LEFT JOIN sys_user u1
|
||||
ON t.worker_id = u1.user_id
|
||||
|
||||
LEFT JOIN sys_oa_task_item ti
|
||||
ON t.task_id = ti.task_id
|
||||
|
||||
LEFT JOIN sys_oa_file f
|
||||
ON (
|
||||
(t.status = 0 AND FIND_IN_SET(CONCAT(f.file_id, ''), t.files) > 0)
|
||||
OR
|
||||
(t.status = 1 AND FIND_IN_SET(CONCAT(f.file_id, ''), ti.files) > 0)
|
||||
)
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user