Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
huazheng-project-flink
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
huazheng
huazheng-project-flink
Commits
3cc1f54f
提交
3cc1f54f
authored
11月 23, 2020
作者:
guofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
makt更新
上级
f40fcb48
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
171 行增加
和
112 行删除
+171
-112
CheckDeleteServiceImpl.java
...roject/greenplum/service/impl/CheckDeleteServiceImpl.java
+61
-1
CheckUpdateServiceImpl.java
...roject/greenplum/service/impl/CheckUpdateServiceImpl.java
+76
-1
DeleteUpdateJobServiceImpl.java
...ct/greenplum/service/impl/DeleteUpdateJobServiceImpl.java
+0
-104
SapMapper.java
...main/java/com/huazheng/project/hana/mapper/SapMapper.java
+2
-4
SapMapper_hana.xml
src/main/resources/mapper/hana/SapMapper_hana.xml
+12
-2
spring-init.xml
src/main/resources/spring-init.xml
+20
-0
没有找到文件。
src/main/java/com/huazheng/project/greenplum/service/impl/CheckDeleteServiceImpl.java
浏览文件 @
3cc1f54f
...
@@ -17,8 +17,10 @@ import com.huazheng.project.hana.model.Ausp;
...
@@ -17,8 +17,10 @@ import com.huazheng.project.hana.model.Ausp;
import
com.huazheng.project.hana.model.Bkpf
;
import
com.huazheng.project.hana.model.Bkpf
;
import
com.huazheng.project.hana.model.Kna1
;
import
com.huazheng.project.hana.model.Kna1
;
import
com.huazheng.project.hana.model.Knvv
;
import
com.huazheng.project.hana.model.Knvv
;
import
com.huazheng.project.hana.model.Konv
;
import
com.huazheng.project.hana.model.Likp
;
import
com.huazheng.project.hana.model.Likp
;
import
com.huazheng.project.hana.model.Lips
;
import
com.huazheng.project.hana.model.Lips
;
import
com.huazheng.project.hana.model.Makt
;
import
com.huazheng.project.hana.model.Mara
;
import
com.huazheng.project.hana.model.Mara
;
import
com.huazheng.project.hana.model.Pa0002
;
import
com.huazheng.project.hana.model.Pa0002
;
import
com.huazheng.project.hana.model.Vbak
;
import
com.huazheng.project.hana.model.Vbak
;
...
@@ -504,7 +506,6 @@ public class CheckDeleteServiceImpl {
...
@@ -504,7 +506,6 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Knvv:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Knvv:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
}
}
public
void
selectVbrpCheckByDelete
()
{
public
void
selectVbrpCheckByDelete
()
{
try
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
@@ -535,5 +536,64 @@ public class CheckDeleteServiceImpl {
...
@@ -535,5 +536,64 @@ public class CheckDeleteServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbrp:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Vbrp:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
}
}
public
void
selectKonvCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Konv:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Konv:rowNum"
);
Konv
build
=
Konv
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Konv
>
list
=
gpMapper
.
selectKonvCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Konv:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Konv
source
=
sapMapper
.
selectKonvById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteKonv
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Konv:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectKonvcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Konv:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
public
void
selectMaktCheckByDelete
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:checkDelete:Makt:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:checkDelete:Makt:rowNum"
);
Makt
build
=
Makt
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Makt
>
list
=
gpMapper
.
selectMaktCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Makt:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Makt
source
=
sapMapper
.
selectMaktById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteMakt
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDelete:Makt:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectMaktcheckDelete --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkDeleteError:Makt:rowNum"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
}
}
src/main/java/com/huazheng/project/greenplum/service/impl/CheckUpdateServiceImpl.java
浏览文件 @
3cc1f54f
...
@@ -18,8 +18,10 @@ import com.huazheng.project.hana.model.Ausp;
...
@@ -18,8 +18,10 @@ import com.huazheng.project.hana.model.Ausp;
import
com.huazheng.project.hana.model.Bkpf
;
import
com.huazheng.project.hana.model.Bkpf
;
import
com.huazheng.project.hana.model.Kna1
;
import
com.huazheng.project.hana.model.Kna1
;
import
com.huazheng.project.hana.model.Knvv
;
import
com.huazheng.project.hana.model.Knvv
;
import
com.huazheng.project.hana.model.Konv
;
import
com.huazheng.project.hana.model.Likp
;
import
com.huazheng.project.hana.model.Likp
;
import
com.huazheng.project.hana.model.Lips
;
import
com.huazheng.project.hana.model.Lips
;
import
com.huazheng.project.hana.model.Makt
;
import
com.huazheng.project.hana.model.Mara
;
import
com.huazheng.project.hana.model.Mara
;
import
com.huazheng.project.hana.model.Pa0002
;
import
com.huazheng.project.hana.model.Pa0002
;
import
com.huazheng.project.hana.model.Vbak
;
import
com.huazheng.project.hana.model.Vbak
;
...
@@ -451,6 +453,14 @@ public class CheckUpdateServiceImpl {
...
@@ -451,6 +453,14 @@ public class CheckUpdateServiceImpl {
ThreadUtil
.
safeSleep
(
500
);
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
);
ThreadUtil
.
safeSleep
(
500
);
}
}
}
}
...
@@ -692,6 +702,12 @@ public class CheckUpdateServiceImpl {
...
@@ -692,6 +702,12 @@ public class CheckUpdateServiceImpl {
cascadeAuspCheckByUpdate
(
sAusp
,
tAusp
);
// 级联更新afko表
cascadeAuspCheckByUpdate
(
sAusp
,
tAusp
);
// 级联更新afko表
}
}
List
<
Makt
>
sMaktList
=
sapMapper
.
cascadeMaktByMara
(
source
);
// 级联查询源库afko表
for
(
Makt
sMakt
:
sMaktList
)
{
Makt
tMakt
=
gpMapper
.
selectMakt
(
sMakt
);
// 查询目标库中afko表
cascadeMaktCheckByUpdate
(
sMakt
,
tMakt
);
// 级联更新afko表
}
ThreadUtil
.
safeSleep
(
500
);
ThreadUtil
.
safeSleep
(
500
);
}
}
}
}
...
@@ -704,7 +720,43 @@ public class CheckUpdateServiceImpl {
...
@@ -704,7 +720,43 @@ public class CheckUpdateServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Mara:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkUpdateError:Mara:rowids"
,
SomeUtils
.
getErrorInfoFromException
(
e
));
}
}
}
}
// 所属selectMaraCheckUpdate的级联
private
void
cascadeMaktCheckByUpdate
(
Makt
source
,
Makt
target
)
{
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
maktx
=
source
.
getMaktx
();
if
(
maktx
!=
null
&&
!
maktx
.
equals
(
""
))
{
String
[]
split
=
maktx
.
split
(
"-"
);
for
(
int
i
=
split
.
length
-
1
;
i
>=
0
;
i
--)
{
String
string
=
split
[
i
];
if
(
string
.
indexOf
(
"*"
)
!=
-
1
)
{
source
.
setMaktxSize
(
string
.
split
(
"\\*"
)[
0
]);
// 分割出尺寸数据
break
;
}
}
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateMakt
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
ThreadUtil
.
safeSleep
(
500
);
}
}
}
// 所属selectMaraCheckUpdate的级联
// 所属selectMaraCheckUpdate的级联
private
void
cascadeAuspCheckByUpdate
(
Ausp
source
,
Ausp
target
)
{
private
void
cascadeAuspCheckByUpdate
(
Ausp
source
,
Ausp
target
)
{
if
(
target
!=
null
)
{
// 目标库有数据
if
(
target
!=
null
)
{
// 目标库有数据
...
@@ -825,5 +877,28 @@ public class CheckUpdateServiceImpl {
...
@@ -825,5 +877,28 @@ public class CheckUpdateServiceImpl {
}
}
}
}
}
}
// 所属selectVbakCheckUpdate的级联
private
void
cascadeKonvCheckByUpdate
(
Konv
source
,
Konv
target
)
{
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
.
updateKonv
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
ThreadUtil
.
safeSleep
(
500
);
}
}
}
}
}
src/main/java/com/huazheng/project/greenplum/service/impl/DeleteUpdateJobServiceImpl.java
浏览文件 @
3cc1f54f
...
@@ -24,7 +24,6 @@ import com.huazheng.project.hana.model.Bsid;
...
@@ -24,7 +24,6 @@ import com.huazheng.project.hana.model.Bsid;
import
com.huazheng.project.hana.model.Kna1
;
import
com.huazheng.project.hana.model.Kna1
;
import
com.huazheng.project.hana.model.Knkk
;
import
com.huazheng.project.hana.model.Knkk
;
import
com.huazheng.project.hana.model.Knvp
;
import
com.huazheng.project.hana.model.Knvp
;
import
com.huazheng.project.hana.model.Konv
;
import
com.huazheng.project.hana.model.Likp
;
import
com.huazheng.project.hana.model.Likp
;
import
com.huazheng.project.hana.model.Makt
;
import
com.huazheng.project.hana.model.Makt
;
import
com.huazheng.project.hana.model.Mara
;
import
com.huazheng.project.hana.model.Mara
;
...
@@ -905,10 +904,7 @@ public class DeleteUpdateJobServiceImpl {
...
@@ -905,10 +904,7 @@ public class DeleteUpdateJobServiceImpl {
}
}
public
void
checkJob4
()
{
public
void
checkJob4
()
{
// selectKonvCheck(); // 21 注释掉
selectKnkkCheck
();
// 19
selectKnkkCheck
();
// 19
selectMaktCheck
();
// 24
selectMskaCheck
();
// 26
selectMskaCheck
();
// 26
selectS066Check
();
// 28
selectS066Check
();
// 28
selectS067Check
();
// 29
selectS067Check
();
// 29
...
@@ -1186,106 +1182,6 @@ public class DeleteUpdateJobServiceImpl {
...
@@ -1186,106 +1182,6 @@ public class DeleteUpdateJobServiceImpl {
redis1Template
.
opsForValue
().
set
(
"huazheng:checkError:Zpoedit:rowNum"
,
getErrorInfoFromException
(
e
));
redis1Template
.
opsForValue
().
set
(
"huazheng:checkError:Zpoedit:rowNum"
,
getErrorInfoFromException
(
e
));
}
}
}
}
// 数据量过大不再执行任务
private
void
selectKonvCheck
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:check:Konv:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:check:Konv:rowNum"
);
Konv
build
=
Konv
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Konv
>
list
=
gpMapper
.
selectKonvCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:check:Konv:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Konv
source
=
sapMapper
.
selectKonvById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteKonv
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
else
{
// 源库中有数据
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
.
updateKonv
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:check:Konv:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectKonvCheck --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkError:Konv:rowNum"
,
getErrorInfoFromException
(
e
));
}
}
private
void
selectMaktCheck
()
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
opsForValue
.
setIfAbsent
(
"huazheng:check:Makt:rowNum"
,
"0"
);
String
rowNum
=
opsForValue
.
get
(
"huazheng:check:Makt:rowNum"
);
Makt
build
=
Makt
.
builder
().
rowNum
(
rowNum
).
build
();
List
<
Makt
>
list
=
gpMapper
.
selectMaktCheck
(
build
);
// 从数仓中查询一组数据
if
(
list
.
size
()
==
0
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:check:Makt:rowNum"
,
"0"
);
// 计数器复位
ThreadUtil
.
sleep
(
1000
);
// 没有数据了,休眠一下
}
list
.
forEach
(
target
->
{
// 遍历要检查的数据
Makt
source
=
sapMapper
.
selectMaktById
(
target
);
// 根据主键查询源库中的数据
String
operator
=
"none"
;
if
(
source
==
null
)
{
// 如果源库中没有数据
gpMapper
.
deleteMakt
(
target
);
// 删除数仓中的数据
operator
=
"delete"
;
}
else
{
// 源库中有数据
String
shash
=
SecureUtil
.
md5
(
JSONUtil
.
toJsonStr
(
source
));
// 源库中数据的hash结果
String
thash
=
target
.
getHashResult
();
// 数仓中数据的hash结果
if
(!
shash
.
equals
(
thash
))
{
// 如果hash结果不一致
source
.
setHashResult
(
shash
);
// ===============================
String
maktx
=
source
.
getMaktx
();
if
(
maktx
!=
null
&&
!
maktx
.
equals
(
""
))
{
String
[]
split
=
maktx
.
split
(
"-"
);
for
(
int
i
=
split
.
length
-
1
;
i
>=
0
;
i
--)
{
String
string
=
split
[
i
];
if
(
string
.
indexOf
(
"*"
)
!=
-
1
)
{
source
.
setMaktxSize
(
string
.
split
(
"\\*"
)[
0
]);
// 分割出尺寸数据
break
;
}
}
}
// ===============================
while
(
true
)
{
try
{
gpMapper
.
updateMakt
(
source
);
// 更新数据到数仓中
break
;
}
catch
(
RuntimeException
e
)
{
log
.
error
(
e
.
getMessage
());
ThreadUtil
.
safeSleep
(
500
);
}
}
ThreadUtil
.
safeSleep
(
500
);
}
}
redis1Template
.
opsForValue
().
set
(
"huazheng:check:Makt:rowNum"
,
target
.
getRowNum
());
if
(!
operator
.
equals
(
"none"
))
{
log
.
info
(
String
.
format
(
"selectMaktCheck --> rowNum:%s, operator:%s"
,
target
.
getRowNum
(),
operator
));
}
});
}
catch
(
Exception
e
)
{
redis1Template
.
opsForValue
().
set
(
"huazheng:checkError:Makt:rowNum"
,
getErrorInfoFromException
(
e
));
}
}
private
void
selectMskaCheck
()
{
private
void
selectMskaCheck
()
{
try
{
try
{
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
ValueOperations
<
String
,
String
>
opsForValue
=
redis1Template
.
opsForValue
();
...
...
src/main/java/com/huazheng/project/hana/mapper/SapMapper.java
浏览文件 @
3cc1f54f
...
@@ -107,9 +107,8 @@ public interface SapMapper {
...
@@ -107,9 +107,8 @@ public interface SapMapper {
public
List
<
Knvv
>
cascadeKnvvByKna1
(
Kna1
kna1
);
public
List
<
Knvv
>
cascadeKnvvByKna1
(
Kna1
kna1
);
public
List
<
Vbrp
>
cascadeVbrpByVbrk
(
Vbrk
source
);
public
List
<
Vbrp
>
cascadeVbrpByVbrk
(
Vbrk
source
);
public
List
<
Ausp
>
cascadeAuspByMara
(
Mara
mara
);
public
List
<
Ausp
>
cascadeAuspByMara
(
Mara
mara
);
public
List
<
Konv
>
cascadeKonvByVbak
(
Vbak
vbak
);
public
List
<
Makt
>
cascadeMaktByMara
(
Mara
mara
);
// ......
// ......
...
@@ -149,6 +148,5 @@ public interface SapMapper {
...
@@ -149,6 +148,5 @@ public interface SapMapper {
public
Bsid
selectBsidById
(
Bsid
target
);
public
Bsid
selectBsidById
(
Bsid
target
);
public
Vbap
selectVbapById
(
Vbap
target
);
public
Vbap
selectVbapById
(
Vbap
target
);
public
Tvkbt
selectTvkbtById
(
Tvkbt
target
);
public
Tvkbt
selectTvkbtById
(
Tvkbt
target
);
}
}
src/main/resources/mapper/hana/SapMapper_hana.xml
浏览文件 @
3cc1f54f
...
@@ -339,7 +339,6 @@
...
@@ -339,7 +339,6 @@
where "$rowid$"
>
#{rowids} and aedat != '00000000' and aedat = CURRENT_DATE ${hana_mandt}
where "$rowid$"
>
#{rowids} and aedat != '00000000' and aedat = CURRENT_DATE ${hana_mandt}
order by "$rowid$"
order by "$rowid$"
</select>
</select>
<select
id=
"selectBkpfCheckByUpdate"
parameterType=
"Bkpf"
resultType=
"Bkpf"
>
<select
id=
"selectBkpfCheckByUpdate"
parameterType=
"Bkpf"
resultType=
"Bkpf"
>
select top 20 "$rowid$" as rowids,
select top 20 "$rowid$" as rowids,
mandt, bukrs, belnr, gjahr, blart, bldat, budat, monat, cpudt, cputm,
mandt, bukrs, belnr, gjahr, blart, bldat, budat, monat, cpudt, cputm,
...
@@ -460,7 +459,18 @@
...
@@ -460,7 +459,18 @@
from ${hana_user}.Vbrp
from ${hana_user}.Vbrp
where vbeln = #{vbeln} ${hana_mandt}
where vbeln = #{vbeln} ${hana_mandt}
</select>
</select>
<select
id=
"cascadeKonvByVbak"
parameterType=
"Vbak"
resultType=
"Konv"
>
select
mandt,knumv,kposn,stunr,zaehk,kntyp,kbetr
from ${hana_user}.konv
where knumv = #{knumv} ${hana_mandt}
</select>
<select
id=
"cascadeMaktByMara"
parameterType=
"Mara"
resultType=
"Makt"
>
select
matnr, mandt, spras, maktx
from ${hana_user}.Makt
where matnr = #{matnr} ${hana_mandt}
</select>
...
...
src/main/resources/spring-init.xml
浏览文件 @
3cc1f54f
...
@@ -951,6 +951,26 @@
...
@@ -951,6 +951,26 @@
</property>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectKonvCheckByDelete"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
<bean
class=
"org.springframework.scheduling.quartz.CronTriggerFactoryBean"
>
<property
name=
"jobDetail"
>
<bean
parent=
"methodJobDetail"
>
<property
name=
"targetObject"
ref=
"checkDeleteServiceImpl"
/>
<property
name=
"targetMethod"
value=
"selectMaktCheckByDelete"
/>
</bean>
</property>
<property
name=
"cronExpression"
value=
"* * * * * ?"
/>
</bean>
</list>
</list>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论