Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jyzb_platformV2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
赵剑炜
jyzb_platformV2
Commits
18c8fd33
Commit
18c8fd33
authored
Dec 28, 2023
by
赵剑炜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整org的ES查询
parent
ea99add1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
64 行增加
和
14 行删除
+64
-14
QueryOrgReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/query/QueryOrgReq.java
+1
-0
PubOrg.java
jyzb-biz/src/main/java/com/junmp/jyzb/entity/PubOrg.java
+5
-1
PubOrgServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/PubOrgServiceImpl.java
+56
-12
ElasticsearchUtil.java
jyzb-biz/src/main/java/com/junmp/jyzb/utils/ElasticsearchUtil.java
+2
-1
没有找到文件。
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/query/QueryOrgReq.java
View file @
18c8fd33
...
...
@@ -13,6 +13,7 @@ public class QueryOrgReq {
private
String
orgCode
;
@NotNull
(
message
=
"组织机构不能为空"
,
groups
=
{
ValidationApi
.
detail
.
class
})
private
Long
orgId
;
private
Long
currentOrg
;
private
String
orgName
;
private
Long
parentId
;
private
Integer
isDepartment
;
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/entity/PubOrg.java
View file @
18c8fd33
...
...
@@ -158,7 +158,11 @@ public class PubOrg implements Serializable {
*/
@TableField
(
value
=
"d_name"
)
private
String
dName
;
// /**
// * dName2
// */
// @TableField(value = "dName")
// private String dName;
/**
* 联系人
*/
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/PubOrgServiceImpl.java
View file @
18c8fd33
...
...
@@ -10,10 +10,14 @@ import com.junmp.jyzb.api.bean.req.UpdateOrgReq;
import
com.junmp.jyzb.api.exception.JYZBAppException
;
import
com.junmp.jyzb.api.exception.enums.OrgExceptionEnum
;
import
com.junmp.jyzb.api.exception.enums.PubOrgExceptionEnum
;
import
com.junmp.jyzb.entity.EquipmentType
;
import
com.junmp.jyzb.entity.PubOrg
;
import
com.junmp.jyzb.utils.*
;
import
com.junmp.v2.auth.api.context.LoginContext
;
import
com.junmp.v2.common.exception.base.ServiceException
;
import
com.junmp.v2.common.util.BeanPlusUtil
;
import
com.junmp.v2.sys.user.entity.SysUser
;
import
com.junmp.v2.sys.user.service.SysUserService
;
import
org.elasticsearch.action.search.ClearScrollRequest
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
...
...
@@ -44,7 +48,8 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
private
PubOrgMapper
pubOrgMapper
;
@Resource
private
RestHighLevelClient
client
;
@Resource
private
SysUserService
sysUserService
;
@Autowired
private
RedisUtils
redisUtils
;
@Autowired
...
...
@@ -372,8 +377,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
* @return
* @throws IOException
*/
public
List
<
PubOrg
>
searchOrg
(
Integer
pageNum
,
Integer
pageSize
,
String
keyword
)
throws
IOException
{
public
List
<
PubOrg
>
searchOrg
(
Integer
pageNum
,
Integer
pageSize
,
String
keyword
,
Long
currentOrg
)
throws
IOException
{
if
(
pageNum
<
0
)
pageNum
=
0
;
SearchRequest
request
=
new
SearchRequest
(
"org_pinyin"
);
...
...
@@ -383,16 +387,20 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
builder
.
size
(
pageSize
);
// 添加 MatchQueryBuilder 作为 must 条件
MatchQueryBuilder
matchQueryBuilder
=
QueryBuilders
.
matchQuery
(
"dName"
,
keyword
).
operator
(
Operator
.
AND
);
// MatchQueryBuilder matchQueryBuilder2 = QueryBuilders.matchQuery("dName.pinyin", keyword).operator(Operator.AND);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
should
(
matchQueryBuilder
);
// boolQueryBuilder.should(matchQueryBuilder2);
boolQueryBuilder
.
must
(
matchQueryBuilder
);
// 添加过滤条件,只获取 delFlag 为 1 的数据
builder
.
postFilter
(
QueryBuilders
.
termQuery
(
"delFlag"
,
1
));
boolQueryBuilder
.
filter
(
QueryBuilders
.
termQuery
(
"delFlag"
,
1
));
// 添加过滤条件,orgParentIds 包含当前字段,或者 orgId 等于当前字段
BoolQueryBuilder
orgFilter
=
QueryBuilders
.
boolQuery
();
orgFilter
.
should
(
QueryBuilders
.
wildcardQuery
(
"orgParentIds"
,
"*"
+
currentOrg
+
"*"
));
orgFilter
.
should
(
QueryBuilders
.
termQuery
(
"orgId"
,
currentOrg
.
toString
()));
boolQueryBuilder
.
filter
(
orgFilter
);
builder
.
query
(
boolQueryBuilder
);
builder
.
timeout
(
new
TimeValue
(
60
,
TimeUnit
.
SECONDS
));
...
...
@@ -412,6 +420,42 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
}
/**
* 搜索条件
* @param pageNum
* @param pageSize
* @return
* @throws IOException
*/
public
List
<
PubOrg
>
searchAll
(
Integer
pageNum
,
Integer
pageSize
)
throws
IOException
{
if
(
pageNum
<
0
)
pageNum
=
0
;
SearchRequest
request
=
new
SearchRequest
(
"org_pinyin"
);
SearchSourceBuilder
builder
=
new
SearchSourceBuilder
();
builder
.
from
(
pageNum
);
builder
.
size
(
pageSize
);
// 添加过滤条件,只获取 delFlag 为 1 的数据
builder
.
postFilter
(
QueryBuilders
.
termQuery
(
"delFlag"
,
1
));
builder
.
timeout
(
new
TimeValue
(
60
,
TimeUnit
.
SECONDS
));
request
.
source
(
builder
);
SearchResponse
searchResponse
=
client
.
search
(
request
,
RequestOptions
.
DEFAULT
);
List
<
PubOrg
>
pubOrgList
=
new
ArrayList
<>();
for
(
SearchHit
documentFields
:
searchResponse
.
getHits
().
getHits
())
{
Map
<
String
,
Object
>
sourceAsMap
=
documentFields
.
getSourceAsMap
();
PubOrg
pubOrg
=
this
.
fromMap
(
sourceAsMap
);
// 添加到结果列表
pubOrgList
.
add
(
pubOrg
);
}
return
pubOrgList
;
}
public
List
<
OrgDto
>
buildTree
(
List
<
PubOrg
>
searchResults
,
List
<
PubOrg
>
allOrgs
)
{
Map
<
Long
,
OrgDto
>
orgDtoMap
=
new
HashMap
<>();
...
...
@@ -506,13 +550,13 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
@Override
public
ESOrgDto
getOrgTreeByEs
(
QueryOrgReq
req
)
throws
IOException
{
// 先进行搜索,获取前20条数据
List
<
PubOrg
>
searchResults
=
searchOrg
(
0
,
10
,
req
.
getOrgName
());
List
<
PubOrg
>
searchResults
=
searchOrg
(
0
,
20
,
req
.
getOrgName
(),
req
.
getCurrentOrg
());
req
.
setDelFlag
(
1
);
LambdaQueryWrapper
<
PubOrg
>
wp
=
this
.
createWrapper
(
req
);
// 获取所有组织机构数据
List
<
PubOrg
>
allOrgs
=
this
.
list
(
wp
);
List
<
OrgDto
>
treeResult
=
buildTree
(
searchResults
,
allOrgs
);
List
<
PubOrg
>
orgsAll
=
searchAll
(
0
,
3000
);
List
<
OrgDto
>
treeResult
=
buildTree
(
searchResults
,
orgsAll
);
ESOrgDto
resultDto
=
new
ESOrgDto
();
resultDto
.
setOrgDto
(
treeResult
);
SetIds
(
treeResult
);
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/utils/ElasticsearchUtil.java
View file @
18c8fd33
...
...
@@ -36,7 +36,8 @@ public class ElasticsearchUtil<T> {
builder
.
from
(
pageNum
);
builder
.
size
(
pageSize
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
mustNot
(
QueryBuilders
.
matchQuery
(
"name"
,
"超级根"
));
boolQueryBuilder
.
mustNot
(
QueryBuilders
.
matchQuery
(
"name"
,
"超级根"
));
builder
.
query
(
boolQueryBuilder
);
builder
.
timeout
(
new
TimeValue
(
60
,
TimeUnit
.
SECONDS
));
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论