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
6525a32e
Commit
6525a32e
authored
Dec 23, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.人员导入
parent
16df87ff
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
23 deletions
+52
-23
TzsUserInfoServiceImpl.java
...t/module/tcm/biz/service/impl/TzsUserInfoServiceImpl.java
+52
-23
No files found.
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 @
6525a32e
...
@@ -20,7 +20,10 @@ import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
...
@@ -20,7 +20,10 @@ import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import
com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto
;
import
com.yeejoin.amos.boot.module.tcm.api.dto.*
;
import
com.yeejoin.amos.boot.module.tcm.api.dto.*
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.*
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.*
;
import
com.yeejoin.amos.boot.module.tcm.api.enums.*
;
import
com.yeejoin.amos.boot.module.tcm.api.enums.EquipmentClassifityEnum
;
import
com.yeejoin.amos.boot.module.tcm.api.enums.PersonManageRoleEnum
;
import
com.yeejoin.amos.boot.module.tcm.api.enums.TwoStipulateGroupEnum
;
import
com.yeejoin.amos.boot.module.tcm.api.enums.UnitTypeEnum
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsBaseIndividualityMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsBaseIndividualityMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserEquipMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserEquipMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper
;
...
@@ -96,7 +99,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -96,7 +99,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
private
TzsUserPermissionServiceImpl
tzsUserPermissionServiceImpl
;
private
TzsUserPermissionServiceImpl
tzsUserPermissionServiceImpl
;
@Autowired
@Autowired
private
RegUnitInfoServiceImpl
regUnitInfoService
;
private
RegUnitInfoServiceImpl
regUnitInfoService
;
private
static
Map
<
String
,
String
>
statusColorMap
=
new
HashMap
<>();
private
static
Map
<
String
,
String
>
statusColorMap
=
new
HashMap
<>();
...
@@ -147,8 +150,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -147,8 +150,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
dto
.
setMenuTypeUnderPost
(
menuMap
.
get
(
dto
.
getMenuType
()));
dto
.
setMenuTypeUnderPost
(
menuMap
.
get
(
dto
.
getMenuType
()));
// 其他人员管理 包含 普通员工、安全管理员、安改维负责人
// 其他人员管理 包含 普通员工、安全管理员、安改维负责人
// 上面menuMap中的其他人员只是在新增人员时为页面赋默认值
// 上面menuMap中的其他人员只是在新增人员时为页面赋默认值
if
(
"qtry"
.
equals
(
dto
.
getMenuType
())){
if
(
"qtry"
.
equals
(
dto
.
getMenuType
()))
{
dto
.
setMenuTypeUnderPost
(
Arrays
.
asList
(
"6546"
,
"6617"
,
"6553"
));
dto
.
setMenuTypeUnderPost
(
Arrays
.
asList
(
"6546"
,
"6617"
,
"6553"
));
}
}
Page
<
TzsUserInfoDto
>
tzsUserInfoDtoPage
=
tzsUserInfoMapper
.
selectPageMessage
(
page
,
dto
);
Page
<
TzsUserInfoDto
>
tzsUserInfoDtoPage
=
tzsUserInfoMapper
.
selectPageMessage
(
page
,
dto
);
tzsUserInfoDtoPage
.
getRecords
().
forEach
(
item
->
{
tzsUserInfoDtoPage
.
getRecords
().
forEach
(
item
->
{
...
@@ -970,7 +973,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -970,7 +973,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
* 人员列表列表数据导出
* 人员列表列表数据导出
*
*
* @param response 响应
* @param response 响应
* @param ids 数据id
* @param ids
数据id
*/
*/
@Override
@Override
public
void
userInfoExport
(
HttpServletResponse
response
,
List
<
String
>
ids
)
{
public
void
userInfoExport
(
HttpServletResponse
response
,
List
<
String
>
ids
)
{
...
@@ -981,22 +984,48 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -981,22 +984,48 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
private
List
<
String
>
checkFieldIsValid
(
List
<
UserImportDto
>
userItems
)
{
private
List
<
String
>
checkFieldIsValid
(
List
<
UserImportDto
>
userItems
)
{
List
<
String
>
errors
=
new
ArrayList
<>();
List
<
String
>
errors
=
new
ArrayList
<>();
// 1.必输校验
// 1.必输校验
for
(
int
i
=
0
;
i
<
userItems
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
userItems
.
size
();
i
++)
{
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
+
"行"
+
violation
.
getMessage
());
}
}
}
}
if
(!
errors
.
isEmpty
())
{
if
(!
errors
.
isEmpty
())
{
return
errors
;
return
errors
;
}
}
// 2.手机号重复检验,手机号全局唯一,不同单位下的手机号不能相同
// 2.手机号重复检验,手机号全局唯一,不同单位下的手机号不能相同 todo 新写判断逻辑
Map
<
String
,
Long
>
phoneCheckRepeatCount
=
userItems
.
stream
().
collect
(
Collectors
.
groupingBy
((
v
)->
v
.
getPhone
()+
"_"
+
v
.
getUnitCode
(),
Collectors
.
counting
()));
Map
<
String
,
Set
<
String
>>
phoneCheckRepeatCount
=
new
HashMap
<>();
phoneCheckRepeatCount
.
forEach
(((
k
,
v
)->{
userItems
.
forEach
(
v
->
{
if
(
v
>
1
){
if
(
phoneCheckRepeatCount
.
containsKey
(
v
.
getPhone
()))
{
phoneCheckRepeatCount
.
get
(
v
.
getPhone
()).
add
(
v
.
getUnitCode
());
}
else
{
Set
<
String
>
set
=
new
HashSet
<>();
set
.
add
(
v
.
getUnitCode
());
phoneCheckRepeatCount
.
put
(
v
.
getPhone
(),
set
);
}
});
phoneCheckRepeatCount
.
forEach
(((
k
,
v
)
->
{
if
(
v
.
size
()
>
1
)
{
String
phone
=
k
.
split
(
"_"
)[
0
];
errors
.
add
(
String
.
format
(
"手机号%s重复%d次,请检查后进行上传!"
,
phone
,
v
));
}
}));
// 2.手机号重复检验,手机号全局唯一,不同单位下的手机号不能相同 todo 新写判断逻辑
Map
<
String
,
Set
<
String
>>
certNoCheckRepeatCount
=
new
HashMap
<>();
userItems
.
forEach
(
v
->
{
if
(
certNoCheckRepeatCount
.
containsKey
(
v
.
getPhone
()))
{
certNoCheckRepeatCount
.
get
(
v
.
getPhone
()).
add
(
v
.
getCertificateNum
());
}
else
{
Set
<
String
>
set
=
new
HashSet
<>();
set
.
add
(
v
.
getCertificateNum
());
certNoCheckRepeatCount
.
put
(
v
.
getPhone
(),
set
);
}
});
certNoCheckRepeatCount
.
forEach
(((
k
,
v
)
->
{
if
(
v
.
size
()
>
1
)
{
String
phone
=
k
.
split
(
"_"
)[
0
];
String
phone
=
k
.
split
(
"_"
)[
0
];
errors
.
add
(
String
.
format
(
"
手机号%s重复%d次,请检查后进行上传!"
,
phone
,
v
));
errors
.
add
(
String
.
format
(
"
存在手机号%s相同,但是证件号码不一样的数据:证件号码:%s,请检查后进行上传!"
,
phone
,
StringUtils
.
join
(
v
,
","
)
));
}
}
}));
}));
return
errors
;
return
errors
;
...
@@ -1010,7 +1039,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1010,7 +1039,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
// 1.数据检验
// 1.数据检验
List
<
String
>
errors
=
checkFieldIsValid
(
userItems
);
List
<
String
>
errors
=
checkFieldIsValid
(
userItems
);
// 1.1存在检验不通过的数据则进行提示,不在向下写入库
// 1.1存在检验不通过的数据则进行提示,不在向下写入库
if
(!
errors
.
isEmpty
())
{
if
(!
errors
.
isEmpty
())
{
return
ResponseHelper
.
buildResponse
(
errors
);
return
ResponseHelper
.
buildResponse
(
errors
);
}
}
// 2.数据处理
// 2.数据处理
...
@@ -1031,15 +1060,15 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1031,15 +1060,15 @@ 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
)
{
// 公司缓存
// 公司缓存
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
()))
userInfoMap
.
forEach
((
k
,
v
)->
{
userInfoMap
.
forEach
((
k
,
v
)
->
{
createOneUser
(
v
,
userSeqImportDataMap
.
get
(
k
),
companyCodeCompanyMap
);
createOneUser
(
v
,
userSeqImportDataMap
.
get
(
k
),
companyCodeCompanyMap
);
});
});
}
}
private
Map
<
Long
,
TzsUserInfo
>
saveImportData2Db
(
Set
<
UserImportDto
>
userSet
)
{
private
Map
<
Long
,
TzsUserInfo
>
saveImportData2Db
(
Set
<
UserImportDto
>
userSet
)
{
List
<
TzsUserInfo
>
userInfos
=
userSet
.
parallelStream
().
map
(
dto
->
{
List
<
TzsUserInfo
>
userInfos
=
userSet
.
parallelStream
().
map
(
dto
->
{
TzsUserInfo
userInfo
=
new
TzsUserInfo
();
TzsUserInfo
userInfo
=
new
TzsUserInfo
();
userInfo
.
setRecUserId
(
RequestContext
.
getExeUserId
());
userInfo
.
setRecUserId
(
RequestContext
.
getExeUserId
());
userInfo
.
setRecDate
(
new
Date
());
userInfo
.
setRecDate
(
new
Date
());
...
@@ -1067,15 +1096,15 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1067,15 +1096,15 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
return
userInfo
;
return
userInfo
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
this
.
saveOrUpdateBatch
(
userInfos
);
this
.
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
>
distinctData
=
userItems
.
stream
().
filter
(
u
->
u
.
getPhone
().
equals
(
userImportDto
.
getPhone
())).
collect
(
Collectors
.
toList
());
List
<
UserImportDto
>
distinctData
=
userItems
.
stream
().
filter
(
u
->
u
.
getPhone
().
equals
(
userImportDto
.
getPhone
())).
collect
(
Collectors
.
toList
());
for
(
UserImportDto
user
:
distinctData
)
{
for
(
UserImportDto
user
:
distinctData
)
{
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
()));
}
else
{
}
else
{
...
@@ -1089,7 +1118,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1089,7 +1118,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
public
void
createOneUser
(
TzsUserInfo
tzsUserInfo
,
UserImportDto
userImportDto
,
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
)
{
public
void
createOneUser
(
TzsUserInfo
tzsUserInfo
,
UserImportDto
userImportDto
,
Map
<
String
,
CompanyModel
>
companyCodeCompanyMap
)
{
CompanyModel
companyModel
;
CompanyModel
companyModel
;
if
(
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
())
!=
null
)
{
if
(
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
())
!=
null
)
{
companyModel
=
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
());
companyModel
=
companyCodeCompanyMap
.
get
(
tzsUserInfo
.
getUnitCode
());
}
else
{
}
else
{
companyModel
=
baseEnterpriseInfoService
.
getBaseMapper
().
getOneByCompanyCode
(
tzsUserInfo
.
getUnitCode
());
companyModel
=
baseEnterpriseInfoService
.
getBaseMapper
().
getOneByCompanyCode
(
tzsUserInfo
.
getUnitCode
());
...
@@ -1104,7 +1133,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
...
@@ -1104,7 +1133,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
Set
<
String
>
appCodesSet
=
new
HashSet
<>();
Set
<
String
>
appCodesSet
=
new
HashSet
<>();
List
<
DataDictionary
>
unitTypeList
=
regUnitInfoService
.
setAndGetUnitTypeList
();
List
<
DataDictionary
>
unitTypeList
=
regUnitInfoService
.
setAndGetUnitTypeList
();
Map
<
String
,
DataDictionary
>
dataDictionaryMap
=
unitTypeList
.
stream
().
collect
(
Collectors
.
toMap
(
DataDictionary:
:
getCode
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
Map
<
String
,
DataDictionary
>
dataDictionaryMap
=
unitTypeList
.
stream
().
collect
(
Collectors
.
toMap
(
DataDictionary:
:
getCode
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
userImportDto
.
getUnitTypePostMap
().
forEach
((
k
,
v
)->
{
userImportDto
.
getUnitTypePostMap
().
forEach
((
k
,
v
)
->
{
DataDictionary
unitType
=
dataDictionaryMap
.
get
(
k
);
DataDictionary
unitType
=
dataDictionaryMap
.
get
(
k
);
String
appCode
=
unitType
.
getTypeDesc
()
!=
null
?
unitType
.
getTypeDesc
()
:
""
;
String
appCode
=
unitType
.
getTypeDesc
()
!=
null
?
unitType
.
getTypeDesc
()
:
""
;
String
[]
appCodes
=
appCode
.
split
(
","
);
String
[]
appCodes
=
appCode
.
split
(
","
);
...
...
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