feat(项目看板): 新增项目综合看板功能
新增项目综合看板功能,聚合展示项目、任务、进度主表和步骤数据
- 新增后端聚合接口 GET /oa/project/dashboard/{projectId}
- 新增前端看板页面,包含项目列表、任务表格和进度导图
- 优化思维导图组件,支持看板模式下的紧凑展示
- 新增进度明细表格视图和状态图例
- 实现任务与进度步骤的关联展示
- 添加项目模糊搜索功能
This commit is contained in:
@@ -204,8 +204,8 @@
|
||||
status,
|
||||
header
|
||||
from oa_project_schedule_step opss
|
||||
WHERE schedule_id = #{scheduleId}
|
||||
AND step_order = #{currentStep}
|
||||
WHERE opss.schedule_id = #{scheduleId}
|
||||
AND opss.step_order = #{currentStep}
|
||||
and use_flag = '1'
|
||||
AND del_flag = '0'
|
||||
</select>
|
||||
@@ -258,5 +258,29 @@
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<!--
|
||||
综合看板:按 schedule_id 查询步骤列表
|
||||
要求:
|
||||
- 删除 del_flag(表无该字段)
|
||||
- 不使用 opss.* 前缀(不定义别名)
|
||||
- 仅保留 WHERE schedule_id = #{scheduleId}
|
||||
-->
|
||||
<select id="selectProjectScheduleStepList"
|
||||
parameterType="com.ruoyi.oa.domain.OaProjectScheduleStep"
|
||||
resultMap="OaProjectScheduleStepResult">
|
||||
SELECT
|
||||
track_id, accessory, schedule_id, step_order, step_name,
|
||||
plan_start, plan_end, actual_start, actual_end, status,
|
||||
header, use_flag, batch_id, tab_node,
|
||||
first_level_node, second_level_node,
|
||||
start_time, original_end_time, end_time,
|
||||
node_header, related_docs, related_images,
|
||||
specification, sort_num, supplier_id,
|
||||
requirement_file, other,
|
||||
create_by, create_time, update_by, update_time
|
||||
FROM oa_project_schedule_step
|
||||
WHERE schedule_id = #{scheduleId}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -474,6 +474,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 综合看板:LEFT JOIN 进度步骤 del_flag=0、use_flag=1(与步骤表一致即可展示,不再依赖进度主表 project 联表) -->
|
||||
<select id="selectDashboardTasksByProjectId" resultType="com.ruoyi.oa.domain.vo.SysOaTaskVo">
|
||||
SELECT
|
||||
sot.task_id AS taskId,
|
||||
sot.project_id AS projectId,
|
||||
sop.project_code AS projectCode,
|
||||
sot.task_title AS taskTitle,
|
||||
sot.task_type AS taskType,
|
||||
sot.task_grade AS taskGrade,
|
||||
su1.nick_name AS createUserNickName,
|
||||
su2.nick_name AS workerNickName,
|
||||
sot.state AS state,
|
||||
sot.finish_time AS finishTime,
|
||||
sot.track_id AS trackId,
|
||||
opss.tab_node AS tabNode,
|
||||
opss.first_level_node AS firstLevelNode,
|
||||
opss.second_level_node AS secondLevelNode,
|
||||
opss.step_name AS scheduleStepName,
|
||||
opss.status AS scheduleStatus,
|
||||
opss.plan_start AS schedulePlanStart,
|
||||
opss.plan_end AS schedulePlanEnd,
|
||||
opss.header AS scheduleHeader
|
||||
FROM sys_oa_task sot
|
||||
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
||||
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
|
||||
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
|
||||
LEFT JOIN oa_project_schedule_step opss
|
||||
ON opss.track_id = sot.track_id
|
||||
AND opss.del_flag = '0'
|
||||
AND opss.use_flag = 1
|
||||
WHERE sot.project_id = #{projectId}
|
||||
AND sot.del_flag = '0'
|
||||
ORDER BY sot.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="queryListPlus" parameterType="com.ruoyi.oa.domain.bo.SysOaTaskBo" resultType="com.ruoyi.oa.domain.vo.SysOaTaskVo">
|
||||
SELECT
|
||||
task_id AS taskId,
|
||||
|
||||
Reference in New Issue
Block a user