Compare commits

...

9 Commits

Author SHA1 Message Date
09b6736298
Merge branch 'refs/heads/develop'
All checks were successful
代码检查 / 代码检查 (push) Successful in 20s
2024-04-20 12:46:58 +08:00
a54e8dafb8 Merge pull request 'fix:项目,系统,模块更新编辑' (#35) from feature-jie into develop
Reviewed-on: #35
Reviewed-by: 筱锋xiao_lfeng <gm@x-lf.cn>
2024-04-20 12:42:02 +08:00
176yunxuan
da387c04be fix:增加判空
All checks were successful
代码检查 / 代码检查 (pull_request) Successful in 18s
2024-04-20 12:33:17 +08:00
176yunxuan
9639d21c0e fix:项目,系统,模块更新
All checks were successful
代码检查 / 代码检查 (pull_request) Successful in 20s
2024-04-20 10:50:55 +08:00
176yunxuan
c229ed59b8 fix:项目,系统,模块更新
Some checks failed
代码检查 / 代码检查 (pull_request) Failing after 22s
2024-04-20 10:44:07 +08:00
xiangZr-hhh
f57e949d65 Merge branch 'develop' of https://git-fy.cn/WxxyDeveloper/JSL_OrganizeInternalOA into feature-zrx
All checks were successful
代码检查 / 代码检查 (pull_request) Successful in 20s
2024-04-20 02:33:20 +08:00
xiangZr-hhh
1d588f4c2d patch: 审核模块
审批结果接口添加发送消息
2024-04-20 02:31:49 +08:00
xiangZr-hhh
ec2a30075d feat: 新增接口
根据项目id查询名下所有子系统
根据子系统id查询名下所有子模块
2024-04-20 02:16:43 +08:00
xiangZr-hhh
07601350bf fix: 审核模块 2024-04-20 01:46:52 +08:00
12 changed files with 390 additions and 68 deletions

View File

@ -1,6 +1,8 @@
package com.jsl.oa.controllers; package com.jsl.oa.controllers;
import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.annotations.NeedPermission;
import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.vodata.ProjectChildAddVO; import com.jsl.oa.model.vodata.ProjectChildAddVO;
import com.jsl.oa.model.vodata.ProjectEditVO; import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO; import com.jsl.oa.model.vodata.ProjectInfoVO;
@ -365,7 +367,7 @@ public class ProjectController {
} }
/** /**
* 项目名查询子系统 * 项目名查询所属所有子系统
* *
* @param name * @param name
* @param request * @param request
@ -379,6 +381,29 @@ public class ProjectController {
return projectService.projectChildGetName(name, request); return projectService.projectChildGetName(name, request);
} }
/**
* id查询子系统
*
* @param id
* @param request
* @return
*/
@GetMapping("/project/child/get/id")
public BaseResponse projectChildById(
@RequestParam Integer id,
HttpServletRequest request
) {
return projectService.projectChildGetById(id, request);
}
/**
* 根据项目和子系统名查询所属所有子模块
*
* @param projectName
* @param childName
* @param request
* @return
*/
@GetMapping("/project/module/get/name") @GetMapping("/project/module/get/name")
public BaseResponse projectModuleGetName( public BaseResponse projectModuleGetName(
@RequestParam String projectName, @RequestParam String projectName,
@ -388,4 +413,40 @@ public class ProjectController {
return projectService.projectModuleGetName(projectName, childName, request); return projectService.projectModuleGetName(projectName, childName, request);
} }
@GetMapping("/project/module/get/id")
public BaseResponse projectModuleGetName(
@RequestParam Integer childId,
HttpServletRequest request
) {
return projectService.projectModuleGetById(childId, request);
}
@PutMapping("/project/module/edit")
public BaseResponse projectModuleEdit(
@RequestParam Long id,
@RequestBody ProjectModuleDO projectModuleAddVO,
HttpServletRequest request
) {
return projectService.projectModuleEdit(request, projectModuleAddVO, id);
}
@PutMapping("/project/edit")
public BaseResponse projectEdit(
@RequestParam Long id,
@RequestBody ProjectEditVO projectEditVO,
HttpServletRequest request
) {
return projectService.projectEdit(request, projectEditVO, id);
}
@PutMapping("/project/child/edit")
public BaseResponse projectChildEdit(
@RequestParam Long id,
@RequestBody ProjectChildDO projectChildAddVO,
HttpServletRequest request
) {
return projectService.projectChildEdit(request, projectChildAddVO, id);
}
} }

View File

@ -69,7 +69,7 @@ public class ReviewController {
public BaseResponse addReview(@RequestBody @Validated ReviewAddVO reviewAddVO, public BaseResponse addReview(@RequestBody @Validated ReviewAddVO reviewAddVO,
@NotNull BindingResult bindingResult, @NotNull BindingResult bindingResult,
HttpServletRequest request) { HttpServletRequest request) {
log.info("请求接口[POST]: /review/add");
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
@ -83,7 +83,6 @@ public class ReviewController {
public BaseResponse updateReview(@RequestBody @Validated ReviewUpdateResultVO reviewUpdateResultVOVO, public BaseResponse updateReview(@RequestBody @Validated ReviewUpdateResultVO reviewUpdateResultVOVO,
@NotNull BindingResult bindingResult, @NotNull BindingResult bindingResult,
HttpServletRequest request) { HttpServletRequest request) {
log.info("请求接口[PUT]: /review/updateReview");
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
@ -98,7 +97,7 @@ public class ReviewController {
HttpServletRequest request, HttpServletRequest request,
@RequestParam Integer page, @RequestParam Integer page,
@RequestParam Integer pageSize) { @RequestParam Integer pageSize) {
log.info("请求接口[GET]: /review/searchMyReview");
return reviewService.searchReview(content, request, page, pageSize); return reviewService.searchReview(content, request, page, pageSize);
} }
@ -108,7 +107,7 @@ public class ReviewController {
HttpServletRequest request, HttpServletRequest request,
@RequestParam Integer page, @RequestParam Integer page,
@RequestParam Integer pageSize) { @RequestParam Integer pageSize) {
log.info("请求接口[GET]: /review/searchReviewRecords");
return reviewService.searchReviewRecords(content, statue, request, page, pageSize); return reviewService.searchReviewRecords(content, statue, request, page, pageSize);
} }
} }

View File

@ -5,10 +5,8 @@ import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectDO; import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectModuleDO; import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.dodata.info.ProjectShowDO; import com.jsl.oa.model.dodata.info.ProjectShowDO;
import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO; import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectChildAddVO; import com.jsl.oa.model.vodata.ProjectChildAddVO;
import com.jsl.oa.utils.Processing;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -41,15 +39,12 @@ public class ProjectDAO {
projectMapper.projectWorkAdd(projectChildAddVO); projectMapper.projectWorkAdd(projectChildAddVO);
} }
public ProjectDO projectEdit(@NotNull ProjectEditVO projectEdit, Long projectId) { public ProjectDO projectEdit(@NotNull ProjectDO projectEdit) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法"); log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法");
log.info("\t\t> 从 MySQL 更新数据"); log.info("\t\t> 从 MySQL 更新数据");
ProjectDO projectDO = new ProjectDO(); projectMapper.projectEdit(projectEdit);
Processing.copyProperties(projectEdit, projectDO);
projectDO.setId(projectId);
projectMapper.projectEdit(projectDO);
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectById(projectId); return projectMapper.getProjectById(projectEdit.getId());
} }
public boolean isExistProject(Long id) { public boolean isExistProject(Long id) {

View File

@ -36,6 +36,8 @@ public interface ProjectMapper {
+ "#{description},#{status},#{deadLine},#{cycle})") + "#{description},#{status},#{deadLine},#{cycle})")
void projectModuleAdd(ProjectModuleAddVO projectModuleAddVO); void projectModuleAdd(ProjectModuleAddVO projectModuleAddVO);
@Select("select project_id from organize_oa.oa_project_child where id=#{id}")
Long getProjectIdBySysId(Long id);
void projectEdit(ProjectDO projectEdit); void projectEdit(ProjectDO projectEdit);
@Select("select * from organize_oa.oa_project where id=#{id}") @Select("select * from organize_oa.oa_project where id=#{id}")
@ -84,7 +86,6 @@ public interface ProjectMapper {
//@Select("select * from organize_oa.oa_project_work where status=1 and principal_id=#{userId}") //@Select("select * from organize_oa.oa_project_work where status=1 and principal_id=#{userId}")
List<ProjectDO> workget1(Long userId, Integer is); List<ProjectDO> workget1(Long userId, Integer is);
List<ProjectDO> tget(Integer id); List<ProjectDO> tget(Integer id);
List<ProjectDO> tgetByIsfinish(List<String> isFinish); List<ProjectDO> tgetByIsfinish(List<String> isFinish);
@ -168,4 +169,19 @@ public interface ProjectMapper {
+ "and project_id = (select id from organize_oa.oa_project where name =#{projectName}))") + "and project_id = (select id from organize_oa.oa_project where name =#{projectName}))")
List<ProjectModuleDO> getModuleByName(String projectName, String childName); List<ProjectModuleDO> getModuleByName(String projectName, String childName);
void projectModuleUpdate(ProjectModuleDO projectModuleDO);
void projectChildEdit(ProjectChildDO projectChildDO);
@Select("select * from organize_oa.oa_project_child where project_id = #{id} "
+ "and is_delete = 0")
List<ProjectChildDO> getAllChildByProjectId(Integer id);
@Select("select * from organize_oa.oa_project_modules where project_child_id = #{id} "
+ "and is_delete = 0")
List<ProjectModuleDO> getModuleByChildId(Integer id);
void projectModuleEdit(ProjectModuleDO projectModuleAddVO);
void projectChildEditAll(ProjectChildDO projectChildAddVO);
} }

View File

@ -10,13 +10,13 @@ import java.sql.Timestamp;
@Accessors(chain = true) @Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectModuleDO { public class ProjectModuleDO {
private String name;
private Long id; private Long id;
private Long projectChildId; private Long projectChildId;
private Long principalId; private Long principalId;
private Integer cycle; private Integer cycle;
private Integer workLoad; private Integer workLoad;
private String description; private String description;
private String name;
private Integer isDelete; private Integer isDelete;
private String status; private String status;
private Timestamp deadLine; private Timestamp deadLine;

View File

@ -7,14 +7,14 @@ import java.sql.Timestamp;
@Data @Data
public class ProjectEditVO { public class ProjectEditVO {
private Long id;
private String name; private String name;
private Long principalId; private Long principalId;
private String tags; private String tags;
private Long cycle; private Long cycle;
private String file; private String files;
private String description; private String description;
private Integer isFinish; private String status;
private Integer status;
private Long workLoad; private Long workLoad;
private Timestamp beginTime; private Timestamp beginTime;
private Timestamp completeTime; private Timestamp completeTime;

View File

@ -1,5 +1,7 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.dodata.ProjectChildDO;
import com.jsl.oa.model.dodata.ProjectModuleDO;
import com.jsl.oa.model.vodata.ProjectEditVO; import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO; import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectChildAddVO; import com.jsl.oa.model.vodata.ProjectChildAddVO;
@ -71,9 +73,19 @@ public interface ProjectService {
BaseResponse projectGetName(String name, HttpServletRequest request); BaseResponse projectGetName(String name, HttpServletRequest request);
BaseResponse projectModuleAdd(HttpServletRequest request, ProjectModuleAddVO projectModuleAddVO); BaseResponse projectModuleAdd(HttpServletRequest request, ProjectModuleAddVO projectModuleAddVO);
BaseResponse projectChildGetName(String name, HttpServletRequest request); BaseResponse projectChildGetName(String name, HttpServletRequest request);
BaseResponse projectChildGetById(Integer id, HttpServletRequest request);
BaseResponse projectModuleGetName(String projectName, String childName, HttpServletRequest request); BaseResponse projectModuleGetName(String projectName, String childName, HttpServletRequest request);
BaseResponse projectModuleGetById(Integer id, HttpServletRequest request);
BaseResponse projectModuleEdit(HttpServletRequest request, ProjectModuleDO projectModuleAddVO, Long id);
BaseResponse projectChildEdit(HttpServletRequest request, ProjectChildDO projectChildAddVO, Long id);
} }

View File

@ -192,28 +192,31 @@ public class MessageServiceImpl implements MessageService {
// 添加消息 // 添加消息
// 1:上传文档 2:修改状态 3:修改负责人 // 1:上传文档 2:修改状态 3:修改负责人
List<Long> uidList = projectMapper.getMemberByProjectId(pId); List<Long> uidList = projectMapper.getMemberByProjectId(pId);
for (Long uid : uidList) { if (!uidList.isEmpty()) {
MessageAddVO messageAddVO = new MessageAddVO(); for (Long uid : uidList) {
messageAddVO.setUid(uid); if (uid != null) {
messageAddVO.setSid(Processing.getAuthHeaderToUserId(request)); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setTitle("项目变动消息"); messageAddVO.setUid(uid);
if (type == 3) { messageAddVO.setSid(Processing.getAuthHeaderToUserId(request));
messageAddVO.setText("项目负责人" + senderName + "调整了" + systemName + "子系统的负责人"); messageAddVO.setTitle("项目变动消息");
messageAddVO.setType("Project_child"); if (type == 3) {
messageAddVO.setToId(systemId.longValue()); messageAddVO.setText("项目负责人" + senderName + "调整了" + systemName + "子系统的负责人");
} else if (type == 2) { messageAddVO.setType("Project_child");
messageAddVO.setText("项目负责人" + senderName + "修改了" + projectName + "项目的状态"); messageAddVO.setToId(systemId.longValue());
messageAddVO.setType("Project"); } else if (type == 2) {
messageAddVO.setToId(pId.longValue()); messageAddVO.setText("项目负责人" + senderName + "修改了" + projectName + "项目的状态");
} else if (type == 1) { messageAddVO.setType("Project");
messageAddVO.setText("项目负责人" + senderName + "上传了文档到" + projectName + "项目"); messageAddVO.setToId(pId.longValue());
messageAddVO.setType("Project"); } else if (type == 1) {
messageAddVO.setToId(pId.longValue()); messageAddVO.setText("项目负责人" + senderName + "上传了文档到" + projectName + "项目");
messageAddVO.setType("Project");
messageAddVO.setToId(pId.longValue());
}
messageMapper.messageAdd(messageAddVO);
}
} }
messageMapper.messageAdd(messageAddVO);
} }
} }
/** /**
* 添加子系统变动消息 * 添加子系统变动消息
* *
@ -234,7 +237,10 @@ public class MessageServiceImpl implements MessageService {
String projectName = projectMapper.tgetProjectById(pId).getName(); String projectName = projectMapper.tgetProjectById(pId).getName();
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername(); String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
String systemName = projectMapper.getWorkById(systmeId).getName(); String systemName = projectMapper.getWorkById(systmeId).getName();
String moddleName = projectMapper.getModuleById(moddleId).getName(); String moddleName = null;
if (moddleId != null) {
moddleName = projectMapper.getModuleById(moddleId).getName();
}
// 添加消息 // 添加消息
// 1:删除模块 2:修改简介 3:修改周期 // 1:删除模块 2:修改简介 3:修改周期
if (type == 1) { if (type == 1) {
@ -247,21 +253,25 @@ public class MessageServiceImpl implements MessageService {
messageMapper.messageAdd(messageAddVO); messageMapper.messageAdd(messageAddVO);
} else { } else {
List<Long> uidList = projectMapper.getMemberBySystemId(systmeId); List<Long> uidList = projectMapper.getMemberBySystemId(systmeId);
for (Long uid : uidList) { if (!uidList.isEmpty()) {
MessageAddVO messageAddVO = new MessageAddVO(); for (Long uid : uidList) {
messageAddVO.setUid(uid); if (uid != null) {
messageAddVO.setSid(Processing.getAuthHeaderToUserId(request)); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setTitle("子系统变动消息"); messageAddVO.setUid(uid);
if (type == 2) { messageAddVO.setSid(Processing.getAuthHeaderToUserId(request));
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" messageAddVO.setTitle("子系统变动消息");
+ systemName + "系统的简介说明"); if (type == 2) {
} else if (type == 3) { messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的"
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" + systemName + "系统的简介说明");
+ systemName + "系统的系统周期/工作量"); } else if (type == 3) {
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的"
+ systemName + "系统的系统周期/工作量");
}
messageAddVO.setType("Project_child");
messageAddVO.setToId(systmeId.longValue());
messageMapper.messageAdd(messageAddVO);
}
} }
messageAddVO.setType("Project_child");
messageAddVO.setToId(systmeId.longValue());
messageMapper.messageAdd(messageAddVO);
} }
} }
} }
@ -311,6 +321,9 @@ public class MessageServiceImpl implements MessageService {
List<ProjectModuleDO> projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater); List<ProjectModuleDO> projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater);
if (!projectWorkDOList1.isEmpty()) { if (!projectWorkDOList1.isEmpty()) {
for (ProjectModuleDO projectWorkDO : projectWorkDOList) { for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
if (projectWorkDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectWorkDO.getPrincipalId()); messageAddVO.setUid(projectWorkDO.getPrincipalId());
@ -330,6 +343,9 @@ public class MessageServiceImpl implements MessageService {
} }
if (!projectWorkDOList.isEmpty()) { if (!projectWorkDOList.isEmpty()) {
for (ProjectModuleDO projectWorkDO : projectWorkDOList) { for (ProjectModuleDO projectWorkDO : projectWorkDOList) {
if (projectWorkDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectWorkDO.getPrincipalId()); messageAddVO.setUid(projectWorkDO.getPrincipalId());
@ -352,6 +368,9 @@ public class MessageServiceImpl implements MessageService {
List<ProjectChildDO> projectChildDOList = projectMapper.getProjectChildByTime(sevenDaysLater); List<ProjectChildDO> projectChildDOList = projectMapper.getProjectChildByTime(sevenDaysLater);
if (!projectChildDOList.isEmpty()) { if (!projectChildDOList.isEmpty()) {
for (ProjectChildDO projectChildDO : projectChildDOList) { for (ProjectChildDO projectChildDO : projectChildDOList) {
if (projectChildDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectChildDO.getPrincipalId()); messageAddVO.setUid(projectChildDO.getPrincipalId());
@ -368,6 +387,9 @@ public class MessageServiceImpl implements MessageService {
List<ProjectChildDO> projectChildDOList1 = projectMapper.getProjectChildByTime(threeDaysLater); List<ProjectChildDO> projectChildDOList1 = projectMapper.getProjectChildByTime(threeDaysLater);
if (!projectChildDOList1.isEmpty()) { if (!projectChildDOList1.isEmpty()) {
for (ProjectChildDO projectChildDO : projectChildDOList1) { for (ProjectChildDO projectChildDO : projectChildDOList1) {
if (projectChildDO.getPrincipalId() == null) {
continue;
}
// 添加消息 // 添加消息
MessageAddVO messageAddVO = new MessageAddVO(); MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectChildDO.getPrincipalId()); messageAddVO.setUid(projectChildDO.getPrincipalId());

View File

@ -12,6 +12,7 @@ import com.jsl.oa.model.vodata.ProjectDailyAddVO;
import com.jsl.oa.model.vodata.ProjectDailyDataVO; import com.jsl.oa.model.vodata.ProjectDailyDataVO;
import com.jsl.oa.model.vodata.ProjectDailyUpdateVO; import com.jsl.oa.model.vodata.ProjectDailyUpdateVO;
import com.jsl.oa.model.vodata.ProjectDailyVO; import com.jsl.oa.model.vodata.ProjectDailyVO;
import com.jsl.oa.services.MessageService;
import com.jsl.oa.services.ProjectDailyService; import com.jsl.oa.services.ProjectDailyService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
@ -45,18 +46,19 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
private final UserDAO userDAO; private final UserDAO userDAO;
private final ProjectDailyDAO projectDailyDAO; private final ProjectDailyDAO projectDailyDAO;
private final ProjectDailyMapper projectDailyMapper; private final ProjectDailyMapper projectDailyMapper;
private final MessageService messageService;
@Override @Override
public BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request) { public BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request) {
// 获取用户id // 获取用户id
Long userId = Processing.getAuthHeaderToUserId(request); Long userId = Processing.getAuthHeaderToUserId(request);
// 从请求体中获取项目id // 从请求体中获取项目id
Integer projectId = projectDailyAddVO.getProjectId(); Integer projectId = projectDailyAddVO.getProjectId();
// 检查项目是否存在 // 检查项目是否存在
if (!projectDAO.isExistProjectById(Long.valueOf(projectId))) { if (!projectDAO.isExistProjectById(Long.valueOf(projectId))) {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
} }
// 赋值数据库表实体类相关属性 // 赋值数据库表实体类相关属性

View File

@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.jsl.oa.annotations.NeedPermission; import com.jsl.oa.annotations.NeedPermission;
import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
@ -278,6 +279,21 @@ public class ProjectServiceImpl implements ProjectService {
return ResultUtil.success(returnGetVOList); return ResultUtil.success(returnGetVOList);
} }
@Override
public BaseResponse projectChildGetById(Integer id, HttpServletRequest request) {
List<ProjectChildDO> projectChildDOList = projectMapper.getAllChildByProjectId(id);
List<ReturnGetVO> returnGetVOList = new ArrayList<>();
for (ProjectChildDO projectChildDO : projectChildDOList) {
ReturnGetVO returnGetVO = new ReturnGetVO();
Processing.copyProperties(projectChildDO, returnGetVO);
returnGetVOList.add(returnGetVO);
}
return ResultUtil.success(returnGetVOList);
}
@Override @Override
public BaseResponse projectModuleGetName(String projectName, String childName, HttpServletRequest request) { public BaseResponse projectModuleGetName(String projectName, String childName, HttpServletRequest request) {
List<ProjectModuleDO> projectModuleDOList = projectMapper.getModuleByName(projectName, childName); List<ProjectModuleDO> projectModuleDOList = projectMapper.getModuleByName(projectName, childName);
@ -290,6 +306,70 @@ public class ProjectServiceImpl implements ProjectService {
return ResultUtil.success(returnGetVOList); return ResultUtil.success(returnGetVOList);
} }
@Override
public BaseResponse projectModuleGetById(Integer id, HttpServletRequest request) {
List<ProjectModuleDO> projectModuleDOList = projectMapper.getModuleByChildId(id);
List<ReturnGetVO> returnGetVOList = new ArrayList<>();
for (ProjectModuleDO projectModuleDO : projectModuleDOList) {
ReturnGetVO returnGetVO = new ReturnGetVO();
Processing.copyProperties(projectModuleDO, returnGetVO);
returnGetVOList.add(returnGetVO);
}
return ResultUtil.success(returnGetVOList);
}
@Override
public BaseResponse projectModuleEdit(HttpServletRequest request, ProjectModuleDO projectModuleEditVO, Long id) {
//判断是否是子系统负责人或项目负责人
if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirTdByModuleId(id))
// 项目负责人
&& !Objects.equals(Processing.getAuthHeaderToUserId(request),
projectMapper.getPirIdbyId(projectMapper.getModuleById(id.intValue()).getProjectChildId()))) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectModuleEditVO.getDescription());
projectModuleEditVO.setDescription(gson.toJson(descriptionMap));
projectModuleEditVO.setId(id);
projectMapper.projectModuleEdit(projectModuleEditVO);
}
return ResultUtil.success("修改成功");
}
@Override
public BaseResponse projectChildEdit(HttpServletRequest request, ProjectChildDO projectChildAddVO, Long id) {
//判断是否是项目负责人
if (!Objects.equals(Processing.getAuthHeaderToUserId(request), projectMapper.getPirIdbyId(id))) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
JsonObject jsonObject = gson
.fromJson(projectMapper.getProjectChildById(id.intValue()).getDescription(), JsonObject.class);
//改动简介发送消息
if (!Objects.equals(projectChildAddVO.getDescription(), "")
&& !projectChildAddVO.getDescription()
.equals(jsonObject.get("description").getAsString())) {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), id.intValue(), null, 2, request);
} // 改动周期或工作量发送消息
if (projectChildAddVO.getCycle() != null || projectChildAddVO.getWorkLoad() != null) {
messageService.messageAdd(projectMapper.getProjectIdBySysId(id)
.intValue(), id.intValue(), null, 3, request);
}
HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectChildAddVO.getDescription());
projectChildAddVO.setDescription(gson.toJson(descriptionMap));
projectChildAddVO.setId(id);
projectMapper.projectChildEditAll(projectChildAddVO);
}
return ResultUtil.success("修改成功");
}
@Override @Override
public BaseResponse getModuleById(Integer id) { public BaseResponse getModuleById(Integer id) {
ProjectModuleDO projectWorkSimpleVO = projectMapper.getModuleById(id); ProjectModuleDO projectWorkSimpleVO = projectMapper.getModuleById(id);
@ -340,16 +420,32 @@ public class ProjectServiceImpl implements ProjectService {
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) { public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) {
//判断用户是否为老师 或者 项目负责人 //判断用户是否为负责人 或者 项目负责人
if (!Processing.checkUserIsPrincipal(request, roleDAO) if (!Processing.checkUserIsPrincipal(request, roleDAO)
|| !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) { && !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION); return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} }
//判断项目是否存在 //判断项目是否存在
if (projectDAO.isExistProject(projectId)) { if (projectDAO.isExistProject(projectId)) {
//更新数据 //更新数据
return ResultUtil.success(projectDAO.projectEdit(projectEdit, projectId)); HashMap<String, Object> descriptionMap = new HashMap<>();
descriptionMap.put("description", projectEdit.getDescription());
projectEdit.setDescription(gson.toJson(descriptionMap));
HashMap<String, Object> tagMap = new HashMap<>();
tagMap.put("tags", projectEdit.getTags().split(","));
projectEdit.setTags(gson.toJson(tagMap));
HashMap<String, Object> filesMap = new HashMap<>();
filesMap.put("URI", projectEdit.getFiles());
projectEdit.setFiles(gson.toJson(filesMap));
projectEdit.setId(projectId);
ProjectDO projectEdit1 = new ProjectDO();
Processing.copyProperties(projectEdit, projectEdit1);
projectDAO.projectEdit(projectEdit1);
return ResultUtil.success(projectDAO.projectEdit(projectEdit1));
} else { } else {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
} }

View File

@ -15,6 +15,7 @@ import com.jsl.oa.model.vodata.ReviewAddVO;
import com.jsl.oa.model.vodata.ReviewDataVO; import com.jsl.oa.model.vodata.ReviewDataVO;
import com.jsl.oa.model.vodata.ReviewUpdateResultVO; import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
import com.jsl.oa.model.vodata.ReviewVO; import com.jsl.oa.model.vodata.ReviewVO;
import com.jsl.oa.services.MessageService;
import com.jsl.oa.services.ReviewService; import com.jsl.oa.services.ReviewService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
@ -40,6 +41,8 @@ public class ReviewServiceImpl implements ReviewService {
private final UserMapper userMapper; private final UserMapper userMapper;
private final ProjectMapper projectMapper; private final ProjectMapper projectMapper;
private final MessageService messageService;
/** /**
* @Description: 获取用户未审核的数据(只包括管理项目下未审核的数据) * @Description: 获取用户未审核的数据(只包括管理项目下未审核的数据)
@ -218,6 +221,7 @@ public class ReviewServiceImpl implements ReviewService {
//添加数据 //添加数据
reviewDAO.addReview(reviewDO); reviewDAO.addReview(reviewDO);
return ResultUtil.success("申请成功"); return ResultUtil.success("申请成功");
} }
@ -235,11 +239,44 @@ public class ReviewServiceImpl implements ReviewService {
return ResultUtil.error(ErrorCode.REVIEW_NOT_EXIST); return ResultUtil.error(ErrorCode.REVIEW_NOT_EXIST);
} }
//修改对应项目负责人
if (reviewUpdateResultVO.getResult() == ReviewConstants.APPROVED) {
//如果为子系统则添加子系统负责人为申请人
if (reviewDO.getCategory() == 0) {
ProjectChildDO projectChildDO = projectMapper.
getProjectChildById(Math.toIntExact(reviewDO.getProjectChildId()));
if (projectChildDO == null) {
return ResultUtil.error(ErrorCode.PROJECT_CHILD_NOT_EXIST);
}
projectChildDO.setPrincipalId(Long.valueOf(reviewDO.getSenderId()));
projectMapper.projectChildEdit(projectChildDO);
}
//如果为子模块则添加子模块负责人为申请人
if (reviewDO.getCategory() == 1) {
ProjectModuleDO projectModuleDO = projectMapper.
getModuleById(Math.toIntExact(reviewDO.getProjectModuleId()));
if (projectModuleDO == null) {
return ResultUtil.error(ErrorCode.MODULE_NOT_EXIST);
}
projectModuleDO.setPrincipalId(Long.valueOf(reviewDO.getSenderId()));
projectMapper.projectModuleUpdate(projectModuleDO);
}
}
//设置对应属性 //设置对应属性
reviewDO.setReviewTime(new Date()); reviewDO.setReviewTime(new Date());
reviewDO.setRecipientId(userId); reviewDO.setRecipientId(userId);
reviewDO.setReviewResult(reviewUpdateResultVO.getResult()); reviewDO.setReviewResult(reviewUpdateResultVO.getResult());
//发送消息
messageService.messageAdd(Math.toIntExact(reviewDO.getProjectId()),
Math.toIntExact(reviewDO.getProjectChildId()),
Math.toIntExact(reviewDO.getProjectModuleId()),
Long.valueOf(reviewDO.getSenderId()),
Long.valueOf(reviewUpdateResultVO.getResult()),
request);
//更新数据 //更新数据
reviewDAO.updateReview(reviewDO); reviewDAO.updateReview(reviewDO);

View File

@ -22,24 +22,21 @@
<if test="cycle != null and cycle != ''"> <if test="cycle != null and cycle != ''">
cycle = #{cycle}, cycle = #{cycle},
</if> </if>
<if test="file != null and file != ''"> <if test="files != null and files != ''">
file = #{file}, files = #{files},
</if> </if>
<if test="beginTime != null and beginTime != ''"> <if test="beginTime != null ">
begin_time = #{beginTime}, begin_time = #{beginTime},
</if> </if>
<if test="completeTime != null and completeTime != ''"> <if test="completeTime != null ">
complete_time = #{completeTime}, complete_time = #{completeTime},
</if> </if>
<if test="deadline != null and deadline != ''"> <if test="deadline != null ">
deadline = #{deadline}, deadline = #{deadline},
</if> </if>
<if test="status != null"> <if test="status != null">
status = #{status}, status = #{status},
</if> </if>
<if test="isFinish != null">
is_finish = #{isFinish},
</if>
<if test="isDelete != null"> <if test="isDelete != null">
is_delete = #{isDelete}, is_delete = #{isDelete},
</if> </if>
@ -47,6 +44,28 @@
where id = #{id} where id = #{id}
</update> </update>
<update id="projectChildEdit">
update organize_oa.oa_project_child
<set>
<if test="principalId != null and principalId != ''">
principal_id = #{principalId},
</if>
</set>
where id = #{id}
</update>
<update id="projectModuleUpdate">
update organize_oa.oa_project_modules
<set>
<if test="principalId != null">
principal_id = #{principalId},
</if>
</set>
where id = #{id}
</update>
<update id="deleteProjectChild"> <update id="deleteProjectChild">
update organize_oa.oa_project_child set is_delete=true where id=#{id1} update organize_oa.oa_project_child set is_delete=true where id=#{id1}
</update> </update>
@ -55,6 +74,69 @@
update organize_oa.oa_project_modules set is_delete=true where id=#{id1} update organize_oa.oa_project_modules set is_delete=true where id=#{id1}
</update> </update>
<update id="projectModuleEdit">
update organize_oa.oa_project_modules
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="principalId != null and principalId != ''">
principal_id = #{principalId},
</if>
<if test="workLoad != null and workLoad != ''">
work_load = #{workLoad},
</if>
<if test="cycle != null and cycle != ''">
cycle = #{cycle},
</if>
<if test="completeTime != null ">
complete_time = #{completeTime},
</if>
<if test="deadLine != null ">
dead_line = #{deadLine},
</if>
<if test="status != null">
status = #{status},
</if>
updated_at = CURRENT_TIMESTAMP
</set>
where id = #{id}
</update>
<update id="projectChildEditAll">
update organize_oa.oa_project_child
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="principalId != null and principalId != ''">
principal_id = #{principalId},
</if>
<if test="workLoad != null and workLoad != ''">
work_load = #{workLoad},
</if>
<if test="cycle != null and cycle != ''">
cycle = #{cycle},
</if>
<if test="completeTime != null ">
complete_time = #{completeTime},
</if>
<if test="deadLine != null ">
dead_line = #{deadLine},
</if>
<if test="status != null">
status = #{status},
</if>
updated_at = CURRENT_TIMESTAMP
</set>
where id = #{id}
</update>
<select id="getByTags" resultType="com.jsl.oa.model.dodata.ProjectDO"> <select id="getByTags" resultType="com.jsl.oa.model.dodata.ProjectDO">
<if test="tags != null"> <if test="tags != null">
select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and select * from organize_oa.oa_project where is_delete=false and principal_id=#{userId} and