进度+文件上传重构+文件权限控制
This commit is contained in:
@@ -22,57 +22,53 @@
|
||||
|
||||
|
||||
<select id="selectVoPagePlus" resultType="com.ruoyi.oa.domain.vo.OaProjectScheduleVo">
|
||||
SELECT
|
||||
ops.schedule_id,
|
||||
ops.project_id,
|
||||
ops.template_id,
|
||||
ops.current_step,
|
||||
opss.step_name AS currentStepName,
|
||||
ops.start_time,
|
||||
ops.end_time,
|
||||
ops.status,
|
||||
ops.remark,
|
||||
SELECT ops.schedule_id,
|
||||
ops.project_id,
|
||||
ops.template_id,
|
||||
ops.current_step,
|
||||
opss.step_name AS currentStepName,
|
||||
ops.start_time,
|
||||
ops.end_time,
|
||||
ops.status,
|
||||
ops.remark,
|
||||
|
||||
-- 项目信息
|
||||
op.project_id AS opProjectId,
|
||||
op.project_name,
|
||||
op.project_num,
|
||||
op.project_type,
|
||||
op.address,
|
||||
op.funds,
|
||||
op.functionary,
|
||||
op.begin_time,
|
||||
op.finish_time,
|
||||
op.introduction,
|
||||
op.project_grade,
|
||||
op.project_status,
|
||||
op.trade_type,
|
||||
op.pre_pay,
|
||||
opss.plan_end,
|
||||
/* ======================== 项目信息 ==================== */
|
||||
op.project_id AS opProjectId,
|
||||
op.project_name,
|
||||
op.project_num,
|
||||
op.project_type,
|
||||
op.address,
|
||||
op.funds,
|
||||
op.functionary,
|
||||
op.begin_time,
|
||||
op.finish_time,
|
||||
op.introduction,
|
||||
op.project_grade,
|
||||
op.project_status,
|
||||
op.trade_type,
|
||||
op.pre_pay,
|
||||
opss.plan_end,
|
||||
TIMESTAMPDIFF(DAY, NOW(), opss.plan_end) AS remainTime,
|
||||
ROUND(
|
||||
(
|
||||
(ops.current_step - CASE WHEN opss.status = 0 THEN 1 ELSE 0 END)
|
||||
/ NULLIF(maxs.max_order, 0)
|
||||
) * 100,
|
||||
2
|
||||
) AS schedulePercentage
|
||||
|
||||
-- 剩余天数
|
||||
TIMESTAMPDIFF(DAY, NOW(), opss.plan_end) AS remainTime,
|
||||
|
||||
-- 进度百分比:当 current_step=1 时强制为0,否则按公式计算
|
||||
CASE
|
||||
WHEN ops.current_step = 1 THEN 0
|
||||
ELSE ROUND((ops.current_step / NULLIF(maxs.max_order,0)) * 100, 2)
|
||||
END AS schedulePercentage -- 添加 NULLIF 防止除以0
|
||||
|
||||
FROM oa_project_schedule ops
|
||||
LEFT JOIN sys_oa_project op ON ops.project_id = op.project_id
|
||||
LEFT JOIN oa_project_schedule_step opss
|
||||
FROM oa_project_schedule AS ops
|
||||
LEFT JOIN sys_oa_project AS op ON ops.project_id = op.project_id
|
||||
LEFT JOIN oa_project_schedule_step AS opss
|
||||
ON ops.schedule_id = opss.schedule_id
|
||||
AND opss.step_order = ops.current_step
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
schedule_id,
|
||||
MAX(step_order) AS max_order
|
||||
FROM oa_project_schedule_step
|
||||
GROUP BY schedule_id
|
||||
) maxs ON maxs.schedule_id = ops.schedule_id
|
||||
AND opss.use_flag = '1'
|
||||
LEFT JOIN (SELECT schedule_id,
|
||||
MAX(step_order) AS max_order
|
||||
FROM oa_project_schedule_step
|
||||
WHERE use_flag = '1'
|
||||
GROUP BY schedule_id) AS maxs ON maxs.schedule_id = ops.schedule_id
|
||||
${ew.getCustomSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user