<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>ECharts</artifactId>
<version>3.0.0.6</version>
</dependency>
<div ref="salesEchart" style="height: 350px;"> </div>
getOrderOption(value) {
let _that = this;
getOrderOption(value).then(reponse => {
_that.$echarts.init(this.$refs.salesEchart).dispose();
this.salesOption = reponse.msg;
var jsonData = JSON.parse(this.salesOption);
_that.$echarts.init(this.$refs.salesEchart).setOption(jsonData);
});
},
@Override
public String selectOrderSalesList(Map<String, String> paramMap) {
Gson gson = new Gson();
String returnStr = "";
Option option = new Option();
CategoryAxis category = new CategoryAxis();
ValueAxis valueAxis = new ValueAxis();
valueAxis.axisLabel().formatter("{value}件");
valueAxis.name("件数");
valueAxis.min(0);
ValueAxis valueAxis2 = new ValueAxis();
valueAxis2.axisLabel().formatter("{value}kg");
valueAxis2.name("重量");
valueAxis2.min(0);
List<Axis> valueAxisList = new ArrayList<Axis>();
valueAxisList.add(valueAxis);
valueAxisList.add(valueAxis2);
Line line = new Line();
Bar bar = new Bar();
String dataString = "";
List<String> xDateList = new ArrayList<String>();
List<Map<String,String>> xDateValueList = new ArrayList<Map<String,String>>();
try {
String dateFlag = paramMap.get("date");
if (dateFlag.equals("y")) {
dataString = "y";
xDateList = DateConvert.yearList(7);
}else if (dateFlag.equals("m")){
dataString = "m";
xDateList = DateConvert.monthList(7);
}else {
dataString = "d";
xDateList = DateConvert.dayList(7);
}
String type = paramMap.get("type");
List<Map<String, String>> typeDataList = new ArrayList<>();
if(StringUtils.isNotEmpty(type) && "category".equals(type)){
typeDataList = statisticMapper.selectVarietyByCategory(paramMap.get("typeData"));
}else if(StringUtils.isNotEmpty(type) && "variety".equals(type)){
typeDataList = statisticMapper.selectVarietyByVariety(paramMap.get("typeData"));
}
for (Map<String, String> dataMap : typeDataList) {
String dataCode = dataMap.get("value");
paramMap.put("dataCode",dataCode);
String dataName = dataMap.get("label");
option.tooltip(Trigger.axis).legend(dataName);
line = new Line();
line.stack(dataName);
line.name(dataName);
bar = new Bar();
bar.stack(dataName);
bar.name(dataName);
bar.yAxisIndex(1);
category = new CategoryAxis();
for (String date : xDateList) {
paramMap.put("date",date);
paramMap.put("dataString",dataString);
Map<String,String> map = statisticMapper.selectOrderSumList(paramMap);
Map<String,String> weightMap = statisticMapper.selectOrderWeightSumList(paramMap);
category.data(date);
if (null == map) {
line.data(0);
}else {
line.data(map.get("orderNumber"));
};
if (null ==weightMap){
bar.data(0);
}else{
bar.data(weightMap.get("orderWeight"));
}
}
option.series(line);
option.series(bar);
}
option.xAxis(category);
option.yAxis(valueAxisList);
returnStr = gson.toJson(option);
} catch (Exception e) {
LogUtils.error(Constants.OPERATE_QUERY, "订单统计", "销量图Echarts查询失败", e);
throw new UtilsException(e);
}
return returnStr;
}
<!
<select id="selectOrderSumList" resultType="java.util.Map">
SELECT
s.dict_label names,
IFNULL(SUM( od.number ),0) orderNumber
FROM
b_order_details od
LEFT JOIN b_goods g ON g.id = od.goodsId AND g.delFlag = 0
LEFT JOIN sys_dict_data s ON s.dict_value = g.varieties AND s.delFlag = 0
LEFT JOIN b_order o ON o.orderNo = od.orderNo AND o.delFlag = 0
WHERE
od.delFlag = 0
<if test='"y"== dataString'>
and DATE_FORMAT(o.orderDate,'%Y') =
</if>
<if test='"m"== dataString'>
and DATE_FORMAT(o.orderDate,'%Y-%m') =
</if>
<if test='"d"== dataString'>
and DATE_FORMAT(o.orderDate,'%Y-%m-%d') =
</if>
<if test="type!=null">
and g.varieties =
</if>
GROUP BY names
</select>