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
fdaf6d97
Commit
fdaf6d97
authored
Dec 06, 2023
by
H2T
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
计划重做时删除原先es中数据
parent
d84644e8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
26 deletions
+65
-26
PlanTaskDetailMapper.java
...amos/patrol/business/dao/mapper/PlanTaskDetailMapper.java
+3
-0
PlanTaskServiceImpl.java
...mos/patrol/business/service/impl/PlanTaskServiceImpl.java
+53
-26
plan_task_detail.xml
...rol-biz/src/main/resources/db/mapper/plan_task_detail.xml
+9
-0
No files found.
amos-boot-system-tzs/amos-boot-module-tzspatrol/amos-boot-module-tzspatrol-biz/src/main/java/com/yeejoin/amos/patrol/business/dao/mapper/PlanTaskDetailMapper.java
View file @
fdaf6d97
package
com
.
yeejoin
.
amos
.
patrol
.
business
.
dao
.
mapper
;
package
com
.
yeejoin
.
amos
.
patrol
.
business
.
dao
.
mapper
;
import
com.yeejoin.amos.patrol.dao.entity.ESTaskDetailDto
;
import
com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail
;
import
com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -14,4 +15,6 @@ public interface PlanTaskDetailMapper extends BaseMapper {
...
@@ -14,4 +15,6 @@ public interface PlanTaskDetailMapper extends BaseMapper {
List
<
PlanTaskDetail
>
findAllByIdInAndStatus
(
@Param
(
"planTaskIds"
)
List
<
Long
>
planTaskNo
,
@Param
(
"status"
)
String
status
);
List
<
PlanTaskDetail
>
findAllByIdInAndStatus
(
@Param
(
"planTaskIds"
)
List
<
Long
>
planTaskNo
,
@Param
(
"status"
)
String
status
);
List
<
ESTaskDetailDto
>
findAllByTaskNos
(
@Param
(
"ids"
)
String
ids
);
}
}
amos-boot-system-tzs/amos-boot-module-tzspatrol/amos-boot-module-tzspatrol-biz/src/main/java/com/yeejoin/amos/patrol/business/service/impl/PlanTaskServiceImpl.java
View file @
fdaf6d97
...
@@ -458,19 +458,61 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -458,19 +458,61 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
return
;
return
;
}
}
//
3.删除planTask表,按照计划id+日期
//
4.删除对应es中数据
List
<
ESPlanTaskListDto
>
oldEsPlanTaskListDtos
=
deletePlanTaskAndDet
(
param
);
CompletableFuture
.
runAsync
(()
->
deleteEsData
(
param
)
);
//5.执行数据生成(具体时间 + 人员)
//5.执行数据生成(具体时间 + 人员)
List
<
HashMap
<
String
,
Object
>>
list
=
genAllExeDate
(
plan
,
vo
,
XJConstant
.
REGEN_FLAG
);
List
<
HashMap
<
String
,
Object
>>
list
=
genAllExeDate
(
plan
,
vo
,
XJConstant
.
REGEN_FLAG
);
//6.插入planTask及planTaskDetail
//6.插入planTask及planTaskDetail
insertPlanTaskAndDetNew
(
list
,
plan
,
flag
,
new
Date
()
,
oldEsPlanTaskListDtos
);
insertPlanTaskAndDetNew
(
list
,
plan
,
flag
,
new
Date
());
// 更新统计表
// 更新统计表
taskStaticExecution
(
null
);
taskStaticExecution
(
null
);
}
}
private
void
deleteEsData
(
HashMap
<
String
,
Object
>
param
)
{
//删除planTask表,按照计划id+日期
List
<
ESPlanTaskListDto
>
oldEsPlanTaskListDtos
=
deletePlanTaskAndDet
(
param
);
//删除planTaskDetail表
List
<
String
>
planTaskIds
=
oldEsPlanTaskListDtos
.
stream
().
map
(
ESPlanTaskListDto:
:
getPlanTaskId
).
collect
(
Collectors
.
toList
());
if
(!
ValidationUtil
.
isEmpty
(
planTaskIds
))
{
if
(
planTaskIds
.
size
()
>
5000
)
{
int
index
=
5000
;
for
(
int
i
=
0
;
i
<
planTaskIds
.
size
();
i
+=
5000
)
{
if
(
i
+
5000
>
planTaskIds
.
size
())
{
index
=
planTaskIds
.
size
()
-
i
;
}
List
<
String
>
newList
=
planTaskIds
.
subList
(
i
,
i
+
index
);
String
ids
=
newList
.
stream
().
collect
(
Collectors
.
joining
(
"','"
,
"('"
,
"')"
));
List
<
ESTaskDetailDto
>
maps
=
planTaskDetailMapper
.
findAllByTaskNos
(
ids
);
esTaskDetail
.
deleteAll
(
maps
);
}
}
else
{
String
ids
=
planTaskIds
.
stream
().
collect
(
Collectors
.
joining
(
"','"
,
"('"
,
"')"
));
List
<
ESTaskDetailDto
>
maps
=
planTaskDetailMapper
.
findAllByTaskNos
(
ids
);
esTaskDetail
.
deleteAll
(
maps
);
}
}
if
(!
ValidationUtil
.
isEmpty
(
oldEsPlanTaskListDtos
))
{
if
(
oldEsPlanTaskListDtos
.
size
()
>
5000
)
{
int
index
=
5000
;
for
(
int
i
=
0
;
i
<
oldEsPlanTaskListDtos
.
size
();
i
+=
5000
)
{
if
(
i
+
5000
>
oldEsPlanTaskListDtos
.
size
())
{
index
=
oldEsPlanTaskListDtos
.
size
()
-
i
;
}
List
<
ESPlanTaskListDto
>
newList
=
oldEsPlanTaskListDtos
.
subList
(
i
,
i
+
index
);
esPlanTaskList
.
deleteAll
(
newList
);
}
}
else
{
esPlanTaskList
.
deleteAll
(
oldEsPlanTaskListDtos
);
}
}
}
private
void
notifyBusinessRefresh
(
String
type
)
{
private
void
notifyBusinessRefresh
(
String
type
)
{
try
{
try
{
...
@@ -718,7 +760,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -718,7 +760,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
//2.5.插入planTask及planTaskDetail
//2.5.插入planTask及planTaskDetail
insertPlanTaskAndDetNew
(
list
,
plan
,
XJConstant
.
SCHED_FLAG
,
now
,
null
);
insertPlanTaskAndDetNew
(
list
,
plan
,
XJConstant
.
SCHED_FLAG
,
now
);
// 更新统计表
// 更新统计表
taskStaticExecution
(
null
);
taskStaticExecution
(
null
);
...
@@ -870,7 +912,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -870,7 +912,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
* @param plan
* @param plan
* @param flag 是否初始状态0-初始 1-非初始
* @param flag 是否初始状态0-初始 1-非初始
*/
*/
public
void
insertPlanTaskAndDetNew
(
List
<
HashMap
<
String
,
Object
>>
list
,
Plan
plan
,
String
flag
,
Date
now
,
List
<
ESPlanTaskListDto
>
oldEsPlanTaskListDtos
)
{
public
void
insertPlanTaskAndDetNew
(
List
<
HashMap
<
String
,
Object
>>
list
,
Plan
plan
,
String
flag
,
Date
now
)
{
if
(
list
==
null
||
list
.
size
()
<=
0
)
{
if
(
list
==
null
||
list
.
size
()
<=
0
)
{
HashMap
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
HashMap
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
paramMap
.
put
(
"id"
,
plan
.
getId
());
paramMap
.
put
(
"id"
,
plan
.
getId
());
...
@@ -1010,7 +1052,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -1010,7 +1052,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
//存在事物,在事务提交之后执行
//存在事物,在事务提交之后执行
asyncSaveEs
(
planTaskDetails
,
esPlanTaskListDtos
,
oldEsPlanTaskListDtos
);
asyncSaveEs
(
planTaskDetails
,
esPlanTaskListDtos
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -1020,18 +1062,18 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -1020,18 +1062,18 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
}
}
private
void
asyncSaveEs
(
Iterable
<
PlanTaskDetail
>
planTaskDetails
,
List
<
ESPlanTaskListDto
>
esPlanTaskListDtos
,
List
<
ESPlanTaskListDto
>
oldEsPlanTaskListDtos
)
{
private
void
asyncSaveEs
(
Iterable
<
PlanTaskDetail
>
planTaskDetails
,
List
<
ESPlanTaskListDto
>
esPlanTaskListDtos
)
{
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronizationAdapter
()
{
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronizationAdapter
()
{
@Override
@Override
public
void
afterCommit
()
{
public
void
afterCommit
()
{
//异步存储任务和任务详情到es
//异步存储任务和任务详情到es
asyncSavePlanTaskAndDetailListToEs
(
planTaskDetails
,
esPlanTaskListDtos
,
oldEsPlanTaskListDtos
);
asyncSavePlanTaskAndDetailListToEs
(
planTaskDetails
,
esPlanTaskListDtos
);
}
}
});
});
}
}
@Async
@Async
public
void
asyncSavePlanTaskAndDetailListToEs
(
Iterable
<
PlanTaskDetail
>
planTaskDetails
,
List
<
ESPlanTaskListDto
>
esPlanTaskListDtos
,
List
<
ESPlanTaskListDto
>
oldEsPlanTaskListDtos
)
{
public
void
asyncSavePlanTaskAndDetailListToEs
(
Iterable
<
PlanTaskDetail
>
planTaskDetails
,
List
<
ESPlanTaskListDto
>
esPlanTaskListDtos
)
{
log
.
info
(
"异步存储任务和任务详情到es"
);
log
.
info
(
"异步存储任务和任务详情到es"
);
Plan
plan
=
planMapper
.
getPlan
(
esPlanTaskListDtos
.
get
(
0
).
getPlanId
());
Plan
plan
=
planMapper
.
getPlan
(
esPlanTaskListDtos
.
get
(
0
).
getPlanId
());
StopWatch
stopWatch
=
new
StopWatch
();
StopWatch
stopWatch
=
new
StopWatch
();
...
@@ -1186,7 +1228,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -1186,7 +1228,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
log
.
info
(
"esPlanTaskListDtos数据组装,耗时:{} 秒"
,
stopWatch6
.
getTotalTimeSeconds
());
log
.
info
(
"esPlanTaskListDtos数据组装,耗时:{} 秒"
,
stopWatch6
.
getTotalTimeSeconds
());
StopWatch
stopWatch7
=
new
StopWatch
();
StopWatch
stopWatch7
=
new
StopWatch
();
stopWatch7
.
start
();
stopWatch7
.
start
();
saveEsPlanTaskList
(
esPlanTaskListDtos
,
oldEsPlanTaskListDtos
);
saveEsPlanTaskList
(
esPlanTaskListDtos
);
stopWatch7
.
stop
();
stopWatch7
.
stop
();
log
.
info
(
"任务存入es,耗时:{} 秒"
,
stopWatch7
.
getTotalTimeSeconds
());
log
.
info
(
"任务存入es,耗时:{} 秒"
,
stopWatch7
.
getTotalTimeSeconds
());
}
}
...
@@ -1212,22 +1254,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -1212,22 +1254,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
public
void
saveEsPlanTaskList
(
List
<
ESPlanTaskListDto
>
esPlanTaskListDtos
,
List
<
ESPlanTaskListDto
>
oldEsPlanTaskListDtos
)
{
public
void
saveEsPlanTaskList
(
List
<
ESPlanTaskListDto
>
esPlanTaskListDtos
)
{
if
(!
ValidationUtil
.
isEmpty
(
oldEsPlanTaskListDtos
))
{
if
(
oldEsPlanTaskListDtos
.
size
()
>
5000
)
{
int
index
=
5000
;
for
(
int
i
=
0
;
i
<
oldEsPlanTaskListDtos
.
size
();
i
+=
5000
)
{
if
(
i
+
5000
>
oldEsPlanTaskListDtos
.
size
())
{
index
=
oldEsPlanTaskListDtos
.
size
()
-
i
;
}
List
<
ESPlanTaskListDto
>
newList
=
oldEsPlanTaskListDtos
.
subList
(
i
,
i
+
index
);
esPlanTaskList
.
deleteAll
(
newList
);
}
}
else
{
esPlanTaskList
.
deleteAll
(
oldEsPlanTaskListDtos
);
}
}
if
(!
ValidationUtil
.
isEmpty
(
esPlanTaskListDtos
))
{
if
(!
ValidationUtil
.
isEmpty
(
esPlanTaskListDtos
))
{
if
(
esPlanTaskListDtos
.
size
()
>
5000
)
{
if
(
esPlanTaskListDtos
.
size
()
>
5000
)
{
int
index
=
5000
;
int
index
=
5000
;
...
...
amos-boot-system-tzs/amos-boot-module-tzspatrol/amos-boot-module-tzspatrol-biz/src/main/resources/db/mapper/plan_task_detail.xml
View file @
fdaf6d97
...
@@ -30,4 +30,12 @@
...
@@ -30,4 +30,12 @@
pptd.task_no in
<foreach
collection=
"planTaskIds"
item=
"planTaskId"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{planTaskId}
</foreach>
pptd.task_no in
<foreach
collection=
"planTaskIds"
item=
"planTaskId"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{planTaskId}
</foreach>
and pptd.status = #{status}
and pptd.status = #{status}
</select>
</select>
<select
id=
"findAllByTaskNos"
resultType=
"com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail"
>
select
pptd.id
from
"p_plan_task_detail" pptd
where
pptd.task_no in #{ids}
</select>
</mapper>
</mapper>
\ 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