whycxzp
2021-10-08 524e0bb84da4506e9e04420a8e55fcb9ced8b55f
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
66
package com.whyc.schedule;
 
import com.whyc.dto.AnalysisMonFieldDTO;
import com.whyc.service.AnalysisMonFieldService;
import com.whyc.service.BatteryDataService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
 
@Slf4j
@Component
public class AnalysisSchedule {
 
    @Resource
    private BatteryDataService dataService;
 
    @Resource
    private AnalysisMonFieldService service;
 
    @Scheduled(cron = "0 0 0 * * ?")
    @Transactional
    public void analysisMonVol(){
        List<AnalysisMonFieldDTO> analysisMonFieldList = dataService.monFieldStatistics("mon_vol","mon_tmp");
        //排除null值
        List<AnalysisMonFieldDTO> MonFieldList = analysisMonFieldList.stream().filter(Objects::nonNull).collect(Collectors.toList());
        //单体电压/温度数据更新到分析表中
        service.updateBatch("tb_mon_vol",MonFieldList);
        service.updateBatch("tb_mon_tmp",MonFieldList);
 
        System.out.println(System.currentTimeMillis()+":分析单体电压/温度");
 
    }
 
    @Scheduled(cron = "0 0 0 * * ?")
    @Transactional
    public void analysisMonRes(){
        List<AnalysisMonFieldDTO> analysisMonResList = dataService.monResStatistics();
        //排除null值
        List<AnalysisMonFieldDTO> monResList = analysisMonResList.stream().filter(Objects::nonNull).collect(Collectors.toList());
        //单体内阻更新到分析表中
        service.updateBatch("tb_mon_res",monResList);
        System.out.println(System.currentTimeMillis()+":分析单体电阻");
    }
 
    /**
     * 首先:查询所有的所有的测试数据stop表
     * 查询所有stop表中所有单体的最后一笔的单体容量,求最小值,最大值,平均值
     * 将结果放置到容量表
     */
    @Scheduled(cron = "0 0 0 * * ?")
    @Transactional
    public void analysisMonCap(){
        List<AnalysisMonFieldDTO> analysisMonCapList = dataService.monCapStatistics();
        //排除null值
        List<AnalysisMonFieldDTO> monCapList = analysisMonCapList.stream().filter(Objects::nonNull).collect(Collectors.toList());
        //单体容量更新到分析表中
        service.updateBatch("tb_mon_cap",monCapList);
        System.out.println(System.currentTimeMillis()+":分析单体容量");
    }
}