From 987a88c56273c5e599fd28d204fd9c197cf042fb Mon Sep 17 00:00:00 2001 From: yujh_java Date: Thu, 18 Sep 2025 14:12:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E4=BD=93=E5=8C=96=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E6=94=B6=E5=85=A5=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SaleDataSummaryServiceImpl.java | 114 +++++++++++------- 1 file changed, 73 insertions(+), 41 deletions(-) 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 cf3ee00..9dbb7fa 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 @@ -881,57 +881,64 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService { + " WHERE YEARMONTH >= '" + yearMonth + "' AND BKGS = '"+bkgs+"'"); LOGGER.info("准备同步{}年{}月-营业收入累计数据,删除了{}条数据",year, month,delete); //计算轻钢龙骨和石膏板 - String querySql = "SELECT " + - " BKGS,"+ + String querySql = " SELECT " + + " BKGS, " + " LB_1, " + " CASE " + - " WHEN SQ LIKE '%海南%' THEN '海南' " + - " WHEN SQ LIKE '%新疆%' THEN '新疆' " + - " WHEN SQ LIKE '%西藏%' THEN '西藏' " + + " WHEN SQ LIKE '%海南%' THEN '海南' " + + " WHEN SQ LIKE '%新疆%' THEN '新疆' " + + " WHEN SQ LIKE '%西藏%' THEN '西藏' " + " END AS PROVINCE, " + " DATE_FORMAT(DZRQ, '%Y-%m') AS YEARMONTH, " + " SUM(NMNY) AS REVENUE_AMOUNT " + - " FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ " + + " FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ " + " WHERE " + - " (SQ LIKE '%海南%' OR SQ LIKE '%新疆%' OR SQ LIKE '%西藏%') " + - " AND DZRQ >= ? " + - " AND BKGS = ? " + - " AND LB_1 IN('石膏板','轻钢龙骨','涂料') " + + " (SQ LIKE '%海南%' OR SQ LIKE '%新疆%' OR SQ LIKE '%西藏%') " + + " AND DZRQ >= ? " + + " AND BKGS = ? " + + " AND LB_1 IN ('石膏板', '轻钢龙骨', '涂料') " + " GROUP BY " + - " BKGS," + - " LB_1, " + - " PROVINCE, " + - " YEARMONTH " + - " ORDER BY " + - " YEARMONTH ASC, " + - " PROVINCE ASC, " + - " LB_1 ASC"; - List rowMaps = DBSql.getMaps(querySql, startDate,bkgs); + " BKGS, " + + " LB_1, " + + " CASE " + + " WHEN SQ LIKE '%海南%' THEN '海南' " + + " WHEN SQ LIKE '%新疆%' THEN '新疆' " + + " WHEN SQ LIKE '%西藏%' THEN '西藏' " + + " END, " + + " DATE_FORMAT(DZRQ, '%Y-%m') " + + + " UNION ALL " + + + " SELECT " + + " BKGS, " + + " LB_1, " + + " '一体化' AS PROVINCE, " + + " DATE_FORMAT(DZRQ, '%Y-%m') AS YEARMONTH, " + + " SUM(NMNY) AS REVENUE_AMOUNT " + + " FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ " + + " WHERE " + + " (SQ LIKE '%海南%' OR SQ LIKE '%新疆%' OR SQ LIKE '%西藏%') " + + " AND DZRQ >= ? " + + " AND BKGS = ? " + + " AND LB_1 IN ('石膏板', '轻钢龙骨', '涂料') " + + "GROUP BY " + + " BKGS, " + + " LB_1, " + + "'一体化', " + + " DATE_FORMAT(DZRQ, '%Y-%m') " + + "ORDER BY " + + " YEARMONTH ASC, " + + " PROVINCE ASC, " + + " LB_1 ASC"; + + List rowMaps = DBSql.getMaps(querySql, startDate,bkgs,startDate,bkgs); LOGGER.info("板块公司:{},本次查询数据:{}",bkgs,rowMaps.size()); // 保存数据 List list = new ArrayList<>(); - for (RowMap rowMap : rowMaps) { - BO revenueBO = createBaseBO(bkgs); - String category = rowMap.getString("LB_1"); - String province = rowMap.getString("PROVINCE"); - String revenueAmount = rowMap.getString("REVENUE_AMOUNT"); - String year_month = rowMap.getString("YEARMONTH"); - revenueBO.set("YEARMONTH", year_month); - if ("北新嘉宝莉".equals(bkgs)){ - if ("其他".equals(category)){ - revenueBO.set("PRODUCT_CATEGORY", category); - }else { - revenueBO.set("PRODUCT_CATEGORY", "涂料"); - } - } else if ("石膏板".equals(category) || "轻钢龙骨".equals(category)) { - revenueBO.set("PRODUCT_CATEGORY", category); - }else { - revenueBO.set("PRODUCT_CATEGORY", "其他"); - } - revenueBO.set("REVENUE_AMOUNT", revenueAmount); - revenueBO.set("SHENGQU", province);//省区 - list.add(revenueBO); - } + // 插入海南、新疆、西藏 + addSummaryData(list, rowMaps,bkgs); + // 插入一体化数据 + addSummaryData(list, rowMaps,bkgs); SDK.getBOAPI().createDataBO(REVENUE_YEAR_TABLE,list,UserContext.fromUID("admin")); LOGGER.info("营业收入月度累计数据保存成功"); } catch (Exception e) { @@ -1264,4 +1271,29 @@ public class SaleDataSummaryServiceImpl implements DataSummaryService { return null; } } + + public void addSummaryData(List list, List rowMaps,String bkgs) { + for (RowMap rowMap : rowMaps) { + BO revenueBO = createBaseBO(bkgs); + String category = rowMap.getString("LB_1"); + String province = rowMap.getString("PROVINCE"); + String revenueAmount = rowMap.getString("REVENUE_AMOUNT"); + String year_month = rowMap.getString("YEARMONTH"); + revenueBO.set("YEARMONTH", year_month); + if ("北新嘉宝莉".equals(bkgs)){ + if ("其他".equals(category)){ + revenueBO.set("PRODUCT_CATEGORY", category); + }else { + revenueBO.set("PRODUCT_CATEGORY", "涂料"); + } + } else if ("石膏板".equals(category) || "轻钢龙骨".equals(category)) { + revenueBO.set("PRODUCT_CATEGORY", category); + }else { + revenueBO.set("PRODUCT_CATEGORY", "其他"); + } + revenueBO.set("REVENUE_AMOUNT", revenueAmount); + revenueBO.set("SHENGQU", province);//省区 + list.add(revenueBO); + } + } } \ No newline at end of file