From 0516e8dce4ee881a3438861b58060e9171764216 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Wed, 17 Apr 2024 15:20:10 +0800 Subject: [PATCH 1/4] =?UTF-8?q?perf(=E9=85=8D=E7=BD=AE):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=90=AF=E5=8A=A8=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加启动项 wyj 配置文件 --- .run/wyj [clean,spring-boot_run].run.xml | 48 ++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .run/wyj [clean,spring-boot_run].run.xml diff --git a/.run/wyj [clean,spring-boot_run].run.xml b/.run/wyj [clean,spring-boot_run].run.xml new file mode 100644 index 0000000..10d05bd --- /dev/null +++ b/.run/wyj [clean,spring-boot_run].run.xml @@ -0,0 +1,48 @@ + + + + + + + + + \ No newline at end of file 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 2/4] =?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 From d2dc0527ab6a6f3d3552ed57b806bca58b07e094 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Wed, 17 Apr 2024 20:30:31 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=E6=9F=A5=E8=AF=A2=E5=AD=90=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=EF=BC=8C=E5=88=A0=E9=99=A4=E5=AD=90=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=AD=90=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ProjectController.java | 30 ++++++++++ .../java/com/jsl/oa/mapper/ModuleMapper.java | 7 ++- .../java/com/jsl/oa/mapper/ProjectMapper.java | 19 +++++-- .../model/vodata/ProjectModuleSimpleVO.java | 21 +++++++ .../oa/model/vodata/ProjectWorkSimpleVO.java | 4 +- .../com/jsl/oa/services/ProjectService.java | 4 ++ .../oa/services/impl/ModuleServiceImpl.java | 3 +- .../oa/services/impl/ProjectServiceImpl.java | 55 ++++++++++++++++--- .../com/jsl/oa/mapper/ModuleMapper.xml | 10 ++-- .../com/jsl/oa/mapper/ProjectMapper.xml | 8 +++ 10 files changed, 138 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 1d8c89d..308a453 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -51,6 +51,8 @@ public class ProjectController { /** + * 获取子模块详细 + * * @param id 要查询的 id * @return {@link BaseResponse} */ @@ -292,4 +294,32 @@ public BaseResponse projectParticipateGet( } + /** + * 删除子系统 + * + * @param id + * @param request + * @return + */ + @DeleteMapping("/project/child/delete") + public BaseResponse projectChildDelete( + @RequestParam List id, + HttpServletRequest request) { + if (id == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectChildDelete(request, id); + } + + @DeleteMapping("/project/module/delete") + public BaseResponse projectModuleDelete( + @RequestParam List id, + HttpServletRequest request) { + if (id == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectModuleDelete(request, id); + } + + } diff --git a/src/main/java/com/jsl/oa/mapper/ModuleMapper.java b/src/main/java/com/jsl/oa/mapper/ModuleMapper.java index 4e5eee1..11097e0 100644 --- a/src/main/java/com/jsl/oa/mapper/ModuleMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ModuleMapper.java @@ -1,5 +1,6 @@ package com.jsl.oa.mapper; +import com.jsl.oa.model.dodata.ProjectChildDO; import com.jsl.oa.model.dodata.ProjectModuleDO; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; @@ -12,14 +13,14 @@ public interface ModuleMapper { - List getByProjectId(Integer projectId, Long userId, int is); + List getByProjectId(Integer projectId, Long userId, int is); List getBySysId(Integer sysId, Long userId, int is); @Select("select principal_id from organize_oa.oa_project where id=#{projectId}") Long getPidByProjectid(Integer projectId); - @Select("select principal_id from organize_oa.oa_project_work where id=#{sysId}") + @Select("select principal_id from organize_oa.oa_project_child where id=#{sysId}") Long getPidBySysid(Integer sysId); @Delete("DELETE FROM organize_oa.oa_project_work WHERE id = #{id}") @@ -29,6 +30,6 @@ public interface ModuleMapper { List getAllMoudleByPid(Long id); @Select("select principal_id from organize_oa.oa_project where id=(select project_id " - + "from organize_oa.oa_project_work where oa_project_work.id = #{sysId})") + + "from organize_oa.oa_project_child where id = #{sysId})") Long getPridBySysyid(Integer sysId); } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 82222a9..e6d35b3 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -90,14 +90,19 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project_modules where id=#{id}") ProjectModuleDO getModuleById(Integer id); - @Select("select principal_id from organize_oa.oa_project_work where id=#{pid}") - Long getPirIdbyWorkid(Long pid); + @Select("select principal_id from organize_oa.oa_project where id=" + + "(select project_id from organize_oa.oa_project_child where id=#{id})") + Long getPirIdbyId(Long id); - @Select("select principal_id from organize_oa.oa_project_modules where project_child_id=#{id} " - + "AND is_delete = 0") + @Select("select principal_id from organize_oa.oa_project_child where id=" + + "(select project_child_id from organize_oa.oa_project_modules where id=#{id})") + Long getPirTdByModuleId(Long id); + + + @Select("select principal_id from organize_oa.oa_project_modules where id=#{id} ") Long getPid(Integer id); - @Select("select * from organize_oa.oa_project_work where id=#{id} " + @Select("select * from organize_oa.oa_project_child where id=#{id} " + "AND is_delete = 0") ProjectModuleDO getProjectWorkById(Long id); @@ -136,4 +141,8 @@ public interface ProjectMapper { List getParticipateProject(Long userId); + + void deleteProjectChild(Long id1); + + void deleteProjectModule(Long id1); } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java new file mode 100644 index 0000000..0871346 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectModuleSimpleVO.java @@ -0,0 +1,21 @@ +package com.jsl.oa.model.vodata; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProjectModuleSimpleVO { + private String name; + private String description; + private Integer workLoad; + private Timestamp deadLine; + private String status; + private String principalUser; + +} diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java index 15055ff..0f08cb3 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectWorkSimpleVO.java @@ -13,14 +13,14 @@ public class ProjectWorkSimpleVO { private String name; private Long principalId; private String principalUser; - private Integer isFinish; private String description; private Long cycle; private Long projectId; private Long workLoad; private Long id; private String tags; - private Integer status; + private String status; + private Timestamp deadLine; 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 4066006..f70398a 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -63,4 +63,8 @@ public interface ProjectService { BaseResponse getPrincipalProject(Integer page, Integer pageSize, HttpServletRequest request); BaseResponse getParticipateProject(Integer page, Integer pageSize, HttpServletRequest request); + + BaseResponse projectChildDelete(HttpServletRequest request, List id); + + BaseResponse projectModuleDelete(HttpServletRequest request, List id); } diff --git a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java index 7ac2e7a..5d5dba3 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -4,6 +4,7 @@ import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.ModuleMapper; +import com.jsl.oa.model.dodata.ProjectChildDO; import com.jsl.oa.model.dodata.ProjectModuleDO; import com.jsl.oa.model.vodata.ProjectWorkAndNameVO; import com.jsl.oa.services.ModuleService; @@ -42,7 +43,7 @@ public class ModuleServiceImpl implements ModuleService { is = 0; } - List projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is); + List projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is); return ResultUtil.success(projectWorkDOList); } 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 8557a22..722f1b8 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -12,10 +12,12 @@ import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.model.dodata.ProjectDO; +import com.jsl.oa.model.dodata.ProjectModuleDO; import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.dodata.info.ProjectShowDO; import com.jsl.oa.model.vodata.*; import com.jsl.oa.model.vodata.business.info.ProjectShowVO; +import com.jsl.oa.services.MessageService; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; @@ -32,6 +34,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import static java.lang.System.*; + /** *

项目服务层实现类

*
@@ -53,6 +57,7 @@ public class ProjectServiceImpl implements ProjectService { private final UserDAO userDAO; private final ObjectMapper objectMapper; private final RoleDAO roleDAO; + private final MessageService messageService; @Override public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) { @@ -99,7 +104,7 @@ public class ProjectServiceImpl implements ProjectService { } } else { //是否是子系统的负责人 - if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) { + if (Objects.equals(userId, projectMapper.getPirIdbyId(projectWorkVO.getPid()))) { projectDAO.projectWorkAdd(projectWorkVO); } else { return ResultUtil.error(ErrorCode.NOT_PERMISSION); @@ -204,10 +209,41 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public BaseResponse getModuleById(Integer id) { - ProjectWorkSimpleVO projectWorkSimpleVO = projectMapper.getWorkById(id); + public BaseResponse projectChildDelete(HttpServletRequest request, List id) { + //判断是否是项目负责人 + for (Long id1 : id) { + if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirIdbyId(id1))) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } else { + projectMapper.deleteProjectChild(id1); + } + } + return ResultUtil.success(); + } - projectWorkSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername()); + + @Override + public BaseResponse projectModuleDelete(HttpServletRequest request, List id) { + //判断是否是子系统负责人 + for (Long id1 : id) { + if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirTdByModuleId(id1))) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } else { + Integer projectChildId = projectMapper.getModuleById(id1.intValue()).getProjectChildId().intValue(); + out.println(projectChildId); + Integer projectId = projectMapper.getWorkById(projectChildId).getProjectId().intValue(); + out.println(projectId); + projectMapper.deleteProjectModule(id1); + messageService.messageAdd(projectId, projectChildId, id1.intValue(), 1, request); + + } + } + return ResultUtil.success(); + } + + @Override + public BaseResponse getModuleById(Integer id) { + ProjectModuleDO projectWorkSimpleVO = projectMapper.getModuleById(id); // 解析JSON字符串 JsonNode rootNode; try { @@ -222,7 +258,12 @@ public class ProjectServiceImpl implements ProjectService { } catch (JsonProcessingException ignored) { } - return ResultUtil.success(projectWorkSimpleVO); + ProjectModuleSimpleVO projectModuleSimpleVO = new ProjectModuleSimpleVO(); + projectModuleSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername()); + out.println("准备拷贝"); + Processing.copyProperties(projectWorkSimpleVO, projectModuleSimpleVO); + out.println("拷贝wan"); + return ResultUtil.success(projectModuleSimpleVO); } @Override @@ -297,7 +338,7 @@ public class ProjectServiceImpl implements ProjectService { .setStatus(projectShowVO.getStatus()) .setIsActive(projectShowVO.getIsActive()) .setAuthor(userDO.getUsername()) - .setCreatedAt(new Timestamp(System.currentTimeMillis()).toString()); + .setCreatedAt(new Timestamp(currentTimeMillis()).toString()); projectShowDO.getData().add(projectShow); // 保存展示 if (projectDAO.setProjectShow(projectShowDO)) { @@ -344,7 +385,7 @@ public class ProjectServiceImpl implements ProjectService { .setStatus(projectShowVO.getStatus()) .setIsActive(projectShowVO.getIsActive()) .setAuthor(userDO.getUsername()) - .setUpdatedAt(new Timestamp(System.currentTimeMillis()).toString()); + .setUpdatedAt(new Timestamp(currentTimeMillis()).toString()); // 保存展示信息 if (projectDAO.setProjectShow(projectShowDO)) { return ResultUtil.success(); diff --git a/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml b/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml index 7e2f098..a268480 100644 --- a/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ModuleMapper.xml @@ -5,17 +5,17 @@ - + select * from organize_oa.oa_project_child where project_id=#{projectId} - and (principal_id=#{userId} or principal_id is null) + and (principal_id=#{userId}) \ No newline at end of file diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index e2e6b03..33e4bbf 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -47,6 +47,14 @@ where id = #{id} + + update organize_oa.oa_project_child set is_delete=true where id=#{id1} + + + + update organize_oa.oa_project_modules set is_delete=true where id=#{id1} + +