1、销售sql修改
2、采购sql修改
This commit is contained in:
parent
cb42eb80cd
commit
2e13af81b8
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -234,7 +234,6 @@ public class DataLinkUpController {
|
|||||||
Date startDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
Date startDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
DataSummaryService summaryService = null;
|
DataSummaryService summaryService = null;
|
||||||
SaleCountDimensionImpl saleCountDimension = null;
|
SaleCountDimensionImpl saleCountDimension = null;
|
||||||
// ExecutorService executorService = null; // 线程池用于并行处理销售业务
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
LOGGER.info("开始执行销售数据多维度汇总计算");
|
LOGGER.info("开始执行销售数据多维度汇总计算");
|
||||||
@ -258,8 +257,6 @@ public class DataLinkUpController {
|
|||||||
if ("销售".equals(ssyw)) {
|
if ("销售".equals(ssyw)) {
|
||||||
summaryService = new SaleDataSummaryServiceImpl();
|
summaryService = new SaleDataSummaryServiceImpl();
|
||||||
saleCountDimension = new SaleCountDimensionImpl();
|
saleCountDimension = new SaleCountDimensionImpl();
|
||||||
// executorService = Executors.newFixedThreadPool(2); // 创建固定大小为2的线程池
|
|
||||||
// LOGGER.info("销售业务检测到,创建summaryService和saleCountDimension实例,初始化线程池");
|
|
||||||
}else {
|
}else {
|
||||||
summaryService = new PurchaseDataSummaryServiceImpl();
|
summaryService = new PurchaseDataSummaryServiceImpl();
|
||||||
LOGGER.info("采购业务检测到,创建summaryService实例");
|
LOGGER.info("采购业务检测到,创建summaryService实例");
|
||||||
@ -278,44 +275,11 @@ public class DataLinkUpController {
|
|||||||
summaryService.calculateSummary(dateRange, bo);
|
summaryService.calculateSummary(dateRange, bo);
|
||||||
LOGGER.info("完成一体化-销售数据汇总计算,BKGS: {}", bo.get("BKGS"));
|
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();
|
saleCountDimension = new SaleCountDimensionImpl();
|
||||||
LOGGER.info("开始执行销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS"));
|
LOGGER.info("开始执行销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS"));
|
||||||
saleCountDimension.calculateSummary(dateRange, bo);
|
saleCountDimension.calculateSummary(dateRange, bo);
|
||||||
LOGGER.info("完成销售数据多维度汇总计算,BKGS: {}", bo.get("BKGS"));
|
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 {
|
} else {
|
||||||
// 非销售业务,单线程执行
|
// 非销售业务,单线程执行
|
||||||
LOGGER.info("======== 开始执行采购数据汇总计算,BKGS: {} ========", bo.get("BKGS"));
|
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);
|
ro.put("success", true);
|
||||||
@ -353,17 +304,7 @@ public class DataLinkUpController {
|
|||||||
ro.put("success", false);
|
ro.put("success", false);
|
||||||
ro.put("message", errorMsg);
|
ro.put("message", errorMsg);
|
||||||
|
|
||||||
// 确保异常时关闭线程池
|
|
||||||
// if (executorService != null) {
|
|
||||||
// executorService.shutdownNow();
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// finally {
|
|
||||||
// // 最终确保线程池关闭
|
|
||||||
// if (executorService != null) {
|
|
||||||
// executorService.shutdown();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
long methodEndTime = System.currentTimeMillis();
|
long methodEndTime = System.currentTimeMillis();
|
||||||
LOGGER.info("【完成】数据计算汇总操作,总耗时:{}ms", methodEndTime - methodStartTime);
|
LOGGER.info("【完成】数据计算汇总操作,总耗时:{}ms", methodEndTime - methodStartTime);
|
||||||
return ro;
|
return ro;
|
||||||
@ -437,8 +378,10 @@ public class DataLinkUpController {
|
|||||||
hzb = "BO_EU_DWD_ORDER_KC_HZ";
|
hzb = "BO_EU_DWD_ORDER_KC_HZ";
|
||||||
} else if ("物流表".equals(tablename)) {
|
} else if ("物流表".equals(tablename)) {
|
||||||
hzb = "BO_EU_CG_WLD_HZ";
|
hzb = "BO_EU_CG_WLD_HZ";
|
||||||
} else {
|
} else if ("入库单".equals(tablename)){
|
||||||
hzb = "BO_EU_DWD_ORDER_RKD_HZ";
|
hzb = "BO_EU_DWD_ORDER_RKD_HZ";
|
||||||
|
}else {
|
||||||
|
LOGGER.error("当前表没有汇总表");
|
||||||
}
|
}
|
||||||
LOGGER.info("汇总板块数据——采购的接口");
|
LOGGER.info("汇总板块数据——采购的接口");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -177,10 +177,10 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
|
|||||||
detailBO.set("DW", row.getString("JLDW")); // 单位
|
detailBO.set("DW", row.getString("JLDW")); // 单位
|
||||||
|
|
||||||
// 处理单价和金额,添加除零检查
|
// 处理单价和金额,添加除零检查
|
||||||
Double hsdjhyf = row.getDouble("HSDJHYF");
|
Double jshjhyf = row.getDouble("JSHJHYF");
|
||||||
double rkdj = 0.0;
|
double rkdj = 0.0;
|
||||||
if (hsdjhyf != null && hsdjhyf != 0 && rksl != null && rksl != 0) {
|
if (jshjhyf != null && jshjhyf != 0 && rksl != null && rksl != 0) {
|
||||||
rkdj = hsdjhyf / rksl;
|
rkdj = jshjhyf / rksl;
|
||||||
}
|
}
|
||||||
detailBO.set("RKDJ", rkdj); // 入库单价
|
detailBO.set("RKDJ", rkdj); // 入库单价
|
||||||
|
|
||||||
@ -188,7 +188,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
|
|||||||
Double dhje = row.getDouble("DHJE");
|
Double dhje = row.getDouble("DHJE");
|
||||||
detailBO.set("RKJE", dhje != null ? dhje : 0.0); // 入库金额
|
detailBO.set("RKJE", dhje != null ? dhje : 0.0); // 入库金额
|
||||||
} else {
|
} else {
|
||||||
Double jshjhyf = row.getDouble("JSHJHYF");
|
// Double jshjhyf = row.getDouble("JSHJHYF");
|
||||||
detailBO.set("RKJE", jshjhyf != null ? jshjhyf : 0.0); // 入库金额
|
detailBO.set("RKJE", jshjhyf != null ? jshjhyf : 0.0); // 入库金额
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -150,6 +150,28 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
" WHERE t.BKGS = ?" +
|
" WHERE t.BKGS = ?" +
|
||||||
" ORDER BY t.QYGS, t.SHIQU, t.RQ";
|
" 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<RowMap> maps = DBSql.getMaps(sql, DATE_FORMAT.format(dateRange.getStartDate()), bkgs, bkgs);
|
List<RowMap> maps = DBSql.getMaps(sql, DATE_FORMAT.format(dateRange.getStartDate()), bkgs, bkgs);
|
||||||
// 获取公司位置信息
|
// 获取公司位置信息
|
||||||
List<RowMap> companyList = DBSql.getMaps("SELECT GSMC,JD,WD FROM BO_EU_BNBM_DATALINKUP_GSJWD");
|
List<RowMap> 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("ZL3_4", map.getDouble("ZLFX3_4"));
|
||||||
bo.set("ZL4_5", map.getDouble("ZLFX4_5"));
|
bo.set("ZL4_5", map.getDouble("ZLFX4_5"));
|
||||||
bo.set("ZL5", map.getDouble("ZLFX5"));
|
bo.set("ZL5", map.getDouble("ZLFX5"));
|
||||||
|
// bo.set("QYTQYSZK", map.getString("LAST_YEAR_YSYE"));
|
||||||
// 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"));
|
|
||||||
// }
|
|
||||||
bos.add(bo);
|
bos.add(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -266,11 +280,44 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
" WHERE t1.RQ >= ? AND t1.RQ < ? AND t1.BKGS = ?" +
|
" WHERE t1.RQ >= ? AND t1.RQ < ? AND t1.BKGS = ?" +
|
||||||
" GROUP BY t1.QYGS,t1.BKGS,DATE_FORMAT ( t1.RQ, '%Y-%m' ),t1.RQ";
|
" 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 startDate = DATE_FORMAT.format(dateRange.getStartDate());
|
||||||
String endDate = DATE_FORMAT.format(dateRange.getEndDate());
|
String endDate = DATE_FORMAT.format(dateRange.getEndDate());
|
||||||
|
|
||||||
LOGGER.info("应收账款数据查SQL: {}", receivableSql);
|
LOGGER.info("应收账款数据查SQL: {}", receivableSql);
|
||||||
List<RowMap> receivableMaps = DBSql.getMaps(receivableSql, startDate, endDate, bkgs,startDate, endDate, bkgs);
|
List<RowMap> receivableMaps = DBSql.getMaps(receivableSql, startDate, endDate,
|
||||||
|
bkgs,startDate, endDate, bkgs);
|
||||||
|
|
||||||
if (receivableMaps.isEmpty()) {
|
if (receivableMaps.isEmpty()) {
|
||||||
LOGGER.info("{}应收账款数据无数据,停止分页查询", bkgs);
|
LOGGER.info("{}应收账款数据无数据,停止分页查询", bkgs);
|
||||||
@ -297,34 +344,6 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
String xszz = receivable.getString("XSZZ");
|
String xszz = receivable.getString("XSZZ");
|
||||||
double yszk = receivable.getDouble("YSZK");
|
double yszk = receivable.getDouble("YSZK");
|
||||||
String year_month = receivable.getString("ASyear_month");
|
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<RowMap> inventoryMaps = DBSql.getMaps(inventorySql);
|
|
||||||
Map<String, Double> 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();
|
BO bo = new BO();
|
||||||
String qygs = receivable.getString("QYGS");
|
String qygs = receivable.getString("QYGS");
|
||||||
String rq = receivable.getString("RQ");
|
String rq = receivable.getString("RQ");
|
||||||
@ -332,20 +351,13 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
bo.set("BKGS", bkgs);
|
bo.set("BKGS", bkgs);
|
||||||
bo.set("QYGS", qygs);
|
bo.set("QYGS", qygs);
|
||||||
bo.set("YSZK", yszk);
|
bo.set("YSZK", yszk);
|
||||||
bo.set("CCJE", kcje);
|
// bo.set("CCJE", kcje);
|
||||||
bo.set("LJHK", receivable.getString("LJHK"));
|
bo.set("LJHK", receivable.getString("LJHK"));
|
||||||
bo.set("LJXS", receivable.getString("LJXS"));
|
bo.set("LJXS", receivable.getString("LJXS"));
|
||||||
bo.set("HKL", receivable.getString("HKL"));
|
bo.set("HKL", receivable.getString("HKL"));
|
||||||
//增加额度使用率情况
|
//增加额度使用率情况
|
||||||
bo.set("EDSYL", SaleUtil.calculateResult(sxedList,bkgs,receivable.getString("QYGS"),yszk));
|
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"));
|
// bo.set("QYTQYSZK", receivable.getString("last_year_YSZK"));
|
||||||
// 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"));
|
|
||||||
// }
|
|
||||||
bos.add(bo);
|
bos.add(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,6 +415,19 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
" WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" +
|
" WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" +
|
||||||
" GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH";
|
" 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);
|
LOGGER.info("销量销额数据查询,SQL: {}", querySql);
|
||||||
List<RowMap> maps = DBSql.getMaps(querySql, DATE_FORMAT.format(dateRange.getStartDate()),
|
List<RowMap> maps = DBSql.getMaps(querySql, DATE_FORMAT.format(dateRange.getStartDate()),
|
||||||
DATE_FORMAT.format(dateRange.getEndDate()), bkgs);
|
DATE_FORMAT.format(dateRange.getEndDate()), bkgs);
|
||||||
@ -437,24 +462,21 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
}
|
}
|
||||||
if ("石膏板".equals(map.getString("LB_1"))){
|
if ("石膏板".equals(map.getString("LB_1"))){
|
||||||
bo.set("XL", map.getDouble("TSXL"));
|
bo.set("XL", map.getDouble("TSXL"));
|
||||||
// if (map1!=null) {
|
bo.set("SNTQXL", map.getString("sntqtsxl"));
|
||||||
// bo.set("SNTQXL", map1.getString("TSXL"));
|
|
||||||
// }
|
|
||||||
}else {
|
}else {
|
||||||
bo.set("XL", map.getDouble("XL"));
|
bo.set("XL", map.getDouble("XL"));
|
||||||
// if (map1!=null) {
|
bo.set("SNTQXL", map.getString("sntqXL"));
|
||||||
// bo.set("SNTQXL", map1.getString("XL"));
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
Double ssjermb = map.getDouble("XE");
|
Double ssjermb = map.getDouble("XE");
|
||||||
Double xe = map.getDouble("BHSXE");
|
Double xe = map.getDouble("BHSXE");
|
||||||
bo.set("XE", xe);
|
bo.set("XE", xe);
|
||||||
// bo.set("SNTQXE", map1.getString("XE"));
|
|
||||||
// 匹配公装家装类别,如果未匹配到,则默认未其他
|
// 匹配公装家装类别,如果未匹配到,则默认未其他
|
||||||
String[] gzjzStrings = SaleUtil.matchSingleField(bkgs, map.getString("LB_1"), map.getString("LB_2"), gzjzList, "其他", "其他","其他");
|
String[] gzjzStrings = SaleUtil.matchSingleField(bkgs, map.getString("LB_1"), map.getString("LB_2"), gzjzList, "其他", "其他","其他");
|
||||||
bo.set("JZ_GZ", gzjzStrings[0]);
|
bo.set("JZ_GZ", gzjzStrings[0]);
|
||||||
bo.set("MC_JC", gzjzStrings[1]);
|
bo.set("MC_JC", gzjzStrings[1]);
|
||||||
bo.set("PROD_CAT", gzjzStrings[2]);
|
bo.set("PROD_CAT", gzjzStrings[2]);
|
||||||
|
// bo.set("SNTQXE", map.getString("sntqxe"));
|
||||||
|
bo.set("BHSYYSR", ssjermb);
|
||||||
bos.add(bo);
|
bos.add(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -509,6 +531,26 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
" WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" +
|
" WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" +
|
||||||
" GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH";
|
" 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);
|
LOGGER.info("营业收入数据查询,SQL: {}", querySql);
|
||||||
List<RowMap> maps = DBSql.getMaps(querySql, DATE_FORMAT.format(dateRange.getStartDate()),
|
List<RowMap> maps = DBSql.getMaps(querySql, DATE_FORMAT.format(dateRange.getStartDate()),
|
||||||
DATE_FORMAT.format(dateRange.getEndDate()), bkgs);
|
DATE_FORMAT.format(dateRange.getEndDate()), bkgs);
|
||||||
@ -541,17 +583,8 @@ public class SaleCountDimensionImpl implements DataSummaryService {
|
|||||||
}
|
}
|
||||||
bo.set("YYSR", map.getDouble("YYSR"));
|
bo.set("YYSR", map.getDouble("YYSR"));
|
||||||
bo.set("BHSYYSR", map.getDouble("BHSYYSR"));
|
bo.set("BHSYYSR", map.getDouble("BHSYYSR"));
|
||||||
String querySql2 = "SELECT SUM(NMNY) as BHSYYSR, SUM(SSJERMB) AS YYSR" +
|
// bo.set("QNTQYYSR", map.getDouble("QNTQYYSR"));
|
||||||
" FROM " + SALES_DETAIL_TABLE +
|
// bo.set("QNTQBHSYYSR", map.getDouble("QNTQBHSYYSR"));
|
||||||
" 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"));
|
|
||||||
// }
|
|
||||||
bos.add(bo);
|
bos.add(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -84,6 +84,7 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService {
|
|||||||
}
|
}
|
||||||
if (bkgs!="龙牌" || bkgs!="梦牌" || bkgs!="泰山石膏" || bkgs!="北新嘉宝莉" || bkgs!="北新涂料"){
|
if (bkgs!="龙牌" || bkgs!="梦牌" || bkgs!="泰山石膏" || bkgs!="北新嘉宝莉" || bkgs!="北新涂料"){
|
||||||
LOGGER.error("主配置中板块公司为:{},无需进行计算",bkgs);
|
LOGGER.error("主配置中板块公司为:{},无需进行计算",bkgs);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if (dateRange == null || dateRange.getStartDate() == null || dateRange.getEndDate() == null) {
|
if (dateRange == null || dateRange.getStartDate() == null || dateRange.getEndDate() == null) {
|
||||||
LOGGER.info("未提供有效时间范围,按当前日期计算");
|
LOGGER.info("未提供有效时间范围,按当前日期计算");
|
||||||
|
|||||||
@ -821,33 +821,6 @@ public class SaleDataSyncServiceImpl implements DataSyncService {
|
|||||||
bo.set("LB_1","石膏板");
|
bo.set("LB_1","石膏板");
|
||||||
}
|
}
|
||||||
// LOGGER.info("泰山应收的数据:{}",bo.toJSONObject());
|
// 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);
|
bos.add(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -858,6 +831,24 @@ public class SaleDataSyncServiceImpl implements DataSyncService {
|
|||||||
hasMore = pageData.size() == PAGE_SIZE;
|
hasMore = pageData.size() == PAGE_SIZE;
|
||||||
pageNo++;
|
pageNo++;
|
||||||
} while (hasMore);
|
} 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){
|
}catch (Exception e){
|
||||||
LOGGER.error("汇总数据失败 [汇总表={}, 第几页={}]: {}",
|
LOGGER.error("汇总数据失败 [汇总表={}, 第几页={}]: {}",
|
||||||
hzb, PAGE_SIZE, e.getMessage(), e);
|
hzb, PAGE_SIZE, e.getMessage(), e);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user