综合销售情况表 月度分组调整
This commit is contained in:
@@ -29,89 +29,87 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
|||||||
}else {
|
}else {
|
||||||
StringBuilder executePluginSql = new StringBuilder();
|
StringBuilder executePluginSql = new StringBuilder();
|
||||||
executePluginSql.append(" SELECT \n");
|
executePluginSql.append(" SELECT \n");
|
||||||
executePluginSql.append(" current_month.use_year as useyear, \n");
|
executePluginSql.append(" current_year_data.use_year as useyear, \n");
|
||||||
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_year_data.custom_id as customid, \n");
|
||||||
executePluginSql.append(" current_month.custom_name as customname, \n");
|
executePluginSql.append(" current_year_data.custom_name as customname, \n");
|
||||||
}
|
}
|
||||||
if(groupFieldList.contains("useyear") || params.containsKey("useyear")){
|
if(groupFieldList.contains("useyear") || params.containsKey("useyear")){
|
||||||
executePluginSql.append(" current_month.use_year as ny, \n"); //年月
|
executePluginSql.append(" current_year_data.use_year as ny, \n"); //年月
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
|
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
|
||||||
executePluginSql.append(" current_month.zone_id, \n");
|
executePluginSql.append(" current_year_data.zone_id, \n");
|
||||||
executePluginSql.append(" current_month.zone_name as zonename, \n");
|
executePluginSql.append(" current_year_data.zone_name as zonename, \n");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
|
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
|
||||||
executePluginSql.append(" current_month.sale_type_id, \n");
|
executePluginSql.append(" current_year_data.sale_type_id, \n");
|
||||||
executePluginSql.append(" current_month.sale_type_name as saletypename, \n");
|
executePluginSql.append(" current_year_data.sale_type_name as saletypename, \n");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
|
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
|
||||||
executePluginSql.append(" current_month.saler_id, \n");
|
executePluginSql.append(" current_year_data.saler_id, \n");
|
||||||
executePluginSql.append(" current_month.saler_name as salername, \n");
|
executePluginSql.append(" current_year_data.saler_name as salername, \n");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
|
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
|
||||||
executePluginSql.append(" current_month.dosage_id, \n");
|
executePluginSql.append(" current_year_data.dosage_id, \n");
|
||||||
executePluginSql.append(" current_month.dosage_name as dosagename, \n");
|
executePluginSql.append(" current_year_data.dosage_name as dosagename, \n");
|
||||||
}
|
}
|
||||||
if (params.containsKey("goodsname")) { //货品名称
|
if (params.containsKey("goodsname")) { //货品名称
|
||||||
executePluginSql.append(" current_month.goods_id, \n");
|
executePluginSql.append(" current_year_data.goods_id, \n");
|
||||||
executePluginSql.append(" current_month.goods_name as goodsname, \n");
|
executePluginSql.append(" current_year_data.goods_name as goodsname, \n");
|
||||||
}
|
}
|
||||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_year.province_id ORDER BY current_year.province_id SEPARATOR ',') as province_id, \n"); //行政区域ID
|
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_year_data.province_id ORDER BY current_year_data.province_id SEPARATOR ',') as province_id, \n"); //行政区域ID
|
||||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_year.province_name ORDER BY current_year.province_name SEPARATOR ',') as province_name, \n"); //行政区域名称
|
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_year_data.province_name ORDER BY current_year_data.province_name SEPARATOR ',') as province_name, \n"); //行政区域名称
|
||||||
|
|
||||||
executePluginSql.append(" SUM(current_year.this_year_sa_qty) AS thisYearSaQty, \n"); //本年销量
|
executePluginSql.append(" SUM(current_year_data.this_year_sa_qty) AS thissaqty, \n"); //本年销量
|
||||||
executePluginSql.append(" ROUND(SUM(current_year.this_year_sa_money) / 10000, 2) AS thisYearSaMoney, \n"); //本年销售金额(元)
|
executePluginSql.append(" ROUND(SUM(current_year_data.this_year_sa_money) / 10000, 2) AS thissamoney, \n"); //本年销售金额(元)
|
||||||
executePluginSql.append(" ROUND(SUM(current_year.this_year_profit) / 10000, 2) AS thisYearProfit, \n"); //本年毛利额(元)
|
executePluginSql.append(" ROUND(SUM(current_year_data.this_year_profit) / 10000, 2) AS thisprofit, \n"); //本年毛利额(元)
|
||||||
executePluginSql.append(" ROUND(SUM(current_year.this_year_cost) / 10000, 2) AS thisYearCost, \n");//本年销售成本(元)
|
executePluginSql.append(" ROUND(SUM(current_year_data.this_year_cost) / 10000, 2) AS thiscost, \n");//本年销售成本(元)
|
||||||
executePluginSql.append(" SUM(last_year_data.last_year_sa_qty) AS lastYearSaQty, \n"); //上年销量
|
executePluginSql.append(" SUM(last_year_data.last_year_sa_qty) AS lastYearSaQty, \n"); //上年销量
|
||||||
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_sa_money) / 10000, 2) AS lastYearSaMoney, \n"); //上年销售金额(元)
|
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_sa_money) / 10000, 2) AS lastYearSaMoney, \n"); //上年销售金额(元)
|
||||||
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_profit) / 10000, 2) AS lastYearProfit, \n");//上年毛利额(元)
|
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_profit) / 10000, 2) AS lastYearProfit, \n");//上年毛利额(元)
|
||||||
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_cost) / 10000, 2) AS lastYearCost, \n"); //上年销售成本(元)
|
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_cost) / 10000, 2) AS lastYearCost, \n"); //上年销售成本(元)
|
||||||
|
|
||||||
executePluginSql.append(" ROUND(avg(current_year.profit_change), 2) as PROFITCHANGE, \n"); //毛利变动(元)
|
// executePluginSql.append(" ROUND(avg(current_year_data.profit_change), 2) as profitchange, \n"); //毛利变动(元)
|
||||||
executePluginSql.append(" ROUND(avg(current_year.profit_growth), 2) as PROFITGROWTH, \n"); //毛利额增长率
|
// executePluginSql.append(" ROUND(avg(current_year_data.profit_growth), 2) as profitgrowth, \n"); //毛利额增长率
|
||||||
executePluginSql.append(" ROUND(avg(current_year.this_profit_rate), 2) as THISPROFITRATE, \n"); //本年毛利率
|
// executePluginSql.append(" ROUND(avg(current_year_data.this_profit_rate), 2) as thisprofitrate, \n"); //本年毛利率
|
||||||
executePluginSql.append(" ROUND(avg(current_year.last_year_profit_share) * 100, 2) as last_year_profit_share, \n"); //上年毛利额占比
|
executePluginSql.append(" COALESCE(ROUND(sum(current_year_data.this_year_sa_money) / SUM(total_year_data.this_year_sa_money_sum) * 100, 2), 0) AS this_year_sa_money_share, \n");//上年销售金额占比
|
||||||
executePluginSql.append(" ROUND(avg(current_year.this_year_profit_share) * 100, 2) AS this_year_profit_share, \n"); //本年毛利额占比
|
executePluginSql.append(" COALESCE (ROUND( sum(current_year_data.this_year_profit)/SUM(total_year_data.this_year_profit_sum) * 100, 2), 0 ) as thisprofitshare, \n"); //本年毛利额占比
|
||||||
executePluginSql.append(" COALESCE(ROUND(sum(current_year.this_year_sa_money) / SUM(total_year_data.this_year_sa_money_sum) * 100, 2), 0) AS this_year_sa_money_share, \n");//上年销售金额占比
|
|
||||||
executePluginSql.append(" COALESCE (ROUND( sum(current_year.this_year_profit)/SUM(total_year_data.this_year_profit_sum) * 100, 2), 0 ) as this_year_profit_share \n"); //本年销售金额占比
|
|
||||||
executePluginSql.append(" -- 数量同比(原有) \n");
|
executePluginSql.append(" -- 数量同比(原有) \n");
|
||||||
executePluginSql.append(" CASE \n");
|
executePluginSql.append(" CASE \n");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(current_year.last_year_sa_qty) = 0 THEN IF(sum(current_year.this_year_sa_qty) > 0, 100, 0) \n");
|
executePluginSql.append(" WHEN (CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_qty) - sum(current_year.last_year_sa_qty)) / sum(current_year.last_year_sa_qty) * 100 END) > 0 THEN \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END) > 0 THEN \n");
|
||||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(current_year.last_year_sa_qty) = 0 THEN IF(sum(current_year.this_year_sa_qty) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_qty) - sum(current_year.last_year_sa_qty)) / sum(current_year.last_year_sa_qty) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END), 2)) \n");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(current_year.last_year_sa_qty) = 0 THEN IF(sum(current_year.this_year_sa_qty) > 0, 100, 0) \n");
|
executePluginSql.append(" WHEN (CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_qty) - sum(current_year.last_year_sa_qty)) / sum(current_year.last_year_sa_qty) * 100 END) < 0 THEN \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END) < 0 THEN \n");
|
||||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(current_year.last_year_sa_qty) = 0 THEN IF(sum(current_year.this_year_sa_qty) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_qty) - sum(current_year.last_year_sa_qty)) / sum(current_year.last_year_sa_qty) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 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(" -- 销售金额同比(原有新增) \n");
|
executePluginSql.append(" -- 销售金额同比(原有新增) \n");
|
||||||
executePluginSql.append(" CASE \n");
|
executePluginSql.append(" CASE \n");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year.this_year_sa_money) > 0, 100, 0) \n");
|
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) > 0 THEN \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) > 0 THEN \n");
|
||||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year.this_year_sa_money) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year.this_year_sa_money) > 0, 100, 0) \n");
|
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) < 0 THEN \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) < 0 THEN \n");
|
||||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year.this_year_sa_money) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 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(" -- 新增:毛利同比 \n");
|
executePluginSql.append(" -- 新增:毛利同比 \n");
|
||||||
executePluginSql.append(" CASE \n");
|
executePluginSql.append(" CASE \n");
|
||||||
executePluginSql.append(" -- 正数:红色圆点emoji + 数值 + % \n");
|
executePluginSql.append(" -- 正数:红色圆点emoji + 数值 + % \n");
|
||||||
executePluginSql.append("WHEN (CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(MAX(current_year.this_year_profit) > 0, 100, 0) \n");
|
executePluginSql.append("WHEN (CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(MAX(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END) > 0 THEN \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END) > 0 THEN \n");
|
||||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(sum(current_year.this_year_profit) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(sum(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END), 2)) \n");
|
||||||
executePluginSql.append(" -- 负数:绿色圆点emoji + 数值 + % \n");
|
executePluginSql.append(" -- 负数:绿色圆点emoji + 数值 + % \n");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(sum(current_year.this_year_profit) > 0, 100, 0) \n");
|
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(sum(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END) < 0 THEN \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END) < 0 THEN \n");
|
||||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(MAX(current_year.this_year_profit) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(MAX(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (MAX(current_year.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END), 2)) \n");
|
||||||
executePluginSql.append(" -- 0值:直接显示 \n");
|
executePluginSql.append(" -- 0值:直接显示 \n");
|
||||||
executePluginSql.append(" ELSE '0.00' \n");
|
executePluginSql.append(" ELSE '0.00' \n");
|
||||||
executePluginSql.append(" END AS profit_yoy, \n"); //本年毛利同比
|
executePluginSql.append(" END AS profit_yoy, \n"); //本年毛利同比
|
||||||
@@ -124,9 +122,9 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
|||||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||||
executePluginSql.append(" ELSE (sum(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
executePluginSql.append(" ELSE (sum(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
||||||
executePluginSql.append(" ELSE '0.00' \n");
|
executePluginSql.append(" ELSE '0.00' \n");
|
||||||
executePluginSql.append(" END AS lastMonthSaMoney_yoy, \n"); //本年销售金额增长率
|
executePluginSql.append(" END AS samoneygrowth \n"); //本年销售金额增长率
|
||||||
executePluginSql.append(" FROM \n");
|
executePluginSql.append(" FROM \n");
|
||||||
executePluginSql.append(" yunji_gr_bi_sa_agg as current_year \n");
|
executePluginSql.append(" new_gr_bi_sa_agg_year_count as current_year_data \n");
|
||||||
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
||||||
executePluginSql.append(" goods_id, \n");
|
executePluginSql.append(" goods_id, \n");
|
||||||
executePluginSql.append(" zone_id, \n");
|
executePluginSql.append(" zone_id, \n");
|
||||||
@@ -148,52 +146,52 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
|||||||
executePluginSql.append(" dosage_id, \n");
|
executePluginSql.append(" dosage_id, \n");
|
||||||
executePluginSql.append(" custom_id, \n");
|
executePluginSql.append(" custom_id, \n");
|
||||||
executePluginSql.append(" saler_id) AS last_year_data \n");
|
executePluginSql.append(" saler_id) AS last_year_data \n");
|
||||||
executePluginSql.append(" ON current_year.goods_id = last_year_data.goods_id \n");
|
executePluginSql.append(" ON current_year_data.goods_id = last_year_data.goods_id \n");
|
||||||
executePluginSql.append(" AND current_year.zone_id = last_year_data.zone_id \n");
|
executePluginSql.append(" AND current_year_data.zone_id = last_year_data.zone_id \n");
|
||||||
executePluginSql.append(" AND current_year.province_id = last_year_data.province_id \n");
|
executePluginSql.append(" AND current_year_data.province_id = last_year_data.province_id \n");
|
||||||
executePluginSql.append(" AND current_year.sale_type_id = last_year_data.sale_type_id \n");
|
executePluginSql.append(" AND current_year_data.sale_type_id = last_year_data.sale_type_id \n");
|
||||||
executePluginSql.append(" AND current_year.dosage_id = last_year_data.dosage_id \n");
|
executePluginSql.append(" AND current_year_data.dosage_id = last_year_data.dosage_id \n");
|
||||||
executePluginSql.append(" AND current_year.custom_id = last_year_data.custom_id \n");
|
executePluginSql.append(" AND current_year_data.custom_id = last_year_data.custom_id \n");
|
||||||
executePluginSql.append(" AND current_year.saler_id = last_year_data.saler_id \n");
|
executePluginSql.append(" AND current_year_data.saler_id = last_year_data.saler_id \n");
|
||||||
executePluginSql.append(" AND last_year_data.use_year = current_year.use_year - 1 \n");
|
executePluginSql.append(" AND last_year_data.use_year = current_year_data.use_year - 1 \n");
|
||||||
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
||||||
executePluginSql.append(" SUM(this_year_sa_money) AS this_year_sa_money_sum, \n");
|
executePluginSql.append(" SUM(this_year_sa_money) AS this_year_sa_money_sum, \n");
|
||||||
executePluginSql.append(" SUM(this_year_profit) AS this_year_profit_sum \n");
|
executePluginSql.append(" SUM(this_year_profit) AS this_year_profit_sum \n");
|
||||||
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
||||||
executePluginSql.append(" WHERE use_year = 2026 \n");
|
executePluginSql.append(" WHERE use_year = 2026 \n");
|
||||||
executePluginSql.append(" GROUP BY use_year) as total_year_data \n");
|
executePluginSql.append(" GROUP BY use_year) as total_year_data \n");
|
||||||
executePluginSql.append(" ON total_year_data.use_year = current_year.use_year \n");
|
executePluginSql.append(" ON total_year_data.use_year = current_year_data.use_year \n");
|
||||||
|
|
||||||
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_year_data.custom_id,");
|
||||||
executePluginSql.append(" current_month.custom_name,");
|
executePluginSql.append(" current_year_data.custom_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
||||||
executePluginSql.append(" current_month.use_year,");
|
executePluginSql.append(" current_year_data.use_year,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
|
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
|
||||||
executePluginSql.append(" current_month.use_month,");
|
executePluginSql.append(" current_year_data.use_month,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
|
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
|
||||||
executePluginSql.append(" current_month.zone_id,");
|
executePluginSql.append(" current_year_data.zone_id,");
|
||||||
executePluginSql.append(" current_month.zone_name,");
|
executePluginSql.append(" current_year_data.zone_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
|
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
|
||||||
executePluginSql.append(" current_month.sale_type_id,");
|
executePluginSql.append(" current_year_data.sale_type_id,");
|
||||||
executePluginSql.append(" current_month.sale_type_name,");
|
executePluginSql.append(" current_year_data.sale_type_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
|
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
|
||||||
executePluginSql.append(" current_month.saler_id,");
|
executePluginSql.append(" current_year_data.saler_id,");
|
||||||
executePluginSql.append(" current_month.saler_name,");
|
executePluginSql.append(" current_year_data.saler_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
|
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
|
||||||
executePluginSql.append(" current_month.dosage_id,");
|
executePluginSql.append(" current_year_data.dosage_id,");
|
||||||
executePluginSql.append(" current_month.dosage_name,");
|
executePluginSql.append(" current_year_data.dosage_name,");
|
||||||
}
|
}
|
||||||
if (params.containsKey("goodsname")) { //货品名称
|
if (params.containsKey("goodsname")) { //货品名称
|
||||||
executePluginSql.append(" current_month.goods_id,");
|
executePluginSql.append(" current_year_data.goods_id,");
|
||||||
executePluginSql.append(" current_month.goods_name,");
|
executePluginSql.append(" current_year_data.goods_name,");
|
||||||
}
|
}
|
||||||
|
|
||||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||||
@@ -312,8 +310,8 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
|||||||
executePluginSql.append(" ELSE '0.00' \n");
|
executePluginSql.append(" ELSE '0.00' \n");
|
||||||
executePluginSql.append(" END AS monthprofit_yoy, \n"); //本月毛利同比
|
executePluginSql.append(" END AS monthprofit_yoy, \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_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(" from new_gr_bi_sa_agg_month_count as current_month \n");
|
executePluginSql.append(" from new_gr_bi_sa_agg_month_count as current_month \n");
|
||||||
executePluginSql.append(" LEFT JOIN (SELECT \n");
|
executePluginSql.append(" LEFT JOIN (SELECT \n");
|
||||||
executePluginSql.append(" use_year, \n");
|
executePluginSql.append(" use_year, \n");
|
||||||
|
|||||||
Reference in New Issue
Block a user