From 9c4cb174ebc2c0fc56e87ab0a9e063fea48ba30c Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Thu, 18 Apr 2024 16:08:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E6=97=A5=E6=8A=A5?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=9F=A5=E8=AF=A2=E6=88=91=E7=9A=84=E6=97=A5?= =?UTF-8?q?=E6=8A=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/ProjectDailyController.java | 4 ++ .../java/com/jsl/oa/dao/ProjectDailyDAO.java | 39 +++++++++++++++++++ .../com/jsl/oa/mapper/ProjectDailyMapper.java | 7 ++++ .../jsl/oa/services/ProjectDailyService.java | 1 + .../impl/ProjectDailyServiceImpl.java | 11 ++++++ .../com/jsl/oa/mapper/ProjectDailyMapper.xml | 13 +++++++ 6 files changed, 75 insertions(+) diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index 9b4ccae..88d12ba 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -53,6 +53,10 @@ public class ProjectDailyController { } + @GetMapping("/daily/getMyDaily") + public BaseResponse getMyDaily(HttpServletRequest request) { + return projectDailyService.getMyDaily(request); + } } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java index a9264d2..ad6805d 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java @@ -4,11 +4,17 @@ package com.jsl.oa.dao; */ import com.jsl.oa.mapper.ProjectDailyMapper; +import com.jsl.oa.mapper.ProjectMapper; +import com.jsl.oa.model.dodata.ProjectDO; import com.jsl.oa.model.dodata.ProjectDailyDO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; /** @@ -26,6 +32,7 @@ import org.springframework.stereotype.Component; public class ProjectDailyDAO { private final ProjectDailyMapper projectDailyMapper; + private final ProjectMapper projectMapper; public void addProjectDaily(ProjectDailyDO projectDailyDO) { @@ -33,6 +40,38 @@ public class ProjectDailyDAO { } + public List getMyProjectDaily(Long userId) { + +// 日报数据数组 + List projectDailyDOList = new ArrayList<>(); + +// 先获取我负责的项目下的日报数据 + //获取我负责的项目 + List projectDOS = projectMapper.getAllProjectByUserId(userId); + //获取项目下对应日报 + for (ProjectDO projectDO:projectDOS) { + List dailyFromProject = projectDailyMapper.getProjectDailyByProject(projectDO.getId()); + projectDailyDOList.addAll(dailyFromProject); + } + +// 在获取本人的发布日报 + List myProjectDaily = projectDailyMapper.getProjectDailyByUser(userId); + projectDailyDOList.addAll(myProjectDaily); + +// 去除重复的日报信息 + projectDailyDOList = projectDailyDOList.stream() + // 根据 id 属性进行去重 + .collect(Collectors.toMap(ProjectDailyDO::getId, + Function.identity(), (existing, replacement) -> existing)) + .values().stream() + .collect(Collectors.toList()); + + return projectDailyDOList; + } + + + + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java index 0f9ddb6..3425a7e 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java @@ -4,6 +4,8 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.dodata.ProjectDailyDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 项目日报(ProjectDaily)表数据库访问层 @@ -16,6 +18,11 @@ public interface ProjectDailyMapper { void insert(ProjectDailyDO projectDailyDO); + + List getProjectDailyByUser(Long uid); + + List getProjectDailyByProject(Long pid); + } diff --git a/src/main/java/com/jsl/oa/services/ProjectDailyService.java b/src/main/java/com/jsl/oa/services/ProjectDailyService.java index b134f71..3d6fad9 100644 --- a/src/main/java/com/jsl/oa/services/ProjectDailyService.java +++ b/src/main/java/com/jsl/oa/services/ProjectDailyService.java @@ -20,6 +20,7 @@ public interface ProjectDailyService { BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request); + BaseResponse getMyDaily(HttpServletRequest request); } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java index 591bf7b..8194080 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.Date; +import java.util.List; /** *

日志服务层实现类

@@ -64,8 +65,18 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { return ResultUtil.success(); } + @Override + public BaseResponse getMyDaily(HttpServletRequest request) { +// 获取用户id + Long userId = Processing.getAuthHeaderToUserId(request); +// 获取 我发布的及自己负责的项目下 的日报 + List projectDailyDOList = + projectDailyDAO.getMyProjectDaily(userId); + return ResultUtil.success(projectDailyDOList); + + } } diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index eb7b246..bc48bd9 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -25,4 +25,17 @@ + + + + + \ No newline at end of file