From fef2ed6611583506335f5cf043ec4107a9922d2f Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Sun, 21 Jan 2024 12:56:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=86=E5=89=B2=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=BC=96=E8=BE=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ProjectController.java | 19 ++++++++++++ src/main/java/com/jsl/oa/dao/ProjectDAO.java | 15 ++++++++++ .../java/com/jsl/oa/mapper/ProjectMapper.java | 8 +++++ .../oa/model/voData/ProjectCuttingEditVO.java | 30 +++++++++++++++++++ .../com/jsl/oa/services/ProjectService.java | 3 ++ .../oa/services/impl/ProjectServiceImpl.java | 18 +++++++++++ src/main/java/com/jsl/oa/utils/ErrorCode.java | 4 +-- 7 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/voData/ProjectCuttingEditVO.java diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 68cfea5..309779e 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -1,6 +1,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.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; @@ -216,5 +217,23 @@ public class ProjectController { } + @PutMapping("/project/cut/edit") + public BaseResponse projectCuttingEdit(HttpServletRequest request, @RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO, @NotNull BindingResult bindingResult) { + log.info("请求接口[Put]: /project/cut/edit"); + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projectCuttingEdit(request, projectCuttingEditVO); + } + @PostMapping("") + public BaseResponse projectCuttingEdit(HttpServletRequest request, @RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO, @NotNull BindingResult bindingResult) { + log.info("请求接口[Put]: /project/cut/edit"); + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projectCuttingEdit(request, projectCuttingEditVO); + } } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 384d52b..3c9edb8 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -125,4 +125,19 @@ public class ProjectDAO { return false; }else {return true;} } + + public boolean updateProjectCutting(ProjectCuttingDO projectCuttingDO){ + log.info("\t> 执行 DAO 层 ProjectDAO.updateProjectCutting 方法"); + return projectMapper.projectCuttingUpdate(projectCuttingDO); + } + + public boolean isExistProjectCutting(Long id){ + log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectCutting 方法"); + if(projectMapper.getProjectCuttingById(id) == null){ + return false; + }else {return true;} + } + + + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index ab7bd77..e509302 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -51,4 +51,12 @@ public interface ProjectMapper { "VALUES (#{pid}, #{name}, #{tag}, #{realTime})") void projectCuttingAdd(ProjectCuttingDO projectCuttingDO); + @Update("UPDATE organize_oa.oa_project_cutting SET name = #{name}, " + + "tag = #{tag}, engineering = #{engineering}, estimated_time = #{estimatedTime}, " + + "real_time = #{realTime}, updated_at = CURRENT_TIMESTAMP WHERE id = #{id}") + boolean projectCuttingUpdate(ProjectCuttingDO projectCuttingDO); + + @Select("SELECT * FROM organize_oa.oa_project_cutting WHERE id = #{id}") + public ProjectCuttingDO getProjectCuttingById(Long id); + } diff --git a/src/main/java/com/jsl/oa/model/voData/ProjectCuttingEditVO.java b/src/main/java/com/jsl/oa/model/voData/ProjectCuttingEditVO.java new file mode 100644 index 0000000..9d3b067 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/ProjectCuttingEditVO.java @@ -0,0 +1,30 @@ +package com.jsl.oa.model.voData; + + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.sql.Timestamp; + +@Data +public class ProjectCuttingEditVO { + + @NotNull(message = "id不能为空") + private Long id; + @NotNull(message = "父id不能为空") + private Long pid; + @NotBlank(message = "模块名称不为空") + private String name; + private String tag; + @NotNull(message = "工程量计算不能为空") + private Short engineering; + @NotNull(message = "预估时间不能为空") + private Integer estimatedTime; + + private Integer realTime; + + +} + + diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 7ca8034..c04c89f 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -2,6 +2,7 @@ package com.jsl.oa.services; 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.business.info.ProjectShowVO; import com.jsl.oa.utils.BaseResponse; @@ -32,4 +33,6 @@ public interface ProjectService { BaseResponse projectDelete(HttpServletRequest request,Long id); BaseResponse projectCuttingAdd(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO); + + BaseResponse projectCuttingEdit(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO); } 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 a956265..1759a1a 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -8,6 +8,7 @@ import com.jsl.oa.model.doData.ProjectDO; 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.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; @@ -220,5 +221,22 @@ public class ProjectServiceImpl implements ProjectService { }else return ResultUtil.error(ErrorCode.NOT_ADMIN); } + @Override + public BaseResponse projectCuttingEdit(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) { + log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法"); + if(Processing.checkUserIsAdmin(request,roleMapper)) { + //赋值数据 + ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO(); + Processing.copyProperties(projectCuttingEditVO,projectCuttingDO); + //根据id检测项目模块是否存在 + if(!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())){ + return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST); + } + //向数据库添加数据 + projectDAO.updateProjectCutting(projectCuttingDO); + return ResultUtil.success(); + }else return ResultUtil.error(ErrorCode.NOT_ADMIN); + } + } diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index 8604517..68c6ff2 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -38,8 +38,8 @@ public enum ErrorCode { DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"), DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"), DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"), - PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"); - + PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"), + PROJECT_CUTTING_NOT_EXIST("ProjectCuttingNotExist", 40017, "项目分割模块不存在"); private final String output; private final Integer code; private final String message;