Commit 25d87bab authored by libin's avatar libin

订单统计

parent 70ed5cc0
...@@ -49,7 +49,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -49,7 +49,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_AVG_QUANTITY("rvaq","租车订单平均量") { RENT_VEHICLE_AVG_QUANTITY("rvavgq","租车订单平均量") {
@Override @Override
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) { Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(); Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>();
...@@ -81,7 +81,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -81,7 +81,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_REAL_AVG_AMOUNT("rvraa","实际租车平均金额") { RENT_VEHICLE_REAL_AVG_AMOUNT("rvravga","实际租车平均金额") {
@Override @Override
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) { Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(); Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>();
......
...@@ -34,7 +34,7 @@ public enum ReceivedStatisticsEnum { ...@@ -34,7 +34,7 @@ public enum ReceivedStatisticsEnum {
if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) { if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) {
return Collections.EMPTY_MAP; return Collections.EMPTY_MAP;
} }
return orderReceivedStatisticsBases.stream().collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getWeekOfYear, Collectors.toList())); return orderReceivedStatisticsBases.stream().peek(x -> ((OrderReceivedStatisticsBase) x).setDate(null)).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getWeekOfYear, Collectors.toList()));
} }
}, },
MONTH(3, "按月统计") { MONTH(3, "按月统计") {
...@@ -43,15 +43,19 @@ public enum ReceivedStatisticsEnum { ...@@ -43,15 +43,19 @@ public enum ReceivedStatisticsEnum {
if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) { if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) {
return Collections.EMPTY_MAP; return Collections.EMPTY_MAP;
} }
return orderReceivedStatisticsBases.stream().collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getMonth, Collectors.toList())); return orderReceivedStatisticsBases.stream().peek(x -> {
OrderReceivedStatisticsBase orderReceivedStatisticsBase = (OrderReceivedStatisticsBase) x;
orderReceivedStatisticsBase.setDate(null);
orderReceivedStatisticsBase.setWeekOfYear(null);
}).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getMonth, Collectors.toList()));
} }
}; };
private int wayCode; private int wayCode;
private String value; private String value;
private static Map<Integer,ReceivedStatisticsEnum> statisticsEnumMap; private static Map<Integer, ReceivedStatisticsEnum> statisticsEnumMap;
static { static {
statisticsEnumMap = EnumSet.allOf(ReceivedStatisticsEnum.class).stream().collect(Collectors.toMap(ReceivedStatisticsEnum::getWayCode, Function.identity())); statisticsEnumMap = EnumSet.allOf(ReceivedStatisticsEnum.class).stream().collect(Collectors.toMap(ReceivedStatisticsEnum::getWayCode, Function.identity()));
} }
ReceivedStatisticsEnum(int wayCode, String value) { ReceivedStatisticsEnum(int wayCode, String value) {
...@@ -61,31 +65,33 @@ public enum ReceivedStatisticsEnum { ...@@ -61,31 +65,33 @@ public enum ReceivedStatisticsEnum {
/** /**
* 统计方式 * 统计方式
*
* @param orderReceivedStatisticsBases * @param orderReceivedStatisticsBases
* @return * @return
*/ */
abstract Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases); abstract Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases);
public static Map<Object, List<OrderReceivedStatisticsBase>> orderstatistics(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases,int wayCode){ public static Map<Object, List<OrderReceivedStatisticsBase>> orderstatistics(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases, int wayCode) {
ReceivedStatisticsEnum statisticsEnum = createInstance(wayCode); ReceivedStatisticsEnum statisticsEnum = createInstance(wayCode);
return statisticsEnum.wrapMap(orderReceivedStatisticsBases); return statisticsEnum.wrapMap(orderReceivedStatisticsBases);
} }
private static ReceivedStatisticsEnum createInstance(int wayCode){ private static ReceivedStatisticsEnum createInstance(int wayCode) {
return statisticsEnumMap.get(wayCode); return statisticsEnumMap.get(wayCode);
} }
/** /**
* 类型转换 * 类型转换
*
* @param source * @param source
* @param <T> * @param <T>
* @return * @return
*/ */
public static <T> List<T> convertToTargetBean(List<? extends OrderReceivedStatisticsBase> source){ public static <T> List<T> convertToTargetBean(List<? extends OrderReceivedStatisticsBase> source) {
return source.stream().map(x -> (T) x).collect(Collectors.toList()); return source.stream().map(x -> (T) x).collect(Collectors.toList());
} }
public static OrderReceivedStatisticsVo createOrderReceivedStatistics(OrderReceivedStatisticsBase orderReceivedStatisticsBase, BigDecimal amount,Integer quantity){ public static OrderReceivedStatisticsVo createOrderReceivedStatistics(OrderReceivedStatisticsBase orderReceivedStatisticsBase, BigDecimal amount, Integer quantity) {
return OrderReceivedStatisticsVo.builder() return OrderReceivedStatisticsVo.builder()
.date(orderReceivedStatisticsBase.getDate()) .date(orderReceivedStatisticsBase.getDate())
.month(orderReceivedStatisticsBase.getMonth()) .month(orderReceivedStatisticsBase.getMonth())
......
...@@ -21,7 +21,7 @@ public class OrderReceivedStatisticsFindDTO { ...@@ -21,7 +21,7 @@ public class OrderReceivedStatisticsFindDTO {
private Date startDate; private Date startDate;
@ApiModelProperty("统计的结束时间 yyyy-MM-dd") @ApiModelProperty("统计的结束时间 yyyy-MM-dd")
private Date endDate; private Date endDate;
@ApiModelProperty("统计方式 1:日 2:周 3:") @ApiModelProperty("统计方式 1:日 2:周 3:")
@NotNull(message = "统计方式不能为null") @NotNull(message = "统计方式不能为null")
private Integer statisticalWay; private Integer statisticalWay;
@ApiModelProperty("订单状态 0:未完成 1:已完成") @ApiModelProperty("订单状态 0:未完成 1:已完成")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment