mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-12 04:16:51 +08:00
组织领域查询优化
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.xboe.module.boecase.api;
|
package com.xboe.module.boecase.api;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.xboe.common.PageList;
|
import com.xboe.common.PageList;
|
||||||
import com.xboe.common.Pagination;
|
import com.xboe.common.Pagination;
|
||||||
import com.xboe.common.utils.StringUtil;
|
import com.xboe.common.utils.StringUtil;
|
||||||
@@ -105,9 +106,9 @@ public class CasesApi extends ApiBaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/queryListV2")
|
@PostMapping("/queryListV2")
|
||||||
public JsonResponse<PageList<Cases>> queryCaseBreV2(@Validated CasePageVo req){
|
public JsonResponse<PageList<Cases>> queryCaseBreV2(@Validated @RequestBody CasePageVo req){
|
||||||
String type = req.getType();
|
String type = req.getType();
|
||||||
PageList<Cases> views = null;
|
PageList<Cases> views;
|
||||||
if (type.equals("recommend")) {
|
if (type.equals("recommend")) {
|
||||||
views = casesService.queryRecommendPageCasesV2(req);
|
views = casesService.queryRecommendPageCasesV2(req);
|
||||||
} else {
|
} else {
|
||||||
@@ -115,8 +116,9 @@ public class CasesApi extends ApiBaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(views!=null){
|
if(views!=null){
|
||||||
if(views.getList()!=null && !views.getList().isEmpty()){
|
List<Cases> cases = views.getList();
|
||||||
for (Cases c:views.getList()) {
|
if(CollUtil.isNotEmpty(cases)){
|
||||||
|
for (Cases c: cases) {
|
||||||
StringBuffer stringBuffer = new StringBuffer();
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
List<CasesMajorType> caseId = casesMajorTypeDao.findList(FieldFilters.eq("caseId", c.getId()));
|
List<CasesMajorType> caseId = casesMajorTypeDao.findList(FieldFilters.eq("caseId", c.getId()));
|
||||||
if(caseId!=null && !caseId.isEmpty()){
|
if(caseId!=null && !caseId.isEmpty()){
|
||||||
|
|||||||
@@ -62,21 +62,21 @@ public class CasePageVo extends PageDto {
|
|||||||
|
|
||||||
public List<String> getOrg1() {
|
public List<String> getOrg1() {
|
||||||
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
||||||
return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
return orgDomainDtos.stream().map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getOrg2() {
|
public List<String> getOrg2() {
|
||||||
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
||||||
return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent2).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
return orgDomainDtos.stream().flatMap(it->it.getChildren().stream()).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getOrg3() {
|
public List<String> getOrg3() {
|
||||||
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
||||||
return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent3).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
return orgDomainDtos.stream().flatMap(it->it.getChildren().stream().flatMap(i->i.getChildren().stream())).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,19 +2,17 @@ package com.xboe.module.boecase.dto;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class OrgDomainDto {
|
public class OrgDomainDto {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组织领域1级
|
* 组织领域1级
|
||||||
*/
|
*/
|
||||||
private String orgDomainParent;
|
private String parent;
|
||||||
/**
|
/**
|
||||||
* 组织领域2级
|
* 组织领域子级
|
||||||
*/
|
*/
|
||||||
private String orgDomainParent2;
|
private List<OrgDomainDto> children;
|
||||||
/**
|
|
||||||
* 组织领域3级
|
|
||||||
*/
|
|
||||||
private String orgDomainParent3;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,6 +219,38 @@ public class CasesServiceImpl implements ICasesService {
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
List<OrgDomainDto> orgDomainDtos = caseVo.getOrgDomainDtos();
|
||||||
|
IFieldFilter orgDomain = null;
|
||||||
|
if(CollUtil.isNotEmpty(orgDomainDtos)){
|
||||||
|
for (int i = 0; i < orgDomainDtos.size(); i++) {
|
||||||
|
OrgDomainDto domainDto = orgDomainDtos.get(i);
|
||||||
|
String orgDomainParent = domainDto.getParent();
|
||||||
|
IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent",orgDomainParent);
|
||||||
|
List<OrgDomainDto> orgDomainParent2 = domainDto.getChildren();
|
||||||
|
if (CollUtil.isNotEmpty(orgDomainParent2)) {
|
||||||
|
List<String> seconds = orgDomainParent2.stream().map(OrgDomainDto::getParent).collect(Collectors.toList());
|
||||||
|
IFieldFilter orgDomainParentFilter = FieldFilters.in("orgDomainParent2", seconds);
|
||||||
|
itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter);
|
||||||
|
}
|
||||||
|
for (OrgDomainDto orgDomainDto : orgDomainParent2) {
|
||||||
|
List<OrgDomainDto> orgDomainParent3 = orgDomainDto.getChildren();
|
||||||
|
if (CollUtil.isNotEmpty(orgDomainParent3)) {
|
||||||
|
List<String> thirds = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList());
|
||||||
|
IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", thirds);
|
||||||
|
itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i==0) {
|
||||||
|
orgDomain = itemFilter;
|
||||||
|
} else {
|
||||||
|
orgDomain = FieldFilters.or(orgDomain, itemFilter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Objects.nonNull(orgDomain)) {
|
||||||
|
filters.add(orgDomain);
|
||||||
|
}
|
||||||
|
|
||||||
if(StringUtils.isNotBlank(caseVo.getCaseType())){
|
if(StringUtils.isNotBlank(caseVo.getCaseType())){
|
||||||
filters.add(FieldFilters.eq("caseType",caseVo.getCaseType()));
|
filters.add(FieldFilters.eq("caseType",caseVo.getCaseType()));
|
||||||
|
|||||||
Reference in New Issue
Block a user