This commit is contained in:
commit
60388ca2da
|
@ -33,12 +33,17 @@ public class PermissionList {
|
||||||
permissionPrincipal.add(new PermissionVO("project:add", "增加项目"));
|
permissionPrincipal.add(new PermissionVO("project:add", "增加项目"));
|
||||||
permissionPrincipal.add(new PermissionVO("project:child_add", "增加子系统"));
|
permissionPrincipal.add(new PermissionVO("project:child_add", "增加子系统"));
|
||||||
permissionPrincipal.add(new PermissionVO("project:module_add", "增加子模块"));
|
permissionPrincipal.add(new PermissionVO("project:module_add", "增加子模块"));
|
||||||
|
permissionPrincipal.add(new PermissionVO("review:add", "添加审核申请"));
|
||||||
|
permissionPrincipal.add(new PermissionVO("daily:add", "添加日报"));
|
||||||
|
permissionPrincipal.add(new PermissionVO("project:daily_delete", "删除日报"));
|
||||||
|
|
||||||
permissionDeveloper.add(new PermissionVO("auth:change_password", "修改密码"));
|
permissionDeveloper.add(new PermissionVO("auth:change_password", "修改密码"));
|
||||||
permissionDeveloper.add(new PermissionVO("info:get_header_image", "获取头部图片"));
|
permissionDeveloper.add(new PermissionVO("info:get_header_image", "获取头部图片"));
|
||||||
permissionDeveloper.add(new PermissionVO("info:edit_header_image", "编辑头部图片"));
|
permissionDeveloper.add(new PermissionVO("info:edit_header_image", "编辑头部图片"));
|
||||||
permissionDeveloper.add(new PermissionVO("info:delete_header_image", "删除头部图片"));
|
permissionDeveloper.add(new PermissionVO("info:delete_header_image", "删除头部图片"));
|
||||||
permissionDeveloper.add(new PermissionVO("project:child_add", "增加子系统"));
|
permissionDeveloper.add(new PermissionVO("review:add", "添加审核申请"));
|
||||||
permissionDeveloper.add(new PermissionVO("project:module_add", "增加子模块"));
|
permissionDeveloper.add(new PermissionVO("daily:add", "添加日报"));
|
||||||
|
permissionPrincipal.add(new PermissionVO("project:child_add", "增加子系统"));
|
||||||
|
permissionPrincipal.add(new PermissionVO("project:module_add", "增加子模块"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package com.jsl.oa.controllers;
|
package com.jsl.oa.controllers;
|
||||||
|
|
||||||
|
|
||||||
|
import com.jsl.oa.annotations.NeedPermission;
|
||||||
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
||||||
|
import com.jsl.oa.model.vodata.ProjectDailyUpdateVO;
|
||||||
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;
|
||||||
|
@ -16,7 +18,7 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,17 +44,38 @@ public class ProjectDailyController {
|
||||||
* @return 新增结果
|
* @return 新增结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/daily/add")
|
@PostMapping("/daily/add")
|
||||||
public BaseResponse add(@RequestBody @Validated ProjectDailyAddVO projectDailyAddVO,
|
@NeedPermission("daily:add")
|
||||||
|
public BaseResponse addDaily(@RequestBody @Validated ProjectDailyAddVO projectDailyAddVO,
|
||||||
@NotNull BindingResult bindingResult,
|
@NotNull BindingResult bindingResult,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
return projectDailyService.addDaily(projectDailyAddVO, request);
|
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")
|
||||||
|
public BaseResponse delete(@RequestParam Integer dailyId,
|
||||||
|
HttpServletRequest request) {
|
||||||
|
return projectDailyService.deleteDaily(dailyId, request);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/daily/getMyDaily")
|
@GetMapping("/daily/getMyDaily")
|
||||||
public BaseResponse getMyDaily(@RequestParam Integer page,
|
public BaseResponse getMyDaily(@RequestParam Integer page,
|
||||||
|
@ -65,10 +88,17 @@ public class ProjectDailyController {
|
||||||
@GetMapping("/daily/search")
|
@GetMapping("/daily/search")
|
||||||
public BaseResponse searchMyDaily(@RequestParam Integer page,
|
public BaseResponse searchMyDaily(@RequestParam Integer page,
|
||||||
@RequestParam Integer pageSize,
|
@RequestParam Integer pageSize,
|
||||||
Date beginTime,
|
Integer projectId,
|
||||||
Date endTime,
|
String beginTime,
|
||||||
|
String endTime,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
return projectDailyService.searchMyDaily(page, pageSize, beginTime, endTime, request);
|
|
||||||
|
return projectDailyService.searchMyDaily(projectId,
|
||||||
|
page,
|
||||||
|
pageSize,
|
||||||
|
Processing.convertStringToDate(beginTime),
|
||||||
|
Processing.convertStringToDate(endTime),
|
||||||
|
request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.jsl.oa.controllers;
|
package com.jsl.oa.controllers;
|
||||||
|
|
||||||
|
import com.jsl.oa.annotations.NeedPermission;
|
||||||
import com.jsl.oa.model.vodata.ReviewAddVO;
|
import com.jsl.oa.model.vodata.ReviewAddVO;
|
||||||
import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
|
import com.jsl.oa.model.vodata.ReviewUpdateResultVO;
|
||||||
import com.jsl.oa.services.ReviewService;
|
import com.jsl.oa.services.ReviewService;
|
||||||
|
@ -64,6 +65,7 @@ public class ReviewController {
|
||||||
* @Param null:
|
* @Param null:
|
||||||
**/
|
**/
|
||||||
@PostMapping("/review/add")
|
@PostMapping("/review/add")
|
||||||
|
@NeedPermission("review:add")
|
||||||
public BaseResponse addReview(@RequestBody @Validated ReviewAddVO reviewAddVO,
|
public BaseResponse addReview(@RequestBody @Validated ReviewAddVO reviewAddVO,
|
||||||
@NotNull BindingResult bindingResult,
|
@NotNull BindingResult bindingResult,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
|
@ -91,14 +93,23 @@ public class ReviewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/review/search")
|
@GetMapping("/review/searchMyReview")
|
||||||
public BaseResponse searchReview(String content,
|
public BaseResponse searchReview(String content,
|
||||||
|
HttpServletRequest request,
|
||||||
|
@RequestParam Integer page,
|
||||||
|
@RequestParam Integer pageSize) {
|
||||||
|
log.info("请求接口[GET]: /review/searchMyReview");
|
||||||
|
return reviewService.searchReview(content, request, page, pageSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/review/searchReviewRecords")
|
||||||
|
public BaseResponse searchReviewRecords(String content,
|
||||||
Short statue,
|
Short statue,
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@RequestParam Integer page,
|
@RequestParam Integer page,
|
||||||
@RequestParam Integer pageSize) {
|
@RequestParam Integer pageSize) {
|
||||||
log.info("请求接口[GET]: /review/search");
|
log.info("请求接口[GET]: /review/searchReviewRecords");
|
||||||
return reviewService.searchReview(content, statue, request, page, pageSize);
|
return reviewService.searchReviewRecords(content, statue, request, page, pageSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -209,4 +209,5 @@ public class ProjectDAO {
|
||||||
return projectMapper.getAllModuleByUserId(uid);
|
return projectMapper.getAllModuleByUserId(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -58,6 +60,42 @@ public class ProjectDailyDAO {
|
||||||
List<ProjectDailyDO> myProjectDaily = projectDailyMapper.getProjectDailyByUser(userId);
|
List<ProjectDailyDO> myProjectDaily = projectDailyMapper.getProjectDailyByUser(userId);
|
||||||
projectDailyDOList.addAll(myProjectDaily);
|
projectDailyDOList.addAll(myProjectDaily);
|
||||||
|
|
||||||
|
// 排序并去重
|
||||||
|
projectDailyDOList = sortaAndNotRepeatDailyDO(projectDailyDOList);
|
||||||
|
|
||||||
|
return projectDailyDOList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<ProjectDailyDO> getMyProjectDailyByTime(Long userId, Date beginTime, Date endTime) {
|
||||||
|
|
||||||
|
// 日报数据数组
|
||||||
|
List<ProjectDailyDO> projectDailyDOList = new ArrayList<>();
|
||||||
|
|
||||||
|
// 先获取我负责的项目下的日报数据
|
||||||
|
//获取我负责的项目
|
||||||
|
List<ProjectDO> projectDOS = projectMapper.getAllProjectByUserId(userId);
|
||||||
|
//获取项目下对应日报,并根据时间筛选
|
||||||
|
for (ProjectDO projectDO:projectDOS) {
|
||||||
|
List dailyFromProject = projectDailyMapper.getProjectDailyByProjectAndTime(projectDO.getId(),
|
||||||
|
beginTime, endTime);
|
||||||
|
projectDailyDOList.addAll(dailyFromProject);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 在获取本人的发布日报,并根据时间筛选
|
||||||
|
List<ProjectDailyDO> myProjectDaily = projectDailyMapper.
|
||||||
|
getProjectDailyByUserAndTime(userId, beginTime, endTime);
|
||||||
|
projectDailyDOList.addAll(myProjectDaily);
|
||||||
|
|
||||||
|
// 排序并去重
|
||||||
|
projectDailyDOList = sortaAndNotRepeatDailyDO(projectDailyDOList);
|
||||||
|
|
||||||
|
return projectDailyDOList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<ProjectDailyDO> sortaAndNotRepeatDailyDO(List<ProjectDailyDO> projectDailyDOList) {
|
||||||
|
|
||||||
// 去除重复的日报信息
|
// 去除重复的日报信息
|
||||||
projectDailyDOList = projectDailyDOList.stream()
|
projectDailyDOList = projectDailyDOList.stream()
|
||||||
// 根据 id 属性进行去重
|
// 根据 id 属性进行去重
|
||||||
|
@ -66,11 +104,25 @@ public class ProjectDailyDAO {
|
||||||
.values().stream()
|
.values().stream()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 根据时间进行排序
|
||||||
|
projectDailyDOList = projectDailyDOList.stream()
|
||||||
|
.sorted(Comparator.comparing(ProjectDailyDO::getCreatedAt).reversed())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
return projectDailyDOList;
|
return projectDailyDOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,10 @@ public class ReviewDAO {
|
||||||
return reviewMapper.selectReviewByUser(uid);
|
return reviewMapper.selectReviewByUser(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<ReviewDO> getReviewByUserAndResult(Long uid, Short result) {
|
||||||
|
return reviewMapper.selectReviewByUserAndResult(uid, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void addReview(ReviewDO reviewDO) {
|
public void addReview(ReviewDO reviewDO) {
|
||||||
|
|
|
@ -4,6 +4,7 @@ package com.jsl.oa.mapper;
|
||||||
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,6 +24,15 @@ public interface ProjectDailyMapper {
|
||||||
|
|
||||||
List<ProjectDailyDO> getProjectDailyByProject(Long pid);
|
List<ProjectDailyDO> getProjectDailyByProject(Long pid);
|
||||||
|
|
||||||
|
List getProjectDailyByProjectAndTime(Long id, Date beginTime, Date endTime);
|
||||||
|
|
||||||
|
List<ProjectDailyDO> getProjectDailyByUserAndTime(Long userId, Date beginTime, Date endTime);
|
||||||
|
|
||||||
|
ProjectDailyDO getDailyById(Integer id);
|
||||||
|
|
||||||
|
void deleteDailyById(Integer id);
|
||||||
|
|
||||||
|
void updateDaily(ProjectDailyDO projectDailyDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -167,4 +167,5 @@ public interface ProjectMapper {
|
||||||
+ "(select id from organize_oa.oa_project_child where name =#{childName} "
|
+ "(select id from organize_oa.oa_project_child where name =#{childName} "
|
||||||
+ "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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,4 +47,8 @@ public interface ReviewMapper {
|
||||||
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
|
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
|
||||||
+ "is_delete = 0")
|
+ "is_delete = 0")
|
||||||
List<ReviewDO> selectReviewByUser(Long uid);
|
List<ReviewDO> selectReviewByUser(Long uid);
|
||||||
|
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_review WHERE sender_id = #{uid} AND "
|
||||||
|
+ "is_delete = 0 AND review_result = #{result}")
|
||||||
|
List<ReviewDO> selectReviewByUserAndResult(Long uid, Short result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@ -20,7 +19,7 @@ public class ProjectDailyAddVO {
|
||||||
|
|
||||||
@NotNull(message = "工作时间不能为空")
|
@NotNull(message = "工作时间不能为空")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date dailyTime;
|
private String dailyTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ public class ProjectDailyVO {
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date updatedAt;
|
private Date updatedAt;
|
||||||
|
|
||||||
|
private Boolean isAllowDelete;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.jsl.oa.services;
|
||||||
|
|
||||||
|
|
||||||
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
||||||
|
import com.jsl.oa.model.vodata.ProjectDailyUpdateVO;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
@ -22,11 +23,16 @@ public interface ProjectDailyService {
|
||||||
|
|
||||||
BaseResponse getMyDaily(Integer page, Integer pageSize, HttpServletRequest request);
|
BaseResponse getMyDaily(Integer page, Integer pageSize, HttpServletRequest request);
|
||||||
|
|
||||||
BaseResponse searchMyDaily(Integer page,
|
BaseResponse searchMyDaily(Integer projectId,
|
||||||
|
Integer page,
|
||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
Date beginTime,
|
Date beginTime,
|
||||||
Date endTime,
|
Date endTime,
|
||||||
HttpServletRequest request);
|
HttpServletRequest request);
|
||||||
|
|
||||||
|
BaseResponse deleteDaily(Integer dailyId, HttpServletRequest request);
|
||||||
|
|
||||||
|
BaseResponse updateDaily(ProjectDailyUpdateVO projectDailyUpdateVO, HttpServletRequest request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,5 +17,11 @@ public interface ReviewService {
|
||||||
|
|
||||||
BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, HttpServletRequest request);
|
BaseResponse updateReviewResult(ReviewUpdateResultVO reviewUpdateResultVOVO, HttpServletRequest request);
|
||||||
|
|
||||||
BaseResponse searchReview(String content, Short statue, HttpServletRequest request, Integer page, Integer pageSize);
|
BaseResponse searchReview(String content, HttpServletRequest request, Integer page, Integer pageSize);
|
||||||
|
|
||||||
|
BaseResponse searchReviewRecords(String content,
|
||||||
|
Short statue,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Integer page,
|
||||||
|
Integer pageSize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,11 @@ package com.jsl.oa.services.impl;
|
||||||
import com.jsl.oa.dao.ProjectDAO;
|
import com.jsl.oa.dao.ProjectDAO;
|
||||||
import com.jsl.oa.dao.ProjectDailyDAO;
|
import com.jsl.oa.dao.ProjectDailyDAO;
|
||||||
import com.jsl.oa.dao.UserDAO;
|
import com.jsl.oa.dao.UserDAO;
|
||||||
|
import com.jsl.oa.mapper.ProjectDailyMapper;
|
||||||
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
||||||
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
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.ProjectDailyVO;
|
import com.jsl.oa.model.vodata.ProjectDailyVO;
|
||||||
import com.jsl.oa.services.ProjectDailyService;
|
import com.jsl.oa.services.ProjectDailyService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
@ -42,6 +44,7 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
|
||||||
private final ProjectDAO projectDAO;
|
private final ProjectDAO projectDAO;
|
||||||
private final UserDAO userDAO;
|
private final UserDAO userDAO;
|
||||||
private final ProjectDailyDAO projectDailyDAO;
|
private final ProjectDailyDAO projectDailyDAO;
|
||||||
|
private final ProjectDailyMapper projectDailyMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -60,7 +63,7 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
|
||||||
ProjectDailyDO projectDailyDO = new ProjectDailyDO();
|
ProjectDailyDO projectDailyDO = new ProjectDailyDO();
|
||||||
Processing.copyProperties(projectDailyAddVO, projectDailyDO);
|
Processing.copyProperties(projectDailyAddVO, projectDailyDO);
|
||||||
projectDailyDO.setUserId(userId);
|
projectDailyDO.setUserId(userId);
|
||||||
|
projectDailyDO.setProjectId(Long.valueOf(projectDailyAddVO.getProjectId()));
|
||||||
|
|
||||||
// 向数据库添加数据
|
// 向数据库添加数据
|
||||||
projectDailyDAO.addProjectDaily(projectDailyDO);
|
projectDailyDAO.addProjectDaily(projectDailyDO);
|
||||||
|
@ -88,19 +91,95 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse searchMyDaily(Integer page,
|
public BaseResponse searchMyDaily(Integer projectId,
|
||||||
|
Integer page,
|
||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
Date beginTime,
|
Date beginTime,
|
||||||
Date endTime,
|
Date endTime,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
// 获取用户id
|
// 获取用户id
|
||||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
// 获取 我发布的及自己负责的项目下 的日报
|
|
||||||
List<ProjectDailyDO> projectDailyDOList =
|
// 根据时间筛选---获取 我发布的及自己负责的项目下 的日报
|
||||||
|
List<ProjectDailyDO> projectDailyDOList = new ArrayList<>();
|
||||||
|
//如果时间不为空,则先根据时间筛选
|
||||||
|
if (beginTime != null && endTime != null) {
|
||||||
|
projectDailyDOList = projectDailyDAO.
|
||||||
|
getMyProjectDailyByTime(userId, beginTime, endTime);
|
||||||
|
} else {
|
||||||
|
//否则获取全部数据
|
||||||
|
projectDailyDOList =
|
||||||
projectDailyDAO.getMyProjectDaily(userId);
|
projectDailyDAO.getMyProjectDaily(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 再根据项目id进行筛选
|
||||||
|
if (projectId != null) {
|
||||||
|
projectDailyDOList.removeIf(projectDailyDO -> projectDailyDO.getProjectId() != Long.valueOf(projectId));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 进行分页
|
||||||
|
List<ProjectDailyDO> dailyPage = Processing.getPage(projectDailyDOList, page, pageSize);
|
||||||
|
// 封装结果类
|
||||||
|
List<ProjectDailyVO> projectDailyVOS = encapsulateArrayClass(dailyPage);
|
||||||
|
ProjectDailyDataVO projectDailyDataVO =
|
||||||
|
new ProjectDailyDataVO(projectDailyDOList.size(), page, pageSize, projectDailyVOS);
|
||||||
|
|
||||||
|
return ResultUtil.success(projectDailyDataVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
@Override
|
||||||
|
public BaseResponse deleteDaily(Integer dailyId, HttpServletRequest request) {
|
||||||
|
|
||||||
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
|
// 检查用户是否为项目负责人
|
||||||
|
if (!projectDAO.isPrincipalUser(userId, projectDailyMapper.getDailyById(dailyId).getProjectId())) {
|
||||||
|
return ResultUtil.error(ErrorCode.User_NOT_PROJECT_PRINCIPAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
projectDailyDAO.deleteDailyById(dailyId);
|
||||||
|
|
||||||
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -118,6 +197,14 @@ public class ProjectDailyServiceImpl implements ProjectDailyService {
|
||||||
projectDailyVO.setProjectName(
|
projectDailyVO.setProjectName(
|
||||||
projectDAO.getProjectById(projectDailyVO.getProjectId()).getName())
|
projectDAO.getProjectById(projectDailyVO.getProjectId()).getName())
|
||||||
.setUserName(userDAO.getUserById(projectDailyDO.getUserId()).getNickname());
|
.setUserName(userDAO.getUserById(projectDailyDO.getUserId()).getNickname());
|
||||||
|
//用户是否有权限删除
|
||||||
|
if (projectDailyDO.getUserId().equals(projectDAO.
|
||||||
|
getProjectById(projectDailyVO.getProjectId()).getPrincipalId())) {
|
||||||
|
projectDailyVO.setIsAllowDelete(true);
|
||||||
|
} else {
|
||||||
|
projectDailyVO.setIsAllowDelete(false);
|
||||||
|
}
|
||||||
|
|
||||||
// 向 结果封装类数组 添加对应 日报封装类
|
// 向 结果封装类数组 添加对应 日报封装类
|
||||||
projectDailyVOS.add(projectDailyVO);
|
projectDailyVOS.add(projectDailyVO);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,13 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
private final ProjectMapper projectMapper;
|
private final ProjectMapper projectMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取用户未审核的数据(只包括管理项目下未审核的数据)
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param page: 当前页码
|
||||||
|
* @Param pageSize: 每页大小
|
||||||
|
* @Param request: request请求
|
||||||
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse getUserPendingApprovalReview(Integer page,
|
public BaseResponse getUserPendingApprovalReview(Integer page,
|
||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
|
@ -86,7 +93,6 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
reviewData.addAll(reviewDOS);
|
reviewData.addAll(reviewDOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
||||||
|
@ -94,7 +100,6 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
//按照申请时间降序排序
|
//按照申请时间降序排序
|
||||||
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -113,6 +118,13 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取我的审核数据(用户管理项目下与自己的记录)
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param page: 当前页码
|
||||||
|
* @Param pageSize: 每页大小
|
||||||
|
* @Param request: request请求
|
||||||
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse getUserReview(Integer page,
|
public BaseResponse getUserReview(Integer page,
|
||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
|
@ -124,42 +136,13 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
//存储审核数据的数组
|
//存储审核数据的数组
|
||||||
List<ReviewDO> reviewData = new ArrayList<>();
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
//先获取用户为项目负责人的项目列表
|
//先获取用户管理下的所有审核信息
|
||||||
projectDAO.getProjectByPrincipalUser(userId);
|
reviewData.addAll(getAllReviewFromProject(userId));
|
||||||
|
|
||||||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectAllReviewFromProject(projectDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubsystem(projectChildDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubmodule(projectModuleDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取自己的审核记录
|
//获取自己的审核记录
|
||||||
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
|
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
|
||||||
reviewData.addAll(myReviewDO);
|
reviewData.addAll(myReviewDO);
|
||||||
|
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
.collect(Collectors.toMap(ReviewDO::getId, review -> review, (existing, replacement) -> existing))
|
||||||
|
@ -185,6 +168,12 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 添加审核接口
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param reviewAddVO: 审核添加实体类
|
||||||
|
* @Param request: request请求
|
||||||
|
**/
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
|
public BaseResponse addReview(ReviewAddVO reviewAddVO, HttpServletRequest request) {
|
||||||
|
|
||||||
|
@ -223,6 +212,9 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
|
|
||||||
//定义申请者id
|
//定义申请者id
|
||||||
reviewDO.setSenderId(userId);
|
reviewDO.setSenderId(userId);
|
||||||
|
reviewDO.setProjectId(Long.valueOf(reviewAddVO.getProjectId()));
|
||||||
|
reviewDO.setProjectChildId(Long.valueOf(reviewAddVO.getProjectChildId()));
|
||||||
|
reviewDO.setProjectModuleId(Long.valueOf(reviewAddVO.getProjectModuleId()));
|
||||||
//添加数据
|
//添加数据
|
||||||
reviewDAO.addReview(reviewDO);
|
reviewDAO.addReview(reviewDO);
|
||||||
|
|
||||||
|
@ -257,20 +249,11 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse searchReview(String content,
|
public BaseResponse searchReview(String content,
|
||||||
Short statue,
|
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
Integer page, Integer pageSize) {
|
Integer page, Integer pageSize) {
|
||||||
|
|
||||||
List<ReviewVO> reviewVOS = new ArrayList<>();
|
// 获取我的审核数据
|
||||||
|
List<ReviewVO> reviewVOS = getReview(request);
|
||||||
// 根据判断结果筛选
|
|
||||||
if (statue == null || statue.equals("")) {
|
|
||||||
List<ReviewVO> reviewVOs = getReview(request);
|
|
||||||
reviewVOS.addAll(reviewVOs);
|
|
||||||
} else {
|
|
||||||
List<ReviewVO> reviewVOs = getReviewsByResult(request, statue);
|
|
||||||
reviewVOS.addAll(reviewVOs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据内容筛选
|
// 根据内容筛选
|
||||||
if (content == null || content.equals("")) {
|
if (content == null || content.equals("")) {
|
||||||
|
@ -291,6 +274,32 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
return ResultUtil.success(reviewDataVO);
|
return ResultUtil.success(reviewDataVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseResponse searchReviewRecords(String content,
|
||||||
|
Short statue,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Integer page,
|
||||||
|
Integer pageSize) {
|
||||||
|
|
||||||
|
// 获取审核记录数据
|
||||||
|
List<ReviewVO> reviewVOS = getReviewsByResult(request, statue);
|
||||||
|
|
||||||
|
// 根据内容筛选
|
||||||
|
if (content == null || content.equals("")) {
|
||||||
|
//封装结果类与数据总数
|
||||||
|
ReviewDataVO reviewDataVO = getReviewsByPage(reviewVOS, page, pageSize);
|
||||||
|
return ResultUtil.success(reviewDataVO);
|
||||||
|
} else {
|
||||||
|
reviewVOS = reviewVOS.stream()
|
||||||
|
.filter(reviewVO -> reviewVO.getName().contains(content) || reviewVO.getContent().contains(content))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
//封装结果类与数据总数
|
||||||
|
ReviewDataVO reviewDataVO = getReviewsByPage(reviewVOS, page, pageSize);
|
||||||
|
|
||||||
|
return ResultUtil.success(reviewDataVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<ReviewVO> getReview(HttpServletRequest request) {
|
private List<ReviewVO> getReview(HttpServletRequest request) {
|
||||||
|
@ -300,36 +309,8 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
//存储审核数据的数组
|
//存储审核数据的数组
|
||||||
List<ReviewDO> reviewData = new ArrayList<>();
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
//先获取用户为项目负责人的项目列表
|
//获取用户管理的项目下的审核数据
|
||||||
projectDAO.getProjectByPrincipalUser(userId);
|
reviewData.addAll(getAllReviewFromProject(userId));
|
||||||
|
|
||||||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectAllReviewFromProject(projectDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubsystem(projectChildDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
|
||||||
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
|
||||||
//查询每个项目下所有的审核信息
|
|
||||||
List<ReviewDO> reviewDOS = reviewDAO.
|
|
||||||
selectReviewFromSubmodule(projectModuleDO.getId());
|
|
||||||
//封装VO类
|
|
||||||
reviewData.addAll(reviewDOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
|
@ -373,7 +354,9 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
.setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName())
|
.setProjectName(projectDAO.getProjectById(reviewDO.getProjectId()).getName())
|
||||||
.setProjectChildName(projectMapper.getProjectChildById(
|
.setProjectChildName(projectMapper.getProjectChildById(
|
||||||
Math.toIntExact(reviewDO.getProjectChildId())).getName())
|
Math.toIntExact(reviewDO.getProjectChildId())).getName())
|
||||||
.setResult(Processing.turnReviewResult(reviewDO.getReviewResult()));
|
.setResult(Processing.turnReviewResult(reviewDO.getReviewResult()))
|
||||||
|
.setSenderId(Long.valueOf(reviewDO.getSenderId()))
|
||||||
|
.setRecipientId(reviewDO.getRecipientId());
|
||||||
// 赋值可为空属性并进行判断
|
// 赋值可为空属性并进行判断
|
||||||
if (reviewDO.getRecipientId() != null) {
|
if (reviewDO.getRecipientId() != null) {
|
||||||
reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname());
|
reviewVO.setRecipientName(userMapper.getUserById(reviewDO.getRecipientId()).getNickname());
|
||||||
|
@ -395,15 +378,14 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
public List<ReviewVO> getReviewsByResult(
|
public List<ReviewVO> getReviewsByResult(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
Short result) {
|
Short result) {
|
||||||
|
|
||||||
// 获取用户
|
// 获取用户
|
||||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
|
|
||||||
//存储审核数据的数组
|
//存储审核数据的数组
|
||||||
List<ReviewDO> reviewData = new ArrayList<>();
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
//先获取用户为项目负责人的项目列表
|
//如果审核结果不为空,则根据审核结果进行审查
|
||||||
projectDAO.getProjectByPrincipalUser(userId);
|
if (result != null) {
|
||||||
|
|
||||||
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
||||||
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
||||||
|
@ -437,8 +419,17 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取自己的审核记录
|
// 获取自己的审核记录
|
||||||
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUser(userId);
|
List<ReviewDO> myReviewDO = reviewDAO.getReviewByUserAndResult(userId, result);
|
||||||
reviewData.addAll(myReviewDO);
|
reviewData.addAll(myReviewDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果审核结果为空,获取全部
|
||||||
|
if (result == null) {
|
||||||
|
//获取用户管理项目下的所有审核数据
|
||||||
|
reviewData.addAll(getAllReviewFromProject(userId));
|
||||||
|
//获取用户自己的所有审核数据
|
||||||
|
reviewData.addAll(reviewDAO.getReviewByUser(userId));
|
||||||
|
}
|
||||||
|
|
||||||
//根据id进行去重
|
//根据id进行去重
|
||||||
reviewData = reviewData.stream()
|
reviewData = reviewData.stream()
|
||||||
|
@ -447,7 +438,6 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
//按照申请时间降序排序
|
//按照申请时间降序排序
|
||||||
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
Collections.sort(reviewData, new Comparator<ReviewDO>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -460,6 +450,13 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 审核数据分页处理
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param allReviews: 审核数据
|
||||||
|
* @Param page: 当前页码
|
||||||
|
* @Param pageSize: 每页大小
|
||||||
|
**/
|
||||||
public ReviewDataVO getReviewsByPage(List<ReviewVO> allReviews, int page, int pageSize) {
|
public ReviewDataVO getReviewsByPage(List<ReviewVO> allReviews, int page, int pageSize) {
|
||||||
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
ReviewDataVO reviewDataVO = new ReviewDataVO();
|
||||||
int total = allReviews.size();
|
int total = allReviews.size();
|
||||||
|
@ -478,6 +475,48 @@ public class ReviewServiceImpl implements ReviewService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取用户管理项目下的所有审核数据
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param userId:
|
||||||
|
**/
|
||||||
|
public List<ReviewDO> getAllReviewFromProject(Long userId) {
|
||||||
|
|
||||||
|
List<ReviewDO> reviewData = new ArrayList<>();
|
||||||
|
|
||||||
|
//先从用户为 项目负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectDO projectDO : projectDAO.getProjectByPrincipalUser(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectAllReviewFromProject(projectDO.getId());
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
//在从用户为 子系统负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectChildDO projectChildDO : projectDAO.getAllProjectChildByUId(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectReviewFromSubsystem(projectChildDO.getId());
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//在从用户为 子模块负责人 的项目中获取对应 审核信息
|
||||||
|
for (ProjectModuleDO projectModuleDO : projectDAO.getAllModuleByUId(userId)) {
|
||||||
|
//查询每个项目下所有的审核信息
|
||||||
|
List<ReviewDO> reviewDOS = reviewDAO.
|
||||||
|
selectReviewFromSubmodule(projectModuleDO.getId());
|
||||||
|
//封装VO类
|
||||||
|
reviewData.addAll(reviewDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
return reviewData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,9 @@ public enum ErrorCode {
|
||||||
PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"),
|
PROJECT_NOT_USER("ProjectNotUser", 40020, "项目无此用户"),
|
||||||
PROJECT_CHILD_NOT_EXIST("ProjectChildNotExist", 40021, "子系统不存在"),
|
PROJECT_CHILD_NOT_EXIST("ProjectChildNotExist", 40021, "子系统不存在"),
|
||||||
MODULE_NOT_EXIST("ModuleNotExist", 40022, "模块不存在"),
|
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, "未找到对应审核信息");
|
REVIEW_NOT_EXIST("ReviewNotExit", 40101, "未找到对应审核信息");
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,9 @@ import org.springframework.validation.ObjectError;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.text.ParseException;
|
||||||
import java.util.Comparator;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <h1>自定义快捷工具类</h1>
|
* <h1>自定义快捷工具类</h1>
|
||||||
|
@ -409,4 +408,26 @@ public class Processing {
|
||||||
int toIndex = Math.min(fromIndex + pageSize, list.size());
|
int toIndex = Math.min(fromIndex + pageSize, list.size());
|
||||||
return list.subList(fromIndex, toIndex);
|
return list.subList(fromIndex, toIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 字符与时间类型转换方法
|
||||||
|
* @Date: 2024/4/19
|
||||||
|
* @Param dateString:
|
||||||
|
**/
|
||||||
|
public static Date convertStringToDate(String dateString) {
|
||||||
|
if (dateString.isEmpty()) {
|
||||||
|
return null; // 如果字符串为空,返回空的Date对象
|
||||||
|
} else {
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
try {
|
||||||
|
return dateFormat.parse(dateString);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
<!-- 插入方法的 SQL 语句 -->
|
<!-- 插入方法的 SQL 语句 -->
|
||||||
<insert id="insert" parameterType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
<insert id="insert" parameterType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
insert into oa_project_daily
|
insert into organize_oa.oa_project_daily
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="userId != null">user_id,</if>
|
<if test="userId != null">user_id,</if>
|
||||||
<if test="projectId != null">project_id,</if>
|
<if test="projectId != null">project_id,</if>
|
||||||
|
@ -27,15 +27,57 @@
|
||||||
|
|
||||||
<select id="getProjectDailyByUser" parameterType="java.lang.Long"
|
<select id="getProjectDailyByUser" parameterType="java.lang.Long"
|
||||||
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
select * from oa_project_daily where user_id = #{uid}
|
select * from organize_oa.oa_project_daily where user_id = #{uid}
|
||||||
and is_delete = 0
|
and is_delete = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getProjectDailyByProject" parameterType="java.lang.Long"
|
<select id="getProjectDailyByProject" parameterType="java.lang.Long"
|
||||||
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
select * from oa_project_daily where user_id = #{pid}
|
select * from organize_oa.oa_project_daily where user_id = #{pid}
|
||||||
|
and is_delete = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getProjectDailyByProjectAndTime" parameterType="java.util.Map"
|
||||||
|
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
|
select * from organize_oa.oa_project_daily
|
||||||
|
where project_id = #{id}
|
||||||
|
and created_at between #{beginTime} and #{endTime}
|
||||||
|
and is_delete = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getProjectDailyByUserAndTime" parameterType="java.util.Map"
|
||||||
|
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
|
select * from organize_oa.oa_project_daily
|
||||||
|
where user_id = #{userId}
|
||||||
|
and created_at between #{beginTime} and #{endTime}
|
||||||
and is_delete = 0
|
and is_delete = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="getDailyById" parameterType="java.lang.Integer"
|
||||||
|
resultType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
|
select * from organize_oa.oa_project_daily
|
||||||
|
where id = #{id}
|
||||||
|
and is_delete = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<delete id="deleteDailyById" parameterType="java.lang.Integer">
|
||||||
|
UPDATE organize_oa.oa_project_daily
|
||||||
|
SET is_delete = 1
|
||||||
|
WHERE id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<update id="updateDaily" parameterType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||||
|
UPDATE organize_oa.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>
|
</mapper>
|
Loading…
Reference in New Issue
Block a user