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
91853405
Commit
91853405
authored
Aug 29, 2024
by
韩桐桐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(tcm):人员添加,修改,详情接口修改
parent
44ebdfec
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
403 additions
and
166 deletions
+403
-166
TzsUserPermissionDto.java
...amos/boot/module/common/api/dto/TzsUserPermissionDto.java
+6
-1
TzsUserPermission.java
...amos/boot/module/common/api/entity/TzsUserPermission.java
+9
-3
TzsUserInfoDto.java
.../yeejoin/amos/boot/module/tcm/api/dto/TzsUserInfoDto.java
+9
-1
TzsUserInfo.java
.../yeejoin/amos/boot/module/tcm/api/entity/TzsUserInfo.java
+12
-0
TzsUserInfoVo.java
...om/yeejoin/amos/boot/module/tcm/api/vo/TzsUserInfoVo.java
+5
-0
TzsUserInfoMapper.xml
...e-tcm-api/src/main/resources/mapper/TzsUserInfoMapper.xml
+4
-4
TzsUserInfoController.java
...boot/module/tcm/biz/controller/TzsUserInfoController.java
+27
-133
TzsUserInfoServiceImpl.java
...t/module/tcm/biz/service/impl/TzsUserInfoServiceImpl.java
+143
-16
TzsUserPermissionServiceImpl.java
...le/tcm/biz/service/impl/TzsUserPermissionServiceImpl.java
+188
-8
No files found.
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/TzsUserPermissionDto.java
View file @
91853405
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.fastjson.JSONArray
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.Date
;
/**
...
...
@@ -54,6 +56,9 @@ public class TzsUserPermissionDto extends BaseDto {
@ApiModelProperty
(
value
=
"作业项目"
)
private
String
jobItem
;
@ApiModelProperty
(
"项目代号"
)
private
JSONArray
itemCode
;
@ApiModelProperty
(
value
=
"其他作业项目"
)
private
String
otherItem
;
...
...
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/entity/TzsUserPermission.java
View file @
91853405
...
...
@@ -2,11 +2,11 @@ package com.yeejoin.amos.boot.module.common.api.entity;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseRelationEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
/**
...
...
@@ -30,13 +30,13 @@ public class TzsUserPermission extends BaseRelationEntity {
private
Long
userSeq
;
/**
* 检验专用-级别
* 检验
检测
专用-级别
*/
@TableField
(
"permission_level"
)
private
String
permissionLevel
;
/**
* 检验专用-资质项目
* 检验
检测
专用-资质项目
*/
@TableField
(
"permission_item"
)
private
String
permissionItem
;
...
...
@@ -90,6 +90,12 @@ public class TzsUserPermission extends BaseRelationEntity {
private
String
jobItem
;
/**
* 项目代号,多个用逗号分割
*/
@TableField
(
"item_code"
)
private
String
itemCode
;
/**
* 其他作业项目
*/
@TableField
(
"other_item"
)
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/java/com/yeejoin/amos/boot/module/tcm/api/dto/TzsUserInfoDto.java
View file @
91853405
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
api
.
dto
;
import
com.alibaba.fastjson.JSONArray
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -34,6 +33,9 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty
(
value
=
"岗位"
)
private
String
post
;
@ApiModelProperty
(
"新岗位(后期post迁移数组至此)"
)
private
String
newPost
;
@ApiModelProperty
(
value
=
"岗位名称"
)
private
String
postName
;
...
...
@@ -102,4 +104,10 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty
(
value
=
"检测资质json,固定前缀permissionData,入库时数据存放到permissionData"
)
private
JSONArray
permissionData66152
;
@ApiModelProperty
(
value
=
"作业人员资质信息json,固定前缀permissionData,入库时数据存放到permissionData"
)
private
JSONArray
permissionData6552
;
@ApiModelProperty
(
value
=
"职称"
)
private
String
jobTitle
;
}
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/java/com/yeejoin/amos/boot/module/tcm/api/entity/TzsUserInfo.java
View file @
91853405
...
...
@@ -53,6 +53,12 @@ public class TzsUserInfo extends BaseEntity {
private
String
post
;
/**
* 新岗位(后期post迁移数组至此)
*/
@TableField
(
"new_post"
)
private
String
newPost
;
/**
* 岗位名称
*/
@TableField
(
"post_name"
)
...
...
@@ -183,4 +189,10 @@ public class TzsUserInfo extends BaseEntity {
@TableField
(
value
=
"permission_data"
)
private
String
permissionData
;
/**
* 职称
*/
@TableField
(
value
=
"job_title"
)
private
String
jobTitle
;
}
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/java/com/yeejoin/amos/boot/module/tcm/api/vo/TzsUserInfoVo.java
View file @
91853405
...
...
@@ -145,4 +145,9 @@ public class TzsUserInfoVo {
* */
private
String
companyType
;
/**
* 职称
*/
private
String
jobTitle
;
}
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/resources/mapper/TzsUserInfoMapper.xml
View file @
91853405
...
...
@@ -214,15 +214,15 @@
<select
id=
"getUserTypeList"
resultType=
"java.util.Map"
>
SELECT
*
*
FROM
"cb_data_dictionary"
"cb_data_dictionary"
WHERE
type in
is_delete = false
and type in
<foreach
collection=
"typeList"
separator=
","
item=
"type"
open=
"("
close=
")"
>
#{type}
</foreach>
</select>
<select
id=
"selectCompanyTypeById"
resultType=
"java.lang.String"
>
...
...
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 @
91853405
...
...
@@ -2,8 +2,6 @@ package com.yeejoin.amos.boot.module.tcm.biz.controller;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
...
...
@@ -17,8 +15,6 @@ import com.yeejoin.amos.boot.module.tcm.api.dto.TzIndividualityDto;
import
com.yeejoin.amos.boot.module.tcm.api.dto.TzsEquipListDto
;
import
com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.tcm.api.enums.TwoStipulateGroupEnum
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserInfoService
;
import
com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzsUserInfoServiceImpl
;
import
com.yeejoin.amos.component.feign.utils.FeignUtil
;
...
...
@@ -36,7 +32,10 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@Api
(
tags
=
"用户信息Api"
)
...
...
@@ -50,9 +49,6 @@ public class TzsUserInfoController extends BaseController {
private
ITzsUserInfoService
tzsUserInfoService
;
@Autowired
private
TzsUserInfoMapper
tzsUserInfoMapper
;
@Autowired
RedisUtils
redisUtils
;
private
static
final
String
REGULATOR_UNIT_TREE
=
"REGULATOR_UNIT_TREE"
;
...
...
@@ -61,52 +57,10 @@ public class TzsUserInfoController extends BaseController {
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增人员信息"
,
notes
=
"新增人员信息"
)
public
ResponseModel
<
TzsUserInfoDto
>
save
(
@RequestBody
JSONObject
map
)
{
Map
<
String
,
Object
>
userInfo
=
(
Map
<
String
,
Object
>)
map
.
get
(
"userInfo"
);
Map
<
String
,
Object
>
userInfo
=
(
Map
<
String
,
Object
>)
map
.
get
(
"userInfo"
);
TzsUserInfoDto
tzsUserInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
userInfo
),
TzsUserInfoDto
.
class
);
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateType
,
tzsUserInfo
.
getCertificateType
());
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateNum
,
tzsUserInfo
.
getCertificateNum
());
queryWrapper
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
certificateNum
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper
);
if
(!
ObjectUtils
.
isEmpty
(
certificateNum
)){
throw
new
BadRequest
(
"证件号码重复,请核对!"
);
}
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
queryWrapper1
.
eq
(
TzsUserInfo:
:
getPhone
,
tzsUserInfo
.
getPhone
());
queryWrapper1
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
phone
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper1
);
if
(!
ObjectUtils
.
isEmpty
(
phone
)){
throw
new
BadRequest
(
"联系电话重复,请核对!"
);
}
ReginParams
reginParams
=
JSON
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
if
(
ObjectUtils
.
isEmpty
(
reginParams
))
{
return
null
;
}
CompanyBo
companyModel
=
reginParams
.
getCompany
();
if
(
ObjectUtils
.
isEmpty
(
companyModel
)){
throw
new
BadRequest
(
"未指定人员归属单位信息"
);
}
tzsUserInfo
.
setUnitName
(
companyModel
.
getCompanyName
());
tzsUserInfo
.
setUnitCode
(
companyModel
.
getCompanyCode
());
tzsUserInfo
.
setAppointDoc
(
tzsUserInfo
.
getAppointDoc
());
tzsUserInfo
.
setRecDate
(
new
Date
());
// 兼容前端只传一个值,并且非json类型的情况
tzsUserInfo
.
setPost
(
tzsUserInfoServiceImpl
.
isJSONValid
(
tzsUserInfo
.
getPost
())
?
tzsUserInfo
.
getPost
()
:
"[\""
+
tzsUserInfo
.
getPost
()
+
"\"]"
);
tzsUserInfo
.
setPostName
(
tzsUserInfoServiceImpl
.
setPostName
(
tzsUserInfo
.
getPost
()));
this
.
setPermissionData
(
tzsUserInfo
);
tzsUserInfo
=
tzsUserInfoServiceImpl
.
createWithModel
(
tzsUserInfo
);
return
ResponseHelper
.
buildResponse
(
tzsUserInfo
);
}
private
void
setPermissionData
(
TzsUserInfoDto
tzsUserInfo
)
{
// 所有资质数据都存放到一个json字段,key为"permissionData+{人员类型},value为资质
JSONObject
data
=
new
JSONObject
();
data
.
put
(
"permissionData66151"
,
tzsUserInfo
.
getPermissionData66151
());
data
.
put
(
"permissionData66152"
,
tzsUserInfo
.
getPermissionData66152
());
tzsUserInfo
.
setPermissionData
(
data
.
toJSONString
());
TzsUserInfoDto
userInfoDto
=
tzsUserInfoServiceImpl
.
saveUserInfo
(
tzsUserInfo
);
return
ResponseHelper
.
buildResponse
(
userInfoDto
);
}
...
...
@@ -114,72 +68,14 @@ public class TzsUserInfoController extends BaseController {
@PostMapping
(
value
=
"/update"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"修改人员信息"
,
notes
=
"修改人员信息"
)
public
ResponseModel
<
TzsUserInfoDto
>
update
(
@RequestBody
JSONObject
map
,
@RequestParam
Long
rowId
)
{
Map
<
String
,
Object
>
userInfo
=
(
Map
<
String
,
Object
>)
map
.
get
(
"userInfo"
);
@RequestParam
Long
rowId
)
{
Map
<
String
,
Object
>
userInfo
=
(
Map
<
String
,
Object
>)
map
.
get
(
"userInfo"
);
TzsUserInfoDto
tzsUserInfoDto
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
userInfo
),
TzsUserInfoDto
.
class
);
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateType
,
tzsUserInfoDto
.
getCertificateType
());
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateNum
,
tzsUserInfoDto
.
getCertificateNum
());
queryWrapper
.
ne
(
TzsUserInfo:
:
getSequenceNbr
,
rowId
);
queryWrapper
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
certificateNum
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper
);
if
(!
ObjectUtils
.
isEmpty
(
certificateNum
)){
throw
new
BadRequest
(
"证件号码重复,请核对!"
);
}
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
queryWrapper1
.
eq
(
TzsUserInfo:
:
getPhone
,
tzsUserInfoDto
.
getPhone
());
queryWrapper1
.
ne
(
TzsUserInfo:
:
getSequenceNbr
,
rowId
);
queryWrapper1
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
phone
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper1
);
if
(!
ObjectUtils
.
isEmpty
(
phone
)){
throw
new
BadRequest
(
"联系电话重复,请核对!"
);
}
ReginParams
reginParams
=
JSON
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
if
(
ObjectUtils
.
isEmpty
(
reginParams
))
{
return
null
;
}
CompanyBo
companyModel
=
reginParams
.
getCompany
();
if
(
ObjectUtils
.
isEmpty
(
companyModel
)){
throw
new
BadRequest
(
"未指定人员归属单位信息"
);
}
//删除人员与组的关系
QueryWrapper
<
TzsUserInfo
>
queryWrapper2
=
new
QueryWrapper
<>();
queryWrapper2
.
eq
(
"sequence_nbr"
,
rowId
);
queryWrapper2
.
eq
(
"is_delete"
,
false
);
TzsUserInfo
selectOne
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper2
);
if
(!
ObjectUtils
.
isEmpty
(
selectOne
.
getAmosUserId
())){
tzsUserInfoServiceImpl
.
deleteGroupAndPersonRelation
(
selectOne
.
getPostName
(),
selectOne
.
getAmosUserId
());
}
tzsUserInfoDto
.
setUnitName
(
companyModel
.
getCompanyName
());
tzsUserInfoDto
.
setUnitCode
(
companyModel
.
getCompanyCode
());
tzsUserInfoDto
.
setSequenceNbr
(
rowId
);
tzsUserInfoDto
.
setRecDate
(
new
Date
());
// 兼容前端只传一个值,并且非json类型的情况
tzsUserInfoDto
.
setPost
(
tzsUserInfoServiceImpl
.
isJSONValid
(
tzsUserInfoDto
.
getPost
())
?
tzsUserInfoDto
.
getPost
()
:
"[\""
+
tzsUserInfoDto
.
getPost
()
+
"\"]"
);
String
postName
=
tzsUserInfoServiceImpl
.
setPostName
(
tzsUserInfoDto
.
getPost
());
tzsUserInfoDto
.
setPostName
(
postName
);
if
(!
ObjectUtils
.
isEmpty
(
selectOne
.
getAmosUserId
())){
// 添加新的人员与组的关系
String
[]
split
=
postName
.
split
(
","
);
List
<
String
>
ids
=
new
ArrayList
<>();
ids
.
add
(
selectOne
.
getAmosUserId
());
for
(
String
s
:
split
)
{
if
(!
ObjectUtils
.
isEmpty
(
TwoStipulateGroupEnum
.
getId
.
get
(
s
))){
Privilege
.
groupUserClient
.
create
(
TwoStipulateGroupEnum
.
getId
.
get
(
s
),
ids
);
}
}
}
this
.
setPermissionData
(
tzsUserInfoDto
);
tzsUserInfoServiceImpl
.
updateWithModel
(
tzsUserInfoDto
);
return
ResponseHelper
.
buildResponse
(
tzsUserInfoDto
);
TzsUserInfoDto
userInfoDto
=
tzsUserInfoServiceImpl
.
updateUserInfo
(
rowId
,
tzsUserInfoDto
);
return
ResponseHelper
.
buildResponse
(
userInfoDto
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/deleteBatch"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"批量删除"
,
notes
=
"批量删除"
)
...
...
@@ -224,18 +120,17 @@ public class TzsUserInfoController extends BaseController {
return
null
;
}
CompanyBo
company
=
reginParams
.
getCompany
();
if
(
ObjectUtils
.
isEmpty
(
company
))
{
if
(
ObjectUtils
.
isEmpty
(
company
))
{
throw
new
BadRequest
(
"未指定人员归属单位信息"
);
}
dto
.
setUnitCode
(
company
.
getCompanyCode
());
Page
<
TzsUserInfoDto
>
page
=
new
Page
<>();
page
.
setCurrent
(
Long
.
parseLong
(
current
));
page
.
setSize
(
Long
.
parseLong
(
size
));
return
ResponseHelper
.
buildResponse
(
tzsUserInfoService
.
page
(
dto
,
page
));
return
ResponseHelper
.
buildResponse
(
tzsUserInfoService
.
page
(
dto
,
page
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/createUnitPerson"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"给单位历史管理员添加两员配备默认数据"
,
notes
=
"给单位历史管理员添加两员配备默认数据"
)
...
...
@@ -268,9 +163,9 @@ public class TzsUserInfoController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/arrangement-statistic"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"两员配备说明统计"
,
notes
=
"两员配备说明统计"
)
public
ResponseModel
<
Map
<
String
,
Integer
>>
arrangementStatistic
()
{
List
<
CompanyModel
>
companyModels
=
FeignUtil
.
remoteCall
(()
->
Privilege
.
companyClient
.
queryListByChild
(
RequestContext
.
getExeUserId
()));
if
(
companyModels
.
isEmpty
())
{
public
ResponseModel
<
Map
<
String
,
Integer
>>
arrangementStatistic
()
{
List
<
CompanyModel
>
companyModels
=
FeignUtil
.
remoteCall
(()
->
Privilege
.
companyClient
.
queryListByChild
(
RequestContext
.
getExeUserId
()));
if
(
companyModels
.
isEmpty
())
{
throw
new
BadRequest
(
"未指定人员归属单位信息"
);
}
return
ResponseHelper
.
buildResponse
(
tzsUserInfoService
.
getArrangementStatistic
(
companyModels
.
get
(
0
).
getCompanyCode
()));
...
...
@@ -280,7 +175,7 @@ public class TzsUserInfoController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getCompanyType"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"当前登录用户单位类型获取"
,
notes
=
"当前登录用户单位类型获取"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getCompanyType
()
{
public
ResponseModel
<
Map
<
String
,
Object
>>
getCompanyType
()
{
return
ResponseHelper
.
buildResponse
(
tzsUserInfoService
.
getCompanyType
());
}
...
...
@@ -295,7 +190,7 @@ public class TzsUserInfoController extends BaseController {
@GetMapping
(
value
=
"/getEquipList"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"设备查询(可绑定、可解绑)"
,
notes
=
"设备查询(可绑定、可解绑)"
)
public
ResponseModel
<
IPage
<
TzsEquipListDto
>>
getEquipList
(
@RequestParam
(
value
=
"type"
)
String
type
,
@RequestParam
(
value
=
"userSeq"
,
required
=
false
)
String
userSeq
,
@RequestParam
(
value
=
"userSeq"
,
required
=
false
)
String
userSeq
,
@RequestParam
(
value
=
"current"
)
String
current
,
@RequestParam
(
value
=
"size"
)
String
size
,
TzsEquipListDto
dto
)
{
...
...
@@ -313,7 +208,7 @@ public class TzsUserInfoController extends BaseController {
public
ResponseModel
<
Boolean
>
equipBind
(
@RequestParam
(
value
=
"type"
)
String
type
,
@RequestParam
(
value
=
"userSeq"
)
String
userSeq
,
@RequestParam
(
value
=
"creditCode"
)
String
creditCode
,
@RequestBody
Map
<
String
,
Object
>
map
)
{
@RequestBody
Map
<
String
,
Object
>
map
)
{
return
ResponseHelper
.
buildResponse
(
tzsUserInfoService
.
equipBind
(
type
,
userSeq
,
creditCode
,
map
));
}
...
...
@@ -334,16 +229,15 @@ public class TzsUserInfoController extends BaseController {
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getPersonType"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取当前登录人人员类型"
,
notes
=
"获取当前登录人人员类型"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getPersonType
()
{
public
ResponseModel
<
Map
<
String
,
Object
>>
getPersonType
()
{
return
ResponseHelper
.
buildResponse
(
tzsUserInfoService
.
getPersonType
());
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/getGroupAndPersonInfo"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"通过组id查询组及组内人员信息"
,
notes
=
"通过组id查询组及组内人员信息"
)
public
ResponseModel
<
List
<
GroupAndPersonInfoDto
>>
getGroupAndPersonInfo
(
@RequestParam
(
value
=
"groupId"
)
Long
groupId
)
{
...
...
@@ -391,19 +285,19 @@ public class TzsUserInfoController extends BaseController {
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"查询指定类型的下的人"
,
notes
=
"查询指定类型的下的人"
)
@PostMapping
(
value
=
"/permission-page"
)
public
ResponseModel
<
Page
<
UserPermissionDto
>>
getUserByPermission
(
@RequestParam
(
value
=
"current"
)
long
current
,
@RequestParam
(
value
=
"size"
)
long
size
,
@RequestParam
(
required
=
false
,
defaultValue
=
"all"
)
String
type
,
@RequestBody
UserPermissionDto
filter
)
{
@RequestParam
(
value
=
"size"
)
long
size
,
@RequestParam
(
required
=
false
,
defaultValue
=
"all"
)
String
type
,
@RequestBody
UserPermissionDto
filter
)
{
filter
.
setOrgCode
(
getSelectedOrgInfo
().
getCompany
().
getOrgCode
());
filter
.
setCityCode
(
getSelectedOrgInfo
().
getCompany
().
getCompanyCode
());
Page
<
UserPermissionDto
>
userPermissionDtos
=
tzsUserInfoServiceImpl
.
getUserByPermission
(
current
,
size
,
type
,
filter
);
Page
<
UserPermissionDto
>
userPermissionDtos
=
tzsUserInfoServiceImpl
.
getUserByPermission
(
current
,
size
,
type
,
filter
);
return
ResponseHelper
.
buildResponse
(
userPermissionDtos
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"查询当前登录人所属公司下的人"
,
notes
=
"查询当前登录人所属公司下的人"
)
@GetMapping
(
value
=
"/listByLogin"
)
public
ResponseModel
<
List
<
UserPermissionDto
>>
getUserPermissionOfCurrentLogin
(){
public
ResponseModel
<
List
<
UserPermissionDto
>>
getUserPermissionOfCurrentLogin
()
{
UserPermissionDto
filter
=
new
UserPermissionDto
();
filter
.
setCityCode
(
getSelectedOrgInfo
().
getCompany
().
getCompanyCode
());
List
<
UserPermissionDto
>
userPermissionDtos
=
tzsUserInfoServiceImpl
.
getUserPermissionOfCurrentLogin
(
filter
);
...
...
@@ -413,7 +307,7 @@ public class TzsUserInfoController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"查询指定公司下的人"
,
notes
=
"查询指定公司下的人"
)
@GetMapping
(
value
=
"/listByCompanySeq"
)
public
ResponseModel
<
List
<
UserPermissionDto
>>
getUserPermissionByCompanySeq
(
@RequestParam
Long
comSeq
){
public
ResponseModel
<
List
<
UserPermissionDto
>>
getUserPermissionByCompanySeq
(
@RequestParam
Long
comSeq
)
{
List
<
UserPermissionDto
>
userPermissionDtos
=
tzsUserInfoServiceImpl
.
getUserPermissionByCompanySeq
(
comSeq
);
return
ResponseHelper
.
buildResponse
(
userPermissionDtos
);
}
...
...
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 @
91853405
...
...
@@ -63,6 +63,19 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
// 平台用户锁定状态
private
final
String
UNLOCK
=
"UNLOCK"
;
private
final
String
LOCK
=
"LOCK"
;
/**
* 检验人员资质类型
*/
private
final
String
JYRY_TYPE
=
"permissionData66151"
;
/**
* 检测人员资质类型
*/
private
final
String
JCRY_TYPE
=
"permissionData66152"
;
/**
* 工作人员资质类型
*/
private
final
String
ZYRY_TYPE
=
"permissionData6552"
;
@Autowired
DataDictionaryServiceImpl
iDataDictionaryService
;
@Autowired
...
...
@@ -83,13 +96,16 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
private
RedisUtils
redisUtils
;
@Autowired
private
TzsUserQualificationsServiceImpl
tzsUserQualificationsService
;
@Autowired
private
TzsUserPermissionServiceImpl
tzsUserPermissionServiceImpl
;
private
static
Map
<
String
,
String
>
statusColorMap
=
new
HashMap
<>();
private
static
Map
<
String
,
String
>
statusColorMap
=
new
HashMap
<>();
static
{
statusColorMap
.
put
(
"无资质要求"
,
"#868686"
);
statusColorMap
.
put
(
"资质超期"
,
"#FF0000"
);
statusColorMap
.
put
(
"资质临期"
,
"#FC9700"
);
statusColorMap
.
put
(
"正常"
,
"#18B100"
);
statusColorMap
.
put
(
"无资质要求"
,
"#868686"
);
statusColorMap
.
put
(
"资质超期"
,
"#FF0000"
);
statusColorMap
.
put
(
"资质临期"
,
"#FC9700"
);
statusColorMap
.
put
(
"正常"
,
"#18B100"
);
}
@Override
...
...
@@ -212,7 +228,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
Map
<
String
,
Object
>
maps
=
new
HashMap
<>();
TzsUserInfo
tzsUserInfo
=
tzsUserInfoMapper
.
selectById
(
id
);
TzsUserInfoVo
tzsUserInfoVo
=
new
TzsUserInfoVo
();
BeanUtils
.
copyProperties
(
tzsUserInfo
,
tzsUserInfoVo
,
"identification"
,
"profile"
,
"post"
,
"permissionItem"
,
"appointDoc"
);
BeanUtils
.
copyProperties
(
tzsUserInfo
,
tzsUserInfoVo
,
"identification"
,
"profile"
,
"post"
,
"permissionItem"
,
"appointDoc"
);
if
(!
ObjectUtils
.
isEmpty
(
tzsUserInfo
.
getPost
()))
{
tzsUserInfoVo
.
setPost
(
JSON
.
parseArray
(
tzsUserInfo
.
getPost
()));
}
...
...
@@ -225,14 +241,17 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
tzsUserInfoVo
.
setOtherAccessories
(
ObjectUtils
.
isEmpty
(
tzsUserInfo
.
getOtherAccessories
())
?
null
:
JSON
.
parseArray
(
tzsUserInfo
.
getOtherAccessories
()));
String
companyType
=
getUnitType
();
tzsUserInfoVo
.
setCompanyType
(
companyType
.
contains
(
"个人主体"
)
?
"individual"
:
"no-individual"
);
Map
<
String
,
Object
>
userInfoMap
=
BeanUtil
.
beanToMap
(
tzsUserInfoVo
);
userInfoMap
.
putAll
(
this
.
getPermissionDataJson
(
tzsUserInfo
.
getPermissionData
()));
Map
<
String
,
Object
>
userInfoMap
=
BeanUtil
.
beanToMap
(
tzsUserInfoVo
);
// userInfoMap.putAll(this.getPermissionDataJson(tzsUserInfo.getPermissionData()));
// 填充资质信息
Map
<?
extends
String
,
?>
permissions
=
tzsUserPermissionServiceImpl
.
queryForSubFormByUserSeq
(
String
.
valueOf
(
tzsUserInfo
.
getSequenceNbr
()));
userInfoMap
.
putAll
(
permissions
);
maps
.
put
(
"userInfo"
,
userInfoMap
);
return
maps
;
}
private
Map
<?
extends
String
,?>
getPermissionDataJson
(
String
permissionData
)
{
if
(
permissionData
!=
null
)
{
private
Map
<?
extends
String
,
?>
getPermissionDataJson
(
String
permissionData
)
{
if
(
permissionData
!=
null
)
{
return
JSON
.
parseObject
(
permissionData
);
}
return
new
JSONObject
();
...
...
@@ -657,7 +676,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
Page
<
UserPermissionDto
>
permissionDtoPage
=
new
Page
<>(
current
,
size
);
List
<
String
>
post
=
this
.
getPostByType
(
type
);
Page
<
UserPermissionDto
>
result
=
this
.
getBaseMapper
().
queryUserByPermissionPage
(
permissionDtoPage
,
post
,
filter
);
result
.
getRecords
().
forEach
(
d
->
{
result
.
getRecords
().
forEach
(
d
->
{
if
(
StringUtils
.
isNotEmpty
(
d
.
getIdentificationStr
()))
{
// 照片赋值
...
...
@@ -675,7 +694,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
public
List
<
UserPermissionDto
>
getUserPermissionOfCurrentLogin
(
UserPermissionDto
filter
)
{
List
<
UserPermissionDto
>
result
=
this
.
getBaseMapper
().
queryUserByPermissionOfOneCompany
(
filter
);
result
.
forEach
(
d
->
{
result
.
forEach
(
d
->
{
if
(
StringUtils
.
isNotEmpty
(
d
.
getIdentificationStr
()))
{
// String转json
d
.
setIdentification
(
JSON
.
parseArray
(
d
.
getIdentificationStr
()));
...
...
@@ -685,7 +704,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
d
.
setPhotoUrl
(
commonFiles
.
get
(
0
).
getUrl
());
}
}
d
.
setPermissionStatusColor
(
statusColorMap
.
getOrDefault
(
d
.
getPermissionStatus
(),
"#868686"
));
d
.
setPermissionStatusColor
(
statusColorMap
.
getOrDefault
(
d
.
getPermissionStatus
(),
"#868686"
));
// 人员类型枚举转name
d
.
setPost
(
this
.
isJSONValid
(
d
.
getPost
())
?
d
.
getPost
()
:
"[\""
+
d
.
getPost
()
+
"\"]"
);
d
.
setPostName
(
this
.
setPostName
(
d
.
getPost
()));
...
...
@@ -694,7 +713,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
}
private
List
<
String
>
getPostByType
(
String
type
)
{
switch
(
type
){
switch
(
type
)
{
case
"jy"
:
return
Collections
.
singletonList
(
"66151"
);
case
"jc"
:
...
...
@@ -702,9 +721,9 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
case
"zyry"
:
return
Collections
.
singletonList
(
"6552"
);
case
"qt"
:
return
Arrays
.
asList
(
"6549"
,
"6548"
,
"6547"
,
"6546"
,
"6551"
,
"6550"
,
"6616"
,
"6553"
,
"6617"
);
return
Arrays
.
asList
(
"6549"
,
"6548"
,
"6547"
,
"6546"
,
"6551"
,
"6550"
,
"6616"
,
"6553"
,
"6617"
);
default
:
return
Arrays
.
asList
(
"6549"
,
"6548"
,
"6547"
,
"6546"
,
"6551"
,
"6550"
,
"6616"
,
"6553"
,
"6617"
,
"66151"
,
"66152"
,
"6552"
);
return
Arrays
.
asList
(
"6549"
,
"6548"
,
"6547"
,
"6546"
,
"6551"
,
"6550"
,
"6616"
,
"6553"
,
"6617"
,
"66151"
,
"66152"
,
"6552"
);
}
}
...
...
@@ -712,4 +731,112 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
TzBaseEnterpriseInfo
enterpriseInfo
=
baseEnterpriseInfoService
.
getById
(
comSeq
);
return
getUserPermissionOfCurrentLogin
(
UserPermissionDto
.
builder
().
cityCode
(
enterpriseInfo
.
getUseUnitCode
()).
build
());
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
TzsUserInfoDto
saveUserInfo
(
TzsUserInfoDto
tzsUserInfo
)
{
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateType
,
tzsUserInfo
.
getCertificateType
());
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateNum
,
tzsUserInfo
.
getCertificateNum
());
queryWrapper
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
certificateNum
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper
);
if
(!
ObjectUtils
.
isEmpty
(
certificateNum
))
{
throw
new
BadRequest
(
"证件号码重复,请核对!"
);
}
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
queryWrapper1
.
eq
(
TzsUserInfo:
:
getPhone
,
tzsUserInfo
.
getPhone
());
queryWrapper1
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
phone
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper1
);
if
(!
ObjectUtils
.
isEmpty
(
phone
))
{
throw
new
BadRequest
(
"联系电话重复,请核对!"
);
}
ReginParams
reginParams
=
JSON
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
if
(
ObjectUtils
.
isEmpty
(
reginParams
))
{
return
null
;
}
CompanyBo
companyModel
=
reginParams
.
getCompany
();
if
(
ObjectUtils
.
isEmpty
(
companyModel
))
{
throw
new
BadRequest
(
"未指定人员归属单位信息"
);
}
tzsUserInfo
.
setUnitName
(
companyModel
.
getCompanyName
());
tzsUserInfo
.
setUnitCode
(
companyModel
.
getCompanyCode
());
tzsUserInfo
.
setAppointDoc
(
tzsUserInfo
.
getAppointDoc
());
tzsUserInfo
.
setRecDate
(
new
Date
());
// 兼容前端只传一个值,并且非json类型的情况
String
post
=
this
.
isJSONValid
(
tzsUserInfo
.
getPost
())
?
tzsUserInfo
.
getPost
()
:
"[\""
+
tzsUserInfo
.
getPost
()
+
"\"]"
;
tzsUserInfo
.
setPost
(
post
);
tzsUserInfo
.
setNewPost
(
post
);
tzsUserInfo
.
setPostName
(
this
.
setPostName
(
tzsUserInfo
.
getPost
()));
tzsUserInfo
=
this
.
createWithModel
(
tzsUserInfo
);
// 保存资质
tzsUserPermissionServiceImpl
.
savePermissionData
(
tzsUserInfo
);
return
tzsUserInfo
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
TzsUserInfoDto
updateUserInfo
(
Long
rowId
,
TzsUserInfoDto
tzsUserInfoDto
)
{
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateType
,
tzsUserInfoDto
.
getCertificateType
());
queryWrapper
.
eq
(
TzsUserInfo:
:
getCertificateNum
,
tzsUserInfoDto
.
getCertificateNum
());
queryWrapper
.
ne
(
TzsUserInfo:
:
getSequenceNbr
,
rowId
);
queryWrapper
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
certificateNum
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper
);
if
(!
ObjectUtils
.
isEmpty
(
certificateNum
))
{
throw
new
BadRequest
(
"证件号码重复,请核对!"
);
}
LambdaQueryWrapper
<
TzsUserInfo
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
queryWrapper1
.
eq
(
TzsUserInfo:
:
getPhone
,
tzsUserInfoDto
.
getPhone
());
queryWrapper1
.
ne
(
TzsUserInfo:
:
getSequenceNbr
,
rowId
);
queryWrapper1
.
eq
(
TzsUserInfo:
:
getIsDelete
,
false
);
TzsUserInfo
phone
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper1
);
if
(!
ObjectUtils
.
isEmpty
(
phone
))
{
throw
new
BadRequest
(
"联系电话重复,请核对!"
);
}
ReginParams
reginParams
=
JSON
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
if
(
ObjectUtils
.
isEmpty
(
reginParams
))
{
return
null
;
}
CompanyBo
companyModel
=
reginParams
.
getCompany
();
if
(
ObjectUtils
.
isEmpty
(
companyModel
))
{
throw
new
BadRequest
(
"未指定人员归属单位信息"
);
}
//删除人员与组的关系
QueryWrapper
<
TzsUserInfo
>
queryWrapper2
=
new
QueryWrapper
<>();
queryWrapper2
.
eq
(
"sequence_nbr"
,
rowId
);
queryWrapper2
.
eq
(
"is_delete"
,
false
);
TzsUserInfo
selectOne
=
tzsUserInfoMapper
.
selectOne
(
queryWrapper2
);
if
(!
ObjectUtils
.
isEmpty
(
selectOne
.
getAmosUserId
()))
{
this
.
deleteGroupAndPersonRelation
(
selectOne
.
getPostName
(),
selectOne
.
getAmosUserId
());
}
tzsUserInfoDto
.
setUnitName
(
companyModel
.
getCompanyName
());
tzsUserInfoDto
.
setUnitCode
(
companyModel
.
getCompanyCode
());
tzsUserInfoDto
.
setSequenceNbr
(
rowId
);
tzsUserInfoDto
.
setRecDate
(
new
Date
());
// 兼容前端只传一个值,并且非json类型的情况
String
post
=
this
.
isJSONValid
(
tzsUserInfoDto
.
getPost
())
?
tzsUserInfoDto
.
getPost
()
:
"[\""
+
tzsUserInfoDto
.
getPost
()
+
"\"]"
;
tzsUserInfoDto
.
setPost
(
post
);
tzsUserInfoDto
.
setNewPost
(
post
);
String
postName
=
this
.
setPostName
(
tzsUserInfoDto
.
getPost
());
tzsUserInfoDto
.
setPostName
(
postName
);
if
(!
ObjectUtils
.
isEmpty
(
selectOne
.
getAmosUserId
()))
{
// 添加新的人员与组的关系
String
[]
split
=
postName
.
split
(
","
);
List
<
String
>
ids
=
new
ArrayList
<>();
ids
.
add
(
selectOne
.
getAmosUserId
());
for
(
String
s
:
split
)
{
if
(!
ObjectUtils
.
isEmpty
(
TwoStipulateGroupEnum
.
getId
.
get
(
s
)))
{
Privilege
.
groupUserClient
.
create
(
TwoStipulateGroupEnum
.
getId
.
get
(
s
),
ids
);
}
}
}
// 更新资质
tzsUserPermissionServiceImpl
.
updatePermissionData
(
tzsUserInfoDto
);
this
.
updateWithModel
(
tzsUserInfoDto
);
return
tzsUserInfoDto
;
}
}
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/TzsUserPermissionServiceImpl.java
View file @
91853405
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.TzsUserPermissionDto
;
import
com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission
;
import
com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserPermissionMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserPermissionService
;
import
com.yeejoin.amos.boot.module.common.api.dto.TzsUserPermissionDto
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.List
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatterBuilder
;
import
java.time.temporal.ChronoField
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 用户资质信息表服务实现类
...
...
@@ -16,18 +32,181 @@ import java.util.List;
* @date 2024-08-27
*/
@Service
public
class
TzsUserPermissionServiceImpl
extends
BaseService
<
TzsUserPermissionDto
,
TzsUserPermission
,
TzsUserPermissionMapper
>
implements
ITzsUserPermissionService
{
public
class
TzsUserPermissionServiceImpl
extends
BaseService
<
TzsUserPermissionDto
,
TzsUserPermission
,
TzsUserPermissionMapper
>
implements
ITzsUserPermissionService
{
/**
* 检验人员资质类型
*/
private
final
String
JYRY_TYPE
=
"permissionData66151"
;
/**
* 检测人员资质类型
*/
private
final
String
JCRY_TYPE
=
"permissionData66152"
;
/**
* 工作人员资质类型
*/
private
final
String
ZYRY_TYPE
=
"permissionData6552"
;
/**
* 需要转换的附件字段 jsonString化字段
*/
private
final
String
[]
ATTACHMENTS
=
{
"certAttachment"
,
"otherItem"
,
"itemCode"
};
/**
* 分页查询
*/
public
Page
<
TzsUserPermissionDto
>
queryForTzsUserPermissionPage
(
Page
<
TzsUserPermissionDto
>
page
)
{
public
Page
<
TzsUserPermissionDto
>
queryForTzsUserPermissionPage
(
Page
<
TzsUserPermissionDto
>
page
)
{
return
this
.
queryForPage
(
page
,
null
,
false
);
}
/**
* 列表查询 示例
*/
public
List
<
TzsUserPermissionDto
>
queryForTzsUserPermissionList
()
{
return
this
.
queryForList
(
""
,
false
);
public
List
<
TzsUserPermissionDto
>
queryForTzsUserPermissionList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 更新资质权限数据
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updatePermissionData
(
TzsUserInfoDto
tzsUserInfo
)
{
// 1,删除对应资质
LambdaQueryWrapper
<
TzsUserPermission
>
lambda
=
new
QueryWrapper
<
TzsUserPermission
>().
lambda
();
lambda
.
eq
(
TzsUserPermission:
:
getUserSeq
,
tzsUserInfo
.
getSequenceNbr
());
this
.
getBaseMapper
().
delete
(
lambda
);
// 2,保存对应资质
this
.
savePermissionData
(
tzsUserInfo
);
}
/**
* 保存资质权限数据
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
savePermissionData
(
TzsUserInfoDto
userInfoDto
)
{
ArrayList
<
TzsUserPermission
>
tzsUserPermissions
=
new
ArrayList
<>();
// permissionData66151 检验资质
JSONArray
permissionData66151
=
userInfoDto
.
getPermissionData66151
();
if
(!
ValidationUtil
.
isEmpty
(
permissionData66151
))
{
permissionData66151
.
forEach
(
x
->
tzsUserPermissions
.
add
(
buildPermission
(
JYRY_TYPE
,
(
JSONObject
)
x
,
userInfoDto
)));
}
// permissionData66152 检测资质
JSONArray
permissionData66152
=
userInfoDto
.
getPermissionData66152
();
if
(!
ValidationUtil
.
isEmpty
(
permissionData66152
))
{
permissionData66152
.
forEach
(
x
->
tzsUserPermissions
.
add
(
buildPermission
(
JCRY_TYPE
,
(
JSONObject
)
x
,
userInfoDto
)));
}
// permissionData6552 作业人员资质
JSONArray
permissionData6552
=
userInfoDto
.
getPermissionData6552
();
if
(!
ValidationUtil
.
isEmpty
(
permissionData6552
))
{
permissionData6552
.
forEach
(
x
->
tzsUserPermissions
.
add
(
buildPermission
(
ZYRY_TYPE
,
(
JSONObject
)
x
,
userInfoDto
)));
}
this
.
saveBatch
(
tzsUserPermissions
);
}
/**
* 构建资质信息实体
*
* @param type 人员资质类型
* @param permissionData 入参
* @param userInfo 人员信息
* @return permission
*/
private
TzsUserPermission
buildPermission
(
String
type
,
JSONObject
permissionData
,
TzsUserInfoDto
userInfo
)
{
TzsUserPermission
permission
=
new
TzsUserPermission
();
permission
.
setUserSeq
(
userInfo
.
getSequenceNbr
());
permission
.
setPermissionLevel
(!
ZYRY_TYPE
.
equals
(
type
)
?
(
String
)
permissionData
.
get
(
"permissionLevel"
)
:
null
);
permission
.
setPermissionItem
(!
ZYRY_TYPE
.
equals
(
type
)
?
JSONArray
.
toJSONString
(
permissionData
.
get
(
"permissionItem"
))
:
null
);
permission
.
setPermissionPost
(
type
);
permission
.
setCertNo
((
String
)
permissionData
.
get
(
"certNo"
));
DateTimeFormatter
formatter
=
new
DateTimeFormatterBuilder
()
.
appendPattern
(
"yyyy-MM-dd"
)
.
optionalStart
()
.
appendPattern
(
" HH:mm:ss"
)
.
optionalEnd
()
.
parseDefaulting
(
ChronoField
.
HOUR_OF_DAY
,
0
)
.
parseDefaulting
(
ChronoField
.
MINUTE_OF_HOUR
,
0
)
.
parseDefaulting
(
ChronoField
.
SECOND_OF_MINUTE
,
0
)
.
toFormatter
();
String
expiryDateString
=
String
.
valueOf
(
permissionData
.
get
(
"expiryDate"
));
LocalDate
localDate1
=
LocalDate
.
parse
(
expiryDateString
,
formatter
);
LocalDateTime
localDateTime1
=
localDate1
.
atStartOfDay
();
Date
expiryDate
=
Date
.
from
(
localDateTime1
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
permission
.
setExpiryDate
(
expiryDate
);
String
issueDateString
=
String
.
valueOf
(
permissionData
.
get
(
"issueDate"
));
LocalDate
localDate2
=
LocalDate
.
parse
(
issueDateString
,
formatter
);
LocalDateTime
localDateTime2
=
localDate2
.
atStartOfDay
();
Date
issueDate
=
Date
.
from
(
localDateTime2
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
permission
.
setIssueDate
(
issueDate
);
permission
.
setApprovedOrgan
((
String
)
permissionData
.
get
(
"approvedOrgan"
));
permission
.
setCertAttachment
(
JSONArray
.
toJSONString
(
permissionData
.
get
(
"certAttachment"
)));
permission
.
setCertType
(
ZYRY_TYPE
.
equals
(
type
)
?
String
.
valueOf
(
permissionData
.
get
(
"certType"
))
:
null
);
permission
.
setJobItem
(
ZYRY_TYPE
.
equals
(
type
)
?
String
.
valueOf
(
permissionData
.
get
(
"jobItem"
))
:
null
);
permission
.
setOtherItem
(
ZYRY_TYPE
.
equals
(
type
)
?
JSONArray
.
toJSONString
(
permissionData
.
get
(
"otherItem"
))
:
null
);
permission
.
setItemCode
(
ZYRY_TYPE
.
equals
(
type
)
?
JSONArray
.
toJSONString
(
permissionData
.
get
(
"itemCode"
))
:
null
);
return
permission
;
}
/**
* 根据人员的seq 组织可供子表单使用的资质信息数据
*
* @param userSeq 人员的seq
* @return result
*/
public
Map
<?
extends
String
,
?>
queryForSubFormByUserSeq
(
String
userSeq
)
{
Map
<
String
,
List
<
JSONObject
>>
result
=
new
HashMap
<>();
List
<
JSONObject
>
JYRYList
=
new
ArrayList
<>();
List
<
JSONObject
>
JCRYList
=
new
ArrayList
<>();
List
<
JSONObject
>
ZYRYList
=
new
ArrayList
<>();
LambdaQueryWrapper
<
TzsUserPermission
>
lambda
=
new
QueryWrapper
<
TzsUserPermission
>().
lambda
();
lambda
.
eq
(
TzsUserPermission:
:
getUserSeq
,
userSeq
);
List
<
TzsUserPermission
>
permissionList
=
this
.
getBaseMapper
().
selectList
(
lambda
);
for
(
TzsUserPermission
permission
:
permissionList
)
{
String
permissionPost
=
permission
.
getPermissionPost
();
if
(
JYRY_TYPE
.
equals
(
permissionPost
))
{
JYRYList
.
add
(
this
.
convertPermissionToJson
(
permission
));
continue
;
}
if
(
JCRY_TYPE
.
equals
(
permissionPost
))
{
JCRYList
.
add
(
this
.
convertPermissionToJson
(
permission
));
continue
;
}
if
(
ZYRY_TYPE
.
equals
(
permissionPost
))
{
ZYRYList
.
add
(
this
.
convertPermissionToJson
(
permission
));
}
}
result
.
putIfAbsent
(
JYRY_TYPE
,
JYRYList
);
result
.
putIfAbsent
(
JCRY_TYPE
,
JCRYList
);
result
.
putIfAbsent
(
ZYRY_TYPE
,
ZYRYList
);
return
result
;
}
/**
* 实体转化为jsonObject 并转化附件
*
* @param permission 入参
* @return result
*/
public
JSONObject
convertPermissionToJson
(
TzsUserPermission
permission
)
{
JSONObject
json
=
(
JSONObject
)
JSONObject
.
toJSON
(
permission
);
for
(
String
field
:
ATTACHMENTS
)
{
if
(
json
.
get
(
field
)
!=
null
&&
json
.
get
(
field
)
instanceof
String
)
{
json
.
put
(
field
,
JSON
.
parse
(
json
.
get
(
field
).
toString
()));
}
}
// 作业项目【jobItem】 字段特殊处理
JSONArray
jobItem
=
JSON
.
parseArray
(
String
.
valueOf
(
json
.
get
(
"jobItem"
)));
json
.
put
(
"jobItem"
,
jobItem
);
if
(!(
jobItem
==
null
||
jobItem
.
isEmpty
()))
{
json
.
put
(
"doNotDelJobItem"
,
jobItem
.
stream
().
map
(
Object:
:
toString
).
collect
(
Collectors
.
joining
(
","
)));
}
return
json
;
}
}
\ No newline at end of file
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