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
6d886fd1
Commit
6d886fd1
authored
Feb 03, 2026
by
刘林
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop_tzs_main' into develop_tzs_main
parents
baf56083
5ba6d6ed
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
381 additions
and
118 deletions
+381
-118
ESEquipmentCategoryDto.java
...os/boot/module/common/api/dto/ESEquipmentCategoryDto.java
+0
-2
ESEquipmentInfo.java
...n/amos/boot/module/common/api/entity/ESEquipmentInfo.java
+3
-0
ESEquipmentInfoService.java
...odule/common/biz/service/impl/ESEquipmentInfoService.java
+41
-0
EquipmentCategoryService.java
...ule/common/biz/service/impl/EquipmentCategoryService.java
+36
-0
DataDockController.java
...mos/boot/module/jg/biz/controller/DataDockController.java
+1
-1
DataHandlerController.java
.../boot/module/jg/biz/controller/DataHandlerController.java
+10
-0
DataConsistencyJob.java
...ejoin/amos/boot/module/jg/biz/job/DataConsistencyJob.java
+87
-0
DataDockServiceImpl.java
.../boot/module/jg/biz/service/impl/DataDockServiceImpl.java
+0
-0
DataHandlerServiceImpl.java
...ot/module/jg/biz/service/impl/DataHandlerServiceImpl.java
+102
-0
ElevatorDataTransactionService.java
...e/jg/biz/service/impl/ElevatorDataTransactionService.java
+0
-25
IdxBizJgRegisterInfoServiceImpl.java
.../jg/biz/service/impl/IdxBizJgRegisterInfoServiceImpl.java
+18
-21
DPSubServiceImpl.java
...t/module/statistcs/biz/service/impl/DPSubServiceImpl.java
+1
-1
IdxBizJgUseInfoMapper.java
...mos/boot/module/ymt/api/mapper/IdxBizJgUseInfoMapper.java
+2
-0
CategoryOtherInfoMapper.xml
...api/src/main/resources/mapper/CategoryOtherInfoMapper.xml
+42
-41
IdxBizJgUseInfoMapper.xml
...t-api/src/main/resources/mapper/IdxBizJgUseInfoMapper.xml
+38
-27
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/ESEquipmentCategoryDto.java
View file @
6d886fd1
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.annotation.Id
;
...
...
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/entity/ESEquipmentInfo.java
View file @
6d886fd1
...
@@ -652,4 +652,7 @@ public class ESEquipmentInfo {
...
@@ -652,4 +652,7 @@ public class ESEquipmentInfo {
@Field
(
type
=
FieldType
.
Keyword
)
@Field
(
type
=
FieldType
.
Keyword
)
private
String
meMaster1Phone
;
private
String
meMaster1Phone
;
}
}
@Field
(
type
=
FieldType
.
Keyword
)
private
String
version
;
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/ESEquipmentInfoService.java
0 → 100644
View file @
6d886fd1
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
service
.
impl
;
import
lombok.RequiredArgsConstructor
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.builder.SearchSourceBuilder
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
constant
.
TZSCommonConstant
.
ES_INDEX_NAME_EQUIPMENT_INFO
;
@Service
@RequiredArgsConstructor
public
class
ESEquipmentInfoService
{
private
final
RestHighLevelClient
restHighLevelClient
;
public
List
<
String
>
findSequenceNbrByIds
(
List
<
String
>
ids
)
{
SearchSourceBuilder
sourceBuilder
=
new
SearchSourceBuilder
()
.
query
(
QueryBuilders
.
termsQuery
(
"SEQUENCE_NBR.keyword"
,
ids
))
.
fetchSource
(
false
);
SearchRequest
request
=
new
SearchRequest
(
ES_INDEX_NAME_EQUIPMENT_INFO
)
.
source
(
sourceBuilder
);
try
{
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
return
Arrays
.
stream
(
response
.
getHits
().
getHits
())
.
map
(
SearchHit:
:
getId
)
.
collect
(
Collectors
.
toList
());
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/EquipmentCategoryService.java
View file @
6d886fd1
...
@@ -3,9 +3,26 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
...
@@ -3,9 +3,26 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
import
com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory
;
import
com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory
;
import
com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.builder.SearchSourceBuilder
;
import
org.springframework.data.elasticsearch.core.ElasticsearchOperations
;
import
org.springframework.data.elasticsearch.core.ElasticsearchOperations
;
import
org.springframework.data.elasticsearch.core.SearchHits
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQuery
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
constant
.
TZSCommonConstant
.
ES_INDEX_NAME_JG_ALL
;
@Service
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
EquipmentCategoryService
{
public
class
EquipmentCategoryService
{
...
@@ -14,10 +31,28 @@ public class EquipmentCategoryService {
...
@@ -14,10 +31,28 @@ public class EquipmentCategoryService {
private
final
ElasticsearchOperations
elasticsearchOperations
;
private
final
ElasticsearchOperations
elasticsearchOperations
;
private
final
RestHighLevelClient
restHighLevelClient
;
public
ESEquipmentCategoryDto
saveWithImmediateRefresh
(
ESEquipmentCategoryDto
dto
)
{
public
ESEquipmentCategoryDto
saveWithImmediateRefresh
(
ESEquipmentCategoryDto
dto
)
{
ESEquipmentCategoryDto
saved
=
equipmentCategoryDao
.
save
(
dto
);
ESEquipmentCategoryDto
saved
=
equipmentCategoryDao
.
save
(
dto
);
// 手动触发索引刷新
// 手动触发索引刷新
elasticsearchOperations
.
indexOps
(
ESEquipmentCategoryDto
.
class
).
refresh
();
elasticsearchOperations
.
indexOps
(
ESEquipmentCategoryDto
.
class
).
refresh
();
return
saved
;
return
saved
;
}
}
public
List
<
String
>
findSequenceNbrByIds
(
List
<
String
>
ids
)
{
SearchSourceBuilder
sourceBuilder
=
new
SearchSourceBuilder
()
.
query
(
QueryBuilders
.
termsQuery
(
"SEQUENCE_NBR.keyword"
,
ids
))
.
fetchSource
(
false
);
SearchRequest
request
=
new
SearchRequest
(
ES_INDEX_NAME_JG_ALL
)
.
source
(
sourceBuilder
);
try
{
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
return
Arrays
.
stream
(
response
.
getHits
().
getHits
())
.
map
(
SearchHit:
:
getId
)
.
collect
(
Collectors
.
toList
());
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
}
\ 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/controller/DataDockController.java
View file @
6d886fd1
...
@@ -159,7 +159,7 @@ public class DataDockController extends BaseController {
...
@@ -159,7 +159,7 @@ public class DataDockController extends BaseController {
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"工业 、公用、长输管道批量保存"
,
notes
=
"工业 、公用、长输管道批量保存"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"工业 、公用、长输管道批量保存"
,
notes
=
"工业 、公用、长输管道批量保存"
)
@RestEventTrigger
(
value
=
"operateLogRestEventHandler"
)
@RestEventTrigger
(
value
=
"operateLogRestEventHandler"
)
public
ResponseModel
<?>
savePipingData
(
@RequestBody
Map
<
String
,
Object
>
paramMap
)
{
public
ResponseModel
<?>
savePipingData
(
@RequestBody
Map
<
String
,
Object
>
paramMap
)
{
return
ResponseHelper
.
buildResponse
(
dataDockService
.
savePipingData
(
paramMap
,
getSelectedOrgInfo
()
.
getCompany
()
));
return
ResponseHelper
.
buildResponse
(
dataDockService
.
savePipingData
(
paramMap
,
getSelectedOrgInfo
()));
}
}
/**
/**
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/DataHandlerController.java
View file @
6d886fd1
...
@@ -456,4 +456,13 @@ public class DataHandlerController extends BaseController {
...
@@ -456,4 +456,13 @@ public class DataHandlerController extends BaseController {
return
ResponseHelper
.
buildResponse
(
dataHandlerService
.
insertEquipFromDb2NewEs
(
paramMap
));
return
ResponseHelper
.
buildResponse
(
dataHandlerService
.
insertEquipFromDb2NewEs
(
paramMap
));
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PutMapping
(
value
=
"/sync-equip/shard"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"分片对齐设备的数据与es数据"
,
notes
=
"分片对齐设备的数据与es数据"
)
public
ResponseModel
<
Boolean
>
syncEquipShard
(
@RequestParam
Integer
shard
,
@RequestParam
Integer
slots
,
@RequestParam
String
batchNo
){
return
ResponseHelper
.
buildResponse
(
dataHandlerService
.
syncEquipShard
(
shard
,
slots
,
batchNo
));
}
}
}
\ 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/job/DataConsistencyJob.java
0 → 100644
View file @
6d886fd1
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
job
;
import
cn.hutool.core.date.DateUtil
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.robot.AmosRequestContext
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cloud.client.ServiceInstance
;
import
org.springframework.cloud.client.discovery.DiscoveryClient
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.Executors
;
@Component
@RequiredArgsConstructor
@Slf4j
public
class
DataConsistencyJob
{
private
final
AmosRequestContext
requestContext
;
private
final
DiscoveryClient
discoveryClient
;
private
final
RestTemplate
restTemplate
;
// 需要提前注入
@Value
(
"${spring.application.name}"
)
private
String
applicationName
;
// @Scheduled(cron = "0 0 3 * * ?")
// @SchedulerLock(name = "equipConsistencyJob", lockAtMostFor = "PT1H")
public
void
execute
()
{
List
<
ServiceInstance
>
instanceList
=
discoveryClient
.
getInstances
(
applicationName
);
int
slots
=
instanceList
.
size
();
Executor
executor
=
Executors
.
newFixedThreadPool
(
slots
);
HttpHeaders
headers
=
this
.
builderHeaders
();
HttpEntity
<?>
requestEntity
=
new
HttpEntity
<>(
headers
);
List
<
CompletableFuture
<
Void
>>
futures
=
new
ArrayList
<>();
String
batchNo
=
DateUtil
.
today
();
for
(
int
i
=
0
;
i
<
slots
;
i
++)
{
int
index
=
i
;
ServiceInstance
instance
=
instanceList
.
get
(
i
);
CompletableFuture
<
Void
>
future
=
CompletableFuture
.
runAsync
(()
->
{
String
baseUrl
=
instance
.
getUri
().
toString
();
String
apiUrl
=
baseUrl
+
"/jg/dataHandler/sync-equip/shard?shard={shard}&slots={slots}&batchNo={batchNo}"
;
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"shard"
,
index
);
params
.
put
(
"slots"
,
slots
);
params
.
put
(
"batchNo"
,
batchNo
);
restTemplate
.
exchange
(
apiUrl
,
HttpMethod
.
PUT
,
requestEntity
,
FeignClientResult
.
class
,
params
);
},
executor
);
futures
.
add
(
future
);
CompletableFuture
.
allOf
(
futures
.
toArray
(
new
CompletableFuture
[
0
]))
.
exceptionally
(
ex
->
{
log
.
error
(
"任务执行异常"
,
ex
);
return
null
;
})
.
join
();
}
}
private
HttpHeaders
builderHeaders
()
{
HttpHeaders
httpheaders
=
new
HttpHeaders
();
httpheaders
.
add
(
"appKey"
,
requestContext
.
getAppKey
());
httpheaders
.
add
(
"product"
,
requestContext
.
getProduct
());
httpheaders
.
add
(
"token"
,
requestContext
.
getToken
());
httpheaders
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
return
httpheaders
;
}
}
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/DataDockServiceImpl.java
View file @
6d886fd1
This diff is collapsed.
Click to expand it.
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 @
6d886fd1
...
@@ -30,6 +30,8 @@ import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
...
@@ -30,6 +30,8 @@ import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import
com.yeejoin.amos.boot.module.common.api.entity.*
;
import
com.yeejoin.amos.boot.module.common.api.entity.*
;
import
com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum
;
import
com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum
;
import
com.yeejoin.amos.boot.module.common.biz.refresh.cm.RefreshCmService
;
import
com.yeejoin.amos.boot.module.common.biz.refresh.cm.RefreshCmService
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.ESEquipmentInfoService
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.EquipmentCategoryService
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.EsSearchServiceImpl
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.EsSearchServiceImpl
;
import
com.yeejoin.amos.boot.module.common.biz.utils.RefreshDataUtils
;
import
com.yeejoin.amos.boot.module.common.biz.utils.RefreshDataUtils
;
import
com.yeejoin.amos.boot.module.jg.api.common.BizCommonConstant
;
import
com.yeejoin.amos.boot.module.jg.api.common.BizCommonConstant
;
...
@@ -60,15 +62,21 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentEnum;
...
@@ -60,15 +62,21 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentEnum;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.*
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.*
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.lucene.queryparser.classic.QueryParser
;
import
org.apache.lucene.queryparser.classic.QueryParser
;
import
org.elasticsearch.action.bulk.BulkItemResponse
;
import
org.elasticsearch.action.bulk.BulkRequest
;
import
org.elasticsearch.action.bulk.BulkResponse
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.action.update.UpdateRequest
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.client.core.CountRequest
;
import
org.elasticsearch.client.core.CountRequest
;
import
org.elasticsearch.client.core.CountResponse
;
import
org.elasticsearch.client.core.CountResponse
;
import
org.elasticsearch.common.xcontent.XContentType
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.SearchHit
;
...
@@ -98,6 +106,7 @@ import java.util.concurrent.atomic.AtomicReference;
...
@@ -98,6 +106,7 @@ import java.util.concurrent.atomic.AtomicReference;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
java.util.stream.Stream
;
import
java.util.stream.StreamSupport
;
import
static
com
.
alibaba
.
fastjson
.
JSON
.
toJSONString
;
import
static
com
.
alibaba
.
fastjson
.
JSON
.
toJSONString
;
import
static
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
.
JgInstallationNoticeServiceImpl
.
CONSTRUCTION_TYPE
;
import
static
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
.
JgInstallationNoticeServiceImpl
.
CONSTRUCTION_TYPE
;
...
@@ -219,6 +228,12 @@ public class DataHandlerServiceImpl {
...
@@ -219,6 +228,12 @@ public class DataHandlerServiceImpl {
private
final
IdxBizJgInspectionDetectionInfoMapper
inspectionDetectionInfoMapper
;
private
final
IdxBizJgInspectionDetectionInfoMapper
inspectionDetectionInfoMapper
;
private
final
ESEquipmentInfoService
esEquipmentInfoService
;
private
final
EquipmentCategoryService
equipmentCategoryService
;
/**
/**
* 安装告知压力管道历史数据修复-详情中的设备列表修改为汇总表格式
* 安装告知压力管道历史数据修复-详情中的设备列表修改为汇总表格式
*
*
...
@@ -2948,4 +2963,91 @@ public class DataHandlerServiceImpl {
...
@@ -2948,4 +2963,91 @@ public class DataHandlerServiceImpl {
esEquipmentInfos
=
esEquipmentInfos
.
stream
().
filter
(
e
->
StringUtils
.
isNotEmpty
(
e
.
getSEQUENCE_NBR
())).
collect
(
Collectors
.
toList
());
esEquipmentInfos
=
esEquipmentInfos
.
stream
().
filter
(
e
->
StringUtils
.
isNotEmpty
(
e
.
getSEQUENCE_NBR
())).
collect
(
Collectors
.
toList
());
return
esEquipmentInfos
;
return
esEquipmentInfos
;
}
}
@SneakyThrows
public
boolean
syncEquipShard
(
Integer
shard
,
Integer
slots
,
String
batchNo
)
{
StopWatch
watch
=
new
StopWatch
();
watch
.
start
();
// 0.数据准备
// 查询数据库 批量
List
<
String
>
records
=
idxBizJgUseInfoMapper
.
selectRecordList
(
shard
,
slots
);
List
<
List
<
String
>>
partitions
=
Lists
.
partition
(
records
,
2000
);
// 查询es-旧索引
List
<
String
>
existsOldEsEquipRecords
=
partitions
.
parallelStream
().
map
(
equipmentCategoryService:
:
findSequenceNbrByIds
).
flatMap
(
List:
:
stream
).
collect
(
Collectors
.
toList
());
// 标记老索引es-缺少数据
List
<
String
>
oldEsMissingRecords
=
records
.
parallelStream
().
filter
(
r
->
!
existsOldEsEquipRecords
.
contains
(
r
)).
collect
(
Collectors
.
toList
());
// 查询es-新索引
List
<
String
>
existsNewEsEquipRecords
=
partitions
.
parallelStream
().
map
(
esEquipmentInfoService:
:
findSequenceNbrByIds
).
flatMap
(
List:
:
stream
).
collect
(
Collectors
.
toList
());
// 标记新索引es-缺少数据
List
<
String
>
newEsMissingRecords
=
records
.
parallelStream
().
filter
(
r
->
!
existsNewEsEquipRecords
.
contains
(
r
)).
collect
(
Collectors
.
toList
());
// 1.分批次保存,数据补充至es
Set
<
String
>
allMissingRecords
=
Stream
.
concat
(
oldEsMissingRecords
.
stream
(),
newEsMissingRecords
.
stream
()).
collect
(
Collectors
.
toSet
());
List
<
List
<
String
>>
savePartitions
=
Lists
.
partition
(
new
ArrayList
<>(
allMissingRecords
),
2000
);
savePartitions
.
parallelStream
().
forEach
(
rs
->{
List
<
Map
<
String
,
Object
>>
details
=
idxBizJgUseInfoMapper
.
queryDetailBatch
(
rs
);
save2OldEquipEs
(
details
,
oldEsMissingRecords
,
batchNo
);
save2NewEquipEs
(
rs
,
details
,
newEsMissingRecords
,
batchNo
);
});
// 2.更新本切片数据的es的版本号,用来清除es的数据标记用
Map
<
String
,
Object
>
updateFields
=
MapUtil
.
of
(
"version"
,
batchNo
);
partitions
.
parallelStream
().
forEach
(
batch
->{
updateEsVersion
(
batch
,
updateFields
,
IDX_BIZ_VIEW_JG_ALL
);
updateEsVersion
(
batch
,
updateFields
,
IDX_BIZ_EQUIPMENT_INFO
);
});
watch
.
stop
();
log
.
info
(
"处理耗时:{}"
,
watch
.
getTotalTimeSeconds
());
return
true
;
}
private
void
updateEsVersion
(
List
<
String
>
batch
,
Map
<
String
,
Object
>
updateFields
,
String
index
)
{
BulkRequest
bulkRequest
=
new
BulkRequest
();
// 构建批量请求
batch
.
stream
()
.
map
(
id
->
new
UpdateRequest
(
index
,
id
)
.
doc
(
updateFields
,
XContentType
.
JSON
))
.
forEach
(
bulkRequest:
:
add
);
try
{
BulkResponse
response
=
restHighLevelClient
.
bulk
(
bulkRequest
,
RequestOptions
.
DEFAULT
);
// 更详细的错误日志记录
if
(
response
.
hasFailures
())
{
Arrays
.
stream
(
response
.
getItems
())
.
filter
(
BulkItemResponse:
:
isFailed
)
.
forEach
(
item
->
log
.
error
(
"Failed to update {}: {}"
,
item
.
getId
(),
item
.
getFailureMessage
()));
}
}
catch
(
IOException
e
)
{
log
.
error
(
"批量更新版本号失败: batchSize={}, index={}"
,
batch
.
size
(),
index
,
e
);
throw
new
RuntimeException
(
"ES批量更新失败"
,
e
);
}
}
private
void
save2NewEquipEs
(
List
<
String
>
rs
,
List
<
Map
<
String
,
Object
>>
details
,
List
<
String
>
waitSync2EquipmentInfoRecords
,
String
batchNo
)
{
Map
<
String
,
Map
<
String
,
Object
>>
recordDetailMap
=
details
.
stream
().
collect
(
Collectors
.
toMap
(
e
->
(
String
)
e
.
get
(
"SEQUENCE_NBR"
),
Function
.
identity
(),
(
k1
,
k2
)
->
k2
));
List
<
String
>
equipmentInfoSaveRecords
=
rs
.
stream
().
filter
(
waitSync2EquipmentInfoRecords:
:
contains
).
collect
(
Collectors
.
toList
());
List
<
ESEquipmentInfo
>
esEquipmentInfos
=
getEsEquipmentInfos
(
equipmentInfoSaveRecords
,
recordDetailMap
);
esEquipmentInfos
.
forEach
(
e
->
e
.
setVersion
(
batchNo
));
esBulkService
.
bulkUpsert
(
IDX_BIZ_EQUIPMENT_INFO
,
esEquipmentInfos
.
stream
().
map
(
e
->
new
EsEntity
<>(
e
.
getSEQUENCE_NBR
(),
e
)).
collect
(
Collectors
.
toList
()));
}
private
void
save2OldEquipEs
(
List
<
Map
<
String
,
Object
>>
details
,
List
<
String
>
waitSync2JgAllRecords
,
String
batchNo
)
{
List
<
Map
<
String
,
Object
>>
jgAllSaves
=
details
.
stream
().
filter
(
e
->
waitSync2JgAllRecords
.
contains
((
String
)
e
.
get
(
"SEQUENCE_NBR"
))).
collect
(
Collectors
.
toList
());
List
<
ESEquipmentCategoryDto
>
esEquipmentInfos
=
jgAllSaves
.
parallelStream
().
map
(
data
->
{
ESEquipmentCategoryDto
esEquipmentInfo
=
null
;
try
{
esEquipmentInfo
=
new
ESEquipmentCategoryDto
();
StatisticsDataUpdateService
.
formatUseDate
(
data
);
BeanUtil
.
copyProperties
(
data
,
esEquipmentInfo
,
true
);
esEquipmentInfo
.
setVersion
(
batchNo
);
}
catch
(
Exception
e
)
{
log
.
error
(
"批次{}设备刷数据处理失败"
,
record
,
e
);
}
return
esEquipmentInfo
;
}).
collect
(
Collectors
.
toList
());
if
(!
esEquipmentInfos
.
isEmpty
()){
esBulkService
.
bulkUpsert
(
IDX_BIZ_VIEW_JG_ALL
,
esEquipmentInfos
.
stream
().
map
(
e
->
new
EsEntity
<>(
e
.
getSEQUENCE_NBR
(),
e
)).
collect
(
Collectors
.
toList
()));
}
}
}
}
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/ElevatorDataTransactionService.java
deleted
100644 → 0
View file @
baf56083
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
io.seata.spring.annotation.GlobalTransactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Map
;
@Service
public
class
ElevatorDataTransactionService
{
private
final
DataDockServiceImpl
dataDockService
;
@Autowired
public
ElevatorDataTransactionService
(
@Lazy
DataDockServiceImpl
dataDockService
)
{
this
.
dataDockService
=
dataDockService
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Object
saveSingleElevatorData
(
Map
<
String
,
Object
>
equ
)
{
return
dataDockService
.
saveElevatorDataInTransaction
(
equ
,
"jg_his_xa"
,
null
);
}
}
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/IdxBizJgRegisterInfoServiceImpl.java
View file @
6d886fd1
This diff is collapsed.
Click to expand it.
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/DPSubServiceImpl.java
View file @
6d886fd1
...
@@ -884,7 +884,7 @@ public class DPSubServiceImpl {
...
@@ -884,7 +884,7 @@ public class DPSubServiceImpl {
}
}
}
}
Object
body
=
apiObj
.
get
(
"body"
);
Object
body
=
apiObj
.
get
(
"body"
);
ResponseEntity
<
String
>
responseEntity
=
null
;
ResponseEntity
<
String
>
s
responseEntity
=
null
;
//如果url以/开头,则调用本服务内接口
//如果url以/开头,则调用本服务内接口
if
(
url
!=
null
&&
url
.
trim
().
startsWith
(
"/"
))
{
if
(
url
!=
null
&&
url
.
trim
().
startsWith
(
"/"
))
{
url
=
"http://"
+
GATEWAY_SERVER_NAME
+
url
;
url
=
"http://"
+
GATEWAY_SERVER_NAME
+
url
;
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/mapper/IdxBizJgUseInfoMapper.java
View file @
6d886fd1
...
@@ -58,4 +58,6 @@ public interface IdxBizJgUseInfoMapper extends CustomBaseMapper<IdxBizJgUseInfo>
...
@@ -58,4 +58,6 @@ public interface IdxBizJgUseInfoMapper extends CustomBaseMapper<IdxBizJgUseInfo>
List
<
String
>
selectEquips
(
@Param
(
"equListCode"
)
String
equListCode
,
@Param
(
"equCategoryCode"
)
String
equCategoryCode
,
@Param
(
"orgCode"
)
String
orgCode
);
List
<
String
>
selectEquips
(
@Param
(
"equListCode"
)
String
equListCode
,
@Param
(
"equCategoryCode"
)
String
equCategoryCode
,
@Param
(
"orgCode"
)
String
orgCode
);
List
<
String
>
selectUseInfoOfOneVersionWithParams
(
@Param
(
"version"
)
Integer
version
,
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
List
<
String
>
selectUseInfoOfOneVersionWithParams
(
@Param
(
"version"
)
Integer
version
,
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
List
<
String
>
selectRecordList
(
@Param
(
"shard"
)
Integer
shard
,
@Param
(
"slots"
)
Integer
slots
);
}
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/CategoryOtherInfoMapper.xml
View file @
6d886fd1
...
@@ -74,48 +74,49 @@
...
@@ -74,48 +74,49 @@
WHERE ibjoi."RECORD" = #{record}
WHERE ibjoi."RECORD" = #{record}
</select>
</select>
<select
id=
"selectDataById"
resultType=
"java.util.Map"
>
<select
id=
"selectDataById"
resultType=
"java.util.Map"
>
SELECT SEQUENCE_NBR,
SELECT "SEQUENCE_NBR",
REC_DATE,
"REC_DATE",
CREATE_DATE,
"CREATE_DATE",
DATA_QUALITY_SCORE,
"DATA_QUALITY_SCORE",
ORG_BRANCH_NAME,
"ORG_BRANCH_NAME",
ORG_BRANCH_CODE,
"ORG_BRANCH_CODE",
USE_UNIT_NAME,
"USE_UNIT_NAME",
USE_UNIT_CREDIT_CODE,
"USE_UNIT_CREDIT_CODE",
EQU_LIST_CODE,
"EQU_LIST_CODE",
EQU_LIST,
"EQU_LIST",
EQU_CATEGORY,
"EQU_CATEGORY",
EQU_CATEGORY_CODE,
"EQU_CATEGORY_CODE",
USE_ORG_CODE,
"USE_ORG_CODE",
CODE96333,
"CODE96333",
EQU_CODE,
"EQU_CODE",
SUPERVISORY_CODE,
"SUPERVISORY_CODE",
USE_PLACE,
"USE_PLACE",
ADDRESS,
"ADDRESS",
EQU_STATE,
"EQU_STATE",
STATUS,
"STATUS",
USE_INNER_CODE,
"USE_INNER_CODE",
FACTORY_NUM,
"FACTORY_NUM",
PRODUCE_UNIT_NAME,
"PRODUCE_UNIT_NAME",
INSPECT_REPORT,
"INSPECT_REPORT",
NEXT_INSPECT_DATE,
"NEXT_INSPECT_DATE",
CONSTRUCTION_TYPE,
"CONSTRUCTION_TYPE",
USC_UNIT_CREDIT_CODE,
"USC_UNIT_CREDIT_CODE",
USC_UNIT_NAME,
"USC_UNIT_NAME",
EQU_DEFINE,
"EQU_DEFINE",
EQU_DEFINE_CODE,
"EQU_DEFINE_CODE",
PRODUCT_NAME,
"PRODUCT_NAME",
BRAND_NAME,
"BRAND_NAME",
EQU_TYPE,
"EQU_TYPE",
DATA_SOURCE,
"DATA_SOURCE",
IS_INTO_MANAGEMENT,
"IS_INTO_MANAGEMENT",
WHETHER_VEHICLE_CYLINDER,
"WHETHER_VEHICLE_CYLINDER",
WHETHER_SKID_MOUNTED_PRESSURE_VESSEL,
"WHETHER_SKID_MOUNTED_PRESSURE_VESSEL",
DATE_FORMAT(PRODUCE_DATE, '%Y-%m-%d %H:%i:%s') as PRODUCE_DATE,
DATE_FORMAT("PRODUCE_DATE", '%Y-%m-%d %H:%i:%s') as PRODUCE_DATE,
PROJECT_CONTRAPTION,
"PROJECT_CONTRAPTION",
TAG1
TAG1,
"problemStatus"
from idx_biz_view_jg_all
from idx_biz_view_jg_all
WHERE
SEQUENCE_NBR
= #{id}
WHERE
"SEQUENCE_NBR"
= #{id}
</select>
</select>
<select
id=
"queryInitCode"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.entity.CategoryOtherInfo"
>
<select
id=
"queryInitCode"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.entity.CategoryOtherInfo"
>
SELECT CODE96333 code
SELECT CODE96333 code
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/IdxBizJgUseInfoMapper.xml
View file @
6d886fd1
...
@@ -137,53 +137,56 @@
...
@@ -137,53 +137,56 @@
ibjui."RECORD" AS "SEQUENCE_NBR",
ibjui."RECORD" AS "SEQUENCE_NBR",
ibjui."PROJECT_CONTRAPTION",
ibjui."PROJECT_CONTRAPTION",
ibjui."PROJECT_CONTRAPTION_ID",
ibjui."PROJECT_CONTRAPTION_ID",
ibjsi."ORG_BRANCH_NAME",
ibjsi."ORG_BRANCH_CODE",
ibjui."REC_DATE",
ibjui."REC_DATE",
ibjui."USE_UNIT_NAME",
ibjui."USE_UNIT_NAME",
ibjui."USE_UNIT_CREDIT_CODE",
ibjui."USE_UNIT_CREDIT_CODE",
ibjri."EQU_LIST" AS "EQU_LIST_CODE",
ibjri."EQU_DEFINE" AS "EQU_DEFINE_CODE",
ibjri."PRODUCT_NAME",
ibjri."BRAND_NAME",
ibjri."EQU_TYPE",
ibjri."EQU_CATEGORY" AS "EQU_CATEGORY_CODE",
tec2.NAME AS "EQU_DEFINE",
tec1.NAME AS "EQU_LIST",
tec.NAME AS "EQU_CATEGORY",
ibjri."USE_ORG_CODE",
ibjui."USE_INNER_CODE",
ibjui."USE_INNER_CODE",
ibjui."DATA_SOURCE",
ibjui."DATA_SOURCE",
ibjoi."CODE96333",
ibjui."CREATE_DATE" ,
ibjui."SAFETY_MANAGER" ,
ibjui."PHONE",
ibjui."USE_DATE",
ibjui."USE_PLACE" as USE_SITE_CODE,
ibjui."DATA_QUALITY_SCORE",
ibjui."IS_NOT_ES",
concat_ws ( '/', ibjui."PROVINCE_NAME", ibjui."CITY_NAME", ibjui."COUNTY_NAME", ibjui."STREET_NAME" ) AS "USE_PLACE",
concat_ws ( '#', ibjui."PROVINCE", ibjui."CITY", ibjui."COUNTY", ibjui."FACTORY_USE_SITE_STREET" ) AS "USE_PLACE_CODE",
ibjui."ADDRESS",
ibjui."EQU_STATE",
ibjui."IS_INTO_MANAGEMENT",
ibjri."EQU_CODE",
ibjri."EQU_CODE",
ibjoi."SUPERVISORY_CODE",
ibjri."WHETHER_VEHICLE_CYLINDER",
ibjri."WHETHER_VEHICLE_CYLINDER",
ibjri."WHETHER_SKID_MOUNTED_PRESSURE_VESSEL",
ibjri."WHETHER_SKID_MOUNTED_PRESSURE_VESSEL",
ibjri."CYLINDER_CATEGORY",
ibjri."CYLINDER_CATEGORY",
ibjri."WHETHER_SPHERICAL_TANK",
ibjri."WHETHER_SPHERICAL_TANK",
ibjri."CAR_NUMBER",
ibjri."CAR_NUMBER",
ibjri."EQU_PRICE",
ibjri."EQU_PRICE",
concat_ws ( '/', ibjui."PROVINCE_NAME", ibjui."CITY_NAME", ibjui."COUNTY_NAME", ibjui."STREET_NAME" ) AS "USE_PLACE",
ibjri."EQU_LIST" AS "EQU_LIST_CODE",
concat_ws ( '#', ibjui."PROVINCE", ibjui."CITY", ibjui."COUNTY", ibjui."FACTORY_USE_SITE_STREET" ) AS "USE_PLACE_CODE",
ibjri."EQU_DEFINE" AS "EQU_DEFINE_CODE",
ibjui."ADDRESS",
ibjri."PRODUCT_NAME",
ibjui."EQU_STATE",
ibjri."BRAND_NAME",
ibjui."IS_INTO_MANAGEMENT",
ibjri."EQU_TYPE",
ibjoi."CLAIM_STATUS" AS "STATUS",
ibjri."EQU_CATEGORY" AS "EQU_CATEGORY_CODE",
ibjoi."STATUS" AS problemStatus,
ibjri."TAG1" AS tag1,
ibjri."USE_ORG_CODE",
ibjsi."ORG_BRANCH_NAME",
ibjsi."ORG_BRANCH_CODE",
ibjfi."FACTORY_NUM",
ibjfi."FACTORY_NUM",
ibjfi."PRODUCE_UNIT_NAME",
ibjfi."PRODUCE_UNIT_NAME",
ibjfi."PRODUCE_UNIT_CREDIT_CODE",
ibjfi."PRODUCE_UNIT_CREDIT_CODE",
ibjfi."PRODUCE_DATE",
ibjfi."PRODUCE_DATE",
ibjui."CREATE_DATE" ,
ibjoi."CODE96333",
ibjui."SAFETY_MANAGER" ,
ibjoi."SUPERVISORY_CODE",
ibjui."PHONE",
ibjoi."CLAIM_STATUS" AS "STATUS",
ibjui."USE_DATE",
ibjoi."STATUS" AS problemStatus,
ibjui."USE_PLACE" as USE_SITE_CODE,
ibjui."DATA_QUALITY_SCORE",
ibjoi."INFORMATION_SITUATION",
ibjoi."INFORMATION_SITUATION",
ibjoi."EDIT_STATUS",
di."DESIGN_UNIT_CREDIT_CODE",
di."DESIGN_UNIT_CREDIT_CODE",
di."DESIGN_UNIT_NAME",
di."DESIGN_UNIT_NAME",
di."DESIGN_DATE",
di."DESIGN_DATE",
tec2.NAME AS "EQU_DEFINE",
tec1.NAME AS "EQU_LIST",
tec.NAME AS "EQU_CATEGORY",
construction_info."USC_UNIT_CREDIT_CODE",
construction_info."USC_UNIT_CREDIT_CODE",
construction_info."USC_UNIT_NAME",
construction_info."USC_UNIT_NAME",
construction_info."CONSTRUCTION_TYPE",
construction_info."CONSTRUCTION_TYPE",
...
@@ -324,5 +327,13 @@
...
@@ -324,5 +327,13 @@
AND r."EQU_CATEGORY" = #{equCategoryCode}
AND r."EQU_CATEGORY" = #{equCategoryCode}
</if>
</if>
</select>
</select>
<select
id=
"selectRecordList"
resultType=
"java.lang.String"
>
SELECT
"RECORD"
FROM
idx_biz_jg_use_info
WHERE
ABS(MOD(hashtext("RECORD"), #{slots})) = #{shard}
</select>
</mapper>
</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