|
@@ -2805,16 +2805,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String token = request.getHeader("Token");
|
|
|
User curUser = userMapper.selectById(token);
|
|
|
Integer companyId = curUser.getCompanyId();
|
|
|
- //获取当日已填写的人员报告
|
|
|
- List<Map<String, Object>> reportNameByDate = reportMapper.getReportNameByDate(date, companyId, null);
|
|
|
|
|
|
- HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
|
- List<Department> allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", curUser.getCompanyId()));
|
|
|
- List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
|
+ List<DepartmentVO> list = null;
|
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司工时");
|
|
|
|
|
|
if (functionList.size() > 0) {
|
|
|
//查看全部的
|
|
|
+ HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
|
+ list = (List<DepartmentVO>) departmentList.data;
|
|
|
//加上未分配的部门
|
|
|
DepartmentVO unAssignedDept = new DepartmentVO();
|
|
|
unAssignedDept.setId(0);
|
|
@@ -2822,6 +2820,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
unAssignedDept.setLabel(MessageUtils.message("department.noDistribution"));
|
|
|
list.add(unAssignedDept);
|
|
|
} else {
|
|
|
+ List<Department> allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", curUser.getCompanyId()));
|
|
|
//按权限查看
|
|
|
boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
//负责的部门:先查担任主要负责人的部门
|
|
@@ -2863,50 +2862,57 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
list = realMDeptList;
|
|
|
+ System.out.println("负责部门的数量:"+list.size());
|
|
|
}
|
|
|
|
|
|
- //获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
|
|
|
- QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("company_id", companyId);
|
|
|
- queryWrapper.and(wrapper->wrapper.eq("is_active", 1).eq("report_status",0)
|
|
|
- .or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
|
|
|
- List<User> userList = userMapper.selectList(queryWrapper);
|
|
|
- List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", companyId));
|
|
|
- LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
- List<HashMap> userMapList = new ArrayList<>();
|
|
|
- LocalDate curDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
- for (User u : userList) {
|
|
|
- //入职日期在当前日期之后的,不要显示
|
|
|
- if (u.getInductionDate() != null && u.getInductionDate().isAfter(curDate)) {
|
|
|
- continue;
|
|
|
+ if (list.size() > 0) {
|
|
|
+ //存在查看权限的部门
|
|
|
+ //获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
|
|
|
+ QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("company_id", companyId);
|
|
|
+ queryWrapper.and(wrapper->wrapper.eq("is_active", 1).eq("report_status",0)
|
|
|
+ .or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
|
|
|
+ List<User> userList = userMapper.selectList(queryWrapper);
|
|
|
+ List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", companyId));
|
|
|
+ LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ List<HashMap> userMapList = new ArrayList<>();
|
|
|
+ LocalDate curDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+
|
|
|
+ //获取当日已填写的人员报告
|
|
|
+ List<Map<String, Object>> reportNameByDate = reportMapper.getReportNameByDate(date, companyId, null);
|
|
|
+ for (User u : userList) {
|
|
|
+ //入职日期在当前日期之后的,不要显示
|
|
|
+ if (u.getInductionDate() != null && u.getInductionDate().isAfter(curDate)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ HashMap<String, Object> user = new HashMap<String, Object>();
|
|
|
+ user.put("id", u.getId());
|
|
|
+ user.put("name", u.getName());
|
|
|
+ user.put("departmentId", u.getDepartmentId());
|
|
|
+ Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
|
|
|
+ //获取角色请假情况 存在同条件下多条请假记录
|
|
|
+ List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(u.getId()) &&
|
|
|
+ ((localDate.isAfter(ls.getStartDate()) || localDate.isEqual(ls.getStartDate())) && (localDate.isBefore(ls.getEndDate()) || localDate.isEqual(ls.getEndDate())))).collect(Collectors.toList());
|
|
|
+ if(leaveSheets.size()>0){
|
|
|
+ Integer leaveType=leaveSheets.get(0).getLeaveType();
|
|
|
+ BigDecimal leaveDays=new BigDecimal(0);
|
|
|
+ BigDecimal leaveTimes=new BigDecimal(0);
|
|
|
+ for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
+ leaveDays=leaveDays.add(new BigDecimal(leaveSheet.getTimeDays()));
|
|
|
+ leaveTimes=leaveTimes.add(new BigDecimal(leaveSheet.getTimeHours()));
|
|
|
+ }
|
|
|
+ user.put("leaveType",leaveType);
|
|
|
+ if(leaveSheets.stream().anyMatch(ls->ls.getTimeType()==0)){
|
|
|
+ user.put("leaveDays",leaveDays);
|
|
|
+ }else user.put("leaveTimes",leaveTimes);
|
|
|
+ }
|
|
|
+ if (first.isPresent()) {
|
|
|
+ user.put("state", first.get().get("state"));
|
|
|
+ user.put("workingTime", first.get().get("workingTime"));
|
|
|
+ }
|
|
|
+ userMapList.add(user);
|
|
|
}
|
|
|
- HashMap<String, Object> user = new HashMap<String, Object>();
|
|
|
- user.put("id", u.getId());
|
|
|
- user.put("name", u.getName());
|
|
|
- user.put("departmentId", u.getDepartmentId());
|
|
|
- Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
|
|
|
- //获取角色请假情况 存在同条件下多条请假记录
|
|
|
- List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(u.getId()) &&
|
|
|
- ((localDate.isAfter(ls.getStartDate()) || localDate.isEqual(ls.getStartDate())) && (localDate.isBefore(ls.getEndDate()) || localDate.isEqual(ls.getEndDate())))).collect(Collectors.toList());
|
|
|
- if(leaveSheets.size()>0){
|
|
|
- Integer leaveType=leaveSheets.get(0).getLeaveType();
|
|
|
- BigDecimal leaveDays=new BigDecimal(0);
|
|
|
- BigDecimal leaveTimes=new BigDecimal(0);
|
|
|
- for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
- leaveDays=leaveDays.add(new BigDecimal(leaveSheet.getTimeDays()));
|
|
|
- leaveTimes=leaveTimes.add(new BigDecimal(leaveSheet.getTimeHours()));
|
|
|
- }
|
|
|
- user.put("leaveType",leaveType);
|
|
|
- if(leaveSheets.stream().anyMatch(ls->ls.getTimeType()==0)){
|
|
|
- user.put("leaveDays",leaveDays);
|
|
|
- }else user.put("leaveTimes",leaveTimes);
|
|
|
- }
|
|
|
- if (first.isPresent()) {
|
|
|
- user.put("state", first.get().get("state"));
|
|
|
- user.put("workingTime", first.get().get("workingTime"));
|
|
|
- }
|
|
|
- userMapList.add(user);
|
|
|
+ fillDeptUser(list, userMapList);
|
|
|
}
|
|
|
- fillDeptUser(list, userMapList);
|
|
|
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
|
msg.data = list;
|