diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginJx.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginJx.java new file mode 100644 index 0000000..e58c141 --- /dev/null +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginJx.java @@ -0,0 +1,83 @@ + +package com.lideeyunji.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.bean.BeanUtil; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +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.entity.NewGrBiSaAggYearCount; +import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService; +import com.lideeyunji.tool.framework.yunji.model.ResultDataModel; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 报表-综合销售表_剂型-插件 + */ +@Slf4j +@Component("zhxsqkPluginJx") +public class zhxsqkPluginJx implements ReportAroundAdvicePlugin { + + @Resource + INewGrBiSaAggYearCountService newGrBiSaAggYearCountService; + + @Override + public ResultDataModel executeAround(EnhanceReportContext enhanceContext) { + log.info("进入=======>zhxsqkPluginJx=======>execute"); + List groupFieldList = Arrays.asList("useYear","dosageName"); + return zhxsqkFun(enhanceContext, groupFieldList, newGrBiSaAggYearCountService); + } + + @NotNull + static ResultDataModel zhxsqkFun(EnhanceReportContext enhanceContext, List groupFieldList, INewGrBiSaAggYearCountService newGrBiSaAggYearCountService) { + Map params = enhanceContext.getParam().getParams(); + Page page = PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString())); + 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 newGrBiSaAggList = newGrBiSaAggYearCountService.selectNewGrBiSaAggGroupYearList(params, groupFieldList); + PageInfo pageInfo = new PageInfo<>(newGrBiSaAggList); + List> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList()); + return ResultDataModel.fomat(pageInfo.getTotal(),list); + } +} diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginLxfl.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginLxfl.java new file mode 100644 index 0000000..ceab523 --- /dev/null +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginLxfl.java @@ -0,0 +1,33 @@ + +package com.lideeyunji.core.framework.enhance.example.report.xtsy; + +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.service.INewGrBiSaAggYearCountService; +import com.lideeyunji.tool.framework.yunji.model.ResultDataModel; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +import static com.lideeyunji.core.framework.enhance.example.report.xtsy.zhxsqkPluginJx.zhxsqkFun; + +/** + * 报表-综合销售表_剂型-插件 + */ +@Slf4j +@Component("zhxsqkPluginLxfl") +public class zhxsqkPluginLxfl implements ReportAroundAdvicePlugin { + + @Resource + INewGrBiSaAggYearCountService newGrBiSaAggYearCountService; + + @Override + public ResultDataModel executeAround(EnhanceReportContext enhanceContext) { + log.info("进入=======>zhxsqkPluginLxfl=======>execute"); + List groupFieldList = Arrays.asList("useYear","effectName"); + return zhxsqkFun(enhanceContext, groupFieldList, newGrBiSaAggYearCountService); + } +} diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginXslx.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginXslx.java new file mode 100644 index 0000000..92b0953 --- /dev/null +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/enhance/example/report/xtsy/zhxsqkPluginXslx.java @@ -0,0 +1,33 @@ + +package com.lideeyunji.core.framework.enhance.example.report.xtsy; + +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.service.INewGrBiSaAggYearCountService; +import com.lideeyunji.tool.framework.yunji.model.ResultDataModel; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +import static com.lideeyunji.core.framework.enhance.example.report.xtsy.zhxsqkPluginJx.zhxsqkFun; + +/** + * 报表-综合销售表_剂型-插件 + */ +@Slf4j +@Component("zhxsqkPluginXslx") +public class zhxsqkPluginXslx implements ReportAroundAdvicePlugin { + + @Resource + INewGrBiSaAggYearCountService newGrBiSaAggYearCountService; + + @Override + public ResultDataModel executeAround(EnhanceReportContext enhanceContext) { + log.info("进入=======>zhxsqkPluginXslx=======>execute"); + List groupFieldList = Arrays.asList("useYear","saleTypeName"); + return zhxsqkFun(enhanceContext, groupFieldList, newGrBiSaAggYearCountService); + } +} diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAgg.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAgg.java index 264d7b4..a65baba 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAgg.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAgg.java @@ -63,6 +63,11 @@ public class NewGrBiSaAgg implements Serializable @TableField(value = "dosage_name") private String dosageName; + @TableField(value = "effect_id") + private Integer effectId; + + @TableField(value = "effect_name") + private String effectName; @TableField(value = "goods_id") private Long goodsId; diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggMonthCount.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggMonthCount.java index d561078..aa77bfb 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggMonthCount.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggMonthCount.java @@ -76,10 +76,15 @@ public class NewGrBiSaAggMonthCount implements Serializable @TableField(value = "dosage_name") private String dosageName; + @TableField(value = "effect_id") + private Integer effectId; + + @TableField(value = "effect_name") + private String effectName; + @TableField(value = "std_goods_name") private String stdGoodsName; - @TableField(value = "province_id") private String provinceId; diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggYearCount.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggYearCount.java index a0b7a1e..3679dd9 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggYearCount.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/NewGrBiSaAggYearCount.java @@ -59,6 +59,11 @@ public class NewGrBiSaAggYearCount implements Serializable @TableField(value = "dosage_name") private String dosageName; + @TableField(value = "effect_id") + private Integer effectId; + + @TableField(value = "effect_name") + private String effectName; @TableField(value = "std_goods_name") private String stdGoodsName; diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/params/SaAggParam.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/params/SaAggParam.java index 7f543f6..2976c27 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/params/SaAggParam.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/params/SaAggParam.java @@ -15,6 +15,7 @@ public class SaAggParam { private List customName; private List zoneName; private List saleTypeName; + private List effectName; private List salerName; private List dosageName; private List stdGoodsName; diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/NewGrBiSaAggServiceImpl.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/NewGrBiSaAggServiceImpl.java index 88f0313..cc52dfc 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/NewGrBiSaAggServiceImpl.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/NewGrBiSaAggServiceImpl.java @@ -1,31 +1,26 @@ package com.lideeyunji.core.framework.service.impl; -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - import cn.hutool.core.collection.CollUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; -import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.lideeyunji.core.framework.entity.GrBiSaAgg; -import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount; +import com.lideeyunji.core.framework.entity.NewGrBiSaAgg; +import com.lideeyunji.core.framework.mapper.NewGrBiSaAggMapper; import com.lideeyunji.core.framework.params.SaAggParam; import com.lideeyunji.core.framework.service.INewGrBiSaAggMonthCountService; +import com.lideeyunji.core.framework.service.INewGrBiSaAggService; import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService; import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; -import com.lideeyunji.core.framework.mapper.NewGrBiSaAggMapper; -import com.lideeyunji.core.framework.entity.NewGrBiSaAgg; -import com.lideeyunji.core.framework.service.INewGrBiSaAggService; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; +import java.util.Map; /** * 综合销售情况明细Service业务层处理 @@ -178,8 +173,11 @@ public class NewGrBiSaAggServiceImpl extends ServiceImpl + + @@ -41,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -86,6 +90,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -121,74 +127,69 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, use_year, use_month, zone_id, zone_name, sale_type_id, sale_type_name, custom_id, custom_name, dosage_id, dosage_name, goods_id, goods_name, province_id, province_name, saler_id, saler_name, this_month_sa_qty, this_month_sa_money, this_month_cost, this_month_profit from new_gr_bi_sa_agg + select id, use_year, use_month, zone_id, zone_name, sale_type_id, sale_type_name, custom_id, custom_name, dosage_id, dosage_name, effect_id, effect_name, goods_id, goods_name, province_id, province_name, saler_id, saler_name, this_month_sa_qty, this_month_sa_money, this_month_cost, this_month_profit from new_gr_bi_sa_agg @@ -217,6 +218,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" custom_name, dosage_id, dosage_name, + effect_id, + effect_name, std_goods_name, province_id, province_name, @@ -237,6 +240,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" custom_name, dosage_id, dosage_name, + effect_id, + effect_name, std_goods_name, province_id, province_name, @@ -260,6 +265,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" custom_name, dosage_id, dosage_name, + effect_id, + effect_name, std_goods_name, province_id, province_name, @@ -279,6 +286,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" custom_name, dosage_id, dosage_name, + effect_id, + effect_name, std_goods_name, province_id, province_name, @@ -298,6 +307,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" custom_name, dosage_id, dosage_name, + effect_id, + effect_name, std_goods_name, province_id, province_name, @@ -318,6 +329,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sale_type_name, custom_id, custom_name, + effect_id, + effect_name, dosage_id, dosage_name, std_goods_name, @@ -378,6 +391,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" province_id, sale_type_id, dosage_id, + effect_id, custom_id, saler_id, SUM( this_month_sa_qty ) AS yoy_month_sa_qty, -- 同比月销量 @@ -394,6 +408,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" province_id, sale_type_id, dosage_id, + effect_id, custom_id, saler_id ) b ON b.use_year = a.use_year-1 @@ -403,6 +418,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND b.province_id = a.province_id AND b.sale_type_id = a.sale_type_id AND b.dosage_id = a.dosage_id + AND b.effect_id = a.effect_id AND b.custom_id = a.custom_id AND b.saler_id = a.saler_id SET a.yoy_month_sa_qty = COALESCE ( b.yoy_month_sa_qty, 0 ), @@ -424,6 +440,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" province_id, sale_type_id, dosage_id, + effect_id, custom_id, saler_id, -- 计算上个月的年月 @@ -443,6 +460,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" province_id, sale_type_id, dosage_id, + effect_id, custom_id, saler_id ) AS last_month_data @@ -451,6 +469,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND current_month.province_id = last_month_data.province_id AND current_month.sale_type_id = last_month_data.sale_type_id AND current_month.dosage_id = last_month_data.dosage_id + AND current_month.effect_id = last_month_data.effect_id AND current_month.custom_id = last_month_data.custom_id AND current_month.saler_id = last_month_data.saler_id AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1) @@ -471,6 +490,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" province_id, sale_type_id, dosage_id, + effect_id, custom_id, saler_id, SUM( this_month_sa_qty ) AS last_year_sa_qty, @@ -486,6 +506,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" province_id, sale_type_id, dosage_id, + effect_id, custom_id, saler_id ) b ON b.use_year = a.use_year-1 @@ -494,6 +515,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND b.province_id = a.province_id AND b.sale_type_id = a.sale_type_id AND b.dosage_id = a.dosage_id + AND b.effect_id = a.effect_id AND b.custom_id = a.custom_id AND b.saler_id = a.saler_id SET a.last_year_sa_qty = COALESCE ( b.last_year_sa_qty, 0 ), @@ -617,6 +639,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" tbl_lgbsa.custom_name, tbl_lgbsa.dosage_id, tbl_lgbsa.dosage_name, + tbl_lgbsa.effect_id, + tbl_lgbsa.effect_name, tbl_lgbsa.goods_id, tbl_lgbsa.goods_name, tbl_lgbsa.std_goods_name, diff --git a/lidee-core/src/main/resources/mapper/framework/NewGrBiSaAggYearCountMapper.xml b/lidee-core/src/main/resources/mapper/framework/NewGrBiSaAggYearCountMapper.xml index 54a3458..42e4c6d 100644 --- a/lidee-core/src/main/resources/mapper/framework/NewGrBiSaAggYearCountMapper.xml +++ b/lidee-core/src/main/resources/mapper/framework/NewGrBiSaAggYearCountMapper.xml @@ -269,6 +269,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" current_year_data.dosage_id, current_year_data.dosage_name, + + current_year_data.effect_id, + current_year_data.effect_name, + current_year_data.std_goods_name, @@ -350,6 +354,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dosage_id, dosage_name, + + effect_id, + effect_name, + saler_id, saler_name, @@ -362,8 +370,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ifnull(sum(this_year_profit), 0) AS this_year_profit FROM new_gr_bi_sa_agg_year_count - - + and use_year = #{saAggParam.useYear} and use_year >= #{saAggParam.useYearStart} and use_year <= #{saAggParam.useYearEnd} and zone_name in @@ -386,6 +393,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{name} + and effect_name in + + #{name} + + and goods_name in #{name} @@ -430,6 +442,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dosage_id, dosage_name, + + effect_id, + effect_name, + saler_id, saler_name, @@ -453,6 +469,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dosage_id, + + effect_id, + saler_id, @@ -484,6 +503,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{name} + and effect_name in + + #{name} + + and goods_name in #{name} @@ -524,6 +548,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dosage_id, + + effect_id, + saler_id, @@ -546,6 +573,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND current_year_data.dosage_id = last_year_data.dosage_id + + AND current_year_data.effect_id = last_year_data.effect_id + AND current_year_data.saler_id = last_year_data.saler_id