Compare commits

...

3 Commits

Author SHA1 Message Date
xiangZr-hhh
3f715f50a3 feat:日报模块 修改日报接口 2024-04-19 17:56:38 +08:00
xiangZr-hhh
b8b1ebd3cf Merge branch 'develop' of https://git-fy.cn/WxxyDeveloper/JSL_OrganizeInternalOA into feature-zrx
# Conflicts:
#	src/main/java/com/jsl/oa/config/startup/PermissionList.java
2024-04-19 17:13:01 +08:00
22777ab159
fix(业务): 权限修改
对权限输入错误的内容进行修改,权限规范化修改
2024-04-19 15:50:36 +08:00
13 changed files with 122 additions and 9 deletions

View File

@ -1,9 +1,9 @@
package com.jsl.oa.controllers;
import com.jsl.oa.annotations.NeedPermission;
import com.jsl.oa.model.vodata.ProjectChildAddVO;
import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectChildAddVO;
import com.jsl.oa.model.vodata.ProjectModuleAddVO;
import com.jsl.oa.model.vodata.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
@ -227,7 +227,7 @@ public class ProjectController {
* @return
*/
@PostMapping("/project/module/add")
@NeedPermission("project:module:add")
@NeedPermission("project:module_add")
public BaseResponse projectModuleAdd(
@RequestBody @Validated ProjectModuleAddVO projectModuleAddVO,
@NotNull BindingResult bindingResult,
@ -248,7 +248,7 @@ public class ProjectController {
* @return {@link BaseResponse}
*/
@PostMapping("/project/child/add")
@NeedPermission("project:child:add")
@NeedPermission("project:child_add")
public BaseResponse projectChildAdd(
HttpServletRequest request,
@RequestBody @Validated ProjectChildAddVO projectChildAddVO,

View File

@ -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")

View File

@ -209,4 +209,5 @@ public class ProjectDAO {
return projectMapper.getAllModuleByUserId(uid);
}
}

View File

@ -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);
}
}

View File

@ -31,6 +31,8 @@ public interface ProjectDailyMapper {
ProjectDailyDO getDailyById(Integer id);
void deleteDailyById(Integer id);
void updateDaily(ProjectDailyDO projectDailyDO);
}

View File

@ -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<ProjectModuleDO> getModuleByName(String projectName, String childName);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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<ProjectDailyVO> encapsulateArrayClass(List<ProjectDailyDO>
projectDailyDOList) {

View File

@ -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, "未找到对应审核信息");

View File

@ -66,4 +66,18 @@
SET is_delete = 1
WHERE id = #{id}
</delete>
<update id="updateDaily" parameterType="com.jsl.oa.model.dodata.ProjectDailyDO">
UPDATE oa_project_daily
<set>
<if test="userId != null">user_id = #{userId},</if>
<if test="projectId != null">project_id = #{projectId},</if>
<if test="content != null">content = #{content},</if>
<if test="dailyTime != null">daily_time = #{dailyTime},</if>
<if test="updatedAt != null">updated_at = #{updatedAt},</if>
<if test="isDelete != null">is_delete = #{isDelete}</if>
</set>
WHERE id = #{id}
</update>
</mapper>

View File

@ -6,16 +6,14 @@ create table oa_project_modules
name varchar(100) not null comment '模块名称',
principal_id bigint unsigned not null comment '模块负责人',
description json null comment '项目描述(技术选择,描述)',
cycle int unsigned null comment '模块周期',
work_load int unsigned default '1' not null comment '工作量(人天)',
complete_time datetime null comment '完成时间',
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
)
comment '模块表';