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
518c38d2
Commit
518c38d2
authored
Jul 02, 2025
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(综合搜索):增量更新
1.人员、企业、设备增量更新公共代码
parent
835f83a5
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
308 additions
and
0 deletions
+308
-0
IDataRefreshDispatch.java
.../boot/module/common/api/service/IDataRefreshDispatch.java
+8
-0
IDataRefreshHandler.java
...s/boot/module/common/api/service/IDataRefreshHandler.java
+4
-0
DataRefreshEvent.java
...amos/boot/module/common/biz/refresh/DataRefreshEvent.java
+15
-0
RefreshDispatch.java
...t/module/common/biz/refresh/dispatch/RefreshDispatch.java
+19
-0
RefreshHandlerFactory.java
...ule/common/biz/refresh/factory/RefreshHandlerFactory.java
+4
-0
DataRefreshListener.java
...dule/common/biz/refresh/listener/DataRefreshListener.java
+85
-0
RefreshDataUtils.java
...n/amos/boot/module/common/biz/utils/RefreshDataUtils.java
+4
-0
StatisticsDataUpdateService.java
...ot/module/jg/biz/refresh/StatisticsDataUpdateService.java
+0
-0
EquipRefreshHandler.java
...ot/module/jg/biz/refresh/handler/EquipRefreshHandler.java
+72
-0
CommonRefreshService.java
.../module/tcm/biz/refresh/handler/CommonRefreshService.java
+4
-0
EnterpriseRefreshHandler.java
...ule/tcm/biz/refresh/handler/EnterpriseRefreshHandler.java
+75
-0
UserRefreshHandler.java
...ot/module/tcm/biz/refresh/handler/UserRefreshHandler.java
+18
-0
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/service/IDataRefreshDispatch.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
service
;
import
com.yeejoin.amos.boot.module.common.api.dto.TzsDataRefreshMessageDto
;
public
interface
IDataRefreshService
{
void
refresh
(
TzsDataRefreshMessageDto
message
);
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/service/IDataRefreshHandler.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
service
;
public
interface
IDataRefresHandler
{
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/refresh/DataRefreshEvent.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
change
;
import
org.springframework.context.ApplicationEvent
;
public
class
DataChangeEvent
extends
ApplicationEvent
{
/**
* Create a new {@code ApplicationEvent}.
*
* @param source the object on which the event initially occurred or with
* which the event is associated (never {@code null})
*/
public
DataChangeEvent
(
Object
source
)
{
super
(
source
);
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/refresh/dispatch/RefreshDispatch.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
biz
.
refresh
;
import
com.yeejoin.amos.boot.module.common.api.dto.TzsDataRefreshMessageDto
;
import
com.yeejoin.amos.boot.module.common.api.service.IDataRefreshDispatch
;
import
com.yeejoin.amos.boot.module.common.biz.refresh.factory.RefreshHandlerFactory
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Component
;
@Component
@RequiredArgsConstructor
public
class
TcmRefreshDispatch
implements
IDataRefreshDispatch
{
private
final
RefreshHandlerFactory
handlerFactory
;
@Override
public
void
doDispatch
(
TzsDataRefreshMessageDto
message
)
{
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/refresh/factory/RefreshHandlerFactory.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
refresh
.
factory
;
public
class
RefreshHandlerFactory
{
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/refresh/listener/DataRefreshListener.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
refresh
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.module.common.api.dto.TzsDataRefreshMessageDto
;
import
com.yeejoin.amos.boot.module.common.api.entity.TzsDataRefreshMessage
;
import
com.yeejoin.amos.boot.module.common.api.service.IDataRefreshDispatch
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.TzsDataRefreshMessageServiceImpl
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.event.TransactionalEventListener
;
import
javax.annotation.PostConstruct
;
import
java.util.Optional
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.stream.IntStream
;
@Component
@Slf4j
@RequiredArgsConstructor
public
class
DataRefreshListener
{
@Value
(
"${data.opEvent.deal.thread.number:1}"
)
private
int
threadNumber
;
private
final
BlockingQueue
<
DataRefreshEvent
>
queue
=
new
LinkedBlockingQueue
<>();
private
ExecutorService
executorService
;
@Autowired
private
Optional
<
IDataRefreshDispatch
>
dataRefreshService
;
private
final
TzsDataRefreshMessageServiceImpl
tzsDataRefreshMessageService
;
@TransactionalEventListener
(
value
=
DataRefreshEvent
.
class
)
@Async
public
void
onEquipCreateOrEdit
(
DataRefreshEvent
event
)
{
log
.
info
(
"收到变更消息:{}"
,
JSONObject
.
toJSONString
(
event
));
queue
.
add
(
event
);
}
@PostConstruct
public
void
init
()
{
executorService
=
Executors
.
newFixedThreadPool
(
threadNumber
);
IntStream
.
range
(
0
,
threadNumber
).
forEach
(
i
->
{
executorService
.
execute
(()
->
{
while
(
true
)
{
try
{
DataRefreshEvent
event
=
queue
.
take
();
processEvent
(
event
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
});
});
}
private
void
processEvent
(
DataRefreshEvent
event
)
{
TzsDataRefreshMessage
message
=
new
TzsDataRefreshMessage
();
try
{
// 1.记录 message
message
.
setDataId
(
event
.
getDataId
());
message
.
setDataType
(
event
.
getDataType
());
message
.
setOperation
(
event
.
getOperation
().
name
());
message
.
setStatus
(
0
);
tzsDataRefreshMessageService
.
save
(
message
);
TzsDataRefreshMessageDto
dataRefreshMessageDto
=
BeanUtil
.
copyProperties
(
message
,
TzsDataRefreshMessageDto
.
class
);
// 2.调用更新处理
dataRefreshService
.
ifPresent
(
service
->
service
.
refresh
(
dataRefreshMessageDto
));
}
catch
(
Exception
e
)
{
message
.
setStatus
(
2
);
// 标记为失败
message
.
setErrorMsg
(
e
.
getMessage
());
tzsDataRefreshMessageService
.
saveOrUpdate
(
message
);
}
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/utils/RefreshDataUtils.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
utils
;
public
class
RefreshDataUtil
{
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/
statistics/service
/StatisticsDataUpdateService.java
→
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/
refresh
/StatisticsDataUpdateService.java
View file @
518c38d2
File moved
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/refresh/handler/EquipRefreshHandler.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
biz
.
refresh
.
handler
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.module.common.api.dao.EsBaseEnterpriseInfoDao
;
import
com.yeejoin.amos.boot.module.common.api.dao.EsUserInfoDao
;
import
com.yeejoin.amos.boot.module.common.api.entity.EsBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.common.api.entity.EsUserInfo
;
import
com.yeejoin.amos.boot.module.common.api.entity.TzsDataRefreshMessage
;
import
com.yeejoin.amos.boot.module.common.api.service.IDataRefreshHandler
;
import
com.yeejoin.amos.boot.module.common.biz.utils.RefreshDataUtils
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseUnitLicence
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseUnitLicenceMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
@RequiredArgsConstructor
public
class
CompanyRefreshHandler
implements
IDataRefreshHandler
{
private
final
EsBaseEnterpriseInfoDao
enterpriseInfoDao
;
private
final
TzBaseUnitLicenceMapper
licenceMapper
;
private
final
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
;
private
final
TzsUserInfoMapper
userInfoMapper
;
private
final
EsUserInfoDao
esUserInfoDao
;
@Override
public
String
supportType
()
{
return
"company"
;
}
@Override
public
void
doRefresh
(
TzsDataRefreshMessage
message
)
{
// 企业信息更新
TzBaseEnterpriseInfo
enterpriseInfo
=
tzBaseEnterpriseInfoMapper
.
selectById
(
message
.
getDataId
());
EsBaseEnterpriseInfo
esBaseEnterpriseInfo
=
new
EsBaseEnterpriseInfo
();
BeanUtil
.
copyProperties
(
enterpriseInfo
,
esBaseEnterpriseInfo
);
esBaseEnterpriseInfo
.
setSequenceNbr
(
enterpriseInfo
.
getSequenceNbr
()
+
""
);
esBaseEnterpriseInfo
.
setEquipCategory
(
RefreshDataUtils
.
castStrList2String
(
enterpriseInfo
.
getEquipCategory
()));
List
<
TzBaseUnitLicence
>
unitLicences
=
licenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>().
eq
(
TzBaseUnitLicence:
:
getUnitCode
,
enterpriseInfo
.
getUseUnitCode
()).
eq
(
TzBaseUnitLicence:
:
getIsDelete
,
false
));
List
<
EsBaseEnterpriseInfo
.
License
>
licenses
=
unitLicences
.
stream
().
map
(
lis
->
{
EsBaseEnterpriseInfo
.
License
esLicense
=
new
EsBaseEnterpriseInfo
.
License
();
BeanUtil
.
copyProperties
(
lis
,
esLicense
);
return
esLicense
;
}).
collect
(
Collectors
.
toList
());
esBaseEnterpriseInfo
.
setLicenses
(
licenses
);
enterpriseInfoDao
.
save
(
esBaseEnterpriseInfo
);
// 人员更新冗余的单位信息
List
<
TzsUserInfo
>
userOfOneUnit
=
userInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzsUserInfo
>().
eq
(
TzsUserInfo:
:
getUnitCode
,
enterpriseInfo
.
getUseUnitCode
()).
eq
(
BaseEntity:
:
getIsDelete
,
false
).
select
(
BaseEntity:
:
getSequenceNbr
));
Iterable
<
EsUserInfo
>
userInfosEs
=
esUserInfoDao
.
findAllById
(
userOfOneUnit
.
stream
().
map
(
u
->
String
.
valueOf
(
u
.
getSequenceNbr
())).
collect
(
Collectors
.
toList
()));
userInfosEs
.
forEach
(
esUserInfo
->
{
esUserInfo
.
setUnitType
(
esBaseEnterpriseInfo
.
getUnitType
());
esUserInfo
.
setSuperviseOrgName
(
esBaseEnterpriseInfo
.
getSuperviseOrgName
());
esUserInfo
.
setSuperviseOrgCode
(
esBaseEnterpriseInfo
.
getSuperviseOrgCode
());
});
if
(
userInfosEs
.
iterator
().
hasNext
())
{
esUserInfoDao
.
saveAll
(
userInfosEs
);
}
}
}
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-biz/src/main/java/com/yeejoin/amos/boot/module/tcm/biz/refresh/handler/CommonRefreshService.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
biz
.
refresh
.
handler
;
public
class
CommonRefeshService
{
}
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-biz/src/main/java/com/yeejoin/amos/boot/module/tcm/biz/refresh/handler/EnterpriseRefreshHandler.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
biz
.
refresh
.
handler
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.module.common.api.dao.EsBaseEnterpriseInfoDao
;
import
com.yeejoin.amos.boot.module.common.api.dao.EsUserInfoDao
;
import
com.yeejoin.amos.boot.module.common.api.entity.EsBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.common.api.entity.EsUserInfo
;
import
com.yeejoin.amos.boot.module.common.api.entity.TzsDataRefreshMessage
;
import
com.yeejoin.amos.boot.module.common.api.service.IDataRefreshHandler
;
import
com.yeejoin.amos.boot.module.common.biz.utils.RefreshDataUtils
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseUnitLicence
;
import
com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseUnitLicenceMapper
;
import
com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
@RequiredArgsConstructor
@Slf4j
public
class
CompanyRefreshHandler
implements
IDataRefreshHandler
{
private
final
EsBaseEnterpriseInfoDao
enterpriseInfoDao
;
private
final
TzBaseUnitLicenceMapper
licenceMapper
;
private
final
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
;
private
final
TzsUserInfoMapper
userInfoMapper
;
private
final
EsUserInfoDao
esUserInfoDao
;
@Override
public
String
supportType
()
{
return
"company"
;
}
@Override
public
void
doRefresh
(
TzsDataRefreshMessage
message
)
{
log
.
info
(
"3库数据,企业开始刷库:唯一标识:{}"
,
message
.
getDataId
());
// 企业信息更新
TzBaseEnterpriseInfo
enterpriseInfo
=
tzBaseEnterpriseInfoMapper
.
selectById
(
message
.
getDataId
());
EsBaseEnterpriseInfo
esBaseEnterpriseInfo
=
new
EsBaseEnterpriseInfo
();
BeanUtil
.
copyProperties
(
enterpriseInfo
,
esBaseEnterpriseInfo
);
esBaseEnterpriseInfo
.
setSequenceNbr
(
enterpriseInfo
.
getSequenceNbr
()
+
""
);
esBaseEnterpriseInfo
.
setEquipCategory
(
RefreshDataUtils
.
castStrList2String
(
enterpriseInfo
.
getEquipCategory
()));
List
<
TzBaseUnitLicence
>
unitLicences
=
licenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>().
eq
(
TzBaseUnitLicence:
:
getUnitCode
,
enterpriseInfo
.
getUseUnitCode
()).
eq
(
TzBaseUnitLicence:
:
getIsDelete
,
false
));
List
<
EsBaseEnterpriseInfo
.
License
>
licenses
=
unitLicences
.
stream
().
map
(
lis
->
{
EsBaseEnterpriseInfo
.
License
esLicense
=
new
EsBaseEnterpriseInfo
.
License
();
BeanUtil
.
copyProperties
(
lis
,
esLicense
);
return
esLicense
;
}).
collect
(
Collectors
.
toList
());
esBaseEnterpriseInfo
.
setLicenses
(
licenses
);
enterpriseInfoDao
.
save
(
esBaseEnterpriseInfo
);
// 人员更新冗余的单位信息
List
<
TzsUserInfo
>
userOfOneUnit
=
userInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzsUserInfo
>().
eq
(
TzsUserInfo:
:
getUnitCode
,
enterpriseInfo
.
getUseUnitCode
()).
eq
(
BaseEntity:
:
getIsDelete
,
false
).
select
(
BaseEntity:
:
getSequenceNbr
));
Iterable
<
EsUserInfo
>
userInfosEs
=
esUserInfoDao
.
findAllById
(
userOfOneUnit
.
stream
().
map
(
u
->
String
.
valueOf
(
u
.
getSequenceNbr
())).
collect
(
Collectors
.
toList
()));
userInfosEs
.
forEach
(
esUserInfo
->
{
esUserInfo
.
setUnitType
(
esBaseEnterpriseInfo
.
getUnitType
());
esUserInfo
.
setSuperviseOrgName
(
esBaseEnterpriseInfo
.
getSuperviseOrgName
());
esUserInfo
.
setSuperviseOrgCode
(
esBaseEnterpriseInfo
.
getSuperviseOrgCode
());
});
if
(
userInfosEs
.
iterator
().
hasNext
())
{
esUserInfoDao
.
saveAll
(
userInfosEs
);
}
}
}
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-biz/src/main/java/com/yeejoin/amos/boot/module/tcm/biz/refresh/handler/UserRefreshHandler.java
0 → 100644
View file @
518c38d2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tcm
.
biz
.
refresh
;
import
com.yeejoin.amos.boot.module.common.api.dto.TzsDataRefreshMessageDto
;
import
com.yeejoin.amos.boot.module.common.api.service.IDataRefreshHandler
;
import
org.springframework.stereotype.Component
;
@Component
public
class
CompanyRefreshHandler
implements
IDataRefreshHandler
{
@Override
public
String
supportType
()
{
return
"company"
;
}
@Override
public
void
doRefresh
(
TzsDataRefreshMessageDto
message
)
{
}
}
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