推送项目重构代码

This commit is contained in:
2026-05-30 15:32:57 +08:00
parent 3dafaceef2
commit a28ea44cab
53 changed files with 3525 additions and 731 deletions

View File

@@ -22,6 +22,13 @@
</resultMap>
<select id="selectVoPagePlus_COUNT" resultType="java.lang.Long">
SELECT COUNT(*)
FROM oa_project_schedule AS ops
LEFT JOIN sys_oa_project AS op ON ops.project_id = op.project_id
${ew.getCustomSqlSegment}
</select>
<select id="selectVoPagePlus" resultType="com.ruoyi.oa.domain.vo.OaProjectScheduleVo">
SELECT ops.schedule_id,
ops.project_id,
@@ -32,7 +39,6 @@
ops.status,
ops.steward,
ops.remark,
/* ======================== 项目信息 ==================== */
op.project_id AS opProjectId,
op.project_name,
op.project_num,
@@ -48,22 +54,33 @@
op.trade_type,
op.project_code,
op.pre_pay,
op.is_top AS isTop,
(SELECT COUNT(*) FROM oa_project_schedule_step opss
WHERE opss.schedule_id = ops.schedule_id AND opss.del_flag = '0') AS totalCount,
(SELECT COUNT(*) FROM oa_project_schedule_step opss
WHERE opss.schedule_id = ops.schedule_id AND opss.del_flag = '0' AND opss.status IN (0,1)) AS unFinishCount,
(SELECT COUNT(*) FROM oa_project_schedule_step opss
WHERE opss.schedule_id = ops.schedule_id AND opss.del_flag = '0'
AND (
opss.use_flag = 0
OR (opss.original_end_time IS NOT NULL AND opss.plan_end IS NOT NULL AND opss.plan_end > opss.original_end_time)
OR (opss.status = 0 AND opss.original_end_time IS NOT NULL AND CURDATE() > DATE(opss.original_end_time))
)
) AS delayCount
op.is_top AS isTop,
op.functionary AS header,
cs.step_name AS currentStepName,
IFNULL(agg.total_count, 0) AS totalCount,
IFNULL(agg.unfinish_count, 0) AS unFinishCount,
IFNULL(agg.delay_count, 0) AS delayCount,
IFNULL(agg.percent, 0) AS schedulePercentage
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 cs
ON cs.track_id = ops.current_step
LEFT JOIN (
SELECT
opss.schedule_id,
COUNT(*) AS total_count,
SUM(CASE WHEN opss.status IN (0,1) THEN 1 ELSE 0 END) AS unfinish_count,
SUM(CASE
WHEN opss.use_flag = 0
OR (opss.original_end_time IS NOT NULL AND opss.plan_end IS NOT NULL AND opss.plan_end > opss.original_end_time)
OR (opss.status = 0 AND opss.original_end_time IS NOT NULL AND CURDATE() > DATE(opss.original_end_time))
THEN 1 ELSE 0 END) AS delay_count,
ROUND(SUM(CASE WHEN opss.status = 2 THEN 1 ELSE 0 END) / COUNT(*) * 100, 1) AS percent
FROM oa_project_schedule_step opss
WHERE opss.del_flag = '0'
GROUP BY opss.schedule_id
) AS agg ON agg.schedule_id = ops.schedule_id
${ew.getCustomSqlSegment}
</select>

View File

@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT GROUP_CONCAT(CONCAT_WS('|', o.oss_id, COALESCE(o.original_name, o.file_name), o.url)
ORDER BY FIND_IN_SET(o.oss_id, r.accessory) SEPARATOR ',,')
FROM sys_oss o
WHERE r.accessory IS NOT NULL AND r.accessory <> ''
WHERE r.accessory IS NOT NULL AND r.accessory != ''
AND FIND_IN_SET(o.oss_id, r.accessory)
) AS accessory_files
FROM oa_requirements r
@@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT GROUP_CONCAT(CONCAT_WS('|', o.oss_id, COALESCE(o.original_name, o.file_name), o.url)
ORDER BY FIND_IN_SET(o.oss_id, r.accessory) SEPARATOR ',,')
FROM sys_oss o
WHERE r.accessory IS NOT NULL AND r.accessory <> ''
WHERE r.accessory IS NOT NULL AND r.accessory != ''
AND FIND_IN_SET(o.oss_id, r.accessory)
) AS accessory_files
FROM oa_requirements r

View File

@@ -29,6 +29,8 @@
<result property="itemCount" column="item_count"/>
<result property="totalQty" column="total_qty"/>
<result property="itemsSummary" column="items_summary"/>
<result property="receiptDoc" column="receipt_doc"/>
<result property="receiptFiles" column="receipt_files"/>
<collection property="warehouseList"
column="master_id"
@@ -56,6 +58,7 @@
sowm.sign_time,
sowm.sign_user,
sowm.remark,
sowm.receipt_doc,
sowm.status,
sowm.is_like,
sowm.requirement_id,
@@ -64,7 +67,14 @@
req.title AS requirementName,
agg.item_count,
agg.total_qty,
agg.items_summary
agg.items_summary,
(
SELECT GROUP_CONCAT(CONCAT_WS('|', o.oss_id, COALESCE(o.original_name, o.file_name), o.url)
ORDER BY FIND_IN_SET(o.oss_id, sowm.receipt_doc) SEPARATOR ',,')
FROM sys_oss o
WHERE sowm.receipt_doc IS NOT NULL AND sowm.receipt_doc != ''
AND FIND_IN_SET(o.oss_id, sowm.receipt_doc)
) AS receipt_files
FROM sys_oa_warehouse_master sowm
LEFT JOIN sys_oa_project sop ON sop.project_id = sowm.project_id
LEFT JOIN oa_requirements req ON req.requirement_id = sowm.requirement_id