SignReportSummerJob.java
2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.ruoyi.job;
import com.ruoyi.domain.dss.app.vo.SignReportGroupByVo;
import com.ruoyi.domain.sign.in.summary.SignReportDaySummary;
import com.ruoyi.service.SignReportServer;
import com.ruoyi.service.sign.in.summary.SignReportDaySummaryService;
import com.ruoyi.utils.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Slf4j
@Component("signReportSummerJob")
public class SignReportSummerJob implements InitializingBean {
@Autowired
private SignReportServer signReportServer;
@Autowired
private SignReportDaySummaryService signReportDaySummaryService;
public void calSignReportSummary() throws ParseException {
Date date = new Date();
String dateStr = DateUtil.YYYY_MM_LINK.format(DateUtils.addDays(date, -1));
List<SignReportGroupByVo> signReportGroupByVos = signReportServer.querySignReportGroupByDateStrVo(dateStr);
String dateStr1 = DateUtil.YYYY_MM_DD_LINK.format(DateUtils.addDays(date, -1));
if (CollectionUtils.isNotEmpty(signReportGroupByVos)) {
List<SignReportGroupByVo> voList = signReportGroupByVos.stream().filter(s -> StringUtils.equals(s.getDateStr(), dateStr1)).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(voList)) {
SignReportDaySummary summary = new SignReportDaySummary();
summary.setDatestr(dateStr1);
List<SignReportDaySummary> summaries = signReportDaySummaryService.list(summary);
if (CollectionUtils.isNotEmpty(summaries)) {
Set<Integer> ids = summaries.stream().map(SignReportDaySummary::getId).collect(Collectors.toSet());
signReportDaySummaryService.removeByIds(ids);
}
for (SignReportGroupByVo vo : voList) {
BeanUtils.copyProperties(vo, summary);
try {
signReportDaySummaryService.save(summary);
} catch (Exception e) {
log.error("保存签到汇总异常:[{}]", dateStr, e);
}
}
}
}
}
@Override
public void afterPropertiesSet() throws Exception {
}
}