|
@@ -99,6 +99,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
@Resource
|
|
|
private ProfessionMapper professionMapper;
|
|
|
@Resource
|
|
|
+ private LeaveSheetMapper leaveSheetMapper;
|
|
|
+ @Resource
|
|
|
private ReportProfessionProgressService reportProfessionProgressService;
|
|
|
@Resource
|
|
|
private ProjectProfessionMapper projectProfessionMapper;
|
|
@@ -720,7 +722,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (finishedTaskIds.size() > 0) {
|
|
|
Task fTask = new Task();
|
|
|
fTask.setTaskStatus(1);
|
|
|
- fTask.setFinishDate(LocalDate.now());
|
|
|
+ LocalDate createDate = reportList.get(0).getCreateDate();
|
|
|
+ fTask.setFinishDate(createDate);
|
|
|
taskMapper.update(fTask, new QueryWrapper<Task>().in("id", finishedTaskIds));
|
|
|
taskService.notifyMileStoneFinish(companyId, finishedTaskIds);
|
|
|
}
|
|
@@ -2159,7 +2162,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
userMonthWorks.add(mon);
|
|
|
});
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
//对于全部的用户已填日报,对比请假的数据,进行填充
|
|
|
+ TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
|
+ //获取钉钉的请假日期
|
|
|
+ List<LeaveSheet> leaveSheets = null;
|
|
|
+ if (timeType.getSyncDingding() == 1) {
|
|
|
+ List<String> userIds = new ArrayList<>();
|
|
|
+ for (UserMonthWork work : userMonthWorks) {
|
|
|
+ userIds.add(work.userId);
|
|
|
+ }
|
|
|
+ if (userIds.size() > 0) {
|
|
|
+ leaveSheets = leaveSheetMapper.selectList(
|
|
|
+ new QueryWrapper<LeaveSheet>().eq("company_id", companyId).in("owner_id", userIds).ge("end_date", startDate).le("start_date", endDate));
|
|
|
+ }
|
|
|
+ }
|
|
|
for (UserMonthWork userMonthWork : userMonthWorks) {
|
|
|
List<Map<String, Object>> worktimeList = userMonthWork.worktimeList;
|
|
|
//获取到该员工请假的数据
|
|
@@ -2186,6 +2203,40 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
worktimeList.add(leaveMap);
|
|
|
}
|
|
|
});
|
|
|
+ //钉钉请假的数据
|
|
|
+ if (timeType.getSyncDingding() == 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();
|
|
|
+ LocalDate endDate1 = leave.getEndDate();
|
|
|
+ //该范围内的都算请假
|
|
|
+ int i=0;
|
|
|
+ while(true) {
|
|
|
+ LocalDate workDate = startDate1.plusDays(i);
|
|
|
+ String leaveDateStr = dateTimeFormatter.format(workDate);
|
|
|
+ Optional<Map<String, Object>> find = worktimeList.stream().filter(w->((String)w.get("createDate")).equals(leaveDateStr)).findFirst();
|
|
|
+ if (find.isPresent()) {
|
|
|
+ //打卡的有记录,加上请假
|
|
|
+ Object str = find.get().get("workingTime");
|
|
|
+ if (str instanceof Double) {
|
|
|
+ String newStr = (double)find.get().get("workingTime")+"(请假)";
|
|
|
+ find.get().put("workingTime", newStr);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //没有对应的打卡记录,直接加上当天请假
|
|
|
+ Map<String, Object> leaveMap = new HashMap<>();
|
|
|
+ leaveMap.put("createDate", leaveDateStr);
|
|
|
+ leaveMap.put("workingTime", "请假");
|
|
|
+ worktimeList.add(leaveMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (workDate.isEqual(endDate1)) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
HashMap map = new HashMap();
|
|
|
List<HashMap> days = new ArrayList<HashMap>();
|
|
@@ -2567,6 +2618,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
if (timeType.getCustomDegreeActive() == 1) {
|
|
|
titles.add(timeType.getCustomDegreeName());
|
|
|
}
|
|
|
+ //是否启用了自定义数值
|
|
|
+ if (timeType.getCustomDataActive() == 1) {
|
|
|
+ titles.add(timeType.getCustomDataName());
|
|
|
+ }
|
|
|
if (timeType.getShowFillauditTime() == 1) {
|
|
|
titles.add("填写时间");
|
|
|
titles.add("审核人");
|
|
@@ -2751,7 +2806,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
row.createCell(index).setCellValue(map.get("degreeName") != null?map.get("degreeName").toString():"");
|
|
|
index++;
|
|
|
}
|
|
|
- //
|
|
|
+ //是否启用了自定义数值
|
|
|
+ if (timeType.getCustomDataActive() == 1) {
|
|
|
+ row.createCell(index).setCellValue(map.get("customData") != null?map.get("customData").toString():"");
|
|
|
+ index++;
|
|
|
+ }
|
|
|
if (timeType.getShowFillauditTime() == 1) {
|
|
|
row.createCell(index).setCellValue(sdf.format((Date)map.get("time")));
|
|
|
index++;
|