|
@@ -1245,8 +1245,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
.eq("company_id", companyId).eq("leader_id", user.getId()));
|
|
|
if(leaderList!=null&& !leaderList.isEmpty()){
|
|
|
List<Integer> projectIds = leaderList.stream().map(ProjectLeader::getProjectId).distinct().collect(Collectors.toList());
|
|
|
+ projectIds.add(-1);
|
|
|
List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>()
|
|
|
- .in("project_id", projectIds).eq("status",1));
|
|
|
+ .in("id", projectIds).eq("status",1));
|
|
|
httpRespMsg.setData(projectList);
|
|
|
}else {
|
|
|
httpRespMsg.setData(new ArrayList<Project>());
|
|
@@ -4761,6 +4762,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
User user = userMapper.selectById(token);
|
|
|
|
|
|
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()));
|
|
@@ -4821,10 +4823,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if (!leaderList.isEmpty()){
|
|
|
List<Integer> projectIdList = leaderList.stream().map(ProjectLeader::getProjectId).collect(Collectors.toList());
|
|
|
projectIdList.add(-1);
|
|
|
- List<TaskExecutor> executorList = taskExecutorService.list(new QueryWrapper<TaskExecutor>().in("project_id", projectIdList).isNotNull("executor_id"));
|
|
|
- List<String> collectUserIdList = executorList.stream().distinct().map(TaskExecutor::getExecutorId).collect(Collectors.toList());
|
|
|
- collectUserIdList.add("-1");
|
|
|
- List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByGeneralMemb(collectUserIdList, startDate, endDate, user.getCompanyId(), user.getId());
|
|
|
+ List<Participation> participations = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", projectIdList));
|
|
|
+ List<String> userProjectIds = participations.stream().distinct().map(Participation::getUserId).collect(Collectors.toList());
|
|
|
+ userProjectIds.add("-1");
|
|
|
+ userProjectIds.removeAll(userIds);
|
|
|
+ userIdsExtra.addAll(userProjectIds);
|
|
|
+ List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByGeneralMemb(userProjectIds, startDate, endDate, user.getCompanyId(), user.getId(),targetUserId);
|
|
|
+ for (Map map : taskPlanByGeneralMemb) {
|
|
|
+ map.put("leaderOrManager",1);
|
|
|
+ }
|
|
|
ganttData.addAll(taskPlanByGeneralMemb);
|
|
|
}
|
|
|
//找到自己担任项目经理的项目,: is_task_plan==1 ,checkFirstId=自己的id 并且 task_status=3
|
|
@@ -4835,7 +4842,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<TaskExecutor> executorList = taskExecutorService.list(new QueryWrapper<TaskExecutor>().in("project_id", projectIdList).isNotNull("executor_id"));
|
|
|
List<String> collectUserIdList = executorList.stream().distinct().map(TaskExecutor::getExecutorId).collect(Collectors.toList());
|
|
|
collectUserIdList.add("-1");
|
|
|
- List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByProManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId());
|
|
|
+ userIdsExtra.addAll(collectUserIdList);
|
|
|
+ List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByProManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId(),targetUserId);
|
|
|
+ for (Map map : getTaskPlanByProManager) {
|
|
|
+ map.put("leaderOrManager",2);
|
|
|
+ }
|
|
|
ganttData.addAll(getTaskPlanByProManager);
|
|
|
}
|
|
|
|
|
@@ -4846,7 +4857,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<TaskExecutor> executorList = taskExecutorService.list(new QueryWrapper<TaskExecutor>().in("task_id", taskIdList).isNotNull("executor_id"));
|
|
|
List<String> collectUserIdList = executorList.stream().distinct().map(TaskExecutor::getExecutorId).collect(Collectors.toList());
|
|
|
collectUserIdList.add("-1");
|
|
|
- List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByAreaManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId());
|
|
|
+ userIdsExtra.addAll(collectUserIdList);
|
|
|
+ List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByAreaManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId(),targetUserId);
|
|
|
+ for (Map map : getTaskPlanByProManager) {
|
|
|
+ map.put("leaderOrManager",2);
|
|
|
+ }
|
|
|
ganttData.addAll(getTaskPlanByProManager);
|
|
|
}
|
|
|
}
|
|
@@ -4893,6 +4908,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
extraUidList.add(uid);
|
|
|
}
|
|
|
}
|
|
|
+ extraUidList.addAll(userIdsExtra);
|
|
|
if (extraUidList.size() > 0) {
|
|
|
List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("id", extraUidList).eq("is_active", 1));
|
|
|
for (User u : userList) {
|
|
@@ -4921,7 +4937,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if(first.isPresent()){
|
|
|
departmentId=first.get().getDepartmentId();
|
|
|
}
|
|
|
- System.out.println("====================="+departmentId+"======================");
|
|
|
GanttDataItem parent = new GanttDataItem();
|
|
|
parent.id = leaveSheetList.get(i).getOwnerId();
|
|
|
parent.userId = leaveSheetList.get(i).getOwnerId();
|
|
@@ -5140,7 +5155,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
String start_date = sdf.format((Date) map.get("start_date"));
|
|
|
String end_date = sdf.format((Date) map.get("end_date"));
|
|
|
String projectId = ""+ (Integer) map.get("id");
|
|
|
- System.out.println(map);
|
|
|
//String exeId = "任务_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
|
|
|
String exeId = MessageUtils.message("excel.task") + "_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
|
|
|
String taskId = ""+ (Integer) map.get("task_id");
|
|
@@ -5174,6 +5188,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
curItem.setCheckFirstId(map.get("checkFirstId")==null?null:(String) map.get("checkFirstId"));
|
|
|
curItem.setCheckSecondId(map.get("checkSecondId")==null?null:(String) map.get("checkSecondId"));
|
|
|
curItem.setTaskStatus(map.get("taskStatus")==null?null:(Integer)map.get("taskStatus"));
|
|
|
+ curItem.setTaskId(map.get("taskId")==null?null:(Integer)map.get("taskId"));
|
|
|
+ curItem.setLeaderOrManager(map.get("leaderOrManager")==null?null:(Integer)map.get("leaderOrManager"));
|
|
|
curItem.end_date = end_date;
|
|
|
curItem.time = (Integer)map.get("duration");
|
|
|
curItem.parent = lastItemId;
|
|
@@ -5205,6 +5221,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
curItem.setCheckFirstId(map.get("checkFirstId")==null?null:(String) map.get("checkFirstId"));
|
|
|
curItem.setCheckSecondId(map.get("checkSecondId")==null?null:(String) map.get("checkSecondId"));
|
|
|
curItem.setTaskStatus(map.get("taskStatus")==null?null:(Integer)map.get("taskStatus"));
|
|
|
+ curItem.setTaskId(map.get("taskId")==null?null:(Integer)map.get("taskId"));
|
|
|
+ curItem.setLeaderOrManager(map.get("leaderOrManager")==null?null:(Integer)map.get("leaderOrManager"));
|
|
|
curItem.start_date = start_date;
|
|
|
curItem.end_date = end_date;
|
|
|
curItem.time = (Integer)map.get("duration");
|
|
@@ -5225,7 +5243,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
|
|
|
msg.data = itemList;
|
|
|
-
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
@@ -13632,7 +13649,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
//计算日期区间一共几个月
|
|
|
Period period = Period.between(timeStart, timeEnd);
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
- Float planHours = (Float) map.get("planHours");
|
|
|
+ Float planHours = Float.parseFloat( map.get("planHours").toString());
|
|
|
map.put("FTE",Float.parseFloat(planHours == null?"0":planHours.toString())/monthTime);
|
|
|
|
|
|
}
|
|
@@ -13652,7 +13669,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportTaskPlanFTEData(String monthStart, String monthEnd, String area, Integer departmentId, HttpServletRequest request) {
|
|
|
+ public HttpRespMsg exportTaskPlanFTEData(String monthStart, String monthEnd, String area,String userId, Integer departmentId, HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
|
|
@@ -13690,7 +13707,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
LocalDate timeEnd = LocalDate.parse(monthEnd, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
startDate = timeStart.with(TemporalAdjusters.firstDayOfMonth()).toString();
|
|
|
endDate = timeEnd.with(TemporalAdjusters.lastDayOfMonth()).toString();
|
|
|
- List<Map<String, Object>> list = projectMapper.getFTETaskPlanData(user.getCompanyId(), startDate, endDate, null, null, area, user.getId(), null, null, null, deptIds, departmentId);
|
|
|
+ int days = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, 0).size();
|
|
|
+ TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", user.getCompanyId()));
|
|
|
+ Float monthTime = days * allDay.getAllday();
|
|
|
+ List<Map<String, Object>> list = projectMapper.getFTETaskPlanData(user.getCompanyId(), startDate, endDate, null, null, area, userId, null, null, null, deptIds, departmentId);
|
|
|
List<List<String>> dataList=new ArrayList<>();
|
|
|
List<String> titleList=new ArrayList<>();
|
|
|
List<String> subtitle=new ArrayList<>();
|
|
@@ -13711,8 +13731,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
item.add(list.get(i).get("projectCode")==null?"":list.get(i).get("projectCode").toString());
|
|
|
item.add(list.get(i).get("projectName")==null?"":list.get(i).get("projectName").toString());
|
|
|
item.add(list.get(i).get("userName")==null?"":list.get(i).get("userName").toString());
|
|
|
- item.add(list.get(i).get("planHours")==null?"":list.get(i).get("planHours").toString());
|
|
|
- item.add(list.get(i).get("FTE")==null?"":list.get(i).get("FTE").toString());
|
|
|
+ item.add(list.get(i).get("planHours")==null?"": String.valueOf(new BigDecimal(list.get(i).get("planHours").toString()).setScale(2,BigDecimal.ROUND_HALF_UP)));
|
|
|
+ item.add(
|
|
|
+ list.get(i).get("planHours") == null ? "" :
|
|
|
+ new BigDecimal(list.get(i).get("planHours").toString())
|
|
|
+ .divide(
|
|
|
+ BigDecimal.valueOf(monthTime),
|
|
|
+ 2, // 保留2位小数
|
|
|
+ RoundingMode.HALF_UP // 四舍五入
|
|
|
+ )
|
|
|
+ .toString()
|
|
|
+ );
|
|
|
+ dataList.add(item);
|
|
|
}
|
|
|
|
|
|
String fileName = "FTE计划报表"+System.currentTimeMillis();
|