综合销售情况表 月度分组调整

This commit is contained in:
king
2026-03-19 17:41:02 +08:00
parent ddd57cd899
commit 50a5be76b4

View File

@@ -70,25 +70,6 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCEID ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCEID, \n"); //行政区域ID executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCEID ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCEID, \n"); //行政区域ID
executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCENAME ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCENAME, \n"); //行政区域名称 executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCENAME ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCENAME, \n"); //行政区域名称
executePluginSql.append(" SUM(tbl_lgbsa.MONTHSAQTY) as MONTHSAQTY, \n"); //本月销量
// executePluginSql.append(" CASE\n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END) > 0 THEN\n");
// executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END), 2))\n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END) < 0 THEN\n");
// executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END), 2))\n");
// executePluginSql.append(" ELSE '0.00'\n");
// executePluginSql.append(" END AS monthsaqty_yoy,\n"); //本月销量同比
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsaqty_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS thissaqty_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS lastsaqty_s, \n");
// executePluginSql.append(" -- 原本带CAST的字段简化写法CONCAT会自动转为字符串 \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsamoney_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS thissamoney_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS lastsamoney_s, \n");
executePluginSql.append(" SUM(tbl_lgbsa.MONTHSAQTY) as THISSAQTY, \n"); //本年销量 executePluginSql.append(" SUM(tbl_lgbsa.MONTHSAQTY) as THISSAQTY, \n"); //本年销量
executePluginSql.append(" SUM(tbl_lgbsa.LASTSAQTY) as LASTSAQTY, \n"); //上年销量 executePluginSql.append(" SUM(tbl_lgbsa.LASTSAQTY) as LASTSAQTY, \n"); //上年销量
executePluginSql.append(" -- 数量同比(原有) \n"); executePluginSql.append(" -- 数量同比(原有) \n");
@@ -103,34 +84,7 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \n"); executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n"); executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS saqty_yoy, \n"); //数量同比 executePluginSql.append(" END AS saqty_yoy, \n"); //数量同比
// executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2) as MONTHSAMONEY, \n"); //本月销售金额(元)
// executePluginSql.append(" CASE \n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END) > 0 THEN \n");
// executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END), 2)) \n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END) < 0 THEN \n");
// executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END), 2)) \n");
// executePluginSql.append(" ELSE '0.00' \n");
// executePluginSql.append(" END AS monthsamoney_yoy, \n"); //本月销售金额同比
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2) as THISSAMONEY, \n"); //本年销售金额(元) executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2) as THISSAMONEY, \n"); //本年销售金额(元)
// SUM( MONTHSAQTY ) AS THISSAQTY, -- 本年销量
// SUM( MONTHSAMONEY ) AS THISSAMONEY, -- 本年销售金额
// SUM( MONTHCOST) as THISCOST, -- 本年销售成本
// SUM( MONTHPROFIT ) AS THISPROFIT -- 本年毛利额
// executePluginSql.append(" CASE \n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END) > 0 THEN \n");
// executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END), 2)) \n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END) < 0 THEN \n");
// executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END), 2)) \n");
// executePluginSql.append(" ELSE '0.00' \n");
// executePluginSql.append(" END AS lastMonthSaMoney_yoy, \n"); //本月销售金额增长率
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.LASTSAMONEY) / 10000, 2) as LASTSAMONEY, \n"); //上年销售金额(元) executePluginSql.append(" ROUND(SUM(tbl_lgbsa.LASTSAMONEY) / 10000, 2) as LASTSAMONEY, \n"); //上年销售金额(元)
executePluginSql.append(" -- 销售金额同比(原有新增) \n"); executePluginSql.append(" -- 销售金额同比(原有新增) \n");
executePluginSql.append(" CASE \n"); executePluginSql.append(" CASE \n");
@@ -144,7 +98,7 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \n"); executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n"); executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS samoney_yoy, \n"); //销售收入同比 executePluginSql.append(" END AS samoney_yoy, \n"); //销售收入同比
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2) as MONTHPROFIT, \n"); //本月毛利额(元) // executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2) as MONTHPROFIT, \n"); //本月毛利额(元)
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2) as THISPROFIT, \n"); //本年毛利额(元) executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2) as THISPROFIT, \n"); //本年毛利额(元)
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.LASTPROFIT) / 10000, 2) as LASTPROFIT, \n"); //上年毛利额(元) executePluginSql.append(" ROUND(SUM(tbl_lgbsa.LASTPROFIT) / 10000, 2) as LASTPROFIT, \n"); //上年毛利额(元)
executePluginSql.append(" -- 新增:毛利同比 \n"); executePluginSql.append(" -- 新增:毛利同比 \n");
@@ -164,17 +118,6 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
executePluginSql.append(" END AS profit_yoy, \n"); //本年毛利同比 executePluginSql.append(" END AS profit_yoy, \n"); //本年毛利同比
executePluginSql.append(" ROUND(SUM(tbl_lgbsamc.this_month_cost) / 10000, 2) as this_month_cost, \n"); //本月销售成本(元) executePluginSql.append(" ROUND(SUM(tbl_lgbsamc.this_month_cost) / 10000, 2) as this_month_cost, \n"); //本月销售成本(元)
executePluginSql.append(" ROUND(MAX(tbl_lgbsayc.this_year_cost) / 10000, 2) as this_year_cost, \n"); //本年销售成本(元) executePluginSql.append(" ROUND(MAX(tbl_lgbsayc.this_year_cost) / 10000, 2) as this_year_cost, \n"); //本年销售成本(元)
// executePluginSql.append(" CASE \n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsamc.yoy_last_month_cost) = 0 THEN IF(sum(tbl_lgbsamc.this_month_cost) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsamc.this_month_cost) - sum(tbl_lgbsamc.yoy_last_month_cost)) / sum(tbl_lgbsamc.yoy_last_month_cost) * 100 END) > 0 THEN \n");
// executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsamc.yoy_last_month_cost) = 0 THEN IF(sum(tbl_lgbsamc.this_month_cost) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsamc.this_month_cost) - sum(tbl_lgbsamc.yoy_last_month_cost)) / sum(tbl_lgbsamc.yoy_last_month_cost) * 100 END), 2)) \n");
// executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsamc.yoy_last_month_cost) = 0 THEN IF(sum(tbl_lgbsamc.this_month_cost) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsamc.this_month_cost) - sum(tbl_lgbsamc.yoy_last_month_cost)) / sum(tbl_lgbsamc.yoy_last_month_cost) * 100 END) < 0 THEN \n");
// executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsamc.yoy_last_month_cost) = 0 THEN IF(sum(tbl_lgbsamc.this_month_cost) > 0, 100, 0) \n");
// executePluginSql.append(" ELSE (sum(tbl_lgbsamc.this_month_cost) - sum(tbl_lgbsamc.yoy_last_month_cost)) / sum(tbl_lgbsamc.yoy_last_month_cost) * 100 END), 2)) \n");
// executePluginSql.append(" ELSE '0.00' \n");
// executePluginSql.append(" END AS this_month_cost_yoy, \n"); //本月销售成本同比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITCHANGE), 2) as PROFITCHANGE, \n"); //毛利变动(元) executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITCHANGE), 2) as PROFITCHANGE, \n"); //毛利变动(元)
executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITGROWTH), 2) as PROFITGROWTH, \n"); //毛利额增长率 executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITGROWTH), 2) as PROFITGROWTH, \n"); //毛利额增长率
executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISPROFITRATE), 2) as THISPROFITRATE, \n"); //本年毛利率 executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISPROFITRATE), 2) as THISPROFITRATE, \n"); //本年毛利率
@@ -232,10 +175,7 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
private String geroupMonthSql(Map<String, Object> params, List<String> groupFieldList) { private String geroupMonthSql(Map<String, Object> params, List<String> groupFieldList) {
StringBuilder executePluginSql = new StringBuilder(); StringBuilder executePluginSql = new StringBuilder();
executePluginSql.append("select"); executePluginSql.append("select");
if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称 if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称
executePluginSql.append(" current_month.custom_id as customid, \n"); executePluginSql.append(" current_month.custom_id as customid, \n");
@@ -343,96 +283,94 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
executePluginSql.append(" COALESCE (ROUND( sum(current_month.this_month_sa_money)/SUM(total_month_data.this_month_sa_money_sum) * 100, 2), 0 ) as this_month_sa_money_share,\n"); //本月毛利额占比 executePluginSql.append(" COALESCE (ROUND( sum(current_month.this_month_sa_money)/SUM(total_month_data.this_month_sa_money_sum) * 100, 2), 0 ) as this_month_sa_money_share,\n"); //本月毛利额占比
executePluginSql.append(" COALESCE (ROUND( sum(current_month.this_month_profit)/SUM(total_month_data.this_month_profit_sum) * 100, 2), 0 ) as this_month_profit_share \n"); //本月销售金额占比 executePluginSql.append(" COALESCE (ROUND( sum(current_month.this_month_profit)/SUM(total_month_data.this_month_profit_sum) * 100, 2), 0 ) as this_month_profit_share \n"); //本月销售金额占比
// executePluginSql.append(" ROUND(avg(tbl_lgbsa.MONTHPROFITSHARE) * 100, 2) AS MONTHPROFITSHARE, \n"); //本月毛利额占比 executePluginSql.append(" from new_gr_bi_sa_agg_month_count as current_month \n");
// executePluginSql.append(" ROUND(avg(tbl_lgbsa.MONTHSAMONEYSHARE) * 100, 2) AS MONTHSAMONEYSHARE \n"); //本月销售金额占比 executePluginSql.append(" LEFT JOIN (SELECT \n");
executePluginSql.append(" from new_gr_bi_sa_agg_month_count as current_month "); executePluginSql.append(" use_year, \n");
executePluginSql.append(" LEFT JOIN (SELECT "); executePluginSql.append(" use_month, \n");
executePluginSql.append(" use_year, "); executePluginSql.append(" goods_id, \n");
executePluginSql.append(" use_month, "); executePluginSql.append(" zone_id, \n");
executePluginSql.append(" goods_id, "); executePluginSql.append(" province_id, \n");
executePluginSql.append(" zone_id, "); executePluginSql.append(" sale_type_id, \n");
executePluginSql.append(" province_id, "); executePluginSql.append(" dosage_id, \n");
executePluginSql.append(" sale_type_id, "); executePluginSql.append(" custom_id, \n");
executePluginSql.append(" dosage_id, "); executePluginSql.append(" saler_id, \n");
executePluginSql.append(" custom_id, "); executePluginSql.append(" SUM(this_month_sa_qty) AS last_month_sa_qty, \n");
executePluginSql.append(" saler_id, "); executePluginSql.append(" SUM(this_month_sa_money) AS last_month_sa_money, \n");
executePluginSql.append(" SUM(this_month_sa_qty) AS last_month_sa_qty, "); executePluginSql.append(" SUM(this_month_cost) AS last_month_cost, \n");
executePluginSql.append(" SUM(this_month_sa_money) AS last_month_sa_money, "); executePluginSql.append(" SUM(this_month_profit) AS last_month_profit \n");
executePluginSql.append(" SUM(this_month_cost) AS last_month_cost, "); executePluginSql.append(" FROM new_gr_bi_sa_agg_month_count \n");
executePluginSql.append(" SUM(this_month_profit) AS last_month_profit "); executePluginSql.append(" GROUP BY use_year, \n");
executePluginSql.append(" use_month, \n");
executePluginSql.append(" goods_id, \n");
executePluginSql.append(" zone_id, \n");
executePluginSql.append(" province_id, \n");
executePluginSql.append(" sale_type_id, \n");
executePluginSql.append(" dosage_id, \n");
executePluginSql.append(" custom_id, \n");
executePluginSql.append(" saler_id) AS last_month_data \n");
executePluginSql.append(" ON current_month.goods_id = last_month_data.goods_id \n");
executePluginSql.append(" AND current_month.zone_id = last_month_data.zone_id \n");
executePluginSql.append(" AND current_month.province_id = last_month_data.province_id \n");
executePluginSql.append(" AND current_month.sale_type_id = last_month_data.sale_type_id \n");
executePluginSql.append(" AND current_month.dosage_id = last_month_data.dosage_id \n");
executePluginSql.append(" AND current_month.custom_id = last_month_data.custom_id \n");
executePluginSql.append(" AND current_month.saler_id = last_month_data.saler_id \n");
executePluginSql.append(" AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1)\n");
executePluginSql.append(" AND last_month_data.use_month = IF(current_month.use_month = 1, 12, current_month.use_month - 1)\n");
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
executePluginSql.append(" use_month, \n");
executePluginSql.append(" goods_id, \n");
executePluginSql.append(" zone_id, \n");
executePluginSql.append(" province_id, \n");
executePluginSql.append(" sale_type_id, \n");
executePluginSql.append(" dosage_id, \n");
executePluginSql.append(" custom_id, \n");
executePluginSql.append(" saler_id, \n");
executePluginSql.append(" SUM(this_month_sa_qty) AS yoy_month_sa_qty, \n"); // 同比月销量
executePluginSql.append(" SUM(this_month_sa_money) AS yoy_month_sa_money, \n"); // 同比月销售金额
executePluginSql.append(" SUM(this_month_cost) as yoy_month_cost, \n"); // 同比月销售成本
executePluginSql.append(" SUM(this_month_profit) AS yoy_month_profit \n"); // 同比月毛利额
executePluginSql.append(" FROM new_gr_bi_sa_agg_month_count "); executePluginSql.append(" FROM new_gr_bi_sa_agg_month_count ");
executePluginSql.append(" GROUP BY use_year, "); if(params.containsKey("useyear")){
executePluginSql.append(" use_month, "); executePluginSql.append(" where use_year = " + (Integer.parseInt(params.get("useyear").toString())-1));
executePluginSql.append(" goods_id, "); }
executePluginSql.append(" zone_id, "); executePluginSql.append(" GROUP BY use_year, \n");
executePluginSql.append(" province_id, "); executePluginSql.append(" use_month, \n");
executePluginSql.append(" sale_type_id, "); executePluginSql.append(" goods_id, \n");
executePluginSql.append(" dosage_id, "); executePluginSql.append(" zone_id, \n");
executePluginSql.append(" custom_id, "); executePluginSql.append(" province_id, \n");
executePluginSql.append(" saler_id) AS last_month_data "); executePluginSql.append(" sale_type_id, \n");
executePluginSql.append(" ON current_month.goods_id = last_month_data.goods_id "); executePluginSql.append(" dosage_id, \n");
executePluginSql.append(" AND current_month.zone_id = last_month_data.zone_id "); executePluginSql.append(" custom_id, \n");
executePluginSql.append(" AND current_month.province_id = last_month_data.province_id "); executePluginSql.append(" saler_id) yoy_month ON yoy_month.use_year = current_month.use_year - 1 \n");
executePluginSql.append(" AND current_month.sale_type_id = last_month_data.sale_type_id "); executePluginSql.append(" AND yoy_month.use_month = current_month.use_month \n");
executePluginSql.append(" AND current_month.dosage_id = last_month_data.dosage_id "); executePluginSql.append(" AND yoy_month.goods_id = current_month.goods_id \n");
executePluginSql.append(" AND current_month.custom_id = last_month_data.custom_id "); executePluginSql.append(" AND yoy_month.zone_id = current_month.zone_id \n");
executePluginSql.append(" AND current_month.saler_id = last_month_data.saler_id "); executePluginSql.append(" AND yoy_month.province_id = current_month.province_id \n");
executePluginSql.append(" AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1)"); executePluginSql.append(" AND yoy_month.sale_type_id = current_month.sale_type_id \n");
executePluginSql.append(" AND last_month_data.use_month = IF(current_month.use_month = 1, 12, current_month.use_month - 1)"); executePluginSql.append(" AND yoy_month.dosage_id = current_month.dosage_id \n");
executePluginSql.append(" LEFT JOIN (SELECT use_year, "); executePluginSql.append(" AND yoy_month.custom_id = current_month.custom_id \n");
executePluginSql.append(" use_month, "); executePluginSql.append(" AND yoy_month.saler_id = current_month.saler_id \n");
executePluginSql.append(" goods_id, "); executePluginSql.append(" LEFT JOIN (\n");
executePluginSql.append(" zone_id, "); executePluginSql.append(" SELECT \n");
executePluginSql.append(" province_id, "); executePluginSql.append(" use_year, \n");
executePluginSql.append(" sale_type_id, "); executePluginSql.append(" use_month, \n");
executePluginSql.append(" dosage_id, "); executePluginSql.append(" SUM( this_month_sa_money ) AS this_month_sa_money_sum, \n");
executePluginSql.append(" custom_id, "); executePluginSql.append(" SUM(this_month_profit) AS this_month_profit_sum \n");
executePluginSql.append(" saler_id, "); executePluginSql.append(" FROM new_gr_bi_sa_agg \n");
executePluginSql.append(" SUM(this_month_sa_qty) AS yoy_month_sa_qty, "); // 同比月销量 if(params.containsKey("useyear")){
executePluginSql.append(" SUM(this_month_sa_money) AS yoy_month_sa_money, "); // 同比月销售金额 executePluginSql.append(" where use_year = " + params.get("useyear"));
executePluginSql.append(" SUM(this_month_cost) as yoy_month_cost, "); // 同比月销售成本 }
executePluginSql.append(" SUM(this_month_profit) AS yoy_month_profit "); // 同比月毛利额 executePluginSql.append(" GROUP BY \n");
executePluginSql.append(" FROM new_gr_bi_sa_agg_month_count "); executePluginSql.append(" use_year, use_month\n");
// if(params.containsKey("useyear")){ executePluginSql.append(" ) total_month_data ON total_month_data.use_year = current_month.use_year \n");
// executePluginSql.append(" where use_year = " + (Integer.parseInt(params.get("useyear").toString())-1)); executePluginSql.append(" AND total_month_data.use_month = current_month.use_month \n");
// } if(params.containsKey("useyear")){
executePluginSql.append(" GROUP BY use_year, "); executePluginSql.append(" where current_month.use_year = " + params.get("useyear"));
executePluginSql.append(" use_month, "); if(params.containsKey("usemonth")){
executePluginSql.append(" goods_id, "); executePluginSql.append(" and current_month.use_month = " + params.get("usemonth"));
executePluginSql.append(" zone_id, "); }
executePluginSql.append(" province_id, "); }
executePluginSql.append(" sale_type_id, ");
executePluginSql.append(" dosage_id, ");
executePluginSql.append(" custom_id, ");
executePluginSql.append(" saler_id) yoy_month ON yoy_month.use_year = current_month.use_year - 1 ");
executePluginSql.append(" AND yoy_month.use_month = current_month.use_month ");
executePluginSql.append(" AND yoy_month.goods_id = current_month.goods_id ");
executePluginSql.append(" AND yoy_month.zone_id = current_month.zone_id ");
executePluginSql.append(" AND yoy_month.province_id = current_month.province_id ");
executePluginSql.append(" AND yoy_month.sale_type_id = current_month.sale_type_id ");
executePluginSql.append(" AND yoy_month.dosage_id = current_month.dosage_id ");
executePluginSql.append(" AND yoy_month.custom_id = current_month.custom_id ");
executePluginSql.append(" AND yoy_month.saler_id = current_month.saler_id ");
executePluginSql.append(" LEFT JOIN (");
executePluginSql.append(" SELECT ");
executePluginSql.append(" use_year, ");
executePluginSql.append(" use_month, ");
executePluginSql.append(" SUM( this_month_sa_money ) AS this_month_sa_money_sum, ");
executePluginSql.append(" SUM(this_month_profit) AS this_month_profit_sum ");
executePluginSql.append(" FROM new_gr_bi_sa_agg ");
// if(params.containsKey("useyear")){
// executePluginSql.append(" where use_year = " + params.get("useyear"));
// }
executePluginSql.append(" GROUP BY ");
executePluginSql.append(" use_year, use_month");
executePluginSql.append(" ) total_month_data ON total_month_data.use_year = current_month.use_year ");
executePluginSql.append(" AND total_month_data.use_month = current_month.use_month ");
// if(params.containsKey("useyear")){
// executePluginSql.append(" where current_month.use_year = " + params.get("useyear"));
// if(params.containsKey("usemonth")){
// executePluginSql.append(" and current_month.use_month = " + params.get("usemonth"));
// }
// }
executePluginSql.append(" GROUP BY \n"); executePluginSql.append(" GROUP BY \n");
if (groupFieldList.contains("customname") || params.containsKey("customname")) { if (groupFieldList.contains("customname") || params.containsKey("customname")) {
executePluginSql.append(" current_month.custom_id,"); executePluginSql.append(" current_month.custom_id,");