ReportService.java
5.21 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.ruoyi.service;
import com.ruoyi.driver.domain.Driver;
import com.ruoyi.driver.mapper.DriverMapper;
import com.ruoyi.driver.mapper.DriverSchedulingMapper;
import com.ruoyi.eexception.domain.EquipmentException;
import com.ruoyi.eexception.mapper.EquipmentExceptionMapper;
import com.ruoyi.in.domain.SignIn;
import com.ruoyi.in.mapper.SignInMapper;
import com.ruoyi.pojo.entity.DriverScheduling;
import com.ruoyi.pojo.request.ReportViewRequestVo;
import com.ruoyi.pojo.request.ReportErrorRequestVo;
import com.ruoyi.pojo.response.ReportErrorResponseVo;
import com.ruoyi.pojo.response.ReportSignInResponseVo;
import com.ruoyi.pojo.response.ReportViewResponseVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static com.ruoyi.common.ErrorTypeProperties.EQUIPMENT_ERROR;
import static com.ruoyi.common.ErrorTypeProperties.SIGN_IN_ERROR;
/**
* @author 20412
*/
@Service
public class ReportService {
@Autowired
private SignInMapper signInMapper;
@Autowired
private EquipmentExceptionMapper exceptionMapper;
@Autowired
private DriverMapper driverMapper;
@Resource
private SchedulingService schedulingService;
@Autowired
private DriverSchedulingMapper schedulingMapper;
/**
* 查询报表信息
*/
public List<ReportViewResponseVo> getReportScrollViewTable(ReportViewRequestVo requestVo, HttpServletResponse response) {
List<ReportViewResponseVo> reportScrollViewTable = schedulingService.queryReportTableResponseVo(requestVo,response);
return reportScrollViewTable;
}
public List<ReportErrorResponseVo> getErrorReportList(ReportErrorRequestVo request) {
// 获取基础报表信息
List<SignIn> signInList = signInMapper.getSignErrorList(request);
List<EquipmentException> exceptionList = exceptionMapper.getEquipmentErrorList(request);
// 封装到集合返回前端
List<ReportErrorResponseVo> responses = new ArrayList<>();
// 获取对应名称
Set<String> jobCodes = new HashSet<>();
signInList.stream().forEach(item -> {
jobCodes.add(item.getJobCode());
});
exceptionList.stream().forEach(item -> {
jobCodes.add(item.getJobCode());
});
Map<String, String> names = driverMapper.getNameByJobCode(jobCodes).stream().collect(Collectors.toMap(Driver::getJobCode, Driver::getPersonnelName));
if (SIGN_IN_ERROR.equals(request.getErrorType())) {
copyToResponse(names, signInList, responses);
} else if (EQUIPMENT_ERROR.equals(request.getErrorType())) {
copyToResponseByException(names, exceptionList, responses);
} else {
copyToResponse(names, signInList, responses);
copyToResponseByException(names, exceptionList, responses);
}
responses = sortListByCreateTime(responses);
// 清除缓存
jobCodes.clear();
signInList.clear();
exceptionList.clear();
return responses;
}
private List<ReportErrorResponseVo> sortListByCreateTime(List<ReportErrorResponseVo> responses) {
responses = responses.stream().sorted(Comparator.comparing(ReportErrorResponseVo::getCreateTime, Comparator.reverseOrder())).collect(Collectors.toList());
return responses;
}
private void copyToResponseByException(Map<String, String> names, List<EquipmentException> exceptionList, List<ReportErrorResponseVo> responses) {
exceptionList.forEach(item -> {
ReportErrorResponseVo vo = new ReportErrorResponseVo();
vo.setName(names.get(item.getJobCode()));
vo.setImage(item.getImage());
vo.setRemark(item.getRemark());
vo.setCreateTime(item.getCreateTime());
vo.setDeviceId(item.getDeviceId());
vo.setErrorType(EQUIPMENT_ERROR);
responses.add(vo);
});
}
private void copyToResponse(Map<String, String> names, List<SignIn> signInList, List<ReportErrorResponseVo> responses) {
signInList.forEach(item -> {
ReportErrorResponseVo vo = new ReportErrorResponseVo();
vo.setName(names.get(item.getJobCode()));
vo.setImage(item.getImage());
vo.setRemark(item.getRemark());
vo.setCreateTime(item.getCreateTime());
vo.setJobCode(item.getJobCode());
// vo.setDeviceId();
vo.setErrorType(SIGN_IN_ERROR);
responses.add(vo);
});
}
public String getDateDay(Date createTime) {
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
return simple.format(createTime);
}
public List<ReportViewResponseVo> exportReportList(ReportViewRequestVo requestVo, HttpServletResponse response) {
return null;
}
public List<DriverScheduling> getReportDetail(ReportViewRequestVo vo, HttpServletResponse response) {
List<DriverScheduling> toDay = schedulingMapper.queryToDay(vo.getDate(), vo.getName(), vo.getJobCode(), vo.getLineName());
return null;
}
}