Commit 92091d49 authored by libin's avatar libin

订单统计添加分公司

parent 0a88c199
...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -84,10 +85,17 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -84,10 +85,17 @@ public enum OrderReceivedStatisticsSignEnum {
@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<>();
AtomicReference<BigDecimal> divisorAtomicReference = new AtomicReference<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V); List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal realAvgAmount = orderReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(new BigDecimal(V.size())); BigDecimal divisor = divisorAtomicReference.get();
if (Objects.isNull(divisor)){
Integer divi = orderReceivedStatisticsList.get(0).getDivisor();
divisor = new BigDecimal(divi);
divisorAtomicReference.set(divisor);
}
BigDecimal realAvgAmount = orderReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(divisor);
OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0); OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null);
orderReceivedStatisticsVos.add(receivedStatisticsVo); orderReceivedStatisticsVos.add(receivedStatisticsVo);
......
...@@ -7,6 +7,7 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -7,6 +7,7 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -53,10 +54,16 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -53,10 +54,16 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
@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<>();
AtomicReference<Integer> divisorAtomicReference = new AtomicReference<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
Integer avgQuantity = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y)/V.size(); Integer divisor = divisorAtomicReference.get();
if (Objects.isNull(divisor)){
divisor = orderRentVehicleReceivedStatisticsList.get(0).getDivisor();
divisorAtomicReference.set(divisor);
}
Integer avgQuantity = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y)/divisor;
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,avgQuantity); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,avgQuantity);
orderReceivedStatisticsVos.add(receivedStatisticsVo); orderReceivedStatisticsVos.add(receivedStatisticsVo);
...@@ -85,10 +92,17 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -85,10 +92,17 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
@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<>();
AtomicReference<BigDecimal> divisorAtomicReference = new AtomicReference<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal realAvgAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(new BigDecimal(V.size()), RoundingMode.HALF_UP); BigDecimal divisor = divisorAtomicReference.get();
if (Objects.isNull(divisor)){
Integer divi = orderRentVehicleReceivedStatisticsList.get(0).getDivisor();
divisor = new BigDecimal(divi);
divisorAtomicReference.set(divisor);
}
BigDecimal realAvgAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(divisor, RoundingMode.HALF_UP);
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null);
orderReceivedStatisticsVos.add(receivedStatisticsVo); orderReceivedStatisticsVos.add(receivedStatisticsVo);
......
...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -52,10 +53,16 @@ public enum OrderTourReceivedStatisticsSignEnum { ...@@ -52,10 +53,16 @@ public enum OrderTourReceivedStatisticsSignEnum {
@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<>();
AtomicReference<Integer> divisorAtomicReference = new AtomicReference<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K, V) -> { orderMap.forEach((K, V) -> {
List<OrderTourReceivedStatistics> orderTourReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V); List<OrderTourReceivedStatistics> orderTourReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
Integer avgQuantity = orderTourReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x + y) / V.size(); Integer divisor = divisorAtomicReference.get();
if (Objects.isNull(divisor)){
divisor = orderTourReceivedStatisticsList.get(0).getDivisor();
divisorAtomicReference.set(divisor);
}
Integer avgQuantity = orderTourReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x + y) / divisor;
OrderTourReceivedStatistics orderReceivedStatistics = orderTourReceivedStatisticsList.get(0); OrderTourReceivedStatistics orderReceivedStatistics = orderTourReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics, null, avgQuantity); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics, null, avgQuantity);
orderReceivedStatisticsVos.add(receivedStatisticsVo); orderReceivedStatisticsVos.add(receivedStatisticsVo);
......
...@@ -5,6 +5,8 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -5,6 +5,8 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.Collections; import java.util.Collections;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
...@@ -25,7 +27,9 @@ public enum ReceivedStatisticsEnum { ...@@ -25,7 +27,9 @@ 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::getDate, Collectors.toList())); return orderReceivedStatisticsBases.stream().peek(x -> {
((OrderReceivedStatisticsBase) x).setDivisor(1);
}).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getDate, Collectors.toList()));
} }
}, },
WEEK(2, "按周统计") { WEEK(2, "按周统计") {
...@@ -34,7 +38,7 @@ public enum ReceivedStatisticsEnum { ...@@ -34,7 +38,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).setDivisor(7)).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getWeekOfYear, Collectors.toList()));
} }
}, },
MONTH(3, "按月统计") { MONTH(3, "按月统计") {
...@@ -47,6 +51,10 @@ public enum ReceivedStatisticsEnum { ...@@ -47,6 +51,10 @@ public enum ReceivedStatisticsEnum {
OrderReceivedStatisticsBase orderReceivedStatisticsBase = (OrderReceivedStatisticsBase) x; OrderReceivedStatisticsBase orderReceivedStatisticsBase = (OrderReceivedStatisticsBase) x;
orderReceivedStatisticsBase.setDate(null); orderReceivedStatisticsBase.setDate(null);
orderReceivedStatisticsBase.setWeekOfYear(null); orderReceivedStatisticsBase.setWeekOfYear(null);
LocalDate localDate = LocalDate.of(Integer.valueOf(orderReceivedStatisticsBase.getYear()),
Integer.valueOf(orderReceivedStatisticsBase.getMonth().replace(orderReceivedStatisticsBase.getYear(), "")), 1);
int lastDay = localDate.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
orderReceivedStatisticsBase.setDivisor(lastDay);
}).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getMonth, Collectors.toList())); }).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getMonth, Collectors.toList()));
} }
}; };
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.assertj.core.util.Lists;
import tk.mybatis.mapper.annotation.Version; import tk.mybatis.mapper.annotation.Version;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/** /**
* *
......
...@@ -63,13 +63,6 @@ public class OrderMemberReceivedStatistics extends OrderReceivedStatisticsBase i ...@@ -63,13 +63,6 @@ public class OrderMemberReceivedStatistics extends OrderReceivedStatisticsBase i
@ApiModelProperty(value = "钻石会员订单总量") @ApiModelProperty(value = "钻石会员订单总量")
private Integer totalDiamondQuantity; private Integer totalDiamondQuantity;
/**
* 公司id
*/
@Column(name = "company_id")
@ApiModelProperty(value = "公司id")
private Integer companyId;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -6,6 +6,7 @@ import lombok.Data; ...@@ -6,6 +6,7 @@ import lombok.Data;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Transient;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
...@@ -61,7 +62,6 @@ public class OrderReceivedStatisticsBase { ...@@ -61,7 +62,6 @@ public class OrderReceivedStatisticsBase {
@ApiModelProperty(value = "订单总额") @ApiModelProperty(value = "订单总额")
protected BigDecimal totalAmount; protected BigDecimal totalAmount;
/** /**
* 是否完成 1 完成 0 未完成 * 是否完成 1 完成 0 未完成
*/ */
...@@ -82,4 +82,11 @@ public class OrderReceivedStatisticsBase { ...@@ -82,4 +82,11 @@ public class OrderReceivedStatisticsBase {
@Column(name = "pay_way") @Column(name = "pay_way")
@ApiModelProperty(value = "支付方式 '1:微信公众号支付 2.支付宝即时到账,3,银联'") @ApiModelProperty(value = "支付方式 '1:微信公众号支付 2.支付宝即时到账,3,银联'")
protected Integer payWay; protected Integer payWay;
@Column(name = "company_id")
@ApiModelProperty(value = "分公司id")
protected Integer companyId;
@Transient
protected Integer divisor;
} }
...@@ -35,12 +35,7 @@ public class OrderRentVehicleReceivedStatistics extends OrderReceivedStatisticsB ...@@ -35,12 +35,7 @@ public class OrderRentVehicleReceivedStatistics extends OrderReceivedStatisticsB
@ApiModelProperty(value = "实际收入") @ApiModelProperty(value = "实际收入")
private BigDecimal realAmount; private BigDecimal realAmount;
/**
* 公司id
*/
@Column(name = "company_id")
@ApiModelProperty(value = "公司id")
private Integer companyId;
/** /**
* 创建时间 * 创建时间
......
...@@ -33,4 +33,5 @@ public class OrderReceivedStatisticsFindDTO { ...@@ -33,4 +33,5 @@ public class OrderReceivedStatisticsFindDTO {
@ApiModelProperty("统计项标识") @ApiModelProperty("统计项标识")
@NotNull(message = "统计标识不能为null") @NotNull(message = "统计标识不能为null")
private List<String> statisticalSigns; private List<String> statisticalSigns;
private List<Integer> companyId;
} }
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.OrderMemberReceivedStatistics; import com.xxfc.platform.order.entity.OrderMemberReceivedStatistics;
import com.xxfc.platform.order.mapper.OrderMemberReceivedStatisticsMapper; import com.xxfc.platform.order.mapper.OrderMemberReceivedStatisticsMapper;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO; import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.xxfc.platform.order.entity.BaseOrder;
import java.util.List; import java.util.List;
/** /**
...@@ -18,8 +22,16 @@ import java.util.List; ...@@ -18,8 +22,16 @@ import java.util.List;
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceivedStatisticsMapper,OrderMemberReceivedStatistics> { public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceivedStatisticsMapper,OrderMemberReceivedStatistics> {
private final BaseOrderBiz baseOrderBiz;
public List<OrderMemberReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) { public List<OrderMemberReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderMemberReceivedStatistics(orderReceivedStatisticsFindDTO); return mapper.selectOrderMemberReceivedStatistics(orderReceivedStatisticsFindDTO);
} }
public void orderMemberReceivedStatistics(){
DateTime yesterday = DateUtil.yesterday();
// List<BaseOrder> baseOrders = baseOrderBiz.selectOrdersByTypeAndTime(3);
}
} }
\ No newline at end of file
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.util.excel.ExcelExport;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.xxfc.platform.order.contant.enumerate.*; import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*; import com.xxfc.platform.order.entity.*;
...@@ -15,7 +12,6 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -15,7 +12,6 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -24,8 +20,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -24,8 +20,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -48,6 +45,7 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM ...@@ -48,6 +45,7 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
private List<String> orderRentVehicleSigns; private List<String> orderRentVehicleSigns;
private List<String> orderTourSigns; private List<String> orderTourSigns;
private Map<String, String> signAndDescMap; private Map<String, String> signAndDescMap;
private DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
/** /**
...@@ -101,9 +99,14 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM ...@@ -101,9 +99,14 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
firstCell.setCellValue(DateUtil.format(orderReceivedStatisticsVo.getDate(),"yyyy.MM.dd")); firstCell.setCellValue(DateUtil.format(orderReceivedStatisticsVo.getDate(),"yyyy.MM.dd"));
} }
if (ReceivedStatisticsEnum.WEEK.getWayCode()==statisticalWay){ if (ReceivedStatisticsEnum.WEEK.getWayCode()==statisticalWay){
Date startDate = orderReceivedStatisticsVo.getDate(); LocalDate localDate = LocalDate.of(Integer.valueOf(orderReceivedStatisticsVo.getYear()), Integer.valueOf(orderReceivedStatisticsVo.getMonth().replace(orderReceivedStatisticsVo.getYear(), "")), 1);
String startDateStr = DateUtil.format(startDate, "yyyy-MM-dd"); int dayOfYear = localDate.getDayOfYear();
String endDateStr = DateUtil.offset(startDate, DateField.DAY_OF_MONTH, 6).toDateStr(); int days = Integer.valueOf(orderReceivedStatisticsVo.getWeekOfYear().replace(orderReceivedStatisticsVo.getYear(),""))*7;
int betweenDays = days - dayOfYear;
LocalDate endLocalDate = localDate.withDayOfMonth(betweenDays);
LocalDate startLocalDate = endLocalDate.minusDays(6);
String startDateStr = startLocalDate.format(dateTimeFormatter);
String endDateStr = endLocalDate.format(dateTimeFormatter);
firstCell.setCellValue(String.format("%s~%s",startDateStr,endDateStr)); firstCell.setCellValue(String.format("%s~%s",startDateStr,endDateStr));
} }
if (ReceivedStatisticsEnum.MONTH.getWayCode()==statisticalWay){ if (ReceivedStatisticsEnum.MONTH.getWayCode()==statisticalWay){
......
package com.xxfc.platform.order.rest.background; package com.xxfc.platform.order.rest.background;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.annotation.BeanValid; import com.github.wxiaoqi.security.common.annotation.BeanValid;
import com.github.wxiaoqi.security.common.annotation.SimpleValid; import com.github.wxiaoqi.security.common.annotation.SimpleValid;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
...@@ -22,6 +23,7 @@ import javax.servlet.ServletOutputStream; ...@@ -22,6 +23,7 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -41,15 +43,17 @@ public class OrderReceivedStatisticsAdminController { ...@@ -41,15 +43,17 @@ public class OrderReceivedStatisticsAdminController {
@ApiOperation("订单统计") @ApiOperation("订单统计")
@PostMapping("") @PostMapping("")
public ObjectRestResponse<Map<String, List<OrderReceivedStatisticsVo>>> orderReceivedStatistics(@RequestBody @SimpleValid OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO){ public ObjectRestResponse<Map<String, List<OrderReceivedStatisticsVo>>> orderReceivedStatistics(@RequestBody @SimpleValid OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO, UserDTO userDTO){
orderReceivedStatisticsFindDTO.setCompanyId(Arrays.asList(userDTO.getCompanyId()));
Map<String, List<OrderReceivedStatisticsVo>> orderReceivedStatisticsPageVo = orderReceivedStatisticsBiz.getOrderReceivedStatisticsResult(orderReceivedStatisticsFindDTO); Map<String, List<OrderReceivedStatisticsVo>> orderReceivedStatisticsPageVo = orderReceivedStatisticsBiz.getOrderReceivedStatisticsResult(orderReceivedStatisticsFindDTO);
return ObjectRestResponse.succ(orderReceivedStatisticsPageVo); return ObjectRestResponse.succ(orderReceivedStatisticsPageVo);
} }
@ApiOperation("订单统计excel导出下载") @ApiOperation("订单统计excel导出下载")
@PostMapping(value = "/export",consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/export",consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ObjectRestResponse<Void> exportOrderReceivedStatistics(@RequestBody @BeanValid OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO, HttpServletResponse response){ public ObjectRestResponse<Void> exportOrderReceivedStatistics(@RequestBody @BeanValid OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO,UserDTO userDTO, HttpServletResponse response){
try { try {
orderReceivedStatisticsFindDTO.setCompanyId(Arrays.asList(userDTO.getCompanyId()));
String name = DateTimeFormatter.ofPattern("YYYYMMddHHmmss").format(LocalDateTime.now()); String name = DateTimeFormatter.ofPattern("YYYYMMddHHmmss").format(LocalDateTime.now());
response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setContentType("application/vnd.ms-excel;charset=utf-8");
String filename = String.format("%s-OrderReceivedStatistics.xlsx",name); String filename = String.format("%s-OrderReceivedStatistics.xlsx",name);
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<result property="isFinish" column="is_finish"/> <result property="isFinish" column="is_finish"/>
<result property="orderOrigin" column="order_origin"/> <result property="orderOrigin" column="order_origin"/>
<result property="payWay" column="pay_way"/> <result property="payWay" column="pay_way"/>
<result property="companyId" column="company_id"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
...@@ -30,6 +31,7 @@ ...@@ -30,6 +31,7 @@
<if test="payWay!=null"> <if test="payWay!=null">
and `pay_way`=#{payWay} and `pay_way`=#{payWay}
</if> </if>
<if test="startDate!=null and endDate!=null"> <if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate} and `date` between #{startDate} and #{endDate}
</if> </if>
......
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