From 789eea8d49d4ed941223c87990ef917e3965e376 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Mon, 11 Mar 2024 19:04:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=90=E6=A8=A1=E5=9D=97/=E5=AD=90=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=9A=84=E6=9F=A5=E8=AF=A2=E5=92=8C=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ProjectController.java | 33 +++++++++++++- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 25 +++++++++++ .../java/com/jsl/oa/mapper/ProjectMapper.java | 22 +++++++++- .../com/jsl/oa/model/doData/ProjectDO.java | 4 +- .../com/jsl/oa/services/ProjectService.java | 5 +++ .../oa/services/impl/ProjectServiceImpl.java | 43 ++++++++++++++++++- .../com/jsl/oa/mapper/ProjectMapper.xml | 9 ++++ 7 files changed, 135 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 580d3a8..d60f3b5 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -3,6 +3,7 @@ package com.jsl.oa.controllers; import com.jsl.oa.model.voData.ProjectCuttingAddVO; import com.jsl.oa.model.voData.ProjectCuttingEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; @@ -54,6 +55,20 @@ public class ProjectController { return projectService.get(listAll,request,tags,isFinish); } + /** + * 子模块子系统的查询 + * + * @return + */ + @GetMapping("/project/work/get") + public BaseResponse projectWorkGet(@RequestParam(required = false) Integer listAll, + @RequestParam(required = false) List tags, + @RequestParam(required = false) Integer isFinish, + HttpServletRequest request) { + log.info("请求接口[GET]: /project/work/get"); + return projectService.workget(listAll, request, tags, isFinish); + } + /** * 单个项目的详细 * 项目轮播图 @@ -130,8 +145,6 @@ public class ProjectController { /** * 项目表进行,项目增加 * - * @param projectAdd - * @param bindingResult * @return */ @PostMapping("/project/add") @@ -144,6 +157,22 @@ public class ProjectController { return projectService.projectAdd(request, projectAdd); } + /** + * 子系统子模块的增加 + * @param request + * @param bindingResult + * @return + */ + @PostMapping("/project/work/add") + public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) { + log.info("请求接口[POST]: /project/work/add"); + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projecWorktAdd(request, projectWorkVO); + } + /** * 项目表进行,项目的修改 * diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index f635a2d..8a1afe1 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -5,8 +5,10 @@ import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectUserDO; +import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -29,7 +31,12 @@ public class ProjectDAO { log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法"); log.info("\t\t> 从 MySQL 获取数据"); projectMapper.projectAdd(projectAdd); + } + public void projectWorkAdd(ProjectWorkVO projectWorkVO) { + log.info("\t> 执行 DAO 层 ProjectDAO.projecWorktAdd 方法"); + log.info("\t\t> 从 MySQL 获取数据"); + projectMapper.projectWorkAdd(projectWorkVO); } public void projectEdit(ProjectInfoVO projectEdit) { @@ -121,6 +128,22 @@ public class ProjectDAO { } } + public List workget(Long userId, Integer listAll, List tags, Integer isFinish) { + log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法"); + log.info("\t\t> 从 MySQL 获取数据"); + if(isFinish != null){ + return projectMapper.workgetByIsfinish(userId,isFinish); + } + if(tags != null && !tags.isEmpty()){ + return projectMapper.workgetByTags(userId,tags); + } + if(listAll == 0) { + return projectMapper.workget(userId); + }else { + return projectMapper.workget1(userId); + } + } + public ProjectDO getByName(String name) { log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法"); log.info("\t\t> 从 MySQL 获取数据"); @@ -174,4 +197,6 @@ public class ProjectDAO { return projectMapper.updateUserForProjectUser(newUid,projectUserDO.getId()); } + + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 4ce6b46..b77ddff 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -3,7 +3,9 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectUserDO; +import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.Param; @@ -19,6 +21,11 @@ public interface ProjectMapper { ",#{completeTime},#{deadline},#{status},#{isFinish})") void projectAdd(ProjectInfoVO projectAdd); + @Insert("insert into organize_oa.oa_project_work (project_id, pid, name, principal_id," + + " work_load, description, cycle, complete_time, type, is_finish,status) " + + "value (#{projectId},#{pid},#{name},#{principalId},#{workLoad}," + + "#{description},#{cycle},#{completeTime},#{type},#{isFinish},#{status})") + void projectWorkAdd(ProjectWorkVO projectWorkVO); void projectEdit(ProjectInfoVO projectEdit); @@ -51,7 +58,7 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project where is_delete=false and status =1 and principal_id=#{userId}") List get(Long userId); - @Select("select * from organize_oa.oa_project where status =1 and status=1 and principal_id=#{userId}") + @Select("select * from organize_oa.oa_project where status =1 and is_delete =true and principal_id=#{userId}") List get1(Long userId); @Select("select * from organize_oa.oa_project where name=#{name}") @@ -77,4 +84,17 @@ public interface ProjectMapper { @Update("UPDATE organize_oa.oa_project_user SET uid = #{uid} , updated_at = CURRENT_TIMESTAMP WHERE id = #{id}") boolean updateUserForProjectUser(Long uid, Long id); + + @Select("select * from organize_oa.oa_project_work where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}") + List workgetByIsfinish(Long userId, Integer isFinish); + + List workgetByTags(Long userId, List tags); + + @Select("select * from organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId}") + List workget(Long userId); + + @Select("select * from organize_oa.oa_project_work where is_delete =true and status=1 and principal_id=#{userId}") + List workget1(Long userId); + + } diff --git a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java index 6f494d6..86f9194 100755 --- a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java +++ b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java @@ -26,8 +26,8 @@ public class ProjectDO { private String name; private String file; private String description; - private Integer is_delete; - private Integer is_finish; + private Integer isDelete; + private Integer isFinish; private boolean status; private Timestamp beginTime; private Timestamp completeTime; diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index ed29493..ab605a4 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -3,6 +3,7 @@ package com.jsl.oa.services; import com.jsl.oa.model.voData.ProjectCuttingAddVO; import com.jsl.oa.model.voData.ProjectCuttingEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.utils.BaseResponse; @@ -37,4 +38,8 @@ public interface ProjectService { BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO); BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid); + + BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, Integer isFinish); + + BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); } 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 3306c12..7d62050 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -6,11 +6,13 @@ import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; +import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.voData.ProjectCuttingAddVO; import com.jsl.oa.model.voData.ProjectCuttingEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; @@ -21,7 +23,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; import java.sql.Timestamp; @@ -56,6 +57,13 @@ public class ProjectServiceImpl implements ProjectService { } + @Override + public BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) { + log.info("\t> 执行 Service 层 ProjectService.projectWorkAdd 方法"); + projectDAO.projectWorkAdd(projectWorkVO); + return ResultUtil.success("添加成功"); + } + @Override @CheckUserHasPermission("project.edit") public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) { @@ -186,6 +194,7 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse get(Integer listAll, HttpServletRequest request, List tags, Integer isFinish) { log.info("\t> 执行 Service 层 ProjectService.get 方法"); + //获取用户 Long userId= Processing.getAuthHeaderToUserId(request); //根据状态查询 @@ -211,6 +220,36 @@ public class ProjectServiceImpl implements ProjectService { } + @Override + public BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, Integer isFinish) { + log.info("\t> 执行 Service 层 ProjectService.workget 方法"); + + //获取用户 + Long userId= Processing.getAuthHeaderToUserId(request); + //根据状态查询 + if(isFinish != null){ + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + } + //根据标签查询 + if(tags != null && !tags.isEmpty()){ + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + } + + //判断是否是老师(项目负责人) + if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){ + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + }else { + listAll = 0; + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + } + } + + + @Override public BaseResponse getByName(String name) { log.info("\t> 执行 Service 层 ProjectService.getByName 方法"); @@ -284,4 +323,6 @@ public class ProjectServiceImpl implements ProjectService { } + + } diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index f443087..f9a9685 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -56,4 +56,13 @@ + + \ No newline at end of file