子模块/子系统的查询和增加
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit

This commit is contained in:
176yunxuan 2024-03-11 19:04:59 +08:00
parent f29c016405
commit 789eea8d49
7 changed files with 135 additions and 6 deletions

View File

@ -3,6 +3,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.ProjectWorkVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
import com.jsl.oa.utils.BaseResponse;
@ -54,6 +55,20 @@ public class ProjectController {
return projectService.get(listAll,request,tags,isFinish);
}
/**
* 子模块子系统的查询
*
* @return
*/
@GetMapping("/project/work/get")
public BaseResponse projectWorkGet(@RequestParam(required = false) Integer listAll,
@RequestParam(required = false) List<String> tags,
@RequestParam(required = false) Integer isFinish,
HttpServletRequest request) {
log.info("请求接口[GET]: /project/work/get");
return projectService.workget(listAll, request, tags, isFinish);
}
/**
* 单个项目的详细
* 项目轮播图
@ -130,8 +145,6 @@ public class ProjectController {
/**
* 项目表进行项目增加
*
* @param projectAdd
* @param bindingResult
* @return
*/
@PostMapping("/project/add")
@ -144,6 +157,22 @@ public class ProjectController {
return projectService.projectAdd(request, projectAdd);
}
/**
* 子系统子模块的增加
* @param request
* @param bindingResult
* @return
*/
@PostMapping("/project/work/add")
public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/work/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projecWorktAdd(request, projectWorkVO);
}
/**
* 项目表进行项目的修改
*

View File

@ -5,8 +5,10 @@ import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectUserDO;
import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.ProjectWorkVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
@ -29,7 +31,12 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法");
log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectAdd(projectAdd);
}
public void projectWorkAdd(ProjectWorkVO projectWorkVO) {
log.info("\t> 执行 DAO 层 ProjectDAO.projecWorktAdd 方法");
log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectWorkAdd(projectWorkVO);
}
public void projectEdit(ProjectInfoVO projectEdit) {
@ -121,6 +128,22 @@ public class ProjectDAO {
}
}
public List<ProjectWorkDO> workget(Long userId, Integer listAll, List<String> tags, Integer isFinish) {
log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法");
log.info("\t\t> 从 MySQL 获取数据");
if(isFinish != null){
return projectMapper.workgetByIsfinish(userId,isFinish);
}
if(tags != null && !tags.isEmpty()){
return projectMapper.workgetByTags(userId,tags);
}
if(listAll == 0) {
return projectMapper.workget(userId);
}else {
return projectMapper.workget1(userId);
}
}
public ProjectDO getByName(String name) {
log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法");
log.info("\t\t> 从 MySQL 获取数据");
@ -174,4 +197,6 @@ public class ProjectDAO {
return projectMapper.updateUserForProjectUser(newUid,projectUserDO.getId());
}
}

View File

@ -3,7 +3,9 @@ package com.jsl.oa.mapper;
import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectUserDO;
import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.ProjectWorkVO;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Param;
@ -19,6 +21,11 @@ public interface ProjectMapper {
",#{completeTime},#{deadline},#{status},#{isFinish})")
void projectAdd(ProjectInfoVO projectAdd);
@Insert("insert into organize_oa.oa_project_work (project_id, pid, name, principal_id," +
" work_load, description, cycle, complete_time, type, is_finish,status) " +
"value (#{projectId},#{pid},#{name},#{principalId},#{workLoad}," +
"#{description},#{cycle},#{completeTime},#{type},#{isFinish},#{status})")
void projectWorkAdd(ProjectWorkVO projectWorkVO);
void projectEdit(ProjectInfoVO projectEdit);
@ -51,7 +58,7 @@ public interface ProjectMapper {
@Select("select * from organize_oa.oa_project where is_delete=false and status =1 and principal_id=#{userId}")
List<ProjectDO> get(Long userId);
@Select("select * from organize_oa.oa_project where status =1 and status=1 and principal_id=#{userId}")
@Select("select * from organize_oa.oa_project where status =1 and is_delete =true and principal_id=#{userId}")
List<ProjectDO> get1(Long userId);
@Select("select * from organize_oa.oa_project where name=#{name}")
@ -77,4 +84,17 @@ public interface ProjectMapper {
@Update("UPDATE organize_oa.oa_project_user SET uid = #{uid} , updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
boolean updateUserForProjectUser(Long uid, Long id);
@Select("select * from organize_oa.oa_project_work where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}")
List<ProjectWorkDO> workgetByIsfinish(Long userId, Integer isFinish);
List<ProjectWorkDO> workgetByTags(Long userId, List<String> tags);
@Select("select * from organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId}")
List<ProjectWorkDO> workget(Long userId);
@Select("select * from organize_oa.oa_project_work where is_delete =true and status=1 and principal_id=#{userId}")
List<ProjectWorkDO> workget1(Long userId);
}

View File

@ -26,8 +26,8 @@ public class ProjectDO {
private String name;
private String file;
private String description;
private Integer is_delete;
private Integer is_finish;
private Integer isDelete;
private Integer isFinish;
private boolean status;
private Timestamp beginTime;
private Timestamp completeTime;

View File

@ -3,6 +3,7 @@ package com.jsl.oa.services;
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.ProjectWorkVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.utils.BaseResponse;
@ -37,4 +38,8 @@ public interface ProjectService {
BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO);
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish);
BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO);
}

View File

@ -6,11 +6,13 @@ import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectWorkDO;
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.ProjectWorkVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
import com.jsl.oa.utils.BaseResponse;
@ -21,7 +23,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
@ -56,6 +57,13 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
public BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) {
log.info("\t> 执行 Service 层 ProjectService.projectWorkAdd 方法");
projectDAO.projectWorkAdd(projectWorkVO);
return ResultUtil.success("添加成功");
}
@Override
@CheckUserHasPermission("project.edit")
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) {
@ -186,6 +194,7 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish) {
log.info("\t> 执行 Service 层 ProjectService.get 方法");
//获取用户
Long userId= Processing.getAuthHeaderToUserId(request);
//根据状态查询
@ -211,6 +220,36 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
public BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, Integer isFinish) {
log.info("\t> 执行 Service 层 ProjectService.workget 方法");
//获取用户
Long userId= Processing.getAuthHeaderToUserId(request);
//根据状态查询
if(isFinish != null){
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish);
return ResultUtil.success(projectWorkDOList);
}
//根据标签查询
if(tags != null && !tags.isEmpty()){
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish);
return ResultUtil.success(projectWorkDOList);
}
//判断是否是老师(项目负责人)
if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish);
return ResultUtil.success(projectWorkDOList);
}else {
listAll = 0;
List<ProjectWorkDO> projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish);
return ResultUtil.success(projectWorkDOList);
}
}
@Override
public BaseResponse getByName(String name) {
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
@ -284,4 +323,6 @@ public class ProjectServiceImpl implements ProjectService {
}
}

View File

@ -56,4 +56,13 @@
</foreach>
</select>
<select id="workgetByTags" resultType="com.jsl.oa.model.doData.ProjectWorkDO">
select * from organize_oa.oa_project_work where
<foreach collection="tags" item="tag" separator=",'%') and json_extract(tags,'$.tags')like concat('%',"
open="json_extract(tags,'$.tags')like concat('%',"
close=",'%') and is_delete=false and principal_id=#{userId}">
#{tag}
</foreach>
</select>
</mapper>