1、采购_库存增加每月1号将前一天数据存储到快照表里,在全量删除后更新
This commit is contained in:
parent
b207a61f74
commit
7b1ed3e1d5
@ -18,6 +18,7 @@ import org.slf4j.LoggerFactory;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -81,6 +82,7 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService {
|
||||
String targetTable = mainConfig.getString("LDB");
|
||||
String ccId = mainConfig.getString("CC_ID");
|
||||
String partitionField = mainConfig.getString("FQBZD");
|
||||
String tablename = mainConfig.getString("TABLENAME");
|
||||
String bkgs = mainConfig.getString("BKGS");
|
||||
DateRange dateRange = new DateRange();
|
||||
|
||||
@ -102,6 +104,35 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService {
|
||||
Date startDate = null;
|
||||
Date endDate = null;
|
||||
|
||||
// 判断库存同步明细和汇总明细,如果是月初第一天就将上月最后一天数据存储到快照表
|
||||
if("库存".equals(tablename)){
|
||||
if (LocalDate.now().getDayOfMonth() == 1) {
|
||||
// 执行同步逻辑
|
||||
List<BO> list = SDK.getBOAPI().query(targetTable).list();
|
||||
int pageSize = 1000;
|
||||
int total = list.size();
|
||||
|
||||
// 分页处理并批量插入
|
||||
for (int start = 0; start < total; start += pageSize) {
|
||||
int end = Math.min(start + pageSize, total);
|
||||
List<BO> subList = list.subList(start, end);
|
||||
|
||||
// 将子列表转换为目标BO的实例(如果需要字段映射,需在此处实现)
|
||||
ArrayList<BO> boList = new ArrayList<>();
|
||||
for (BO sourceBo : subList) {
|
||||
// 这里应根据实际字段映射关系复制属性
|
||||
// 例如:targetBo.set("fieldName", sourceBo.get("fieldName"));
|
||||
boList.add(sourceBo);
|
||||
}
|
||||
|
||||
// 批量插入当前分页数据
|
||||
if (!boList.isEmpty()) {
|
||||
SDK.getBOAPI().createDataBO("BO_EU_CG_KC_YDKBB", boList, UserContext.fromUID("admin"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 删除目标表数据(根据时间字段是否为空决定删除范围)
|
||||
if (timeField == null || timeField.isEmpty()) {
|
||||
// 全量删除
|
||||
|
||||
Loading…
Reference in New Issue
Block a user