综合销售情况表 排序问题 处理, 新增功能 查询时间范围

This commit is contained in:
king
2026-04-08 16:49:11 +08:00
parent 77e334728c
commit 471ce4c28f
8 changed files with 191 additions and 74 deletions

View File

@@ -45,16 +45,23 @@ public class NewGrBiSaAggMonthCountController extends BaseController
public BaseWebResult getTotalDetail(HttpServletRequest req) public BaseWebResult getTotalDetail(HttpServletRequest req)
{ {
Map<String, Object> params = FuncWeb.getParameterBodyMap(req); Map<String, Object> params = FuncWeb.getParameterBodyMap(req);
String groupField = params.containsKey("Group by") ? params.get("Group by").toString() : "useMonth"; String groupField = params.containsKey("Group by") ? params.get("Group by").toString() : "";
SaAggParam saAggParam = new SaAggParam(); SaAggParam saAggParam = new SaAggParam();
if (params.containsKey("useMonth")){ if(groupField.contains("useMonth")){
saAggParam.setUseMonth(params.get("useMonth").toString()); if (params.containsKey("useMonthStart")){
saAggParam.setUseMonthStart(params.get("useMonthStart").toString());
}
if (params.containsKey("useMonthEnd")){
saAggParam.setUseMonthEnd(params.get("useMonthEnd").toString());
}
} }
if(params.containsKey("useYear")){ if(params.containsKey("useYearStart")){
saAggParam.setUseYear(params.get("useYear").toString()); saAggParam.setUseYearStart(params.get("useYearStart").toString());
}else{
saAggParam.setUseYear(new SimpleDateFormat("yyyy").format(new Date()));
} }
if(params.containsKey("useYearEnd")){
saAggParam.setUseYearEnd(params.get("useYearEnd").toString());
}
if(params.containsKey("customName")){ if(params.containsKey("customName")){
saAggParam.setCustomName(Arrays.asList(params.get("customName").toString().split(","))); saAggParam.setCustomName(Arrays.asList(params.get("customName").toString().split(",")));
} }
@@ -80,7 +87,7 @@ public class NewGrBiSaAggMonthCountController extends BaseController
if (params.containsKey("provinceName")){ if (params.containsKey("provinceName")){
saAggParam.setProvinceName(Arrays.asList(params.get("provinceName").toString().split( ","))); saAggParam.setProvinceName(Arrays.asList(params.get("provinceName").toString().split( ",")));
} }
if (params.containsKey("useMonth") || groupField.contains("useMonth")){ if (groupField.contains("useMonth")){
List<NewGrBiSaAggMonthCount> list = newGrBiSaAggMonthCountService.getTotalDetail(saAggParam); List<NewGrBiSaAggMonthCount> list = newGrBiSaAggMonthCountService.getTotalDetail(saAggParam);
return BaseWebResult.success(list); return BaseWebResult.success(list);
}else{ }else{

View File

@@ -2,12 +2,11 @@
package com.lideeyunji.core.framework.enhance.example.report.xtsy; package com.lideeyunji.core.framework.enhance.example.report.xtsy;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext;
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportAroundAdvicePlugin; import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportAroundAdvicePlugin;
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportBeforeAdvicePlugin;
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount; import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount; import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
import com.lideeyunji.core.framework.service.INewGrBiSaAggMonthCountService; import com.lideeyunji.core.framework.service.INewGrBiSaAggMonthCountService;
@@ -15,9 +14,7 @@ import com.lideeyunji.core.framework.service.INewGrBiSaAggService;
import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService; import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService;
import com.lideeyunji.tool.framework.exception.lideeYunJiException; import com.lideeyunji.tool.framework.exception.lideeYunJiException;
import com.lideeyunji.tool.framework.yunji.model.ResultDataModel; import com.lideeyunji.tool.framework.yunji.model.ResultDataModel;
import com.lideeyunji.tool.framework.yunji.model.global.BaseWebResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -44,7 +41,7 @@ public class zhxsqkPlugin implements ReportAroundAdvicePlugin {
@Override @Override
public ResultDataModel executeAround(EnhanceReportContext enhanceContext) { public ResultDataModel executeAround(EnhanceReportContext enhanceContext) {
log.info("进入=======>zhxsqkLineReportEnhance=======>execute"); log.info("进入=======>zhxsqkPlugin=======>execute");
Map<String, Object> params = enhanceContext.getParam().getParams(); Map<String, Object> params = enhanceContext.getParam().getParams();
if (params.containsKey("Group by")) { if (params.containsKey("Group by")) {
@@ -55,13 +52,48 @@ public class zhxsqkPlugin implements ReportAroundAdvicePlugin {
if(!groupFieldList.contains("useYear") && !params.containsKey("useYear")){ if(!groupFieldList.contains("useYear") && !params.containsKey("useYear")){
throw new lideeYunJiException("维度“年” 和 查询条件“年” 不能同时为空!"); throw new lideeYunJiException("维度“年” 和 查询条件“年” 不能同时为空!");
} }
PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString())); Page<Object> page = PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()));
if(groupFieldList.contains("useMonth") || params.containsKey("useMonth")){ if(groupFieldList.contains("useMonth") || params.containsKey("useMonth")){
setMonthOrderBy(params, page);
List<NewGrBiSaAggMonthCount> newGrBiSaAggList = newGrBiSaAggMonthCountService.selectNewGrBiSaAggGroupMonthList(params, groupFieldList); List<NewGrBiSaAggMonthCount> newGrBiSaAggList = newGrBiSaAggMonthCountService.selectNewGrBiSaAggGroupMonthList(params, groupFieldList);
PageInfo<NewGrBiSaAggMonthCount> pageInfo = new PageInfo<>(newGrBiSaAggList); PageInfo<NewGrBiSaAggMonthCount> pageInfo = new PageInfo<>(newGrBiSaAggList);
List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList()); List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList());
return ResultDataModel.fomat(pageInfo.getTotal(),list); return ResultDataModel.fomat(pageInfo.getTotal(),list);
}else{ }else{
if(params.containsKey("column")){
String orderBy = "";
if ("thisYearSaQty".equals(params.get("column"))) {
orderBy = "this_year_sa_qty " + params.get("order").toString();
}
if ("saqty_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(saqty_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
if ("thisYearSaMoney".equals(params.get("column"))) {
orderBy = "this_year_sa_money " + params.get("order").toString();
}
if ("samoney_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(samoney_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
if ("thisYearProfit".equals(params.get("column"))) {
orderBy = "this_year_profit " + params.get("order").toString();
}
if ("profit_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(profit_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
if ("thisYearCost".equals(params.get("column"))) {
orderBy = "this_year_cost " + params.get("order").toString();
}
if ("thisYearSaMoneyShare".equals(params.get("column"))) {
orderBy = "this_year_sa_money_share " + params.get("order").toString();
}
if ("thisprofitshare".equals(params.get("column"))) {
orderBy = "thisprofitshare " + params.get("order").toString();
}
if ("thisYearSaMoneyGrowth".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(this_year_sa_money_growth, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
page.setUnsafeOrderBy(orderBy);
}
List<NewGrBiSaAggYearCount> newGrBiSaAggList = newGrBiSaAggYearCountService.selectNewGrBiSaAggGroupYearList(params, groupFieldList); List<NewGrBiSaAggYearCount> newGrBiSaAggList = newGrBiSaAggYearCountService.selectNewGrBiSaAggGroupYearList(params, groupFieldList);
PageInfo<NewGrBiSaAggYearCount> pageInfo = new PageInfo<>(newGrBiSaAggList); PageInfo<NewGrBiSaAggYearCount> pageInfo = new PageInfo<>(newGrBiSaAggList);
List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList()); List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList());
@@ -69,11 +101,49 @@ public class zhxsqkPlugin implements ReportAroundAdvicePlugin {
} }
}else { }else {
PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString())); Page<Object> page = PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()));
setMonthOrderBy(params, page);
List<NewGrBiSaAggMonthCount> newGrBiSaAggList = newGrBiSaAggService.selectNewGrBiSaAggList(params); List<NewGrBiSaAggMonthCount> newGrBiSaAggList = newGrBiSaAggService.selectNewGrBiSaAggList(params);
PageInfo<NewGrBiSaAggMonthCount> pageInfo = new PageInfo<>(newGrBiSaAggList); PageInfo<NewGrBiSaAggMonthCount> pageInfo = new PageInfo<>(newGrBiSaAggList);
List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList()); List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList());
return ResultDataModel.fomat(pageInfo.getTotal(),list); return ResultDataModel.fomat(pageInfo.getTotal(),list);
} }
} }
private void setMonthOrderBy(Map<String, Object> params, Page<Object> page) {
if(params.containsKey("column")){
String orderBy = "";
if ("thisMonthSaQty".equals(params.get("column"))) {
orderBy = "this_month_sa_qty " + params.get("order").toString();
}
if ("monthsaqty_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(monthsaqty_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
if ("thisMonthSaMoney".equals(params.get("column"))) {
orderBy = "this_month_sa_money " + params.get("order").toString();
}
if ("monthsamoney_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(monthsamoney_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
if ("thisMonthProfit".equals(params.get("column"))) {
orderBy = "this_month_profit " + params.get("order").toString();
}
if ("monthprofit_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(monthprofit_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
if ("thisMonthCost".equals(params.get("column"))) {
orderBy = "this_month_cost " + params.get("order").toString();
}
if ("thisMonthSaMoneyShare".equals(params.get("column"))) {
orderBy = "this_month_sa_money_share " + params.get("order").toString();
}
if ("thisMonthProfitShare".equals(params.get("column"))) {
orderBy = "this_month_profit_share " + params.get("order").toString();
}
if ("lastMonthSaMoney_yoy".equals(params.get("column"))) {
orderBy = "CAST(TRIM(REGEXP_SUBSTR(lastMonthSaMoney_yoy, '-?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)')) AS DECIMAL(10,2)) " + params.get("order").toString();
}
page.setUnsafeOrderBy(orderBy);
}
}
} }

View File

@@ -72,7 +72,7 @@ public interface NewGrBiSaAggMapper extends BaseMapper<NewGrBiSaAgg>
*/ */
@DataPermission(enable = false) @DataPermission(enable = false)
@DS(value = "#dataSourceType") @DS(value = "#dataSourceType")
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(@Param("dataSourceType") String dataSourceType, @Param("saAggParam")SaAggParam saAggParam); public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(@Param("dataSourceType") String dataSourceType, @Param("saAggParam")SaAggParam saAggParam, @Param("params") Map<String, Object> params);
/** /**
* 新增综合销售情况明细 * 新增综合销售情况明细

View File

@@ -6,8 +6,10 @@ import java.util.List;
@Data @Data
public class SaAggParam { public class SaAggParam {
private String useYear; private String useYearStart;
private String useMonth; private String useYearEnd;
private String useMonthStart;
private String useMonthEnd;
private List<String> customName; private List<String> customName;
private List<String> zoneName; private List<String> zoneName;
private List<String> saleTypeName; private List<String> saleTypeName;

View File

@@ -142,17 +142,23 @@ public class NewGrBiSaAggServiceImpl extends ServiceImpl<NewGrBiSaAggMapper, New
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(Map<String, Object> params) public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(Map<String, Object> params)
{ {
SaAggParam saAggParam = createParam(params); SaAggParam saAggParam = createParam(params);
return this.baseMapper.selectNewGrBiSaAggList(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam); return this.baseMapper.selectNewGrBiSaAggList(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam, params);
} }
public static SaAggParam createParam(Map<String, Object> params) { public static SaAggParam createParam(Map<String, Object> params) {
SaAggParam saAggParam = new SaAggParam(); SaAggParam saAggParam = new SaAggParam();
if (params.containsKey("useYear")) { if (params.containsKey("useYearStart")) {
saAggParam.setUseYear(params.get("useYear").toString()); saAggParam.setUseYearStart(params.get("useYearStart").toString());
} }
if (params.containsKey("useMonth")) { if (params.containsKey("useYearEnd")) {
saAggParam.setUseMonth(params.get("useMonth").toString()); saAggParam.setUseYearEnd(params.get("useYearEnd").toString());
}
if (params.containsKey("useMonthStart")) {
saAggParam.setUseMonthStart(params.get("useMonthStart").toString());
}
if (params.containsKey("useMonthEnd")) {
saAggParam.setUseMonthEnd(params.get("useMonthEnd").toString());
} }
if (params.containsKey("customName")) { if (params.containsKey("customName")) {
saAggParam.setCustomName(Arrays.asList(params.get("customName").toString().split( ","))); saAggParam.setCustomName(Arrays.asList(params.get("customName").toString().split( ",")));

View File

@@ -645,8 +645,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM FROM
new_gr_bi_sa_agg tbl_lgbsa new_gr_bi_sa_agg tbl_lgbsa
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if> <!-- 使用 (use_year * 100 + use_month) 组合成年月数值进行比较 -->
<if test="saAggParam.useMonth != null "> and use_month = #{saAggParam.useMonth}</if> <if test="saAggParam.useYearStart != null and saAggParam.useYearStart != '' and saAggParam.useMonthStart != null and saAggParam.useMonthStart != ''">
AND (use_year * 100 + use_month) &gt;= (#{saAggParam.useYearStart} * 100 + #{saAggParam.useMonthStart})
</if>
<if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != '' and saAggParam.useMonthEnd != null and saAggParam.useMonthEnd != ''">
AND (use_year * 100 + use_month) &lt;= (#{saAggParam.useYearEnd} * 100 + #{saAggParam.useMonthEnd})
</if>
<!--<if test="zoneId != null "> and zone_id = #{zoneId}</if>--> <!--<if test="zoneId != null "> and zone_id = #{zoneId}</if>-->
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in <if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")"> <foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">

View File

@@ -58,8 +58,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ROUND(SUM(this_month_profit) / 10000, 2) AS this_month_profit_s ROUND(SUM(this_month_profit) / 10000, 2) AS this_month_profit_s
FROM new_gr_bi_sa_agg_month_count FROM new_gr_bi_sa_agg_month_count
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if> <!--<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>
<if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and use_month = #{saAggParam.useMonth}</if> <if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and use_month = #{saAggParam.useMonth}</if>-->
<!-- <if test="saAggParam.useYearStart != null and saAggParam.useYearStart != ''"> and use_year &gt; #{saAggParam.useYearStart}</if>-->
<!-- <if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != ''"> and use_year &lt; #{saAggParam.useYearEnd}</if>-->
<!-- <if test="saAggParam.useMonthStart != null and saAggParam.useMonthStart != ''"> and use_month &gt; #{saAggParam.useMonthStart}</if>-->
<!-- <if test="saAggParam.useMonthEnd != null and saAggParam.useMonthEnd != ''"> and use_month &lt; #{saAggParam.useMonthEnd}</if>-->
<if test="saAggParam.useYearStart != null and saAggParam.useYearStart != '' and saAggParam.useMonthStart != null and saAggParam.useMonthStart != ''">
AND (use_year * 100 + use_month) &gt;= (#{saAggParam.useYearStart} * 100 + #{saAggParam.useMonthStart})
</if>
<if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != '' and saAggParam.useMonthEnd != null and saAggParam.useMonthEnd != ''">
AND (use_year * 100 + use_month) &lt;= (#{saAggParam.useYearEnd} * 100 + #{saAggParam.useMonthEnd})
</if>
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in <if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
<foreach collection="saAggParam.customName" item="field" separator="," open="(" close=")">#{field}</foreach> <foreach collection="saAggParam.customName" item="field" separator="," open="(" close=")">#{field}</foreach>
</if> </if>
@@ -248,18 +259,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectNewGrBiSaAggGroupMonthList" resultMap="NewGrBiSaAggMonthCountResult"> <select id="selectNewGrBiSaAggGroupMonthList" resultMap="NewGrBiSaAggMonthCountResult">
select select
<if test="groupFieldList.contains('useMonth') || params.containsKey('useMonth')"> current_month.use_month ,
current_month.use_month , <choose>
<choose> <when test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
<when test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> current_month.use_year,
current_month.use_year, current_month.ny as ny,
current_month.ny as ny, </when>
</when> <otherwise>
<otherwise> LPAD(current_month.use_month, 2, '0') as ny,
LPAD(current_month.use_month, 2, '0') as ny, </otherwise>
</otherwise> </choose>
</choose>
</if>
<if test="groupFieldList.contains('customName') || params.containsKey('customName')"> <if test="groupFieldList.contains('customName') || params.containsKey('customName')">
current_month.custom_id, current_month.custom_id,
current_month.custom_name, current_month.custom_name,
@@ -352,7 +361,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
COALESCE (ROUND( current_month.this_month_sa_money/total_month_data.this_month_sa_money_sum * 100, 2), 0 ) as this_month_sa_money_share, COALESCE (ROUND( current_month.this_month_sa_money/total_month_data.this_month_sa_money_sum * 100, 2), 0 ) as this_month_sa_money_share,
COALESCE (ROUND( current_month.this_month_profit/total_month_data.this_month_profit_sum * 100, 2), 0 ) as this_month_profit_share COALESCE (ROUND( current_month.this_month_profit/total_month_data.this_month_profit_sum * 100, 2), 0 ) as this_month_profit_share
FROM ( SELECT FROM ( SELECT
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
use_year, use_year,
</if> </if>
use_month, use_month,
@@ -390,8 +399,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM FROM
new_gr_bi_sa_agg_month_count new_gr_bi_sa_agg_month_count
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if> <!-- <if test="saAggParam.useYearStart != null and saAggParam.useYearStart != ''"> and use_year &gt; #{saAggParam.useYearStart}</if>-->
<if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and use_month = #{saAggParam.useMonth}</if> <!-- <if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != ''"> and use_year &lt; #{saAggParam.useYearEnd}</if>-->
<!-- <if test="saAggParam.useMonthStart != null and saAggParam.useMonthStart != ''"> and use_month &gt; #{saAggParam.useMonthStart}</if>-->
<!-- <if test="saAggParam.useMonthEnd != null and saAggParam.useMonthEnd != ''"> and use_month &lt; #{saAggParam.useMonthEnd}</if>-->
<if test="saAggParam.useYearStart != null and saAggParam.useYearStart != '' and saAggParam.useMonthStart != null and saAggParam.useMonthStart != ''">
AND (use_year * 100 + use_month) &gt;= (#{saAggParam.useYearStart} * 100 + #{saAggParam.useMonthStart})
</if>
<if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != '' and saAggParam.useMonthEnd != null and saAggParam.useMonthEnd != ''">
AND (use_year * 100 + use_month) &lt;= (#{saAggParam.useYearEnd} * 100 + #{saAggParam.useMonthEnd})
</if>
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in <if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")"> <foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
#{name} #{name}
@@ -436,7 +453,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
GROUP BY GROUP BY
<trim suffixOverrides=","> <trim suffixOverrides=",">
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
use_year, use_year,
</if> </if>
use_month, use_month,
@@ -467,7 +484,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) AS current_month ) AS current_month
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
use_year, use_year,
</if> </if>
use_month, use_month,
@@ -496,7 +513,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM new_gr_bi_sa_agg_month_count FROM new_gr_bi_sa_agg_month_count
GROUP BY GROUP BY
<trim suffixOverrides=","> <trim suffixOverrides=",">
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
use_year, use_year,
</if> </if>
use_month, use_month,
@@ -521,7 +538,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim> </trim>
) AS last_month_data ) AS last_month_data
ON last_month_data.use_month = IF(current_month.use_month = 1, 12, current_month.use_month - 1) ON last_month_data.use_month = IF(current_month.use_month = 1, 12, current_month.use_month - 1)
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1) AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1)
</if> </if>
<if test="groupFieldList.contains('customName') || params.containsKey('customName')"> <if test="groupFieldList.contains('customName') || params.containsKey('customName')">
@@ -544,7 +561,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
use_year, use_year,
</if> </if>
use_month, use_month,
@@ -572,8 +589,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SUM(this_month_profit) AS yoy_month_profit SUM(this_month_profit) AS yoy_month_profit
FROM new_gr_bi_sa_agg_month_count FROM new_gr_bi_sa_agg_month_count
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear }- 1</if> <!-- <if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear }- 1</if>-->
<if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and use_month = #{saAggParam.useMonth}</if> <!-- <if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and use_month = #{saAggParam.useMonth}</if>-->
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in <if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")"> <foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
#{name} #{name}
@@ -618,7 +635,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
GROUP BY GROUP BY
<trim suffixOverrides=","> <trim suffixOverrides=",">
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
use_year, use_year,
</if> </if>
use_month, use_month,
@@ -644,7 +661,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) yoy_month ON ) yoy_month ON
<trim prefixOverrides="and"> <trim prefixOverrides="and">
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart')|| params.containsKey('useYearEnd')">
and yoy_month.use_year = current_month.use_year - 1 and yoy_month.use_year = current_month.use_year - 1
</if> </if>
and yoy_month.use_month = current_month.use_month and yoy_month.use_month = current_month.use_month
@@ -678,8 +695,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
use_year use_year
) total_month_data ON total_month_data.use_year = current_month.use_year ) total_month_data ON total_month_data.use_year = current_month.use_year
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and current_month.use_year = #{saAggParam.useYear}</if> <if test="saAggParam.useYearStart != null and saAggParam.useYearStart != '' and saAggParam.useMonthStart != null and saAggParam.useMonthStart != ''">
<if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and current_month.use_month = #{saAggParam.useMonth}</if> AND (current_month.use_year * 100 + current_month.use_month) &gt;= (#{saAggParam.useYearStart} * 100 + #{saAggParam.useMonthStart})
</if>
<if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != '' and saAggParam.useMonthEnd != null and saAggParam.useMonthEnd != ''">
AND (current_month.use_year * 100 + current_month.use_month) &lt;= (#{saAggParam.useYearEnd} * 100 + #{saAggParam.useMonthEnd})
</if>
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and current_month.zone_name in <if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and current_month.zone_name in
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")"> <foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
#{name} #{name}

View File

@@ -56,7 +56,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ROUND(SUM(this_year_profit) / 10000, 2) AS this_year_profit_s ROUND(SUM(this_year_profit) / 10000, 2) AS this_year_profit_s
FROM new_gr_bi_sa_agg_year_count FROM new_gr_bi_sa_agg_year_count
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if> <!-- <if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>-->
<if test="saAggParam.useYearStart != null and saAggParam.useYearStart != ''"> and use_year &gt;= #{saAggParam.useYearStart}</if>
<if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != ''"> and use_year &lt;= #{saAggParam.useYearEnd}</if>
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in <if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
<foreach collection="saAggParam.customName" item="field" separator="," open="(" close=")">#{field}</foreach> <foreach collection="saAggParam.customName" item="field" separator="," open="(" close=")">#{field}</foreach>
</if> </if>
@@ -243,7 +246,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectNewGrBiSaAggGroupYearList" resultMap="NewGrBiSaAggYearCountResult"> <select id="selectNewGrBiSaAggGroupYearList" resultMap="NewGrBiSaAggYearCountResult">
SELECT SELECT
current_year_data.use_year, current_year_data.use_year,
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')"> <if test="groupFieldList.contains('useYear') || params.containsKey('useYearStart') || params.containsKey('useYearEnd')">
current_year_data.ny as ny, current_year_data.ny as ny,
</if> </if>
<if test="groupFieldList.contains('customName') || params.containsKey('customName')"> <if test="groupFieldList.contains('customName') || params.containsKey('customName')">
@@ -359,7 +362,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sum(this_year_profit) AS this_year_profit sum(this_year_profit) AS this_year_profit
FROM new_gr_bi_sa_agg_year_count FROM new_gr_bi_sa_agg_year_count
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if> <!--<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>-->
<if test="saAggParam.useYearStart != null and saAggParam.useYearStart != ''"> and use_year &gt;= #{saAggParam.useYearStart}</if>
<if test="saAggParam.useYearEnd != null and saAggParam.useYearEnd != ''"> and use_year &lt;= #{saAggParam.useYearEnd}</if>
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in <if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")"> <foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
#{name} #{name}
@@ -457,7 +463,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM new_gr_bi_sa_agg_year_count FROM new_gr_bi_sa_agg_year_count
<where> <where>
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear} -1</if> <!--<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear} -1</if>-->
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in <if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")"> <foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
#{name} #{name}