|
@@ -10380,12 +10380,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg getReportTimeLessThanCardTimeList(String date) {
|
|
|
|
|
|
+ public HttpRespMsg getReportTimeLessThanCardTimeList(String date, Integer deptId, String userId) {
|
|
//获取自己的考勤未填满的记录
|
|
//获取自己的考勤未填满的记录
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
Integer companyId = user.getCompanyId();
|
|
Integer companyId = user.getCompanyId();
|
|
//获取考勤表记录
|
|
//获取考勤表记录
|
|
- List<UserCorpwxTime> userCorpwxTimeList = null;
|
|
|
|
|
|
+ List<UserCorpwxTime> userCorpwxTimeList = new ArrayList<>();
|
|
//date格式为2024-09, 需要获取该月的第一天和最后一天
|
|
//date格式为2024-09, 需要获取该月的第一天和最后一天
|
|
LocalDate firstDay = LocalDate.parse(date + "-01");
|
|
LocalDate firstDay = LocalDate.parse(date + "-01");
|
|
LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
|
|
LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
|
|
@@ -10393,15 +10393,45 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全公司工时");
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全公司工时");
|
|
List<User> manageUserList = new ArrayList<>();
|
|
List<User> manageUserList = new ArrayList<>();
|
|
if (canViewAll) {
|
|
if (canViewAll) {
|
|
- userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).between("create_date", firstDay, lastDay));
|
|
|
|
- manageUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
|
|
|
|
|
|
+ if (!StringUtils.isEmpty(userId)) {
|
|
|
|
+ User findUser = userMapper.selectById(userId);
|
|
|
|
+ if (findUser != null) {
|
|
|
|
+ userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).eq("corpwx_userid", findUser.getCorpwxUserid()).between("create_date", firstDay, lastDay));
|
|
|
|
+ manageUserList.add(findUser);
|
|
|
|
+ }
|
|
|
|
+ } else if (deptId != null) {
|
|
|
|
+ //按部门过滤
|
|
|
|
+ List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
|
+ List<Integer> allSubDeptIds = departmentService.getDeptIncludeSubDeptIds(deptId, allDeptList);
|
|
|
|
+ manageUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allSubDeptIds));
|
|
|
|
+ if (manageUserList.size() > 0) {
|
|
|
|
+ List<String> collect = manageUserList.stream().map(User::getCorpwxUserid).collect(Collectors.toList());
|
|
|
|
+ userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).in("corpwx_userid", collect).between("create_date", firstDay, lastDay));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).between("create_date", firstDay, lastDay));
|
|
|
|
+ manageUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
//是否是部门负责人
|
|
//是否是部门负责人
|
|
List<Integer> allDeptIds = getAllVisibleDeptIdList(user, departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId)));
|
|
List<Integer> allDeptIds = getAllVisibleDeptIdList(user, departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId)));
|
|
if (allDeptIds.size() > 0) {
|
|
if (allDeptIds.size() > 0) {
|
|
- //有部门工时的查看权限
|
|
|
|
- //取部门的人员
|
|
|
|
- manageUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allDeptIds));
|
|
|
|
|
|
+ if (!StringUtils.isEmpty(userId)) {
|
|
|
|
+ User findUser = userMapper.selectById(userId);
|
|
|
|
+ if (findUser != null) {
|
|
|
|
+ manageUserList.add(findUser);
|
|
|
|
+ }
|
|
|
|
+ } else if (deptId != null) {
|
|
|
|
+ //按部门过滤
|
|
|
|
+ if (allDeptIds.contains(deptId)) {
|
|
|
|
+ List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
|
+ List<Integer> allSubDeptIds = departmentService.getDeptIncludeSubDeptIds(deptId, allDeptList);
|
|
|
|
+ manageUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allSubDeptIds));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //取部门的人员
|
|
|
|
+ manageUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allDeptIds));
|
|
|
|
+ }
|
|
//如果自己不在manageUserList中,加进去
|
|
//如果自己不在manageUserList中,加进去
|
|
if (!manageUserList.stream().anyMatch(u -> u.getId().equals(user.getId()))) {
|
|
if (!manageUserList.stream().anyMatch(u -> u.getId().equals(user.getId()))) {
|
|
manageUserList.add(user);
|
|
manageUserList.add(user);
|
|
@@ -10429,17 +10459,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
//获取填报工时记录表
|
|
//获取填报工时记录表
|
|
List<Report> reportList = new ArrayList<>();
|
|
List<Report> reportList = new ArrayList<>();
|
|
- if (canViewAll) {
|
|
|
|
|
|
+ if (canViewAll && StringUtils.isEmpty(userId) && deptId == null) {
|
|
|
|
+ //查看全公司的
|
|
reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").eq("company_id", companyId).between("create_date", firstDay, lastDay).groupBy("creator_id,create_date"));
|
|
reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").eq("company_id", companyId).between("create_date", firstDay, lastDay).groupBy("creator_id,create_date"));
|
|
} else if (manageUserList.size() > 0) {
|
|
} else if (manageUserList.size() > 0) {
|
|
List<String> userIdList = manageUserList.stream().map(User::getId).collect(Collectors.toList());
|
|
List<String> userIdList = manageUserList.stream().map(User::getId).collect(Collectors.toList());
|
|
- reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").in("creator_id", userIdList).between("create_date", firstDay, lastDay).groupBy("creator_id,create_date"));
|
|
|
|
- } else {
|
|
|
|
- reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").eq("creator_id", user.getId()).between("create_date", firstDay, lastDay).groupBy("creator_id,create_date"));
|
|
|
|
|
|
+ if (userIdList.size() > 0) {
|
|
|
|
+ if (userIdList.size() == 1) {
|
|
|
|
+ //按单个人匹配
|
|
|
|
+ reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").eq("creator_id", userIdList.get(0)).between("create_date", firstDay, lastDay).groupBy("creator_id,create_date"));
|
|
|
|
+ } else {
|
|
|
|
+ reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").in("creator_id", userIdList).between("create_date", firstDay, lastDay).groupBy("creator_id,create_date"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
//比对userCorpwxTimeList和reportList,找出工时未填满的记录
|
|
//比对userCorpwxTimeList和reportList,找出工时未填满的记录
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
+ System.out.println("reportList size=" + reportList.size());
|
|
|
|
+ System.out.println("userCorpwxTimeList size=" + userCorpwxTimeList.size());
|
|
for (UserCorpwxTime corpwxTime : userCorpwxTimeList) {
|
|
for (UserCorpwxTime corpwxTime : userCorpwxTimeList) {
|
|
boolean isMatch = true;
|
|
boolean isMatch = true;
|
|
double reportTime = 0;
|
|
double reportTime = 0;
|