From a0e27bb63a529f6f5f8451fc4faf2f2eb68cba0b Mon Sep 17 00:00:00 2001 From: chen <2280784283@qq.com> Date: Tue, 9 Jul 2024 16:45:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=91=A8=E6=8A=A5=E5=A1=AB?= =?UTF-8?q?=E6=8A=A5=E4=B8=89=E5=B1=82=E7=BB=93=E6=9E=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xqopen/kehui/mapper/ProjectWeeklyDao.java | 6 ++ .../kehui/mapper/xml/ProjectWeeklyDao.xml | 23 +++++ .../action/ProjectDepartmentController.java | 90 ++++++++++++++----- .../project/api/ProjectDepartmentApi.java | 2 +- .../service/IProjectDepartmentService.java | 6 ++ .../impl/IProjectDepartmentServiceImpl.java | 15 ++++ 6 files changed, 118 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/xqopen/kehui/mapper/ProjectWeeklyDao.java b/src/main/java/com/xqopen/kehui/mapper/ProjectWeeklyDao.java index 472181e..413182d 100644 --- a/src/main/java/com/xqopen/kehui/mapper/ProjectWeeklyDao.java +++ b/src/main/java/com/xqopen/kehui/mapper/ProjectWeeklyDao.java @@ -11,4 +11,10 @@ public interface ProjectWeeklyDao extends BaseMapper { List getList(Page page, @Param("projectWeekly") ProjectWeekly projectWeekly); List getListByProId(@Param("page") Page page, @Param("projectWeekly") ProjectWeekly projectWeekly); + + String getDeptId(@Param("userId") String userId); + + List getListByDeptId(@Param("page") Page page, @Param("projectWeekly") ProjectWeekly projectWeekly); + + List showById(@Param("id") String id); } diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml index 4454144..963db6f 100644 --- a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml @@ -51,4 +51,27 @@ + + + + diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java index 863d1f7..ee4f1ab 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java @@ -1,20 +1,25 @@ package com.xqopen.kehui.project.action; import com.alibaba.fastjson.support.spring.FastJsonJsonView; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.xqopen.kehui.Api; +import com.xqopen.kehui.common.entity.SystemUserLogin; +import com.xqopen.kehui.common.service.ISystemUserLoginService; +import com.xqopen.kehui.exception.ErrorCode; import com.xqopen.kehui.exception.XQException; import com.xqopen.kehui.project.api.ProjectDepartmentApi; import com.xqopen.kehui.project.api.ProjectWeeklyApi; -import com.xqopen.kehui.project.dto.ProjectInfoInitDto; -import com.xqopen.kehui.project.dto.ProjectWeeklyAddReq; -import com.xqopen.kehui.project.dto.ProjectWeeklyDto; -import com.xqopen.kehui.project.dto.ProjectWeeklyFindReq; +import com.xqopen.kehui.project.dto.*; import com.xqopen.kehui.project.entity.ProjectWeekly; import com.xqopen.kehui.project.service.IProjectDepartmentService; +import com.xqopen.kehui.project.service.IProjectInfoService; +import com.xqopen.kehui.project.service.IProjectWeeklyService; +import com.xqopen.kehui.util.ApiResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -26,35 +31,74 @@ public class ProjectDepartmentController implements ProjectDepartmentApi { @Autowired private IProjectDepartmentService projectDepartmentService; + @Autowired + IProjectWeeklyService projectWeeklyService; + @Autowired + IProjectInfoService projectInfoService; + @Autowired + ISystemUserLoginService systemUserLoginService; @Override @GetMapping(Api.PROJECT_DEPARTMENT_SHOW) - public String showById(Long userId, Long id) throws XQException { - //1.根据userid获取部门id - //2.根据部门id获取用户名和工作量 - return null; + public String showById(@PathVariable("id") Long id) throws XQException { + //根据项目id获取员工信息 + List list = projectDepartmentService.showById(id.toString()); + return ApiResponse.fillSuccess(list); } @Override @PostMapping(Api.PROJECT_DEPARTMENT) public String list(@RequestHeader("userId") Long userId,@RequestBody ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException { - if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) { - if (!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId)); - if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) { - projectWeeklyFindReq.setPageNo(1); - } - if (projectWeeklyFindReq.getPageSize() == null || projectWeeklyFindReq.getPageSize() == 0) { - projectWeeklyFindReq.setPageSize(10); - } - //根据用户id拿到部门信息 + try { + if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) { + if (!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId)); + if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) { + projectWeeklyFindReq.setPageNo(1); + } + if (projectWeeklyFindReq.getPageSize() == null || projectWeeklyFindReq.getPageSize() == 0) { + projectWeeklyFindReq.setPageSize(10); + } + //根据用户id拿到部门信息 + String deptId = projectDepartmentService.getDeptId(userId.toString()); + Page page = new Page<>(projectWeeklyFindReq.getPageNo(), projectWeeklyFindReq.getPageSize()); + ProjectWeekly projectWeekly = new ProjectWeekly(); + projectWeekly.setDeptId(deptId); + projectWeekly.setIsDeleted("0"); + projectWeekly.setUserId(String.valueOf(userId)); + projectWeekly.setWeeklyType("0"); + List list = projectDepartmentService.getListByDeptId(page, projectWeekly); + //判断当前账号是否是项目专员/负责人 + //因为json里面存的是人事id,通过账号找不到,先把账号id转为人事id + EntityWrapper userLoginEntityWrapper = new EntityWrapper<>(); + userLoginEntityWrapper.eq("id_",userId); + SystemUserLogin systemUserLogin = systemUserLoginService.selectOne(userLoginEntityWrapper); + EntityWrapper weeklyEntityWrapper = new EntityWrapper<>(); + weeklyEntityWrapper.eq("user_id",String.valueOf(systemUserLogin.getUserinfoId())); + weeklyEntityWrapper.eq("weekly_type","1"); + weeklyEntityWrapper.eq("dept_id",""); + weeklyEntityWrapper.eq("is_deleted","1"); + ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper); + if (!ObjectUtils.isEmpty(weekly)) {//如果查到确实是项目专员/负责人,通过项目ID拿到所有人的专项填报 + ProjectWeekly projectWeekly1 = new ProjectWeekly(); + projectWeekly1.setIsDeleted("0"); + projectWeekly1.setWeeklyType("0"); + projectWeekly1.setProjectId(weekly.getProjectId()); + if(!StringUtils.isEmpty(projectWeeklyFindReq.getId()!=null))projectWeekly1.setId(projectWeeklyFindReq.getId()); + if(!StringUtils.isEmpty(projectWeeklyFindReq.getDeptId()!=null))projectWeekly.setDeptId(projectWeeklyFindReq.getDeptId()); + list.addAll(projectWeeklyService.getList(page, projectWeekly1)); + } - Page page = new Page<>(projectWeeklyFindReq.getPageNo(), projectWeeklyFindReq.getPageSize()); - ProjectWeekly projectWeekly = new ProjectWeekly(); - projectWeekly.setIsDeleted("0"); - projectWeekly.setUserId(String.valueOf(userId)); - projectWeekly.setWeeklyType("0"); - List list = projectDepartmentService.getListByProId(page, projectWeekly); + //组装结果集 + ProjectWeeklyListResp listResp = new ProjectWeeklyListResp(); + listResp.setLs(list); + listResp.setPages(page.getPages()); + listResp.setTotal(page.getTotal()); + return ApiResponse.fillSuccess(listResp); + } + } catch (Exception e) { + log.error("ProjectWeeklyController.list", e); + throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null); } return null; } diff --git a/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java b/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java index a495fdf..7eeb400 100644 --- a/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java +++ b/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java @@ -15,7 +15,7 @@ public interface ProjectDepartmentApi { @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), }) - String showById(Long userId, Long id) throws XQException; + String showById(Long id) throws XQException; @ApiOperation(value = "部门周报列表", notes = "部门周报列表", response = ApiResponse.class) @ApiImplicitParams({ diff --git a/src/main/java/com/xqopen/kehui/project/service/IProjectDepartmentService.java b/src/main/java/com/xqopen/kehui/project/service/IProjectDepartmentService.java index c7a8da2..b70b626 100644 --- a/src/main/java/com/xqopen/kehui/project/service/IProjectDepartmentService.java +++ b/src/main/java/com/xqopen/kehui/project/service/IProjectDepartmentService.java @@ -9,4 +9,10 @@ import java.util.List; public interface IProjectDepartmentService extends IService { List getListByProId(Page page, ProjectWeekly projectWeekly); + + String getDeptId(String userId); + + List getListByDeptId(Page page, ProjectWeekly projectWeekly); + + List showById(String id); } diff --git a/src/main/java/com/xqopen/kehui/project/service/impl/IProjectDepartmentServiceImpl.java b/src/main/java/com/xqopen/kehui/project/service/impl/IProjectDepartmentServiceImpl.java index 2875e5e..8b4b15f 100644 --- a/src/main/java/com/xqopen/kehui/project/service/impl/IProjectDepartmentServiceImpl.java +++ b/src/main/java/com/xqopen/kehui/project/service/impl/IProjectDepartmentServiceImpl.java @@ -22,4 +22,19 @@ public class IProjectDepartmentServiceImpl extends ServiceImpl getListByProId(Page page, ProjectWeekly projectWeekly) { return projectWeeklyDao.getListByProId(page,projectWeekly); } + + @Override + public String getDeptId(String userId) { + return projectWeeklyDao.getDeptId(userId); + } + + @Override + public List getListByDeptId(Page page, ProjectWeekly projectWeekly) { + return projectWeeklyDao.getListByDeptId(page,projectWeekly); + } + + @Override + public List showById(String id) { + return projectWeeklyDao.showById(id); + } }