提交 bbbb0a87 作者: guofeng

vbak数据问题修复

上级 03054b82
......@@ -233,11 +233,11 @@ under the License.
<!-- <version>2.2.4.RELEASE</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
<dependency>
......
......@@ -3,6 +3,7 @@ package com.huazheng.project.greenplum.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
......@@ -1717,6 +1718,15 @@ public class CheckUpdateServiceImpl {
}
slist.forEach(source -> { // 遍历要检查的数据
Map<String, Object> joinItem = sapMapper.selectVbak4Join(source);
if (joinItem != null) { // join的查询替代方式
Object object = joinItem.get("pernr");
if (object != null) {
source.setPernr(object.toString());
}
}
Vbak target = gpMapper.selectVbak(source); // 根据主键查询源库中的数据
String operator = "none";
Long srowids = source.getRowids();
......
......@@ -5,6 +5,7 @@ import java.io.StringWriter;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
......@@ -1120,6 +1121,13 @@ public class JobServiceImpl {
List<Vbak> list = sapMapper.selectVbakNew(vbak);
if (!list.isEmpty()) {
list.forEach(item -> {
Map<String, Object> joinItem = sapMapper.selectVbak4Join(item);
if (joinItem != null) { // join的查询替代方式
Object object = joinItem.get("pernr");
if (object != null) {
item.setPernr(object.toString());
}
}
String erdat = item.getErdat();
String erzet = item.getErzet();
if ("00000000".equals(erdat)) {
......
package com.huazheng.project.hana.mapper;
import java.util.List;
import java.util.Map;
import com.huazheng.project.hana.model.Afko;
import com.huazheng.project.hana.model.Afpo;
......@@ -161,4 +162,8 @@ public interface SapMapper {
public Mkpf selectMkpfById(Mkpf target);
public Afru selectAfruById(Afru target);
public Aufm selectAufmById(Aufm target);
// vbak修改join连接后的子查询
public Map<String, Object> selectVbak4Join(Vbak target);
}
select count(1) from sapabap1.kna1 where updat = '00000000' union all
select count(1) from sapabap1.kna1 where updat != '00000000' union all
select count(1) from sapabap1.kna1 where updat is null;
select count(1) from sapabap1.vbak where mandt = '800' and audat = '20201212';
select audat, count(1) from sapabap1.vbak where audat >= '20201207' and audat <= '20201215' group by audat order by audat desc limit 100;
select "$rowid$" from sapabap1.vbak where mandt = '800' and vbeln = '0010078342';
select top 20 "$rowid$" as rowids,
mandt, pwerk, aufnr, reason
from sapabap1.Zpo_edit
where "$rowid$" > '20593' and mandt = '800'
order by "$rowid$";
a.vbeln, a.mandt, a.vbtyp, a.audat, a.waerk, a.kalsm, a.ctlpc, a.kunnr, a.bukrs_vf, a.bstnk,
a.bname, a.telf1, a.netwr, a.vkbur, a.knumv, a.vkorg, a.vtweg, a.kkber, a.auart, a.aedat, b.pernr,
a.erdat, a.erzet, a.spart
from ${hana_user}.vbak a
left join (
) b on a.vbeln = b.vbeln
where "$rowid$" &gt; #{rowids} and a.mandt = '800'
order by "$rowid$"
select count(1) from sapabap1.Zpo_edit where mandt = '800';
select * from sapdev.vbap limit 10;
select q.vbeln,r.pernr from ${hana_user}.vbap q
left join (
select vbeln,posnr,pernr from ${hana_user}.vbpa where mandt = '800' and pernr != '00000000' group by vbeln,posnr,pernr
) r on q.vbeln = r.vbeln and q.posnr = r.posnr
where q.mandt = '800' and r.pernr is not null and a.vbeln = '111'
group by q.vbeln,r.pernr
\ No newline at end of file
CREATE USER 'roma'@'%' IDENTIFIED BY 'password';
CREATE USER 'roma'@'%' IDENTIFIED BY 'password';
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'roma'@'%';
\ No newline at end of file
update vbap set hashresult = null;
update vbap set hashresult = null;
......@@ -15,7 +15,14 @@ com.huazheng.project.greenplum.service.impl.GPServiceImpl.sinkSysSAPreturnNo(Sys
发送端
"huazheng:SysSAPreturnNo:sendcount", "huazheng:SysSAPreturnNo:rowids", "huazheng:list:SysSAPreturnNo"
watch -n 1 redis-cli -n 1 --raw mget "huazheng:SysSAPreturnNo:sendcount", "huazheng:SysSAPreturnNo:rowids", "huazheng:list:SysSAPreturnNo"
watch -n 1 redis-cli -n 1 --raw mget "huazheng:Vbak:sendcount", "huazheng:Vbak:rowids", "huazheng:Vbak:sendcount"
接收端
"huazheng:SysSAPreturnNo:sendcount", "", "huazheng:list:SysSAPreturnNo", "huazheng:SysSAPreturnNo:receivecount"
redis-cli -n 1 --raw set "huazheng:Vbak:rowids" 107902
......@@ -275,17 +275,9 @@
<select id="selectVbakNew" parameterType="Vbak" resultType="Vbak">
select top 20 "$rowid$" as rowids,
a.vbeln, a.mandt, a.vbtyp, a.audat, a.waerk, a.kalsm, a.ctlpc, a.kunnr, a.bukrs_vf, a.bstnk,
a.bname, a.telf1, a.netwr, a.vkbur, a.knumv, a.vkorg, a.vtweg, a.kkber, a.auart, a.aedat, b.pernr,
a.bname, a.telf1, a.netwr, a.vkbur, a.knumv, a.vkorg, a.vtweg, a.kkber, a.auart, a.aedat,
a.erdat, a.erzet, a.spart
from ${hana_user}.vbak a
left join (
select q.vbeln,r.pernr from ${hana_user}.vbap q
left join (
select vbeln,posnr,pernr from ${hana_user}.vbpa where mandt = '800' and pernr != '00000000' group by vbeln,posnr,pernr
) r on q.vbeln = r.vbeln and q.posnr = r.posnr
where q.mandt = '800' and r.pernr is not null
group by q.vbeln,r.pernr
) b on a.vbeln = b.vbeln
where "$rowid$" &gt; #{rowids} and a.mandt = '800'
order by "$rowid$"
</select>
......@@ -379,17 +371,9 @@
<select id="selectVbakCheckByUpdate" parameterType="Vbak" resultType="Vbak">
select top 20 a."$rowid$" as rowids,
a.vbeln, a.mandt, a.vbtyp, a.audat, a.waerk, a.kalsm, a.ctlpc, a.kunnr, a.bukrs_vf, a.bstnk,
a.bname, a.telf1, a.netwr, a.vkbur, a.knumv, a.vkorg, a.vtweg, a.kkber, a.auart, a.aedat, b.pernr,
a.bname, a.telf1, a.netwr, a.vkbur, a.knumv, a.vkorg, a.vtweg, a.kkber, a.auart, a.aedat,
a.erdat, a.erzet, a.spart
from ${hana_user}.vbak a
left join (
select q.vbeln,r.pernr from ${hana_user}.vbap q
left join (
select vbeln,posnr,pernr from ${hana_user}.vbpa where mandt = '800' and pernr != '00000000' group by vbeln,posnr,pernr
) r on q.vbeln = r.vbeln and q.posnr = r.posnr
where q.mandt = '800' and r.pernr is not null
group by q.vbeln,r.pernr
) b on a.vbeln = b.vbeln
where "$rowid$" &gt; #{rowids} and a.aedat != '00000000' and a.aedat = CURRENT_DATE and a.mandt = '800'
order by "$rowid$"
</select>
......@@ -798,4 +782,20 @@
where mblnr = #{mblnr} and mandt = #{mandt} and mjahr = #{mjahr} and zeile = #{zeile}
</select>
<!-- vbak修改join连接后的子查询 -->
<select id="selectVbak4Join" parameterType="Vbak" resultType="map">
select top 1 q.vbeln,r.pernr from ${hana_user}.vbap q
left join (
select vbeln,posnr,pernr from ${hana_user}.vbpa where mandt = '800' and pernr != '00000000' group by vbeln,posnr,pernr
) r on q.vbeln = r.vbeln and q.posnr = r.posnr
where q.mandt = '800' and r.pernr is not null and q.vbeln = #{vbeln}
group by q.vbeln,r.pernr
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论