diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.class b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.class index 89a228d..4035800 100644 Binary files a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.class and b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.class differ diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSummaryServiceImpl.class b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSummaryServiceImpl.class index 5931ff0..6a295a8 100644 Binary files a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSummaryServiceImpl.class and b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSummaryServiceImpl.class differ diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.class b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.class index d7533b7..41dcd97 100644 Binary files a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.class and b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/PurchaseDataSyncServiceImpl.class differ diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleDataSyncServiceImpl.class b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleDataSyncServiceImpl.class index d5382a1..72a2f6a 100644 Binary files a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleDataSyncServiceImpl.class and b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleDataSyncServiceImpl.class differ diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/libs/com.awspaas.user.apps.bnbm.datalinkup-1.0-SNAPSHOT.jar b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/libs/com.awspaas.user.apps.bnbm.datalinkup-1.0-SNAPSHOT.jar index b8a9c36..ca64ba5 100644 Binary files a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/libs/com.awspaas.user.apps.bnbm.datalinkup-1.0-SNAPSHOT.jar and b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/libs/com.awspaas.user.apps.bnbm.datalinkup-1.0-SNAPSHOT.jar differ diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/tmp/compileJava/previous-compilation-data.bin b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/tmp/compileJava/previous-compilation-data.bin index 44303de..1d8172b 100644 Binary files a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/tmp/compileJava/previous-compilation-data.bin and b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.java b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.java index 85d9f43..7cbbf2b 100644 --- a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.java +++ b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/controller/DataLinkUpController.java @@ -137,6 +137,7 @@ public class DataLinkUpController { String targetTable = config.getString("LDB"); String partitionField = config.getString("FQBZD"); String tableName = config.getString("TBB"); + String tablename = config.getString("TABLENAME"); String bkgs = config.getString("SSBK"); List fieldMappings = SDK.getBOAPI() @@ -144,6 +145,36 @@ public class DataLinkUpController { .addQuery("BINDID =", config.optString("_BINDID")) .list(); + // 判断库存同步明细和汇总明细,如果是月初第一天就将上月最后一天数据存储到快照表 + if("库存".equals(tablename)){ + if (LocalDate.now().getDayOfMonth() == 1) { + LOGGER.info("当天为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()) { // 全量删除 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/PurchaseDataSummaryServiceImpl.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/PurchaseDataSummaryServiceImpl.java index 492e584..f929f98 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/PurchaseDataSummaryServiceImpl.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/PurchaseDataSummaryServiceImpl.java @@ -7,6 +7,7 @@ import com.actionsoft.bpms.util.DBSql; import com.actionsoft.sdk.local.SDK; import com.awspaas.user.apps.bnbm.datalinkup.entity.DateRange; import com.awspaas.user.apps.bnbm.datalinkup.service.DataSummaryService; +import com.awspaas.user.apps.bnbm.datalinkup.util.PurchaseUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -204,25 +205,11 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 2. 根据年月汇总板块、基地、年月、当期、上期、同期数据 monthlyBaseSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); - // 库存方法汇总 每月、板块、库存组织 -// calculateMonthlyInventoryData(year, month, yearMonth, bkgs, distinctList); - // 移动到下个月 monthCal.add(Calendar.MONTH, 1); } } - /** - * 库存方法汇总 每月、板块、库存组织 - * @param year - * @param month - * @param yearMonth - * @param bkgs - * @param distinctList - */ - private void calculateMonthlyInventoryData(int year, int month, String yearMonth, String bkgs, List distinctList) { - } - /** * 计算日度维度数据 */ @@ -599,26 +586,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { BO summaryBO = new BO(); summaryBO.set("YEARMONTH", yearMonth); -// List bnbmCgPzwlfl = SDK.getBOAPI().query("BO_EU_BNBM_CG_PZWLFL"). -// addQuery("BKMC = ", bkgs).addQuery("WLMC LIKE '%" + wlmc + "%'", null).list(); -// if (bnbmCgPzwlfl!=null){ -// String wlfl = bnbmCgPzwlfl.stream().map(o -> o.getString("WLFL")).collect(Collectors.joining("|")); -// summaryBO.set("WLMC", wlfl); -// }else { - if(("龙牌".equals(bkgs) || "梦牌".equals(bkgs) || "泰山石膏".equals(bkgs)) - && (wlmc.contains("脱硫石膏") || wlmc.contains("护面纸"))){ - summaryBO.set("WLMC", "脱硫石膏"); - } else if ("泰山石膏".equals(bkgs) && wlmc.contains("镀锌带钢")) { - summaryBO.set("WLMC", "镀锌带钢"); - } else if (("龙牌".equals(bkgs) || "梦牌".equals(bkgs)) - && (wlmc.equals("轻钢镀锌带钢") || wlmc.equals("镀锌带钢"))) { - summaryBO.set("WLMC", "镀锌带钢"); - } else if (("泰山石膏".equals(bkgs) || "龙牌".equals(bkgs) || "梦牌".equals(bkgs)) && wlmc.contains("乳液")) { - continue; - }else { - summaryBO.set("WLMC", wlmc); - } -// } + summaryBO.set("WLMC", wlmc); summaryBO.set("CGZE", currentMonthRow.getDouble("totalAmount")); summaryBO.set("CGZL", currentMonthRow.getDouble("totalQuantity")); double avgPrice = currentMonthRow.getDouble("totalQuantity") != 0 ? 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 e2b8910..3cbcf0b 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 @@ -11,6 +11,7 @@ import com.actionsoft.sdk.local.SDK; import com.actionsoft.sdk.local.api.cc.RDSAPI; import com.awspaas.user.apps.bnbm.datalinkup.entity.DateRange; import com.awspaas.user.apps.bnbm.datalinkup.service.DataSyncService; +import com.awspaas.user.apps.bnbm.datalinkup.util.PurchaseUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -107,6 +108,7 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { // 判断库存同步明细和汇总明细,如果是月初第一天就将上月最后一天数据存储到快照表 if("库存".equals(tablename)){ if (LocalDate.now().getDayOfMonth() == 1) { + LOGGER.info("当天为1号,将前一天同步的全部数据存为快照,在删除同步新的全量库存数据"); // 执行同步逻辑 List list = SDK.getBOAPI().query(targetTable).list(); int pageSize = 1000; @@ -667,6 +669,7 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String startDate = ""; String endDate = ""; + PurchaseUtil purchaseUtil = new PurchaseUtil(); try { do { if (startDated == null || endDated == null) { @@ -712,6 +715,18 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { bo.set(key, map.get(key)); } } + // 如果是采购_入库单汇总 刷新物料名称 + if (hzb.equals("BO_EU_DWD_ORDER_RKD_HZ")){ + String wlmc = bo.getString("WLMC"); + String bkgs = bo.getString("BKGS"); + String wlbm = bo.getString("WLBM"); + String jldw = bo.getString("JLDW"); + String wlfl = bo.getString("WLFL"); + Double djhyf = Double.parseDouble(bo.getString("DJHYF")); + String newWlmc = purchaseUtil.materialClassificationFiltering(bkgs, wlmc, wlbm, jldw, djhyf, wlfl); + bo.set("WLMC",newWlmc); + LOGGER.info("采购_入库单汇总,刷新物料名称------物料名称:{},板块公司:{},物料编码:{},入库单位:{},单价:{},物料分类:{}",wlmc,bkgs,wlbm,jldw,djhyf,wlfl); + } bos.add(bo); } diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/PurchaseUtil.java b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/PurchaseUtil.java new file mode 100644 index 0000000..dac67c3 --- /dev/null +++ b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/PurchaseUtil.java @@ -0,0 +1,92 @@ +package com.awspaas.user.apps.bnbm.datalinkup.util; + +/** + * 采购模块工具类 + */ +public class PurchaseUtil { + /** + * 判断物料名称所属分类 + * @param bkgs 板块名称 + * @param wlmc 物料名称 + * @param wlbm 物料编码 + * @param jldw 计量单位 + * @param djhyf 单价含运费 + * @param wlfl 物料分类 + * @return newWlmc 物料名称 + */ + public static String materialClassificationFiltering(String bkgs, String wlmc, String wlbm, String jldw, Double djhyf, String wlfl) { + String newWlmc = ""; + // 脱硫石膏 + if(("龙牌".equals(bkgs) || "梦牌".equals(bkgs) || "泰山石膏".equals(bkgs)) && wlmc.contains("脱硫石膏")){ + newWlmc = "脱硫石膏"; + } + // 镀锌带钢 + else if ("泰山石膏".equals(bkgs) && wlmc.contains("镀锌带钢")) { + newWlmc = "镀锌带钢"; + } else if (("龙牌".equals(bkgs) || "梦牌".equals(bkgs)) + && (wlmc.equals("轻钢镀锌带钢") || wlmc.equals("镀锌带钢"))) { + newWlmc = "镀锌带钢"; + } + // 煤炭 + else if (("龙牌".equals(bkgs) || "梦牌".equals(bkgs) + && ("煤炭".contains(wlmc) || "籽煤".contains(wlmc) || "褐煤".contains(wlmc)))) { + newWlmc = "煤炭"; + } else if ("泰山石膏".equals(bkgs) && ("原煤".contains(wlmc) || "contains".equals(wlmc) || "contains".equals(wlmc))) { + newWlmc = "煤炭"; + } + // 护面纸 + else if (("龙牌".equals(bkgs) || "泰山石膏".equals(bkgs)) + && "护面纸".contains(wlmc)) { + newWlmc = "护面纸"; + } + // 乳液 + else if (("北新防水".equals(bkgs) || "北新涂料".equals(bkgs) || "北新嘉宝莉".equals(bkgs) + && "乳液".contains(wlmc))){ + newWlmc = "乳液"; + } + // 钛白粉 + else if (("北新防水".equals(bkgs) || "北新涂料".equals(bkgs) || "北新嘉宝莉".equals(bkgs) + && "钛白粉".contains(wlmc))){ + newWlmc = "钛白粉"; + } + // 重钙 + else if (("北新防水".equals(bkgs) || "北新涂料".equals(bkgs) || "北新嘉宝莉".equals(bkgs) + && "重钙".contains(wlmc))){ + newWlmc = "重钙"; + } + // 包装袋 + else if ("龙牌".equals(bkgs) && ("编织袋".equals(wlmc) || "阀口袋".equals(wlmc) || "两纸一膜".equals(wlmc) + || "三纸一膜".contains(wlmc) || "包装袋".contains(wlmc) || "包装".contains(wlmc))) { + newWlmc = "包装袋"; + } else if ("泰山石膏".equals(bkgs) && ("编织袋".contains(wlmc) || "纸袋".contains(wlmc))) { + newWlmc = "包装袋"; + } else if ("梦牌".equals(bkgs) && "包装袋".contains(wlmc)) { + newWlmc = "包装袋"; + } else if ("北新防水".equals(bkgs) && ("包装袋".contains(wlmc) || "阀口袋".contains(wlmc) || "口袋".contains(wlmc))) { + newWlmc = "包装袋"; + } else if ("北新涂料".equals(bkgs) && "包装袋".contains(wlmc)) { + newWlmc = "包装袋"; + } else if ("北新嘉宝莉".equals(bkgs) && ("阀口袋".contains(wlmc) || "腻子粉袋".contains(wlmc) || "阀口纸袋".contains(wlmc) + || "纸袋".equals(wlmc) || "编织袋".equals(wlmc))) { + newWlmc = "包装袋"; + } + // 包装桶 + else if ("龙牌".equals(bkgs) && wlbm.contains("1023411")) { + newWlmc = "包装桶"; + } else if ("北新防水".equals(bkgs) && wlmc.contains("桶") && jldw.contains("个")) { + newWlmc = "包装桶"; + } else if ("北新嘉宝莉".equals(bkgs) && wlmc.contains("盖") && djhyf < 5.0) { + newWlmc = "桶盖"; + } else if ("北新嘉宝莉".equals(bkgs) && wlmc.contains("桶身")) { + newWlmc = "包装桶"; + } else if ("北新嘉宝莉".equals(bkgs) && wlmc.contains("桶") && jldw.contains("个")) { + newWlmc = "包装桶"; + } else if ("北新嘉宝莉".equals(bkgs) && wlmc.contains("罐") + && !wlmc.contains("箱") && wlfl.contains("包装物") && jldw.equals("个")) { + newWlmc = "包装桶"; + } else { + newWlmc = wlmc; + } + return newWlmc; + } +}