提交 ada585d5 作者: guofeng

ausp增量

上级 9b35de98
...@@ -115,20 +115,20 @@ public interface GPMapper { ...@@ -115,20 +115,20 @@ public interface GPMapper {
@Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr+','+#p0.zeile", unless="#result == null") @Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr+','+#p0.zeile", unless="#result == null")
public Mseg selectMseg(Mseg mseg); // 查询替代删除 public Mseg selectMseg(Mseg mseg); // 查询替代删除
public void insertMseg(Mseg element); public void insertMseg(Mseg element);
@CacheEvict(key = "'selectMseg'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr+','+#p0.zeile") // @CacheEvict(key = "'selectMseg'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr+','+#p0.zeile")
public void deleteMseg(Mseg item); // public void deleteMseg(Mseg item);
@CacheEvict(key = "'selectMseg'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr+','+#p0.zeile") // @CacheEvict(key = "'selectMseg'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr+','+#p0.zeile")
public void updateMseg(Mseg element); // public void updateMseg(Mseg element);
public List<Mseg> selectMsegCheck(Mseg build); // public List<Mseg> selectMsegCheck(Mseg build);
@Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr", unless="#result == null") @Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr", unless="#result == null")
public Mkpf selectMkpf(Mkpf mkpf); // 查询替代删除 public Mkpf selectMkpf(Mkpf mkpf); // 查询替代删除
public void insertMkpf(Mkpf element); public void insertMkpf(Mkpf element);
@CacheEvict(key = "'selectMkpf'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr") // @CacheEvict(key = "'selectMkpf'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr")
public void deleteMkpf(Mkpf item); // public void deleteMkpf(Mkpf item);
@CacheEvict(key = "'selectMkpf'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr") // @CacheEvict(key = "'selectMkpf'+':'+#p0.mandt+','+#p0.mblnr+','+#p0.mjahr")
public void updateMkpf(Mkpf element); // public void updateMkpf(Mkpf element);
public List<Mkpf> selectMkpfCheck(Mkpf build); // public List<Mkpf> selectMkpfCheck(Mkpf build);
@Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.aufnr", unless="#result == null") @Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.aufnr", unless="#result == null")
public Aufk selectAufk(Aufk aufk); // 查询替代删除 public Aufk selectAufk(Aufk aufk); // 查询替代删除
...@@ -215,12 +215,12 @@ public interface GPMapper { ...@@ -215,12 +215,12 @@ public interface GPMapper {
public void updateLikp(Likp element); public void updateLikp(Likp element);
public List<Likp> selectLikpCheck(Likp build); public List<Likp> selectLikpCheck(Likp build);
// @Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.bukrs+','+#p0.belnr+','+#p0.gjahr", unless="#result == null") @Cacheable(key = "#root.method.name+':'+#p0.mandt+','+#p0.bukrs+','+#p0.belnr+','+#p0.gjahr", unless="#result == null")
public Bkpf selectBkpf(Bkpf bkpf); // 查询替代删除 public Bkpf selectBkpf(Bkpf bkpf); // 查询替代删除
public void insertBkpf(Bkpf element); public void insertBkpf(Bkpf element);
// @CacheEvict(key = "'selectBkpf'+':'+#p0.mandt+','+#p0.bukrs+','+#p0.belnr+','+#p0.gjahr") @CacheEvict(key = "'selectBkpf'+':'+#p0.mandt+','+#p0.bukrs+','+#p0.belnr+','+#p0.gjahr")
public void deleteBkpf(Bkpf item); public void deleteBkpf(Bkpf item);
// @CacheEvict(key = "'selectBkpf'+':'+#p0.mandt+','+#p0.bukrs+','+#p0.belnr+','+#p0.gjahr") @CacheEvict(key = "'selectBkpf'+':'+#p0.mandt+','+#p0.bukrs+','+#p0.belnr+','+#p0.gjahr")
public void updateBkpf(Bkpf element); public void updateBkpf(Bkpf element);
public List<Bkpf> selectBkpfCheck(Bkpf build); public List<Bkpf> selectBkpfCheck(Bkpf build);
......
...@@ -17,6 +17,7 @@ import com.huazheng.project.hana.model.Bkpf; ...@@ -17,6 +17,7 @@ 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.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.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;
import com.huazheng.project.hana.model.Vbrk; import com.huazheng.project.hana.model.Vbrk;
...@@ -394,5 +395,35 @@ public class CheckDeleteServiceImpl { ...@@ -394,5 +395,35 @@ public class CheckDeleteServiceImpl {
redis1Template.opsForValue().set("huazheng:checkDeleteError:Zsdfhzl:rowNum", SomeUtils.getErrorInfoFromException(e)); redis1Template.opsForValue().set("huazheng:checkDeleteError:Zsdfhzl:rowNum", SomeUtils.getErrorInfoFromException(e));
} }
} }
public void selectMaraCheckByDelete() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:checkDelete:Mara:rowNum", "0");
String rowNum = opsForValue.get("huazheng:checkDelete:Mara:rowNum");
Mara build = Mara.builder().rowNum(rowNum).build();
List<Mara> list = gpMapper.selectMaraCheck(build); // 从数仓中查询一组数据
if (list.size() == 0) {
redis1Template.opsForValue().set("huazheng:checkDelete:Mara:rowNum", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
list.forEach(target -> { // 遍历要检查的数据
Mara source = sapMapper.selectMaraById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteMara(target); // 删除数仓中的数据
operator = "delete";
}
redis1Template.opsForValue().set("huazheng:checkDelete:Mara:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectMaracheckDelete --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkDeleteError:Mara:rowNum", SomeUtils.getErrorInfoFromException(e));
}
}
} }
...@@ -14,10 +14,12 @@ import com.huazheng.project.hana.mapper.SapMapper; ...@@ -14,10 +14,12 @@ import com.huazheng.project.hana.mapper.SapMapper;
import com.huazheng.project.hana.model.Afko; import com.huazheng.project.hana.model.Afko;
import com.huazheng.project.hana.model.Afpo; import com.huazheng.project.hana.model.Afpo;
import com.huazheng.project.hana.model.Aufk; import com.huazheng.project.hana.model.Aufk;
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.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.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;
import com.huazheng.project.hana.model.Vbrk; import com.huazheng.project.hana.model.Vbrk;
...@@ -610,13 +612,13 @@ public class CheckUpdateServiceImpl { ...@@ -610,13 +612,13 @@ public class CheckUpdateServiceImpl {
Long rowids = Long.parseLong(opsForValue.get("huazheng:checkUpdate:Zsdfhzl:rowids")); Long rowids = Long.parseLong(opsForValue.get("huazheng:checkUpdate:Zsdfhzl:rowids"));
Zsdfhzl build = Zsdfhzl.builder().rowids(rowids).build(); Zsdfhzl build = Zsdfhzl.builder().rowids(rowids).build();
List<Zsdfhzl> list = sapMapper.selectZsdfhzlCheckByUpdate(build); // 从数仓中查询一组数据 List<Zsdfhzl> slist = sapMapper.selectZsdfhzlCheckByUpdate(build); // 从数仓中查询一组数据
if (list.size() == 0) { // rowid已完成,则转为由更新时间字段开始同步 if (slist.size() == 0) { // rowid已完成,则转为由更新时间字段开始同步
redis1Template.opsForValue().set("huazheng:checkUpdate:Zsdfhzl:rowids", "0"); // 计数器复位 redis1Template.opsForValue().set("huazheng:checkUpdate:Zsdfhzl:rowids", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下 ThreadUtil.sleep(1000); // 没有数据了,休眠一下
} }
list.forEach(source -> { // 遍历要检查的数据 slist.forEach(source -> { // 遍历要检查的数据
Zsdfhzl target = gpMapper.selectZsdfhzl(source); // 根据主键查询源库中的数据 Zsdfhzl target = gpMapper.selectZsdfhzl(source); // 根据主键查询源库中的数据
String operator = "none"; String operator = "none";
Long srowids = source.getRowids(); Long srowids = source.getRowids();
...@@ -661,5 +663,90 @@ public class CheckUpdateServiceImpl { ...@@ -661,5 +663,90 @@ public class CheckUpdateServiceImpl {
redis1Template.opsForValue().set("huazheng:checkUpdateError:Zsdfhzl:rowids", SomeUtils.getErrorInfoFromException(e)); redis1Template.opsForValue().set("huazheng:checkUpdateError:Zsdfhzl:rowids", SomeUtils.getErrorInfoFromException(e));
} }
} }
public void selectMaraCheckUpdate() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:checkUpdate:Mara:rowids", "0");
Long rowids = Long.parseLong(opsForValue.get("huazheng:checkUpdate:Mara:rowids"));
Mara build = Mara.builder().rowids(rowids).build();
List<Mara> slist = sapMapper.selectMaraCheckByUpdate(build); // 从源库中按更新时间查询,只更新今天的数据
if (slist.size() == 0) {
redis1Template.opsForValue().set("huazheng:checkUpdate:Mara:rowids", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
slist.forEach(source -> { // 遍历要检查的数据
Mara target = gpMapper.selectMara(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.getErsda() != null) {
String erdat2 = new StringBuffer(source.getErsda()).insert(4, "-").insert(7, "-").toString();
Date date = DateUtil.parse(erdat2);
source.setErsda1(date);
}
if (source.getLaeda() != null) {
String erdat2 = new StringBuffer(source.getLaeda()).insert(4, "-").insert(7, "-").toString();
Date date = DateUtil.parse(erdat2);
source.setLaeda1(date);
}
// ===============================
while (true) {
try {
gpMapper.updateMara(source); // 更新数据到数仓中
operator = "update";
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
// 级联更新业务
List<Ausp> sAuspList = sapMapper.cascadeAuspByMara(source); // 级联查询源库afko表
for (Ausp sAusp : sAuspList) {
Ausp tAusp = gpMapper.selectAusp(sAusp); // 查询目标库中afko表
cascadeAuspCheckByUpdate(sAusp, tAusp); // 级联更新afko表
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:checkUpdate:Mara:rowids", srowids.toString());
if (!operator.equals("none")) {
log.info(String.format("selectMaracheckUpdate --> rowids:%s, operator:%s", srowids.toString(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkUpdateError:Mara:rowids", SomeUtils.getErrorInfoFromException(e));
}
}
// 所属selectMaraCheckUpdate的级联
private void cascadeAuspCheckByUpdate(Ausp source, Ausp 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.updateAusp(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
}
} }
...@@ -30,8 +30,6 @@ import com.huazheng.project.hana.model.Konv; ...@@ -30,8 +30,6 @@ 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;
import com.huazheng.project.hana.model.Mkpf;
import com.huazheng.project.hana.model.Mseg;
import com.huazheng.project.hana.model.Mska; import com.huazheng.project.hana.model.Mska;
import com.huazheng.project.hana.model.S066; import com.huazheng.project.hana.model.S066;
import com.huazheng.project.hana.model.S067; import com.huazheng.project.hana.model.S067;
...@@ -921,7 +919,6 @@ public class DeleteUpdateJobServiceImpl { ...@@ -921,7 +919,6 @@ public class DeleteUpdateJobServiceImpl {
selectKnkkCheck(); // 19 selectKnkkCheck(); // 19
selectKnvvCheck(); // 20 selectKnvvCheck(); // 20
selectMaktCheck(); // 24 selectMaktCheck(); // 24
selectMaraCheck(); // 25
selectMskaCheck(); // 26 selectMskaCheck(); // 26
selectS066Check(); // 28 selectS066Check(); // 28
selectS067Check(); // 29 selectS067Check(); // 29
...@@ -934,8 +931,6 @@ public class DeleteUpdateJobServiceImpl { ...@@ -934,8 +931,6 @@ public class DeleteUpdateJobServiceImpl {
selectZmdpcCheck(); // 38 selectZmdpcCheck(); // 38
selectTvkbtCheck(); // selectTvkbtCheck(); //
selectAfvcCheck(); selectAfvcCheck();
selectMkpfCheck();
selectMsegCheck();
selectTspatCheck(); selectTspatCheck();
selectZpoeditCheck(); selectZpoeditCheck();
selectAuspCheck(); selectAuspCheck();
...@@ -1120,7 +1115,6 @@ public class DeleteUpdateJobServiceImpl { ...@@ -1120,7 +1115,6 @@ public class DeleteUpdateJobServiceImpl {
} }
} }
private void selectKnvpCheck() { private void selectKnvpCheck() {
try { try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue(); ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
...@@ -1163,90 +1157,7 @@ public class DeleteUpdateJobServiceImpl { ...@@ -1163,90 +1157,7 @@ public class DeleteUpdateJobServiceImpl {
redis1Template.opsForValue().set("huazheng:checkError:Knvp:rowNum", getErrorInfoFromException(e)); redis1Template.opsForValue().set("huazheng:checkError:Knvp:rowNum", getErrorInfoFromException(e));
} }
} }
private void selectMkpfCheck() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:check:Mkpf:rowNum", "0");
String rowNum = opsForValue.get("huazheng:check:Mkpf:rowNum");
Mkpf build = Mkpf.builder().rowNum(rowNum).build();
List<Mkpf> list = gpMapper.selectMkpfCheck(build); // 从数仓中查询一组数据
if (list.size() == 0) {
redis1Template.opsForValue().set("huazheng:check:Mkpf:rowNum", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
list.forEach(target -> { // 遍历要检查的数据
Mkpf source = sapMapper.selectMkpfById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteMkpf(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.updateMkpf(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:check:Mkpf:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectMkpfCheck --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkError:Mkpf:rowNum", getErrorInfoFromException(e));
}
}
private void selectMsegCheck() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:check:Mseg:rowNum", "0");
String rowNum = opsForValue.get("huazheng:check:Mseg:rowNum");
Mseg build = Mseg.builder().rowNum(rowNum).build();
List<Mseg> list = gpMapper.selectMsegCheck(build); // 从数仓中查询一组数据
if (list.size() == 0) {
redis1Template.opsForValue().set("huazheng:check:Mseg:rowNum", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
list.forEach(target -> { // 遍历要检查的数据
Mseg source = sapMapper.selectMsegById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteMseg(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.updateMseg(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:check:Mseg:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectMsegCheck --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkError:Mseg:rowNum", getErrorInfoFromException(e));
}
}
private void selectAuspCheck() { private void selectAuspCheck() {
try { try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue(); ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
...@@ -1474,60 +1385,6 @@ public class DeleteUpdateJobServiceImpl { ...@@ -1474,60 +1385,6 @@ public class DeleteUpdateJobServiceImpl {
redis1Template.opsForValue().set("huazheng:checkError:Makt:rowNum", getErrorInfoFromException(e)); redis1Template.opsForValue().set("huazheng:checkError:Makt:rowNum", getErrorInfoFromException(e));
} }
} }
private void selectMaraCheck() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:check:Mara:rowNum", "0");
String rowNum = opsForValue.get("huazheng:check:Mara:rowNum");
Mara build = Mara.builder().rowNum(rowNum).build();
List<Mara> list = gpMapper.selectMaraCheck(build); // 从数仓中查询一组数据
if (list.size() == 0) {
redis1Template.opsForValue().set("huazheng:check:Mara:rowNum", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
list.forEach(target -> { // 遍历要检查的数据
Mara source = sapMapper.selectMaraById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteMara(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);
// ===============================
if (source.getErsda() != null) {
String erdat2 = new StringBuffer(source.getErsda()).insert(4, "-").insert(7, "-").toString();
Date date = DateUtil.parse(erdat2);
source.setErsda1(date);
}
if (source.getLaeda() != null) {
String erdat2 = new StringBuffer(source.getLaeda()).insert(4, "-").insert(7, "-").toString();
Date date = DateUtil.parse(erdat2);
source.setLaeda1(date);
}
// ===============================
while (true) {
try {
gpMapper.updateMara(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:check:Mara:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectMaraCheck --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkError:Mara:rowNum", getErrorInfoFromException(e));
}
}
private void selectMskaCheck() { private void selectMskaCheck() {
try { try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue(); ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
......
...@@ -2171,12 +2171,6 @@ public class GPServiceImpl { ...@@ -2171,12 +2171,6 @@ public class GPServiceImpl {
public void processBkpf(Bkpf data, Collector<Bkpf> out) { public void processBkpf(Bkpf data, Collector<Bkpf> out) {
try { try {
if (data.getMandt().equals("800") //
&& data.getBukrs().equals("1000") //
&& data.getBelnr().equals("4900108167") //
&& data.getGjahr().equals("2019")) {
System.out.println();
}
Bkpf exist = gpMapper.selectBkpf(data); Bkpf exist = gpMapper.selectBkpf(data);
if (exist != null) { if (exist != null) {
data.setExist(true); // 已经在库 data.setExist(true); // 已经在库
......
...@@ -88,6 +88,13 @@ public interface SapMapper { ...@@ -88,6 +88,13 @@ public interface SapMapper {
// ......... // .........
public List<Knkk> selectKnkkCheckByUpdate(Knkk knkk); public List<Knkk> selectKnkkCheckByUpdate(Knkk knkk);
public List<Aufk> selectAufkCheckByUpdate(Aufk aufk);
public Afko cascadeAfkoByAufk(Aufk aufk);
public Afpo cascadeAfpoByAufk(Aufk aufk);
public List<Bkpf> selectBkpfCheckByUpdate(Bkpf bkpf);
public List<Kna1> selectKna1CheckUpdate(Kna1 kna1);
public List<Likp> selectLikpCheckByUpdate(Likp likp); public List<Likp> selectLikpCheckByUpdate(Likp likp);
public List<Lips> selectLipsCheckByUpdate(Lips lips); public List<Lips> selectLipsCheckByUpdate(Lips lips);
public List<Pa0002> selectPa0002CheckByUpdate(Pa0002 pa0002); public List<Pa0002> selectPa0002CheckByUpdate(Pa0002 pa0002);
...@@ -95,12 +102,8 @@ public interface SapMapper { ...@@ -95,12 +102,8 @@ public interface SapMapper {
public List<Vbrk> selectVbrkCheckByUpdate(Vbrk vbrk); public List<Vbrk> selectVbrkCheckByUpdate(Vbrk vbrk);
public List<Zsd06> selectZsd06CheckByUpdate(Zsd06 zsd06); public List<Zsd06> selectZsd06CheckByUpdate(Zsd06 zsd06);
public List<Zsdfhzl> selectZsdfhzlCheckByUpdate(Zsdfhzl zsdfhzl); public List<Zsdfhzl> selectZsdfhzlCheckByUpdate(Zsdfhzl zsdfhzl);
public List<Mara> selectMaraCheckByUpdate(Mara mara);
public List<Aufk> selectAufkCheckByUpdate(Aufk aufk); public List<Ausp> cascadeAuspByMara(Mara mara);
public Afko cascadeAfkoByAufk(Aufk aufk);
public Afpo cascadeAfpoByAufk(Aufk aufk);
public List<Bkpf> selectBkpfCheckByUpdate(Bkpf bkpf);
public List<Kna1> selectKna1CheckUpdate(Kna1 kna1);
// ...... // ......
public Bkpf selectBkpfById(Bkpf target); public Bkpf selectBkpfById(Bkpf target);
...@@ -108,8 +111,6 @@ public interface SapMapper { ...@@ -108,8 +111,6 @@ public interface SapMapper {
public Ausp selectAuspById(Ausp target); public Ausp selectAuspById(Ausp target);
public Zpoedit selectZpoeditById(Zpoedit target); public Zpoedit selectZpoeditById(Zpoedit target);
public Tspat selectTspatById(Tspat target); public Tspat selectTspatById(Tspat target);
public Mseg selectMsegById(Mseg target);
public Mkpf selectMkpfById(Mkpf target);
public Afko selectAfkoById(Afko target); public Afko selectAfkoById(Afko target);
public Afpo selectAfpoById(Afpo target); public Afpo selectAfpoById(Afpo target);
public Afvc selectAfvcById(Afvc target); public Afvc selectAfvcById(Afvc target);
......
...@@ -709,17 +709,17 @@ ...@@ -709,17 +709,17 @@
insert into Mseg (mandt, mblnr, mjahr, zeile, bwart, charg, menge, budat_mkpf, cputm_mkpf, aufnr, hashResult) insert into Mseg (mandt, mblnr, mjahr, zeile, bwart, charg, menge, budat_mkpf, cputm_mkpf, aufnr, hashResult)
values(#{mandt},#{mblnr},#{mjahr},#{zeile},#{bwart},#{charg},#{menge},#{budat_mkpf},#{cputm_mkpf},#{aufnr},#{hashResult}) values(#{mandt},#{mblnr},#{mjahr},#{zeile},#{bwart},#{charg},#{menge},#{budat_mkpf},#{cputm_mkpf},#{aufnr},#{hashResult})
</insert> </insert>
<delete id="deleteMseg" parameterType="com.huazheng.project.hana.model.Mseg"> <!-- <delete id="deleteMseg" parameterType="com.huazheng.project.hana.model.Mseg"> -->
delete from Mseg where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} and zeile = #{zeile} <!-- delete from Mseg where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} and zeile = #{zeile} -->
</delete> <!-- </delete> -->
<update id="updateMseg" parameterType="com.huazheng.project.hana.model.Mseg"> <!-- <update id="updateMseg" parameterType="com.huazheng.project.hana.model.Mseg"> -->
update Mseg set <!-- update Mseg set -->
mandt = #{mandt}, mblnr = #{mblnr}, mjahr = #{mjahr}, zeile = #{zeile}, bwart = #{bwart}, charg = #{charg}, menge = #{menge}, budat_mkpf = #{budat_mkpf}, cputm_mkpf = #{cputm_mkpf}, aufnr = #{aufnr}, hashResult = #{hashResult} <!-- mandt = #{mandt}, mblnr = #{mblnr}, mjahr = #{mjahr}, zeile = #{zeile}, bwart = #{bwart}, charg = #{charg}, menge = #{menge}, budat_mkpf = #{budat_mkpf}, cputm_mkpf = #{cputm_mkpf}, aufnr = #{aufnr}, hashResult = #{hashResult} -->
where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} and zeile = #{zeile} <!-- where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} and zeile = #{zeile} -->
</update> <!-- </update> -->
<select id="selectMsegCheck" parameterType="com.huazheng.project.hana.model.Mseg" resultType="com.huazheng.project.hana.model.Mseg"> <!-- <select id="selectMsegCheck" parameterType="com.huazheng.project.hana.model.Mseg" resultType="com.huazheng.project.hana.model.Mseg"> -->
select * from Mseg where rownum &gt; #{rowNum} order by rownum limit 20 <!-- select * from Mseg where rownum &gt; #{rowNum} order by rownum limit 20 -->
</select> <!-- </select> -->
<select id="selectMkpf" parameterType="com.huazheng.project.hana.model.Mkpf" resultType="com.huazheng.project.hana.model.Mkpf"> <select id="selectMkpf" parameterType="com.huazheng.project.hana.model.Mkpf" resultType="com.huazheng.project.hana.model.Mkpf">
select * from Mkpf where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} select * from Mkpf where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr}
...@@ -728,17 +728,17 @@ ...@@ -728,17 +728,17 @@
insert into Mkpf (mandt,mblnr,mjahr,bldat,cputm,hashResult) insert into Mkpf (mandt,mblnr,mjahr,bldat,cputm,hashResult)
values(#{mandt},#{mblnr},#{mjahr},#{bldat},#{cputm},#{hashResult}) values(#{mandt},#{mblnr},#{mjahr},#{bldat},#{cputm},#{hashResult})
</insert> </insert>
<delete id="deleteMkpf" parameterType="com.huazheng.project.hana.model.Mkpf"> <!-- <delete id="deleteMkpf" parameterType="com.huazheng.project.hana.model.Mkpf"> -->
delete from Mkpf where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} <!-- delete from Mkpf where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} -->
</delete> <!-- </delete> -->
<update id="updateMkpf" parameterType="com.huazheng.project.hana.model.Mkpf"> <!-- <update id="updateMkpf" parameterType="com.huazheng.project.hana.model.Mkpf"> -->
update Mkpf set <!-- update Mkpf set -->
mandt = #{mandt}, mblnr = #{mblnr}, mjahr = #{mjahr}, bldat = #{bldat}, cputm = #{cputm}, hashResult = #{hashResult} <!-- mandt = #{mandt}, mblnr = #{mblnr}, mjahr = #{mjahr}, bldat = #{bldat}, cputm = #{cputm}, hashResult = #{hashResult} -->
where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} <!-- where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} -->
</update> <!-- </update> -->
<select id="selectMkpfCheck" parameterType="com.huazheng.project.hana.model.Mkpf" resultType="com.huazheng.project.hana.model.Mkpf"> <!-- <select id="selectMkpfCheck" parameterType="com.huazheng.project.hana.model.Mkpf" resultType="com.huazheng.project.hana.model.Mkpf"> -->
select * from Mkpf where rownum &gt; #{rowNum} order by rownum limit 20 <!-- select * from Mkpf where rownum &gt; #{rowNum} order by rownum limit 20 -->
</select> <!-- </select> -->
<select id="selectKonv" parameterType="com.huazheng.project.hana.model.Konv" resultType="com.huazheng.project.hana.model.Konv"> <select id="selectKonv" parameterType="com.huazheng.project.hana.model.Konv" resultType="com.huazheng.project.hana.model.Konv">
select * from Konv select * from Konv
......
...@@ -424,14 +424,27 @@ ...@@ -424,14 +424,27 @@
where "$rowid$" &gt; #{rowids} and cha_datum != '00000000' and cha_datum = CURRENT_DATE ${hana_mandt} where "$rowid$" &gt; #{rowids} and cha_datum != '00000000' and cha_datum = CURRENT_DATE ${hana_mandt}
order by "$rowid$" order by "$rowid$"
</select> </select>
<select id="selectZsdfhzlCheckByUpdate" parameterType="com.huazheng.project.hana.model.Zsdfhzl" resultType="com.huazheng.project.hana.model.Zsdfhzl"> <select id="selectZsdfhzlCheckByUpdate" parameterType="Zsdfhzl" resultType="Zsdfhzl">
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
vbeln, posnr, mandt, vgbel, vgpos, uname, matnr, fmenge, cdate, ctime, fh_date, werks, cha_datum vbeln, posnr, mandt, vgbel, vgpos, uname, matnr, fmenge, cdate, ctime, fh_date, werks, cha_datum
from ${hana_user}.zsd_fhzl from ${hana_user}.zsd_fhzl
where "$rowid$" &gt; #{rowids} and cha_datum != '00000000' and cha_datum = CURRENT_DATE ${hana_mandt} where "$rowid$" &gt; #{rowids} and cha_datum != '00000000' and cha_datum = CURRENT_DATE ${hana_mandt}
order by "$rowid$" order by "$rowid$"
</select> </select>
<select id="selectMaraCheckByUpdate" parameterType="Mara" resultType="Mara">
select top 20 "$rowid$" as rowids,
matnr, mandt, ersda, ernam, laeda, aenam, vpsta, pstat, mtart, mbrsh, matkl,
bismt, meins, bstme, wrkst, brgew, ntgew, gewei, spart, kzkfg, extwg, cuobf
from ${hana_user}.Mara
where "$rowid$" &gt; #{rowids} and laeda != '00000000' and laeda = CURRENT_DATE ${hana_mandt}
order by "$rowid$"
</select>
<select id="cascadeAuspByMara" parameterType="Mara" resultType="Ausp">
select
mandt, objek, atinn, atzhl, mafid, klart, adzhl, atwrt
from ${hana_user}.Ausp
where objek = #{matnr} ${hana_mandt}
</select>
...@@ -494,16 +507,6 @@ ...@@ -494,16 +507,6 @@
from ${hana_user}.Zpo_edit from ${hana_user}.Zpo_edit
where mandt = #{mandt} and pwerk = #{pwerk} and aufnr = #{aufnr} where mandt = #{mandt} and pwerk = #{pwerk} and aufnr = #{aufnr}
</select> </select>
<select id="selectMkpfById" parameterType="Mkpf" resultType="Mkpf">
select mandt, mblnr, mjahr, bldat, cputm
from ${hana_user}.Mkpf
where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr}
</select>
<select id="selectMsegById" parameterType="Mseg" resultType="Mseg">
select mandt, mblnr, mjahr, zeile, bwart, charg, menge, budat_mkpf, cputm_mkpf, aufnr
from ${hana_user}.Mseg
where mandt = #{mandt} and mblnr = #{mblnr} and mjahr = #{mjahr} and zeile = #{zeile}
</select>
<select id="selectKonvById" parameterType="Konv" resultType="Konv"> <select id="selectKonvById" parameterType="Konv" resultType="Konv">
select mandt,knumv,kposn,stunr,zaehk,kntyp,kbetr select mandt,knumv,kposn,stunr,zaehk,kntyp,kbetr
from ${hana_user}.Konv from ${hana_user}.Konv
......
...@@ -796,6 +796,16 @@ ...@@ -796,6 +796,16 @@
</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="checkUpdateServiceImpl" />
<property name="targetMethod" value="selectMaraCheckUpdate" />
</bean>
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
<!-- 删除流程 --> <!-- 删除流程 -->
<bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
...@@ -906,7 +916,15 @@ ...@@ -906,7 +916,15 @@
</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="selectMaraCheckByDelete" />
</bean>
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
</list> </list>
</constructor-arg> </constructor-arg>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论