|
|
@@ -46,6 +46,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.MathContext;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -558,69 +559,120 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R<IPage<SaleDetailDto>> saleDetail(SaleDetail saleDetailDto, IPage<SaleDetailDto> page) {
|
|
|
+ public R<IPage<SaleDetailDto>> saleDetail(SaleDetail saleDetailDto, IPage<PjOrderItems> page) {
|
|
|
saleDetailDto.setTenantId(AuthUtil.getTenantId());
|
|
|
saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
|
|
|
- IPage<SaleDetailDto> saleDetailDtoIPage = orderItemsService.saleDetail(saleDetailDto, page);
|
|
|
-// tireMallStatisticsService.saleDetail(saleDetailDto, page);
|
|
|
- if (!saleDetailDtoIPage.getRecords().isEmpty()) {
|
|
|
- String billNo = saleDetailDtoIPage.getRecords().stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.joining(","));
|
|
|
+// IPage<SaleDetailDto> saleDetailDtoIPage = orderItemsService.saleDetail(saleDetailDto, page);
|
|
|
+ IPage<PjOrderItems> orderItemsIPage = orderItemsService.saleDetailV1(saleDetailDto, page);
|
|
|
+ List<SaleDetailDto> saleDetailDtoList = new ArrayList<>();
|
|
|
+ if (!orderItemsIPage.getRecords().isEmpty()) {
|
|
|
+ List<Long> pidList = orderItemsIPage.getRecords().stream().map(PjOrderItems::getPid).distinct().collect(Collectors.toList());
|
|
|
List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
|
|
|
.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrder::getIsDeleted, 0)
|
|
|
.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
- .apply("find_in_set(ord_no,'" + billNo + "')"));
|
|
|
+ .in(PjOrder::getId, pidList));
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
for (PjOrder item : pjOrderList) {
|
|
|
- List<SaleDetailDto> saleDetailDtoList = saleDetailDtoIPage.getRecords().stream()
|
|
|
- .filter(e -> e.getOrdNo().equals(item.getOrdNo()) && !"全退".equals(e.getReturnsStatus())).collect(Collectors.toList());
|
|
|
- if (!saleDetailDtoList.isEmpty()) {
|
|
|
+ List<PjOrderItems> itemsList = orderItemsIPage.getRecords().stream()
|
|
|
+ .filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ if (!itemsList.isEmpty()) {
|
|
|
BigDecimal amount = item.getPaymentAmountTl();
|
|
|
- BigDecimal number = saleDetailDtoList.stream().map(SaleDetailDto::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal number = itemsList.stream().map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
number = number.abs();
|
|
|
amount = amount.abs();
|
|
|
- for (SaleDetailDto items : saleDetailDtoList) {
|
|
|
+ for (PjOrderItems items : itemsList) {
|
|
|
+ SaleDetailDto detail = new SaleDetailDto();
|
|
|
+ detail.setCustomerName(item.getCustomerName());
|
|
|
+ detail.setSalerName(item.getSalerName());
|
|
|
+ detail.setStorageName(item.getStorageName());
|
|
|
+ detail.setOrdNo(item.getOrdNo());
|
|
|
+ detail.setBrandName(items.getBrandName());
|
|
|
+ detail.setGoodsName(items.getGoodsName());
|
|
|
+ detail.setCode(items.getGoodsNo());
|
|
|
+ detail.setPropertyName(items.getPropertyName());
|
|
|
+ detail.setPattern(items.getPattern());
|
|
|
+ detail.setPrice(items.getPrice());
|
|
|
+ detail.setStatus(item.getStatus());
|
|
|
+ detail.setPid(item.getId());
|
|
|
+ detail.setGoodsId(items.getGoodsId() + "");
|
|
|
+ detail.setBusinessSource(item.getBusinessSource());
|
|
|
+ if ("XS".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("销售");
|
|
|
+ } else if ("TKXS".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("销售售后");
|
|
|
+ } else if ("CG".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("采购");
|
|
|
+ } else if ("TKCG".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("采购售后");
|
|
|
+ } else if ("RZCG".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("融资采购");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(item.getBusinesDate())) {
|
|
|
+ detail.setBusinesDate(sdf.format(item.getBusinesDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(item.getDeliveryBusinesDate())) {
|
|
|
+ detail.setDeliveryBusinesDate(sdf.format(item.getDeliveryBusinesDate()));
|
|
|
+ }
|
|
|
+ if (1 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("待付款");
|
|
|
+ } else if (2 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("已付款");
|
|
|
+ } else if (3 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("尾款");
|
|
|
+ } else if (4 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("已退款");
|
|
|
+ }
|
|
|
+ detail.setGoodsNum(items.getGoodsNum());
|
|
|
+ detail.setSubTotalMoney(items.getSubTotalMoney());
|
|
|
+ detail.setCostprie(items.getCostprie());
|
|
|
+ detail.setProfit(items.getGrossProfit());
|
|
|
+ detail.setReturnsNumber(items.getReturnsNumber());
|
|
|
+ detail.setReturnsAmount(items.getReturnsAmount());
|
|
|
+ detail.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum());
|
|
|
+ detail.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount());
|
|
|
+ detail.setPrimaryGoodsTotalNum(items.getPrimaryGoodsTotalNum());
|
|
|
+ detail.setPrimaryGoodsTotalMoney(items.getPrimaryGoodsTotalAmount());
|
|
|
+ detail.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
+ detail.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ detail.setReturnsStatus(item.getReturnsStatus());
|
|
|
+ if (itemsList.size() == 1 && number.compareTo(new BigDecimal(1)) <= 0) {
|
|
|
+ detail.setFreight(item.getFreight());
|
|
|
+ } else {
|
|
|
+ detail.setFreight(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
if ("已取消".equals(items.getStatus())) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
- items.setFreight(new BigDecimal("0.00"));
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
if ("TKXS".equals(item.getBsType())) {
|
|
|
- if (saleDetailDtoList.size() == 1 && number.compareTo(new BigDecimal(1)) <= 0 &&
|
|
|
- new BigDecimal("0.00").compareTo(items.getFreight()) != 0) {
|
|
|
- items.setSubTotalMoney(items.getSubTotalMoney().add(new BigDecimal("-5.00")));
|
|
|
- }
|
|
|
- items.setFreight(new BigDecimal("0.00").subtract(items.getFreight()));
|
|
|
if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
amount = amount.subtract(items.getSubTotalMoney().abs());
|
|
|
} else {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00").subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00").subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
amount = new BigDecimal("0.00");
|
|
|
}
|
|
|
} else {
|
|
|
- if ("XS".equals(item.getBsType())) {
|
|
|
- if (saleDetailDtoList.size() == 1 && number.compareTo(new BigDecimal(1)) <= 0) {
|
|
|
- items.setSubTotalMoney(items.getSubTotalMoney().add(new BigDecimal("5.00")));
|
|
|
- }
|
|
|
- if ("全退".equals(items.getReturnsStatus())) {
|
|
|
- items.setGoodsNum(new BigDecimal("0.00"));
|
|
|
- items.setFreight(new BigDecimal("0.00"));
|
|
|
- }
|
|
|
- }
|
|
|
if (amount.compareTo(items.getSubTotalMoney()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
amount = amount.subtract(items.getSubTotalMoney());
|
|
|
} else {
|
|
|
- items.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
+ detail.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
amount = new BigDecimal("0.00");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
- items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ saleDetailDtoList.add(detail);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ IPage<SaleDetailDto> saleDetailDtoIPage = new Page<>();
|
|
|
+ saleDetailDtoIPage.setRecords(saleDetailDtoList);
|
|
|
+ saleDetailDtoIPage.setSize(orderItemsIPage.getSize());
|
|
|
+ saleDetailDtoIPage.setTotal(orderItemsIPage.getTotal());
|
|
|
+ saleDetailDtoIPage.setPages(orderItemsIPage.getPages());
|
|
|
+ saleDetailDtoIPage.setCurrent(orderItemsIPage.getCurrent());
|
|
|
return R.data(saleDetailDtoIPage);
|
|
|
}
|
|
|
|
|
|
@@ -629,146 +681,114 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
saleDetailDto.setTenantId(AuthUtil.getTenantId());
|
|
|
saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- List<SaleDetailDto> saleDetailDtoList = orderItemsService.saleDetailList(saleDetailDto);
|
|
|
- if (!saleDetailDtoList.isEmpty()) {
|
|
|
- for (SaleDetailDto items : saleDetailDtoList) {
|
|
|
- items.setPrimaryGoodsTotalMoney(items.getPrimaryGoodsTotalNum().multiply(items.getPrice()));
|
|
|
- items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
- items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
- }
|
|
|
- BigDecimal goodsNumCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal subTotalMoneyCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSubTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal costprieCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getCostprie).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal profitCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getProfit).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal freightCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
-
|
|
|
- BigDecimal goodsNumActual = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal subTotalMoneyActual = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSubTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal costprieActual = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getCostprie).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal profitActual = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getProfit).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal freight = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal outGoodsTotalShipNum = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getOutGoodsTotalShipNum).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal outGoodsTotalShipAmount = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getOutGoodsTotalShipAmount).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal primaryGoodsTotalNum = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getPrimaryGoodsTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal primaryGoodsTotalMoney = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getPrimaryGoodsTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal surplusNum = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSurplusNum).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal surplusAmount = saleDetailDtoList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSurplusAmount).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
+// List<SaleDetailDto> saleDetailDtoList = orderItemsService.saleDetailList(saleDetailDto);
|
|
|
+ List<PjOrderItems> orderItemsList = orderItemsService.saleDetailListV1(saleDetailDto);
|
|
|
|
|
|
- BigDecimal freightReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal goodsNumReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal subTotalMoneyReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSubTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal costprieReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getCostprie).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal profitReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getProfit).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ BigDecimal goodsSum = new BigDecimal("0.00");
|
|
|
+ BigDecimal amount = new BigDecimal("0.00");
|
|
|
+ BigDecimal costprie = new BigDecimal("0.00");
|
|
|
+ BigDecimal profit = new BigDecimal("0.00");
|
|
|
+ BigDecimal freight = new BigDecimal("0.00");
|
|
|
|
|
|
- if ("TKXS".equals(saleDetailDto.getBsType()) || "TKCG".equals(saleDetailDto.getBsType())) {
|
|
|
- map.put("goodsSum", new BigDecimal("0"));
|
|
|
- map.put("amount", new BigDecimal("0"));
|
|
|
- map.put("costprie", new BigDecimal("0"));
|
|
|
- map.put("profit", new BigDecimal("0"));
|
|
|
- map.put("freight", freightCancel.add(freightReturns));
|
|
|
- map.put("goodsSumCancellation", goodsNumCancel.add(goodsNumReturns));
|
|
|
- map.put("amountCancellation", subTotalMoneyCancel.add(subTotalMoneyReturns));
|
|
|
- map.put("costprieCancellation", costprieCancel.add(costprieReturns));
|
|
|
- map.put("profitCancellation", profitCancel.add(profitReturns));
|
|
|
- map.put("outGoodsTotalShipNum", new BigDecimal("0"));
|
|
|
- map.put("outGoodsTotalShipAmount", new BigDecimal("0"));
|
|
|
- map.put("primaryGoodsTotalNum", new BigDecimal("0"));
|
|
|
- map.put("primaryGoodsTotalMoney", new BigDecimal("0"));
|
|
|
- map.put("surplusNum", new BigDecimal("0"));
|
|
|
- map.put("surplusAmount", new BigDecimal("0"));
|
|
|
- } else if ("XS".equals(saleDetailDto.getBsType()) || "CG".equals(saleDetailDto.getBsType())
|
|
|
- || "RZCG".equals(saleDetailDto.getBsType())) {
|
|
|
- map.put("goodsSum", goodsNumActual);
|
|
|
- map.put("amount", subTotalMoneyActual);
|
|
|
- map.put("costprie", costprieActual);
|
|
|
- map.put("profit", profitActual);
|
|
|
- map.put("freight", freight);
|
|
|
- map.put("goodsSumCancellation", "0");
|
|
|
- map.put("amountCancellation", "0.00");
|
|
|
- map.put("costprieCancellation", "0.00");
|
|
|
- map.put("profitCancellation", "0.00");
|
|
|
- map.put("outGoodsTotalShipNum", outGoodsTotalShipNum);
|
|
|
- map.put("outGoodsTotalShipAmount", outGoodsTotalShipAmount);
|
|
|
- map.put("primaryGoodsTotalNum", primaryGoodsTotalNum);
|
|
|
- map.put("primaryGoodsTotalMoney", primaryGoodsTotalMoney);
|
|
|
- map.put("surplusNum", surplusNum);
|
|
|
- map.put("surplusAmount", surplusAmount);
|
|
|
- } else {
|
|
|
- map.put("goodsSum", goodsNumActual.abs().add(goodsNumCancel));
|
|
|
- map.put("amount", subTotalMoneyActual.abs().add(subTotalMoneyCancel));
|
|
|
- map.put("costprie", costprieActual.abs().add(costprieCancel));
|
|
|
- map.put("profit", profitActual.abs().add(profitCancel));
|
|
|
- map.put("freight", freight.abs().subtract(freightCancel).subtract(freightReturns));
|
|
|
- map.put("goodsSumCancellation", goodsNumCancel.add(goodsNumReturns));
|
|
|
- map.put("amountCancellation", subTotalMoneyCancel.add(subTotalMoneyReturns));
|
|
|
- map.put("costprieCancellation", costprieCancel.add(costprieReturns));
|
|
|
- map.put("profitCancellation", profitCancel.add(profitReturns));
|
|
|
- map.put("outGoodsTotalShipNum", outGoodsTotalShipNum);
|
|
|
- map.put("outGoodsTotalShipAmount", outGoodsTotalShipAmount);
|
|
|
- map.put("primaryGoodsTotalNum", primaryGoodsTotalNum);
|
|
|
- map.put("primaryGoodsTotalMoney", primaryGoodsTotalMoney);
|
|
|
- map.put("surplusNum", surplusNum);
|
|
|
- map.put("surplusAmount", surplusAmount);
|
|
|
+ BigDecimal goodsSumCancellation = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCancellation = new BigDecimal("0.00");
|
|
|
+ BigDecimal costprieCancellation = new BigDecimal("0.00");
|
|
|
+ BigDecimal profitCancellation = new BigDecimal("0.00");
|
|
|
+ BigDecimal outGoodsTotalShipNum = new BigDecimal("0.00");
|
|
|
+ BigDecimal outGoodsTotalShipAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal primaryGoodsTotalNum = new BigDecimal("0.00");
|
|
|
+ BigDecimal primaryGoodsTotalMoney = new BigDecimal("0.00");
|
|
|
+ BigDecimal surplusNum = new BigDecimal("0.00");
|
|
|
+ BigDecimal surplusAmount = new BigDecimal("0.00");
|
|
|
+ if (!orderItemsList.isEmpty()) {
|
|
|
+ List<Long> pidList = orderItemsList.stream().map(PjOrderItems::getPid).distinct().collect(Collectors.toList());
|
|
|
+ List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
|
|
|
+ .eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrder::getIsDeleted, 0)
|
|
|
+ .eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
+ .in(PjOrder::getId, pidList));
|
|
|
+ for (PjOrder item : pjOrderList) {
|
|
|
+ List<PjOrderItems> itemsList = orderItemsList.stream()
|
|
|
+ .filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ BigDecimal number = itemsList.stream().map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (!itemsList.isEmpty()) {
|
|
|
+ for (PjOrderItems items : itemsList) {
|
|
|
+ if (itemsList.size() == 1 && number.compareTo(new BigDecimal(1)) <= 0) {
|
|
|
+ freight = freight.add(item.getFreight());
|
|
|
+ } else {
|
|
|
+ freight = freight.add(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
+ goodsSum = goodsSum.add(items.getGoodsNum().subtract(items.getReturnsNumber()));
|
|
|
+ amount = amount.add(items.getSubTotalMoney().subtract(items.getReturnsAmount()));
|
|
|
+ BigDecimal subNum = items.getGoodsNum().subtract(items.getReturnsNumber());
|
|
|
+ BigDecimal subTotalMoney = items.getSubTotalMoney().subtract(items.getReturnsAmount());
|
|
|
+ BigDecimal subCostprie = subNum.multiply(items.getCostpriePrice());
|
|
|
+ costprie = costprie.add(subCostprie);
|
|
|
+ profit = profit.add(subTotalMoney.subtract(subCostprie));
|
|
|
+ goodsSumCancellation = goodsSumCancellation.add(items.getReturnsNumber());
|
|
|
+ amountCancellation = amountCancellation.add(items.getReturnsAmount());
|
|
|
+ BigDecimal subCostprieCancellation = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
+ costprieCancellation = costprieCancellation.add(subCostprieCancellation);
|
|
|
+ profitCancellation = profitCancellation.add(items.getReturnsAmount().subtract(subCostprieCancellation));
|
|
|
+ outGoodsTotalShipNum = outGoodsTotalShipNum.add(items.getOutGoodsTotalShipNum());
|
|
|
+ outGoodsTotalShipAmount = outGoodsTotalShipAmount.add(items.getOutGoodsTotalShipAmount());
|
|
|
+ primaryGoodsTotalNum = primaryGoodsTotalNum.add(items.getPrimaryGoodsTotalNum());
|
|
|
+ primaryGoodsTotalMoney = primaryGoodsTotalMoney.add(items.getPrimaryGoodsTotalAmount());
|
|
|
+ surplusNum = surplusNum.add(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
+ surplusAmount = surplusAmount.add(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- } else {
|
|
|
- map.put("goodsSum", "0");
|
|
|
- map.put("amount", "0.00");
|
|
|
- map.put("costprie", "0.00");
|
|
|
- map.put("profit", "0.00");
|
|
|
+ }
|
|
|
+ if ("TKXS".equals(saleDetailDto.getBsType()) || "TKCG".equals(saleDetailDto.getBsType())) {
|
|
|
+ map.put("goodsSum", new BigDecimal("0"));
|
|
|
+ map.put("amount", new BigDecimal("0"));
|
|
|
+ map.put("costprie", new BigDecimal("0"));
|
|
|
+ map.put("profit", new BigDecimal("0"));
|
|
|
+ map.put("freight", freight);
|
|
|
+ map.put("goodsSumCancellation", goodsSumCancellation);
|
|
|
+ map.put("amountCancellation", amountCancellation);
|
|
|
+ map.put("costprieCancellation", costprieCancellation);
|
|
|
+ map.put("profitCancellation", profitCancellation);
|
|
|
+ map.put("outGoodsTotalShipNum", new BigDecimal("0"));
|
|
|
+ map.put("outGoodsTotalShipAmount", new BigDecimal("0"));
|
|
|
+ map.put("primaryGoodsTotalNum", new BigDecimal("0"));
|
|
|
+ map.put("primaryGoodsTotalMoney", new BigDecimal("0"));
|
|
|
+ map.put("surplusNum", new BigDecimal("0"));
|
|
|
+ map.put("surplusAmount", new BigDecimal("0"));
|
|
|
+ } else if ("XS".equals(saleDetailDto.getBsType()) || "CG".equals(saleDetailDto.getBsType())
|
|
|
+ || "RZCG".equals(saleDetailDto.getBsType())) {
|
|
|
+ map.put("goodsSum", goodsSum);
|
|
|
+ map.put("amount", amount);
|
|
|
+ map.put("costprie", costprie);
|
|
|
+ map.put("profit", profit);
|
|
|
+ map.put("freight", freight);
|
|
|
map.put("goodsSumCancellation", "0");
|
|
|
map.put("amountCancellation", "0.00");
|
|
|
map.put("costprieCancellation", "0.00");
|
|
|
map.put("profitCancellation", "0.00");
|
|
|
- map.put("freight", "0.00");
|
|
|
- map.put("outGoodsTotalShipNum", "0.00");
|
|
|
- map.put("outGoodsTotalShipAmount", "0.00");
|
|
|
- map.put("primaryGoodsTotalNum", "0.00");
|
|
|
- map.put("primaryGoodsTotalMoney", "0.00");
|
|
|
- map.put("surplusNum", "0.00");
|
|
|
- map.put("surplusAmount", "0.00");
|
|
|
-
|
|
|
+ map.put("outGoodsTotalShipNum", outGoodsTotalShipNum);
|
|
|
+ map.put("outGoodsTotalShipAmount", outGoodsTotalShipAmount);
|
|
|
+ map.put("primaryGoodsTotalNum", primaryGoodsTotalNum);
|
|
|
+ map.put("primaryGoodsTotalMoney", primaryGoodsTotalMoney);
|
|
|
+ map.put("surplusNum", surplusNum);
|
|
|
+ map.put("surplusAmount", surplusAmount);
|
|
|
+ } else {
|
|
|
+ map.put("goodsSum", goodsSum);
|
|
|
+ map.put("amount", amount);
|
|
|
+ map.put("costprie", costprie);
|
|
|
+ map.put("profit", profit);
|
|
|
+ map.put("freight", freight);
|
|
|
+ map.put("goodsSumCancellation", goodsSumCancellation);
|
|
|
+ map.put("amountCancellation", amountCancellation);
|
|
|
+ map.put("costprieCancellation", costprieCancellation);
|
|
|
+ map.put("profitCancellation", profitCancellation);
|
|
|
+ map.put("outGoodsTotalShipNum", outGoodsTotalShipNum);
|
|
|
+ map.put("outGoodsTotalShipAmount", outGoodsTotalShipAmount);
|
|
|
+ map.put("primaryGoodsTotalNum", primaryGoodsTotalNum);
|
|
|
+ map.put("primaryGoodsTotalMoney", primaryGoodsTotalMoney);
|
|
|
+ map.put("surplusNum", surplusNum);
|
|
|
+ map.put("surplusAmount", surplusAmount);
|
|
|
}
|
|
|
return R.data(map);
|
|
|
}
|
|
|
@@ -777,7 +797,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
public List<SaleDetailDto> saleDetailExport(SaleDetail saleDetailDto) {
|
|
|
saleDetailDto.setTenantId(AuthUtil.getTenantId());
|
|
|
saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
|
|
|
- List<SaleDetailDto> saleDetailDtoIPage = orderItemsService.saleDetailList(saleDetailDto);
|
|
|
+ /*List<SaleDetailDto> saleDetailDtoIPage = orderItemsService.saleDetailList(saleDetailDto);
|
|
|
if (!saleDetailDtoIPage.isEmpty()) {
|
|
|
String billNo = saleDetailDtoIPage.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.joining(","));
|
|
|
List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
|
|
|
@@ -835,7 +855,112 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return saleDetailDtoIPage;
|
|
|
+ return saleDetailDtoIPage;*/
|
|
|
+ List<PjOrderItems> orderItemsList = orderItemsService.saleDetailListV1(saleDetailDto);
|
|
|
+ List<SaleDetailDto> saleDetailDtoList = new ArrayList<>();
|
|
|
+ if (!orderItemsList.isEmpty()) {
|
|
|
+ List<Long> pidList = orderItemsList.stream().map(PjOrderItems::getPid).distinct().collect(Collectors.toList());
|
|
|
+ List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
|
|
|
+ .eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrder::getIsDeleted, 0)
|
|
|
+ .eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
+ .in(PjOrder::getId, pidList));
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ for (PjOrder item : pjOrderList) {
|
|
|
+ List<PjOrderItems> itemsList = orderItemsList.stream()
|
|
|
+ .filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ if (!itemsList.isEmpty()) {
|
|
|
+ BigDecimal amount = item.getPaymentAmountTl();
|
|
|
+ BigDecimal number = itemsList.stream().map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ number = number.abs();
|
|
|
+ amount = amount.abs();
|
|
|
+ for (PjOrderItems items : itemsList) {
|
|
|
+ SaleDetailDto detail = new SaleDetailDto();
|
|
|
+ detail.setCustomerName(item.getCustomerName());
|
|
|
+ detail.setSalerName(item.getSalerName());
|
|
|
+ detail.setStorageName(item.getStorageName());
|
|
|
+ detail.setOrdNo(item.getOrdNo());
|
|
|
+ detail.setBrandName(items.getBrandName());
|
|
|
+ detail.setGoodsName(items.getGoodsName());
|
|
|
+ detail.setCode(items.getGoodsNo());
|
|
|
+ detail.setPropertyName(items.getPropertyName());
|
|
|
+ detail.setPattern(items.getPattern());
|
|
|
+ detail.setPrice(items.getPrice());
|
|
|
+ detail.setStatus(item.getStatus());
|
|
|
+ detail.setPid(item.getId());
|
|
|
+ detail.setGoodsId(items.getGoodsId() + "");
|
|
|
+ detail.setBusinessSource(item.getBusinessSource());
|
|
|
+ if ("XS".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("销售");
|
|
|
+ } else if ("TKXS".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("销售售后");
|
|
|
+ } else if ("CG".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("采购");
|
|
|
+ } else if ("TKCG".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("采购售后");
|
|
|
+ } else if ("RZCG".equals(item.getBsType())) {
|
|
|
+ detail.setBsType("融资采购");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(item.getBusinesDate())) {
|
|
|
+ detail.setBusinesDate(sdf.format(item.getBusinesDate()));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(item.getDeliveryBusinesDate())) {
|
|
|
+ detail.setDeliveryBusinesDate(sdf.format(item.getDeliveryBusinesDate()));
|
|
|
+ }
|
|
|
+ if (1 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("待付款");
|
|
|
+ } else if (2 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("已付款");
|
|
|
+ } else if (3 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("尾款");
|
|
|
+ } else if (4 == item.getActualPaymentStatus()) {
|
|
|
+ detail.setActualPaymentStatus("已退款");
|
|
|
+ }
|
|
|
+ detail.setGoodsNum(items.getGoodsNum());
|
|
|
+ detail.setSubTotalMoney(items.getSubTotalMoney());
|
|
|
+ detail.setCostprie(items.getCostprie());
|
|
|
+ detail.setProfit(items.getGrossProfit());
|
|
|
+ detail.setReturnsNumber(items.getReturnsNumber());
|
|
|
+ detail.setReturnsAmount(items.getReturnsAmount());
|
|
|
+ detail.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum());
|
|
|
+ detail.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount());
|
|
|
+ detail.setPrimaryGoodsTotalNum(items.getPrimaryGoodsTotalNum());
|
|
|
+ detail.setPrimaryGoodsTotalMoney(items.getPrimaryGoodsTotalAmount());
|
|
|
+ detail.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
+ detail.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ detail.setReturnsStatus(item.getReturnsStatus());
|
|
|
+ if (itemsList.size() == 1 && number.compareTo(new BigDecimal(1)) <= 0) {
|
|
|
+ detail.setFreight(item.getFreight());
|
|
|
+ } else {
|
|
|
+ detail.setFreight(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
+ if ("已取消".equals(items.getStatus())) {
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ if ("TKXS".equals(item.getBsType())) {
|
|
|
+ if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
+ amount = amount.subtract(items.getSubTotalMoney().abs());
|
|
|
+ } else {
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00").subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
+ amount = new BigDecimal("0.00");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (amount.compareTo(items.getSubTotalMoney()) >= 0) {
|
|
|
+ detail.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
+ amount = amount.subtract(items.getSubTotalMoney());
|
|
|
+ } else {
|
|
|
+ detail.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
+ amount = new BigDecimal("0.00");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saleDetailDtoList.add(detail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return saleDetailDtoList;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -849,7 +974,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrder::getIsDeleted, 0)
|
|
|
.eq(PjOrder::getBsType, "XS")
|
|
|
- .apply("find_in_set(status,'已发货,已收货,已取消,已退款,售后中,退款请核')")
|
|
|
+ .apply("find_in_set(status,'已发货,已收货,已取消')")
|
|
|
.ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
|
|
|
.le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
|
|
|
.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId());
|
|
|
@@ -883,14 +1008,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<Long> ordersCorpS = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(saleDetailDto.getSalerName())) {
|
|
|
ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!ordersCorpR.isEmpty()) {
|
|
|
List<Long> finalOrdersCorpR = ordersCorpR;
|
|
|
@@ -916,10 +1041,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<PjOrderItems> itemsList = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid())).collect(Collectors.toList());
|
|
|
BigDecimal costprie = new BigDecimal("0.00");
|
|
|
for (PjOrderItems items : itemsList) {
|
|
|
- if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0){
|
|
|
+ if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0) {
|
|
|
BigDecimal returnCostprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
costprie = costprie.add(items.getCostprie().subtract(returnCostprie));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
costprie = costprie.add(items.getCostprie());
|
|
|
}
|
|
|
}
|
|
|
@@ -930,14 +1055,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<Long> ordersSalerS = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(saleDetailDto.getCustomerName())) {
|
|
|
ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId()) && e.getCustomerName().equals(saleDetailDto.getCustomerName())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId()) && e.getCustomerName().equals(saleDetailDto.getCustomerName())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!ordersSalerR.isEmpty()) {
|
|
|
List<Long> finalOrdersSalerR = ordersSalerR;
|
|
|
@@ -964,10 +1089,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<PjOrderItems> itemsList = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid())).collect(Collectors.toList());
|
|
|
BigDecimal costprie = new BigDecimal("0.00");
|
|
|
for (PjOrderItems items : itemsList) {
|
|
|
- if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0){
|
|
|
+ if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0) {
|
|
|
BigDecimal returnCostprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
costprie = costprie.add(items.getCostprie().subtract(returnCostprie));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
costprie = costprie.add(items.getCostprie());
|
|
|
}
|
|
|
}
|
|
|
@@ -991,7 +1116,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrder::getIsDeleted, 0)
|
|
|
.eq(PjOrder::getBsType, "XS")
|
|
|
- .apply("find_in_set(status,'已发货,已收货,已取消,已退款,售后中,退款请核')")
|
|
|
+ .apply("find_in_set(status,'已发货,已收货,已取消')")
|
|
|
.ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
|
|
|
.le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
|
|
|
.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId());
|
|
|
@@ -1035,14 +1160,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<Long> ordersCorpS = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(saleDetailDto.getSalerName())) {
|
|
|
ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!ordersCorpR.isEmpty()) {
|
|
|
List<Long> finalOrdersCorpR = ordersCorpR;
|
|
|
@@ -1069,10 +1194,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<PjOrderItems> itemsList = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid())).collect(Collectors.toList());
|
|
|
BigDecimal costprie = new BigDecimal("0.00");
|
|
|
for (PjOrderItems items : itemsList) {
|
|
|
- if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0){
|
|
|
+ if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0) {
|
|
|
BigDecimal returnCostprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
costprie = costprie.add(items.getCostprie().subtract(returnCostprie));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
costprie = costprie.add(items.getCostprie());
|
|
|
}
|
|
|
}
|
|
|
@@ -1083,14 +1208,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<Long> ordersSalerS = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(saleDetailDto.getCustomerName())) {
|
|
|
ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId()) && e.getCustomerName().equals(saleDetailDto.getCustomerName())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId()) && e.getCustomerName().equals(saleDetailDto.getCustomerName())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!ordersSalerR.isEmpty()) {
|
|
|
List<Long> finalOrdersSalerR = ordersSalerR;
|
|
|
@@ -1117,10 +1242,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<PjOrderItems> itemsList = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid())).collect(Collectors.toList());
|
|
|
BigDecimal costprie = new BigDecimal("0.00");
|
|
|
for (PjOrderItems items : itemsList) {
|
|
|
- if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0){
|
|
|
+ if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0) {
|
|
|
BigDecimal returnCostprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
costprie = costprie.add(items.getCostprie().subtract(returnCostprie));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
costprie = costprie.add(items.getCostprie());
|
|
|
}
|
|
|
}
|
|
|
@@ -1158,7 +1283,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrder::getIsDeleted, 0)
|
|
|
.eq(PjOrder::getBsType, "XS")
|
|
|
- .apply("find_in_set(status,'已发货,已收货,已取消,已退款,售后中,退款请核')")
|
|
|
+ .apply("find_in_set(status,'已发货,已收货,已取消')")
|
|
|
.ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
|
|
|
.le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
|
|
|
.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId());
|
|
|
@@ -1192,14 +1317,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<Long> ordersCorpS = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(saleDetailDto.getSalerName())) {
|
|
|
ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!ordersCorpR.isEmpty()) {
|
|
|
List<Long> finalOrdersCorpR = ordersCorpR;
|
|
|
@@ -1226,10 +1351,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<PjOrderItems> itemsList = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid())).collect(Collectors.toList());
|
|
|
BigDecimal costprie = new BigDecimal("0.00");
|
|
|
for (PjOrderItems items : itemsList) {
|
|
|
- if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0){
|
|
|
+ if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0) {
|
|
|
BigDecimal returnCostprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
costprie = costprie.add(items.getCostprie().subtract(returnCostprie));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
costprie = costprie.add(items.getCostprie());
|
|
|
}
|
|
|
}
|
|
|
@@ -1240,14 +1365,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<Long> ordersSalerS = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(saleDetailDto.getCustomerName())) {
|
|
|
ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId()) && e.getCustomerName().equals(saleDetailDto.getCustomerName())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId()) && e.getCustomerName().equals(saleDetailDto.getCustomerName())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
|
|
|
- && "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && "已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
|
|
|
- && !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ && !"已取消".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!ordersSalerR.isEmpty()) {
|
|
|
List<Long> finalOrdersSalerR = ordersSalerR;
|
|
|
@@ -1274,10 +1399,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
List<PjOrderItems> itemsList = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid())).collect(Collectors.toList());
|
|
|
BigDecimal costprie = new BigDecimal("0.00");
|
|
|
for (PjOrderItems items : itemsList) {
|
|
|
- if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0){
|
|
|
+ if (new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0) {
|
|
|
BigDecimal returnCostprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
costprie = costprie.add(items.getCostprie().subtract(returnCostprie));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
costprie = costprie.add(items.getCostprie());
|
|
|
}
|
|
|
}
|