提交 b61d4aae authored 作者: 000516's avatar 000516 提交者: Coding

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

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