|
@@ -4204,6 +4204,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String token = request.getHeader("TOKEN");
|
|
|
User user = userMapper.selectById(token);
|
|
|
Integer companyId = user.getCompanyId();
|
|
|
+ Company company = companyMapper.selectById(companyId);
|
|
|
//String[] weekDayCHN = {"周一","周二","周三","周四","周五","周六","周日"};
|
|
|
String[] weekDayCHN = {MessageUtils.message("week.Monday"),MessageUtils.message("week.Tuesday"),MessageUtils.message("week.Wednesday"),MessageUtils.message("week.Thursday"),MessageUtils.message("week.Friday"),MessageUtils.message("week.Saturday"),MessageUtils.message("week.Sunday")};
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
@@ -4304,9 +4305,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
//对于全部的用户已填日报,对比请假的数据,进行填充
|
|
|
TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
|
- //获取钉钉的请假日期
|
|
|
+ //获取请假数据(本系统内的、钉钉和泛微同步的)
|
|
|
List<LeaveSheet> leaveSheets = null;
|
|
|
- if (timeType.getSyncDingding() == 1||timeType.getSyncFanwei()==1) {
|
|
|
+ if (timeType.getSyncDingding() == 1||timeType.getSyncFanwei()==1 || company.getPackageOa() == 1) {
|
|
|
List<String> userIds = new ArrayList<>();
|
|
|
for (UserMonthWork work : userMonthWorks) {
|
|
|
userIds.add(work.userId);
|
|
@@ -4326,6 +4327,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //处理企业微信的请假数据
|
|
|
curUserCorpTime.forEach(corpTime->{
|
|
|
java.sql.Date leaveDate = (java.sql.Date)corpTime.get("create_date");
|
|
|
String leaveDateStr = sdf.format(leaveDate);
|
|
@@ -4344,7 +4346,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
});
|
|
|
//钉钉请假的数据
|
|
|
- if ((timeType.getSyncDingding() == 1 || timeType.getSyncFanwei()==1)&& leaveSheets != null && leaveSheets.size() > 0) {
|
|
|
+ if ((timeType.getSyncDingding() == 1 || timeType.getSyncFanwei()==1 || company.getPackageOa() == 1)&& leaveSheets != null && leaveSheets.size() > 0) {
|
|
|
List<LeaveSheet> curUserLeaveList = leaveSheets.stream().filter(leave -> leave.getOwnerId().equals(userMonthWork.userId)).collect(Collectors.toList());
|
|
|
curUserLeaveList.forEach(leave->{
|
|
|
LocalDate startDate1 = leave.getStartDate();
|
|
@@ -4364,11 +4366,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
find.get().put("workingTime", newStr);
|
|
|
}
|
|
|
} else {
|
|
|
- //没有对应的打卡记录,直接加上当天请假
|
|
|
- Map<String, Object> leaveMap = new HashMap<>();
|
|
|
- leaveMap.put("createDate", leaveDateStr);
|
|
|
- leaveMap.put("workingTime", MessageUtils.message("leave.leaveOfDay"));
|
|
|
- worktimeList.add(leaveMap);
|
|
|
+ //没有对应的打卡记录,直接加上当天请假,该日为工作日的情况下,标记为请假
|
|
|
+ if (WorkDayCalculateUtils.isWorkDay(workDate)) {
|
|
|
+ Map<String, Object> leaveMap = new HashMap<>();
|
|
|
+ leaveMap.put("createDate", leaveDateStr);
|
|
|
+ leaveMap.put("workingTime", MessageUtils.message("leave.leaveOfDay"));
|
|
|
+ worktimeList.add(leaveMap);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (workDate.isEqual(endDate1)) {
|
|
@@ -4412,17 +4416,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
List<UserMonthWork> userMonthWorks = (List<UserMonthWork>) map.get("list");
|
|
|
List<List<String>> dataList = new ArrayList<>();
|
|
|
List<String> titleList = new ArrayList<>();
|
|
|
-// titleList.add("序号");
|
|
|
-// titleList.add("姓名");
|
|
|
-// titleList.add("部门");
|
|
|
- titleList.add(MessageUtils.message("entry.serialNo"));
|
|
|
- titleList.add(MessageUtils.message("entry.name"));
|
|
|
- titleList.add(MessageUtils.message("excel.department"));
|
|
|
+ titleList.add(MessageUtils.message("entry.serialNo"));//序号
|
|
|
+ titleList.add(MessageUtils.message("entry.name"));//姓名
|
|
|
+ titleList.add(MessageUtils.message("excel.department"));//部门
|
|
|
days.forEach(d->{
|
|
|
-// String dateStr = (String)d.get("date");
|
|
|
-// LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
-// String chn = weekDayCHN[date.getDayOfWeek().getValue()-1];
|
|
|
-// String m = ""+date.getMonthValue();
|
|
|
titleList.add((String)d.get("label"));
|
|
|
});
|
|
|
dataList.add(titleList);
|
|
@@ -4432,7 +4429,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
dataItem.add(""+(i+1));
|
|
|
|
|
|
List<Map<String, Object>> worktimeList = userMonthWork.worktimeList;
|
|
|
- //dataItem.add(userMonthWork.name+(worktimeList.size()==0?"(未填)":""));
|
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
dataItem.add("$userName="+(userMonthWork.corpwxUserId==null?"":userMonthWork.corpwxUserId)+"$"+(worktimeList.size()==0?"("+MessageUtils.message("entry.noFill")+")":""));
|
|
|
dataItem.add("$departmentName="+(userMonthWork.departmentName==null?"":userMonthWork.departmentName)+"$");
|
|
@@ -4443,10 +4439,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.0");
|
|
|
//找到那一天的工作时间
|
|
|
days.forEach(d->{
|
|
|
-// String dateStr = startDate;
|
|
|
-// LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
-// //计算当前遍历到的那一天
|
|
|
-// date = date.plusDays(d-1);
|
|
|
final String fDateStr = (String)d.get("date");
|
|
|
Optional<Map<String, Object>> op = worktimeList.stream().filter(m -> ((String) m.get("createDate")).equals(fDateStr)).findFirst();
|
|
|
if (op.isPresent()) {
|