Commit 75c22dd8 authored by hanfeng's avatar hanfeng

总业绩统计

parent 6369f14f
...@@ -5,13 +5,29 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,13 +5,29 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column; import javax.persistence.Column;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data @Data
@ApiModel("订单业绩明细表") @ApiModel("订单业绩明细表")
public class Achievement { public class Achievement implements Serializable {
private static final Map<Integer, String> orderTypeMap = new HashMap<>();
private static final Map<Integer, String> payWayMap = new HashMap<>();
static {
orderTypeMap.put(1, "租车");
orderTypeMap.put(2, "旅游");
orderTypeMap.put(3, "会员");
payWayMap.put(null, "微信");
payWayMap.put(1, "微信支付");
payWayMap.put(2, "支付宝支付");
payWayMap.put(3, "银联支付");
}
@ApiModelProperty(value = "下单用户真实姓名") @ApiModelProperty(value = "下单用户真实姓名")
private String realname; private String realname;
@ApiModelProperty(value = "用户手机号") @ApiModelProperty(value = "用户手机号")
...@@ -27,8 +43,8 @@ public class Achievement { ...@@ -27,8 +43,8 @@ public class Achievement {
@ApiModelProperty(value = "订单所属公司名") @ApiModelProperty(value = "订单所属公司名")
private String companyName; private String companyName;
@ApiModelProperty(value = "优惠价格") @ApiModelProperty(value = "优惠价格")
private BigDecimal favorablePrice; private BigDecimal favorablePrice = BigDecimal.ZERO;
@ApiModelProperty(value = "创建时间", hidden = true ) @ApiModelProperty(value = "创建时间", hidden = true)
@Column(name = "crt_time") @Column(name = "crt_time")
private String crtTime; private String crtTime;
@ApiModelProperty(value = "订单号") @ApiModelProperty(value = "订单号")
...@@ -37,15 +53,24 @@ public class Achievement { ...@@ -37,15 +53,24 @@ public class Achievement {
private Integer type; private Integer type;
@Column(name = "order_amount") @Column(name = "order_amount")
@ApiModelProperty("订单总额") @ApiModelProperty("订单总额")
private BigDecimal orderAmount=BigDecimal.ZERO; private BigDecimal orderAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "实际订单额") @ApiModelProperty(value = "实际订单额")
@Column(name = "real_amount") @Column(name = "real_amount")
private BigDecimal realAmount=BigDecimal.ZERO; private BigDecimal realAmount = BigDecimal.ZERO;
@Column(name = "pay_way") @Column(name = "pay_way")
@ApiModelProperty(value = "支付方式") @ApiModelProperty(value = "支付方式")
private Integer payWay; private Integer payWay;
public void setCrtTime(Date crtTime) { public void setCrtTime(Date crtTime) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
this.crtTime = dateFormat.format(crtTime); this.crtTime = dateFormat.format(crtTime);
}
public String getType() {
return orderTypeMap.get(type);
}
public String getPayWay() {
return payWayMap.get(payWay);
} }
} }
...@@ -9,12 +9,25 @@ import org.springframework.util.StringUtils; ...@@ -9,12 +9,25 @@ import org.springframework.util.StringUtils;
import javax.persistence.Column; import javax.persistence.Column;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Data @Data
public class ReturnOrderAmount implements Serializable { public class ReturnOrderAmount implements Serializable {
private static final long serialVersionUID = -8445943548965154778L; private static final long serialVersionUID = -8445943548965154778L;
private static final Map<Integer, String> orderTypeMap = new HashMap<>();
static {
orderTypeMap.put(1, "租车");
orderTypeMap.put(2, "旅游");
orderTypeMap.put(3, "会员");
}
@ApiModelProperty(value = "时间") @ApiModelProperty(value = "时间")
private String time; private Long time;
@ApiModelProperty(value = "订单号") @ApiModelProperty(value = "订单号")
private String no; private String no;
@ApiModelProperty(value = "订单类型") @ApiModelProperty(value = "订单类型")
...@@ -28,11 +41,22 @@ public class ReturnOrderAmount implements Serializable { ...@@ -28,11 +41,22 @@ public class ReturnOrderAmount implements Serializable {
@ApiModelProperty(value = "退款说明") @ApiModelProperty(value = "退款说明")
private String refundInstruction; private String refundInstruction;
@ApiModelProperty(value = "退款明细") @ApiModelProperty(value = "退款明细")
private BigDecimal refundAmount=BigDecimal.ZERO; private BigDecimal refundAmount = BigDecimal.ZERO;
@ApiModelProperty("退还类型") @ApiModelProperty("退还类型")
@Column(name = "account_type") @Column(name = "account_type")
private Integer accountType; private Integer accountType;
public OrderAccountDetail getAccountDetail() { public OrderAccountDetail getAccountDetail() {
return StringUtils.hasText(accountDetail)? JSON.parseObject(accountDetail,OrderAccountDetail.class):new OrderAccountDetail(); return StringUtils.hasText(accountDetail) ? JSON.parseObject(accountDetail, OrderAccountDetail.class) : new OrderAccountDetail();
}
public String getType() {
return orderTypeMap.get(type);
}
public String getTime() {
Date date = new Date(this.time);
return new SimpleDateFormat("yyyy-MM-dd").format(date);
} }
} }
...@@ -5,10 +5,10 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; ...@@ -5,10 +5,10 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.auth.PageResult; import com.github.wxiaoqi.security.common.msg.auth.PageResult;
import com.github.wxiaoqi.security.common.rest.CommonBaseController; import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.biz.TotalPerformanceBiz; import com.xxfc.platform.order.biz.TotalPerformanceBiz;
import com.xxfc.platform.order.pojo.QueryCriteria; import com.xxfc.platform.order.pojo.QueryCriteria;
import com.xxfc.platform.order.contant.enumerate.BookkeepingTypeEnum; import com.xxfc.platform.order.contant.enumerate.BookkeepingTypeEnum;
...@@ -24,7 +24,12 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -24,7 +24,12 @@ import org.springframework.web.bind.annotation.RequestBody;
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 javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -75,28 +80,30 @@ public class TotalPerformanceStatementController extends CommonBaseController { ...@@ -75,28 +80,30 @@ public class TotalPerformanceStatementController extends CommonBaseController {
} }
@PostMapping("/excel") @PostMapping("/excel")
public ObjectRestResponse statisticalDownload(@RequestBody QueryCriteria queryCriteria) throws Exception { public void exportTotalPerformance(@RequestBody QueryCriteria queryCriteria, HttpServletResponse response) throws Exception {
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData(); try {
String name = DateTimeFormatter.ofPattern("YYYYMMddHHmmss").format(LocalDateTime.now());
//获取用户权限 response.setContentType("application/vnd.ms-excel;charset=utf-8");
List<Integer> Jurisdiction = null;
if (BookkeepingTypeEnum.ENTER.getCode().equals(queryCriteria.getType())) {
//是否有查询所有数据的权限 String filename = String.format("%s-总业绩-入账表.xlsx",name);
if (!HIGHEST_AUTHORITY.equals(userDTO.getDataAll())) { response.setHeader("Content-Disposition","attachment;filename="+ new String(filename.getBytes(), "iso8859-1"));
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone()); ServletOutputStream outputStream = response.getOutputStream();
Jurisdiction = branchCompanies.parallelStream().map(BranchCompany::getId).collect(Collectors.toList()); totalPerformanceBiz.exportEntry(queryCriteria, name, outputStream);
}else if (BookkeepingTypeEnum.OUT.getCode().equals(queryCriteria.getType())){
String filename = String.format("%s-总业绩-出账表.xlsx",name);
response.setHeader("Content-Disposition","attachment;filename="+ new String(filename.getBytes(), "iso8859-1"));
ServletOutputStream outputStream = response.getOutputStream();
totalPerformanceBiz.exportAccount(queryCriteria, name, outputStream);
}else {
throw new BaseException("无相关数据");
}
response.setCharacterEncoding("UTF-8");
} catch (IOException e) {
throw new BaseException("导入数据失败");
} }
queryCriteria.setJurisdiction(Jurisdiction);
if (BookkeepingTypeEnum.ENTER.getCode().equals(queryCriteria.getType())) {
TotalOrderRevenue totalOrderRevenue = totalPerformanceBiz.entryStatisticalData(queryCriteria);
return ObjectRestResponse.succ(totalOrderRevenue);
}else if (BookkeepingTypeEnum.OUT.getCode().equals(queryCriteria.getType())){
List<ReturnOrderAmount> returnOrderAmounts = totalPerformanceBiz.outStatisticalData(queryCriteria);
return ObjectRestResponse.succ(PageResult.nowPageResult(queryCriteria.getPage(),queryCriteria.getLimit(),returnOrderAmounts));
}
return ObjectRestResponse.succ();
} }
} }
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