Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
76328738
Commit
76328738
authored
Aug 19, 2021
by
xixinzhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增树接口
parent
93e99161
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
368 additions
and
15 deletions
+368
-15
UserRolesEnum.java
...join/amos/boot/module/common/api/enums/UserRolesEnum.java
+31
-0
OrgUsrMapper.java
...join/amos/boot/module/common/api/mapper/OrgUsrMapper.java
+5
-0
IOrgUsrService.java
...n/amos/boot/module/common/api/service/IOrgUsrService.java
+17
-2
OrgUsrMapper.xml
...ule-common-api/src/main/resources/mapper/OrgUsrMapper.xml
+44
-0
OrgUsrController.java
...s/boot/module/common/biz/controller/OrgUsrController.java
+53
-5
OrgUsrServiceImpl.java
...oot/module/common/biz/service/impl/OrgUsrServiceImpl.java
+218
-8
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/enums/UserRolesEnum.java
0 → 100644
View file @
76328738
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
enums
;
public
enum
UserRolesEnum
{
ADMIN
(
"admin"
,
"机场单位"
),
AIRPORTUNIT
(
"AIRPORTUNIT"
,
"机场单位"
);
private
String
code
;
private
String
name
;
UserRolesEnum
(
String
code
,
String
name
){
this
.
code
=
code
;
this
.
name
=
name
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/mapper/OrgUsrMapper.java
View file @
76328738
...
...
@@ -63,4 +63,9 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> {
List
<
Map
<
String
,
Object
>>
getparent
();
List
<
OrgUsrExcelDto
>
exportToExcel
();
/**
* 查询单位基本信息列表和单位下所有的重点部位数量。
*/
List
<
OrgUsrTreeDto
>
getCompanyAndKeySite
(
Long
companyId
);
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/service/IOrgUsrService.java
View file @
76328738
...
...
@@ -8,8 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.yeejoin.amos.boot.module.common.api.dto.*
;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance
;
import
com.yeejoin.amos.boot.module.common.api.entity.OrgUsr
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
/**
...
...
@@ -176,4 +175,20 @@ public interface IOrgUsrService {
List
<
Map
<
String
,
Object
>>
getparent
();
List
<
OrgUsrExcelDto
>
exportToExcel
();
/**
* 根据登陆人获取公司部门人员树
*/
List
<
OrgMenuDto
>
companyUserTreeByUser
(
AgencyUserModel
user
);
/**
* 根据登陆人获取公司部门树
*/
List
<
OrgMenuDto
>
companyTreeByUser
(
AgencyUserModel
user
);
/**
* 根据登陆人获取公司列表(关联重点部位)
*/
List
<
OrgUsrTreeDto
>
companyListByUser
(
AgencyUserModel
user
);
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/resources/mapper/OrgUsrMapper.xml
View file @
76328738
...
...
@@ -335,5 +335,49 @@ LEFT JOIN (
on b.instance_id=a.sequence_nbr where a.biz_org_name is not null
</select>
<select
id=
"getCompanyAndKeySite"
resultType=
"com.yeejoin.amos.boot.module.common.api.dto.OrgUsrTreeDto"
>
SELECT
company_sur.sequence_nbr as sequenceNbr,
company_sur.biz_org_name as bizOrgName ,
company_sur.parent_id as parentId,
company_sur.biz_org_type as bizOrgType,
-- cb.field_value_label,
CASE
WHEN keysite_sur.num IS NULL THEN
0
ELSE
keysite_sur.num
END AS num
FROM
(
SELECT
company.sequence_nbr,
company.parent_id,
company.biz_org_name,
company.biz_org_type
FROM
cb_org_usr company
WHERE
(company.biz_org_type = 'COMPANY' OR company.biz_org_type = 'DEPARTMENT')
AND company.is_delete = FALSE
<if
test=
"companyId != null and companyId != ''"
>
AND biz_org_code LIKE CONCAT((SELECT biz_org_code FROM cb_org_usr WHERE sequence_nbr = #{companyId}),'%')
</if>
) company_sur
LEFT JOIN (
SELECT
keysite.belong_id,
COUNT(keysite.belong_id) as num
FROM
cb_key_site keysite
WHERE
keysite.is_delete = FALSE
GROUP BY
keysite.belong_id
) keysite_sur ON company_sur.sequence_nbr = keysite_sur.belong_id
-- LEFT JOIN cb_dynamic_form_instance as cb ON company_sur.sequence_nbr = cb.instance_id where field_code = 'companyNature'
</select>
</mapper>
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/OrgUsrController.java
View file @
76328738
...
...
@@ -7,6 +7,8 @@ import java.util.Map;
import
javax.servlet.http.HttpServletRequest
;
import
com.yeejoin.amos.boot.module.common.api.dto.*
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.elasticsearch.core.SearchHits
;
...
...
@@ -318,9 +320,54 @@ public class OrgUsrController extends BaseController {
public
ResponseModel
<
List
<
ESOrgUsrDto
>>
selectByIddata
(
HttpServletRequest
request
,
String
name
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
eSOrgUsrService
.
queryByKeys
(
name
));
}
/**
*
* 获取单位部门树
* @param
* @return
*/
@TycloudOperation
(
needAuth
=
false
,
ApiLevel
=
UserType
.
AGENCY
)
@RequestMapping
(
value
=
"/companyTreeByUser"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据登陆人获取单位部门树"
,
notes
=
"根据登陆人获取单位部门树"
)
public
ResponseModel
<
List
<
OrgMenuDto
>>
selectCompanyTreeByUser
()
throws
Exception
{
// 获取登陆人角色
AgencyUserModel
user
=
getUserInfo
();
List
<
OrgMenuDto
>
menus
=
iOrgUsrService
.
companyTreeByUser
(
user
);
return
ResponseHelper
.
buildResponse
(
menus
);
}
/**
*
* 获取单位部门树
* @param
* @return
*/
@TycloudOperation
(
needAuth
=
false
,
ApiLevel
=
UserType
.
AGENCY
)
@RequestMapping
(
value
=
"/companyUserTreeByUser"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据登陆人获取单位部门用户树"
,
notes
=
"根据登陆人获取单位部门用户树"
)
public
ResponseModel
<
List
<
OrgMenuDto
>>
companyUserTreeByUser
()
{
// 获取登陆人角色
AgencyUserModel
user
=
getUserInfo
();
List
<
OrgMenuDto
>
menus
=
iOrgUsrService
.
companyUserTreeByUser
(
user
);
return
ResponseHelper
.
buildResponse
(
menus
);
}
/**
*
* 获取单位列表
* @param
* @return
*/
@TycloudOperation
(
needAuth
=
false
,
ApiLevel
=
UserType
.
AGENCY
)
@RequestMapping
(
value
=
"/companyListByUser"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据登陆人获取单位列表"
,
notes
=
"根据登陆人获取单位列表"
)
public
ResponseModel
<
List
<
OrgUsrTreeDto
>>
companyListByUser
()
{
// 获取登陆人角色
AgencyUserModel
user
=
getUserInfo
();
List
<
OrgUsrTreeDto
>
menus
=
iOrgUsrService
.
companyListByUser
(
user
);
return
ResponseHelper
.
buildResponse
(
menus
);
}
}
\ No newline at end of file
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/OrgUsrServiceImpl.java
View file @
76328738
...
...
@@ -11,11 +11,13 @@ import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance
;
import
com.yeejoin.amos.boot.module.common.api.entity.OrgUsr
;
import
com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum
;
import
com.yeejoin.amos.boot.module.common.api.enums.UserRolesEnum
;
import
com.yeejoin.amos.boot.module.common.api.feign.SupervisionFeign
;
import
com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrMapper
;
import
com.yeejoin.amos.boot.module.common.api.service.IOrgUsrService
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.RoleModel
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -27,13 +29,7 @@ import org.typroject.tyboot.core.rdbms.service.BaseService;
import
javax.annotation.Resource
;
import
java.lang.reflect.Method
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -1010,7 +1006,221 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
wrapper
.
eq
(
OrgUsr:
:
getIsDelete
,
false
);
return
this
.
baseMapper
.
selectList
(
wrapper
);
}
@Override
public
List
<
OrgMenuDto
>
companyUserTreeByUser
(
AgencyUserModel
user
)
{
LambdaQueryWrapper
<
OrgUsr
>
wrapper
=
new
LambdaQueryWrapper
<
OrgUsr
>();
wrapper
.
eq
(
OrgUsr:
:
getIsDelete
,
false
);
List
<
OrgUsr
>
companyDepartmentMsgList
=
this
.
baseMapper
.
selectList
(
wrapper
);
return
gettTreeByUser
(
user
,
companyDepartmentMsgList
);
}
@Override
public
List
<
OrgMenuDto
>
companyTreeByUser
(
AgencyUserModel
user
)
{
List
<
OrgUsr
>
companyDepartmentMsgList
=
selectCompanyDepartmentMsg
();
return
gettTreeByUser
(
user
,
companyDepartmentMsgList
);
};
@Override
public
List
<
OrgUsrTreeDto
>
companyListByUser
(
AgencyUserModel
user
)
{
List
<
OrgUsrTreeDto
>
list
=
new
ArrayList
<>();
// 需要角色为机场单位或管理员,其余角色返回空
String
code
=
UserRolesEnum
.
AIRPORTUNIT
.
getCode
();
String
codeAdmin
=
UserRolesEnum
.
ADMIN
.
getCode
();
String
roles
=
getRoles
(
user
,
code
);
if
(!
StringUtils
.
isEmpty
(
roles
))
{
List
<
OrgUsrTreeDto
>
companyList
=
this
.
baseMapper
.
getCompanyAndKeySite
(
null
);
if
(
roles
.
equals
(
codeAdmin
))
{
// 返回全部单位列表
return
companyAndKeySiteList
(
companyList
);
}
else
if
(
roles
.
equals
(
code
))
{
// } else {
// 人员与多个部门/公司关联
List
<
OrgUsr
>
orgUsrList
=
orgUsrList
(
user
);
if
(
ObjectUtils
.
isEmpty
(
orgUsrList
))
{
return
list
;
}
Set
<
Long
>
set
=
new
HashSet
<>();
orgUsrList
.
forEach
(
orgUsr
->
{
Long
parent
=
ObjectUtils
.
isEmpty
(
orgUsr
.
getParentId
())
?
0L
:
Long
.
parseLong
(
orgUsr
.
getParentId
());
if
(
set
.
add
(
parent
))
{
Long
companyIdByDto
=
getCompanyIdByDto
(
parent
,
companyList
);
List
<
OrgUsrTreeDto
>
orgUsrTreeDtoList
=
this
.
baseMapper
.
getCompanyAndKeySite
(
companyIdByDto
);
list
.
addAll
(
companyAndKeySiteList
(
orgUsrTreeDtoList
));
}
});
// 返回所在用户单位列表
return
list
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
}
}
return
list
;
}
/**
* 获取登陆人所在公司
*/
private
Long
getCompanyIdByDto
(
Long
parentId
,
List
<
OrgUsrTreeDto
>
companyDepartmentMsgList
)
{
Long
pid
=
null
;
for
(
OrgUsrTreeDto
orgUsr
:
companyDepartmentMsgList
)
{
if
(
orgUsr
.
getSequenceNbr
().
equals
(
parentId
))
{
if
(
orgUsr
.
getBizOrgType
().
equals
(
OrgPersonEnum
.
公司
.
getKey
())
&&
ObjectUtils
.
isEmpty
(
orgUsr
.
getParentId
()))
{
return
orgUsr
.
getSequenceNbr
();
}
else
{
pid
=
getCompanyIdByDto
(
Long
.
parseLong
(
orgUsr
.
getParentId
()),
companyDepartmentMsgList
);
}
}
}
return
pid
;
}
/**
* 查询单位列表
*/
private
List
<
OrgUsrTreeDto
>
companyAndKeySiteList
(
List
<
OrgUsrTreeDto
>
companyList
)
{
List
<
OrgUsrTreeDto
>
list
=
new
ArrayList
<>();
if
(
ObjectUtils
.
isEmpty
(
companyList
))
{
return
list
;
}
Map
<
Long
,
OrgUsrTreeDto
>
map
=
new
HashMap
<>(
companyList
.
size
());
companyList
.
forEach
(
e
->
map
.
put
(
e
.
getSequenceNbr
(),
e
));
Set
<?
extends
Map
.
Entry
<
Long
,
?
extends
OrgUsrTreeDto
>>
entries
=
map
.
entrySet
();
entries
.
parallelStream
().
forEach
(
entry
->
{
OrgUsrTreeDto
value
=
entry
.
getValue
();
if
(!
ObjectUtils
.
isEmpty
(
value
))
{
Long
parent
=
ObjectUtils
.
isEmpty
(
value
.
getParentId
())
?
0L
:
Long
.
parseLong
(
value
.
getParentId
());
OrgUsrTreeDto
orgUsrTreeDto
=
map
.
get
(
parent
);
if
(!
ObjectUtils
.
isEmpty
(
orgUsrTreeDto
))
{
int
num
=
orgUsrTreeDto
.
getNum
()
+
value
.
getNum
();
orgUsrTreeDto
.
setNum
(
num
);
}
else
{
if
(
value
.
getBizOrgType
().
equals
(
OrgPersonEnum
.
公司
.
getKey
()))
{
list
.
add
(
value
);
}
}
}
});
return
list
;
}
/**
* 获取树
*/
private
List
<
OrgMenuDto
>
gettTreeByUser
(
AgencyUserModel
user
,
List
<
OrgUsr
>
list
)
{
List
<
OrgMenuDto
>
treeList
=
new
ArrayList
<>();
// 需要角色为机场单位或管理员,其余角色返回空
String
code
=
UserRolesEnum
.
AIRPORTUNIT
.
getCode
();
String
codeAdmin
=
UserRolesEnum
.
ADMIN
.
getCode
();
String
roles
=
getRoles
(
user
,
code
);
if
(!
StringUtils
.
isEmpty
(
roles
))
{
// treeList = getDepartmentTreeByUser(user,list);
if
(
roles
.
equals
(
codeAdmin
))
{
// 返回全量树
treeList
=
buildTreeParallel
(
list
);
}
else
if
(
roles
.
equals
(
code
))
{
// 获取当前用户所在部门树
treeList
=
getDepartmentTreeByUser
(
user
,
list
);
}
}
return
treeList
;
}
/**
* 根基登陆人获取指定角色/最高角色,默认最高角色
*/
private
String
getRoles
(
AgencyUserModel
user
,
String
code
)
{
String
type
=
null
;
Map
<
Long
,
List
<
RoleModel
>>
orgRolesMap
=
user
.
getOrgRoles
();
if
(
ObjectUtils
.
isEmpty
(
orgRolesMap
))
{
return
null
;
}
for
(
Long
key
:
orgRolesMap
.
keySet
())
{
if
(!
ObjectUtils
.
isEmpty
(
orgRolesMap
.
get
(
key
)))
{
for
(
RoleModel
roleModel:
orgRolesMap
.
get
(
key
))
{
String
roleType
=
roleModel
.
getRoleType
();
if
(
roleType
.
equals
(
code
))
{
type
=
code
;
}
if
(
roleType
.
equals
(
UserRolesEnum
.
ADMIN
.
getCode
()))
{
return
roleType
;
}
}
}
}
return
type
;
}
/**
* 获取当前用户所在部门/用户树
*/
private
List
<
OrgMenuDto
>
getDepartmentTreeByUser
(
AgencyUserModel
user
,
List
<
OrgUsr
>
companyDepartmentMsgList
)
{
List
<
OrgMenuDto
>
list
=
new
ArrayList
<>();
if
(
ObjectUtils
.
isEmpty
(
companyDepartmentMsgList
))
{
return
list
;
}
// 1.获取当前登陆用户关联人员
List
<
OrgUsr
>
orgUsrList
=
orgUsrList
(
user
);
if
(
ObjectUtils
.
isEmpty
(
orgUsrList
))
{
return
list
;
}
// 2.查询人员所属部门
List
<
OrgMenuDto
>
treeList
=
buildTreeParallel
(
companyDepartmentMsgList
);
Set
<
Long
>
set
=
new
HashSet
<>();
orgUsrList
.
forEach
(
orgUsr
->
{
Long
parentId
=
Long
.
parseLong
(
orgUsr
.
getParentId
());
getTreeChildre
(
list
,
treeList
,
parentId
,
set
,
companyDepartmentMsgList
);
});
return
list
;
}
/**
* 获取登陆人关联账号
*/
private
List
<
OrgUsr
>
orgUsrList
(
AgencyUserModel
user
)
{
String
userId
=
user
.
getUserId
();
LambdaQueryWrapper
<
OrgUsr
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
OrgUsr:
:
getIsDelete
,
false
);
wrapper
.
eq
(
OrgUsr:
:
getAmosOrgId
,
userId
);
wrapper
.
eq
(
OrgUsr:
:
getBizOrgType
,
OrgPersonEnum
.
人员
.
getKey
());
List
<
OrgUsr
>
orgUsrList
=
this
.
baseMapper
.
selectList
(
wrapper
);
return
orgUsrList
;
}
/**
* 组装树
*/
private
void
getTreeChildre
(
List
<
OrgMenuDto
>
list
,
List
<
OrgMenuDto
>
treeList
,
Long
parentId
,
Set
<
Long
>
set
,
List
<
OrgUsr
>
companyDepartmentMsgList
)
{
if
(
ObjectUtils
.
isEmpty
(
treeList
)
&&
ObjectUtils
.
isEmpty
(
companyDepartmentMsgList
))
{
return
;
}
// 获取登陆人所在公司
Long
pid
=
getCompanyId
(
parentId
,
companyDepartmentMsgList
);
if
(
set
.
add
(
pid
))
{
List
<
OrgMenuDto
>
list1
=
treeList
.
stream
().
filter
(
orgMenuDto
->
orgMenuDto
.
getKey
().
equals
(
pid
)).
collect
(
Collectors
.
toList
());
list
.
addAll
(
list1
);
}
}
/**
* 获取登陆人所在公司
*/
private
Long
getCompanyId
(
Long
parentId
,
List
<
OrgUsr
>
companyDepartmentMsgList
)
{
Long
pid
=
null
;
for
(
OrgUsr
orgUsr
:
companyDepartmentMsgList
)
{
if
(
orgUsr
.
getSequenceNbr
().
equals
(
parentId
))
{
if
(
orgUsr
.
getBizOrgType
().
equals
(
OrgPersonEnum
.
公司
.
getKey
())
&&
ObjectUtils
.
isEmpty
(
orgUsr
.
getParentId
()))
{
return
orgUsr
.
getSequenceNbr
();
}
else
{
pid
=
getCompanyId
(
Long
.
parseLong
(
orgUsr
.
getParentId
()),
companyDepartmentMsgList
);
}
}
}
return
pid
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment