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
9802536d
Commit
9802536d
authored
Dec 25, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.人员导入开发联调
parent
349cabd5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
186 additions
and
116 deletions
+186
-116
EquipTypeConverter.java
...mos/boot/module/tcm/api/converter/EquipTypeConverter.java
+1
-1
CustomerEquipTypeCheck.java
.../boot/module/tcm/api/customer/CustomerEquipTypeCheck.java
+1
-1
UserImportDto.java
...m/yeejoin/amos/boot/module/tcm/api/dto/UserImportDto.java
+13
-13
TzsUserInfoController.java
...boot/module/tcm/biz/controller/TzsUserInfoController.java
+1
-1
TzsUserInfoServiceImpl.java
...t/module/tcm/biz/service/impl/TzsUserInfoServiceImpl.java
+170
-100
No files found.
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/java/com/yeejoin/amos/boot/module/tcm/api/converter/EquipTypeConverter.java
View file @
9802536d
...
@@ -17,7 +17,7 @@ public class EquipTypeConverter implements Converter<String> {
...
@@ -17,7 +17,7 @@ public class EquipTypeConverter implements Converter<String> {
CODE_MAP
.
put
(
"压力容器"
,
"2000"
);
CODE_MAP
.
put
(
"压力容器"
,
"2000"
);
CODE_MAP
.
put
(
"电梯"
,
"3000"
);
CODE_MAP
.
put
(
"电梯"
,
"3000"
);
CODE_MAP
.
put
(
"起重机械"
,
"4000"
);
CODE_MAP
.
put
(
"起重机械"
,
"4000"
);
CODE_MAP
.
put
(
"场
(厂)内专用
机动车辆"
,
"5000"
);
CODE_MAP
.
put
(
"场
内
机动车辆"
,
"5000"
);
CODE_MAP
.
put
(
"大型游乐设施"
,
"6000"
);
CODE_MAP
.
put
(
"大型游乐设施"
,
"6000"
);
CODE_MAP
.
put
(
"压力管道"
,
"8000"
);
CODE_MAP
.
put
(
"压力管道"
,
"8000"
);
CODE_MAP
.
put
(
"客运索道"
,
"9000"
);
CODE_MAP
.
put
(
"客运索道"
,
"9000"
);
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/java/com/yeejoin/amos/boot/module/tcm/api/customer/CustomerEquipTypeCheck.java
View file @
9802536d
...
@@ -7,7 +7,7 @@ import java.lang.annotation.Retention;
...
@@ -7,7 +7,7 @@ import java.lang.annotation.Retention;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
java.lang.annotation.Target
;
@Target
({
ElementType
.
FIELD
,
ElementType
.
ANNOTATION_
TYPE
})
@Target
({
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Constraint
(
validatedBy
=
CustomerEquipTypeValidator
.
class
)
@Constraint
(
validatedBy
=
CustomerEquipTypeValidator
.
class
)
public
@interface
CustomerEquipTypeCheck
{
public
@interface
CustomerEquipTypeCheck
{
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/java/com/yeejoin/amos/boot/module/tcm/api/dto/UserImportDto.java
View file @
9802536d
...
@@ -8,49 +8,46 @@ import com.yeejoin.amos.boot.module.tcm.api.customer.CustomerEquipTypeCheck;
...
@@ -8,49 +8,46 @@ import com.yeejoin.amos.boot.module.tcm.api.customer.CustomerEquipTypeCheck;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
@Data
@Data
@CustomerEquipTypeCheck
(
message
=
"设备类型不能为空"
)
public
class
UserImportDto
{
public
class
UserImportDto
{
@NotBlank
(
message
=
"单位名称不能为空"
)
@NotBlank
(
message
=
"单位名称不能为空
!
"
)
@ExcelProperty
(
value
=
"单位名称"
)
@ExcelProperty
(
value
=
"单位名称"
)
private
String
unitName
;
private
String
unitName
;
@NotBlank
(
message
=
"单位统一信用代码不能为空"
)
@NotBlank
(
message
=
"单位统一信用代码不能为空
!
"
)
@ExcelProperty
(
value
=
"单位统一信用代码"
)
@ExcelProperty
(
value
=
"单位统一信用代码"
)
private
String
unitCode
;
private
String
unitCode
;
@NotBlank
(
message
=
"单位类型不能为空"
)
@NotBlank
(
message
=
"单位类型不能为空
!
"
)
@ExcelProperty
(
value
=
"单位类型"
)
@ExcelProperty
(
value
=
"单位类型"
)
private
String
unitType
;
private
String
unitType
;
@NotBlank
(
message
=
"姓名不能为空"
)
@NotBlank
(
message
=
"姓名不能为空
!
"
)
@ExcelProperty
(
value
=
"姓名"
)
@ExcelProperty
(
value
=
"姓名"
)
private
String
name
;
private
String
name
;
@NotBlank
(
message
=
"联系电话不能为空"
)
@NotBlank
(
message
=
"联系电话不能为空
!
"
)
@ExcelProperty
(
value
=
"联系电话"
)
@ExcelProperty
(
value
=
"联系电话"
)
private
String
phone
;
private
String
phone
;
@NotBlank
(
message
=
"证件类型不能为空"
)
@NotBlank
(
message
=
"证件类型不能为空
!
"
)
@ExcelProperty
(
value
=
"证件类型"
,
converter
=
CertificateTypeConverter
.
class
)
@ExcelProperty
(
value
=
"证件类型"
,
converter
=
CertificateTypeConverter
.
class
)
private
String
certificateType
;
private
String
certificateType
;
@NotBlank
(
message
=
"证件编号不能为空"
)
@NotBlank
(
message
=
"证件编号不能为空
!
"
)
@ExcelProperty
(
value
=
"证件编号"
)
@ExcelProperty
(
value
=
"证件编号"
)
private
String
certificateNum
;
private
String
certificateNum
;
@NotBlank
(
message
=
"人员类型不能为空"
)
@NotBlank
(
message
=
"人员类型不能为空
!
"
)
@ExcelProperty
(
value
=
"人员类型"
,
converter
=
PostTypeConverter
.
class
)
@ExcelProperty
(
value
=
"人员类型"
,
converter
=
PostTypeConverter
.
class
)
private
String
post
;
private
String
post
;
@CustomerEquipTypeCheck
(
message
=
"设备类型不能为空"
)
@ExcelProperty
(
value
=
"设备类型"
,
converter
=
EquipTypeConverter
.
class
)
@ExcelProperty
(
value
=
"设备类型"
,
converter
=
EquipTypeConverter
.
class
)
private
String
equipType
;
private
String
equipType
;
...
@@ -85,6 +82,9 @@ public class UserImportDto {
...
@@ -85,6 +82,9 @@ public class UserImportDto {
@ExcelProperty
@ExcelProperty
private
Long
seq
;
private
Long
seq
;
@ExcelIgnore
private
Set
<
String
>
equipTypeList
;
@Override
@Override
public
boolean
equals
(
Object
o
)
{
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
this
==
o
)
return
true
;
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-biz/src/main/java/com/yeejoin/amos/boot/module/tcm/biz/controller/TzsUserInfoController.java
View file @
9802536d
...
@@ -356,7 +356,7 @@ public class TzsUserInfoController extends BaseController {
...
@@ -356,7 +356,7 @@ public class TzsUserInfoController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/import"
)
@PostMapping
(
value
=
"/import"
)
@ApiOperation
(
value
=
"人员导入"
,
httpMethod
=
"POST"
)
@ApiOperation
(
value
=
"人员导入"
,
httpMethod
=
"POST"
,
notes
=
"导入已经存在公司的人员"
)
public
ResponseModel
<?>
importUser
(
@RequestBody
MultipartFile
file
)
{
public
ResponseModel
<?>
importUser
(
@RequestBody
MultipartFile
file
)
{
return
tzsUserInfoService
.
importUserBatch
(
file
);
return
tzsUserInfoService
.
importUserBatch
(
file
);
}
}
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-biz/src/main/java/com/yeejoin/amos/boot/module/tcm/biz/service/impl/TzsUserInfoServiceImpl.java
View file @
9802536d
...
@@ -31,6 +31,7 @@ import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserInfoService;
...
@@ -31,6 +31,7 @@ import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserInfoService;
import
com.yeejoin.amos.boot.module.tcm.api.vo.TzsUserInfoVo
;
import
com.yeejoin.amos.boot.module.tcm.api.vo.TzsUserInfoVo
;
import
com.yeejoin.amos.boot.module.tcm.api.vo.UserInfoVo
;
import
com.yeejoin.amos.boot.module.tcm.api.vo.UserInfoVo
;
import
com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl
;
import
com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl
;
import
com.yeejoin.amos.component.feign.config.InnerInvokException
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.feign.utils.FeignUtil
;
import
com.yeejoin.amos.component.feign.utils.FeignUtil
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
...
@@ -187,8 +188,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -187,8 +188,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
LambdaQueryWrapper
<
DataDictionary
>
lambda
=
new
QueryWrapper
<
DataDictionary
>().
lambda
();
LambdaQueryWrapper
<
DataDictionary
>
lambda
=
new
QueryWrapper
<
DataDictionary
>().
lambda
();
lambda
.
in
(
DataDictionary:
:
getSequenceNbr
,
dictIds
);
lambda
.
in
(
DataDictionary:
:
getSequenceNbr
,
dictIds
);
List
<
DataDictionary
>
dataDictionaries
=
iDataDictionaryService
.
getByTypeAndDesc
(
QYRYGW
,
QYRYGW_NAME
);
List
<
DataDictionary
>
dataDictionaries
=
iDataDictionaryService
.
getByTypeAndDesc
(
QYRYGW
,
QYRYGW_NAME
);
JSONArray
finalDictIds
=
dictIds
;
List
<
DataDictionary
>
postDataList
=
dataDictionaries
.
stream
().
filter
(
d
->
dictIds
.
stream
().
anyMatch
(
id
->
id
.
toString
().
equals
(
d
.
getSequenceNbr
().
toString
()))).
collect
(
Collectors
.
toList
());
List
<
DataDictionary
>
postDataList
=
dataDictionaries
.
stream
().
filter
(
d
->
finalDictIds
.
stream
().
anyMatch
(
id
->
id
.
toString
().
equals
(
d
.
getSequenceNbr
().
toString
()))).
collect
(
Collectors
.
toList
());
return
postDataList
.
stream
().
map
(
DataDictionary:
:
getName
).
collect
(
Collectors
.
joining
(
","
));
return
postDataList
.
stream
().
map
(
DataDictionary:
:
getName
).
collect
(
Collectors
.
joining
(
","
));
}
}
...
@@ -351,15 +351,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -351,15 +351,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
String
post
=
tzsUserInfo
.
getPost
();
String
post
=
tzsUserInfo
.
getPost
();
if
(
post
.
contains
(
PersonManageRoleEnum
.
code
.
getId
().
toString
()))
{
if
(
post
.
contains
(
PersonManageRoleEnum
.
code
.
getId
().
toString
()))
{
String
companyType
=
tzsUserInfoMapper
.
selectCompanyTypeById
(
companySeq
);
String
companyType
=
tzsUserInfoMapper
.
selectCompanyTypeById
(
companySeq
);
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
jyjc
.
getName
()))
{
setBizOperateUserRole
(
companyType
,
roleIds
);
roleIds
.
add
(
PersonManageRoleEnum
.
jyjc
.
getId
());
}
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
use
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
use
.
getId
());
}
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
agw
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
agw
.
getId
());
}
}
}
Map
<
Long
,
List
<
Long
>>
roleSeqMap
=
new
HashMap
<>();
Map
<
Long
,
List
<
Long
>>
roleSeqMap
=
new
HashMap
<>();
...
@@ -386,11 +378,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -386,11 +378,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
// 绑定两个规定用户组
// 绑定两个规定用户组
post
=
post
.
replace
(
"["
,
""
).
replace
(
"]"
,
""
).
replace
(
"\""
,
""
);
post
=
post
.
replace
(
"["
,
""
).
replace
(
"]"
,
""
).
replace
(
"\""
,
""
);
for
(
String
code
:
post
.
split
(
","
))
{
for
(
String
code
:
post
.
split
(
","
))
{
DataDictionary
groupId
=
iDataDictionaryService
bind2PermissionGroup
(
userIds
,
code
);
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
code
).
likeRight
(
DataDictionary:
:
getType
,
QYRYGW
));
if
(!
ObjectUtils
.
isEmpty
(
groupId
)
&&
groupId
.
getExtend
()
!=
null
)
{
Privilege
.
groupUserClient
.
create
(
Long
.
valueOf
(
groupId
.
getExtend
()),
userIds
);
}
}
}
tzsUserInfoMapper
.
updateById
(
tzsUserInfo
);
tzsUserInfoMapper
.
updateById
(
tzsUserInfo
);
}
}
...
@@ -988,7 +976,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -988,7 +976,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
UserImportDto
userImportDto
=
userItems
.
get
(
i
);
UserImportDto
userImportDto
=
userItems
.
get
(
i
);
Set
<
ConstraintViolation
<
UserImportDto
>>
violations
=
validator
.
validate
(
userImportDto
);
Set
<
ConstraintViolation
<
UserImportDto
>>
violations
=
validator
.
validate
(
userImportDto
);
for
(
ConstraintViolation
<
UserImportDto
>
violation
:
violations
)
{
for
(
ConstraintViolation
<
UserImportDto
>
violation
:
violations
)
{
errors
.
add
(
"非法数据,第"
+
i
+
"行"
+
violation
.
getMessage
());
errors
.
add
(
"非法数据,第"
+
(
i
+
1
)
+
"行"
+
violation
.
getMessage
());
}
}
}
}
if
(!
errors
.
isEmpty
())
{
if
(!
errors
.
isEmpty
())
{
...
@@ -1008,7 +996,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1008,7 +996,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
phoneCheckRepeatCount
.
forEach
(((
k
,
v
)
->
{
phoneCheckRepeatCount
.
forEach
(((
k
,
v
)
->
{
if
(
v
.
size
()
>
1
)
{
if
(
v
.
size
()
>
1
)
{
String
phone
=
k
.
split
(
"_"
)[
0
];
String
phone
=
k
.
split
(
"_"
)[
0
];
errors
.
add
(
String
.
format
(
"非法数据
,手机号%s,在单位统一信用代码:%s下重复
,请检查后进行上传!"
,
phone
,
StringUtils
.
join
(
v
,
","
)));
errors
.
add
(
String
.
format
(
"非法数据
,存在手机号%s,在多个单位统一信用代码:%s下共用
,请检查后进行上传!"
,
phone
,
StringUtils
.
join
(
v
,
","
)));
}
}
}));
}));
// 3.手机号重复检验,手机号全局唯一,不同单位下的手机号不能相同 todo 新写判断逻辑
// 3.手机号重复检验,手机号全局唯一,不同单位下的手机号不能相同 todo 新写判断逻辑
...
@@ -1026,7 +1014,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1026,7 +1014,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
certNoCheckRepeatCount
.
forEach
(((
k
,
v
)
->
{
certNoCheckRepeatCount
.
forEach
(((
k
,
v
)
->
{
if
(
v
.
size
()
>
1
)
{
if
(
v
.
size
()
>
1
)
{
String
phone
=
k
.
split
(
"_"
)[
0
];
String
phone
=
k
.
split
(
"_"
)[
0
];
errors
.
add
(
String
.
format
(
"非法数据,存在
手机号%s相同,但是证件号码不一样的数据:证件号码:%s,请检查后进行上传!"
,
phone
,
StringUtils
.
join
(
v
,
","
)
));
errors
.
add
(
String
.
format
(
"非法数据,存在
多个证件号码:%s,共用相同的手机号%s,请检查后进行上传!"
,
StringUtils
.
join
(
v
,
","
),
phone
));
}
}
}));
}));
return
errors
;
return
errors
;
...
@@ -1060,12 +1048,83 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1060,12 +1048,83 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
}
}
private
void
createAmosUser
(
Map
<
Long
,
TzsUserInfo
>
userInfoMap
,
Set
<
UserImportDto
>
userSet
)
{
private
void
createAmosUser
(
Map
<
Long
,
TzsUserInfo
>
userInfoMap
,
Set
<
UserImportDto
>
userSet
)
{
// 公司缓存
// 1.公共数据处理
// 1.1公司缓存
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
=
new
ConcurrentHashMap
<>();
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
=
new
ConcurrentHashMap
<>();
Map
<
Long
,
UserImportDto
>
userSeqImportDataMap
=
userSet
.
stream
().
collect
(
Collectors
.
toMap
(
UserImportDto:
:
getSeq
,
Function
.
identity
()))
Map
<
Long
,
UserImportDto
>
userSeqImportDataMap
=
userSet
.
stream
().
collect
(
Collectors
.
toMap
(
UserImportDto:
:
getSeq
,
Function
.
identity
()));
// 1.2单位类型下角色缓存
List
<
DataDictionary
>
unitTypeList
=
regUnitInfoService
.
setAndGetUnitTypeList
();
Map
<
String
,
DataDictionary
>
dataDictionaryMap
=
unitTypeList
.
stream
().
collect
(
Collectors
.
toMap
(
DataDictionary:
:
getName
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
// 1.3通用角色-普通用户处理
List
<
RoleModel
>
allRoleList
=
getCommonRoleModels
();
// 2.用户创建
// 2.1创建前检验-单位类型是否合法(用户的单位类型不能大于所在公司的注册时的单位类型)
userInfoMap
.
forEach
((
k
,
v
)
->
{
checkOneUser
(
v
,
userSeqImportDataMap
.
get
(
k
),
companyCodeCompanyMap
);
});
// 2.2创建
userInfoMap
.
forEach
((
k
,
v
)
->
{
userInfoMap
.
forEach
((
k
,
v
)
->
{
createOneUser
(
v
,
userSeqImportDataMap
.
get
(
k
),
companyCodeCompanyMap
);
createOneUser
(
v
,
userSeqImportDataMap
.
get
(
k
),
companyCodeCompanyMap
,
dataDictionaryMap
,
allRoleList
);
});
});
// 3.绑定用户到用户组
this
.
bindUserToGroup
(
userInfoMap
.
values
());
}
private
void
bindUserToGroup
(
Collection
<
TzsUserInfo
>
values
)
{
List
<
String
>
userIds
=
values
.
stream
().
map
(
TzsUserInfo:
:
getAmosUserId
).
collect
(
Collectors
.
toList
());
try
{
// 绑定企业整改用户组
String
roleGroupCode
=
"6596"
;
DataDictionary
roleGroup
=
iDataDictionaryService
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
roleGroupCode
).
eq
(
DataDictionary:
:
getType
,
ROLE_GROUP
));
if
(!
ObjectUtils
.
isEmpty
(
roleGroup
)
&&
roleGroup
.
getExtend
()
!=
null
)
{
Privilege
.
groupUserClient
.
create
(
Long
.
valueOf
(
roleGroup
.
getExtend
()),
userIds
);
}
// 绑定两个规定用户组
for
(
TzsUserInfo
userInfo
:
values
)
{
String
newPost
=
userInfo
.
getPost
();
List
<
String
>
posts
=
Optional
.
ofNullable
(
JSONArray
.
parseArray
(
newPost
,
String
.
class
)).
orElse
(
new
ArrayList
<>());
for
(
String
code
:
posts
)
{
bind2PermissionGroup
(
Collections
.
singletonList
(
userInfo
.
getAmosUserId
()),
code
);
}
}
}
catch
(
Exception
e
)
{
Privilege
.
agencyUserClient
.
multDeleteUser
(
StringUtils
.
join
(
userIds
,
","
));
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
BadRequest
(
e
.
getMessage
());
}
}
/**
* 两个规定用户组绑定
* @param userIds 用户id
* @param post 人员类型
*/
private
void
bind2PermissionGroup
(
List
<
String
>
userIds
,
String
post
)
{
// post name 用户组id
// 6549 安全员 1712372048442978305
// 6548 主要负责人 1712372027123331074
// 6547 安全总监 1712372007611428865
// 6546 普通员工 1712371988107915266
// 6552 作业人员 1712372137114759170
// 6551 质量安全员 1712372116055158786
// 6550 质量安全总监 1712372080231608322
DataDictionary
groupId
=
iDataDictionaryService
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
post
).
likeRight
(
DataDictionary:
:
getType
,
QYRYGW
));
if
(!
ObjectUtils
.
isEmpty
(
groupId
)
&&
groupId
.
getExtend
()
!=
null
)
{
Privilege
.
groupUserClient
.
create
(
Long
.
valueOf
(
groupId
.
getExtend
()),
userIds
);
}
}
private
List
<
RoleModel
>
getCommonRoleModels
()
{
String
commonRule
=
"1554"
;
List
<
RoleModel
>
allRoleList
=
new
ArrayList
<>();
DataDictionary
unitType
=
iDataDictionaryService
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
commonRule
).
eq
(
DataDictionary:
:
getType
,
USER_ROLE
));
String
role
=
unitType
.
getExtend
()
!=
null
?
unitType
.
getExtend
()
:
""
;
for
(
String
s
:
role
.
split
(
","
))
{
RoleModel
roleModel
=
Privilege
.
roleClient
.
seleteOne
(
Long
.
valueOf
(
s
)).
getResult
();
allRoleList
.
add
(
roleModel
);
}
return
allRoleList
;
}
}
private
Map
<
Long
,
TzsUserInfo
>
saveImportData2Db
(
Set
<
UserImportDto
>
userSet
)
{
private
Map
<
Long
,
TzsUserInfo
>
saveImportData2Db
(
Set
<
UserImportDto
>
userSet
)
{
...
@@ -1079,106 +1138,97 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1079,106 +1138,97 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
userInfo
.
setEmail
(
dto
.
getEmail
());
userInfo
.
setEmail
(
dto
.
getEmail
());
userInfo
.
setPhone
(
dto
.
getPhone
());
userInfo
.
setPhone
(
dto
.
getPhone
());
userInfo
.
setAddress
(
dto
.
getAddress
());
userInfo
.
setAddress
(
dto
.
getAddress
());
Set
<
String
>
postSet
=
dto
.
getUnitTypePostMap
().
values
().
stream
().
flatMap
(
Collection:
:
stream
).
collect
(
Collectors
.
toSet
());
// TODO 无资质导入,默认post = newPost
// TODO 无资质导入,默认post = newPost
userInfo
.
setPost
(
JSON
.
toJSONString
(
dto
.
getPost
().
split
(
","
)
));
userInfo
.
setPost
(
JSON
.
toJSONString
(
postSet
));
// TODO 无资质导入,默认post = newPost
// TODO 无资质导入,默认post = newPost
userInfo
.
setNewPost
(
JSON
.
toJSONString
(
dto
.
getPost
().
split
(
","
)
));
userInfo
.
setNewPost
(
JSON
.
toJSONString
(
postSet
));
String
postName
=
this
.
setPostName
(
userInfo
.
getNewPost
());
String
postName
=
this
.
setPostName
(
userInfo
.
getNewPost
());
userInfo
.
setPostName
(
postName
);
userInfo
.
setPostName
(
postName
);
userInfo
.
setBirthday
(
dto
.
getBirthday
());
userInfo
.
setBirthday
(
dto
.
getBirthday
());
userInfo
.
setEducation
(
dto
.
getEducation
());
userInfo
.
setEducation
(
dto
.
getEducation
());
userInfo
.
setSpeciality
(
dto
.
getSpeciality
());
userInfo
.
setSpeciality
(
dto
.
getSpeciality
());
userInfo
.
setUnitName
(
dto
.
getUnitName
());
userInfo
.
setUnitName
(
dto
.
getUnitName
());
userInfo
.
setCertificateNum
(
dto
.
getCertificateNum
());
userInfo
.
setCertificateType
(
dto
.
getCertificateType
());
userInfo
.
setIsDelete
(
false
);
userInfo
.
setIsDelete
(
false
);
userInfo
.
setLockStatus
(
UNLOCK
);
userInfo
.
setLockStatus
(
UNLOCK
);
userInfo
.
setUnitCode
(
dto
.
getUnitCode
());
userInfo
.
setUnitCode
(
dto
.
getUnitCode
());
userInfo
.
setEquipType
(
dto
.
getEquipType
());
userInfo
.
setEquipType
(
dto
.
getEquipType
());
userInfo
.
setJobTitle
(
dto
.
getJobTitle
());
userInfo
.
setJobTitle
(
dto
.
getJobTitle
());
userInfo
.
setEquipType
(
JSON
.
toJSONString
(
dto
.
getEquipTypeList
()));
return
userInfo
;
return
userInfo
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
this
.
saveOrUpdateBatch
(
userInfos
);
super
.
saveOrUpdateBatch
(
userInfos
);
return
userInfos
.
stream
().
collect
(
Collectors
.
toMap
(
BaseEntity:
:
getSequenceNbr
,
Function
.
identity
()));
return
userInfos
.
stream
().
collect
(
Collectors
.
toMap
(
BaseEntity:
:
getSequenceNbr
,
Function
.
identity
()));
}
}
private
void
buildMergeFields
(
List
<
UserImportDto
>
userItems
,
Set
<
UserImportDto
>
userSet
)
{
private
void
buildMergeFields
(
List
<
UserImportDto
>
userItems
,
Set
<
UserImportDto
>
userSet
)
{
for
(
UserImportDto
userImportDto
:
userSet
)
{
for
(
UserImportDto
userImportDto
:
userSet
)
{
List
<
UserImportDto
>
distinct
Data
=
userItems
.
stream
().
filter
(
u
->
u
.
getPhone
().
equals
(
userImportDto
.
getPhone
())).
collect
(
Collectors
.
toList
());
List
<
UserImportDto
>
o
Data
=
userItems
.
stream
().
filter
(
u
->
u
.
getPhone
().
equals
(
userImportDto
.
getPhone
())).
collect
(
Collectors
.
toList
());
for
(
UserImportDto
user
:
distinct
Data
)
{
for
(
UserImportDto
user
:
o
Data
)
{
Map
<
String
,
Set
<
String
>>
map
=
userImportDto
.
getUnitTypePostMap
();
Map
<
String
,
Set
<
String
>>
map
=
userImportDto
.
getUnitTypePostMap
();
if
(
map
==
null
)
{
if
(
map
==
null
)
{
map
=
new
HashMap
<>();
map
=
new
HashMap
<>();
map
.
put
(
user
.
getUnitType
(),
Sets
.
newHashSet
(
user
.
getPost
()));
map
.
put
(
user
.
getUnitType
(),
Sets
.
newHashSet
(
user
.
getPost
()));
userImportDto
.
setUnitTypePostMap
(
map
);
}
else
{
}
else
{
map
.
get
(
user
.
getUnitType
()).
add
(
user
.
getPost
());
map
.
get
(
user
.
getUnitType
()).
add
(
user
.
getPost
());
}
}
Set
<
String
>
equipTypes
=
userImportDto
.
getEquipTypeList
();
if
(
equipTypes
==
null
)
{
Set
<
String
>
equipTypesNew
=
new
HashSet
<>();
equipTypesNew
.
add
(
user
.
getEquipType
());
userImportDto
.
setEquipTypeList
(
equipTypesNew
);
}
else
{
equipTypes
.
add
(
user
.
getEquipType
());
}
}
}
userImportDto
.
getEquipTypeList
().
remove
(
null
);
userImportDto
.
getEquipTypeList
().
remove
(
""
);
userImportDto
.
setSeq
(
sequence
.
nextId
());
userImportDto
.
setSeq
(
sequence
.
nextId
());
}
}
}
}
public
void
createOneUser
(
TzsUserInfo
tzsUserInfo
,
UserImportDto
userImportDto
,
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
)
{
public
void
checkOneUser
(
TzsUserInfo
tzsUserInfo
,
UserImportDto
userImportDto
,
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
)
{
CompanyModel
companyModel
;
CompanyModel
companyModel
=
getCompanyModelUseCache
(
tzsUserInfo
,
companyCodeCompanyMap
);
if
(
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
())
!=
null
)
{
companyModel
=
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
());
}
else
{
companyModel
=
baseEnterpriseInfoService
.
getBaseMapper
().
getOneByCompanyCode
(
tzsUserInfo
.
getUnitCode
());
companyCodeCompanyMap
.
put
(
tzsUserInfo
.
getUnitCode
(),
companyModel
);
}
String
companyType
=
companyModel
.
getCompanyType
();
String
companyType
=
companyModel
.
getCompanyType
();
// 默认的密码
// 增加约束,增加的人的单位类型不能大于单位的单位类型
String
passwd
=
DesUtil
.
encode
(
"a_"
+
tzsUserInfo
.
getPhone
(),
"qaz"
);
boolean
existIllegalUnitType
=
userImportDto
.
getUnitTypePostMap
().
keySet
().
stream
().
anyMatch
(
u
->
!
companyType
.
contains
(
u
));
// 默认都有:普通用户对应的角色、字在企业人员用户组下
if
(
existIllegalUnitType
){
String
roles
=
"1554"
;
throw
new
BadRequest
(
"导入的用户:"
+
tzsUserInfo
.
getName
()
+
",手机号:"
+
tzsUserInfo
.
getPhone
()
+
",公司类型只能为:"
+
companyType
+
"之一!"
);
String
roleGroupCode
=
"6596"
;
}
Set
<
String
>
appCodesSet
=
new
HashSet
<>();
}
List
<
DataDictionary
>
unitTypeList
=
regUnitInfoService
.
setAndGetUnitTypeList
();
Map
<
String
,
DataDictionary
>
dataDictionaryMap
=
unitTypeList
.
stream
().
collect
(
Collectors
.
toMap
(
DataDictionary:
:
getCode
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
public
void
createOneUser
(
TzsUserInfo
tzsUserInfo
,
UserImportDto
userImportDto
,
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
,
Map
<
String
,
DataDictionary
>
dataDictionaryMap
,
List
<
RoleModel
>
allRoleList
)
{
userImportDto
.
getUnitTypePostMap
().
forEach
((
k
,
v
)
->
{
DataDictionary
unitType
=
dataDictionaryMap
.
get
(
k
);
String
appCode
=
unitType
.
getTypeDesc
()
!=
null
?
unitType
.
getTypeDesc
()
:
""
;
String
[]
appCodes
=
appCode
.
split
(
","
);
Collections
.
addAll
(
appCodesSet
,
appCodes
);
});
FeignClientResult
<
AgencyUserModel
>
userResult
=
null
;
FeignClientResult
<
AgencyUserModel
>
userResult
=
null
;
try
{
try
{
CompanyModel
companyModel
=
getCompanyModelUseCache
(
tzsUserInfo
,
companyCodeCompanyMap
);
String
companyType
=
companyModel
.
getCompanyType
();
// 默认的密码
String
passwd
=
DesUtil
.
encode
(
"a_"
+
tzsUserInfo
.
getPhone
(),
"qaz"
);
// 获取对应单位类型下的引用并去重
Set
<
String
>
appCodesSet
=
getAppKeys
(
userImportDto
,
dataDictionaryMap
);
List
<
Long
>
roleIds
=
new
ArrayList
<>();
allRoleList
.
forEach
(
r
->
{
if
(!
roleIds
.
contains
(
r
.
getSequenceNbr
()))
{
roleIds
.
add
(
r
.
getSequenceNbr
());
}
});
AgencyUserModel
agencyUserModel
=
new
AgencyUserModel
();
AgencyUserModel
agencyUserModel
=
new
AgencyUserModel
();
agencyUserModel
.
setUserName
(
tzsUserInfo
.
getPhone
());
agencyUserModel
.
setUserName
(
tzsUserInfo
.
getPhone
());
agencyUserModel
.
setRealName
(
tzsUserInfo
.
getName
());
agencyUserModel
.
setRealName
(
tzsUserInfo
.
getName
());
agencyUserModel
.
setLockStatus
(
"UNLOCK"
);
agencyUserModel
.
setLockStatus
(
UNLOCK
);
agencyUserModel
.
setPassword
(
passwd
);
agencyUserModel
.
setPassword
(
passwd
);
agencyUserModel
.
setRePassword
(
passwd
);
agencyUserModel
.
setRePassword
(
passwd
);
agencyUserModel
.
setAgencyCode
(
"tzs"
);
agencyUserModel
.
setAgencyCode
(
"tzs"
);
agencyUserModel
.
setMobile
(
tzsUserInfo
.
getPhone
());
agencyUserModel
.
setMobile
(
tzsUserInfo
.
getPhone
());
agencyUserModel
.
setEmail
(
tzsUserInfo
.
getEmail
());
agencyUserModel
.
setEmail
(
tzsUserInfo
.
getEmail
());
List
<
RoleModel
>
allRoleList
=
new
ArrayList
<>();
// 添加业务办理人员角色
List
<
Long
>
roleIds
=
new
ArrayList
<>();
DataDictionary
unitType
=
iDataDictionaryService
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
roles
).
eq
(
DataDictionary:
:
getType
,
USER_ROLE
));
String
role
=
unitType
.
getExtend
()
!=
null
?
unitType
.
getExtend
()
:
""
;
for
(
String
s
:
role
.
split
(
","
))
{
RoleModel
roleModel
=
Privilege
.
roleClient
.
seleteOne
(
Long
.
valueOf
(
s
)).
getResult
();
allRoleList
.
add
(
roleModel
);
}
allRoleList
.
forEach
(
r
->
{
if
(!
roleIds
.
contains
(
r
.
getSequenceNbr
()))
{
roleIds
.
add
(
r
.
getSequenceNbr
());
}
});
// 添加人员管理角色
String
post
=
tzsUserInfo
.
getPost
();
String
post
=
tzsUserInfo
.
getPost
();
if
(
post
.
contains
(
PersonManageRoleEnum
.
code
.
getId
().
toString
()))
{
if
(
post
.
contains
(
PersonManageRoleEnum
.
code
.
getId
().
toString
()))
{
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
jyjc
.
getName
()))
{
setBizOperateUserRole
(
companyType
,
roleIds
);
roleIds
.
add
(
PersonManageRoleEnum
.
jyjc
.
getId
());
}
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
use
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
use
.
getId
());
}
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
agw
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
agw
.
getId
());
}
}
}
Map
<
Long
,
List
<
Long
>>
roleSeqMap
=
new
HashMap
<>();
Map
<
Long
,
List
<
Long
>>
roleSeqMap
=
new
HashMap
<>();
Map
<
Long
,
List
<
RoleModel
>>
orgRoles
=
new
HashMap
<>();
Map
<
Long
,
List
<
RoleModel
>>
orgRoles
=
new
HashMap
<>();
...
@@ -1188,38 +1238,58 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1188,38 +1238,58 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
agencyUserModel
.
setOrgRoles
(
orgRoles
);
agencyUserModel
.
setOrgRoles
(
orgRoles
);
agencyUserModel
.
setOrgRoleSeqs
(
roleSeqMap
);
agencyUserModel
.
setOrgRoleSeqs
(
roleSeqMap
);
userResult
=
Privilege
.
agencyUserClient
.
create
(
agencyUserModel
);
userResult
=
Privilege
.
agencyUserClient
.
create
(
agencyUserModel
);
if
(
userResult
.
getStatus
()
==
200
)
{
tzsUserInfo
.
setAmosUserId
(
userResult
.
getResult
().
getUserId
());
tzsUserInfo
.
setAmosUserId
(
userResult
.
getResult
().
getUserId
());
tzsUserInfo
.
setAmosUserName
(
userResult
.
getResult
().
getUserName
());
tzsUserInfo
.
setAmosUserName
(
userResult
.
getResult
().
getUserName
());
tzsUserInfo
.
setLockStatus
(
UNLOCK
);
tzsUserInfo
.
setLockStatus
(
"UNLOCK"
);
tzsUserInfoMapper
.
updateById
(
tzsUserInfo
);
// 绑定企业整改用户组
List
<
String
>
userIds
=
new
ArrayList
<>();
userIds
.
add
(
userResult
.
getResult
().
getUserId
());
DataDictionary
roleGroup
=
iDataDictionaryService
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
roleGroupCode
).
eq
(
DataDictionary:
:
getType
,
ROLE_GROUP
));
if
(!
ObjectUtils
.
isEmpty
(
roleGroup
)
&&
roleGroup
.
getExtend
()
!=
null
)
{
Privilege
.
groupUserClient
.
create
(
Long
.
valueOf
(
roleGroup
.
getExtend
()),
userIds
);
}
// 绑定两个规定用户组
post
=
post
.
replace
(
"["
,
""
).
replace
(
"]"
,
""
).
replace
(
"\""
,
""
);
for
(
String
code
:
post
.
split
(
","
))
{
DataDictionary
groupId
=
iDataDictionaryService
.
getOne
(
new
LambdaQueryWrapper
<
DataDictionary
>().
eq
(
DataDictionary:
:
getCode
,
code
).
likeRight
(
DataDictionary:
:
getType
,
QYRYGW
));
if
(!
ObjectUtils
.
isEmpty
(
groupId
)
&&
groupId
.
getExtend
()
!=
null
)
{
Privilege
.
groupUserClient
.
create
(
Long
.
valueOf
(
groupId
.
getExtend
()),
userIds
);
}
}
tzsUserInfoMapper
.
updateById
(
tzsUserInfo
);
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
if
(
userResult
!=
null
&&
userResult
.
getResult
()
!=
null
if
(
userResult
!=
null
&&
userResult
.
getResult
()
!=
null
&&
StringUtils
.
isNotEmpty
(
userResult
.
getResult
().
getUserId
()))
{
&&
StringUtils
.
isNotEmpty
(
userResult
.
getResult
().
getUserId
()))
{
Privilege
.
agencyUserClient
.
multDeleteUser
(
userResult
.
getResult
().
getUserId
());
Privilege
.
agencyUserClient
.
multDeleteUser
(
userResult
.
getResult
().
getUserId
());
}
}
log
.
error
(
e
.
getMessage
(),
e
);
if
(
e
instanceof
InnerInvokException
){
String
message
=
e
.
getLocalizedMessage
();
if
(
StringUtils
.
isNotEmpty
(
message
)
&&
message
.
contains
(
"用户名已存在"
)){
throw
new
BadRequest
(
"手机号:"
+
tzsUserInfo
.
getPhone
()
+
"已经被使用,请更换!"
);
}
}
throw
new
BadRequest
(
e
.
getMessage
());
throw
new
BadRequest
(
e
.
getMessage
());
}
}
}
private
CompanyModel
getCompanyModelUseCache
(
TzsUserInfo
tzsUserInfo
,
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
)
{
CompanyModel
companyModel
;
if
(
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
())
!=
null
)
{
companyModel
=
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
());
}
else
{
companyModel
=
baseEnterpriseInfoService
.
getBaseMapper
().
getOneByCompanyCode
(
tzsUserInfo
.
getUnitCode
());
companyCodeCompanyMap
.
put
(
tzsUserInfo
.
getUnitCode
(),
companyModel
);
}
return
companyModel
;
}
private
static
Set
<
String
>
getAppKeys
(
UserImportDto
userImportDto
,
Map
<
String
,
DataDictionary
>
dataDictionaryMap
)
{
Set
<
String
>
appCodesSet
=
new
HashSet
<>();
userImportDto
.
getUnitTypePostMap
().
forEach
((
k
,
v
)
->
{
DataDictionary
unitType
=
dataDictionaryMap
.
get
(
k
);
String
appCode
=
unitType
.
getTypeDesc
()
!=
null
?
unitType
.
getTypeDesc
()
:
""
;
String
[]
appCodes
=
appCode
.
split
(
","
);
Collections
.
addAll
(
appCodesSet
,
appCodes
);
});
return
appCodesSet
;
}
private
void
setBizOperateUserRole
(
String
companyType
,
List
<
Long
>
roleIds
)
{
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
jyjc
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
jyjc
.
getId
());
}
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
use
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
use
.
getId
());
}
if
(
companyType
.
contains
(
PersonManageRoleEnum
.
agw
.
getName
()))
{
roleIds
.
add
(
PersonManageRoleEnum
.
agw
.
getId
());
}
}
}
...
...
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