Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
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
fangxinjiang
yifu-mvp
Commits
2af3e36a
Commit
2af3e36a
authored
Oct 19, 2023
by
fangxinjiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
权限批量导入
parent
213f97a6
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
443 additions
and
115 deletions
+443
-115
DataPermissionImportVo.java
...loud/plus/v1/yifu/archives/vo/DataPermissionImportVo.java
+32
-0
SocialAuthHandleImportVo.java
...ud/plus/v1/yifu/archives/vo/SocialAuthHandleImportVo.java
+28
-0
SocialAuthImportVo.java
...fu/cloud/plus/v1/yifu/archives/vo/SocialAuthImportVo.java
+35
-0
TCutsomerDataPermissonController.java
...archives/controller/TCutsomerDataPermissonController.java
+137
-114
TSettleDomainMapper.java
...oud/plus/v1/yifu/archives/mapper/TSettleDomainMapper.java
+4
-0
TCutsomerDataPermissonService.java
.../yifu/archives/service/TCutsomerDataPermissonService.java
+4
-0
TCutsomerDataPermissonServiceImpl.java
...hives/service/impl/TCutsomerDataPermissonServiceImpl.java
+196
-1
TSettleDomainMapper.xml
...ves-biz/src/main/resources/mapper/TSettleDomainMapper.xml
+7
-0
No files found.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/DataPermissionImportVo.java
0 → 100644
View file @
2af3e36a
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
java.io.Serializable
;
/**
* @Author fxj
* @Date 2023/10/17
* @Description
* @Version 1.0
*/
@Data
public
class
DataPermissionImportVo
extends
RowIndex
implements
Serializable
{
@ExcelAttribute
(
name
=
"登录账号"
,
maxLength
=
30
,
isNotEmpty
=
true
)
@Schema
(
description
=
"登录账号"
)
private
String
userLoginName
;
@ExcelAttribute
(
name
=
"项目名称"
,
maxLength
=
32
,
isNotEmpty
=
false
)
@Schema
(
description
=
"项目名称"
)
private
String
settleDomainName
;
@Length
(
max
=
32
,
message
=
"项目编码不能超过32个字符"
)
@ExcelAttribute
(
name
=
"项目编码"
,
maxLength
=
32
,
isNotEmpty
=
true
)
@Schema
(
description
=
"项目编码"
)
private
String
settleDomainNo
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/SocialAuthHandleImportVo.java
0 → 100644
View file @
2af3e36a
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
java.io.Serializable
;
/**
* @Author fxj
* @Date 2023/10/17
* @Description 社保公积金审核权限VO
* @Version 1.0
*/
@Data
public
class
SocialAuthHandleImportVo
extends
RowIndex
implements
Serializable
{
@ExcelAttribute
(
name
=
"登录账号"
,
maxLength
=
30
,
isNotEmpty
=
true
)
@Schema
(
description
=
"登录账号"
)
private
String
userLoginName
;
@Length
(
max
=
32
,
message
=
"户名称不能超过32个字符"
)
@ExcelAttribute
(
name
=
"户名称"
,
maxLength
=
32
,
isNotEmpty
=
true
)
@Schema
(
description
=
"户名称"
)
private
String
houseHold
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/SocialAuthImportVo.java
0 → 100644
View file @
2af3e36a
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
java.io.Serializable
;
/**
* @Author fxj
* @Date 2023/10/17
* @Description 社保公积金审核权限VO
* @Version 1.0
*/
@Data
public
class
SocialAuthImportVo
extends
RowIndex
implements
Serializable
{
@ExcelAttribute
(
name
=
"登录账号"
,
maxLength
=
30
,
isNotEmpty
=
true
)
@Schema
(
description
=
"登录账号"
)
private
String
userLoginName
;
/**
* 户类型:0社保 1公积金
*/
@Schema
(
description
=
"户类型:0社保 1公积金"
)
@ExcelAttribute
(
name
=
"户类型:0社保 1公积金"
,
maxLength
=
32
,
isNotEmpty
=
true
,
isDataId
=
true
,
readConverterExp
=
"0=社保,1=公积金"
)
private
String
type
;
@Length
(
max
=
32
,
message
=
"户名称不能超过32个字符"
)
@ExcelAttribute
(
name
=
"户名称"
,
maxLength
=
32
,
isNotEmpty
=
false
)
@Schema
(
description
=
"户名称"
)
private
String
houseHold
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/TCutsomerDataPermissonController.java
View file @
2af3e36a
...
...
@@ -9,6 +9,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.service.TCutsomerDataPermissonServic
import
com.yifu.cloud.plus.v1.yifu.archives.service.TSettleDomainService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
...
...
@@ -16,7 +17,10 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.AllArgsConstructor
;
import
lombok.SneakyThrows
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -34,133 +38,152 @@ import java.util.List;
@Tag
(
name
=
"客户数据权限表"
)
public
class
TCutsomerDataPermissonController
{
private
final
TCutsomerDataPermissonService
tCutsomerDataPermissonService
;
private
final
TSettleDomainService
settleDomainService
;
private
final
TCutsomerDataPermissonService
tCutsomerDataPermissonService
;
private
final
TSettleDomainService
settleDomainService
;
/**
* 简单分页查询
* @param page 分页对象
* @param tCutsomerDataPermisson 客户数据权限表
* @return
*/
@Operation
(
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TCutsomerDataPermisson
>>
getTCutsomerDataPermissonPage
(
Page
<
TCutsomerDataPermisson
>
page
,
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
return
new
R
<>(
tCutsomerDataPermissonService
.
getTCutsomerDataPermissonPage
(
page
,
tCutsomerDataPermisson
));
}
/**
* 简单分页查询
*
* @param page 分页对象
* @param tCutsomerDataPermisson 客户数据权限表
* @return
*/
@Operation
(
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TCutsomerDataPermisson
>>
getTCutsomerDataPermissonPage
(
Page
<
TCutsomerDataPermisson
>
page
,
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
return
new
R
<>(
tCutsomerDataPermissonService
.
getTCutsomerDataPermissonPage
(
page
,
tCutsomerDataPermisson
));
}
/**
* 导出list
* @param tCutsomerDataPermisson 客户数据权限表
* @return
*/
@Operation
(
description
=
"导出的list"
)
@PostMapping
(
"/getList"
)
public
R
<
List
<
TCutsomerDataPermisson
>>
getTCutsomerDataPermissonList
(
@RequestBody
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
return
new
R
<>(
tCutsomerDataPermissonService
.
getTCutsomerDataPermissonList
(
tCutsomerDataPermisson
));
}
/**
* 导出list
*
* @param tCutsomerDataPermisson 客户数据权限表
* @return
*/
@Operation
(
description
=
"导出的list"
)
@PostMapping
(
"/getList"
)
public
R
<
List
<
TCutsomerDataPermisson
>>
getTCutsomerDataPermissonList
(
@RequestBody
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
return
new
R
<>(
tCutsomerDataPermissonService
.
getTCutsomerDataPermissonList
(
tCutsomerDataPermisson
));
}
/**
* @Author fxj
* @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目)
* @Date 15:20 2022/7/13
* @Param
* @return
**/
@Operation
(
description
=
"获取实体的权限:默认项目"
)
@GetMapping
(
"/getPermissonByTypeAndId"
)
public
R
<
IPage
<
TCutsomerDataPermisson
>>
getTCutsomerDataPermissonByTypeAndId
(
@RequestParam
String
settleDomainId
)
{
TCutsomerDataPermisson
tp
=
new
TCutsomerDataPermisson
();
tp
.
setSettleDomainId
(
settleDomainId
);
return
new
R
(
tCutsomerDataPermissonService
.
list
(
Wrappers
.
lambdaQuery
(
tp
)));
}
/**
* @return
* @Author fxj
* @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目)
* @Date 15:20 2022/7/13
* @Param
**/
@Operation
(
description
=
"获取实体的权限:默认项目"
)
@GetMapping
(
"/getPermissonByTypeAndId"
)
public
R
<
IPage
<
TCutsomerDataPermisson
>>
getTCutsomerDataPermissonByTypeAndId
(
@RequestParam
String
settleDomainId
)
{
TCutsomerDataPermisson
tp
=
new
TCutsomerDataPermisson
();
tp
.
setSettleDomainId
(
settleDomainId
);
return
new
R
(
tCutsomerDataPermissonService
.
list
(
Wrappers
.
lambdaQuery
(
tp
)));
}
/**
* @return
* @Author fxj
* @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目)
* @Date 15:21 2022/7/13
* @Param
* @return
**/
@Operation
(
description
=
"权限复制 权限同项目分配客服(wxhr:tsettledomain_assign_customerservice)"
)
@GetMapping
(
"/copy"
)
public
R
<
String
>
insertForCopyCutsomerDataPermisson
(
String
[]
srcUser
,
String
[]
beUser
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
R
<
String
>
result
=
tCutsomerDataPermissonService
.
insertForCopyCutsomerDataPermisson
(
srcUser
,
beUser
,
user
);
if
(
CommonConstants
.
SUCCESS
.
equals
(
result
.
getCode
())){
//权限刷新
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
beUser
));
}
return
result
;
}
**/
@Operation
(
description
=
"权限复制 权限同项目分配客服(wxhr:tsettledomain_assign_customerservice)"
)
@GetMapping
(
"/copy"
)
public
R
<
String
>
insertForCopyCutsomerDataPermisson
(
String
[]
srcUser
,
String
[]
beUser
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
R
<
String
>
result
=
tCutsomerDataPermissonService
.
insertForCopyCutsomerDataPermisson
(
srcUser
,
beUser
,
user
);
if
(
CommonConstants
.
SUCCESS
.
equals
(
result
.
getCode
()))
{
//权限刷新
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
beUser
));
}
return
result
;
}
/**
* 通过id查询单条记录
* @param id
* @return R
*/
@Operation
(
description
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TCutsomerDataPermisson
>
getById
(
@PathVariable
(
"id"
)
String
id
){
return
new
R
<>(
tCutsomerDataPermissonService
.
getById
(
id
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
description
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TCutsomerDataPermisson
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tCutsomerDataPermissonService
.
getById
(
id
));
}
/**
* 新增记录
* @param tCutsomerDataPermisson
* @return R
*/
@Operation
(
description
=
"新增"
)
@SysLog
(
"新增客户数据权限表"
)
@PostMapping
public
R
<
String
>
save
(
@RequestBody
TCutsomerDataPermisson
tCutsomerDataPermisson
){
YifuUser
user
=
SecurityUtils
.
getUser
();
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
tCutsomerDataPermisson
.
getUserId
()));
if
(
Common
.
isNotNull
(
tCutsomerDataPermisson
.
getUserId
())
&&
Common
.
isNotNull
(
tCutsomerDataPermisson
.
getSettleDomainId
()))
{
List
<
TCutsomerDataPermisson
>
list
=
tCutsomerDataPermissonService
.
list
(
Wrappers
.<
TCutsomerDataPermisson
>
query
().
lambda
()
.
eq
(
TCutsomerDataPermisson:
:
getUserId
,
tCutsomerDataPermisson
.
getUserId
())
.
eq
(
TCutsomerDataPermisson:
:
getSettleDomainId
,
tCutsomerDataPermisson
.
getSettleDomainId
())
);
if
(
list
!=
null
&&
!
list
.
isEmpty
())
{
return
R
.
failed
(
"该用户已存在该项目"
);
/**
* 新增记录
*
* @param tCutsomerDataPermisson
* @return R
*/
@Operation
(
description
=
"新增"
)
@SysLog
(
"新增客户数据权限表"
)
@PostMapping
public
R
<
String
>
save
(
@RequestBody
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
tCutsomerDataPermisson
.
getUserId
()));
if
(
Common
.
isNotNull
(
tCutsomerDataPermisson
.
getUserId
())
&&
Common
.
isNotNull
(
tCutsomerDataPermisson
.
getSettleDomainId
()))
{
List
<
TCutsomerDataPermisson
>
list
=
tCutsomerDataPermissonService
.
list
(
Wrappers
.<
TCutsomerDataPermisson
>
query
().
lambda
()
.
eq
(
TCutsomerDataPermisson:
:
getUserId
,
tCutsomerDataPermisson
.
getUserId
())
.
eq
(
TCutsomerDataPermisson:
:
getSettleDomainId
,
tCutsomerDataPermisson
.
getSettleDomainId
())
);
if
(
list
!=
null
&&
!
list
.
isEmpty
())
{
return
R
.
failed
(
"该用户已存在该项目"
);
}
tCutsomerDataPermissonService
.
save
(
tCutsomerDataPermisson
);
return
R
.
ok
();
}
else
{
return
R
.
failed
(
"用户id与项目id必填"
);
}
tCutsomerDataPermissonService
.
save
(
tCutsomerDataPermisson
);
return
R
.
ok
();
}
else
{
return
R
.
failed
(
"用户id与项目id必填"
);
}
}
/**
* 修改记录
* @param tCutsomerDataPermisson
* @return R
*/
@Operation
(
description
=
"修改"
)
@SysLog
(
"修改客户数据权限表"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
tCutsomerDataPermisson
.
getUserId
()));
return
new
R
<>(
tCutsomerDataPermissonService
.
updateById
(
tCutsomerDataPermisson
));
}
/**
* 通过id删除一条记录
* @param id
* @return R
*/
@Operation
(
description
=
"删除(tcutsomerdatapermisson_del)"
)
@SysLog
(
"删除客户数据权限表"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
){
YifuUser
user
=
SecurityUtils
.
getUser
();
TCutsomerDataPermisson
tdp
=
tCutsomerDataPermissonService
.
getById
(
id
);
if
(
null
==
tdp
){
return
new
R
<>(
true
);
}
//刷新缓存
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
tdp
.
getUserId
()));
return
new
R
<>(
tCutsomerDataPermissonService
.
removeById
(
id
));
}
/**
* 修改记录
*
* @param tCutsomerDataPermisson
* @return R
*/
@Operation
(
description
=
"修改"
)
@SysLog
(
"修改客户数据权限表"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TCutsomerDataPermisson
tCutsomerDataPermisson
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
tCutsomerDataPermisson
.
getUserId
()));
return
new
R
<>(
tCutsomerDataPermissonService
.
updateById
(
tCutsomerDataPermisson
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
description
=
"删除(tcutsomerdatapermisson_del)"
)
@SysLog
(
"删除客户数据权限表"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
TCutsomerDataPermisson
tdp
=
tCutsomerDataPermissonService
.
getById
(
id
);
if
(
null
==
tdp
)
{
return
new
R
<>(
true
);
}
//刷新缓存
settleDomainService
.
removeSettleCache
(
user
,
Arrays
.
asList
(
tdp
.
getUserId
()));
return
new
R
<>(
tCutsomerDataPermissonService
.
removeById
(
id
));
}
/**
* @Author fxj
* @Description 批量导入项目权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@SneakyThrows
@Operation
(
description
=
"批量新增项目权限"
)
@SysLog
(
"批量新增项目权限"
)
@PostMapping
(
"/importListAdd"
)
public
R
<
List
<
ErrorMessage
>>
importListAdd
(
@RequestBody
MultipartFile
file
)
{
return
tCutsomerDataPermissonService
.
importDiy
(
file
.
getInputStream
());
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/TSettleDomainMapper.java
View file @
2af3e36a
...
...
@@ -24,9 +24,11 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TCustomerInfo;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
org.apache.ibatis.annotations.MapKey
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.HashMap
;
import
java.util.List
;
/**
...
...
@@ -111,4 +113,6 @@ public interface TSettleDomainMapper extends BaseMapper<TSettleDomain> {
void
changeIssueStatus
(
@Param
(
"changeIssueStatusVo"
)
ChangeIssueStatusVo
changeIssueStatusVo
);
List
<
TSettleDomain
>
getAllInfoMap
();
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/TCutsomerDataPermissonService.java
View file @
2af3e36a
...
...
@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TCutsomerDataPermisson
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
java.io.InputStream
;
import
java.util.List
;
/**
...
...
@@ -43,4 +45,6 @@ public interface TCutsomerDataPermissonService extends IService<TCutsomerDataPer
* @return
**/
R
<
String
>
insertForCopyCutsomerDataPermisson
(
String
[]
srcUserList
,
String
[]
beUser
,
YifuUser
user
);
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TCutsomerDataPermissonServiceImpl.java
View file @
2af3e36a
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.read.listener.ReadListener
;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.excel.util.ListUtils
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.vo.AllUserNaVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TCompanyInfo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TCutsomerDataPermisson
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.TCutsomerDataPermissonMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.TSettleDomainMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TCutsomerDataPermissonService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TSettleDomainService
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.DataPermissionImportVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TCompanyInfoVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ExcelUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils
;
import
lombok.AllArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shardingsphere.transaction.annotation.ShardingTransactionType
;
import
org.apache.shardingsphere.transaction.core.TransactionType
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.InputStream
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -32,9 +55,13 @@ import java.util.*;
@Service
@RequiredArgsConstructor
@EnableConfigurationProperties
(
DaprUpmsProperties
.
class
)
@AllArgsConstructor
@Slf4j
public
class
TCutsomerDataPermissonServiceImpl
extends
ServiceImpl
<
TCutsomerDataPermissonMapper
,
TCutsomerDataPermisson
>
implements
TCutsomerDataPermissonService
{
@Autowired
private
UpmsDaprUtils
upmsDaprUtils
;
@Autowired
private
TSettleDomainMapper
domainMapper
;
/**
* 客户数据权限表简单分页查询
*
...
...
@@ -118,4 +145,172 @@ public class TCutsomerDataPermissonServiceImpl extends ServiceImpl<TCutsomerData
public
boolean
save
(
TCutsomerDataPermisson
cutsomerDataPermisson
){
return
super
.
save
(
cutsomerDataPermisson
);
}
/**
* @Author fxj
* @Description 批量导入项目权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@ShardingTransactionType
(
TransactionType
.
BASE
)
@Override
public
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
)
{
List
<
ErrorMessage
>
errorMessageList
=
new
ArrayList
<>();
ExcelUtil
<
DataPermissionImportVo
>
util1
=
new
ExcelUtil
<>(
DataPermissionImportVo
.
class
);
List
<
TSettleDomain
>
settleDomains
=
domainMapper
.
getAllInfoMap
();
Map
<
String
,
TSettleDomain
>
domainMap
=
null
;
if
(
Common
.
isNotNull
(
settleDomains
)){
domainMap
=
settleDomains
.
stream
().
collect
(
Collectors
.
toMap
(
k
->
k
.
getDepartNo
(),
k
->
k
));
}
if
(
Common
.
isEmpty
(
domainMap
)){
domainMap
=
new
HashMap
<>();
}
Map
<
String
,
SysUser
>
userMap
=
new
HashMap
<>();
Map
<
String
,
String
>
existMap
=
new
HashMap
<>();
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try
{
Map
<
String
,
TSettleDomain
>
finalDomainMap
=
domainMap
;
EasyExcel
.
read
(
inputStream
,
DataPermissionImportVo
.
class
,
new
ReadListener
<
DataPermissionImportVo
>()
{
/**
* 单次缓存的数据量
*/
public
static
final
int
BATCH_COUNT
=
CommonConstants
.
BATCH_COUNT
;
/**
*临时存储
*/
private
List
<
DataPermissionImportVo
>
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
@Override
public
void
invoke
(
DataPermissionImportVo
data
,
AnalysisContext
context
)
{
ReadRowHolder
readRowHolder
=
context
.
readRowHolder
();
Integer
rowIndex
=
readRowHolder
.
getRowIndex
();
data
.
setRowIndex
(
rowIndex
+
1
);
ErrorMessage
errorMessage
=
util1
.
checkEntity
(
data
,
data
.
getRowIndex
());
if
(
Common
.
isNotNull
(
errorMessage
)){
errorMessageList
.
add
(
errorMessage
);
}
else
{
cachedDataList
.
add
(
data
);
}
if
(
cachedDataList
.
size
()
>=
BATCH_COUNT
)
{
saveData
();
// 存储完成清理 list
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
saveData
();
}
/**
* 加上存储数据库
*/
private
void
saveData
()
{
log
.
info
(
"{}条数据,开始存储数据库!"
,
cachedDataList
.
size
());
importEntity
(
cachedDataList
,
errorMessageList
,
finalDomainMap
,
userMap
,
existMap
);
log
.
info
(
"存储数据库成功!"
);
}
}).
sheet
().
doRead
();
}
catch
(
Exception
e
){
log
.
error
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
,
e
);
return
R
.
failed
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
);
}
finally
{
// 清理
domainMap
.
clear
();
}
return
judgeAllMessage
(
errorMessageList
);
}
/**
* @Author fxj
* @Description 判断所有返回数据,是否全部为正确的
* @Date 18:01 2023/10/18
* @Param
* @return
**/
private
R
<
List
<
ErrorMessage
>>
judgeAllMessage
(
List
<
ErrorMessage
>
errorMessageList
)
{
if
(!
errorMessageList
.
isEmpty
()
&&
errorMessageList
.
stream
().
noneMatch
(
e
->
e
.
getColor
().
equals
(
CommonConstants
.
RED
)))
{
return
R
.
ok
();
}
return
R
.
ok
(
errorMessageList
);
}
private
void
importEntity
(
List
<
DataPermissionImportVo
>
excelVOList
,
List
<
ErrorMessage
>
errorMessageList
,
Map
<
String
,
TSettleDomain
>
domainMap
,
Map
<
String
,
SysUser
>
userMap
,
Map
<
String
,
String
>
existMap
)
{
// 执行数据插入操作 组装
TCutsomerDataPermisson
permission
=
null
;
SysUser
user
;
R
<
SysUser
>
res
;
TSettleDomain
domain
;
TCutsomerDataPermisson
exist
;
String
temp
;
DataPermissionImportVo
excel
;
for
(
int
i
=
0
;
i
<
excelVOList
.
size
();
i
++)
{
excel
=
excelVOList
.
get
(
i
);
// 数据合法情况
user
=
userMap
.
get
(
excel
.
getUserLoginName
());
// 用户信息验证
if
(
Common
.
isEmpty
(
user
)){
res
=
upmsDaprUtils
.
getSimpleUserByLoginName
(
excel
.
getUserLoginName
());
if
(
Common
.
isNotNull
(
res
)
&&
Common
.
isNotNull
(
res
.
getData
())){
user
=
res
.
getData
();
userMap
.
put
(
user
.
getUsername
(),
user
);
}
else
{
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
CommonConstants
.
USER_FAIL
));
continue
;
}
}
if
(
Common
.
isEmpty
(
user
.
getDeptName
())){
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
"对应登录账号无部门信息,请完善后导入"
));
continue
;
}
// 项目信息验证
domain
=
domainMap
.
get
(
excel
.
getSettleDomainNo
());
if
(
Common
.
isEmpty
(
domain
)){
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
CommonConstants
.
SETTLE_DOMAIN_NOT_EXIST
));
continue
;
}
// 重复校验
temp
=
existMap
.
get
(
excel
.
getUserLoginName
()+
CommonConstants
.
DOWN_LINE_STRING
+
excel
.
getSettleDomainNo
());
if
(
Common
.
isNotNull
(
temp
)){
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
"对应账号的权限已存在,请勿重复导入"
));
continue
;
}
else
{
exist
=
baseMapper
.
selectOne
(
Wrappers
.<
TCutsomerDataPermisson
>
query
().
lambda
()
.
eq
(
TCutsomerDataPermisson:
:
getSettleDomainNo
,
excel
.
getSettleDomainNo
())
.
eq
(
TCutsomerDataPermisson:
:
getUserLoginName
,
excel
.
getUserLoginName
())
.
last
(
CommonConstants
.
LAST_ONE_SQL
));
if
(
Common
.
isNotNull
(
exist
)){
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
"对应账号的权限已存在,请勿重复导入"
));
continue
;
}
}
// 初始化及新增数据
permission
=
new
TCutsomerDataPermisson
();
permission
.
setType
(
CommonConstants
.
ONE_STRING
);
permission
.
setSettleDomainId
(
domain
.
getId
());
permission
.
setRemark
(
"批量授权"
);
permission
.
setSettleDomainName
(
domain
.
getDepartName
());
permission
.
setSettleDomainNo
(
domain
.
getDepartNo
());
permission
.
setStatus
(
CommonConstants
.
ZERO_STRING
);
permission
.
setUserId
(
user
.
getUserId
());
permission
.
setUserDeptName
(
user
.
getDeptName
());
permission
.
setUserLoginName
(
user
.
getUsername
());
permission
.
setUserNickName
(
user
.
getNickname
());
insertExcel
(
permission
);
// 加入map 验证当前表单数据是否重复
existMap
.
put
(
excel
.
getUserLoginName
()+
CommonConstants
.
DOWN_LINE_STRING
+
excel
.
getSettleDomainNo
(),
excel
.
getSettleDomainNo
());
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
CommonConstants
.
SAVE_SUCCESS
,
CommonConstants
.
GREEN
));
}
}
/**
* 插入excel bad record
*/
private
void
insertExcel
(
TCutsomerDataPermisson
entity
)
{
this
.
save
(
entity
);
}
}
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TSettleDomainMapper.xml
View file @
2af3e36a
...
...
@@ -510,4 +510,11 @@
set a.ISSUE_STATUS=#{changeIssueStatusVo.issueStatus}
WHERE a.ID=#{changeIssueStatusVo.id}
</update>
<select
id=
"getAllInfoMap"
resultMap=
"tSettleDomainMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM
t_settle_domain a
where a.DELETE_FLAG = '0'
</select>
</mapper>
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