diff --git a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java index d6a2f93..be85ec6 100644 --- a/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectDailyController.java @@ -3,6 +3,7 @@ package com.jsl.oa.controllers; import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.model.vodata.ProjectDailyAddVO; +import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.services.ProjectDailyService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; @@ -55,6 +56,19 @@ public class ProjectDailyController { return projectDailyService.addDaily(projectDailyAddVO, request); } + @PutMapping("/daily/update") + public BaseResponse updateDaily(@RequestBody @Validated ProjectDailyUpdateVO projectDailyUpdateVO, + @NotNull BindingResult bindingResult, + HttpServletRequest request) { + + log.info("请求接口[PUT]: /daily/update"); + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + + return projectDailyService.updateDaily(projectDailyUpdateVO, request); + } @DeleteMapping("/daily/delete") @NeedPermission("project:daily:delete") diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 32a597a..c7762f1 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -209,4 +209,5 @@ public class ProjectDAO { return projectMapper.getAllModuleByUserId(uid); } + } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java index 1f94987..bece262 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java @@ -115,6 +115,15 @@ public class ProjectDailyDAO { public void deleteDailyById(Integer dailyId) { projectDailyMapper.deleteDailyById(dailyId); } + + public ProjectDailyDO getPorjectDailyById(Integer id) { + return projectDailyMapper.getDailyById(id); + } + + public void updateDaily(ProjectDailyDO projectDailyDO) { + projectDailyMapper.updateDaily(projectDailyDO); + } + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java index 69909bc..7526e78 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java @@ -31,6 +31,8 @@ public interface ProjectDailyMapper { ProjectDailyDO getDailyById(Integer id); void deleteDailyById(Integer id); + + void updateDaily(ProjectDailyDO projectDailyDO); } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 510a65b..987a272 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -167,4 +167,5 @@ public interface ProjectMapper { + "(select id from organize_oa.oa_project_child where name =#{childName} " + "and project_id = (select id from organize_oa.oa_project where name =#{projectName}))") List getModuleByName(String projectName, String childName); + } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java index 3b0a891..ff63d98 100644 --- a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java @@ -6,7 +6,6 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import java.util.Date; @Data @@ -20,7 +19,7 @@ public class ProjectDailyAddVO { @NotNull(message = "工作时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date dailyTime; + private String dailyTime; } diff --git a/src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java new file mode 100644 index 0000000..c8b21cf --- /dev/null +++ b/src/main/java/com/jsl/oa/model/vodata/ProjectDailyUpdateVO.java @@ -0,0 +1,29 @@ +package com.jsl.oa.model.vodata; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ProjectDailyUpdateVO { + + + @NotNull(message = "日报id不能为空") + private Integer id; + + @NotNull(message = "日报所属项目id不能为空") + private Integer projectId; + + @NotBlank(message = "日报内容不能为空") + private String content; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String dailyTime; + + +} + + diff --git a/src/main/java/com/jsl/oa/services/ProjectDailyService.java b/src/main/java/com/jsl/oa/services/ProjectDailyService.java index d7e12d6..776f069 100644 --- a/src/main/java/com/jsl/oa/services/ProjectDailyService.java +++ b/src/main/java/com/jsl/oa/services/ProjectDailyService.java @@ -3,6 +3,7 @@ package com.jsl.oa.services; import com.jsl.oa.model.vodata.ProjectDailyAddVO; +import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.utils.BaseResponse; import javax.servlet.http.HttpServletRequest; @@ -30,6 +31,8 @@ public interface ProjectDailyService { HttpServletRequest request); BaseResponse deleteDaily(Integer dailyId, HttpServletRequest request); + + BaseResponse updateDaily(ProjectDailyUpdateVO projectDailyUpdateVO, 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 96ce19c..d33a025 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectDailyServiceImpl.java @@ -10,6 +10,7 @@ import com.jsl.oa.mapper.ProjectDailyMapper; import com.jsl.oa.model.dodata.ProjectDailyDO; import com.jsl.oa.model.vodata.ProjectDailyAddVO; import com.jsl.oa.model.vodata.ProjectDailyDataVO; +import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.model.vodata.ProjectDailyVO; import com.jsl.oa.services.ProjectDailyService; import com.jsl.oa.utils.BaseResponse; @@ -141,6 +142,46 @@ public class ProjectDailyServiceImpl implements ProjectDailyService { return ResultUtil.success(); } + @Override + public BaseResponse updateDaily(ProjectDailyUpdateVO projectDailyUpdateVO, HttpServletRequest request) { +// 获取用户id + Long userId = Processing.getAuthHeaderToUserId(request); +// 获取对应日报数据 + ProjectDailyDO projectDailyDO = projectDailyDAO.getPorjectDailyById(projectDailyUpdateVO.getId()); +// 检测日报是否为空 + if (projectDailyDO == null) { + return ResultUtil.error(ErrorCode.PROJECT_DAILY_NOT_EXIST); + } +// 查询用户是否有修改权限(本人或项目负责人) + if (userId.equals(projectDailyDO.getUserId()) + || projectDAO.getProjectById( + projectDailyDO.getProjectId()). + getPrincipalId().equals(userId)) { + String content = projectDailyUpdateVO.getContent(); + Long projectId = Long.valueOf(projectDailyUpdateVO.getProjectId()); + String dailyTime = projectDailyUpdateVO.getDailyTime(); + + if (content != null && !content.equals("")) { + projectDailyDO.setContent(content); + } + + if (projectDAO.isExistProject(projectId)) { + projectDailyDO.setProjectId(projectId); + } + + if (dailyTime != null && !dailyTime.equals("")) { + projectDailyDO.setDailyTime(Processing.convertStringToDate(dailyTime)); + } + + } else { + return ResultUtil.error(ErrorCode.NOT_PERMISSION_UPDATE_DAILY); + } + + projectDailyDAO.updateDaily(projectDailyDO); + + return ResultUtil.success(); + } + public List encapsulateArrayClass(List projectDailyDOList) { diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index 38c1b5b..cacb380 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -55,6 +55,8 @@ public enum ErrorCode { PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"), PROJECT_CHILD_NOT_EXIST("ProjectChildNotExist", 40021, "子系统不存在"), MODULE_NOT_EXIST("ModuleNotExist", 40022, "模块不存在"), + PROJECT_DAILY_NOT_EXIST("ProjectDailyNotExist", 40023, "日志不存在"), + NOT_PERMISSION_UPDATE_DAILY("NotPermissionUpdateDaily", 40024, "用户无权限修改日报"), User_NOT_PROJECT_PRINCIPAL("UserNotProjectPrincipal", 40023, "用户非项目负责人"), REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息"); diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml index 36b4110..01e395e 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml @@ -66,4 +66,18 @@ SET is_delete = 1 WHERE id = #{id} + + + UPDATE oa_project_daily + + user_id = #{userId}, + project_id = #{projectId}, + content = #{content}, + daily_time = #{dailyTime}, + updated_at = #{updatedAt}, + is_delete = #{isDelete} + + WHERE id = #{id} + + \ No newline at end of file