| | |
| | | List<String> proIds = projectDepts.stream().map(TProjectDept::getId).collect(Collectors.toList()); |
| | | |
| | | // 拿到抽取的项目部下的所有保洁员 |
| | | List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) |
| | | .in(TProjectDept::getId, proIds)); |
| | | // List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) |
| | | // .in(TProjectDept::getId, proIds)); |
| | | // 获取片区id |
| | | List<String> areaIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); |
| | | List<String> areaIds = projectDepts.stream().map(TProjectDept::getId).collect(Collectors.toList()); |
| | | if(CollectionUtils.isEmpty(areaIds)){ |
| | | return; |
| | | } |
| | |
| | | .in(TCleaner::getProjectId, areaIds)); |
| | | int cleanerSums = num1 * Integer.parseInt(count + ""); |
| | | // 获取每天需要抽取的保洁员数,向上取整 |
| | | if (cleanerSums <cycle){ |
| | | if (cleanerSums < cycle){ |
| | | cleanerSums = cycle; |
| | | } |
| | | int dayCleanerCount = cleanerSums / cycle; |
| | | |
| | | if((cycle - detail.getCurrentValue()) == 1 && cleanerSums % cycle != 0){ |
| | | dayCleanerCount++; |
| | | } |
| | | |
| | | // 获取保洁员权重 |
| | | List<String> cleanerIds = redisCache.getCacheList(detail.getId() + CLEANER_WEIGHT); |
| | |
| | | redisCache.deleteObject(detail.getId() + CLEANER_WEIGHT); |
| | | List<TCleaner> tCleaners1 = randomSelection(cleaners1, dayCleanerCount - tCleaners.size()); |
| | | List<String> cleanIds1 = tCleaners1.stream().map(TCleaner::getId).collect(Collectors.toList()); |
| | | // 将已抽取的项目部id保存到redis中 |
| | | // 将已抽取的保洁员id保存到redis中 |
| | | cleanIds1.addAll(cleanIds); |
| | | redisCache.setCacheList(detail.getId() + CLEANER_WEIGHT, cleanIds1); |
| | | tCleaners.addAll(tCleaners1); |
| | | }else { |