|
|
@@ -47,11 +47,12 @@ public class CheckEfficiencyServiceImpl implements ICheckEfficiencyService {
|
|
47
|
47
|
/**
|
|
48
|
48
|
* 查询巡检合格率统计
|
|
49
|
49
|
*
|
|
50
|
|
- * @param dto 查询参数
|
|
|
50
|
+ * @param dto 查询参数
|
|
|
51
|
+ * @param dimension 统计维度:1-人员、2-班级、3-科级、4-大队级
|
|
51
|
52
|
* @return 巡检合格率统计结果
|
|
52
|
53
|
*/
|
|
53
|
54
|
@Override
|
|
54
|
|
- public CheckEfficiencyDto getCheckEfficiency(BaseLargeScreenQueryParamDto dto) {
|
|
|
55
|
+ public CheckEfficiencyDto getCheckEfficiency(BaseLargeScreenQueryParamDto dto, Integer dimension) {
|
|
55
|
56
|
CheckEfficiencyDto result = new CheckEfficiencyDto();
|
|
56
|
57
|
List<CheckLargeScreenHomePageItemDto> itemListAll = iCheckLargeScreenService.getCheckLargeScreenHomePageItemDtoListAndNull(dto);
|
|
57
|
58
|
// List<SysDept> deptList = sysDeptService.selectDeptInfoAll(new SysDept());
|
|
|
@@ -59,75 +60,83 @@ public class CheckEfficiencyServiceImpl implements ICheckEfficiencyService {
|
|
59
|
60
|
List<SysDept> deptList = sysDeptService.selectChildrenDeptById(topSiteId);
|
|
60
|
61
|
|
|
61
|
62
|
// 获取大队效率排行
|
|
62
|
|
- List<SysDept> brigadeDeptList = deptList.stream().filter(item -> StrUtil.equals(DeptType.BRIGADE.getCode(), item.getDeptType())).collect(Collectors.toList());
|
|
63
|
|
- List<CheckEfficiencyRankDto> brigadeSeizureList = brigadeDeptList
|
|
64
|
|
- .stream()
|
|
65
|
|
- .map(item -> {
|
|
66
|
|
- CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
67
|
|
- rankDto.setId(item.getDeptId());
|
|
68
|
|
- rankDto.setName(item.getDeptName());
|
|
69
|
|
- rankDto.setPassRate(calculate(itemListAll, item.getDeptId()));
|
|
70
|
|
- return rankDto;
|
|
71
|
|
- })
|
|
72
|
|
- .collect(Collectors.toList());
|
|
73
|
|
- brigadeSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
74
|
|
- for (int i = 0; i < brigadeSeizureList.size(); i++) {
|
|
75
|
|
- brigadeSeizureList.get(i).setRank(i + 1);
|
|
|
63
|
+ if (dimension == null || dimension == 4) {
|
|
|
64
|
+ List<SysDept> brigadeDeptList = deptList.stream().filter(item -> StrUtil.equals(DeptType.BRIGADE.getCode(), item.getDeptType())).collect(Collectors.toList());
|
|
|
65
|
+ List<CheckEfficiencyRankDto> brigadeSeizureList = brigadeDeptList
|
|
|
66
|
+ .stream()
|
|
|
67
|
+ .map(item -> {
|
|
|
68
|
+ CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
|
69
|
+ rankDto.setId(item.getDeptId());
|
|
|
70
|
+ rankDto.setName(item.getDeptName());
|
|
|
71
|
+ rankDto.setPassRate(calculate(itemListAll, item.getDeptId()));
|
|
|
72
|
+ return rankDto;
|
|
|
73
|
+ })
|
|
|
74
|
+ .collect(Collectors.toList());
|
|
|
75
|
+ brigadeSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
|
76
|
+ for (int i = 0; i < brigadeSeizureList.size(); i++) {
|
|
|
77
|
+ brigadeSeizureList.get(i).setRank(i + 1);
|
|
|
78
|
+ }
|
|
|
79
|
+ result.setBrigadeRankList(brigadeSeizureList);
|
|
76
|
80
|
}
|
|
77
|
|
- result.setBrigadeRankList(brigadeSeizureList);
|
|
78
|
81
|
|
|
79
|
82
|
// 获取科室效率排行
|
|
80
|
|
- List<SysDept> departmentDeptList = deptList.stream().filter(item -> StrUtil.equals(DeptType.MANAGER.getCode(), item.getDeptType())).collect(Collectors.toList());
|
|
81
|
|
- List<CheckEfficiencyRankDto> departmentSeizureList = departmentDeptList
|
|
82
|
|
- .stream()
|
|
83
|
|
- .map(item -> {
|
|
84
|
|
- CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
85
|
|
- rankDto.setId(item.getDeptId());
|
|
86
|
|
- rankDto.setName(item.getDeptName());
|
|
87
|
|
- rankDto.setPassRate(calculate(itemListAll, item.getDeptId()));
|
|
88
|
|
- return rankDto;
|
|
89
|
|
- })
|
|
90
|
|
- .collect(Collectors.toList());
|
|
91
|
|
- departmentSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
92
|
|
- for (int i = 0; i < departmentSeizureList.size(); i++) {
|
|
93
|
|
- departmentSeizureList.get(i).setRank(i + 1);
|
|
|
83
|
+ if (dimension == null || dimension == 3) {
|
|
|
84
|
+ List<SysDept> departmentDeptList = deptList.stream().filter(item -> StrUtil.equals(DeptType.MANAGER.getCode(), item.getDeptType())).collect(Collectors.toList());
|
|
|
85
|
+ List<CheckEfficiencyRankDto> departmentSeizureList = departmentDeptList
|
|
|
86
|
+ .stream()
|
|
|
87
|
+ .map(item -> {
|
|
|
88
|
+ CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
|
89
|
+ rankDto.setId(item.getDeptId());
|
|
|
90
|
+ rankDto.setName(item.getDeptName());
|
|
|
91
|
+ rankDto.setPassRate(calculate(itemListAll, item.getDeptId()));
|
|
|
92
|
+ return rankDto;
|
|
|
93
|
+ })
|
|
|
94
|
+ .collect(Collectors.toList());
|
|
|
95
|
+ departmentSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
|
96
|
+ for (int i = 0; i < departmentSeizureList.size(); i++) {
|
|
|
97
|
+ departmentSeizureList.get(i).setRank(i + 1);
|
|
|
98
|
+ }
|
|
|
99
|
+ result.setDepartmentRankList(departmentSeizureList);
|
|
94
|
100
|
}
|
|
95
|
|
- result.setDepartmentRankList(departmentSeizureList);
|
|
96
|
101
|
|
|
97
|
102
|
// 获取班组效率排行
|
|
98
|
|
- List<SysDept> teamDeptList = deptList.stream().filter(item -> StrUtil.equals(DeptType.TEAMS.getCode(), item.getDeptType())).collect(Collectors.toList());
|
|
99
|
|
- List<CheckEfficiencyRankDto> teamSeizureList = teamDeptList
|
|
100
|
|
- .stream()
|
|
101
|
|
- .map(item -> {
|
|
102
|
|
- CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
103
|
|
- rankDto.setId(item.getDeptId());
|
|
104
|
|
- rankDto.setName(item.getDeptName());
|
|
105
|
|
- rankDto.setPassRate(calculate(itemListAll, item.getDeptId()));
|
|
106
|
|
- return rankDto;
|
|
107
|
|
- })
|
|
108
|
|
- .collect(Collectors.toList());
|
|
109
|
|
- teamSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
110
|
|
- for (int i = 0; i < teamSeizureList.size(); i++) {
|
|
111
|
|
- teamSeizureList.get(i).setRank(i + 1);
|
|
|
103
|
+ if (dimension == null || dimension == 2) {
|
|
|
104
|
+ List<SysDept> teamDeptList = deptList.stream().filter(item -> StrUtil.equals(DeptType.TEAMS.getCode(), item.getDeptType())).collect(Collectors.toList());
|
|
|
105
|
+ List<CheckEfficiencyRankDto> teamSeizureList = teamDeptList
|
|
|
106
|
+ .stream()
|
|
|
107
|
+ .map(item -> {
|
|
|
108
|
+ CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
|
109
|
+ rankDto.setId(item.getDeptId());
|
|
|
110
|
+ rankDto.setName(item.getDeptName());
|
|
|
111
|
+ rankDto.setPassRate(calculate(itemListAll, item.getDeptId()));
|
|
|
112
|
+ return rankDto;
|
|
|
113
|
+ })
|
|
|
114
|
+ .collect(Collectors.toList());
|
|
|
115
|
+ teamSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
|
116
|
+ for (int i = 0; i < teamSeizureList.size(); i++) {
|
|
|
117
|
+ teamSeizureList.get(i).setRank(i + 1);
|
|
|
118
|
+ }
|
|
|
119
|
+ result.setTeamRankList(teamSeizureList);
|
|
112
|
120
|
}
|
|
113
|
|
- result.setTeamRankList(teamSeizureList);
|
|
114
|
121
|
|
|
115
|
122
|
// 获取个人效率排行
|
|
116
|
|
- List<CheckEfficiencyRankDto> individualSeizureList = itemListAll
|
|
117
|
|
- .stream()
|
|
118
|
|
- .map(item -> {
|
|
119
|
|
- CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
120
|
|
- rankDto.setId(item.getId());
|
|
121
|
|
- rankDto.setName(item.getName());
|
|
122
|
|
- rankDto.setPassRate(item.getPassRate());
|
|
123
|
|
- return rankDto;
|
|
124
|
|
- })
|
|
125
|
|
- .collect(Collectors.toList());
|
|
126
|
|
- individualSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
127
|
|
- for (int i = 0; i < individualSeizureList.size(); i++) {
|
|
128
|
|
- individualSeizureList.get(i).setRank(i + 1);
|
|
|
123
|
+ if (dimension == null || dimension == 1) {
|
|
|
124
|
+ List<CheckEfficiencyRankDto> individualSeizureList = itemListAll
|
|
|
125
|
+ .stream()
|
|
|
126
|
+ .map(item -> {
|
|
|
127
|
+ CheckEfficiencyRankDto rankDto = new CheckEfficiencyRankDto();
|
|
|
128
|
+ rankDto.setId(item.getId());
|
|
|
129
|
+ rankDto.setName(item.getName());
|
|
|
130
|
+ rankDto.setPassRate(item.getPassRate());
|
|
|
131
|
+ return rankDto;
|
|
|
132
|
+ })
|
|
|
133
|
+ .collect(Collectors.toList());
|
|
|
134
|
+ individualSeizureList.sort((a, b) -> b.getPassRate().compareTo(a.getPassRate()));
|
|
|
135
|
+ for (int i = 0; i < individualSeizureList.size(); i++) {
|
|
|
136
|
+ individualSeizureList.get(i).setRank(i + 1);
|
|
|
137
|
+ }
|
|
|
138
|
+ result.setIndividualRankList(individualSeizureList);
|
|
129
|
139
|
}
|
|
130
|
|
- result.setIndividualRankList(individualSeizureList);
|
|
131
|
140
|
|
|
132
|
141
|
return result;
|
|
133
|
142
|
}
|