From 84d3ccc5af2cbb653d7f17bed0fe98212a745fa8 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Wed, 17 Apr 2024 17:03:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=88=91=E8=B4=9F=E8=B4=A3=E6=88=91?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=88=91=E5=8F=82=E4=B8=8E=E7=9A=84=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=9F=A5=E8=AF=A2=E9=87=8D=E6=9E=84=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0,=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=95=B0=E6=8D=AE=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=88=AA=E6=AD=A2=E6=97=B6=E9=97=B4=E5=92=8C=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 3 + .../jsl/oa/controllers/ProjectController.java | 46 +++++++++++-- .../java/com/jsl/oa/mapper/ProjectMapper.java | 7 +- .../jsl/oa/model/vodata/ProjectInfoVO.java | 1 + .../jsl/oa/model/vodata/ProjectSimpleVO.java | 5 ++ .../com/jsl/oa/services/ProjectService.java | 10 ++- .../oa/services/impl/MessageServiceImpl.java | 16 ++--- .../oa/services/impl/ProjectServiceImpl.java | 65 ++++++++++++++++--- .../java/com/jsl/oa/utils/Processing.java | 3 + .../com/jsl/oa/mapper/ProjectMapper.xml | 7 +- src/main/resources/mysql/oa_project_child.sql | 2 + .../resources/mysql/oa_project_modules.sql | 2 + 12 files changed, 137 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index e9f3ab5..f13aa80 100755 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,7 @@ 1.8 true + org.springframework.boot @@ -166,10 +167,12 @@ timestamp-property + buildDate yyyy-MM-dd HH:mm:ss en_US GMT+8 + diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 2205185..1d8c89d 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -54,9 +54,9 @@ public class ProjectController { * @param id 要查询的 id * @return {@link BaseResponse} */ - @GetMapping("/project/getwork/id") - public BaseResponse projectWorkGetById(@RequestParam Integer id) { - return projectService.getWorkById(id); + @GetMapping("/project/module/id") + public BaseResponse projectModuleGetById(@RequestParam Integer id) { + return projectService.getModuleById(id); } /** @@ -110,7 +110,7 @@ public class ProjectController { * @return {@link BaseResponse} */ @GetMapping("/project/child/get") - public BaseResponse projectWorkGet( + public BaseResponse projectModuleGet( @RequestParam(required = false) List tags, @RequestParam(required = false) List isFinish, @RequestParam(required = false) Integer is, @@ -179,6 +179,42 @@ public class ProjectController { return projectService.projectEdit(request, projectEdit, projectId); } + + /** + * 获取我负责的项目 + * + * @param page 页数 + * @param pageSize 每页大小 + * @param request + * @return + */ + @GetMapping("/project/my/get") + public BaseResponse projectMyGet( + @RequestParam(required = false, defaultValue = "1") Integer page, + @RequestParam(required = false, defaultValue = "10") Integer pageSize, + HttpServletRequest request) { + return projectService.getPrincipalProject(page, pageSize, request); + } + + /** + * + * 获取我参与的项目 + * + * @param page 页数 + * @param pageSize 每页大小 + * @param request + * @return + */ + @GetMapping("/project/participate/get") +public BaseResponse projectParticipateGet( + @RequestParam(required = false, defaultValue = "1") Integer page, + @RequestParam(required = false, defaultValue = "10") Integer pageSize, + HttpServletRequest request) { + return projectService.getParticipateProject(page, pageSize, request); + } + + + /** * 子系统子模块的增加 * @@ -219,7 +255,7 @@ public class ProjectController { if (bindingResult.hasErrors()) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); } - return ResultUtil.success(projectService.projectAdd(request, projectInfoVO)); + return projectService.projectAdd(request, projectInfoVO); } /** diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index d365d14..82222a9 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -108,7 +108,7 @@ public interface ProjectMapper { List getMemberBySystemId(Integer id); @Select("select * from organize_oa.oa_project_modules " - + "where DATE(deadline) = DATE(#{threeDayLater}) and status = 0") + + "where DATE(dead_line) = DATE(#{threeDayLater}) and status != 'complete' ") List getProjectWorkByTime(LocalDateTime threeDayLater); @@ -126,11 +126,14 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project_child where " - + "DATE (created_at) = DATE (#{threeDaysLater}) ") + + "DATE (dead_line) = DATE (#{threeDaysLater}) and status != 'complete' ") List getProjectChildByTime(LocalDateTime threeDaysLater); @Select("select * from organize_oa.oa_project_child where " + "id = #{id} and is_delete = 0") ProjectChildDO getProjectChildById(Integer id); + + + List getParticipateProject(Long userId); } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectInfoVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectInfoVO.java index 2adf8ec..cad4a8b 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectInfoVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectInfoVO.java @@ -23,6 +23,7 @@ public class ProjectInfoVO { private String files; private Timestamp beginTime; private Timestamp completeTime; + @NotNull(message = "截止时间不能为空") private Timestamp deadLine; private String status; diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectSimpleVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectSimpleVO.java index f2d9d88..2f933d0 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectSimpleVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectSimpleVO.java @@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import lombok.experimental.Accessors; +import java.sql.Date; + @Data @Accessors(chain = true) @JsonInclude(JsonInclude.Include.NON_NULL) @@ -14,5 +16,8 @@ public class ProjectSimpleVO { private Long cycle; private Long workLoad; private Long id; + private String files; + private String status; + private Date deadLine; private String tags; } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 5e333bb..4066006 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -41,9 +41,9 @@ public interface ProjectService { BaseResponse projectFileGet(HttpServletRequest request, Long projectId); - BaseResponse getById(Integer id); + BaseResponse getProjectModuleById(Integer id); - BaseResponse getWorkById(Integer id); + BaseResponse getModuleById(Integer id); BaseResponse projectPrincipalGet(); @@ -57,4 +57,10 @@ public interface ProjectService { * @return 根据用户所属角色组的不同返回不同的内容 */ BaseResponse getProjectById(HttpServletRequest request, Long projectId); + + BaseResponse getById(Integer id); + + BaseResponse getPrincipalProject(Integer page, Integer pageSize, HttpServletRequest request); + + BaseResponse getParticipateProject(Integer page, Integer pageSize, HttpServletRequest request); } diff --git a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java index 59c4bcb..e102af1 100644 --- a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java @@ -1,4 +1,6 @@ package com.jsl.oa.services.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.MessageMapper; import com.jsl.oa.mapper.ProjectMapper; @@ -7,7 +9,6 @@ import com.jsl.oa.model.dodata.ProjectChildDO; import com.jsl.oa.model.dodata.ProjectModuleDO; import com.jsl.oa.model.vodata.MessageAddVO; import com.jsl.oa.model.vodata.MessageGetVO; -import com.jsl.oa.model.vodata.PageBean; import com.jsl.oa.services.MessageService; import com.jsl.oa.utils.*; import lombok.RequiredArgsConstructor; @@ -67,6 +68,7 @@ public class MessageServiceImpl implements MessageService { endTime = LocalDateTime.now(); beginTime = endTime.minusDays(30); } + PageHelper.startPage(page, pageSize); List messageDOList = messageMapper.page(beginTime, endTime, uid); //封装返回数据 List messageGetVOList = new ArrayList<>(); @@ -89,16 +91,8 @@ public class MessageServiceImpl implements MessageService { } //分页返回 - int start = (page - 1) * pageSize; - int end = start + pageSize; - List pageData = messageGetVOList.subList(start, - Math.min(end, messageGetVOList.size())); - PageBean pageBean = new PageBean<>(); - pageBean.setTotalCount(messageGetVOList.size()); - pageBean.setCurrentPage(page); - pageBean.setPageSize(pageSize); - pageBean.setList(pageData); - return ResultUtil.success(pageBean); + PageInfo pageInfo = new PageInfo<>(messageGetVOList); + return ResultUtil.success(pageInfo); } /** diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index f57a39f..8557a22 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -3,6 +3,8 @@ package com.jsl.oa.services.impl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.RoleDAO; @@ -54,10 +56,15 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) { + // 判断权限 + if (!Processing.checkUserIsPrincipal(request, roleDAO)) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } + if (projectAdd.getDescription().isEmpty()) { projectAdd.setDescription("{}"); } else { - projectAdd.setDescription("{\"description\":\" " + projectAdd.getDescription() + "\"}"); + projectAdd.setDescription("{\"描述\":\" " + projectAdd.getDescription() + "\"}"); } String tags = projectAdd.getTags(); String[] split = tags.split(","); @@ -147,6 +154,11 @@ public class ProjectServiceImpl implements ProjectService { } + @Override + public BaseResponse getProjectModuleById(Integer id) { + return null; + } + @Override public BaseResponse getById(Integer id) { ProjectDO projectDO = projectMapper.tgetProjectById(id); @@ -154,7 +166,45 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public BaseResponse getWorkById(Integer id) { + public BaseResponse getPrincipalProject(Integer page, Integer pageSize, HttpServletRequest request) { + //获取用户id + Long userId = Processing.getAuthHeaderToUserId(request); + + PageHelper.startPage(page, pageSize); + List projectDOList = projectDAO.get(userId, null, null); + + List projectSimpleVOList = new ArrayList<>(); + for (ProjectDO projectDO : projectDOList) { + ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO(); + Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper); + projectSimpleVOList.add(projectSimpleVO1); + } + //分页返回 + PageInfo pageInfo = new PageInfo<>(projectSimpleVOList); + return ResultUtil.success(pageInfo); + } + + @Override + public BaseResponse getParticipateProject(Integer page, Integer pageSize, HttpServletRequest request) { + //获取用户id + Long userId = Processing.getAuthHeaderToUserId(request); + + PageHelper.startPage(page, pageSize); + List projectDOList = projectMapper.getParticipateProject(userId); + + List projectSimpleVOList = new ArrayList<>(); + for (ProjectDO projectDO : projectDOList) { + ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO(); + Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper); + projectSimpleVOList.add(projectSimpleVO1); + } + //分页返回 + PageInfo pageInfo = new PageInfo<>(projectSimpleVOList); + return ResultUtil.success(pageInfo); + } + + @Override + public BaseResponse getModuleById(Integer id) { ProjectWorkSimpleVO projectWorkSimpleVO = projectMapper.getWorkById(id); projectWorkSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername()); @@ -312,9 +362,10 @@ public class ProjectServiceImpl implements ProjectService { Integer page, Integer pageSize ) { - //获取用户 + //获取用户id Long userId = Processing.getAuthHeaderToUserId(request); + PageHelper.startPage(page, pageSize); List projectDOList = projectDAO.workget(userId, tags, isFinish, is); List projectSimpleVOList = new ArrayList<>(); for (ProjectDO projectDO : projectDOList) { @@ -323,12 +374,8 @@ public class ProjectServiceImpl implements ProjectService { projectSimpleVOList.add(projectSimpleVO1); } //分页返回 - int start = (page - 1) * pageSize; - int end = start + pageSize; - List pageData = projectSimpleVOList.subList(start, - Math.min(end, projectSimpleVOList.size())); - - return ResultUtil.success(pageData); + PageInfo pageInfo = new PageInfo<>(projectSimpleVOList); + return ResultUtil.success(pageInfo); } diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java index 11b3f90..35e2009 100755 --- a/src/main/java/com/jsl/oa/utils/Processing.java +++ b/src/main/java/com/jsl/oa/utils/Processing.java @@ -341,6 +341,9 @@ public class Processing { projectSimpleVO.setTags(projectDO.getTags()); projectSimpleVO.setCycle(projectDO.getCycle().longValue()); projectSimpleVO.setWorkLoad(projectDO.getWorkLoad().longValue()); + projectSimpleVO.setFiles(projectDO.getFiles()); + projectSimpleVO.setStatus(projectDO.getStatus()); + projectSimpleVO.setDeadLine(projectDO.getDeadline()); projectSimpleVO.setPrincipalUser(userDAO.getUserById(projectDO.getPrincipalId()).getUsername()); // 解析JSON字符串 JsonNode rootNode = null; diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index b6d4b88..e2e6b03 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -151,7 +151,12 @@ #{Finish} - + \ No newline at end of file diff --git a/src/main/resources/mysql/oa_project_child.sql b/src/main/resources/mysql/oa_project_child.sql index df9aeba..c750c63 100644 --- a/src/main/resources/mysql/oa_project_child.sql +++ b/src/main/resources/mysql/oa_project_child.sql @@ -13,6 +13,8 @@ create table oa_project_child created_at timestamp default CURRENT_TIMESTAMP not null comment '创建时间', updated_at timestamp null comment '更新时间', is_delete tinyint(1) default 0 not null comment '项目是否删除', + dead_line timestamp not null comment '子系统的截止时间', + status varchar(8) default 'progress' not null comment '系统状态(draft: 草稿,progress: 进行,pause: 暂停,abnormal: 异常,complete: 完成)', constraint oa_project_child_oa_user_id_fk foreign key (principal_id) references oa_user (id) on update cascade diff --git a/src/main/resources/mysql/oa_project_modules.sql b/src/main/resources/mysql/oa_project_modules.sql index 34ee475..f8b3cc0 100644 --- a/src/main/resources/mysql/oa_project_modules.sql +++ b/src/main/resources/mysql/oa_project_modules.sql @@ -11,6 +11,8 @@ create table oa_project_modules created_at timestamp default CURRENT_TIMESTAMP not null comment '创建时间', updated_at timestamp null comment '更新时间', is_delete tinyint(1) default 0 not null comment '项目是否删除', + dead_line timestamp not null comment '子模块的截止时间', + status varchar(8) default 'progress' not null comment '模块状态(draft: 草稿,progress: 进行,pause: 暂停,abnormal: 异常,complete: 完成)', constraint oa_project_modules_oa_user_id_fk foreign key (principal_id) references oa_user (id) on update cascade