提交 e3c0e580 作者: guofeng

调整rowids排序乱序问题

上级 bf5ab9e3
...@@ -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);
......
...@@ -15,6 +15,7 @@ import com.huazheng.project.hana.model.Afko; ...@@ -15,6 +15,7 @@ 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.Bkpf; import com.huazheng.project.hana.model.Bkpf;
import com.huazheng.project.hana.model.Kna1;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -165,4 +166,35 @@ public class CheckDeleteServiceImpl { ...@@ -165,4 +166,35 @@ public class CheckDeleteServiceImpl {
} }
} }
public void selectKna1CheckByDelete() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:checkDelete:Kna1:rowNum", "0");
String rowNum = opsForValue.get("huazheng:checkDelete:Kna1:rowNum");
Kna1 build = Kna1.builder().rowNum(rowNum).build();
List<Kna1> list = gpMapper.selectKna1Check(build); // 从数仓中查询一组数据
if (list.size() == 0) {
redis1Template.opsForValue().set("huazheng:checkDelete:Kna1:rowNum", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
list.forEach(target -> { // 遍历要检查的数据
Kna1 source = sapMapper.selectKna1ById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteKna1(target); // 删除数仓中的数据
operator = "delete";
}
redis1Template.opsForValue().set("huazheng:checkDelete:Kna1:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectKna1checkDelete --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkDeleteError:Kna1:rowNum", getErrorInfoFromException(e));
}
}
} }
...@@ -16,6 +16,7 @@ import com.huazheng.project.hana.model.Afko; ...@@ -16,6 +16,7 @@ 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.Bkpf; import com.huazheng.project.hana.model.Bkpf;
import com.huazheng.project.hana.model.Kna1;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
...@@ -79,6 +80,14 @@ public class CheckUpdateServiceImpl { ...@@ -79,6 +80,14 @@ public class CheckUpdateServiceImpl {
source.setErdat1(date); source.setErdat1(date);
source.setErdat2(date); source.setErdat2(date);
} }
String aedat = source.getAedat();
if ("00000000".equals(aedat)) {
source.setAedat(null);
} else {
Date date = DateUtil.parse(aedat, "yyyyMMdd");
String format = DateUtil.format(date, "yyyy-MM-dd");
source.setAedat(format);
}
// =============================== // ===============================
while (true) { while (true) {
try { try {
...@@ -190,6 +199,24 @@ public class CheckUpdateServiceImpl { ...@@ -190,6 +199,24 @@ public class CheckUpdateServiceImpl {
String thash = target.getHashResult(); // 数仓中数据的hash结果 String thash = target.getHashResult(); // 数仓中数据的hash结果
if (!shash.equals(thash)) { // 如果hash结果不一致 if (!shash.equals(thash)) { // 如果hash结果不一致
source.setHashResult(shash); source.setHashResult(shash);
// ===============================
String aedat = source.getAedat();
if ("00000000".equals(aedat)) {
source.setAedat(null);
} else {
Date date = DateUtil.parse(aedat, "yyyyMMdd");
String format = DateUtil.format(date, "yyyy-MM-dd");
source.setAedat(format);
}
String cpudt = source.getCpudt();
String cputm = source.getCputm();
if ("00000000".equals(cpudt)) {
source.setCpudt_cputm(null);
} else {
Date date = DateUtil.parse(cpudt+cputm, "yyyyMMddHHmmss");
source.setCpudt_cputm(date);
}
// ===============================
while (true) { while (true) {
try { try {
gpMapper.updateBkpf(source); // 更新数据到数仓中 gpMapper.updateBkpf(source); // 更新数据到数仓中
...@@ -210,5 +237,61 @@ public class CheckUpdateServiceImpl { ...@@ -210,5 +237,61 @@ public class CheckUpdateServiceImpl {
redis1Template.opsForValue().set("huazheng:checkUpdateError:Bkpf:rowids", getErrorInfoFromException(e)); redis1Template.opsForValue().set("huazheng:checkUpdateError:Bkpf:rowids", getErrorInfoFromException(e));
} }
} }
public void selectKna1CheckByUpdate() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:checkUpdate:Kna1:rowids", "0");
Long rowids = Long.parseLong(opsForValue.get("huazheng:checkUpdate:Kna1:rowids"));
Kna1 build = Kna1.builder().rowids(rowids).build();
List<Kna1> slist = sapMapper.selectKna1CheckUpdate(build); // 从数仓中查询一组数据
if (slist.size() == 0) {
redis1Template.opsForValue().set("huazheng:checkUpdate:Kna1:rowids", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
slist.forEach(target -> { // 遍历要检查的数据,去目标库中查询数据
Kna1 source = gpMapper.selectKna1(target);
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 updat = source.getUpdat();
if ("00000000".equals(updat)) {
source.setUpdat(null);
} else {
Date date = DateUtil.parse(updat, "yyyyMMdd");
String format = DateUtil.format(date, "yyyy-MM-dd");
source.setUpdat(format);
}
// ===============================
while (true) {
try {
gpMapper.updateKna1(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:checkUpdate:Kna1:rowids", srowids.toString());
if (!operator.equals("none")) {
log.info(String.format("selectKna1checkUpdate --> rowids:%s, operator:%s", srowids.toString(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkUpdateError:Kna1:rowids", getErrorInfoFromException(e));
}
}
} }
...@@ -934,7 +934,6 @@ public class DeleteUpdateJobServiceImpl { ...@@ -934,7 +934,6 @@ public class DeleteUpdateJobServiceImpl {
public void checkJob4() { public void checkJob4() {
// selectKonvCheck(); // 21 注释掉 // selectKonvCheck(); // 21 注释掉
selectKna1Check(); // 18
selectKnkkCheck(); // 19 selectKnkkCheck(); // 19
selectKnvvCheck(); // 20 selectKnvvCheck(); // 20
selectLipsCheck(); // 23 selectLipsCheck(); // 23
...@@ -963,48 +962,7 @@ public class DeleteUpdateJobServiceImpl { ...@@ -963,48 +962,7 @@ public class DeleteUpdateJobServiceImpl {
selectAuspCheck(); selectAuspCheck();
selectKnvpCheck(); selectKnvpCheck();
} }
private void selectKna1Check() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:check:Kna1:rowNum", "0");
String rowNum = opsForValue.get("huazheng:check:Kna1:rowNum");
Kna1 build = Kna1.builder().rowNum(rowNum).build();
List<Kna1> list = gpMapper.selectKna1Check(build); // 从数仓中查询一组数据
if (list.size() == 0) {
redis1Template.opsForValue().set("huazheng:check:Kna1:rowNum", "0"); // 计数器复位
ThreadUtil.sleep(1000); // 没有数据了,休眠一下
}
list.forEach(target -> { // 遍历要检查的数据
Kna1 source = sapMapper.selectKna1ById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteKna1(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.updateKna1(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:check:Kna1:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectKna1Check --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkError:Kna1:rowNum", getErrorInfoFromException(e));
}
}
// 计数器复位删除1 // 计数器复位删除1
private void selectKnkkCheck() { private void selectKnkkCheck() {
try { try {
...@@ -1506,6 +1464,14 @@ public class DeleteUpdateJobServiceImpl { ...@@ -1506,6 +1464,14 @@ public class DeleteUpdateJobServiceImpl {
if (!shash.equals(thash)) { // 如果hash结果不一致 if (!shash.equals(thash)) { // 如果hash结果不一致
source.setHashResult(shash); 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(caDate(source.getErdat())); // 日期00000000格式转换,已处理异常 source.setErdat1(caDate(source.getErdat())); // 日期00000000格式转换,已处理异常
source.setWadat_ist1(caDate(source.getWadat_ist())); // 日期00000000格式转换,已处理异常 source.setWadat_ist1(caDate(source.getWadat_ist())); // 日期00000000格式转换,已处理异常
// =============================== // ===============================
...@@ -1554,6 +1520,14 @@ public class DeleteUpdateJobServiceImpl { ...@@ -1554,6 +1520,14 @@ public class DeleteUpdateJobServiceImpl {
if (!shash.equals(thash)) { // 如果hash结果不一致 if (!shash.equals(thash)) { // 如果hash结果不一致
source.setHashResult(shash); 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(caDate(source.getErdat())); // 日期00000000格式转换,已处理异常 source.setErdat1(caDate(source.getErdat())); // 日期00000000格式转换,已处理异常
source.setWadat_ist1(caDate(source.getWadat_ist())); // 日期00000000格式转换,已处理异常 source.setWadat_ist1(caDate(source.getWadat_ist())); // 日期00000000格式转换,已处理异常
// =============================== // ===============================
...@@ -2183,6 +2157,14 @@ public class DeleteUpdateJobServiceImpl { ...@@ -2183,6 +2157,14 @@ public class DeleteUpdateJobServiceImpl {
source.setHashResult(shash); source.setHashResult(shash);
// =============================== // ===============================
source.setAudat1(caDate(source.getAudat())); // 日期00000000格式转换,已处理异常 source.setAudat1(caDate(source.getAudat())); // 日期00000000格式转换,已处理异常
String erdat = source.getErdat();
String erzet = source.getErzet();
if ("00000000".equals(erdat)) {
source.setErdat2erzet(null);
} else {
Date date = DateUtil.parse(erdat+erzet, "yyyyMMddHHmmss");
source.setErdat2erzet(date);
}
// =============================== // ===============================
while (true) { while (true) {
try { try {
......
...@@ -2171,6 +2171,12 @@ public class GPServiceImpl { ...@@ -2171,6 +2171,12 @@ 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); // 已经在库
......
...@@ -3,6 +3,7 @@ package com.huazheng.project.greenplum.service.impl; ...@@ -3,6 +3,7 @@ package com.huazheng.project.greenplum.service.impl;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -73,6 +74,7 @@ import com.huazheng.project.mysql.model.HandoverTask; ...@@ -73,6 +74,7 @@ import com.huazheng.project.mysql.model.HandoverTask;
import com.huazheng.project.mysql.model.TransformHistoryNode; import com.huazheng.project.mysql.model.TransformHistoryNode;
import com.huazheng.project.mysql.model.TransformNewNode; import com.huazheng.project.mysql.model.TransformNewNode;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -471,6 +473,14 @@ public class JobServiceImpl { ...@@ -471,6 +473,14 @@ public class JobServiceImpl {
List<Likp> list = sapMapper.selectLikpNew(likp); List<Likp> list = sapMapper.selectLikpNew(likp);
if (!list.isEmpty()) { if (!list.isEmpty()) {
list.forEach(item -> { 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); JSONObject json = JSONUtil.parseObj(item, false);
String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString()); String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString());
log.info("标记时间回写 --> " + execute); log.info("标记时间回写 --> " + execute);
...@@ -597,6 +607,22 @@ public class JobServiceImpl { ...@@ -597,6 +607,22 @@ public class JobServiceImpl {
List<Bkpf> list = sapMapper.selectBkpfNew(bkpf); List<Bkpf> list = sapMapper.selectBkpfNew(bkpf);
if (!list.isEmpty()) { if (!list.isEmpty()) {
list.forEach(item -> { 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); JSONObject json = JSONUtil.parseObj(item, false);
String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString()); String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString());
log.info("标记时间回写 --> " + execute); log.info("标记时间回写 --> " + execute);
...@@ -880,6 +906,14 @@ public class JobServiceImpl { ...@@ -880,6 +906,14 @@ public class JobServiceImpl {
List<Kna1> list = sapMapper.selectKna1New(kna1); List<Kna1> list = sapMapper.selectKna1New(kna1);
if (!list.isEmpty()) { if (!list.isEmpty()) {
list.forEach(item -> { list.forEach(item -> {
String updat = item.getUpdat();
if ("00000000".equals(updat)) {
item.setUpdat(null);
} else {
Date date = DateUtil.parse(updat, "yyyyMMdd");
String format = DateUtil.format(date, "yyyy-MM-dd");
item.setUpdat(format);
}
JSONObject json = JSONUtil.parseObj(item, false); JSONObject json = JSONUtil.parseObj(item, false);
String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString()); String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString());
log.info("标记时间回写 --> " + execute); log.info("标记时间回写 --> " + execute);
...@@ -1055,6 +1089,14 @@ public class JobServiceImpl { ...@@ -1055,6 +1089,14 @@ public class JobServiceImpl {
List<Vbak> list = sapMapper.selectVbakNew(vbak); List<Vbak> list = sapMapper.selectVbakNew(vbak);
if (!list.isEmpty()) { if (!list.isEmpty()) {
list.forEach(item -> { 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); JSONObject json = JSONUtil.parseObj(item, false);
String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString()); String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString());
log.info("标记时间回写 --> " + execute); log.info("标记时间回写 --> " + execute);
...@@ -1080,6 +1122,14 @@ public class JobServiceImpl { ...@@ -1080,6 +1122,14 @@ public class JobServiceImpl {
List<Aufk> list = sapMapper.selectAufkNew(aufk); List<Aufk> list = sapMapper.selectAufkNew(aufk);
if (!list.isEmpty()) { if (!list.isEmpty()) {
list.forEach(item -> { 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);
}
JSONObject json = JSONUtil.parseObj(item, false); JSONObject json = JSONUtil.parseObj(item, false);
String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString()); String execute = redis1Template.execute(script, keys, item.getRowids().toString(), json.toString());
log.info("标记时间回写 --> " + execute); log.info("标记时间回写 --> " + execute);
......
...@@ -100,7 +100,7 @@ public interface SapMapper { ...@@ -100,7 +100,7 @@ public interface SapMapper {
public Afko cascadeAfkoByAufk(Aufk aufk); public Afko cascadeAfkoByAufk(Aufk aufk);
public Afpo cascadeAfpoByAufk(Aufk aufk); public Afpo cascadeAfpoByAufk(Aufk aufk);
public List<Bkpf> selectBkpfCheckByUpdate(Bkpf bkpf); public List<Bkpf> selectBkpfCheckByUpdate(Bkpf bkpf);
public List<Kna1> selectKna1CheckUpdate(Kna1 kna1);
// ...... // ......
public Bkpf selectBkpfById(Bkpf target); public Bkpf selectBkpfById(Bkpf target);
......
...@@ -3,10 +3,6 @@ package com.huazheng.project.hana.model; ...@@ -3,10 +3,6 @@ package com.huazheng.project.hana.model;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -48,9 +44,9 @@ public class Aufk implements Serializable { ...@@ -48,9 +44,9 @@ public class Aufk implements Serializable {
private Date erdat1; // 转换 erdat 创建日期yyyy-MM-dd private Date erdat1; // 转换 erdat 创建日期yyyy-MM-dd
private Date erdat2; // 转换 erdat 创建日期yyyy-MM-dd hh:mm:ss private Date erdat2; // 转换 erdat 创建日期yyyy-MM-dd hh:mm:ss
@DateTimeFormat(pattern="yyyy-MM-dd") // 页面写入数据库时格式化 // @DateTimeFormat(pattern="yyyy-MM-dd") // 页面写入数据库时格式化
@JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化 // @JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化
private Date aedat; // 更改订单主文件日期 private String aedat; // 更改订单主文件日期
private Vbap vbap; private Vbap vbap;
......
...@@ -37,9 +37,9 @@ public class Bkpf implements Serializable { ...@@ -37,9 +37,9 @@ public class Bkpf implements Serializable {
@JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化 @JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化
private String cpudt; // 会计凭证输入日期 private String cpudt; // 会计凭证输入日期
private String cputm; // 输入时间 private String cputm; // 输入时间
@DateTimeFormat(pattern="yyyy-MM-dd") // 页面写入数据库时格式化 // @DateTimeFormat(pattern="yyyy-MM-dd") // 页面写入数据库时格式化
@JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化 // @JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化
private Date aedat; // 上次根据事务修改凭证的日期 private String aedat; // 上次根据事务修改凭证的日期
private String upddt; // 上次凭证更新日期 private String upddt; // 上次凭证更新日期
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") // 页面写入数据库时格式化 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") // 页面写入数据库时格式化
......
...@@ -27,6 +27,10 @@ public class Kna1 implements Serializable { ...@@ -27,6 +27,10 @@ public class Kna1 implements Serializable {
private String ktokd; // 客户帐户组 private String ktokd; // 客户帐户组
// @DateTimeFormat(pattern="yyyyMMdd") // 页面写入数据库时格式化
// @JSONField(format="yyyyMMdd") // 数据库导出页面时json格式化
private String updat; //
private Vbap vbap; private Vbap vbap;
private Long rowids; // sap那边的rowid private Long rowids; // sap那边的rowid
......
select count(1) from sapabap1.bkpf where aedat = '00000000' union all select count(1) from sapabap1.kna1 where updat = '00000000' union all
select count(1) from sapabap1.bkpf where aedat != '00000000' union all select count(1) from sapabap1.kna1 where updat != '00000000' union all
select count(1) from sapabap1.bkpf where aedat is null; select count(1) from sapabap1.kna1 where updat is null;
select count(1) from sapabap1.bkpf where aedat = '20201121'; select count(1) from sapabap1.Bkpf where aedat = '00000000' and mandt = '800' union all
select count(1) from sapabap1.Bkpf where aedat != '00000000' and mandt = '800';
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
mandt, bukrs, belnr, gjahr, blart, bldat, budat, monat, cpudt, cputm,
case aedat when '00000000' then null else to_date(aedat) end as aedat, upddt,
(to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm
from sapabap1.Bkpf
where "$rowid$" > '2702057' and mandt = '800'
order by "$rowid$";
select top 20 "$rowid$" as rowids,
mandt, bukrs, belnr, gjahr, blart, bldat, budat, monat, cpudt, cputm,
case aedat when '00000000' then null else to_date(aedat) end as aedat, upddt,
(to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm
from sapabap1.Bkpf
where "$rowid$" > '2702306' and mandt = '800'
order by "$rowid$";
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,
case aedat when '00000000' then null else to_date(aedat) end as aedat, upddt, case aedat when '00000000' then null else to_date(aedat) end as aedat, upddt,
(to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm (to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm
from sapabap1.Bkpf from sapabap1.Bkpf
where "$rowid$" > '4526721' and mandt = '800' where "$rowid$" > '2702607' and mandt = '800'
order by "$rowid$" order by "$rowid$";
\ No newline at end of file
select top 20 "$rowid$" as rowids,
mandt, bukrs, belnr, gjahr, blart, bldat, budat, monat, cpudt, cputm, upddt
,aedat
,(cpudt||cputm) as cpudt_cputm
from sapabap1.Bkpf
where "$rowid$" > '2702607' and mandt = '800'
order by "$rowid$";
select top 20 "$rowid$" as rowids,
vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr,
case wadat_ist when '00000000' then null else (to_date(wadat_ist)||' '||to_time(lfuhr)) end as wadat_ist2lfuhr
from sapabap1.likp
where "$rowid$" > '10' AND MANDT = '800'
order by "$rowid$"
...@@ -12,3 +12,4 @@ alter table kna1 add column hashResult text; ...@@ -12,3 +12,4 @@ alter table kna1 add column hashResult text;
alter table kna1 add column rowNum serial; alter table kna1 add column rowNum serial;
alter table kna1 add column ktokd text; alter table kna1 add column ktokd text;
alter table kna1 add column updat date;
...@@ -545,14 +545,14 @@ ...@@ -545,14 +545,14 @@
select * from kna1 where kunnr = #{kunnr} and mandt = #{mandt} select * from kna1 where kunnr = #{kunnr} and mandt = #{mandt}
</select> </select>
<insert id="insertKna1" parameterType="com.huazheng.project.hana.model.Kna1"> <insert id="insertKna1" parameterType="com.huazheng.project.hana.model.Kna1">
insert into kna1 (kunnr, name1, name2, mandt, ktokd, hashResult) values(#{kunnr}, #{name1}, #{name2}, #{mandt}, #{ktokd}, #{hashResult}) insert into kna1 (kunnr, name1, name2, mandt, ktokd, updat, hashResult) values(#{kunnr}, #{name1}, #{name2}, #{mandt}, #{ktokd}, #{updat}, #{hashResult})
</insert> </insert>
<delete id="deleteKna1" parameterType="com.huazheng.project.hana.model.Kna1"> <delete id="deleteKna1" parameterType="com.huazheng.project.hana.model.Kna1">
delete from kna1 where kunnr = #{kunnr} and mandt = #{mandt} delete from kna1 where kunnr = #{kunnr} and mandt = #{mandt}
</delete> </delete>
<update id="updateKna1" parameterType="com.huazheng.project.hana.model.Kna1"> <update id="updateKna1" parameterType="com.huazheng.project.hana.model.Kna1">
update Kna1 set update Kna1 set
kunnr = #{kunnr}, name1 = #{name1}, name2 = #{name2}, mandt = #{mandt}, ktokd = #{ktokd}, hashResult = #{hashResult} kunnr = #{kunnr}, name1 = #{name1}, name2 = #{name2}, mandt = #{mandt}, ktokd = #{ktokd}, updat = #{updat}, hashResult = #{hashResult}
where kunnr = #{kunnr} and mandt = #{mandt} where kunnr = #{kunnr} and mandt = #{mandt}
</update> </update>
<select id="selectKna1Check" parameterType="com.huazheng.project.hana.model.Kna1" resultType="com.huazheng.project.hana.model.Kna1"> <select id="selectKna1Check" parameterType="com.huazheng.project.hana.model.Kna1" resultType="com.huazheng.project.hana.model.Kna1">
......
...@@ -107,8 +107,7 @@ ...@@ -107,8 +107,7 @@
</select> </select>
<select id="selectLikpNew" parameterType="Likp" resultType="Likp"> <select id="selectLikpNew" parameterType="Likp" resultType="Likp">
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr, vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr
case wadat_ist when '00000000' then null else (to_date(wadat_ist)||' '||to_time(lfuhr)) end as wadat_ist2lfuhr
from ${hana_user}.likp from ${hana_user}.likp
where "$rowid$" &gt; #{rowids} ${hana_mandt} where "$rowid$" &gt; #{rowids} ${hana_mandt}
order by "$rowid$" order by "$rowid$"
...@@ -160,7 +159,7 @@ ...@@ -160,7 +159,7 @@
</select> </select>
<select id="selectKna1New" parameterType="Kna1" resultType="Kna1"> <select id="selectKna1New" parameterType="Kna1" resultType="Kna1">
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
kunnr, name1, name2, mandt, ktokd kunnr, name1, name2, mandt, ktokd, updat
from ${hana_user}.Kna1 from ${hana_user}.Kna1
where "$rowid$" &gt; #{rowids} ${hana_mandt} where "$rowid$" &gt; #{rowids} ${hana_mandt}
order by "$rowid$" order by "$rowid$"
...@@ -182,8 +181,7 @@ ...@@ -182,8 +181,7 @@
<select id="selectBkpfNew" parameterType="Bkpf" resultType="Bkpf"> <select id="selectBkpfNew" 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,
case aedat when '00000000' then null else to_date(aedat) end as aedat, upddt, aedat, upddt
(to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm
from ${hana_user}.Bkpf from ${hana_user}.Bkpf
where "$rowid$" &gt; #{rowids} ${hana_mandt} where "$rowid$" &gt; #{rowids} ${hana_mandt}
order by "$rowid$" order by "$rowid$"
...@@ -278,7 +276,6 @@ ...@@ -278,7 +276,6 @@
select top 20 "$rowid$" as rowids, 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.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, b.pernr,
case a.erdat when '00000000' then null else (to_date(a.erdat)||' '||to_time(a.erzet)) end as erdat2erzet,
a.erdat, a.erzet, a.spart a.erdat, a.erzet, a.spart
from ${hana_user}.vbak a from ${hana_user}.vbak a
left join ( left join (
...@@ -295,7 +292,7 @@ ...@@ -295,7 +292,7 @@
<select id="selectAufkNew" parameterType="Aufk" resultType="Aufk"> <select id="selectAufkNew" parameterType="Aufk" resultType="Aufk">
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
kdauf,kdpos,mandt,aufnr,erdat,erfzeit,ernam,aenam,bukrs,loekz,auart,werks, kdauf,kdpos,mandt,aufnr,erdat,erfzeit,ernam,aenam,bukrs,loekz,auart,werks,
case aedat when '00000000' then null else to_date(aedat) end as aedat aedat
from ${hana_user}.aufk from ${hana_user}.aufk
where "$rowid$" &gt; #{rowids} ${hana_mandt} where "$rowid$" &gt; #{rowids} ${hana_mandt}
order by "$rowid$" order by "$rowid$"
...@@ -334,8 +331,7 @@ ...@@ -334,8 +331,7 @@
</select> </select>
<select id="selectLikpCheckByUpdate" parameterType="Likp" resultType="Likp"> <select id="selectLikpCheckByUpdate" parameterType="Likp" resultType="Likp">
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr, vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr
case wadat_ist when '00000000' then null else (to_date(wadat_ist)||' '||to_time(lfuhr)) end as wadat_ist2lfuhr
from ${hana_user}.likp from ${hana_user}.likp
where "$rowid$" &gt;#{rowids} and aedat != '00000000' ${hana_mandt} where "$rowid$" &gt;#{rowids} and aedat != '00000000' ${hana_mandt}
order by "$rowid$" order by "$rowid$"
...@@ -359,7 +355,6 @@ ...@@ -359,7 +355,6 @@
select top 20 a."$rowid$" as rowids, 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.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, b.pernr,
case a.erdat when '00000000' then null else (to_date(a.erdat)||' '||to_time(a.erzet)) end as erdat2erzet,
a.erdat, a.erzet, a.spart a.erdat, a.erzet, a.spart
from ${hana_user}.vbak a from ${hana_user}.vbak a
left join ( left join (
...@@ -401,7 +396,7 @@ ...@@ -401,7 +396,7 @@
<select id="selectAufkCheckByUpdate" parameterType="Aufk" resultType="Aufk"> <select id="selectAufkCheckByUpdate" parameterType="Aufk" resultType="Aufk">
select top 20 "$rowid$" as rowids, select top 20 "$rowid$" as rowids,
kdauf,kdpos,mandt,aufnr,erdat,erfzeit,ernam,aenam,bukrs,loekz,auart,werks, kdauf,kdpos,mandt,aufnr,erdat,erfzeit,ernam,aenam,bukrs,loekz,auart,werks,
case aedat when '00000000' then null else to_date(aedat) end as aedat aedat
from ${hana_user}.aufk from ${hana_user}.aufk
where "$rowid$" &gt; #{rowids} and aedat != '00000000' and aedat = CURRENT_DATE ${hana_mandt} where "$rowid$" &gt; #{rowids} and aedat != '00000000' and aedat = CURRENT_DATE ${hana_mandt}
order by "$rowid$" order by "$rowid$"
...@@ -423,13 +418,18 @@ ...@@ -423,13 +418,18 @@
<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,
case aedat when '00000000' then null else to_date(aedat) end as aedat, upddt, aedat, upddt
(to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm
from ${hana_user}.Bkpf from ${hana_user}.Bkpf
where "$rowid$" &gt; #{rowids} and aedat != '00000000' and aedat = CURRENT_DATE ${hana_mandt} where "$rowid$" &gt; #{rowids} and aedat != '00000000' and aedat = CURRENT_DATE ${hana_mandt}
order by "$rowid$" order by "$rowid$"
</select> </select>
<select id="selectKna1CheckUpdate" parameterType="Kna1" resultType="Kna1">
select top 20 "$rowid$" as rowids,
kunnr, name1, name2, mandt, ktokd, updat
from ${hana_user}.Kna1
where "$rowid$" &gt; #{rowids} and updat != '00000000' and updat = CURRENT_DATE ${hana_mandt}
order by "$rowid$"
</select>
...@@ -450,12 +450,12 @@ ...@@ -450,12 +450,12 @@
</select> </select>
<select id="selectAufkById" parameterType="Aufk" resultType="Aufk"> <select id="selectAufkById" parameterType="Aufk" resultType="Aufk">
select kdauf,kdpos,mandt,aufnr,erdat,erfzeit,ernam,aenam,bukrs,loekz,auart,werks, select kdauf,kdpos,mandt,aufnr,erdat,erfzeit,ernam,aenam,bukrs,loekz,auart,werks,
case aedat when '00000000' then null else to_date(aedat) end as aedat aedat
from ${hana_user}.aufk from ${hana_user}.aufk
where mandt = #{mandt} and aufnr = #{aufnr} where mandt = #{mandt} and aufnr = #{aufnr}
</select> </select>
<select id="selectKna1ById" parameterType="Kna1" resultType="Kna1"> <select id="selectKna1ById" parameterType="Kna1" resultType="Kna1">
select kunnr, name1, name2, mandt, ktokd select kunnr, name1, name2, mandt, ktokd, updat
from ${hana_user}.kna1 from ${hana_user}.kna1
where kunnr = #{kunnr} and mandt = #{mandt} where kunnr = #{kunnr} and mandt = #{mandt}
</select> </select>
...@@ -511,19 +511,17 @@ ...@@ -511,19 +511,17 @@
</select> </select>
<select id="selectLikpById" parameterType="Likp" resultType="Likp"> <select id="selectLikpById" parameterType="Likp" resultType="Likp">
select select
vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr, vbeln, mandt, erdat, wadat_ist, ctlpc, kunnr, aedat,lfuhr
case wadat_ist when '00000000' then null else (to_date(wadat_ist)||' '||to_time(lfuhr)) end as wadat_ist2lfuhr
from ${hana_user}.likp from ${hana_user}.likp
where vbeln = #{vbeln} and mandt = #{mandt} where vbeln = #{vbeln} and mandt = #{mandt}
</select> </select>
<select id="selectBkpfById" parameterType="Bkpf" resultType="Bkpf"> <select id="selectBkpfById" parameterType="Bkpf" resultType="Bkpf">
select select mandt, bukrs, belnr, gjahr, blart, bldat, budat,monat,cpudt, cputm,
mandt, bukrs, belnr, gjahr, blart, bldat, budat,monat,cpudt, cputm, aedat, upddt
case aedat when '00000000' then null else to_date(aedat) end as aedat,upddt,
(to_date(cpudt)||' '||to_time(cputm)) as cpudt_cputm
from ${hana_user}.Bkpf from ${hana_user}.Bkpf
where mandt = #{mandt} and bukrs = #{bukrs} and belnr = #{belnr} and gjahr = #{gjahr} where mandt = #{mandt} and bukrs = #{bukrs} and belnr = #{belnr} and gjahr = #{gjahr}
</select> </select>
<select id="selectLipsById" parameterType="Lips" resultType="Lips"> <select id="selectLipsById" parameterType="Lips" resultType="Lips">
select select
vbeln, posnr, vgbel, vgpos, mandt, matnr, matkl, arktx, werks, lgort, vbeln, posnr, vgbel, vgpos, mandt, matnr, matkl, arktx, werks, lgort,
...@@ -583,7 +581,6 @@ ...@@ -583,7 +581,6 @@
select select
a.vbeln, a.mandt, a.vbtyp, a.audat, a.waerk, a.kalsm, a.ctlpc, a.kunnr, a.bukrs_vf, a.bstnk, 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, b.pernr,
case a.erdat when '00000000' then null else (to_date(a.erdat)||' '||to_time(a.erzet)) end as erdat2erzet,
a.erdat, a.erzet, a.spart a.erdat, a.erzet, a.spart
from ${hana_user}.vbak a from ${hana_user}.vbak a
left join ( left join (
......
...@@ -800,6 +800,15 @@ ...@@ -800,6 +800,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="checkUpdateServiceImpl" />
<property name="targetMethod" value="selectKna1CheckByUpdate" />
</bean>
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
<!-- 删除流程 --> <!-- 删除流程 -->
<bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
...@@ -838,6 +847,15 @@ ...@@ -838,6 +847,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="selectKna1CheckByDelete" />
</bean>
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
</list> </list>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论