|
|
@@ -285,23 +285,29 @@ public class SysHomePageController extends BaseController {
|
|
285
|
285
|
*/
|
|
286
|
286
|
private List<SysHomePageDetailDto> getSysHomePageDetailDtoList(List<SysHomePageDetailQueryParamDto> dtoList) {
|
|
287
|
287
|
List<SysHomePageDetailDto> result = new ArrayList<>();
|
|
288
|
|
- for (SysHomePageDetailQueryParamDto item : dtoList) {
|
|
289
|
|
- SysHomePageDetailDto resultItem = new SysHomePageDetailDto();
|
|
290
|
|
- resultItem.setId(item.getId());
|
|
291
|
|
- resultItem.setName(item.getName());
|
|
292
|
|
- resultItem.setType(item.getType());
|
|
293
|
|
- resultItem.setLearningGrowthScore(getLearningGrowthScore(item));
|
|
294
|
|
- resultItem.setLearningGrowthScoreGraph(resultItem.getLearningGrowthScore().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP));
|
|
295
|
|
- resultItem.setCheckPassRate(getCheckPassRate(item));
|
|
296
|
|
- resultItem.setCheckPassRateGraph(resultItem.getCheckPassRate());
|
|
297
|
|
- resultItem.setSeizureCount(getSeizureCount(item));
|
|
298
|
|
- resultItem.setSeizureCountGraph(getSeizureCountGraph(item));
|
|
299
|
|
- resultItem.setWorkingHours(getWorkingHours(item));
|
|
300
|
|
- resultItem.setWorkingHoursGraph(getWorkingHoursGraph(item));
|
|
301
|
|
- // 抽问抽答正确率
|
|
302
|
|
- resultItem.setAnswersAccuracy(getAnswersAccuracy(item));
|
|
303
|
|
- resultItem.setAnswersAccuracyGraph(resultItem.getAnswersAccuracy());
|
|
304
|
|
- result.add(resultItem);
|
|
|
288
|
+ // 批量调用前统一初始化部门缓存,避免每次 getAnswersAccuracy 都重复查询数据库
|
|
|
289
|
+ accuracyStatisticsService.initDeptCache();
|
|
|
290
|
+ try {
|
|
|
291
|
+ for (SysHomePageDetailQueryParamDto item : dtoList) {
|
|
|
292
|
+ SysHomePageDetailDto resultItem = new SysHomePageDetailDto();
|
|
|
293
|
+ resultItem.setId(item.getId());
|
|
|
294
|
+ resultItem.setName(item.getName());
|
|
|
295
|
+ resultItem.setType(item.getType());
|
|
|
296
|
+ resultItem.setLearningGrowthScore(getLearningGrowthScore(item));
|
|
|
297
|
+ resultItem.setLearningGrowthScoreGraph(resultItem.getLearningGrowthScore().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP));
|
|
|
298
|
+ resultItem.setCheckPassRate(getCheckPassRate(item));
|
|
|
299
|
+ resultItem.setCheckPassRateGraph(resultItem.getCheckPassRate());
|
|
|
300
|
+ resultItem.setSeizureCount(getSeizureCount(item));
|
|
|
301
|
+ resultItem.setSeizureCountGraph(getSeizureCountGraph(item));
|
|
|
302
|
+ resultItem.setWorkingHours(getWorkingHours(item));
|
|
|
303
|
+ resultItem.setWorkingHoursGraph(getWorkingHoursGraph(item));
|
|
|
304
|
+ // 抽问抽答正确率
|
|
|
305
|
+ resultItem.setAnswersAccuracy(getAnswersAccuracy(item));
|
|
|
306
|
+ resultItem.setAnswersAccuracyGraph(resultItem.getAnswersAccuracy());
|
|
|
307
|
+ result.add(resultItem);
|
|
|
308
|
+ }
|
|
|
309
|
+ } finally {
|
|
|
310
|
+ accuracyStatisticsService.clearDeptCache();
|
|
305
|
311
|
}
|
|
306
|
312
|
return result;
|
|
307
|
313
|
}
|