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 cf873c0..89a228d 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 27ceb44..5931ff0 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 51ab5c6..d7533b7 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/SaleCountDimensionImpl.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/SaleCountDimensionImpl.class index 225d8b4..6f2e41a 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/SaleCountDimensionImpl.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/SaleCountDimensionImpl.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/SaleDataSummaryServiceImpl.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/SaleDataSummaryServiceImpl.class index f7ee92d..338ebdf 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/SaleDataSummaryServiceImpl.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/SaleDataSummaryServiceImpl.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 d97a82a..d5382a1 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 3c5b622..b8a9c36 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 37757bb..44303de 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 19178d5..85d9f43 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 @@ -467,6 +467,8 @@ public class DataLinkUpController { hzb = "BO_EU_DWD_ORDER_YFD_HZ"; } else if ("库存".equals(tablename)) { hzb = "BO_EU_DWD_ORDER_KC_HZ"; + } else if ("物流表".equals(tablename)) { + hzb = "BO_EU_CG_WLD_HZ"; } else { hzb = "BO_EU_DWD_ORDER_RKD_HZ"; } 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/ProductionDataSyncServiceImpl.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/ProductionDataSyncServiceImpl.java index 3549c52..1e1fd5a 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/ProductionDataSyncServiceImpl.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/ProductionDataSyncServiceImpl.java @@ -392,6 +392,8 @@ public class ProductionDataSyncServiceImpl implements DataSyncService { public int processAndInsertData(List sourceData, List mappings, String targetTable) { String bkgs = ""; + Set bkgsSet = null; + LOGGER.info("当前查询到的数据中的板块:{}",bkgs); if (sourceData.isEmpty()) { LOGGER.info("没有需要同步的数据"); return 0; @@ -408,7 +410,6 @@ public class ProductionDataSyncServiceImpl implements DataSyncService { try { // 字段映射转换 BO targetData = convertFields(record, mappings); - bkgs = targetData.getString("BKGS"); batchList.add(targetData); // 批量插入条件:达到批处理大小或最后一条 @@ -416,6 +417,7 @@ public class ProductionDataSyncServiceImpl implements DataSyncService { // 使用管理员权限批量插入 SDK.getBOAPI().createDataBO(targetTable, batchList, UserContext.fromUID("admin")); successCount += batchList.size(); + bkgsSet = sourceData.stream().map(o->o.getString("BKGS")).distinct().collect(Collectors.toSet()); batchList.clear(); // 清空批次 } } catch (Exception e) { @@ -423,7 +425,8 @@ public class ProductionDataSyncServiceImpl implements DataSyncService { } } // 增加详细日志输出:共处理多少条,成功同步多少条 - LOGGER.info("同步板块为:{},落地表为:{},本次处理{}条数据,成功同步{}条数据到表[{}]", + bkgs = bkgsSet.toArray().toString(); + LOGGER.info("同步板块为:{};落地表为:{},本次处理{}条数据,成功同步{}条数据到表[{}]", bkgs,targetTable,processedCount, successCount, targetTable); return successCount; } 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 2fc35af..492e584 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 @@ -48,6 +48,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { */ private static final String BO_EU_DWD_ORDER_RKD_HZ = "BO_EU_DWD_ORDER_RKD_HZ"; + // 缓存物料分类列表 private List distinctMaterialList = null; private long lastMaterialListUpdateTime = 0; @@ -98,7 +99,8 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { } try { - List maps = DBSql.getMaps("SELECT WLMC FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + " GROUP BY WLMC"); +// List maps = DBSql.getMaps("SELECT WLMC FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + " GROUP BY WLMC"); + List maps = DBSql.getMaps("SELECT WLMC FROM " + BO_EU_DWD_ORDER_RKD_HZ + " GROUP BY WLMC"); Set resultSet = new HashSet<>(); for (RowMap row : maps) { String wlmc = row.getString("WLMC"); @@ -202,11 +204,25 @@ 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) { + } + /** * 计算日度维度数据 */ @@ -254,33 +270,46 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 1. 删除该月份已存在的汇总数据(避免重复) String deleteSql = "DELETE FROM " + JD_PROCUREMENT_DETAILS_YEAR_MONTH + " WHERE BKGS = ? AND YEARMONTH = ?"; - DBSql.update(deleteSql, new Object[]{bkgs, yearMonth}); + int update = DBSql.update(deleteSql, new Object[]{bkgs, yearMonth}); + LOGGER.info("采购_基地_年月采购明细:{}年{}月物料采购月度汇总数据,板块公司:{},删除了{}条数据", year, month, bkgs, update); // 2. 一次性查询当前月、上月和去年同期数据(包含基地信息) // 当前月数据 - String currentMonthSql = "SELECT WLMC, XQGC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ LIKE ? " + - "GROUP BY WLMC, XQGC"; +// String currentMonthSql = "SELECT WLMC, XQGC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ LIKE ? " + +// "GROUP BY WLMC, XQGC"; + String currentMonthSql = "SELECT WLMC, SLGC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + "FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ LIKE ? " + + "GROUP BY WLMC, SLGC"; List currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, yearMonth + "%"); // 上月数据 List lastMonthData = Collections.emptyList(); if (StringUtils.isNotBlank(yearLastMonth)) { - String lastMonthSql = "SELECT WLMC, XQGC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ LIKE ? " + - "GROUP BY WLMC, XQGC"; +// String lastMonthSql = "SELECT WLMC, XQGC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ LIKE ? " + +// "GROUP BY WLMC, XQGC"; + String lastMonthSql = "SELECT WLMC, SLGC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + "FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ LIKE ? " + + "GROUP BY WLMC, SLGC"; lastMonthData = DBSql.getMaps(lastMonthSql, bkgs, yearLastMonth + "%"); } // 去年同期数据 List lastYearMonthData = Collections.emptyList(); if (StringUtils.isNotBlank(lastYearMonth)) { - String lastYearMonthSql = "SELECT WLMC, XQGC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ LIKE ? " + - "GROUP BY WLMC, XQGC"; +// String lastYearMonthSql = "SELECT WLMC, XQGC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ LIKE ? " + +// "GROUP BY WLMC, XQGC"; + String lastYearMonthSql = "SELECT WLMC, SLGC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + " FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ LIKE ? " + + " GROUP BY WLMC, SLGC"; lastYearMonthData = DBSql.getMaps(lastYearMonthSql, bkgs, lastYearMonth + "%"); } @@ -290,7 +319,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { .collect(Collectors.toMap( row -> { String wlmc = row.getString("WLMC"); - String base = row.getString("XQGC"); + String base = row.getString("SLGC"); String processedWlmc = processMaterialName(wlmc); return processedWlmc + "|" + base; }, @@ -313,7 +342,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { .collect(Collectors.toMap( row -> { String wlmc = row.getString("WLMC"); - String base = row.getString("XQGC"); + String base = row.getString("SLGC"); String processedWlmc = processMaterialName(wlmc); return processedWlmc + "|" + base; }, @@ -336,7 +365,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { .collect(Collectors.toMap( row -> { String wlmc = row.getString("WLMC"); - String base = row.getString("XQGC"); + String base = row.getString("SLGC"); String processedWlmc = processMaterialName(wlmc); return processedWlmc + "|" + base; }, @@ -357,14 +386,14 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 4. 获取所有基地 Set bases = new HashSet<>(); for (RowMap row : currentMonthData) { - bases.add(row.getString("XQGC")); - } - for (RowMap row : lastMonthData) { - bases.add(row.getString("XQGC")); - } - for (RowMap row : lastYearMonthData) { - bases.add(row.getString("XQGC")); + bases.add(row.getString("SLGC")); } +// for (RowMap row : lastMonthData) { +// bases.add(row.getString("SLGC")); +// } +// for (RowMap row : lastYearMonthData) { +// bases.add(row.getString("SLGC")); +// } // 5. 批量插入 List bos = new ArrayList<>(); @@ -377,13 +406,25 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { BO summaryBO = new BO(); summaryBO.set("BKGS", bkgs); summaryBO.set("JD", base); - List bnbmCgPzwlfl = SDK.getBOAPI().query("BO_EU_BNBM_CG_PZWLFL"). - addQuery("BKMC = ", bkgs).addQuery("WLMC LIKE '%" + wlmc + "%'", null).list(); +// 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("YEARMONTH", yearMonth); summaryBO.set("CGZE", currentMonthRow.getDouble("totalAmount")); @@ -451,33 +492,45 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 1. 删除该月份已存在的汇总数据(避免重复) String deleteSql = "DELETE FROM " + PROCUREMENT_DETAILS_YEAR_MONTH + " WHERE BKGS = ? AND YEARMONTH = ?"; - DBSql.update(deleteSql, new Object[]{bkgs, yearMonth}); + int update = DBSql.update(deleteSql, new Object[]{bkgs, yearMonth}); + LOGGER.info("采购_年月采购明细:{}年{}月物料采购月度汇总数据,板块公司:{},删除了{}条数据", year, month, bkgs, update); - // 2. 一次性查询当前月、上月和去年同期数据 // 当前月数据 - String currentMonthSql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ LIKE ? " + - "GROUP BY WLMC"; +// String currentMonthSql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ LIKE ? " + +// "GROUP BY WLMC"; + String currentMonthSql = "SELECT WLMC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + " FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ LIKE ? " + + " GROUP BY WLMC"; List currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, yearMonth + "%"); // 上月数据 List lastMonthData = Collections.emptyList(); if (StringUtils.isNotBlank(yearLastMonth)) { - String lastMonthSql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ LIKE ? " + - "GROUP BY WLMC"; +// String lastMonthSql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ LIKE ? " + +// "GROUP BY WLMC"; + String lastMonthSql = "SELECT WLMC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + " FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ LIKE ? " + + " GROUP BY WLMC"; lastMonthData = DBSql.getMaps(lastMonthSql, bkgs, yearLastMonth + "%"); } // 去年同期数据 List lastYearMonthData = Collections.emptyList(); if (StringUtils.isNotBlank(lastYearMonth)) { - String lastYearMonthSql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ LIKE ? " + - "GROUP BY WLMC"; +// String lastYearMonthSql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ LIKE ? " + +// "GROUP BY WLMC"; + String lastYearMonthSql = "SELECT WLMC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + " FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ LIKE ? " + + " GROUP BY WLMC"; lastYearMonthData = DBSql.getMaps(lastYearMonthSql, bkgs, lastYearMonth + "%"); } @@ -538,19 +591,33 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 4. 批量插入 List bos = new ArrayList<>(); - for (String wlmc : distinctList) { - RowMap currentMonthRow = currentMonthMap.get(wlmc); +// for (String wlmc : distinctList) { +// RowMap currentMonthRow = currentMonthMap.get(wlmc); + for (RowMap currentMonthRow : currentMonthData) { + String wlmc = currentMonthRow.getString("WLMC"); if (currentMonthRow == null || currentMonthRow.getDouble("totalAmount") == 0.0) continue; 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(); +// 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("CGZE", currentMonthRow.getDouble("totalAmount")); summaryBO.set("CGZL", currentMonthRow.getDouble("totalQuantity")); @@ -614,12 +681,17 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 1. 删除该日期已存在的汇总数据 String deleteSql = "DELETE FROM " + PROCUREMENT_DETAILS_YEAR_MONTH_DAY + " WHERE BKGS = ? AND RQ = ?"; - DBSql.update(deleteSql, new Object[]{bkgs,dateStr}); + int update = DBSql.update(deleteSql, new Object[]{bkgs, dateStr}); + LOGGER.info("采购_年月日采购明细:{}年{}月物料采购月度汇总数据,板块公司:{},删除了{}条数据", year, month, bkgs, update); // 2. 查询当天数据 - String querySql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + - "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + - " WHERE BKGS = ? AND CGRQ = ? " + +// String querySql = "SELECT WLMC, SUM(JSHJ) AS totalAmount, SUM(YSSL) AS totalQuantity " + +// "FROM " + PROCUREMENT_PURCHASE_ORDER_SUMMARY + +// " WHERE BKGS = ? AND CGRQ = ? " + +// "GROUP BY WLMC"; + String querySql = "SELECT WLMC, SUM(JSHJHYF) AS totalAmount, SUM(RKSL) AS totalQuantity " + + "FROM " + BO_EU_DWD_ORDER_RKD_HZ + + " WHERE BKGS = ? AND DJRQ = ? " + "GROUP BY WLMC"; List dailyData = DBSql.getMaps(querySql, bkgs, dateStr); @@ -649,13 +721,25 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { BO summaryBO = new BO(); summaryBO.set("RQ", dateStr); - List bnbmCgPzwlfl = SDK.getBOAPI().query("BO_EU_BNBM_CG_PZWLFL"). - addQuery("BKMC = ", bkgs).addQuery("WLMC LIKE '%" + wlmc + "%'", null).list(); +// 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("CGZE", row.getDouble("totalAmount")); summaryBO.set("CGZL", row.getDouble("totalQuantity")); @@ -703,11 +787,12 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { try { // 1. 删除该日期已存在的汇总数据(避免重复) String deleteSql = "DELETE FROM BO_EU_CG_NYRKMX WHERE BKGS = ? AND DATE = ?"; - DBSql.update(deleteSql, new Object[]{bkgs, dateStr}); + int update = DBSql.update(deleteSql, new Object[]{bkgs, dateStr}); LOGGER.info("已清理{}的旧入库明细数据", dateStr); + LOGGER.info("采购_年月入库明细:{}年{}月物料采购月度汇总数据,板块公司:{},删除了{}条数据", year, month, bkgs, update); // 2. 计算总记录数用于分页 - String countSql = "SELECT COUNT(1) AS total FROM BO_EU_DWD_ORDER_RKD_HZ " + + String countSql = "SELECT COUNT(1) AS total FROM " + BO_EU_DWD_ORDER_RKD_HZ + " " + "WHERE BKGS = ? AND DATE(DJRQ) = ?"; RowMap countResult = DBSql.getMap(countSql, bkgs, dateStr); int totalCount = countResult.getInt("total"); @@ -727,18 +812,11 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { int offset = page * pageSize; LOGGER.debug("正在处理第{}页入库数据,偏移量:{}", page + 1, offset); - // 分页查询入库数据 -// String querySql = "SELECT DJRQ, DJH, WLBM, WLMC, GGXH, SLGC, RKSL, JLDW, " + -// "HSDJHYF, JEHYF, GYSNAME, CGDDH " + -// "FROM BO_EU_DWD_ORDER_RKD_HZ " + -// "WHERE BKGS = ? AND DATE(DJRQ) = ? " + -// "ORDER BY DJH LIMIT ? OFFSET ?"; - String querySql = "SELECT DJRQ, DJH, WLMC, WLBM, GGXH, SLGC, SUM(RKSL) AS RKSL, " + - "JLDW, HSDJHYF, SUM(JEHYF) AS JEHYF, GYSNAME, CGDDH " + - "FROM BO_EU_DWD_ORDER_RKD_HZ WHERE BKGS = ? AND DATE(DJRQ) = ? " + - "GROUP BY DJRQ,DJH,WLMC "+ - "ORDER BY DJH LIMIT ? OFFSET ?"; + " JLDW, HSDJHYF, SUM(JEHYF) AS JEHYF, GYSNAME, CGDDH " + + " FROM "+BO_EU_DWD_ORDER_RKD_HZ+" WHERE BKGS = ? AND DATE(DJRQ) = ? " + + " GROUP BY DJRQ,DJH,WLMC "+ + " ORDER BY DJH LIMIT ? OFFSET ?"; List pageData = DBSql.getMaps(querySql, bkgs, dateStr, pageSize, offset); LOGGER.debug("第{}页查询到{}条记录", page + 1, pageData.size()); @@ -750,7 +828,21 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { detailBO.set("DATE", row.getDate("DJRQ")); // 入库日期 detailBO.set("RKDH", row.getString("DJH")); // 入库单号 detailBO.set("WLBM", row.getString("WLBM")); // 物料编码 - detailBO.set("WLMC", row.getString("WLMC")); // 物料名称 + String wlmc = row.getString("WLMC"); + if(("龙牌".equals(bkgs) || "梦牌".equals(bkgs) || "泰山石膏".equals(bkgs)) + && (wlmc.contains("脱硫石膏") || wlmc.contains("护面纸"))){ + detailBO.set("WLMC", "脱硫石膏"); + } else if ("泰山石膏".equals(bkgs) && wlmc.contains("镀锌带钢")) { + detailBO.set("WLMC", "镀锌带钢"); + } else if (("龙牌".equals(bkgs) || "梦牌".equals(bkgs)) + && (wlmc.equals("轻钢镀锌带钢") || wlmc.equals("镀锌带钢"))) { + detailBO.set("WLMC", "镀锌带钢"); + } else if (("泰山石膏".equals(bkgs) || "龙牌".equals(bkgs) || "梦牌".equals(bkgs)) && wlmc.contains("乳液")) { + continue; + }else { + detailBO.set("WLMC", wlmc); + } +// detailBO.set("WLMC", ); // 物料名称 detailBO.set("GGXH", row.getString("GGXH")); // 规格型号 detailBO.set("GC", row.getString("SLGC")); // 收料工厂 detailBO.set("RKSL", row.getDouble("RKSL")); // 入库数量 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 c8ee3f4..5b569f0 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 @@ -393,6 +393,7 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { public int processAndInsertData(List sourceData, List mappings, String targetTable) { String bkgs = ""; + Set bkgsSet = null; if (sourceData.isEmpty()) { LOGGER.info("没有需要同步的数据"); return 0; @@ -409,7 +410,6 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { try { // 字段映射转换 BO targetData = convertFields(record, mappings); - bkgs = targetData.getString("BKGS"); batchList.add(targetData); // 批量插入条件:达到批处理大小或最后一条 @@ -417,6 +417,7 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { // 使用管理员权限批量插入 SDK.getBOAPI().createDataBO(targetTable, batchList, UserContext.fromUID("admin")); successCount += batchList.size(); + bkgsSet = sourceData.stream().map(o->o.getString("BKGS")).distinct().collect(Collectors.toSet()); batchList.clear(); // 清空批次 } } catch (Exception e) { @@ -424,7 +425,8 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { } } // 增加详细日志输出:共处理多少条,成功同步多少条 - LOGGER.info("同步板块为:{},落地表为:{},本次处理{}条数据,成功同步{}条数据到表[{}]", + bkgs = bkgsSet.toArray().toString(); + LOGGER.info("同步板块为:{};落地表为:{},本次处理{}条数据,成功同步{}条数据到表[{}]", bkgs,targetTable,processedCount, successCount, targetTable); return successCount; } @@ -558,6 +560,8 @@ public class PurchaseDataSyncServiceImpl implements DataSyncService { hzb = "BO_EU_DWD_ORDER_YFD_HZ"; } else if ("库存".equals(tablename)) { hzb = "BO_EU_DWD_ORDER_KC_HZ"; + } else if ("物流表".equals(tablename)) { + hzb = "BO_EU_CG_WLD_HZ"; } else { hzb = "BO_EU_DWD_ORDER_RKD_HZ"; } 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/SaleDataSummaryServiceImpl.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/SaleDataSummaryServiceImpl.java index 6fcd902..cdeb30e 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/SaleDataSummaryServiceImpl.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/SaleDataSummaryServiceImpl.java @@ -421,13 +421,13 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService { int lastYear = year - 1; int lastYearMonth = month; // 去年同月 - // 处理石膏板数据 - 当年1月到当前月 + // 处理石膏板数据 - 当年当前月 saveRevenueYearData(yearMonth, "石膏板", getRevenueToMonth(year, month, "石膏板", bkgs), getRevenueToMonth(lastYear, lastYearMonth, "石膏板", bkgs), bkgs); - // 处理轻钢龙骨数据 - 当年1月到当前月 + // 处理轻钢龙骨数据 - 当年当前月 saveRevenueYearData(yearMonth, "轻钢龙骨", getRevenueToMonth(year, month, "轻钢龙骨", bkgs), getRevenueToMonth(lastYear, lastYearMonth, "轻钢龙骨", bkgs), @@ -619,7 +619,8 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService { private BigDecimal getRevenueToMonth(int year, int month, String category, String bkgs) { String sql = "SELECT SUM(SSJERMB) AS revenue " + "FROM " + SALES_DETAIL_TABLE + " " + - "WHERE YEAR(DZRQ) = '"+year+"' AND MONTH(DZRQ) BETWEEN 1 AND '"+month+"' AND LB_1 LIKE '%"+category+"%' AND BKGS = '"+bkgs+"'"+ +// "WHERE YEAR(DZRQ) = '"+year+"' AND MONTH(DZRQ) BETWEEN 1 AND '"+month+"' AND LB_1 LIKE '%"+category+"%' AND BKGS = '"+bkgs+"'"+ + "WHERE YEAR(DZRQ) = '"+year+"' AND MONTH(DZRQ) = '"+month+"' AND LB_1 LIKE '%"+category+"%' AND BKGS = '"+bkgs+"'"+ "AND (SQ LIKE '%新疆%' OR SQ LIKE '%海南%' OR SQ LIKE '%西藏%')"; // 模糊查询 double value = DBSql.getDouble(sql, "revenue"); return BigDecimal.valueOf(value); @@ -646,7 +647,15 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService { String field = ""; String sql = ""; if (bkgs.contains("泰山")){ - field = "sales".equals(dataType) ? "SUM(XSSL)/10000" : "SUM(SSJERMB)"; +// field = "sales".equals(dataType) ? "SUM(XSSL)/10000" : "SUM(SSJERMB)"; +// field = "轻钢龙骨".equals(productType) ? "SUM(ZSSL)" : "SUM(SSJERMB)"; + if ("sales".equals(dataType) && "轻钢龙骨".equals(productType)){ + field = "SUM(ZSSL)"; + } else if ("sales".equals(dataType) && "石膏板".equals(productType)) { + field = "SUM(XSSL)/10000"; + } else if ("revenue".equals(dataType)) { + field = "SUM(SSJERMB)"; + } sql = "SELECT LB_2 AS brand, " + field + " AS value " + "FROM " + SALES_DETAIL_TABLE + " " + "WHERE YEAR(DZRQ) = ? AND MONTH(DZRQ) = ? AND LB_1 = ? AND BKGS = ? " + 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/SaleDataSyncServiceImpl.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/SaleDataSyncServiceImpl.java index 3e7dd6f..7faf271 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/SaleDataSyncServiceImpl.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/SaleDataSyncServiceImpl.java @@ -424,6 +424,7 @@ public class SaleDataSyncServiceImpl implements DataSyncService { public int processAndInsertData(List sourceData, List mappings, String targetTable) { String bkgs = ""; + Set bkgsSet = null; if (sourceData.isEmpty()) { LOGGER.info("没有需要同步的数据"); return 0; @@ -440,7 +441,6 @@ public class SaleDataSyncServiceImpl implements DataSyncService { try { // 字段映射转换 BO targetData = convertFields(record, mappings); - bkgs = targetData.getString("BKGS"); batchList.add(targetData); // 批量插入条件:达到批处理大小或最后一条 @@ -448,6 +448,7 @@ public class SaleDataSyncServiceImpl implements DataSyncService { // 使用管理员权限批量插入 SDK.getBOAPI().createDataBO(targetTable, batchList, UserContext.fromUID("admin")); successCount += batchList.size(); + bkgsSet = sourceData.stream().map(o->o.getString("BKGS")).distinct().collect(Collectors.toSet()); batchList.clear(); // 清空批次 } } catch (Exception e) { @@ -455,7 +456,8 @@ public class SaleDataSyncServiceImpl implements DataSyncService { } } // 增加详细日志输出:共处理多少条,成功同步多少条 - LOGGER.info("同步板块为:{},落地表为:{},本次处理{}条数据,成功同步{}条数据到表[{}]", + bkgs = bkgsSet.toArray().toString(); + LOGGER.info("同步板块为:{};落地表为:{},本次处理{}条数据,成功同步{}条数据到表[{}]", bkgs,targetTable,processedCount, successCount, targetTable); return successCount; }