|
@@ -6425,6 +6425,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
User user = userMapper.selectById(request.getHeader("TOKEN"));
|
|
|
List<User> allRangeUserList = new ArrayList<>();
|
|
|
Integer companyId = user.getCompanyId();
|
|
|
+ TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
|
|
|
//获取部门的所有子部门
|
|
|
List<Department> departments = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
|
|
@@ -6514,7 +6515,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
continue;
|
|
|
}
|
|
|
//去掉非工作日
|
|
|
- Boolean workDay = timeTypeService.isWorkDay(companyId, date);
|
|
|
+ Boolean workDay = timeTypeService.isWorkDay(companyId, date, timeType);
|
|
|
if (!workDay){
|
|
|
continue;
|
|
|
}
|
|
@@ -6620,24 +6621,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id,create_date,creator_id, state").eq("company_id", companyId).between("create_date", localStart, localEnd));
|
|
|
List<User> allRangeUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("report_status",0));
|
|
|
List<Map<String, Object>> noReportDataList = new ArrayList<Map<String, Object>>();
|
|
|
+ TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
|
long cnt = localStart.until(localEnd, ChronoUnit.DAYS);
|
|
|
- //判断用户注册的平台类型
|
|
|
-// int platform = 0;
|
|
|
-// if (allRangeUserList.size() > 0) {
|
|
|
-// User user = allRangeUserList.get(0);
|
|
|
-// if (user.getCorpwxUserid() != null) {
|
|
|
-// platform = 1;
|
|
|
-// } else if (user.getWxOpenid() != null) {
|
|
|
-// platform = 2;
|
|
|
-// } else if (user.getDingdingUserid() != null) {
|
|
|
-// platform = 3;
|
|
|
-// } else if (user.getFeishuUserid() != null) {
|
|
|
-// platform = 4;
|
|
|
-// }
|
|
|
-// }
|
|
|
- //已驳回的数据
|
|
|
+ //查询请假数据,请假的不算漏填,状态为已通过(0)或者待审核的(1)
|
|
|
+ List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().select("owner_id,start_date, end_date").eq("company_id", companyId).le("status", 1).gt("end_date", localStart).lt("start_date",localEnd));
|
|
|
//按人员过滤
|
|
|
for (User curUser: allRangeUserList){
|
|
|
+ //判断此用户当天是否请假,请假的不算
|
|
|
for (int i=0;i<=cnt; i++) {
|
|
|
LocalDate date = localStart.plusDays(i);
|
|
|
//入职日期以前 不需要添加 跳出
|
|
@@ -6649,10 +6639,17 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
continue;
|
|
|
}
|
|
|
//去掉非工作日
|
|
|
- Boolean workDay = timeTypeService.isWorkDay(companyId, date);
|
|
|
+ Boolean workDay = timeTypeService.isWorkDay(companyId, date, timeType);
|
|
|
if (!workDay){
|
|
|
continue;
|
|
|
}
|
|
|
+ List<LeaveSheet> findList = leaveSheetList.stream().filter(leaveSheet -> leaveSheet.getOwnerId().equals(curUser.getId())).collect(Collectors.toList());
|
|
|
+ boolean leaveOnTheDay = leaveSheetList.stream().anyMatch(leaveSheet -> leaveSheet.getOwnerId().equals(curUser.getId()) &&
|
|
|
+ ((date.isEqual(leaveSheet.getStartDate()) || date.isAfter(leaveSheet.getStartDate()))
|
|
|
+ && (date.isEqual(leaveSheet.getEndDate()) || date.isBefore(leaveSheet.getEndDate()))));
|
|
|
+ if (leaveOnTheDay) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
//不存在已提交或者已通过的日报,视为未提交。包括未填写,待提交,已驳回,已撤销这些状态
|
|
|
if (!reportList.stream().anyMatch(item->item.getCreatorId().equals(curUser.getId())&&item.getCreateDate().isEqual(date)&&(item.getState() == 0 || item.getState() == 1))) {
|
|
|
HashMap map = new HashMap();
|
|
@@ -7642,7 +7639,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (user.getIsActive() == 1 && user.getInductionDate() != null && i.isBefore(user.getInductionDate())){
|
|
|
continue;
|
|
|
}
|
|
|
- Boolean workDay = timeTypeService.isWorkDay(user.getCompanyId(), i);
|
|
|
+ Boolean workDay = timeTypeService.isWorkDay(user.getCompanyId(), i, timeType);
|
|
|
if (workDay){
|
|
|
Double workTime = 0.0;
|
|
|
//添加该日日报进入集合
|