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 2f1ad4b..6048341 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 07ee181..945cc0b 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/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 b1d120d..5aedc40 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 b97b9f4..e680d44 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 adac07d..1c08e8e 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/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 9f42400..d40fe3e 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 58cf018..2a0365f 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 @@ -234,7 +234,6 @@ public class DataLinkUpController { Date startDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()); DataSummaryService summaryService = null; SaleCountDimensionImpl saleCountDimension = null; -// ExecutorService executorService = null; // 线程池用于并行处理销售业务 try { LOGGER.info("开始执行销售数据多维度汇总计算"); @@ -258,8 +257,6 @@ public class DataLinkUpController { if ("销售".equals(ssyw)) { summaryService = new SaleDataSummaryServiceImpl(); saleCountDimension = new SaleCountDimensionImpl(); -// executorService = Executors.newFixedThreadPool(2); // 创建固定大小为2的线程池 -// LOGGER.info("销售业务检测到,创建summaryService和saleCountDimension实例,初始化线程池"); }else { summaryService = new PurchaseDataSummaryServiceImpl(); LOGGER.info("采购业务检测到,创建summaryService实例"); @@ -278,44 +275,11 @@ public class DataLinkUpController { summaryService.calculateSummary(dateRange, bo); LOGGER.info("完成一体化-销售数据汇总计算,BKGS: {}", bo.get("BKGS")); - // 创建并提交两个并行任务 -// DataSummaryService finalSummaryService = summaryService; -// Future summaryFuture = executorService.submit(() -> { -// try { -// LOGGER.info("开始执行一体化-销售数据汇总计算,BKGS: {}", bo.get("BKGS")); -// finalSummaryService.calculateSummary(dateRange, bo); -// LOGGER.info("完成一体化-销售数据汇总计算,BKGS: {}", bo.get("BKGS")); -// } catch (Exception e) { -// LOGGER.error("一体化-销售数据汇总计算异常,BKGS: {}", bo.get("BKGS"), e); -// throw new RuntimeException("一体化-销售数据汇总计算失败: " + e.getMessage(), e); -// } -// }); - saleCountDimension = new SaleCountDimensionImpl(); LOGGER.info("开始执行销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS")); saleCountDimension.calculateSummary(dateRange, bo); LOGGER.info("完成销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS")); -// Future countFuture = executorService.submit(() -> { -// try { -// LOGGER.info("开始执行销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS")); -// finalSaleCountDimension.calculateSummary(dateRange, bo); -// LOGGER.info("完成销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS")); -// } catch (Exception e) { -// LOGGER.error("销售数据多维度汇总计算异常,BKGS: {}", bo.get("BKGS"), e); -// throw new RuntimeException("销售数据多维度汇总计算失败: " + e.getMessage(), e); -// } -// }); - - // 等待两个任务完成 -// try { -// summaryFuture.get(); -// countFuture.get(); -// LOGGER.info("销售数据并行计算完成,BKGS: {}", bo.get("BKGS")); -// } catch (InterruptedException | ExecutionException e) { -// LOGGER.error("销售数据并行计算执行异常,BKGS: {}", bo.get("BKGS"), e); -// throw new RuntimeException("销售数据并行计算失败: " + e.getMessage(), e); -// } } else { // 非销售业务,单线程执行 LOGGER.info("======== 开始执行采购数据汇总计算,BKGS: {} ========", bo.get("BKGS")); @@ -329,19 +293,6 @@ public class DataLinkUpController { } } } - // 如果是销售业务,关闭线程池 -// if ("销售".equals(ssyw) && executorService != null) { -// executorService.shutdown(); -// try { -// if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) { -// executorService.shutdownNow(); -// } -// } catch (InterruptedException e) { -// executorService.shutdownNow(); -// Thread.currentThread().interrupt(); -// } -// LOGGER.info("销售业务线程池已关闭"); -// } } ro.put("success", true); @@ -353,17 +304,7 @@ public class DataLinkUpController { ro.put("success", false); ro.put("message", errorMsg); - // 确保异常时关闭线程池 -// if (executorService != null) { -// executorService.shutdownNow(); -// } } -// finally { -// // 最终确保线程池关闭 -// if (executorService != null) { -// executorService.shutdown(); -// } -// } long methodEndTime = System.currentTimeMillis(); LOGGER.info("【完成】数据计算汇总操作,总耗时:{}ms", methodEndTime - methodStartTime); return ro; @@ -437,8 +378,10 @@ public class DataLinkUpController { hzb = "BO_EU_DWD_ORDER_KC_HZ"; } else if ("物流表".equals(tablename)) { hzb = "BO_EU_CG_WLD_HZ"; - } else { + } else if ("入库单".equals(tablename)){ hzb = "BO_EU_DWD_ORDER_RKD_HZ"; + }else { + LOGGER.error("当前表没有汇总表"); } LOGGER.info("汇总板块数据——采购的接口"); } 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 30dc2c5..f97bacd 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 @@ -177,10 +177,10 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { detailBO.set("DW", row.getString("JLDW")); // 单位 // 处理单价和金额,添加除零检查 - Double hsdjhyf = row.getDouble("HSDJHYF"); + Double jshjhyf = row.getDouble("JSHJHYF"); double rkdj = 0.0; - if (hsdjhyf != null && hsdjhyf != 0 && rksl != null && rksl != 0) { - rkdj = hsdjhyf / rksl; + if (jshjhyf != null && jshjhyf != 0 && rksl != null && rksl != 0) { + rkdj = jshjhyf / rksl; } detailBO.set("RKDJ", rkdj); // 入库单价 @@ -188,7 +188,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { Double dhje = row.getDouble("DHJE"); detailBO.set("RKJE", dhje != null ? dhje : 0.0); // 入库金额 } else { - Double jshjhyf = row.getDouble("JSHJHYF"); +// Double jshjhyf = row.getDouble("JSHJHYF"); detailBO.set("RKJE", jshjhyf != null ? jshjhyf : 0.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/SaleCountDimensionImpl.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/SaleCountDimensionImpl.java index 77ae590..aae6aa4 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/SaleCountDimensionImpl.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/SaleCountDimensionImpl.java @@ -150,6 +150,28 @@ public class SaleCountDimensionImpl implements DataSummaryService { " WHERE t.BKGS = ?" + " ORDER BY t.QYGS, t.SHIQU, t.RQ"; +// String sql ="SELECT t.RQ AS RQ,t.QYGS AS QYGS,t.XSZZ AS XSZZ,t.SHENGQU AS SHENGQU,t.SHIQU AS SHIQU,t.QX AS QX,t.QCYE AS QCYE," + +// " t.LJXS AS LJXS,t.LJHK AS LJHK,t.YSYE AS YSYE,t_last_year.YSYE AS LAST_YEAR_YSYE,t.ZLFX0_60 AS ZLFX0_60," + +// " t.ZLFX60_1 AS ZLFX60_1,t.ZLFX1_2 AS ZLFX1_2,t.ZLFX2_3 AS ZLFX2_3,t.ZLFX3_4 AS ZLFX3_4,t.ZLFX4_5 AS ZLFX4_5,t.ZLFX5 AS ZLFX5 " + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL t " + +// " INNER JOIN ( " + +// " SELECT QYGS,SHIQU,MAX(RQ) AS MaxRQ,YEAR(RQ) AS Year,MONTH(RQ) AS Month" + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL " + +// " WHERE DATE(RQ) >= ? AND BKGS = ? " + +// " GROUP BY QYGS, SHIQU, YEAR(RQ), MONTH(RQ)" + +// " ) AS grouped ON t.QYGS = grouped.QYGS AND t.SHIQU = grouped.SHIQU AND t.RQ = grouped.MaxRQ" + +// " LEFT JOIN (" + +// " SELECT QYGS,SHIQU,YSYE,YEAR(RQ) AS Year,MONTH(RQ) AS Month,MAX(RQ) AS MaxRQ " + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL " + +// " WHERE BKGS = ? GROUP BY QYGS, SHIQU, YEAR(RQ), MONTH(RQ)" + +// " ) t_last_year " + +// " ON t.QYGS = t_last_year.QYGS" + +// " AND t.SHIQU = t_last_year.SHIQU " + +// " AND t_last_year.Year = grouped.Year - 1" + +// " AND t_last_year.Month = grouped.Month" + +// " WHERE t.BKGS = ? " + +// " ORDER BY t.QYGS, t.SHIQU, t.RQ"; + List maps = DBSql.getMaps(sql, DATE_FORMAT.format(dateRange.getStartDate()), bkgs, bkgs); // 获取公司位置信息 List companyList = DBSql.getMaps("SELECT GSMC,JD,WD FROM BO_EU_BNBM_DATALINKUP_GSJWD"); @@ -200,15 +222,7 @@ public class SaleCountDimensionImpl implements DataSummaryService { bo.set("ZL3_4", map.getDouble("ZLFX3_4")); bo.set("ZL4_5", map.getDouble("ZLFX4_5")); bo.set("ZL5", map.getDouble("ZLFX5")); - -// LocalDate parse = LocalDate.parse(rq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss .S")); -// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); -// LocalDate lastYear = yearMonth.atEndOfMonth(); -// RowMap map1 = DBSql.getMap("SELECT YSYE FROM BO_EU_BNBM_DATALINKUP_XS_YSL WHERE RQ = '" + lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "'" + -// " WHERE QYGS = '" + qygs + "' AND BKGS = '" + bkgs + "' AND XSZZ = '" + xszz + "'"); -// if (map1!=null) { -// bo.set("QNTQYSZE", map.getDouble("QNTQYSZE")); -// } +// bo.set("QYTQYSZK", map.getString("LAST_YEAR_YSYE")); bos.add(bo); } @@ -266,11 +280,44 @@ public class SaleCountDimensionImpl implements DataSummaryService { " WHERE t1.RQ >= ? AND t1.RQ < ? AND t1.BKGS = ?" + " GROUP BY t1.QYGS,t1.BKGS,DATE_FORMAT ( t1.RQ, '%Y-%m' ),t1.RQ"; +// String receivableSql = "SELECT t1.RQ AS RQ,t1.XSZZ AS XSZZ,t1.QYGS AS QYGS,t1.BKGS AS BKGS,DATE_FORMAT(t1.RQ, '%Y-%m') ASyear_month," + +// " t1.RQ AS max_rq,(SUM(t1.YSYE)/1000) AS YSZK,SUM(t1.LJHK) AS LJHK,SUM(t1.LJXS) AS LJXS," + +// " CASE " + +// " WHEN SUM(t1.LJXS) != 0 THEN SUM(t1.LJHK) / SUM(t1.LJXS)" + +// " ELSE NULL " + +// " END AS hkl," + +// " (SELECT SUM(t3.YSYE)/1000 " + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL t3" + +// " INNER JOIN (" + +// " SELECT QYGS, BKGS, DATE_FORMAT(RQ, '%Y-%m') ASyear_month, MAX(RQ) AS max_rq" + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL" + +// " WHERE RQ >= DATE_SUB(?, INTERVAL 1 YEAR) " + +// " AND RQ < DATE_SUB(?, INTERVAL 1 YEAR)" + +// " AND BKGS = ?" + +// " GROUP BY QYGS, BKGS, DATE_FORMAT(RQ, '%Y-%m')" + +// " ) t4 ON t3.QYGS = t4.QYGS AND t3.BKGS = t4.BKGS AND t3.RQ = t4.max_rq" + +// " WHERE t3.RQ >= DATE_SUB(?, INTERVAL 1 YEAR)" + +// " AND t3.RQ < DATE_SUB(?, INTERVAL 1 YEAR)" + +// " AND t3.BKGS = ? " + +// " AND DATE_FORMAT(t3.RQ, '%Y-%m') = DATE_FORMAT(DATE_SUB(t1.RQ, INTERVAL 1 YEAR), '%Y-%m')" + +// " GROUP BY t3.QYGS, t3.BKGS, DATE_FORMAT(t3.RQ, '%Y-%m')" + +// " ) AS last_year_YSZK" + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL t1 " + +// " INNER JOIN (" + +// " SELECT QYGS, BKGS, DATE_FORMAT(RQ, '%Y-%m') ASyear_month, MAX(RQ) AS max_rq" + +// " FROM BO_EU_BNBM_DATALINKUP_XS_YSL" + +// " WHERE RQ >= ? AND RQ < ? AND BKGS = ?" + +// " GROUP BY QYGS, BKGS, DATE_FORMAT(RQ, '%Y-%m')" + +// " ) t2 ON t1.QYGS = t2.QYGS AND t1.BKGS = t2.BKGS AND t1.RQ = t2.max_rq" + +// " WHERE t1.RQ >= ? AND t1.RQ < ? AND t1.BKGS = ? " + +// " GROUP BY t1.QYGS, t1.BKGS, DATE_FORMAT(t1.RQ, '%Y-%m'), t1.RQ"; + String startDate = DATE_FORMAT.format(dateRange.getStartDate()); String endDate = DATE_FORMAT.format(dateRange.getEndDate()); LOGGER.info("应收账款数据查SQL: {}", receivableSql); - List receivableMaps = DBSql.getMaps(receivableSql, startDate, endDate, bkgs,startDate, endDate, bkgs); + List receivableMaps = DBSql.getMaps(receivableSql, startDate, endDate, + bkgs,startDate, endDate, bkgs); if (receivableMaps.isEmpty()) { LOGGER.info("{}应收账款数据无数据,停止分页查询", bkgs); @@ -297,34 +344,6 @@ public class SaleCountDimensionImpl implements DataSummaryService { String xszz = receivable.getString("XSZZ"); double yszk = receivable.getDouble("YSZK"); String year_month = receivable.getString("ASyear_month"); - String[] split = year_month.split("-"); - double kcje = 0.0; - // 第二个SQL:查询库存金额数据 - if (!xszzList.isEmpty()) { - String placeholders = String.join(",", Collections.nCopies(xszzList.size(), "?")); - String inClause = xszzList.stream() - .map(s -> "'" + s.replace("'", "''") + "'") // 转义单引号防止SQL注入 - .collect(Collectors.joining(",")); - String inventorySql = "SELECT STOCKORGNAME, (SUM(BALANCE_AMOUNT)/10000) as KCJE " + - " FROM " + BO_EU_DWD_ORDER_KC_HZ + " " + - " WHERE STOCKORGNAME IN (" + inClause + ") " + - " AND CATEGORY = '产成品' " + - " AND YEAR(INDATE) = YEAR('" + split[0] + "') " + - " AND MONTH(INDATE) = MONTH('" + split[1] + "') " + - " GROUP BY STOCKORGNAME"; - - LOGGER.info("库存金额数据查询,SQL: {}", inventorySql); - - List inventoryMaps = DBSql.getMaps(inventorySql); - Map inventoryMap = inventoryMaps.stream() - .collect(Collectors.toMap( - row -> row.getString("STOCKORGNAME"), - row -> row.getDouble("KCJE"), - (existing, replacement) -> existing - )); - kcje = inventoryMap.getOrDefault(xszz, 0.0); - } - BO bo = new BO(); String qygs = receivable.getString("QYGS"); String rq = receivable.getString("RQ"); @@ -332,20 +351,13 @@ public class SaleCountDimensionImpl implements DataSummaryService { bo.set("BKGS", bkgs); bo.set("QYGS", qygs); bo.set("YSZK", yszk); - bo.set("CCJE", kcje); +// bo.set("CCJE", kcje); bo.set("LJHK", receivable.getString("LJHK")); bo.set("LJXS", receivable.getString("LJXS")); bo.set("HKL", receivable.getString("HKL")); //增加额度使用率情况 bo.set("EDSYL", SaleUtil.calculateResult(sxedList,bkgs,receivable.getString("QYGS"),yszk)); -// LocalDate parse = LocalDate.parse(rq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")); -// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); -// LocalDate lastYear = yearMonth.atEndOfMonth(); -// RowMap map = DBSql.getMap("SELECT (SUM( t1.YSYE )/1000) AS YSZK FROM BO_EU_BNBM_DATALINKUP_XS_YSL" + -// " WHERE QYGS = '" + qygs + "' AND BKGS = '" + bkgs + "' AND RQ = '" + lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "'"); -// if (map!=null) { -// bo.set("QYTQYSZK", map.getString("YSZK")); -// } +// bo.set("QYTQYSZK", receivable.getString("last_year_YSZK")); bos.add(bo); } @@ -403,6 +415,19 @@ public class SaleCountDimensionImpl implements DataSummaryService { " WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" + " GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH"; +// String querySql = "SELECT t1.DZRQ, t1.QYGS, t1.KCZZ, t1.LB_1, t1.LB_2, t1.LB_3, t1.SQ, t1.CS, t1.QY," + +// " SUM(t1.ZSSL) AS XL, SUM(t1.SSJERMB) AS XE, SUM(t1.XSSL) AS TSXL, SUM(t1.NMNY) AS BHSXE," + +// " t1.YEARMONTH, COALESCE(SUM(t2.ZSSL), 0) AS sntqXL, COALESCE(SUM(t2.SSJERMB), 0) AS sntqxe," + +// " COALESCE(SUM(t2.XSSL), 0) AS sntqtsxl " + +// " FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ t1" + +// " LEFT JOIN BO_EU_BNBM_DATALINKUP_XS_XSL_HZ t2 ON t1.QYGS = t2.QYGS AND t1.KCZZ = t2.KCZZ" + +// " AND t1.LB_1 = t2.LB_1 AND t1.LB_2 = t2.LB_2 AND t1.LB_3 = t2.LB_3 AND t1.SQ = t2.SQ" + +// " AND t1.CS = t2.CS AND t1.QY = t2.QY AND YEAR(t2.DZRQ) = YEAR(t1.DZRQ) - 1" + +// " AND MONTH(t2.DZRQ) = MONTH(t1.DZRQ) AND t2.BKGS = ?" + +// " WHERE t1.DZRQ >= ? AND t1.DZRQ < ? AND t1.BKGS = ?" + +// " GROUP BY t1.DZRQ, t1.QYGS, t1.KCZZ, t1.LB_1, t1.LB_2, t1.LB_3, t1.SQ, t1.CS, t1.QY," + +// " t1.YEARMONTH ORDER BY t1.DZRQ, t1.QYGS, t1.KCZZ"; + LOGGER.info("销量销额数据查询,SQL: {}", querySql); List maps = DBSql.getMaps(querySql, DATE_FORMAT.format(dateRange.getStartDate()), DATE_FORMAT.format(dateRange.getEndDate()), bkgs); @@ -437,24 +462,21 @@ public class SaleCountDimensionImpl implements DataSummaryService { } if ("石膏板".equals(map.getString("LB_1"))){ bo.set("XL", map.getDouble("TSXL")); -// if (map1!=null) { -// bo.set("SNTQXL", map1.getString("TSXL")); -// } + bo.set("SNTQXL", map.getString("sntqtsxl")); }else { bo.set("XL", map.getDouble("XL")); -// if (map1!=null) { -// bo.set("SNTQXL", map1.getString("XL")); -// } + bo.set("SNTQXL", map.getString("sntqXL")); } Double ssjermb = map.getDouble("XE"); Double xe = map.getDouble("BHSXE"); bo.set("XE", xe); -// bo.set("SNTQXE", map1.getString("XE")); // 匹配公装家装类别,如果未匹配到,则默认未其他 String[] gzjzStrings = SaleUtil.matchSingleField(bkgs, map.getString("LB_1"), map.getString("LB_2"), gzjzList, "其他", "其他","其他"); bo.set("JZ_GZ", gzjzStrings[0]); bo.set("MC_JC", gzjzStrings[1]); bo.set("PROD_CAT", gzjzStrings[2]); +// bo.set("SNTQXE", map.getString("sntqxe")); + bo.set("BHSYYSR", ssjermb); bos.add(bo); } @@ -509,6 +531,26 @@ public class SaleCountDimensionImpl implements DataSummaryService { " WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" + " GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH"; +// String querySql = "SELECT curr.DZRQ,curr.QYGS,curr.KCZZ,curr.LB_1,curr.LB_2,curr.LB_3,curr.SQ,curr.CS,curr.QY," + +// " curr.YEARMONTH,curr.BHSYYSR,curr.YYSR,COALESCE(prev.BHSYYSR, 0) AS QNTQBHSYYSR,COALESCE(prev.YYSR, 0) AS QNTQYYSR" + +// " FROM (" + +// " SELECT DZRQ,QYGS,KCZZ,LB_1,LB_2,LB_3,SQ," + +// " CS,QY,YEARMONTH,SUM(NMNY) AS BHSYYSR,SUM(SSJERMB) AS YYSR" + +// " FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ" + +// " WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" + +// " GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH" + +// " ) curr" + +// " LEFT JOIN (" + +// " SELECT QYGS,KCZZ,LB_1,LB_2,LB_3,SQ,CS," + +// " QY,YEARMONTH,SUM(NMNY) AS BHSYYSR,SUM(SSJERMB) AS YYSR" + +// " FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ" + +// " WHERE DZRQ >= DATE_SUB(?, INTERVAL 1 YEAR)AND DZRQ < DATE_SUB(?, INTERVAL 1 YEAR)AND BKGS = ?" + +// " GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH" + +// " ) prev" + +// " ON curr.QYGS = prev.QYGS AND curr.KCZZ = prev.KCZZ AND curr.LB_1 = prev.LB_1 AND curr.LB_2 = prev.LB_2" + +// " AND curr.LB_3 = prev.LB_3 AND curr.SQ = prev.SQ AND curr.CS = prev.CS AND curr.QY = prev.QY" + +// " AND curr.YEARMONTH = DATE_FORMAT(prev.YEARMONTH + INTERVAL 1 YEAR, '%Y%m')"; + LOGGER.info("营业收入数据查询,SQL: {}", querySql); List maps = DBSql.getMaps(querySql, DATE_FORMAT.format(dateRange.getStartDate()), DATE_FORMAT.format(dateRange.getEndDate()), bkgs); @@ -541,17 +583,8 @@ public class SaleCountDimensionImpl implements DataSummaryService { } bo.set("YYSR", map.getDouble("YYSR")); bo.set("BHSYYSR", map.getDouble("BHSYYSR")); - String querySql2 = "SELECT SUM(NMNY) as BHSYYSR, SUM(SSJERMB) AS YYSR" + - " FROM " + SALES_DETAIL_TABLE + - " WHERE DZRQ = ? AND BKGS = ? AND QYGS = ? AND KCZZ = ? AND SQ = ?"; -// LocalDate parse = LocalDate.parse(dzrq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")).minusYears(1); -// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); -// LocalDate lastYear = yearMonth.atEndOfMonth(); -// RowMap map1 = DBSql.getMap(querySql2, lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), bkgs, qygs, gc, sq); -// if (map1!=null) { -// bo.set("QNTQYYSR", map1.getDouble("YYSR")); -// bo.set("QNTQBHSYYSR", map1.getDouble("BHSYYSR")); -// } +// bo.set("QNTQYYSR", map.getDouble("QNTQYYSR")); +// bo.set("QNTQBHSYYSR", map.getDouble("QNTQBHSYYSR")); 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/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 cec5137..b13d523 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 @@ -84,6 +84,7 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService { } if (bkgs!="龙牌" || bkgs!="梦牌" || bkgs!="泰山石膏" || bkgs!="北新嘉宝莉" || bkgs!="北新涂料"){ LOGGER.error("主配置中板块公司为:{},无需进行计算",bkgs); + return; } if (dateRange == null || dateRange.getStartDate() == null || dateRange.getEndDate() == null) { LOGGER.info("未提供有效时间范围,按当前日期计算"); 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 ee428cd..d71c784 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 @@ -821,33 +821,6 @@ public class SaleDataSyncServiceImpl implements DataSyncService { bo.set("LB_1","石膏板"); } // LOGGER.info("泰山应收的数据:{}",bo.toJSONObject()); - //销售汇总表修改区域公司 - if ("梦牌".equals(map.getString("BKGS"))){ - String cs = bo.getString("CS"); - String sq = bo.getString("SQ"); - for (BO bo1 : mpqyList) { - String ss = bo1.getString("SS"); - if (StringUtils.isNotBlank(cs) && ss.contains(cs)){ - bo.set("QYGS",bo1.getString("QYGS")); - } else if (StringUtils.isNotBlank(sq) && ss.contains(sq)) { - bo.set("QYGS",bo1.getString("QYGS")); - }else { - bo.set("QYGS","其他"); - } - } - } - //龙牌 - if ("龙牌".equals(map.getString("BKGS"))){ - String xszz = bo.getString("XSZZ"); - for (BO bo1 : lpqyList) { - String swfb = bo1.getString("SWFB"); - if (swfb.contains(xszz)){ - bo.set("QYGS",bo1.getString("QYGS")); - }else { - bo.set("QYGS","其他"); - } - } - } bos.add(bo); } @@ -858,6 +831,24 @@ public class SaleDataSyncServiceImpl implements DataSyncService { hasMore = pageData.size() == PAGE_SIZE; pageNo++; } while (hasMore); + // 修改龙牌的区域公司 + for (BO bo1 : lpqyList) { + String swfb = bo1.getString("SWFB"); + String[] split = swfb.split(","); + String qygs = bo1.getString("QYGS"); + for (String s : split) { + DBSql.getMap("UPDATE BO_EU_BNBM_DATALINKUP_XS_XSL_HZ SET QYGS = '"+qygs+"' WHERE XSZZ = '"+s+"'"); + DBSql.getMap("UPDATE BO_EU_BNBM_DATALINKUP_XS_YSL SET QYGS = '"+qygs+"' WHERE XSZZ = '"+s+"'"); + } + } + //销售汇总表修改区域公司 +// if ("梦牌".equals(map.getString("BKGS"))){ +// String cs = bo.getString("CS"); +// String sq = bo.getString("SQ"); +// } +// for (BO bo1 : mpqyList) { +// +// } }catch (Exception e){ LOGGER.error("汇总数据失败 [汇总表={}, 第几页={}]: {}", hzb, PAGE_SIZE, e.getMessage(), e);