fix
This commit is contained in:
@@ -276,7 +276,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
if (StrUtil.isNotEmpty(clerkId)) {
|
if (StrUtil.isNotEmpty(clerkId)) {
|
||||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId);
|
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId);
|
||||||
}
|
}
|
||||||
if (orderStatus != null) {
|
if (orderStatus != null && !orderStatus.isEmpty()) {
|
||||||
lambdaQueryWrapper.in(PlayOrderInfoEntity::getOrderStatus, orderStatus);
|
lambdaQueryWrapper.in(PlayOrderInfoEntity::getOrderStatus, orderStatus);
|
||||||
}
|
}
|
||||||
lambdaQueryWrapper.between(PlayOrderInfoEntity::getPurchaserTime, startTime, endTime);
|
lambdaQueryWrapper.between(PlayOrderInfoEntity::getPurchaserTime, startTime, endTime);
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.temporal.TemporalAdjusters;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 店员业绩查询对
|
* 店员业绩查询对
|
||||||
@@ -70,18 +70,41 @@ public class PlayClerkPerformanceController {
|
|||||||
|
|
||||||
@PostMapping("/listByTime")
|
@PostMapping("/listByTime")
|
||||||
public R listByTime(@Validated @RequestBody PlayClerkPerformanceInfoQueryVo vo) {
|
public R listByTime(@Validated @RequestBody PlayClerkPerformanceInfoQueryVo vo) {
|
||||||
vo.getEndOrderTime().get(1);
|
|
||||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
||||||
//时间范围
|
//时间范围
|
||||||
List<String> dates = getDateRange(vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1));
|
List<String> dates = getDateRangeByDay(vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1));
|
||||||
//指定时间内所有订单
|
//指定时间内所有订单
|
||||||
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByTime("", vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1), Stream.of("2", "3").collect(Collectors.toList()));
|
// List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByTime("", vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1), Stream.of("2", "3").collect(Collectors.toList()));
|
||||||
|
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByTime("", vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1), new ArrayList<>());
|
||||||
List<PlayClerkPerformanceInfoReturnVo> orders = new ArrayList<>(dates.size());
|
List<PlayClerkPerformanceInfoReturnVo> orders = new ArrayList<>(dates.size());
|
||||||
for (String date : dates) {
|
for (String date : dates) {
|
||||||
orders.add(getPerformanceInfo(date, orderInfoEntities));
|
orders.add(getPerformanceInfo(date, orderInfoEntities));
|
||||||
}
|
}
|
||||||
Map<String, Object> resultMap = new HashMap<>(orders.size());
|
Map<String, Object> resultMap = new HashMap<>(orders.size());
|
||||||
resultMap.put("dates", dates);
|
resultMap.put("dates", dates);
|
||||||
|
resultMap.put("orderToTal", getTotalInfo(orderInfoEntities));
|
||||||
|
resultMap.put("list", orders);
|
||||||
|
return R.ok(resultMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/listByMonth")
|
||||||
|
public R listByMonth(@Validated @RequestBody PlayClerkPerformanceInfoQueryVo vo) {
|
||||||
|
String startTime = LocalDate.of(Integer.parseInt(vo.getEndOrderTime().get(0).split("-")[0]), Integer.parseInt(vo.getEndOrderTime().get(0).split("-")[1]), 1).toString() + " 00:00:00";
|
||||||
|
LocalDate endDate = LocalDate.of(Integer.parseInt(vo.getEndOrderTime().get(1).split("-")[0]), Integer.parseInt(vo.getEndOrderTime().get(1).split("-")[1]), 1);
|
||||||
|
String endTime = endDate.with(TemporalAdjusters.lastDayOfMonth()) + " 23:59:59";
|
||||||
|
|
||||||
|
|
||||||
|
List<String> dates = getDateRangeByMonth(startTime, endTime);
|
||||||
|
//指定时间内所有订单
|
||||||
|
// List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByTime("", startTime, endTime, Stream.of("4").collect(Collectors.toList()));
|
||||||
|
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByTime("", startTime, endTime, new ArrayList<>());
|
||||||
|
List<PlayClerkPerformanceInfoReturnVo> orders = new ArrayList<>(dates.size());
|
||||||
|
for (String date : dates) {
|
||||||
|
orders.add(getPerformanceInfo(date, orderInfoEntities));
|
||||||
|
}
|
||||||
|
Map<String, Object> resultMap = new HashMap<>(orders.size());
|
||||||
|
resultMap.put("dates", dates);
|
||||||
|
resultMap.put("orderToTal", getTotalInfo(orderInfoEntities));
|
||||||
resultMap.put("list", orders);
|
resultMap.put("list", orders);
|
||||||
return R.ok(resultMap);
|
return R.ok(resultMap);
|
||||||
}
|
}
|
||||||
@@ -94,7 +117,7 @@ public class PlayClerkPerformanceController {
|
|||||||
* @param endTime 结束时间
|
* @param endTime 结束时间
|
||||||
* @return 时间范围
|
* @return 时间范围
|
||||||
*/
|
*/
|
||||||
public List<String> getDateRange(String startTime, String endTime) {
|
public List<String> getDateRangeByDay(String startTime, String endTime) {
|
||||||
List<String> dates = new ArrayList<>();
|
List<String> dates = new ArrayList<>();
|
||||||
LocalDateTime date1 = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
LocalDateTime date1 = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
LocalDateTime date2 = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
LocalDateTime date2 = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
@@ -107,40 +130,41 @@ public class PlayClerkPerformanceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组装统计数据
|
* 根据订单开始时间和结束时间,组装订单统计信息的查询时间范围
|
||||||
*
|
*
|
||||||
* @param performanceDate 统计时间
|
* @param startTime 开始时间
|
||||||
* @param orderInfoEntities 订单列表
|
* @param endTime 结束时间
|
||||||
* @return 统计数据
|
* @return 时间范围
|
||||||
*/
|
*/
|
||||||
|
public List<String> getDateRangeByMonth(String startTime, String endTime) {
|
||||||
|
List<String> dates = new ArrayList<>();
|
||||||
|
LocalDateTime date1 = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
LocalDateTime date2 = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
while (!date1.isAfter(date2)) {
|
||||||
|
dates.add(date1.getYear() + "-" + date1.getMonthValue());
|
||||||
|
date1 = date1.plusMonths(1);
|
||||||
|
|
||||||
public PlayClerkPerformanceInfoReturnVo getPerformanceInfo(String performanceDate, List<PlayOrderInfoEntity> orderInfoEntities) {
|
|
||||||
PlayClerkPerformanceInfoReturnVo vo = new PlayClerkPerformanceInfoReturnVo();
|
|
||||||
vo.setPerformanceDate(performanceDate);
|
|
||||||
|
|
||||||
|
|
||||||
List<PlayOrderInfoEntity> itemOrderInfo = new ArrayList<>();
|
|
||||||
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
|
||||||
//接单时间,在指定日期的 00:00:00点到23:59:59之间
|
|
||||||
if (orderInfoEntity.getPurchaserTime().isAfter(LocalDateTime.parse(performanceDate + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) && orderInfoEntity.getPurchaserTime().isBefore(LocalDateTime.parse(performanceDate + " 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) {
|
|
||||||
itemOrderInfo.add(orderInfoEntity);
|
|
||||||
}
|
}
|
||||||
|
return dates;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public PlayClerkPerformanceInfoReturnVo getTotalInfo(List<PlayOrderInfoEntity> orderInfoEntities) {
|
||||||
Set<String> customIds = new HashSet<>();
|
Set<String> customIds = new HashSet<>();
|
||||||
int orderContinueNumber = 0;
|
int orderContinueNumber = 0;
|
||||||
int orderRefundNumber = 0;
|
int orderRefundNumber = 0;
|
||||||
int ordersExpiredNumber = 0;
|
int ordersExpiredNumber = 0;
|
||||||
|
BigDecimal orderMoney = BigDecimal.ZERO;
|
||||||
BigDecimal finalAmount = BigDecimal.ZERO;
|
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||||
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
||||||
BigDecimal orderTotalAmount = BigDecimal.ZERO;
|
BigDecimal orderTotalAmount = BigDecimal.ZERO;
|
||||||
BigDecimal orderRewardAmount = BigDecimal.ZERO;
|
BigDecimal orderRewardAmount = BigDecimal.ZERO;
|
||||||
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
||||||
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||||
for (PlayOrderInfoEntity orderInfoEntity : itemOrderInfo) {
|
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
||||||
customIds.add(orderInfoEntity.getPurchaserBy());
|
customIds.add(orderInfoEntity.getPurchaserBy());
|
||||||
finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount());
|
finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney());
|
||||||
if ("1".equals(orderInfoEntity.getFirstOrder())) {
|
if ("1".equals(orderInfoEntity.getFirstOrder())) {
|
||||||
orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount());
|
orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
} else {
|
} else {
|
||||||
@@ -159,7 +183,6 @@ public class PlayClerkPerformanceController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlayClerkPerformanceInfoReturnVo returnVo = new PlayClerkPerformanceInfoReturnVo();
|
PlayClerkPerformanceInfoReturnVo returnVo = new PlayClerkPerformanceInfoReturnVo();
|
||||||
|
|
||||||
returnVo.setOrderNumber(orderInfoEntities.size());
|
returnVo.setOrderNumber(orderInfoEntities.size());
|
||||||
returnVo.setOrderContinueNumber(orderContinueNumber);
|
returnVo.setOrderContinueNumber(orderContinueNumber);
|
||||||
returnVo.setOrderRefundNumber(orderRefundNumber);
|
returnVo.setOrderRefundNumber(orderRefundNumber);
|
||||||
@@ -171,6 +194,76 @@ public class PlayClerkPerformanceController {
|
|||||||
returnVo.setOrderRefundAmount(orderRefundAmount);
|
returnVo.setOrderRefundAmount(orderRefundAmount);
|
||||||
returnVo.setCustomNumber(customIds.size());
|
returnVo.setCustomNumber(customIds.size());
|
||||||
returnVo.setEstimatedRevenue(estimatedRevenue);
|
returnVo.setEstimatedRevenue(estimatedRevenue);
|
||||||
|
returnVo.setOrderMoney(estimatedRevenue);
|
||||||
|
return returnVo;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 组装统计数据
|
||||||
|
*
|
||||||
|
* @param performanceDate 统计时间
|
||||||
|
* @param orderInfoEntities 订单列表
|
||||||
|
* @return 统计数据
|
||||||
|
*/
|
||||||
|
|
||||||
|
public PlayClerkPerformanceInfoReturnVo getPerformanceInfo(String performanceDate, List<PlayOrderInfoEntity> orderInfoEntities) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<PlayOrderInfoEntity> itemOrderInfo = new ArrayList<>();
|
||||||
|
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
||||||
|
//接单时间,在指定日期的 00:00:00点到23:59:59之间
|
||||||
|
if (orderInfoEntity.getPurchaserTime().isAfter(LocalDateTime.parse(performanceDate + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) && orderInfoEntity.getPurchaserTime().isBefore(LocalDateTime.parse(performanceDate + " 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) {
|
||||||
|
itemOrderInfo.add(orderInfoEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Set<String> customIds = new HashSet<>();
|
||||||
|
int orderContinueNumber = 0;
|
||||||
|
int orderRefundNumber = 0;
|
||||||
|
int ordersExpiredNumber = 0;
|
||||||
|
BigDecimal orderMoney = BigDecimal.ZERO;
|
||||||
|
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderTotalAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderRewardAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||||
|
for (PlayOrderInfoEntity orderInfoEntity : itemOrderInfo) {
|
||||||
|
customIds.add(orderInfoEntity.getPurchaserBy());
|
||||||
|
finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney());
|
||||||
|
if ("1".equals(orderInfoEntity.getFirstOrder())) {
|
||||||
|
orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
} else {
|
||||||
|
orderContinueNumber++;
|
||||||
|
orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
}
|
||||||
|
if ("2".equals(orderInfoEntity.getPlaceType())) {
|
||||||
|
orderRewardAmount = orderRewardAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
}
|
||||||
|
if ("1".equals(orderInfoEntity.getRefundType())) {
|
||||||
|
orderRefundNumber++;
|
||||||
|
orderRefundAmount = orderRefundAmount.add(orderInfoEntity.getRefundAmount());
|
||||||
|
}
|
||||||
|
if ("1".equals(orderInfoEntity.getOrdersExpiredState())) {
|
||||||
|
ordersExpiredNumber++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PlayClerkPerformanceInfoReturnVo returnVo = new PlayClerkPerformanceInfoReturnVo();
|
||||||
|
returnVo.setPerformanceDate(performanceDate);
|
||||||
|
returnVo.setOrderNumber(itemOrderInfo.size());
|
||||||
|
returnVo.setOrderContinueNumber(orderContinueNumber);
|
||||||
|
returnVo.setOrderRefundNumber(orderRefundNumber);
|
||||||
|
returnVo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||||
|
returnVo.setFinalAmount(finalAmount);
|
||||||
|
returnVo.setOrderFirstAmount(orderFirstAmount);
|
||||||
|
returnVo.setOrderTotalAmount(orderTotalAmount);
|
||||||
|
returnVo.setOrderRewardAmount(orderRewardAmount);
|
||||||
|
returnVo.setOrderRefundAmount(orderRefundAmount);
|
||||||
|
returnVo.setCustomNumber(customIds.size());
|
||||||
|
returnVo.setEstimatedRevenue(estimatedRevenue);
|
||||||
|
returnVo.setOrderMoney(estimatedRevenue);
|
||||||
return returnVo;
|
return returnVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,10 +58,21 @@ public class PlayClerkPerformanceInfoReturnVo {
|
|||||||
* 超时未接单数
|
* 超时未接单数
|
||||||
*/
|
*/
|
||||||
private Integer ordersExpiredNumber = 0;
|
private Integer ordersExpiredNumber = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单金额
|
* 订单金额
|
||||||
*/
|
*/
|
||||||
|
private BigDecimal orderMoney;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单最终金额(支付金额)
|
||||||
|
*/
|
||||||
private BigDecimal finalAmount = BigDecimal.ZERO;
|
private BigDecimal finalAmount = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 充值金额
|
||||||
|
*/
|
||||||
|
private BigDecimal rechargeAmount = BigDecimal.ZERO;
|
||||||
/**
|
/**
|
||||||
* 首单金额
|
* 首单金额
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user