后端任务关联相关

This commit is contained in:
jhd
2026-07-02 10:30:49 +08:00
parent 5790f7e9ec
commit b2a9a117bc
7 changed files with 60 additions and 0 deletions

View File

@@ -83,6 +83,22 @@ public class SysOaTaskController extends BaseController {
return R.ok(iSysOaTaskService.listDocumentProject(projectId));
}
/**
* 按总包项目+阶段查询任务
*/
@GetMapping("/rm/tasks")
public R<List<SysOaTaskVo>> listByRmProject(@RequestParam Long projectId, @RequestParam(required = false) String stageCode) {
return R.ok(iSysOaTaskService.queryByRmProject(projectId, stageCode));
}
/**
* 按总包项目统计各阶段任务数
*/
@GetMapping("/rm/taskCount")
public R<List<java.util.Map<String, Object>>> taskCountByStage(@RequestParam Long projectId) {
return R.ok(iSysOaTaskService.countByRmProjectStage(projectId));
}
/**
* 导出任务管理列表
*/

View File

@@ -34,6 +34,10 @@ public class SysOaTask extends BaseEntity {
* 项目ID
*/
private Long projectId;
/**
* 阶段编码
*/
private String stageCode;
/**
* 任务主题
*/

View File

@@ -37,6 +37,11 @@ public class SysOaTaskBo extends BaseEntity {
*/
private Long projectId;
/**
* 阶段编码
*/
private String stageCode;
/**
* 任务主题
*/

View File

@@ -38,6 +38,11 @@ public class SysOaTaskVo {
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 阶段编码
*/
private String stageCode;
/**
* 任务主题
*/

View File

@@ -11,6 +11,7 @@ import com.ruoyi.oa.domain.vo.SysOaTaskItemVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Date;
import java.util.List;
@@ -61,6 +62,12 @@ public interface SysOaTaskMapper extends BaseMapperPlus<SysOaTaskMapper, SysOaTa
*/
List<SysOaTaskItemVo> selectTaskItemsByTaskId(Long taskId);
/**
* 按总包项目统计各阶段任务数
*/
@Select("SELECT stage_code AS stageCode, COUNT(*) AS taskCount FROM sys_oa_task WHERE project_id = #{projectId} AND del_flag = 0 GROUP BY stage_code")
List<java.util.Map<String, Object>> countByRmProjectStage(@Param("projectId") Long projectId);
/**
* 绩效报告:按用户 + 时间范围查询任务明细(包含 task_item 子项)
*/

View File

@@ -128,4 +128,13 @@ public interface ISysOaTaskService {
*/
List<SysOaTask> getTasksByNicknameAndProjectIds(String nickName, List<Long> projectIds, Date startTime,Date endTime);
/**
* 按总包项目+阶段查询任务
*/
List<SysOaTaskVo> queryByRmProject(Long projectId, String stageCode);
/**
* 按总包项目统计各阶段任务数
*/
List<java.util.Map<String, Object>> countByRmProjectStage(Long projectId);
}

View File

@@ -159,6 +159,20 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
return baseMapper.queryListPlus(bo);
}
@Override
public List<java.util.Map<String, Object>> countByRmProjectStage(Long projectId) {
return baseMapper.countByRmProjectStage(projectId);
}
@Override
public List<SysOaTaskVo> queryByRmProject(Long projectId, String stageCode) {
return baseMapper.selectVoList(
Wrappers.<SysOaTask>lambdaQuery()
.eq(SysOaTask::getProjectId, projectId)
.eq(stageCode != null, SysOaTask::getStageCode, stageCode)
.orderByAsc(SysOaTask::getCreateTime));
}
private QueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) {
Map<String, Object> params = bo.getParams();