feat(REQ-2106): 投放规则调整
This commit is contained in:
parent
244bae35fc
commit
91b82bc434
@ -28,6 +28,7 @@ public enum MaterialTargetUserTypeEnum {
|
||||
public boolean isDeliverRequired(List<Long> workspaceIds, List<Long> ouIds, List<String> jobCodes,
|
||||
Long loginWorkspaceId, Long loginOuid,
|
||||
JoinedWorkspaceOuJob workspaceOuJob) {
|
||||
log.info("投放全部用户");
|
||||
return true;
|
||||
}
|
||||
},
|
||||
@ -49,26 +50,21 @@ public enum MaterialTargetUserTypeEnum {
|
||||
// 配置全部项目部
|
||||
if (CollectionUtils.isEmpty(workspaceIds)) {
|
||||
// 未加入任何项目部
|
||||
if (Objects.isNull(workspaceJobMap) || workspaceJobMap.isEmpty()){
|
||||
if (Objects.isNull(workspaceJobMap) || workspaceJobMap.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Objects.isNull(loginOuid) || loginOuid == 0L){
|
||||
if (CollectionUtils.isEmpty(jobCodes)){
|
||||
return true;
|
||||
}
|
||||
return jobCodes.stream().anyMatch(jobCode -> workspaceJobMap.values().stream().anyMatch(jobCodeList -> jobCodeList.contains(jobCode)));
|
||||
}else {
|
||||
// 登录了具体的单位且以纯单位身份登录
|
||||
return !CollectionUtils.isEmpty(workspaceOuJob.getOuWorkspaceMap().get(loginOuid));
|
||||
if (CollectionUtils.isEmpty(jobCodes)) {
|
||||
return true;
|
||||
}
|
||||
return jobCodes.stream().anyMatch(jobCode -> workspaceJobMap.values().stream().anyMatch(jobCodeList -> jobCodeList.contains(jobCode)));
|
||||
}
|
||||
|
||||
// 若配置了具体项目部
|
||||
if (Objects.isNull(loginOuid) || loginOuid == 0L) {
|
||||
// 加入的全部项目部与配置的项目部有交集
|
||||
if (workspaceIds.stream().anyMatch(workspaceJobMap::containsKey)){
|
||||
if (CollectionUtils.isEmpty(jobCodes)){
|
||||
if (workspaceIds.stream().anyMatch(workspaceJobMap::containsKey)) {
|
||||
if (CollectionUtils.isEmpty(jobCodes)) {
|
||||
return true;
|
||||
}
|
||||
return workspaceIds.stream().anyMatch(workspaceId -> workspaceJobMap.get(workspaceId).stream().anyMatch(jobCodes::contains));
|
||||
@ -77,13 +73,13 @@ public enum MaterialTargetUserTypeEnum {
|
||||
} else {
|
||||
// 给定了具体登录单位
|
||||
// 登录了具体的单位且以纯单位身份登录
|
||||
if (CollectionUtils.isEmpty(workspaceOuJob.getOuWorkspaceMap().get(loginOuid))){
|
||||
if (CollectionUtils.isEmpty(workspaceOuJob.getOuWorkspaceMap().get(loginOuid))) {
|
||||
return false;
|
||||
}
|
||||
// 以项目部下单位登录
|
||||
// 加入的全部项目部与配置的项目部有交集
|
||||
if (workspaceIds.stream().anyMatch(workspaceJobMap::containsKey)){
|
||||
if (CollectionUtils.isEmpty(jobCodes)){
|
||||
if (workspaceIds.stream().anyMatch(w -> workspaceOuJob.getOuWorkspaceMap().get(loginOuid).stream().anyMatch(w::equals))) {
|
||||
if (CollectionUtils.isEmpty(jobCodes)) {
|
||||
return true;
|
||||
}
|
||||
return workspaceIds.stream().anyMatch(workspaceId -> workspaceJobMap.get(workspaceId).stream().anyMatch(jobCodes::contains));
|
||||
@ -112,13 +108,13 @@ public enum MaterialTargetUserTypeEnum {
|
||||
return true;
|
||||
} else {
|
||||
// 若配置了具体岗位,检查用户加入的所有单位下的岗位是否包含任一配置岗位
|
||||
if (Objects.isNull(loginOuid) || loginOuid == 0L){
|
||||
if (Objects.isNull(loginOuid) || loginOuid == 0L) {
|
||||
return jobCodes.stream().anyMatch(jobCode -> ouJobMap.values().stream()
|
||||
.flatMap(List::stream)
|
||||
.distinct()
|
||||
.collect(Collectors.toList())
|
||||
.contains(jobCode));
|
||||
}else {
|
||||
} else {
|
||||
return jobCodes.stream().anyMatch(jobCode -> ouJobMap.get(loginOuid).stream().anyMatch(jobCodes::contains));
|
||||
}
|
||||
|
||||
@ -128,8 +124,8 @@ public enum MaterialTargetUserTypeEnum {
|
||||
// 若配置了具体单位
|
||||
if (Objects.isNull(loginOuid) || loginOuid == 0L) {
|
||||
// 若登录单位为空(工人APP登录),检查用户加入的单位是否与配置单位有交集
|
||||
if (ouIds.stream().anyMatch(ouJobMap::containsKey)){
|
||||
if (CollectionUtils.isEmpty(jobCodes)){
|
||||
if (ouIds.stream().anyMatch(ouJobMap::containsKey)) {
|
||||
if (CollectionUtils.isEmpty(jobCodes)) {
|
||||
return true;
|
||||
}
|
||||
return ouIds.stream().anyMatch(o -> ouJobMap.get(o).stream().anyMatch(jobCodes::contains));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user