Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
huazheng-project-flink
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
huazheng
huazheng-project-flink
Commits
17551679
提交
17551679
authored
12月 23, 2020
作者:
guofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调整job任务顺序
上级
592eb581
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
1217 行增加
和
1106 行删除
+1217
-1106
CheckDeleteServiceImpl.java
...roject/greenplum/service/impl/CheckDeleteServiceImpl.java
+315
-321
CheckUpdateServiceImpl.java
...roject/greenplum/service/impl/CheckUpdateServiceImpl.java
+415
-414
DeleteUpdateJobServiceImpl.java
...ct/greenplum/service/impl/DeleteUpdateJobServiceImpl.java
+2
-2
JobServiceImpl.java
...azheng/project/greenplum/service/impl/JobServiceImpl.java
+299
-312
spring-init.xml
src/main/resources/spring-init.xml
+186
-57
没有找到文件。
src/main/java/com/huazheng/project/greenplum/service/impl/CheckDeleteServiceImpl.java
浏览文件 @
17551679
...
...
@@ -81,40 +81,25 @@ public class CheckDeleteServiceImpl {
selectAfpoCheckByDelete
();
selectBkpfCheckByDelete
();
selectKna1CheckByDelete
();
selectLikpCheckByDelete
();
selectLipsCheckByDelete
();
selectPa0002CheckByDelete
();
selectVbakCheckByDelete
();
selectVbrkCheckByDelete
();
selectZsd06CheckByDelete
();
selectZsdfhzlCheckByDelete
();
selectMaraCheckByDelete
();
selectAuspCheckByDelete
();
selectKnvvCheckByDelete
();
selectVbrpCheckByDelete
();
selectKonvCheckByDelete
();
selectMaktCheckByDelete
();
selectVbukCheckByDelete
();
selectZpoeditCheckByDelete
();
selectBsadCheckByDelete
();
selectBsidCheckByDelete
();
selectVbapCheckByDelete
();
selectVbepCheckByDelete
();
selectVbpaCheckByDelete
();
selectZmdpcCheckByDelete
();
selectSalesContractProcessCheckByDelete
();
selectSalesForecastProcessCheckByDelete
();
selectSampleApplicationProcessCheckByDelete
();
selectSampleClosingProcessCheckByDelete
();
selectHandoverCheckByDelete
();
selectHandoverTaskCheckByDelete
();
selectTransformHistoryNodeCheckByDelete
();
selectTransformNewNodeCheckByDelete
();
selectSalesContractProcessMXCheckByDelete
();
selectSalesForecastProcessMXCheckByDelete
();
selectSampleApplicationProcessMingXiCheckByDelete
();
selectSampleClosingProcessMingXiCheckByDelete
();
selectSysSAPreturnNoCheckByDelete
();
}
public
void
selectAufkCheckByDelete
()
{
...
...
@@ -265,66 +250,7 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Kna1:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectLikpCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Likp:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Likp:rowNum"
);
Likp
build
=
Likp
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Likp
>
list
=
gpMapper
.
selectLikpCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Likp:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Likp
source
=
sapMapper
.
selectLikpById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteLikp
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Likp:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLikpcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Likp:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectLipsCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Lips:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Lips:rowNum"
);
Lips
build
=
Lips
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Lips
>
list
=
gpMapper
.
selectLipsCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Lips:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Lips
source
=
sapMapper
.
selectLipsById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteLips
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Lips:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLipscheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Lips:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectPa0002CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
@@ -355,66 +281,8 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Pa0002:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbakCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Vbak:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Vbak:rowNum"
);
Vbak
build
=
Vbak
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbak
>
list
=
gpMapper
.
selectVbakCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbak:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbak
source
=
sapMapper
.
selectVbakById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteVbak
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbak:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbakcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbak:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbrkCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Vbrk:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Vbrk:rowNum"
);
Vbrk
build
=
Vbrk
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbrk
>
list
=
gpMapper
.
selectVbrkCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrk:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbrk
source
=
sapMapper
.
selectVbrkById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteVbrk
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrk:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbrkcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbrk:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectZsd06CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
@@ -578,36 +446,7 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Knvv:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbrpCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Vbrp:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Vbrp:rowNum"
);
Vbrp
build
=
Vbrp
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbrp
>
list
=
gpMapper
.
selectVbrpCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrp:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbrp
source
=
sapMapper
.
selectVbrpById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteVbrp
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrp:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbrpcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbrp:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectKonvCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
@@ -783,180 +622,243 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Bsid:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbapCheckByDelete
()
{
public
void
selectZmdpcCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbap
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbap
:rowNum"
);
Vbap
build
=
Vbap
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
);
Zmdpc
build
=
Zmdpc
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbap
>
list
=
gpMapper
.
selectVbap
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbap
:rowNum"
,
"0"
);
// 计数器复位
List
<
Zmdpc
>
list
=
gpMapper
.
selectZmdpc
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbap
source
=
sapMapper
.
selectVbap
ById
(
target
);
// 根据主键查询源库中的数据
Zmdpc
source
=
sapMapper
.
selectZmdpc
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteVbap
(
target
);
// 删除数仓中的数据
gpMapper
.
deleteVbapAdv
(
target
);
gpMapper
.
deleteZmdpc
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbap
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
Vbap
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Zmdpc
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Vbap
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Zmdpc
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbepCheckByDelete
()
{
public
void
selectSalesForecastProcessCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbep
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbep
:rowNum"
);
Vbep
build
=
Vbep
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
);
SalesForecastProcess
build
=
SalesForecastProcess
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbep
>
list
=
gpMapper
.
selectVbep
Check
(
build
);
// 从数仓中查询一组数据
List
<
SalesForecastProcess
>
list
=
gpMapper
.
selectSalesForecastProcess
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbep
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbep
source
=
sapMapper
.
selectVbep
ById
(
target
);
// 根据主键查询源库中的数据
SalesForecastProcess
source
=
crmMapper
.
selectSalesForecastProcess
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
Vbep
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
SalesForecastProcess
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbep
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
Vbep
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
SalesForecastProcess
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Vbep
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SalesForecastProcess
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbpaCheckByDelete
()
{
public
void
selectHandoverCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbpa
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbpa
:rowNum"
);
Vbpa
build
=
Vbpa
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Handover
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Handover
:rowNum"
);
Handover
build
=
Handover
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbpa
>
list
=
gpMapper
.
selectVbpa
Check
(
build
);
// 从数仓中查询一组数据
List
<
Handover
>
list
=
gpMapper
.
selectHandover
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbpa
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Handover
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbpa
source
=
sapMapper
.
selectVbpa
ById
(
target
);
// 根据主键查询源库中的数据
Handover
source
=
tmsMapper
.
selectHandover
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
Vbpa
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
Handover
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbpa
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Handover
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
Vbpa
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Handover
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Vbpa
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Handover
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
Zmdpc
CheckByDelete
()
{
public
void
select
HandoverTask
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
);
Zmdpc
build
=
Zmdpc
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
);
HandoverTask
build
=
HandoverTask
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Zmdpc
>
list
=
gpMapper
.
selectZmdpc
Check
(
build
);
// 从数仓中查询一组数据
List
<
HandoverTask
>
list
=
gpMapper
.
selectHandoverTask
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Zmdpc
source
=
sapMapper
.
selectZmdpc
ById
(
target
);
// 根据主键查询源库中的数据
HandoverTask
source
=
tmsMapper
.
selectHandoverTask
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
Zmdpc
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
HandoverTask
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Zmdpc
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
Zmdpc
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
HandoverTask
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Zmdpc
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
HandoverTask
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSalesContractProcessCheckByDelete
()
{
public
void
selectTransformHistoryNodeCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SalesContractProcess
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SalesContractProcess
:rowNum"
);
SalesContractProcess
build
=
SalesContractProcess
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
);
TransformHistoryNode
build
=
TransformHistoryNode
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SalesContractProcess
>
list
=
gpMapper
.
selectSalesContractProcess
Check
(
build
);
// 从数仓中查询一组数据
List
<
TransformHistoryNode
>
list
=
gpMapper
.
selectTransformHistoryNode
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesContractProcess
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SalesContractProcess
source
=
crmMapper
.
selectSalesContractProcess
ById
(
target
);
// 根据主键查询源库中的数据
TransformHistoryNode
source
=
tmsMapper
.
selectTransformHistoryNode
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
SalesContractProcess
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
TransformHistoryNode
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesContractProcess
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
SalesContractProcess
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
TransformHistoryNode
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SalesContractProcess
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
TransformHistoryNode
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
SalesForecastProcess
CheckByDelete
()
{
public
void
select
TransformNewNode
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
);
SalesForecastProcess
build
=
SalesForecastProcess
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
);
TransformNewNode
build
=
TransformNewNode
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SalesForecastProcess
>
list
=
gpMapper
.
selectSalesForecastProcess
Check
(
build
);
// 从数仓中查询一组数据
List
<
TransformNewNode
>
list
=
gpMapper
.
selectTransformNewNode
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SalesForecastProcess
source
=
crmMapper
.
selectSalesForecastProcess
ById
(
target
);
// 根据主键查询源库中的数据
TransformNewNode
source
=
tmsMapper
.
selectTransformNewNode
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
SalesForecastProcess
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
TransformNewNode
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesForecastProcess
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
SalesForecastProcess
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
TransformNewNode
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:SalesForecastProcess:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:TransformNewNode:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSalesForecastProcessMXCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:SalesForecastProcessMX:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:SalesForecastProcessMX:rowNum"
);
SalesForecastProcessMX
build
=
SalesForecastProcessMX
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SalesForecastProcessMX
>
list
=
gpMapper
.
selectSalesForecastProcessMXCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:SalesForecastProcessMX:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SalesForecastProcessMX
source
=
crmMapper
.
selectSalesForecastProcessMXById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteSalesForecastProcessMX
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:SalesForecastProcessMX:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSalesForecastProcessMXcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:SalesForecastProcessMX:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
// 独立的
public
void
selectSalesContractProcessCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:SalesContractProcess:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:SalesContractProcess:rowNum"
);
SalesContractProcess
build
=
SalesContractProcess
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SalesContractProcess
>
list
=
gpMapper
.
selectSalesContractProcessCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:SalesContractProcess:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SalesContractProcess
source
=
crmMapper
.
selectSalesContractProcessById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteSalesContractProcess
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:SalesContractProcess:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSalesContractProcesscheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:SalesContractProcess:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSampleApplicationProcessCheckByDelete
()
{
...
...
@@ -1017,241 +919,333 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:SampleClosingProcess:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectHandoverCheckByDelete
()
{
public
void
selectSalesContractProcessMXCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Handover
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Handover
:rowNum"
);
Handover
build
=
Handover
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
);
SalesContractProcessMX
build
=
SalesContractProcessMX
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Handover
>
list
=
gpMapper
.
selectHandover
Check
(
build
);
// 从数仓中查询一组数据
List
<
SalesContractProcessMX
>
list
=
gpMapper
.
selectSalesContractProcessMX
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Handover
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Handover
source
=
tmsMapper
.
selectHandover
ById
(
target
);
// 根据主键查询源库中的数据
SalesContractProcessMX
source
=
crmMapper
.
selectSalesContractProcessMX
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
Handover
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
SalesContractProcessMX
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Handover
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
Handover
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
SalesContractProcessMX
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Handover
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SalesContractProcessMX
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
HandoverTask
CheckByDelete
()
{
public
void
select
SampleApplicationProcessMingXi
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
);
HandoverTask
build
=
HandoverTask
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
);
SampleApplicationProcessMingXi
build
=
SampleApplicationProcessMingXi
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
HandoverTask
>
list
=
gpMapper
.
selectHandoverTask
Check
(
build
);
// 从数仓中查询一组数据
List
<
SampleApplicationProcessMingXi
>
list
=
gpMapper
.
selectSampleApplicationProcessMingXi
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
HandoverTask
source
=
tmsMapper
.
selectHandoverTask
ById
(
target
);
// 根据主键查询源库中的数据
SampleApplicationProcessMingXi
source
=
crmMapper
.
selectSampleApplicationProcessMingXi
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
HandoverTask
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
SampleApplicationProcessMingXi
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
HandoverTask
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
HandoverTask
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
SampleApplicationProcessMingXi
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
HandoverTask
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SampleApplicationProcessMingXi
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
TransformHistoryNode
CheckByDelete
()
{
public
void
select
SampleClosingProcessMingXi
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
);
TransformHistoryNode
build
=
TransformHistoryNode
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
);
SampleClosingProcessMingXi
build
=
SampleClosingProcessMingXi
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
TransformHistoryNode
>
list
=
gpMapper
.
selectTransformHistoryNode
Check
(
build
);
// 从数仓中查询一组数据
List
<
SampleClosingProcessMingXi
>
list
=
gpMapper
.
selectSampleClosingProcessMingXi
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
TransformHistoryNode
source
=
tmsMapper
.
selectTransformHistoryNode
ById
(
target
);
// 根据主键查询源库中的数据
SampleClosingProcessMingXi
source
=
crmMapper
.
selectSampleClosingProcessMingXi
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
TransformHistoryNode
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
SampleClosingProcessMingXi
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformHistoryNode
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
TransformHistoryNode
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
SampleClosingProcessMingXi
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
TransformHistoryNode
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SampleClosingProcessMingXi
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectTransformNewNodeCheckByDelete
()
{
// 独立的
public
void
selectLikpCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
);
TransformNewNode
build
=
TransformNewNode
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Likp
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Likp
:rowNum"
);
Likp
build
=
Likp
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
TransformNewNode
>
list
=
gpMapper
.
selectTransformNewNode
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
TransformNewNode
:rowNum"
,
"0"
);
// 计数器复位
List
<
Likp
>
list
=
gpMapper
.
selectLikp
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Likp
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
TransformNewNode
source
=
tmsMapper
.
selectTransformNewNode
ById
(
target
);
// 根据主键查询源库中的数据
Likp
source
=
sapMapper
.
selectLikp
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
TransformNewNode
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
Likp
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:TransformNewNode:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Likp:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
TransformNewNode
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Likp
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
TransformNewNode
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Likp
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectLipsCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Lips:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Lips:rowNum"
);
Lips
build
=
Lips
.
builder
().
rowNum
(
rowNum
).
build
();
public
void
selectSalesContractProcessMXCheckByDelete
()
{
List
<
Lips
>
list
=
gpMapper
.
selectLipsCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Lips:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Lips
source
=
sapMapper
.
selectLipsById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteLips
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Lips:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLipscheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Lips:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbakCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
);
SalesContractProcessMX
build
=
SalesContractProcessMX
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbak
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbak
:rowNum"
);
Vbak
build
=
Vbak
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SalesContractProcessMX
>
list
=
gpMapper
.
selectSalesContractProcessMX
Check
(
build
);
// 从数仓中查询一组数据
List
<
Vbak
>
list
=
gpMapper
.
selectVbak
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesContractProcessMX
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbak
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SalesContractProcessMX
source
=
crmMapper
.
selectSalesContractProcessMX
ById
(
target
);
// 根据主键查询源库中的数据
Vbak
source
=
sapMapper
.
selectVbak
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
SalesContractProcessMX
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
Vbak
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:SalesContractProcessMX:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbak:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
SalesContractProcessMX
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Vbak
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SalesContractProcessMX
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Vbak
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
SalesForecastProcessMX
CheckByDelete
()
{
public
void
select
Vbap
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SalesForecastProcessMX
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SalesForecastProcessMX
:rowNum"
);
SalesForecastProcessMX
build
=
SalesForecastProcessMX
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbap
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbap
:rowNum"
);
Vbap
build
=
Vbap
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SalesForecastProcessMX
>
list
=
gpMapper
.
selectSalesForecastProcessMX
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesForecastProcessMX
:rowNum"
,
"0"
);
// 计数器复位
List
<
Vbap
>
list
=
gpMapper
.
selectVbap
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbap
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SalesForecastProcessMX
source
=
crmMapper
.
selectSalesForecastProcessMX
ById
(
target
);
// 根据主键查询源库中的数据
Vbap
source
=
sapMapper
.
selectVbap
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteSalesForecastProcessMX
(
target
);
// 删除数仓中的数据
gpMapper
.
deleteVbap
(
target
);
// 删除数仓中的数据
gpMapper
.
deleteVbapAdv
(
target
);
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SalesForecastProcessMX
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbap
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
SalesForecastProcessMX
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Vbap
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SalesForecastProcessMX
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Vbap
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
SampleApplicationProcessMingXi
CheckByDelete
()
{
public
void
select
Vbep
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
);
SampleApplicationProcessMingXi
build
=
SampleApplicationProcessMingXi
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbep
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbep
:rowNum"
);
Vbep
build
=
Vbep
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SampleApplicationProcessMingXi
>
list
=
gpMapper
.
selectSampleApplicationProcessMingXi
Check
(
build
);
// 从数仓中查询一组数据
List
<
Vbep
>
list
=
gpMapper
.
selectVbep
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbep
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SampleApplicationProcessMingXi
source
=
crmMapper
.
selectSampleApplicationProcessMingXi
ById
(
target
);
// 根据主键查询源库中的数据
Vbep
source
=
sapMapper
.
selectVbep
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
SampleApplicationProcessMingXi
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
Vbep
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleApplicationProcessMingXi
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbep
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
SampleApplicationProcessMingXi
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Vbep
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
SampleApplicationProcessMingXi
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:
Vbep
:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
select
SampleClosingProcessMingXi
CheckByDelete
()
{
public
void
select
Vbpa
CheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
);
SampleClosingProcessMingXi
build
=
SampleClosingProcessMingXi
.
builder
().
rowNum
(
rowNum
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:
Vbpa
:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:
Vbpa
:rowNum"
);
Vbpa
build
=
Vbpa
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
SampleClosingProcessMingXi
>
list
=
gpMapper
.
selectSampleClosingProcessMingXi
Check
(
build
);
// 从数仓中查询一组数据
List
<
Vbpa
>
list
=
gpMapper
.
selectVbpa
Check
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbpa
:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
SampleClosingProcessMingXi
source
=
crmMapper
.
selectSampleClosingProcessMingXi
ById
(
target
);
// 根据主键查询源库中的数据
Vbpa
source
=
sapMapper
.
selectVbpa
ById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
delete
SampleClosingProcessMingXi
(
target
);
// 删除数仓中的数据
gpMapper
.
delete
Vbpa
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
SampleClosingProcessMingXi
:rowNum"
,
target
.
getRowNum
());
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:
Vbpa
:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"select
SampleClosingProcessMingXi
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
log
.
info
(
String
.
format
(
"select
Vbpa
checkDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:SampleClosingProcessMingXi:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbpa:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbrkCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Vbrk:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Vbrk:rowNum"
);
Vbrk
build
=
Vbrk
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbrk
>
list
=
gpMapper
.
selectVbrkCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrk:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbrk
source
=
sapMapper
.
selectVbrkById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteVbrk
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrk:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbrkcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbrk:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbrpCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Vbrp:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Vbrp:rowNum"
);
Vbrp
build
=
Vbrp
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Vbrp
>
list
=
gpMapper
.
selectVbrpCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrp:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Vbrp
source
=
sapMapper
.
selectVbrpById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteVbrp
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Vbrp:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbrpcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbrp:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSysSAPreturnNoCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
src/main/java/com/huazheng/project/greenplum/service/impl/CheckUpdateServiceImpl.java
浏览文件 @
17551679
...
...
@@ -94,18 +94,11 @@ public class CheckUpdateServiceImpl {
selectAufkCheckByUpdate
();
selectBkpfCheckByUpdate
();
selectKna1CheckByUpdate
();
selectLikpCheckUpdate
();
selectLipsCheckUpdate
();
selectPa0002CheckUpdate
();
selectVbakCheckUpdate
();
selectVbrkCheckUpdate
();
selectZsd06CheckUpdate
();
selectZsdfhzlCheckUpdate
();
selectMaraCheckUpdate
();
selectSalesContractProcessCheckUpdate
();
selectSalesForecastProcessCheckUpdate
();
selectSampleApplicationProcessCheckUpdate
();
selectSampleClosingProcessCheckUpdate
();
selectHandoverCheckUpdate
();
selectHandoverTaskCheckUpdate
();
selectTransformHistoryNodeCheckUpdate
();
...
...
@@ -337,128 +330,7 @@ public class CheckUpdateServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Kna1:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectLikpCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Likp:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Likp:rowids"
));
Likp
build
=
Likp
.
builder
().
rowids
(
rowids
).
build
();
List
<
Likp
>
slist
=
sapMapper
.
selectLikpCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Likp:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Likp
target
=
gpMapper
.
selectLikp
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
String
wadat_ist
=
source
.
getWadat_ist
();
String
lfuhr
=
source
.
getLfuhr
();
if
(
"00000000"
.
equals
(
wadat_ist
))
{
source
.
setWadat_ist2lfuhr
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
wadat_ist
+
lfuhr
,
"yyyyMMddHHmmss"
);
source
.
setWadat_ist2lfuhr
(
date
);
}
source
.
setErdat1
(
SomeUtils
.
caDate
(
source
.
getErdat
()));
// 日期00000000格式转换,已处理异常
source
.
setWadat_ist1
(
SomeUtils
.
caDate
(
source
.
getWadat_ist
()));
// 日期00000000格式转换,已处理异常
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateLikp
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Likp:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLikpcheckUpdate --> rowNum:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Likp:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectLipsCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Lips:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Lips:rowids"
));
Lips
build
=
Lips
.
builder
().
rowids
(
rowids
).
build
();
List
<
Lips
>
slist
=
sapMapper
.
selectLipsCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Lips:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Lips
target
=
gpMapper
.
selectLips
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
if
(
source
.
getErdat
()
!=
null
&&
source
.
getErzet
()
!=
null
)
{
String
erdat2
=
new
StringBuffer
(
source
.
getErdat
()).
insert
(
4
,
"-"
).
insert
(
7
,
"-"
).
toString
();
String
erzet2
=
new
StringBuffer
(
source
.
getErzet
()).
insert
(
2
,
":"
).
insert
(
5
,
":"
).
toString
();
String
dateStr
=
erdat2
+
" "
+
erzet2
;
Date
date
=
DateUtil
.
parse
(
dateStr
);
source
.
setErdat1
(
date
);
source
.
setErdat2
(
date
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateLips
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
Vbuk
>
sVbukList
=
sapMapper
.
cascadeVbukByLips
(
source
);
// 级联查询源库afko表
for
(
Vbuk
sVbuk
:
sVbukList
)
{
Vbuk
tVbuk
=
gpMapper
.
selectVbuk
(
sVbuk
);
// 查询目标库中afko表
cascadeVbukCheckByUpdate
(
sVbuk
,
tVbuk
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Lips:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLipscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Lips:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectPa0002CheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
@@ -513,124 +385,7 @@ public class CheckUpdateServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Pa0002:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbakCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Vbak:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Vbak:rowids"
));
Vbak
build
=
Vbak
.
builder
().
rowids
(
rowids
).
build
();
List
<
Vbak
>
slist
=
sapMapper
.
selectVbakCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbak:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Vbak
target
=
gpMapper
.
selectVbak
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
source
.
setAudat1
(
SomeUtils
.
caDate
(
source
.
getAudat
()));
// 日期00000000格式转换,已处理异常
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateVbak
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
Konv
>
sKonvList
=
sapMapper
.
cascadeKonvByVbak
(
source
);
// 级联查询源库afko表
for
(
Konv
sKonv
:
sKonvList
)
{
Konv
tKonv
=
gpMapper
.
selectKonv
(
sKonv
);
// 查询目标库中afko表
cascadeKonvCheckByUpdate
(
sKonv
,
tKonv
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbak:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbakcheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Vbak:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbrkCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Vbrk:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Vbrk:rowids"
));
Vbrk
build
=
Vbrk
.
builder
().
rowids
(
rowids
).
build
();
List
<
Vbrk
>
slist
=
sapMapper
.
selectVbrkCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbrk:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Vbrk
target
=
gpMapper
.
selectVbrk
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
if
(
source
.
getFkdat
()
!=
null
)
{
String
erdat2
=
new
StringBuffer
(
source
.
getFkdat
()).
insert
(
4
,
"-"
).
insert
(
7
,
"-"
).
toString
();
Date
date
=
DateUtil
.
parse
(
erdat2
);
source
.
setFkdat1
(
date
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateVbrk
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
Vbrp
>
sVbrpList
=
sapMapper
.
cascadeVbrpByVbrk
(
source
);
// 级联查询源库afko表
for
(
Vbrp
sVbrp
:
sVbrpList
)
{
Vbrp
tVbrp
=
gpMapper
.
selectVbrp
(
sVbrp
);
// 查询目标库中afko表
cascadeVbrpCheckByUpdate
(
sVbrp
,
tVbrp
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbrk:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbrkcheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Vbrk:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectZsd06CheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
@@ -1177,71 +932,22 @@ public class CheckUpdateServiceImpl {
}
}
public
void
selectSalesContractProcessCheckUpdate
()
{
public
void
selectSalesForecastProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Sales
Contrac
tProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:Sales
Contrac
tProcess:rowids"
);
Sales
ContractProcess
build
=
SalesContrac
tProcess
.
builder
().
id
(
rowids
).
build
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Sales
Forecas
tProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:Sales
Forecas
tProcess:rowids"
);
Sales
ForecastProcess
build
=
SalesForecas
tProcess
.
builder
().
id
(
rowids
).
build
();
List
<
Sales
ContractProcess
>
slist
=
crmMapper
.
selectSalesContrac
tProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
List
<
Sales
ForecastProcess
>
slist
=
crmMapper
.
selectSalesForecas
tProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Sales
Contrac
tProcess:rowids"
,
"0"
);
// 计数器复位
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Sales
Forecas
tProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SalesContractProcess
target
=
gpMapper
.
selectSalesContractProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
while
(
true
)
{
try
{
gpMapper
.
updateSalesContractProcess
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
SalesContractProcessMX
>
sSalesContractProcessMXList
=
crmMapper
.
cascadeSalesContractProcessMXBySalesContractProcess
(
source
);
// 级联查询源库afko表
for
(
SalesContractProcessMX
sSalesContractProcessMX
:
sSalesContractProcessMXList
)
{
SalesContractProcessMX
tSalesContractProcessMX
=
gpMapper
.
selectSalesContractProcessMX
(
sSalesContractProcessMX
);
// 查询目标库中afko表
cascadeSalesContractProcessMXCheckByUpdate
(
sSalesContractProcessMX
,
tSalesContractProcessMX
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SalesContractProcess:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSalesContractProcesscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SalesContractProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSalesForecastProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:SalesForecastProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:SalesForecastProcess:rowids"
);
SalesForecastProcess
build
=
SalesForecastProcess
.
builder
().
id
(
rowids
).
build
();
List
<
SalesForecastProcess
>
slist
=
crmMapper
.
selectSalesForecastProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SalesForecastProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SalesForecastProcess
target
=
gpMapper
.
selectSalesForecastProcess
(
source
);
// 根据主键查询源库中的数据
SalesForecastProcess
target
=
gpMapper
.
selectSalesForecastProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
...
...
@@ -1295,119 +1001,7 @@ public class CheckUpdateServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SalesForecastProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSampleApplicationProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
);
SampleApplicationProcess
build
=
SampleApplicationProcess
.
builder
().
id
(
rowids
).
build
();
List
<
SampleApplicationProcess
>
slist
=
crmMapper
.
selectSampleApplicationProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SampleApplicationProcess
target
=
gpMapper
.
selectSampleApplicationProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
String
pcbcs
=
source
.
getPCBCS
();
String
chanPinYY
=
source
.
getChanPinYY
();
if
(
StrUtil
.
isBlank
(
pcbcs
)
||
StrUtil
.
isBlank
(
chanPinYY
))
{
source
.
setPCBCS2chanPinYY
(
null
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateSampleApplicationProcess
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
SampleApplicationProcessMingXi
>
sSampleApplicationProcessMingXiList
=
crmMapper
.
cascadeSampleApplicationProcessMingXiBySampleApplicationProcess
(
source
);
// 级联查询源库afko表
for
(
SampleApplicationProcessMingXi
sSampleApplicationProcessMingXi
:
sSampleApplicationProcessMingXiList
)
{
SampleApplicationProcessMingXi
tSampleApplicationProcessMingXi
=
gpMapper
.
selectSampleApplicationProcessMingXi
(
sSampleApplicationProcessMingXi
);
// 查询目标库中afko表
cascadeSampleApplicationProcessMingXiCheckByUpdate
(
sSampleApplicationProcessMingXi
,
tSampleApplicationProcessMingXi
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSampleApplicationProcesscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SampleApplicationProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSampleClosingProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
);
SampleClosingProcess
build
=
SampleClosingProcess
.
builder
().
id
(
rowids
).
build
();
List
<
SampleClosingProcess
>
slist
=
crmMapper
.
selectSampleClosingProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SampleClosingProcess
target
=
gpMapper
.
selectSampleClosingProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
if
(
NumberUtil
.
isNumber
(
source
.
getYangPinSQSLH
()))
{
int
yangPinSQSLHi
=
Integer
.
parseInt
(
source
.
getYangPinSQSLH
());
source
.
setYangPinSQSLHi
(
yangPinSQSLHi
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateSampleClosingProcess
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
SampleClosingProcessMingXi
>
sSampleClosingProcessMingXiList
=
crmMapper
.
cascadeSampleClosingProcessMingXiBySampleClosingProcess
(
source
);
// 级联查询源库afko表
for
(
SampleClosingProcessMingXi
sSampleClosingProcessMingXi
:
sSampleClosingProcessMingXiList
)
{
SampleClosingProcessMingXi
tSampleClosingProcessMingXi
=
gpMapper
.
selectSampleClosingProcessMingXi
(
sSampleClosingProcessMingXi
);
// 查询目标库中afko表
cascadeSampleClosingProcessMingXiCheckByUpdate
(
sSampleClosingProcessMingXi
,
tSampleClosingProcessMingXi
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSampleClosingProcesscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SampleClosingProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
// 所属selectSalesContractProcessCheckUpdate的级联
private
void
cascadeSalesContractProcessMXCheckByUpdate
(
SalesContractProcessMX
source
,
SalesContractProcessMX
target
)
{
...
...
@@ -1678,6 +1272,7 @@ public class CheckUpdateServiceImpl {
}
}
// 独立的
public
void
selectVbapCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
@@ -1981,4 +1576,410 @@ public class CheckUpdateServiceImpl {
}
}
// 独立的
public
void
selectLikpCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Likp:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Likp:rowids"
));
Likp
build
=
Likp
.
builder
().
rowids
(
rowids
).
build
();
List
<
Likp
>
slist
=
sapMapper
.
selectLikpCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Likp:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Likp
target
=
gpMapper
.
selectLikp
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
String
wadat_ist
=
source
.
getWadat_ist
();
String
lfuhr
=
source
.
getLfuhr
();
if
(
"00000000"
.
equals
(
wadat_ist
))
{
source
.
setWadat_ist2lfuhr
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
wadat_ist
+
lfuhr
,
"yyyyMMddHHmmss"
);
source
.
setWadat_ist2lfuhr
(
date
);
}
source
.
setErdat1
(
SomeUtils
.
caDate
(
source
.
getErdat
()));
// 日期00000000格式转换,已处理异常
source
.
setWadat_ist1
(
SomeUtils
.
caDate
(
source
.
getWadat_ist
()));
// 日期00000000格式转换,已处理异常
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateLikp
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Likp:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLikpcheckUpdate --> rowNum:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Likp:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectLipsCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Lips:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Lips:rowids"
));
Lips
build
=
Lips
.
builder
().
rowids
(
rowids
).
build
();
List
<
Lips
>
slist
=
sapMapper
.
selectLipsCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Lips:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Lips
target
=
gpMapper
.
selectLips
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
if
(
source
.
getErdat
()
!=
null
&&
source
.
getErzet
()
!=
null
)
{
String
erdat2
=
new
StringBuffer
(
source
.
getErdat
()).
insert
(
4
,
"-"
).
insert
(
7
,
"-"
).
toString
();
String
erzet2
=
new
StringBuffer
(
source
.
getErzet
()).
insert
(
2
,
":"
).
insert
(
5
,
":"
).
toString
();
String
dateStr
=
erdat2
+
" "
+
erzet2
;
Date
date
=
DateUtil
.
parse
(
dateStr
);
source
.
setErdat1
(
date
);
source
.
setErdat2
(
date
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateLips
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
Vbuk
>
sVbukList
=
sapMapper
.
cascadeVbukByLips
(
source
);
// 级联查询源库afko表
for
(
Vbuk
sVbuk
:
sVbukList
)
{
Vbuk
tVbuk
=
gpMapper
.
selectVbuk
(
sVbuk
);
// 查询目标库中afko表
cascadeVbukCheckByUpdate
(
sVbuk
,
tVbuk
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Lips:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectLipscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Lips:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbakCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Vbak:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Vbak:rowids"
));
Vbak
build
=
Vbak
.
builder
().
rowids
(
rowids
).
build
();
List
<
Vbak
>
slist
=
sapMapper
.
selectVbakCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbak:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Vbak
target
=
gpMapper
.
selectVbak
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
source
.
setAudat1
(
SomeUtils
.
caDate
(
source
.
getAudat
()));
// 日期00000000格式转换,已处理异常
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateVbak
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
Konv
>
sKonvList
=
sapMapper
.
cascadeKonvByVbak
(
source
);
// 级联查询源库afko表
for
(
Konv
sKonv
:
sKonvList
)
{
Konv
tKonv
=
gpMapper
.
selectKonv
(
sKonv
);
// 查询目标库中afko表
cascadeKonvCheckByUpdate
(
sKonv
,
tKonv
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbak:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbakcheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Vbak:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectVbrkCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:Vbrk:rowids"
,
"0"
);
Long
rowids
=
Long
.
parseLong
(
opsForValue
.
get
(
"huazheng:checkUpdate:Vbrk:rowids"
));
Vbrk
build
=
Vbrk
.
builder
().
rowids
(
rowids
).
build
();
List
<
Vbrk
>
slist
=
sapMapper
.
selectVbrkCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
// rowid已完成,则转为由更新时间字段开始同步
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbrk:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
Vbrk
target
=
gpMapper
.
selectVbrk
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
Long
srowids
=
source
.
getRowids
();
if
(
target
!=
null
)
{
source
.
setRowids
(
null
);
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
if
(
source
.
getFkdat
()
!=
null
)
{
String
erdat2
=
new
StringBuffer
(
source
.
getFkdat
()).
insert
(
4
,
"-"
).
insert
(
7
,
"-"
).
toString
();
Date
date
=
DateUtil
.
parse
(
erdat2
);
source
.
setFkdat1
(
date
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateVbrk
(
source
);
// 更新数据到数仓中
operator
=
"update"
;
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
Vbrp
>
sVbrpList
=
sapMapper
.
cascadeVbrpByVbrk
(
source
);
// 级联查询源库afko表
for
(
Vbrp
sVbrp
:
sVbrpList
)
{
Vbrp
tVbrp
=
gpMapper
.
selectVbrp
(
sVbrp
);
// 查询目标库中afko表
cascadeVbrpCheckByUpdate
(
sVbrp
,
tVbrp
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:Vbrk:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectVbrkcheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Vbrk:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSalesContractProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:SalesContractProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:SalesContractProcess:rowids"
);
SalesContractProcess
build
=
SalesContractProcess
.
builder
().
id
(
rowids
).
build
();
List
<
SalesContractProcess
>
slist
=
crmMapper
.
selectSalesContractProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SalesContractProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SalesContractProcess
target
=
gpMapper
.
selectSalesContractProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
while
(
true
)
{
try
{
gpMapper
.
updateSalesContractProcess
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
SalesContractProcessMX
>
sSalesContractProcessMXList
=
crmMapper
.
cascadeSalesContractProcessMXBySalesContractProcess
(
source
);
// 级联查询源库afko表
for
(
SalesContractProcessMX
sSalesContractProcessMX
:
sSalesContractProcessMXList
)
{
SalesContractProcessMX
tSalesContractProcessMX
=
gpMapper
.
selectSalesContractProcessMX
(
sSalesContractProcessMX
);
// 查询目标库中afko表
cascadeSalesContractProcessMXCheckByUpdate
(
sSalesContractProcessMX
,
tSalesContractProcessMX
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SalesContractProcess:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSalesContractProcesscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SalesContractProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSampleApplicationProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
);
SampleApplicationProcess
build
=
SampleApplicationProcess
.
builder
().
id
(
rowids
).
build
();
List
<
SampleApplicationProcess
>
slist
=
crmMapper
.
selectSampleApplicationProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SampleApplicationProcess
target
=
gpMapper
.
selectSampleApplicationProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
String
pcbcs
=
source
.
getPCBCS
();
String
chanPinYY
=
source
.
getChanPinYY
();
if
(
StrUtil
.
isBlank
(
pcbcs
)
||
StrUtil
.
isBlank
(
chanPinYY
))
{
source
.
setPCBCS2chanPinYY
(
null
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateSampleApplicationProcess
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
SampleApplicationProcessMingXi
>
sSampleApplicationProcessMingXiList
=
crmMapper
.
cascadeSampleApplicationProcessMingXiBySampleApplicationProcess
(
source
);
// 级联查询源库afko表
for
(
SampleApplicationProcessMingXi
sSampleApplicationProcessMingXi
:
sSampleApplicationProcessMingXiList
)
{
SampleApplicationProcessMingXi
tSampleApplicationProcessMingXi
=
gpMapper
.
selectSampleApplicationProcessMingXi
(
sSampleApplicationProcessMingXi
);
// 查询目标库中afko表
cascadeSampleApplicationProcessMingXiCheckByUpdate
(
sSampleApplicationProcessMingXi
,
tSampleApplicationProcessMingXi
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleApplicationProcess:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSampleApplicationProcesscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SampleApplicationProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectSampleClosingProcessCheckUpdate
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
,
"0"
);
String
rowids
=
opsForValue
.
get
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
);
SampleClosingProcess
build
=
SampleClosingProcess
.
builder
().
id
(
rowids
).
build
();
List
<
SampleClosingProcess
>
slist
=
crmMapper
.
selectSampleClosingProcessCheckByUpdate
(
build
);
// 从数仓中查询一组数据
if
(
slist
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
slist
.
forEach
(
source
->
{
// 遍历要检查的数据
SampleClosingProcess
target
=
gpMapper
.
selectSampleClosingProcess
(
source
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
String
srowids
=
source
.
getId
();
if
(
target
!=
null
)
{
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
if
(
NumberUtil
.
isNumber
(
source
.
getYangPinSQSLH
()))
{
int
yangPinSQSLHi
=
Integer
.
parseInt
(
source
.
getYangPinSQSLH
());
source
.
setYangPinSQSLHi
(
yangPinSQSLHi
);
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateSampleClosingProcess
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
// 级联更新业务
List
<
SampleClosingProcessMingXi
>
sSampleClosingProcessMingXiList
=
crmMapper
.
cascadeSampleClosingProcessMingXiBySampleClosingProcess
(
source
);
// 级联查询源库afko表
for
(
SampleClosingProcessMingXi
sSampleClosingProcessMingXi
:
sSampleClosingProcessMingXiList
)
{
SampleClosingProcessMingXi
tSampleClosingProcessMingXi
=
gpMapper
.
selectSampleClosingProcessMingXi
(
sSampleClosingProcessMingXi
);
// 查询目标库中afko表
cascadeSampleClosingProcessMingXiCheckByUpdate
(
sSampleClosingProcessMingXi
,
tSampleClosingProcessMingXi
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdate:SampleClosingProcess:rowids"
,
srowids
.
toString
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectSampleClosingProcesscheckUpdate --> rowids:%s, operator:%s"
,
srowids
.
toString
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:SampleClosingProcess:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
}
src/main/java/com/huazheng/project/greenplum/service/impl/DeleteUpdateJobServiceImpl.java
浏览文件 @
17551679
...
...
@@ -789,10 +789,10 @@ public class DeleteUpdateJobServiceImpl {
}
public
void
checkJob8
()
{
selectTasksCheck
();
selectPersonCompCheck
();
}
private
void
selectTasksCheck
()
{
//独立的
public
void
selectTasksCheck
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:check:Tasks:rowNum"
,
"0"
);
...
...
src/main/java/com/huazheng/project/greenplum/service/impl/JobServiceImpl.java
浏览文件 @
17551679
...
...
@@ -110,31 +110,23 @@ public class JobServiceImpl {
// ===================== sapMapper rowids =====================
public
void
checkJob1
()
{
selectVbapNew
();
selectBsidNew
();
selectBsadNew
();
selectPa0002New
();
selectVbpaNew
();
selectTvkbtNew
();
selectAufmNew
();
selectVbrkNew
();
selectVbrpNew
();
selectS066New
();
selectS067New
();
selectVbukNew
();
selectLikpNew
();
selectKonvNew
();
selectLipsNew
();
selectAfkoNew
();
selectAfpoNew
();
selectAfvcNew
();
selectAuspNew
();
selectAfruNew
();
selectTspatNew
();
selectZpoeditNew
();
selectMkpfNew
();
selectVbepNew
();
selectT023tNew
();
selectKna1New
();
selectKnvvNew
();
...
...
@@ -143,37 +135,13 @@ public class JobServiceImpl {
selectMaktNew
();
selectZsd06New
();
selectZmdpcNew
();
selectVbakNew
();
selectAufkNew
();
selectT001wNew
();
selectMskaNew
();
selectZsdfhzlNew
();
selectKnvpNew
();
}
private
void
selectVbapNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:vbap:sendcount"
,
"huazheng:vbap:rowids"
,
"huazheng:list:vbap"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:vbap:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:vbap:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:vbap:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:vbap:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:vbap:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:vbap:rowids"
);
// 标记rowids
Vbap
vbap
=
Vbap
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbap
>
list
=
sapMapper
.
selectVbapNew
(
vbap
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
selectBkpfNew
();
selectMsegNew
();
}
private
void
selectBsidNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
...
...
@@ -250,31 +218,6 @@ public class JobServiceImpl {
}
}
}
private
void
selectVbpaNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbpa:sendcount"
,
"huazheng:Vbpa:rowids"
,
"huazheng:list:Vbpa"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbpa:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbpa:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbpa:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbpa:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbpa:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbpa:rowids"
);
// 标记id
Vbpa
vbpa
=
Vbpa
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbpa
>
list
=
sapMapper
.
selectVbpaNew
(
vbpa
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectTvkbtNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -325,56 +268,6 @@ public class JobServiceImpl {
}
}
}
private
void
selectVbrkNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbrk:sendcount"
,
"huazheng:Vbrk:rowids"
,
"huazheng:list:Vbrk"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbrk:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrk:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrk:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrk:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrk:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbrk:rowids"
);
// 标记id
Vbrk
vbrk
=
Vbrk
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbrk
>
list
=
sapMapper
.
selectVbrkNew
(
vbrk
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectVbrpNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbrp:sendcount"
,
"huazheng:Vbrp:rowids"
,
"huazheng:list:Vbrp"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbrp:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrp:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrp:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrp:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrp:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbrp:rowids"
);
// 标记id
Vbrp
vbrp
=
Vbrp
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbrp
>
list
=
sapMapper
.
selectVbrpNew
(
vbrp
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectS066New
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -450,39 +343,6 @@ public class JobServiceImpl {
}
}
}
private
void
selectLikpNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Likp:sendcount"
,
"huazheng:Likp:rowids"
,
"huazheng:list:Likp"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Likp:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Likp:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Likp:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Likp:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Likp:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Likp:rowids"
);
// 标记id
Likp
likp
=
Likp
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Likp
>
list
=
sapMapper
.
selectLikpNew
(
likp
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
String
wadat_ist
=
item
.
getWadat_ist
();
String
lfuhr
=
item
.
getLfuhr
();
if
(
"00000000"
.
equals
(
wadat_ist
))
{
item
.
setWadat_ist2lfuhr
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
wadat_ist
+
lfuhr
,
"yyyyMMddHHmmss"
);
item
.
setWadat_ist2lfuhr
(
date
);
}
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectKonvNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -508,31 +368,6 @@ public class JobServiceImpl {
}
}
}
private
void
selectLipsNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Lips:sendcount"
,
"huazheng:Lips:rowids"
,
"huazheng:list:Lips"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Lips:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Lips:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Lips:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Lips:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Lips:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Lips:rowids"
);
// 标记id
Lips
lips
=
Lips
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Lips
>
list
=
sapMapper
.
selectLipsNew
(
lips
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectAfkoNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -583,47 +418,6 @@ public class JobServiceImpl {
}
}
}
public
void
selectBkpfNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Bkpf:sendcount"
,
"huazheng:Bkpf:rowids"
,
"huazheng:list:Bkpf"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Bkpf:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Bkpf:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Bkpf:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Bkpf:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Bkpf:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Bkpf:rowids"
);
// 标记id
Bkpf
bkpf
=
Bkpf
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Bkpf
>
list
=
sapMapper
.
selectBkpfNew
(
bkpf
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
String
aedat
=
item
.
getAedat
();
if
(
"00000000"
.
equals
(
aedat
))
{
item
.
setAedat
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
aedat
,
"yyyyMMdd"
);
String
format
=
DateUtil
.
format
(
date
,
"yyyy-MM-dd"
);
item
.
setAedat
(
format
);
}
String
cpudt
=
item
.
getCpudt
();
String
cputm
=
item
.
getCputm
();
if
(
"00000000"
.
equals
(
cpudt
))
{
item
.
setCpudt_cputm
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
cpudt
+
cputm
,
"yyyyMMddHHmmss"
);
item
.
setCpudt_cputm
(
date
);
}
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectKnvpNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -749,31 +543,6 @@ public class JobServiceImpl {
}
}
}
public
void
selectMsegNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Mseg:sendcount"
,
"huazheng:Mseg:rowids"
,
"huazheng:list:Mseg"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Mseg:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Mseg:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Mseg:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Mseg:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Mseg:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Mseg:rowids"
);
// 标记id
Mseg
mseg
=
Mseg
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Mseg
>
list
=
sapMapper
.
selectMsegNew
(
mseg
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectAuspNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -824,31 +593,6 @@ public class JobServiceImpl {
}
}
}
private
void
selectVbepNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbep:sendcount"
,
"huazheng:Vbep:rowids"
,
"huazheng:list:Vbep"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbep:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbep:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbep:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbep:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbep:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbep:rowids"
);
// 标记id
Vbep
vbep
=
Vbep
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbep
>
list
=
sapMapper
.
selectVbepNew
(
vbep
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectT023tNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -1057,51 +801,18 @@ public class JobServiceImpl {
}
}
}
private
void
select
Vba
kNew
()
{
private
void
select
Auf
kNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:
Vbak:sendcount"
,
"huazheng:Vbak:rowids"
,
"huazheng:list:Vba
k"
);
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:
Aufk:sendcount"
,
"huazheng:Aufk:rowids"
,
"huazheng:list:Auf
k"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbak:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbak:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbak:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbak:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbak:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbak:rowids"
);
// 标记id
Vbak
vbak
=
Vbak
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbak
>
list
=
sapMapper
.
selectVbakNew
(
vbak
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
String
erdat
=
item
.
getErdat
();
String
erzet
=
item
.
getErzet
();
if
(
"00000000"
.
equals
(
erdat
))
{
item
.
setErdat2erzet
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
erdat
+
erzet
,
"yyyyMMddHHmmss"
);
item
.
setErdat2erzet
(
date
);
}
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectAufkNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Aufk:sendcount"
,
"huazheng:Aufk:rowids"
,
"huazheng:list:Aufk"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Aufk:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Aufk:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Aufk:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Aufk:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Aufk:receivecount"
));
opsForValue
.
setIfAbsent
(
"huazheng:Aufk:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Aufk:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Aufk:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Aufk:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Aufk:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Aufk:rowids"
);
// 标记id
Aufk
aufk
=
Aufk
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
...
...
@@ -1198,16 +909,293 @@ public class JobServiceImpl {
}
}
}
private
void
selectBkpfNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Bkpf:sendcount"
,
"huazheng:Bkpf:rowids"
,
"huazheng:list:Bkpf"
);
// ===================== crmMapper rowids =====================
public
void
checkJob2
()
{
selectSalesForecastProcessNew
();
selectSalesContractProcessNew
();
selectSampleApplicationProcessNew
();
selectSampleApplicationProcessMingXiNew
();
selectSampleClosingProcessNew
();
selectSampleClosingProcessMingXiNew
();
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Bkpf:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Bkpf:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Bkpf:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Bkpf:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Bkpf:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Bkpf:rowids"
);
// 标记id
Bkpf
bkpf
=
Bkpf
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Bkpf
>
list
=
sapMapper
.
selectBkpfNew
(
bkpf
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
String
aedat
=
item
.
getAedat
();
if
(
"00000000"
.
equals
(
aedat
))
{
item
.
setAedat
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
aedat
,
"yyyyMMdd"
);
String
format
=
DateUtil
.
format
(
date
,
"yyyy-MM-dd"
);
item
.
setAedat
(
format
);
}
String
cpudt
=
item
.
getCpudt
();
String
cputm
=
item
.
getCputm
();
if
(
"00000000"
.
equals
(
cpudt
))
{
item
.
setCpudt_cputm
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
cpudt
+
cputm
,
"yyyyMMddHHmmss"
);
item
.
setCpudt_cputm
(
date
);
}
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
private
void
selectMsegNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Mseg:sendcount"
,
"huazheng:Mseg:rowids"
,
"huazheng:list:Mseg"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Mseg:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Mseg:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Mseg:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Mseg:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Mseg:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Mseg:rowids"
);
// 标记id
Mseg
mseg
=
Mseg
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Mseg
>
list
=
sapMapper
.
selectMsegNew
(
mseg
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
// 独立的
public
void
selectVbepNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbep:sendcount"
,
"huazheng:Vbep:rowids"
,
"huazheng:list:Vbep"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbep:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbep:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbep:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbep:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbep:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbep:rowids"
);
// 标记id
Vbep
vbep
=
Vbep
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbep
>
list
=
sapMapper
.
selectVbepNew
(
vbep
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectVbapNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:vbap:sendcount"
,
"huazheng:vbap:rowids"
,
"huazheng:list:vbap"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:vbap:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:vbap:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:vbap:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:vbap:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:vbap:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:vbap:rowids"
);
// 标记rowids
Vbap
vbap
=
Vbap
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbap
>
list
=
sapMapper
.
selectVbapNew
(
vbap
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectVbpaNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbpa:sendcount"
,
"huazheng:Vbpa:rowids"
,
"huazheng:list:Vbpa"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbpa:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbpa:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbpa:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbpa:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbpa:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbpa:rowids"
);
// 标记id
Vbpa
vbpa
=
Vbpa
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbpa
>
list
=
sapMapper
.
selectVbpaNew
(
vbpa
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectVbrkNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbrk:sendcount"
,
"huazheng:Vbrk:rowids"
,
"huazheng:list:Vbrk"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbrk:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrk:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrk:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrk:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrk:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbrk:rowids"
);
// 标记id
Vbrk
vbrk
=
Vbrk
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbrk
>
list
=
sapMapper
.
selectVbrkNew
(
vbrk
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectVbrpNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbrp:sendcount"
,
"huazheng:Vbrp:rowids"
,
"huazheng:list:Vbrp"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbrp:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrp:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbrp:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrp:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbrp:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbrp:rowids"
);
// 标记id
Vbrp
vbrp
=
Vbrp
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbrp
>
list
=
sapMapper
.
selectVbrpNew
(
vbrp
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectVbakNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Vbak:sendcount"
,
"huazheng:Vbak:rowids"
,
"huazheng:list:Vbak"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Vbak:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbak:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Vbak:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbak:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Vbak:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Vbak:rowids"
);
// 标记id
Vbak
vbak
=
Vbak
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Vbak
>
list
=
sapMapper
.
selectVbakNew
(
vbak
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
String
erdat
=
item
.
getErdat
();
String
erzet
=
item
.
getErzet
();
if
(
"00000000"
.
equals
(
erdat
))
{
item
.
setErdat2erzet
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
erdat
+
erzet
,
"yyyyMMddHHmmss"
);
item
.
setErdat2erzet
(
date
);
}
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectLikpNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Likp:sendcount"
,
"huazheng:Likp:rowids"
,
"huazheng:list:Likp"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Likp:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Likp:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Likp:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Likp:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Likp:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Likp:rowids"
);
// 标记id
Likp
likp
=
Likp
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Likp
>
list
=
sapMapper
.
selectLikpNew
(
likp
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
String
wadat_ist
=
item
.
getWadat_ist
();
String
lfuhr
=
item
.
getLfuhr
();
if
(
"00000000"
.
equals
(
wadat_ist
))
{
item
.
setWadat_ist2lfuhr
(
null
);
}
else
{
Date
date
=
DateUtil
.
parse
(
wadat_ist
+
lfuhr
,
"yyyyMMddHHmmss"
);
item
.
setWadat_ist2lfuhr
(
date
);
}
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
public
void
selectLipsNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
List
<
String
>
keys
=
Arrays
.
asList
(
"huazheng:Lips:sendcount"
,
"huazheng:Lips:rowids"
,
"huazheng:list:Lips"
);
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:Lips:sendcount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Lips:receivecount"
,
"0"
);
// 不存在则创建,存在则么有操作
opsForValue
.
setIfAbsent
(
"huazheng:Lips:rowids"
,
"0"
);
// 不存在则创建,存在则么有操作
Long
sendcount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Lips:sendcount"
));
Long
receivecount
=
Long
.
valueOf
(
opsForValue
.
get
(
"huazheng:Lips:receivecount"
));
if
(
sendcount
-
receivecount
<=
20
)
{
// 如果发送数和消费数的差小于5则往队列中写数据
String
rowids
=
opsForValue
.
get
(
"huazheng:Lips:rowids"
);
// 标记id
Lips
lips
=
Lips
.
builder
().
rowids
(
Long
.
valueOf
(
rowids
)).
build
();
List
<
Lips
>
list
=
sapMapper
.
selectLipsNew
(
lips
);
if
(!
list
.
isEmpty
())
{
list
.
forEach
(
item
->
{
JSONObject
json
=
JSONUtil
.
parseObj
(
item
,
false
);
String
execute
=
redis1Template
.
execute
(
script
,
keys
,
item
.
getRowids
().
toString
(),
json
.
toString
());
log
.
info
(
"标记时间回写 --> "
+
execute
);
});
}
}
}
// ===================== crmMapper rowids =====================
// 独立的
public
void
selectSalesForecastProcessNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -1471,9 +1459,8 @@ public class JobServiceImpl {
public
void
checkJob4
()
{
selectTKeHuXiaoShouZZYeWuYNew
();
selectTKeHuNew
();
selectSysSAPreturnNoNew
();
}
p
ublic
void
selectTKeHuXiaoShouZZYeWuYNew
()
{
p
rivate
void
selectTKeHuXiaoShouZZYeWuYNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
...
...
@@ -1498,7 +1485,7 @@ public class JobServiceImpl {
}
}
}
p
ublic
void
selectTKeHuNew
()
{
p
rivate
void
selectTKeHuNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
script
.
setScriptSource
(
new
ResourceScriptSource
(
new
ClassPathResource
(
"luascript/vbap4send.lua"
)));
...
...
@@ -1523,6 +1510,8 @@ public class JobServiceImpl {
}
}
}
// 独立的
public
void
selectSysSAPreturnNoNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
@@ -1550,9 +1539,7 @@ public class JobServiceImpl {
}
// ===================== ultimusDBMapper rowids =====================
public
void
checkJob5
()
{
selectTasksNew
();
}
// 独立的
public
void
selectTasksNew
()
{
DefaultRedisScript
<
String
>
script
=
new
DefaultRedisScript
<
String
>();
script
.
setResultType
(
String
.
class
);
...
...
src/main/resources/spring-init.xml
浏览文件 @
17551679
...
...
@@ -556,7 +556,7 @@
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"checkJob
2
"
/>
<property
name=
"targetMethod"
value=
"checkJob
3
"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
...
...
@@ -565,16 +565,141 @@
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"checkJob
3
"
/>
<property
name=
"targetMethod"
value=
"checkJob
4
"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"checkJob4"
/>
<property
name=
"targetMethod"
value=
"selectVbepNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectVbapNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectVbpaNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectVbrkNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectVbrpNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectVbakNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectLikpNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectLipsNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectTasksNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectSysSAPreturnNoNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectSalesForecastProcessNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectSalesContractProcessNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectSampleApplicationProcessNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectSampleApplicationProcessMingXiNew"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
...
...
@@ -583,7 +708,7 @@
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"
checkJob5
"
/>
<property
name=
"targetMethod"
value=
"
selectSampleClosingProcessNew
"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
...
...
@@ -592,12 +717,17 @@
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"jobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"select
Mseg
New"
/>
<property
name=
"targetMethod"
value=
"select
SampleClosingProcessMingXi
New"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<!-- ========================== 更新流程job ========================== -->
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
...
...
@@ -671,24 +801,23 @@
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<!-- ========================== 独立的任务 ========================== -->
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"deleteUpdateJobServiceImpl"
/>
<property
name=
"targetMethod"
value=
"select
KnkkCheckUpdate
"
/>
<property
name=
"targetMethod"
value=
"select
TasksCheck
"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<!-- 新增流程 -->
<!-- ========================== 独立的任务 ========================== -->
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"
j
obServiceImpl"
/>
<property
name=
"targetMethod"
value=
"select
BkpfNew
"
/>
<property
name=
"targetObject"
ref=
"
deleteUpdateJ
obServiceImpl"
/>
<property
name=
"targetMethod"
value=
"select
KnkkCheckUpdate
"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
...
...
@@ -722,7 +851,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -730,8 +859,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -739,7 +868,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -749,7 +878,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -757,8 +886,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -766,7 +895,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -795,7 +924,7 @@
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -803,7 +932,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -813,7 +942,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -821,8 +950,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -830,7 +959,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
...
...
@@ -869,7 +998,7 @@
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkUpdateServiceImpl"
/>
...
...
@@ -877,7 +1006,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
...
...
@@ -927,7 +1056,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -935,8 +1064,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -944,7 +1073,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -954,7 +1083,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -962,8 +1091,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -971,7 +1100,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -1017,7 +1146,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1025,7 +1154,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -1081,7 +1210,7 @@
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1089,7 +1218,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -1099,7 +1228,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1107,8 +1236,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1116,7 +1245,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
...
...
@@ -1155,7 +1284,7 @@
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1163,7 +1292,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -1173,7 +1302,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1181,8 +1310,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1190,9 +1319,9 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1200,9 +1329,9 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1210,8 +1339,8 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1219,7 +1348,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
...
...
@@ -1229,7 +1358,7 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean> -->
<
!-- <
bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
...
...
@@ -1237,7 +1366,7 @@
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
-->
</bean>
<!-- 以上66个任务 -->
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论