提交 3c08d996 authored 作者: 李秋林's avatar 李秋林

日销明细中请求中,返回表+图的格式

上级 e67a27c4
package com.link.bi.controller.query; package com.link.bi.controller.query;
import com.link.bi.pojo.request.MarketSummaryVo; import com.link.bi.pojo.request.MarketSummaryVo;
import com.link.bi.pojo.response.MarketSummaryDto;
import com.link.bi.service.ISummaryMarketDailyDetailService; import com.link.bi.service.ISummaryMarketDailyDetailService;
import com.sfa.common.security.annotation.RequiresPermissions; import com.sfa.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -9,7 +8,7 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -9,7 +8,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.Map;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -28,7 +27,8 @@ public class SummaryMarketDailyDetailController { ...@@ -28,7 +27,8 @@ public class SummaryMarketDailyDetailController {
*/ */
@RequiresPermissions("bi:store:list") @RequiresPermissions("bi:store:list")
@GetMapping("/sum_d") @GetMapping("/sum_d")
public List<MarketSummaryDto> marketSummary(MarketSummaryVo summaryVo){ public Map marketSummary(MarketSummaryVo summaryVo){
summaryVo.setDate();
return summaryService.marketSummary(summaryVo); return summaryService.marketSummary(summaryVo);
} }
......
...@@ -17,4 +17,6 @@ public interface IEcMarketDailyDetailDao { ...@@ -17,4 +17,6 @@ public interface IEcMarketDailyDetailDao {
* YTD、MTD、近7日、昨日 * YTD、MTD、近7日、昨日
*/ */
List<MarketSummaryDto> summaryByPlatform(MarketDetailWq mqw); List<MarketSummaryDto> summaryByPlatform(MarketDetailWq mqw);
List<MarketSummaryDto> chartByPlatform(MarketDetailWq mqw);
} }
...@@ -28,4 +28,9 @@ public class EcMarketDailyDetailDaoImpl implements IEcMarketDailyDetailDao { ...@@ -28,4 +28,9 @@ public class EcMarketDailyDetailDaoImpl implements IEcMarketDailyDetailDao {
public List<MarketSummaryDto> summaryByPlatform(MarketDetailWq mqw) { public List<MarketSummaryDto> summaryByPlatform(MarketDetailWq mqw) {
return mapper.summaryByPlatform(mqw); return mapper.summaryByPlatform(mqw);
} }
@Override
public List<MarketSummaryDto> chartByPlatform(MarketDetailWq mqw) {
return mapper.chartByPlatform(mqw);
}
} }
...@@ -25,6 +25,7 @@ public interface EcMarketDailyDetailMapper extends BaseMapper<EcMarketDailyDetai ...@@ -25,6 +25,7 @@ public interface EcMarketDailyDetailMapper extends BaseMapper<EcMarketDailyDetai
*/ */
List<MarketSummaryDto> summaryByPlatform(@Param("qw") MarketDetailWq qw); List<MarketSummaryDto> summaryByPlatform(@Param("qw") MarketDetailWq qw);
List<MarketSummaryDto> chartByPlatform(@Param("qw") MarketDetailWq mqw);
} }
......
...@@ -37,6 +37,13 @@ public class MarketDetailWq { ...@@ -37,6 +37,13 @@ public class MarketDetailWq {
*/ */
private Date date; private Date date;
/**
* 按日期区间查询
* 折线图使用
*/
private Date dateStart;
private Date dateEnd;
/** /**
* 货品品类id * 货品品类id
* 带汤去骨、礼盒、虎皮凤爪…… * 带汤去骨、礼盒、虎皮凤爪……
......
package com.link.bi.pojo.request; package com.link.bi.pojo.request;
import cn.hutool.core.date.DateUtil;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
...@@ -29,7 +30,22 @@ public class MarketSummaryVo { ...@@ -29,7 +30,22 @@ public class MarketSummaryVo {
* */ * */
private String prdCode; private String prdCode;
/**
* 按日期区间查询
*/
private Date dateStart;
private Date dateEnd;
public boolean isOnlyPlatform() { public boolean isOnlyPlatform() {
return seriesId == null && prdCode == null; return seriesId == null && prdCode == null;
} }
public void setDate() {
this.date = DateUtil.offsetDay(new Date(), -1);
if (dateStart == null || dateEnd == null) {
int i = DateUtil.dayOfMonth(date);
this.dateStart = DateUtil.offsetDay(date, i-1);
this.dateEnd = date;
}
}
} }
...@@ -4,6 +4,7 @@ import lombok.Data; ...@@ -4,6 +4,7 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -18,6 +19,11 @@ public class MarketSummaryDto { ...@@ -18,6 +19,11 @@ public class MarketSummaryDto {
// 平台 // 平台
private String platform; private String platform;
/**
* 日期
*/
private Date date;
private BigDecimal targetSaleSum; private BigDecimal targetSaleSum;
// 实际销售量-Y // 实际销售量-Y
...@@ -44,4 +50,10 @@ public class MarketSummaryDto { ...@@ -44,4 +50,10 @@ public class MarketSummaryDto {
// 实际销售额-Ys // 实际销售额-Ys
private BigDecimal saleSumYs; private BigDecimal saleSumYs;
// 实际销售量-根据日期段查询
private BigDecimal saleCount;
// 实际销售额-根据日期段查询
private BigDecimal saleSum;
} }
...@@ -4,6 +4,7 @@ import com.link.bi.pojo.request.MarketSummaryVo; ...@@ -4,6 +4,7 @@ import com.link.bi.pojo.request.MarketSummaryVo;
import com.link.bi.pojo.response.MarketSummaryDto; import com.link.bi.pojo.response.MarketSummaryDto;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -11,5 +12,5 @@ import java.util.List; ...@@ -11,5 +12,5 @@ import java.util.List;
* @describe : * @describe :
*/ */
public interface ISummaryMarketDailyDetailService { public interface ISummaryMarketDailyDetailService {
List<MarketSummaryDto> marketSummary(MarketSummaryVo summaryVo); Map marketSummary(MarketSummaryVo summaryVo);
} }
...@@ -6,7 +6,6 @@ import com.link.bi.domain.wq.MarketDetailWq; ...@@ -6,7 +6,6 @@ import com.link.bi.domain.wq.MarketDetailWq;
import com.link.bi.pojo.request.MarketSummaryVo; import com.link.bi.pojo.request.MarketSummaryVo;
import com.link.bi.pojo.response.MarketSummaryDto; import com.link.bi.pojo.response.MarketSummaryDto;
import com.link.bi.service.ISummaryMarketDailyDetailService; import com.link.bi.service.ISummaryMarketDailyDetailService;
import com.sfa.common.core.utils.DateUtils;
import com.sfa.common.redis.keys.RedisKeyBi; import com.sfa.common.redis.keys.RedisKeyBi;
import com.sfa.common.redis.service.RedisService; import com.sfa.common.redis.service.RedisService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -32,7 +31,7 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe ...@@ -32,7 +31,7 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe
RedisService redisService; RedisService redisService;
@Override @Override
public List<MarketSummaryDto> marketSummary(MarketSummaryVo summaryVo) { public Map marketSummary(MarketSummaryVo summaryVo) {
MarketDetailWq mqw = new MarketDetailWq(); MarketDetailWq mqw = new MarketDetailWq();
BeanUtils.copyProperties(summaryVo, mqw); BeanUtils.copyProperties(summaryVo, mqw);
Date date = mqw.getDate(); Date date = mqw.getDate();
...@@ -40,6 +39,7 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe ...@@ -40,6 +39,7 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe
mqw.setMonth(DateUtil.month(date) + 1); mqw.setMonth(DateUtil.month(date) + 1);
mqw.setFirstDay7(DateUtil.offsetDay(date,-7)); mqw.setFirstDay7(DateUtil.offsetDay(date,-7));
List<MarketSummaryDto> marketSummaryDtos = ecMarketDailyDetailDao.summaryByPlatform(mqw); List<MarketSummaryDto> marketSummaryDtos = ecMarketDailyDetailDao.summaryByPlatform(mqw);
List<MarketSummaryDto> chartDtos = ecMarketDailyDetailDao.chartByPlatform(mqw);
// 获取平台-年目标数据: // 获取平台-年目标数据:
boolean onlyPlatform = summaryVo.isOnlyPlatform(); boolean onlyPlatform = summaryVo.isOnlyPlatform();
...@@ -49,6 +49,7 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe ...@@ -49,6 +49,7 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe
mDto.setTargetSaleSum(onlyPlatform ? new BigDecimal(tMap.get(mDto.getPlatformId() + "-" + mDto.getPlatform())) : BigDecimal.ZERO); mDto.setTargetSaleSum(onlyPlatform ? new BigDecimal(tMap.get(mDto.getPlatformId() + "-" + mDto.getPlatform())) : BigDecimal.ZERO);
tMap.remove(mDto.getPlatformId() + "-" + mDto.getPlatform()); tMap.remove(mDto.getPlatformId() + "-" + mDto.getPlatform());
} }
for (Map.Entry<String, String> entry : tMap.entrySet()) { for (Map.Entry<String, String> entry : tMap.entrySet()) {
String[] split = StringUtils.split(entry.getKey(), "-"); String[] split = StringUtils.split(entry.getKey(), "-");
MarketSummaryDto dto = new MarketSummaryDto().setPlatformId(Integer.valueOf(split[0])) MarketSummaryDto dto = new MarketSummaryDto().setPlatformId(Integer.valueOf(split[0]))
...@@ -57,6 +58,12 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe ...@@ -57,6 +58,12 @@ public class SummaryMarketDailyDetailImpl implements ISummaryMarketDailyDetailSe
marketSummaryDtos.add(dto); marketSummaryDtos.add(dto);
} }
return marketSummaryDtos.stream().sorted(Comparator.comparing(MarketSummaryDto::getPlatformId)).collect(Collectors.toList()); List<MarketSummaryDto> table = marketSummaryDtos.stream().sorted(Comparator.comparing(MarketSummaryDto::getPlatformId)).collect(Collectors.toList());
Map<Integer, List<MarketSummaryDto>> chart = chartDtos.stream().collect(Collectors.groupingBy(MarketSummaryDto::getPlatformId));
HashMap<String, Object> result = new HashMap<>();
result.put("table",table);
result.put("chart",chart);
return result;
} }
} }
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
<resultMap id="SummaryByPlatformMap" type="com.link.bi.pojo.response.MarketSummaryDto"> <resultMap id="SummaryByPlatformMap" type="com.link.bi.pojo.response.MarketSummaryDto">
<result property="platformId" column="platform_id" jdbcType="INTEGER"/> <result property="platformId" column="platform_id" jdbcType="INTEGER"/>
<result property="platform" column="platform" jdbcType="VARCHAR"/> <result property="platform" column="platform" jdbcType="VARCHAR"/>
<result property="date" column="date" jdbcType="DATE"/>
<result property="saleCountY" column="sale_count_y" jdbcType="DECIMAL"/> <result property="saleCountY" column="sale_count_y" jdbcType="DECIMAL"/>
<result property="saleSumY" column="sale_sum_y" jdbcType="DECIMAL"/> <result property="saleSumY" column="sale_sum_y" jdbcType="DECIMAL"/>
<result property="saleCountM" column="sale_count_m" jdbcType="DECIMAL"/> <result property="saleCountM" column="sale_count_m" jdbcType="DECIMAL"/>
...@@ -66,6 +67,8 @@ ...@@ -66,6 +67,8 @@
<result property="saleSumW" column="sale_sum_w" jdbcType="DECIMAL"/> <result property="saleSumW" column="sale_sum_w" jdbcType="DECIMAL"/>
<result property="saleCountYs" column="sale_count_ys" jdbcType="DECIMAL"/> <result property="saleCountYs" column="sale_count_ys" jdbcType="DECIMAL"/>
<result property="saleSumYs" column="sale_sum_ys" jdbcType="DECIMAL"/> <result property="saleSumYs" column="sale_sum_ys" jdbcType="DECIMAL"/>
<result property="saleCount" column="sale_count" jdbcType="DECIMAL"/>
<result property="saleSum" column="sale_sum" jdbcType="DECIMAL"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -97,8 +100,7 @@ ...@@ -97,8 +100,7 @@
</sql> </sql>
<select id="summaryByPlatform" resultMap="SummaryByPlatformMap" > <select id="summaryByPlatform" resultMap="SummaryByPlatformMap" >
select ey.platform as platform, select ey.platform_id as platform_id,
ey.platform_id as platform_id,
ey.sale_count_y, ey.sale_count_y,
ey.sale_sum_y, ey.sale_sum_y,
em.sale_count_m, em.sale_count_m,
...@@ -107,33 +109,44 @@ ...@@ -107,33 +109,44 @@
ew.sale_sum_w, ew.sale_sum_w,
eys.sale_count_ys, eys.sale_count_ys,
eys.sale_sum_ys eys.sale_sum_ys
from (select platform, platform_id, sum(sale_count) as sale_count_y, sum(sale_sum) as sale_sum_y from (select platform_id, sum(sale_count) as sale_count_y, sum(sale_sum) as sale_sum_y
from ec_market_daily_detail from ec_market_daily_detail
where year = #{qw.year} where year = #{qw.year}
and platform_id is not null and platform_id is not null
<include refid="summaryWhere"/> <include refid="summaryWhere"/>
group by platform, platform_id) ey, group by platform_id ) ey,
(select platform, platform_id, sum(sale_count) as sale_count_m, sum(sale_sum) as sale_sum_m (select platform_id, sum(sale_count) as sale_count_m, sum(sale_sum) as sale_sum_m
from ec_market_daily_detail from ec_market_daily_detail
where year = #{qw.year} where year = #{qw.year}
and month = #{qw.month} and month = #{qw.month}
and platform_id is not null and platform_id is not null
<include refid="summaryWhere"/> <include refid="summaryWhere"/>
group by platform, platform_id) em, group by platform_id ) em,
(select platform, platform_id, sum(sale_count) as sale_count_w, sum(sale_sum) as sale_sum_w (select platform_id, sum(sale_count) as sale_count_w, sum(sale_sum) as sale_sum_w
from ec_market_daily_detail from ec_market_daily_detail
where date between #{qw.firstDay7} and #{qw.date} where date between #{qw.firstDay7} and #{qw.date}
and platform_id is not null and platform_id is not null
<include refid="summaryWhere"/> <include refid="summaryWhere"/>
group by platform, platform_id) ew, group by platform_id ) ew,
(select platform, platform_id, sum(sale_count) as sale_count_ys, sum(sale_sum) as sale_sum_ys (select platform_id , sum(sale_count) as sale_count_ys, sum(sale_sum) as sale_sum_ys
from ec_market_daily_detail from ec_market_daily_detail
where date = #{qw.date} where date = #{qw.date}
and platform_id is not null and platform_id is not null
<include refid="summaryWhere"/> <include refid="summaryWhere"/>
group by platform, platform_id) eys group by platform_id ) eys
where ey.platform_id = em.platform_id where ey.platform_id = em.platform_id
and ey.platform_id = ew.platform_id and ey.platform_id = ew.platform_id
and ey.platform_id = eys.platform_id; and ey.platform_id = eys.platform_id;
</select> </select>
<select id="chartByPlatform" resultMap="SummaryByPlatformMap" >
select platform_id, date, sum(sale_count) sale_count, sum(sale_sum) sale_sum
from ec_market_daily_detail
where platform_id is not null
and date between #{qw.dateStart} and #{qw.dateEnd}
<include refid="summaryWhere"/>
group by platform_id, date
order by platform_id, date;
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论