部门周报填报三层结构代码完善

This commit is contained in:
chen 2024-07-09 16:45:01 +08:00
parent 993736bb64
commit a0e27bb63a
6 changed files with 118 additions and 24 deletions

View File

@ -11,4 +11,10 @@ public interface ProjectWeeklyDao extends BaseMapper<ProjectWeekly> {
List<ProjectWeeklyDto> getList(Page<ProjectWeekly> page, @Param("projectWeekly") ProjectWeekly projectWeekly);
List<ProjectWeeklyDto> getListByProId(@Param("page") Page<ProjectWeekly> page, @Param("projectWeekly") ProjectWeekly projectWeekly);
String getDeptId(@Param("userId") String userId);
List<ProjectWeeklyDto> getListByDeptId(@Param("page") Page<ProjectWeekly> page, @Param("projectWeekly") ProjectWeekly projectWeekly);
List<Object> showById(@Param("id") String id);
}

View File

@ -51,4 +51,27 @@
<select id="getListByProId" resultType="com.xqopen.kehui.project.dto.ProjectWeeklyDto">
</select>
<select id="getListByDeptId" resultType="com.xqopen.kehui.project.dto.ProjectWeeklyDto">
select pw.*,pm.person_name as userName ,pi.project_name as projectName,pi.project_no as projectNo
from project_weekly pw
left join system_user_login sl on cast(pw.user_id as BIGINT)=sl.id_
left join personal_member pm on pm.id_ =sl.userinfo_id
left join project_info pi on pi.id_=cast(pw.project_id as BIGINT)
where
pw.is_complete='0' and pw.dept_id=#{projectWeekly.deptId}
</select>
<select id="getDeptId" resultType="java.lang.String" parameterType="java.lang.String">
select dept_id
from project_weekly
where user_id = #{userId}
</select>
<select id="showById" resultType="java.lang.Object" parameterType="java.lang.String">
select pm.person_name , pw.workload
from project_weekly pw
left join system_user_login sl on cast(pw.user_id as BIGINT)=sl.id_
left join personal_member pm on pm.id_ =sl.userinfo_id
where pw.id_=#{id}
</select>
</mapper>

View File

@ -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,19 +31,26 @@ 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<Object> 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 {
try {
if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) {
if (!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId));
if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) {
@ -48,13 +60,45 @@ public class ProjectDepartmentController implements ProjectDepartmentApi {
projectWeeklyFindReq.setPageSize(10);
}
//根据用户id拿到部门信息
String deptId = projectDepartmentService.getDeptId(userId.toString());
Page<ProjectWeekly> 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<ProjectWeeklyDto> list = projectDepartmentService.getListByProId(page, projectWeekly);
List<ProjectWeeklyDto> list = projectDepartmentService.getListByDeptId(page, projectWeekly);
//判断当前账号是否是项目专员/负责人
//因为json里面存的是人事id通过账号找不到先把账号id转为人事id
EntityWrapper<SystemUserLogin> userLoginEntityWrapper = new EntityWrapper<>();
userLoginEntityWrapper.eq("id_",userId);
SystemUserLogin systemUserLogin = systemUserLoginService.selectOne(userLoginEntityWrapper);
EntityWrapper<ProjectWeekly> 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));
}
//组装结果集
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;
}

View File

@ -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({

View File

@ -9,4 +9,10 @@ import java.util.List;
public interface IProjectDepartmentService extends IService<ProjectWeekly> {
List<ProjectWeeklyDto> getListByProId(Page<ProjectWeekly> page, ProjectWeekly projectWeekly);
String getDeptId(String userId);
List<ProjectWeeklyDto> getListByDeptId(Page<ProjectWeekly> page, ProjectWeekly projectWeekly);
List<Object> showById(String id);
}

View File

@ -22,4 +22,19 @@ public class IProjectDepartmentServiceImpl extends ServiceImpl<ProjectWeeklyDao,
public List<ProjectWeeklyDto> getListByProId(Page<ProjectWeekly> page, ProjectWeekly projectWeekly) {
return projectWeeklyDao.getListByProId(page,projectWeekly);
}
@Override
public String getDeptId(String userId) {
return projectWeeklyDao.getDeptId(userId);
}
@Override
public List<ProjectWeeklyDto> getListByDeptId(Page<ProjectWeekly> page, ProjectWeekly projectWeekly) {
return projectWeeklyDao.getListByDeptId(page,projectWeekly);
}
@Override
public List<Object> showById(String id) {
return projectWeeklyDao.showById(id);
}
}