diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.java b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.java index 5b569f0..e2b8910 100644 --- a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.java +++ b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.java @@ -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 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 subList = list.subList(start, end); + + // 将子列表转换为目标BO的实例(如果需要字段映射,需在此处实现) + ArrayList 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()) { // 全量删除