|
|
@@ -16,7 +16,6 @@ import com.sundot.airport.check.domain.CheckLargeScreenCorrectionQueryParamDto;
|
|
16
|
16
|
import com.sundot.airport.check.domain.CheckLargeScreenHomePageCheckCorrectionSqlDto;
|
|
17
|
17
|
import com.sundot.airport.check.domain.CheckLargeScreenHomePageCheckRecordSqlDto;
|
|
18
|
18
|
import com.sundot.airport.check.domain.CheckLargeScreenHomePageDto;
|
|
19
|
|
-import com.sundot.airport.check.domain.CheckLargeScreenHomePageUserInfoSqlDto;
|
|
20
|
19
|
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteDto;
|
|
21
|
20
|
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteItemDto;
|
|
22
|
21
|
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteUserDto;
|
|
|
@@ -32,6 +31,7 @@ import com.sundot.airport.common.constant.CacheConstants;
|
|
32
|
31
|
import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
|
|
33
|
32
|
import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageItemDto;
|
|
34
|
33
|
import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageRankingDto;
|
|
|
34
|
+import com.sundot.airport.common.core.domain.LargeScreenHomePageUserInfoSqlDto;
|
|
35
|
35
|
import com.sundot.airport.common.core.domain.SysLargeScreenDetailDto;
|
|
36
|
36
|
import com.sundot.airport.common.core.domain.entity.SysDept;
|
|
37
|
37
|
import com.sundot.airport.common.core.domain.entity.SysDictData;
|
|
|
@@ -2036,7 +2036,18 @@ public class CheckLargeScreenServiceImpl implements ICheckLargeScreenService {
|
|
2036
|
2036
|
* @return 首页
|
|
2037
|
2037
|
*/
|
|
2038
|
2038
|
@Override
|
|
2039
|
|
- public CheckLargeScreenHomePageDto homePage(BaseLargeScreenQueryParamDto dto) {
|
|
|
2039
|
+ public CheckLargeScreenHomePageDto homePage(BaseLargeScreenQueryParamDto dto, String source) {
|
|
|
2040
|
+ if (StrUtil.equals(SourceTypeEnum.web.getCode(), source)) {
|
|
|
2041
|
+ List<SysDept> sysDeptList = sysDeptService.selectAllDept(SecurityUtils.getLoginUser().getDeptId());
|
|
|
2042
|
+ Collections.reverse(sysDeptList);
|
|
|
2043
|
+ SysDept sysDept = sysDeptList.stream().filter(x -> StrUtil.equals(DeptType.STATION.getCode(), x.getDeptType())).findFirst().orElse(null);
|
|
|
2044
|
+ if (ObjectUtil.isNull(sysDept)) {
|
|
|
2045
|
+ throw new ServiceException("未查询到站级部门信息");
|
|
|
2046
|
+ }
|
|
|
2047
|
+ dto.setUserId(null);
|
|
|
2048
|
+ dto.setDeptId(sysDept.getDeptId());
|
|
|
2049
|
+ }
|
|
|
2050
|
+
|
|
2040
|
2051
|
if (ObjUtil.isNull(dto.getUserId()) && ObjUtil.isNull(dto.getDeptId())) {
|
|
2041
|
2052
|
throw new ServiceException("用户ID和部门ID不能同时为空");
|
|
2042
|
2053
|
}
|
|
|
@@ -2396,47 +2407,47 @@ public class CheckLargeScreenServiceImpl implements ICheckLargeScreenService {
|
|
2396
|
2407
|
@Override
|
|
2397
|
2408
|
public List<CheckLargeScreenHomePageItemDto> getCheckLargeScreenHomePageItemDtoList(BaseLargeScreenQueryParamDto dto) {
|
|
2398
|
2409
|
List<CheckLargeScreenHomePageItemDto> result = new ArrayList<>();
|
|
2399
|
|
- String key = CacheConstants.USER_CHECK_PASS_RATE_KEY + dto.getStartDate() + ":" + dto.getEndDate() + ":" + dto.getSpecifiedDate();
|
|
2400
|
|
- List<CheckLargeScreenHomePageItemDto> cacheList = redisCache.getCacheList(key);
|
|
2401
|
|
- if (CollUtil.isNotEmpty(cacheList)) {
|
|
2402
|
|
- result.addAll(cacheList);
|
|
2403
|
|
- } else {
|
|
2404
|
|
- List<CheckLargeScreenHomePageUserInfoSqlDto> userInfoListAll = checkLargeScreenMapper.homePageUserInfo();
|
|
2405
|
|
- if (CollUtil.isEmpty(userInfoListAll)) {
|
|
2406
|
|
- return Collections.emptyList();
|
|
2407
|
|
- }
|
|
2408
|
|
- List<CheckLargeScreenHomePageCheckRecordSqlDto> checkRecordListAll = checkLargeScreenMapper.homePageCheckRecord(dto);
|
|
2409
|
|
- if (CollUtil.isEmpty(checkRecordListAll)) {
|
|
2410
|
|
- return Collections.emptyList();
|
|
2411
|
|
- }
|
|
2412
|
|
- userInfoListAll.forEach(userInfoSqlDto -> {
|
|
2413
|
|
- CheckLargeScreenHomePageItemDto itemDto = new CheckLargeScreenHomePageItemDto();
|
|
2414
|
|
- itemDto.setId(userInfoSqlDto.getUserId());
|
|
2415
|
|
- itemDto.setName(userInfoSqlDto.getNickName());
|
|
2416
|
|
- List<CheckLargeScreenHomePageCheckRecordSqlDto> brigadeList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.BRIGADE_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getBrigadeId(), checkRecordSqlDto.getCheckedBrigadeId())).collect(Collectors.toList());
|
|
2417
|
|
- long brigadeTotal = brigadeList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2418
|
|
- long brigadeUnqualifiedNum = brigadeList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2419
|
|
- long brigadeQualifiedNum = brigadeTotal - brigadeUnqualifiedNum;
|
|
2420
|
|
- List<CheckLargeScreenHomePageCheckRecordSqlDto> departmentList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.DEPARTMENT_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getDepartmentId(), checkRecordSqlDto.getCheckedDepartmentId())).collect(Collectors.toList());
|
|
2421
|
|
- long departmentTotal = departmentList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2422
|
|
- long departmentUnqualifiedNum = departmentList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2423
|
|
- long departmentQualifiedNum = departmentTotal - departmentUnqualifiedNum;
|
|
2424
|
|
- List<CheckLargeScreenHomePageCheckRecordSqlDto> teamList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.TEAM_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getTeamId(), checkRecordSqlDto.getCheckedTeamId())).collect(Collectors.toList());
|
|
2425
|
|
- long teamTotal = teamList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2426
|
|
- long teamUnqualifiedNum = teamList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2427
|
|
- long teamQualifiedNum = teamTotal - teamUnqualifiedNum;
|
|
2428
|
|
- List<CheckLargeScreenHomePageCheckRecordSqlDto> personalList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.PERSONNEL_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getUserId(), checkRecordSqlDto.getCheckedPersonnelId())).collect(Collectors.toList());
|
|
2429
|
|
- long personalTotal = personalList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2430
|
|
- long personalUnqualifiedNum = personalList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
2431
|
|
- long personalQualifiedNum = personalTotal - personalUnqualifiedNum;
|
|
2432
|
|
- long total = personalTotal + teamTotal + departmentTotal + brigadeTotal;
|
|
2433
|
|
- long qualifiedNum = brigadeQualifiedNum + departmentQualifiedNum + teamQualifiedNum + personalQualifiedNum;
|
|
2434
|
|
- itemDto.setPassRate(total == 0 ? BigDecimal.ONE : new BigDecimal(qualifiedNum).divide(new BigDecimal(total), 4, RoundingMode.HALF_UP));
|
|
2435
|
|
- result.add(itemDto);
|
|
2436
|
|
- });
|
|
2437
|
|
- redisCache.setCacheList(key, result);
|
|
2438
|
|
- redisCache.expire(key, 6, TimeUnit.HOURS);
|
|
|
2410
|
+// String key = CacheConstants.USER_CHECK_PASS_RATE_KEY + dto.getStartDate() + ":" + dto.getEndDate() + ":" + dto.getSpecifiedDate();
|
|
|
2411
|
+// List<CheckLargeScreenHomePageItemDto> cacheList = redisCache.getCacheList(key);
|
|
|
2412
|
+// if (CollUtil.isNotEmpty(cacheList)) {
|
|
|
2413
|
+// result.addAll(cacheList);
|
|
|
2414
|
+// } else {
|
|
|
2415
|
+ List<LargeScreenHomePageUserInfoSqlDto> userInfoListAll = sysUserService.homePageUserInfo();
|
|
|
2416
|
+ if (CollUtil.isEmpty(userInfoListAll)) {
|
|
|
2417
|
+ return Collections.emptyList();
|
|
2439
|
2418
|
}
|
|
|
2419
|
+ List<CheckLargeScreenHomePageCheckRecordSqlDto> checkRecordListAll = checkLargeScreenMapper.homePageCheckRecord(dto);
|
|
|
2420
|
+ if (CollUtil.isEmpty(checkRecordListAll)) {
|
|
|
2421
|
+ return Collections.emptyList();
|
|
|
2422
|
+ }
|
|
|
2423
|
+ userInfoListAll.forEach(userInfoSqlDto -> {
|
|
|
2424
|
+ CheckLargeScreenHomePageItemDto itemDto = new CheckLargeScreenHomePageItemDto();
|
|
|
2425
|
+ itemDto.setId(userInfoSqlDto.getUserId());
|
|
|
2426
|
+ itemDto.setName(userInfoSqlDto.getNickName());
|
|
|
2427
|
+ List<CheckLargeScreenHomePageCheckRecordSqlDto> brigadeList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.BRIGADE_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getBrigadeId(), checkRecordSqlDto.getCheckedBrigadeId())).collect(Collectors.toList());
|
|
|
2428
|
+ long brigadeTotal = brigadeList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2429
|
+ long brigadeUnqualifiedNum = brigadeList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2430
|
+ long brigadeQualifiedNum = brigadeTotal - brigadeUnqualifiedNum;
|
|
|
2431
|
+ List<CheckLargeScreenHomePageCheckRecordSqlDto> departmentList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.DEPARTMENT_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getDepartmentId(), checkRecordSqlDto.getCheckedDepartmentId())).collect(Collectors.toList());
|
|
|
2432
|
+ long departmentTotal = departmentList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2433
|
+ long departmentUnqualifiedNum = departmentList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2434
|
+ long departmentQualifiedNum = departmentTotal - departmentUnqualifiedNum;
|
|
|
2435
|
+ List<CheckLargeScreenHomePageCheckRecordSqlDto> teamList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.TEAM_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getTeamId(), checkRecordSqlDto.getCheckedTeamId())).collect(Collectors.toList());
|
|
|
2436
|
+ long teamTotal = teamList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2437
|
+ long teamUnqualifiedNum = teamList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2438
|
+ long teamQualifiedNum = teamTotal - teamUnqualifiedNum;
|
|
|
2439
|
+ List<CheckLargeScreenHomePageCheckRecordSqlDto> personalList = checkRecordListAll.stream().filter(checkRecordSqlDto -> StrUtil.equals(checkRecordSqlDto.getCheckedLevel(), CheckLevelEnum.PERSONNEL_LEVEL.getCode()) && ObjUtil.equals(userInfoSqlDto.getUserId(), checkRecordSqlDto.getCheckedPersonnelId())).collect(Collectors.toList());
|
|
|
2440
|
+ long personalTotal = personalList.stream().map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2441
|
+ long personalUnqualifiedNum = personalList.stream().filter(item -> ObjUtil.equals(userInfoSqlDto.getUserId(), item.getUserId())).map(CheckLargeScreenHomePageCheckRecordSqlDto::getId).distinct().count();
|
|
|
2442
|
+ long personalQualifiedNum = personalTotal - personalUnqualifiedNum;
|
|
|
2443
|
+ long total = personalTotal + teamTotal + departmentTotal + brigadeTotal;
|
|
|
2444
|
+ long qualifiedNum = brigadeQualifiedNum + departmentQualifiedNum + teamQualifiedNum + personalQualifiedNum;
|
|
|
2445
|
+ itemDto.setPassRate(total == 0 ? BigDecimal.ONE : new BigDecimal(qualifiedNum).divide(new BigDecimal(total), 4, RoundingMode.HALF_UP));
|
|
|
2446
|
+ result.add(itemDto);
|
|
|
2447
|
+ });
|
|
|
2448
|
+// redisCache.setCacheList(key, result);
|
|
|
2449
|
+// redisCache.expire(key, 6, TimeUnit.HOURS);
|
|
|
2450
|
+// }
|
|
2440
|
2451
|
return result;
|
|
2441
|
2452
|
}
|
|
2442
|
2453
|
|