|
@@ -13843,6 +13843,67 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg exportGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer projectId, String groupName, Integer taskType, Integer deptId, Integer taskStatus, HttpServletRequest request) {
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
+ //根据人员权限来获取,
|
|
|
+ String token = request.getHeader("TOKEN");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ List<ProjectLeader> projectLeaderList = projectLeaderService.list(new QueryWrapper<ProjectLeader>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<String> userIds = new ArrayList<>();
|
|
|
+ List<String> userIdsExtra = new ArrayList<>();
|
|
|
+ List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部项目");
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<User> AllUser = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<Integer> projectIds = null;
|
|
|
+ if (functionList.size() == 0) {
|
|
|
+ //担任部门主要负责人
|
|
|
+ if (user.getManageDeptId() != null && user.getManageDeptId() != 0) {
|
|
|
+ List<Integer> allMainManagedDeptIdList = departmentService.getAllMainManagedDeptIdList(user, departmentList);
|
|
|
+ List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allMainManagedDeptIdList));
|
|
|
+ userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //检查是否是项目负责人
|
|
|
+ List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("incharger_id", user.getId()));
|
|
|
+ List<Integer> collect = projectList.stream().map(Project::getId).collect(Collectors.toList());
|
|
|
+ //检查担任项目LA:小组长
|
|
|
+ List<ProjectLeader> leaderList = projectLeaderService.list(new QueryWrapper<ProjectLeader>().eq("leader_id", user.getId()));
|
|
|
+ collect.addAll(leaderList.stream().map(ProjectLeader::getProjectId).collect(Collectors.toList()));
|
|
|
+ //项目相关的人员
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ List<Participation> participationList = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", collect));
|
|
|
+ userIds = participationList.stream().map(Participation::getUserId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //把自己加进去
|
|
|
+ if (!userIds.contains(user.getId())) {
|
|
|
+ userIds.add(user.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ //查看全部
|
|
|
+ List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
|
|
|
+ userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(targetUserId)) {
|
|
|
+ userIds = userIds.stream().filter(u->u.equals(targetUserId)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map> mapList = projectMapper.getTaskPlanByMemb(userIds, startDate + " 00:00:00", endDate + " 23:59:59", user.getCompanyId(), user.getId(), deptId, taskStatus);
|
|
|
+
|
|
|
+ QueryWrapper<LeaveSheet> lsQueryWrapper=new QueryWrapper();
|
|
|
+ lsQueryWrapper.in("owner_id", userIds);
|
|
|
+ if (startDate != null && endDate != null) {
|
|
|
+ lsQueryWrapper.le("start_date", endDate).ge("end_date", startDate);
|
|
|
+ }
|
|
|
+ List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(lsQueryWrapper);
|
|
|
+
|
|
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
|
+ map.put("mapList",mapList);
|
|
|
+ map.put("leaveSheetList",leaveSheetList);
|
|
|
+ msg.data=map;
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+
|
|
|
//导出FTE报表数据
|
|
|
@Override
|
|
|
public HttpRespMsg exportFTEData(String monthStart,String monthEnd, String area,Integer departmentId,HttpServletRequest request) {
|