From 7b1ed3e1d5141b9434a03b55cf5cf8abba3dedd8 Mon Sep 17 00:00:00 2001 From: llllon Date: Wed, 27 Aug 2025 17:19:17 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=87=87=E8=B4=AD=5F=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=A2=9E=E5=8A=A0=E6=AF=8F=E6=9C=881=E5=8F=B7?= =?UTF-8?q?=E5=B0=86=E5=89=8D=E4=B8=80=E5=A4=A9=E6=95=B0=E6=8D=AE=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E5=88=B0=E5=BF=AB=E7=85=A7=E8=A1=A8=E9=87=8C=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8=E5=85=A8=E9=87=8F=E5=88=A0=E9=99=A4=E5=90=8E=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurchaseDataSyncServiceImpl.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) 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()) { // 全量删除