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
b803fedb
Commit
b803fedb
authored
Nov 06, 2025
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
reafact(common): 自动填充优化
1.删除无用操作redis逻辑
parent
7fd03c9c
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
50 additions
and
161 deletions
+50
-161
BizConstant.java
...m/yeejoin/amos/boot/biz/common/constants/BizConstant.java
+2
-0
MetaHandler.java
...in/java/com/yeejoin/amos/boot/biz/config/MetaHandler.java
+44
-157
DataHandlerServiceImpl.java
...ot/module/jg/biz/service/impl/DataHandlerServiceImpl.java
+4
-4
No files found.
amos-boot-biz-common/src/main/java/com/yeejoin/amos/boot/biz/common/constants/BizConstant.java
View file @
b803fedb
...
...
@@ -21,4 +21,6 @@ public interface BizConstant {
*/
public
final
static
String
ADDRESS
=
"address"
;
String
PIPE_LENGTH
=
"pipeLengthText"
;
}
amos-boot-biz-common/src/main/java/com/yeejoin/amos/boot/biz/config/MetaHandler.java
View file @
b803fedb
package
com
.
yeejoin
.
amos
.
boot
.
biz
.
config
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.yeejoin.amos.boot.biz.common.annotation.FillCommonUserField
;
import
com.yeejoin.amos.boot.biz.common.annotation.PipeLengthField
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.boot.biz.common.constants.BizConstant
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
java.lang.reflect.Field
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Arrays
;
...
...
@@ -30,42 +23,63 @@ import java.util.Objects;
@Component
public
class
MetaHandler
implements
MetaObjectHandler
{
@Autowired
private
RedisUtils
redisUtils
;
protected
String
getToken
()
{
String
authToken
=
RequestContext
.
getToken
();
// if (authToken == null) {
// authToken = request.getHeader("X-Access-Token");
// }
return
authToken
;
}
/**
* 新增数据拦截
*
* @param metaObject
* @param metaObject
原始对象
*/
@Override
public
void
insertFill
(
MetaObject
metaObject
)
{
Date
currentDate
=
new
Date
();
Class
<?>
clazz
=
getaClass
(
metaObject
);
autoFillUser
(
clazz
.
getAnnotation
(
FillCommonUserField
.
class
),
metaObject
,
currentDate
);
autoFillPipeLength
(
clazz
.
getAnnotation
(
PipeLengthField
.
class
),
metaObject
);
this
.
setFieldValByName
(
"createDate"
,
currentDate
,
metaObject
);
}
/**
* 更新拦截
*
* @param metaObject 原始对象
*/
@Override
public
void
updateFill
(
MetaObject
metaObject
)
{
Date
currentDate
=
new
Date
();
Class
<?>
clazz
=
getaClass
(
metaObject
);
autoFillUser
(
clazz
.
getAnnotation
(
FillCommonUserField
.
class
),
metaObject
,
currentDate
);
autoFillPipeLength
(
clazz
.
getAnnotation
(
PipeLengthField
.
class
),
metaObject
);
}
private
void
autoFillUser
(
FillCommonUserField
clazz
,
MetaObject
metaObject
,
Date
currentDate
)
{
if
(
clazz
==
null
||
clazz
.
isAutoFill
())
{
recInfoUpdate
(
metaObject
,
currentDate
);
}
}
private
void
autoFillPipeLength
(
PipeLengthField
clazz
,
MetaObject
metaObject
)
{
if
(
clazz
!=
null
)
{
processAutoFill
(
metaObject
,
clazz
);
}
}
private
void
recInfoUpdate
(
MetaObject
metaObject
,
Date
currentDate
)
{
this
.
setFieldValByName
(
"recUserId"
,
RequestContext
.
getExeUserId
(),
metaObject
);
this
.
setFieldValByName
(
"recDate"
,
currentDate
,
metaObject
);
this
.
setFieldValByName
(
"updateTime"
,
currentDate
,
metaObject
);
}
private
static
Class
<?>
getaClass
(
MetaObject
metaObject
)
{
Object
originalObj
=
metaObject
.
getOriginalObject
();
Class
<?>
clazz
=
originalObj
.
getClass
();
// 处理 Map 封装的情况(update(entity, wrapper) 方式)
if
(
originalObj
instanceof
Map
)
{
Map
<?,
?>
map
=
(
Map
<?,
?>)
originalObj
;
Map
<?,
?>
map
=
(
Map
<?,
?>)
originalObj
;
Object
et
=
map
.
get
(
Constants
.
ENTITY
);
// MyBatis-Plus 的实体key
clazz
=
(
et
!=
null
)
?
et
.
getClass
()
:
clazz
;
}
FillCommonUserField
annotation
=
clazz
.
getAnnotation
(
FillCommonUserField
.
class
);
if
(
annotation
==
null
||
annotation
.
isAutoFill
())
{
autoFillUser
(
metaObject
,
metaObject
.
getOriginalObject
());
}
PipeLengthField
pipeLengthField
=
clazz
.
getAnnotation
(
PipeLengthField
.
class
);
if
(
pipeLengthField
!=
null
){
processAutoFill
(
metaObject
,
pipeLengthField
);
}
this
.
setFieldValByName
(
"createDate"
,
currentDate
,
metaObject
);
return
clazz
;
}
...
...
@@ -121,139 +135,13 @@ public class MetaHandler implements MetaObjectHandler {
}
private
Object
convertValue
(
Object
sourceValue
,
PipeLengthField
pipeLengthField
)
{
// 示例:针对pipeLength的特殊处理
if
(
"pipeLengthText"
.
equals
(
pipeLengthField
.
sourceField
()))
{
if
(
BizConstant
.
PIPE_LENGTH
.
equals
(
pipeLengthField
.
sourceField
()))
{
return
Arrays
.
stream
(
sourceValue
.
toString
().
split
(
"/"
)).
filter
(
Objects:
:
nonNull
)
.
map
(
BigDecimal:
:
new
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
).
setScale
(
3
,
RoundingMode
.
HALF_UP
).
stripTrailingZeros
().
toPlainString
();
}
// 可扩展其他转换规则
return
sourceValue
;
}
private
void
autoFillUser
(
MetaObject
metaObject
,
Object
entity
)
{
//获取用户信息 以及当前用户登录公司部门,角色
String
userId
=
RequestContext
.
getExeUserId
();
ReginParams
reginParams
=
JSONObject
.
parseObject
(
null
!=
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
userId
,
getToken
()))
?
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
userId
,
getToken
())).
toString
()
:
null
,
ReginParams
.
class
);
if
(
ObjectUtils
.
isEmpty
(
reginParams
))
{
return
;
}
AgencyUserModel
agencyUserModel
=
reginParams
.
getUserModel
();
if
(
ObjectUtils
.
isEmpty
(
reginParams
)
||
ObjectUtils
.
isEmpty
(
agencyUserModel
))
{
return
;
}
// 更新rec字段
recInfoUpdate
(
metaObject
,
agencyUserModel
);
if
(
isExistField
(
"allotmentTime"
,
entity
))
{
Date
currentDate
=
new
Date
();
this
.
setFieldValByName
(
"recDate"
,
currentDate
,
metaObject
);
}
//以下为装备中转移过来的
if
(
isExistField
(
"userId"
,
entity
)
&&
isStringField
(
metaObject
,
"userId"
))
{
this
.
setFieldValByName
(
"userId"
,
String
.
valueOf
(
agencyUserModel
.
getUserId
()),
metaObject
);
}
if
(
isExistField
(
"creatorId"
,
entity
))
{
this
.
setFieldValByName
(
"creatorId"
,
Long
.
valueOf
(
agencyUserModel
.
getUserId
()),
metaObject
);
}
if
(
isExistField
(
"userName"
,
entity
))
{
this
.
setFieldValByName
(
"userName"
,
agencyUserModel
.
getRealName
(),
metaObject
);
}
// if (isExistField("companyName", entity)) {
// this.setFieldValByName("companyName", reginParams.getCompany().getCompanyName(), metaObject);
// }
if
(
isExistField
(
"orgCode"
,
entity
)
&&
!
isHasValue
(
"orgCode"
,
entity
))
{
this
.
setFieldValByName
(
"orgCode"
,
reginParams
.
getCompany
().
getOrgCode
(),
metaObject
);
}
if
(
isExistField
(
"departmentName"
,
entity
))
{
this
.
setFieldValByName
(
"departmentName"
,
ObjectUtils
.
isEmpty
(
reginParams
.
getDepartment
())
?
""
:
reginParams
.
getDepartment
().
getDepartmentName
(),
metaObject
);
}
if
(
isExistField
(
"departmentOrgcode"
,
entity
))
{
this
.
setFieldValByName
(
"departmentOrgcode"
,
ObjectUtils
.
isEmpty
(
reginParams
.
getDepartment
())
?
""
:
reginParams
.
getDepartment
().
getOrgCode
(),
metaObject
);
}
}
private
void
recInfoUpdate
(
MetaObject
metaObject
,
AgencyUserModel
agencyUserModel
)
{
this
.
setFieldValByName
(
"recUserId"
,
agencyUserModel
.
getUserId
(),
metaObject
);
this
.
setFieldValByName
(
"recUserName"
,
agencyUserModel
.
getRealName
(),
metaObject
);
Date
currentDate
=
new
Date
();
this
.
setFieldValByName
(
"recDate"
,
currentDate
,
metaObject
);
this
.
setFieldValByName
(
"updateTime"
,
currentDate
,
metaObject
);
}
private
Boolean
isExistField
(
String
field
,
Object
obj
)
{
if
(
obj
==
null
||
StringUtils
.
isEmpty
(
field
))
{
return
null
;
}
Object
o
=
JSONObject
.
toJSON
(
obj
);
JSONObject
jsonObj
=
new
JSONObject
();
if
(
o
instanceof
JSONObject
)
{
jsonObj
=
(
JSONObject
)
o
;
}
return
jsonObj
.
containsKey
(
field
);
}
private
Boolean
isHasValue
(
String
field
,
Object
obj
)
{
if
(
obj
==
null
||
StringUtils
.
isEmpty
(
field
))
{
return
false
;
}
Object
o
=
JSONObject
.
toJSON
(
obj
);
JSONObject
jsonObj
=
new
JSONObject
();
if
(
o
instanceof
JSONObject
)
{
jsonObj
=
(
JSONObject
)
o
;
}
return
StringUtils
.
isNotEmpty
(
jsonObj
.
getString
(
field
));
}
private
Boolean
isStringField
(
MetaObject
metaObject
,
String
fieldName
)
{
Class
clazz
=
metaObject
.
getOriginalObject
().
getClass
();
Field
[]
fields
=
clazz
.
getDeclaredFields
();
for
(
Field
field
:
fields
)
{
if
(
fieldName
.
equals
(
field
.
getName
())
&&
(
"class java.lang.String"
).
equals
(
field
.
getGenericType
().
toString
()))
{
return
true
;
}
}
return
false
;
}
/**
* 更新拦截
*
* @param metaObject
*/
@Override
public
void
updateFill
(
MetaObject
metaObject
)
{
Object
originalObj
=
metaObject
.
getOriginalObject
();
Class
<?>
clazz
=
originalObj
.
getClass
();
// 处理 Map 封装的情况(update(entity, wrapper) 方式)
if
(
originalObj
instanceof
Map
)
{
Map
<?,?>
map
=
(
Map
<?,?>)
originalObj
;
Object
et
=
map
.
get
(
Constants
.
ENTITY
);
// MyBatis-Plus 的实体key
clazz
=
(
et
!=
null
)
?
et
.
getClass
()
:
clazz
;
}
FillCommonUserField
annotation
=
clazz
.
getAnnotation
(
FillCommonUserField
.
class
);
if
(
annotation
==
null
||
annotation
.
isAutoFill
())
{
String
userId
=
RequestContext
.
getExeUserId
();
ReginParams
reginParams
=
JSONObject
.
parseObject
(
null
!=
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
userId
,
getToken
()))
?
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
userId
,
getToken
())).
toString
()
:
null
,
ReginParams
.
class
);
if
(
ObjectUtils
.
isEmpty
(
reginParams
))
{
return
;
}
AgencyUserModel
agencyUserModel
=
reginParams
.
getUserModel
();
recInfoUpdate
(
metaObject
,
agencyUserModel
);
}
PipeLengthField
pipeLengthField
=
clazz
.
getAnnotation
(
PipeLengthField
.
class
);
if
(
pipeLengthField
!=
null
){
processAutoFill
(
metaObject
,
pipeLengthField
);
}
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/DataHandlerServiceImpl.java
View file @
b803fedb
...
...
@@ -2507,7 +2507,7 @@ public class DataHandlerServiceImpl {
.
select
(
BaseEntity:
:
getSequenceNbr
)
);
watch
.
start
(
"安装告知"
+
notices
.
size
());
notices
.
parallelStream
().
forEach
(
n
->{
notices
.
forEach
(
n
->{
JSONObject
jsonObject
=
commonServiceImpl
.
queryHistoryData
(
n
.
getSequenceNbr
());
if
(
jsonObject
!=
null
){
JSONArray
jsonArray
=
jsonObject
.
getJSONArray
(
"deviceList"
);
...
...
@@ -2530,7 +2530,7 @@ public class DataHandlerServiceImpl {
.
ne
(
JgUseRegistration:
:
getProjectContraptionId
,
""
)
.
select
(
BaseEntity:
:
getSequenceNbr
));
watch
.
start
(
"使用登记"
+
useRegistrations
.
size
()
);
useRegistrations
.
parallelStream
().
forEach
(
u
->{
useRegistrations
.
forEach
(
u
->{
JSONObject
jsonObject
=
commonServiceImpl
.
queryHistoryData
(
u
.
getSequenceNbr
());
if
(
jsonObject
!=
null
){
String
pipelistKey
;
...
...
@@ -2561,7 +2561,7 @@ public class DataHandlerServiceImpl {
.
ne
(
JgChangeRegistrationReform:
:
getProjectContraptionId
,
""
)
.
select
(
JgChangeRegistrationReform:
:
getApplyNo
));
watch
.
start
(
"改造变更登记"
+
changeRegistrationReforms
.
size
());
changeRegistrationReforms
.
parallelStream
().
forEach
(
u
->{
changeRegistrationReforms
.
forEach
(
u
->{
JSONObject
jsonObject
=
commonServiceImpl
.
queryHistoryData
(
u
.
getApplyNo
());
if
(
jsonObject
!=
null
){
JSONArray
jsonArray
=
jsonObject
.
getJSONArray
(
"equipmentLists"
);
...
...
@@ -2586,7 +2586,7 @@ public class DataHandlerServiceImpl {
.
ne
(
JgReformNotice:
:
getProjectContraptionId
,
""
)
.
select
(
BaseEntity:
:
getSequenceNbr
));
watch
.
start
(
"改造告知"
+
reformNotices
.
size
());
reformNotices
.
parallelStream
().
forEach
(
u
->{
reformNotices
.
forEach
(
u
->{
JSONObject
jsonObject
=
commonServiceImpl
.
queryHistoryData
(
u
.
getSequenceNbr
());
if
(
jsonObject
!=
null
){
JSONArray
jsonArray
=
jsonObject
.
getJSONArray
(
"deviceList"
);
...
...
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