综合销售情况表 月度分组调整
This commit is contained in:
@@ -29,142 +29,173 @@ 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");
|
||||||
if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称
|
if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称
|
||||||
executePluginSql.append(" tbl_lgbsa.CUSTOMID, \n");
|
executePluginSql.append(" current_month.custom_id as customid, \n");
|
||||||
executePluginSql.append(" tbl_lgbsa.CUSTOMNAME, \n");
|
executePluginSql.append(" current_month.custom_name as customname, \n");
|
||||||
}
|
|
||||||
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) { //年
|
|
||||||
executePluginSql.append(" tbl_lgbsa.USEYEAR, \n");
|
|
||||||
if (!(groupFieldList.contains("usemonth") || params.containsKey("usemonth"))) {
|
|
||||||
executePluginSql.append(" MAX(USEYEAR) as ny, \n"); //年月
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) { //月
|
|
||||||
executePluginSql.append(" tbl_lgbsa.USEMONTH, \n");
|
|
||||||
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
|
||||||
executePluginSql.append(" MAX(CONCAT(USEYEAR, LPAD(USEMONTH, 2, '0'))) as ny, \n"); //年月
|
|
||||||
} else {
|
|
||||||
executePluginSql.append(" MAX(LPAD(USEMONTH, 2, '0')) as ny, \n");
|
|
||||||
}
|
}
|
||||||
|
if(groupFieldList.contains("useyear") || params.containsKey("useyear")){
|
||||||
|
executePluginSql.append(" current_month.use_year as ny, \n"); //年月
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
|
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
|
||||||
executePluginSql.append(" tbl_lgbsa.ZONEID, \n");
|
executePluginSql.append(" current_month.zone_id, \n");
|
||||||
executePluginSql.append(" tbl_lgbsa.ZONENAME, \n");
|
executePluginSql.append(" current_month.zone_name as zonename, \n");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
|
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
|
||||||
executePluginSql.append(" tbl_lgbsa.SALETYPEID, \n");
|
executePluginSql.append(" current_month.sale_type_id, \n");
|
||||||
executePluginSql.append(" tbl_lgbsa.SALETYPENAME, \n");
|
executePluginSql.append(" current_month.sale_type_name as saletypename, \n");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
|
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
|
||||||
executePluginSql.append(" tbl_lgbsa.SALERID, \n");
|
executePluginSql.append(" current_month.saler_id, \n");
|
||||||
executePluginSql.append(" tbl_lgbsa.SALERNAME, \n");
|
executePluginSql.append(" current_month.saler_name as salername, \n");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
|
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
|
||||||
executePluginSql.append(" tbl_lgbsa.DOSAGEID, \n");
|
executePluginSql.append(" current_month.dosage_id, \n");
|
||||||
executePluginSql.append(" tbl_lgbsa.DOSAGENAME, \n");
|
executePluginSql.append(" current_month.dosage_name as dosagename, \n");
|
||||||
}
|
}
|
||||||
if (params.containsKey("goodsname")) { //货品名称
|
if (params.containsKey("goodsname")) { //货品名称
|
||||||
executePluginSql.append(" tbl_lgbsa.GOODSID, \n");
|
executePluginSql.append(" current_month.goods_id, \n");
|
||||||
executePluginSql.append(" tbl_lgbsa.GOODSNAME, \n");
|
executePluginSql.append(" current_month.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.province_name ORDER BY current_year.province_name SEPARATOR ',') as province_name, \n"); //行政区域名称
|
||||||
|
|
||||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCEID ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCEID, \n"); //行政区域ID
|
executePluginSql.append(" SUM(current_year.this_year_sa_qty) AS thisYearSaQty, \n"); //本年销量
|
||||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCENAME ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCENAME, \n"); //行政区域名称
|
executePluginSql.append(" ROUND(SUM(current_year.this_year_sa_money) / 10000, 2) AS thisYearSaMoney, \n"); //本年销售金额(元)
|
||||||
executePluginSql.append(" SUM(tbl_lgbsa.MONTHSAQTY) as THISSAQTY, \n"); //本年销量
|
executePluginSql.append(" ROUND(SUM(current_year.this_year_profit) / 10000, 2) AS thisYearProfit, \n"); //本年毛利额(元)
|
||||||
executePluginSql.append(" SUM(tbl_lgbsa.LASTSAQTY) as LASTSAQTY, \n"); //上年销量
|
executePluginSql.append(" ROUND(SUM(current_year.this_year_cost) / 10000, 2) AS thisYearCost, \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_profit) / 10000, 2) AS lastYearProfit, \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.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.last_year_profit_share) * 100, 2) as last_year_profit_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.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(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) > 0 THEN \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(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \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(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) < 0 THEN \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(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \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 '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 THISSAMONEY, \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");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) > 0 THEN \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(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \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(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) < 0 THEN \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(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \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 '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 THISPROFIT, \n"); //本年毛利额(元)
|
|
||||||
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.LASTPROFIT) / 10000, 2) as LASTPROFIT, \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(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(MAX(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) > 0 THEN \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(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2)) \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(" -- 负数:绿色圆点emoji + 数值 + % \n");
|
executePluginSql.append(" -- 负数:绿色圆点emoji + 数值 + % \n");
|
||||||
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) < 0 THEN \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(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(MAX(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \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(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2)) \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(" -- 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"); //本年毛利同比
|
||||||
executePluginSql.append(" ROUND(SUM(tbl_lgbsamc.this_month_cost) / 10000, 2) as this_month_cost, \n"); //本月销售成本(元)
|
executePluginSql.append(" CASE 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(" ROUND(MAX(tbl_lgbsayc.this_year_cost) / 10000, 2) as this_year_cost, \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) > 0 THEN \n");
|
||||||
executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITCHANGE), 2) as PROFITCHANGE, \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(" ROUND(avg(tbl_lgbsa.PROFITGROWTH), 2) as PROFITGROWTH, \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(" ROUND(avg(tbl_lgbsa.THISPROFITRATE), 2) as THISPROFITRATE, \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(" CASE \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) < 0 THEN \n");
|
||||||
executePluginSql.append(" WHEN ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) > 0 THEN \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(" CONCAT('🟢 ', ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 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(" WHEN ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) < 0 THEN \n");
|
|
||||||
executePluginSql.append(" CONCAT('🔴 ', ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2)) \n");
|
|
||||||
executePluginSql.append(" ELSE '0.00' \n");
|
executePluginSql.append(" ELSE '0.00' \n");
|
||||||
executePluginSql.append(" END AS SAMONEYGROWTH, \n");//销售金额增长率
|
executePluginSql.append(" END AS lastMonthSaMoney_yoy, \n"); //本年销售金额增长率
|
||||||
executePluginSql.append(" ROUND(avg(tbl_lgbsa.LASTPROFITSHARE) * 100, 2) as LASTPROFITSHARE, \n"); //上年毛利额占比
|
|
||||||
executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISPROFITSHARE) * 100, 2) AS THISPROFITSHARE, \n"); //本年毛利额占比
|
|
||||||
executePluginSql.append(" ROUND(avg(tbl_lgbsa.LASTSAMONEYSHARE) * 100, 2) AS LASTSAMONEYSHARE, \n"); //上年销售金额占比
|
|
||||||
executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISSAMONEYSHARE) * 100, 2) AS THISSAMONEYSHARE, \n"); //本年销售金额占比
|
|
||||||
executePluginSql.append(" FROM \n");
|
executePluginSql.append(" FROM \n");
|
||||||
executePluginSql.append(" yunji_gr_bi_sa_agg tbl_lgbsa \n");
|
executePluginSql.append(" yunji_gr_bi_sa_agg as current_year \n");
|
||||||
|
executePluginSql.append(" LEFT JOIN (SELECT use_year, \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_year_sa_qty) AS last_year_sa_qty, \n");
|
||||||
|
executePluginSql.append(" SUM(this_year_sa_money) AS last_year_sa_money, \n");
|
||||||
|
executePluginSql.append(" SUM(this_year_cost) AS last_year_cost, \n");
|
||||||
|
executePluginSql.append(" SUM(this_year_profit) AS last_year_profit \n");
|
||||||
|
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
||||||
|
executePluginSql.append(" GROUP BY use_year, \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_year_data \n");
|
||||||
|
executePluginSql.append(" ON current_year.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.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.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.saler_id = last_year_data.saler_id \n");
|
||||||
|
executePluginSql.append(" AND last_year_data.use_year = current_year.use_year - 1 \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_profit) AS this_year_profit_sum \n");
|
||||||
|
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
||||||
|
executePluginSql.append(" WHERE use_year = 2026 \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(" GROUP BY \n");
|
executePluginSql.append(" GROUP BY \n");
|
||||||
if (groupFieldList.contains("customname") || params.containsKey("customname")) {
|
if (groupFieldList.contains("customname") || params.containsKey("customname")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.CUSTOMID,");
|
executePluginSql.append(" current_month.custom_id,");
|
||||||
executePluginSql.append(" tbl_lgbsa.CUSTOMNAME,");
|
executePluginSql.append(" current_month.custom_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.USEYEAR,");
|
executePluginSql.append(" current_month.use_year,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
|
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.USEMONTH,");
|
executePluginSql.append(" current_month.use_month,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
|
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.ZONEID,");
|
executePluginSql.append(" current_month.zone_id,");
|
||||||
executePluginSql.append(" tbl_lgbsa.ZONENAME,");
|
executePluginSql.append(" current_month.zone_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
|
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.SALETYPEID,");
|
executePluginSql.append(" current_month.sale_type_id,");
|
||||||
executePluginSql.append(" tbl_lgbsa.SALETYPENAME,");
|
executePluginSql.append(" current_month.sale_type_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
|
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.SALERID,");
|
executePluginSql.append(" current_month.saler_id,");
|
||||||
executePluginSql.append(" tbl_lgbsa.SALERNAME,");
|
executePluginSql.append(" current_month.saler_name,");
|
||||||
}
|
}
|
||||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
|
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
|
||||||
executePluginSql.append(" tbl_lgbsa.DOSAGEID,");
|
executePluginSql.append(" current_month.dosage_id,");
|
||||||
executePluginSql.append(" tbl_lgbsa.DOSAGENAME,");
|
executePluginSql.append(" current_month.dosage_name,");
|
||||||
}
|
}
|
||||||
if (params.containsKey("goodsname")) { //货品名称
|
if (params.containsKey("goodsname")) { //货品名称
|
||||||
executePluginSql.append(" tbl_lgbsa.GOODSID,");
|
executePluginSql.append(" current_month.goods_id,");
|
||||||
executePluginSql.append(" tbl_lgbsa.GOODSNAME,");
|
executePluginSql.append(" current_month.goods_name,");
|
||||||
}
|
}
|
||||||
|
|
||||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||||
sql = executePluginSql.toString();
|
sql = executePluginSql.toString();
|
||||||
}
|
}
|
||||||
@@ -331,9 +362,9 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
|||||||
executePluginSql.append(" SUM(this_month_cost) as yoy_month_cost, \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(" 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 ");
|
||||||
if(params.containsKey("useyear")){
|
// if(params.containsKey("useyear")){
|
||||||
executePluginSql.append(" where use_year = " + (Integer.parseInt(params.get("useyear").toString())-1));
|
// executePluginSql.append(" where use_year = " + (Integer.parseInt(params.get("useyear").toString())-1));
|
||||||
}
|
// }
|
||||||
executePluginSql.append(" GROUP BY use_year, \n");
|
executePluginSql.append(" GROUP BY use_year, \n");
|
||||||
executePluginSql.append(" use_month, \n");
|
executePluginSql.append(" use_month, \n");
|
||||||
executePluginSql.append(" goods_id, \n");
|
executePluginSql.append(" goods_id, \n");
|
||||||
@@ -358,9 +389,9 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
|||||||
executePluginSql.append(" SUM( this_month_sa_money ) AS this_month_sa_money_sum, \n");
|
executePluginSql.append(" SUM( this_month_sa_money ) AS this_month_sa_money_sum, \n");
|
||||||
executePluginSql.append(" SUM(this_month_profit) AS this_month_profit_sum \n");
|
executePluginSql.append(" SUM(this_month_profit) AS this_month_profit_sum \n");
|
||||||
executePluginSql.append(" FROM new_gr_bi_sa_agg \n");
|
executePluginSql.append(" FROM new_gr_bi_sa_agg \n");
|
||||||
if(params.containsKey("useyear")){
|
// if(params.containsKey("useyear")){
|
||||||
executePluginSql.append(" where use_year = " + params.get("useyear"));
|
// executePluginSql.append(" where use_year = " + params.get("useyear"));
|
||||||
}
|
// }
|
||||||
executePluginSql.append(" GROUP BY \n");
|
executePluginSql.append(" GROUP BY \n");
|
||||||
executePluginSql.append(" use_year, use_month\n");
|
executePluginSql.append(" use_year, use_month\n");
|
||||||
executePluginSql.append(" ) total_month_data ON total_month_data.use_year = current_month.use_year \n");
|
executePluginSql.append(" ) total_month_data ON total_month_data.use_year = current_month.use_year \n");
|
||||||
|
|||||||
Reference in New Issue
Block a user