|
|
@@ -21,6 +21,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.common.enums.BsTypeEnum;
|
|
|
+import org.springblade.common.enums.CommonEnum;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
@@ -31,6 +33,8 @@ import org.springblade.salesPart.entity.PjCorpsDesc;
|
|
|
import org.springblade.salesPart.entity.PjOrder;
|
|
|
import org.springblade.salesPart.entity.PjOrderItems;
|
|
|
import org.springblade.salesPart.entity.PjShip;
|
|
|
+import org.springblade.salesPart.enums.FinalMap;
|
|
|
+import org.springblade.salesPart.enums.OrderStatusEnum;
|
|
|
import org.springblade.salesPart.funding.entity.PjpfBalanceReset;
|
|
|
import org.springblade.salesPart.funding.entity.PjpfFunding;
|
|
|
import org.springblade.salesPart.funding.service.IPjpfBalanceResetService;
|
|
|
@@ -41,7 +45,9 @@ import org.springblade.salesPart.ship.service.IShipItemsService;
|
|
|
import org.springblade.salesPart.ship.service.IShipService;
|
|
|
import org.springblade.salesPart.statistics.service.IStatisticsService;
|
|
|
import org.springblade.salesPart.tireMallStatistics.service.ITireMallStatisticsService;
|
|
|
+import org.springblade.salesPart.vo.StatisticsVo;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.MathContext;
|
|
|
@@ -717,19 +723,19 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
|
|
|
- items.setGoodsNum(new BigDecimal("0.00").subtract(items.getReturnsNumber()));
|
|
|
- items.setSubTotalMoney(new BigDecimal("0.00").subtract(items.getReturnsAmount()).subtract(item.getFreight()));
|
|
|
- items.setFreight(new BigDecimal("0.00").subtract(items.getFreight()));
|
|
|
+ items.setGoodsNum(FinalMap.ZERO_POINT_ZERO.subtract(items.getReturnsNumber()));
|
|
|
+ items.setSubTotalMoney(FinalMap.ZERO_POINT_ZERO.subtract(items.getReturnsAmount()).subtract(item.getFreight()));
|
|
|
+ items.setFreight(FinalMap.ZERO_POINT_ZERO.subtract(items.getFreight()));
|
|
|
BigDecimal costprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
BigDecimal profit = items.getSubTotalMoney().abs().subtract(costprie);
|
|
|
- items.setProfit(new BigDecimal("0.00").subtract(profit));
|
|
|
- items.setCostprie(new BigDecimal("0.00").subtract(costprie));
|
|
|
+ items.setProfit(FinalMap.ZERO_POINT_ZERO.subtract(profit));
|
|
|
+ items.setCostprie(FinalMap.ZERO_POINT_ZERO.subtract(costprie));
|
|
|
if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
+ items.setBalanceAmount(FinalMap.ZERO_POINT_ZERO);
|
|
|
amount = amount.subtract(items.getSubTotalMoney().abs());
|
|
|
} else {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00").subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
- amount = new BigDecimal("0.00");
|
|
|
+ items.setBalanceAmount(FinalMap.ZERO_POINT_ZERO.subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
+ amount = FinalMap.ZERO_POINT_ZERO;
|
|
|
}
|
|
|
} else {
|
|
|
if (amount.compareTo(items.getSubTotalMoney()) >= 0) {
|
|
|
@@ -737,7 +743,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
amount = amount.subtract(items.getSubTotalMoney());
|
|
|
} else {
|
|
|
items.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
- amount = new BigDecimal("0.00");
|
|
|
+ amount = FinalMap.ZERO_POINT_ZERO;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -754,295 +760,224 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
public R saleDetailSum(SaleDetail saleDetailDto) {
|
|
|
saleDetailDto.setTenantId(AuthUtil.getTenantId());
|
|
|
saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
+ StatisticsVo statisticsVo = new StatisticsVo();
|
|
|
+ statisticsVo.valueIsZero();
|
|
|
List<SaleDetailDto> saleDetailDtoList = orderItemsService.saleDetailList(saleDetailDto);
|
|
|
- if (!saleDetailDtoList.isEmpty()) {
|
|
|
- String billNo = saleDetailDtoList.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.joining(","));
|
|
|
- List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
|
|
|
- .eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjOrder::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(ord_no,'" + billNo + "')")
|
|
|
- .ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
|
|
|
- .le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
|
|
|
- .ge(ObjectUtils.isNotNull(saleDetailDto.getDateStart()), PjOrder::getDeliveryBusinesDate, saleDetailDto.getDateStart())
|
|
|
- .le(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), PjOrder::getDeliveryBusinesDate, saleDetailDto.getDateEnd())
|
|
|
- );
|
|
|
- List<Long> pids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
|
|
|
- List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
|
|
|
- if (!pids.isEmpty()) {
|
|
|
- pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
- .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
- .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .in(PjOrderItems::getPid, pids));
|
|
|
+ if (CollectionUtils.isEmpty(saleDetailDtoList)) {
|
|
|
+ return R.data(statisticsVo);
|
|
|
+ }
|
|
|
+ List<String> billNoList = saleDetailDtoList.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.toList());
|
|
|
+ List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
|
|
|
+ .eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrder::getIsDeleted, 0)
|
|
|
+ .in(PjOrder::getOrdNo, billNoList)
|
|
|
+ .ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
|
|
|
+ .le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
|
|
|
+ .ge(ObjectUtils.isNotNull(saleDetailDto.getDateStart()), PjOrder::getDeliveryBusinesDate, saleDetailDto.getDateStart())
|
|
|
+ .le(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), PjOrder::getDeliveryBusinesDate, saleDetailDto.getDateEnd())
|
|
|
+ );
|
|
|
+ List<Long> pidList = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
|
|
|
+ List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(pidList)) {
|
|
|
+ pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
+ .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
+ .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .in(PjOrderItems::getPid, pidList));
|
|
|
+ }
|
|
|
+ for (PjOrder item : pjOrderList) {
|
|
|
+ List<SaleDetailDto> saleDetailDtoList1 = saleDetailDtoList.stream().filter(e -> e.getOrdNo().equals(item.getOrdNo())).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isEmpty(saleDetailDtoList1)) {
|
|
|
+ continue;
|
|
|
}
|
|
|
- /*for (PjOrder item : pjOrderList) {
|
|
|
- List<SaleDetailDto> saleDetailDtoList1 = saleDetailDtoList.stream()
|
|
|
- .filter(e -> e.getOrdNo().equals(item.getOrdNo())).collect(Collectors.toList());
|
|
|
- if (!saleDetailDtoList1.isEmpty()) {
|
|
|
- BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId())).map(PjOrderItems::getReturnsAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amount = item.getPaymentAmountTl().subtract(returnsAmount);
|
|
|
- amount = amount.abs();
|
|
|
- for (SaleDetailDto items : saleDetailDtoList1) {
|
|
|
- if (!pjOrderItemsList.isEmpty()) {
|
|
|
- PjOrderItems orderItems = pjOrderItemsList.stream().filter(e -> e.getId().equals(items.getItemId())).findFirst().orElse(null);
|
|
|
- if (orderItems != null) {
|
|
|
- items.setGoodsNum(orderItems.getGoodsNum());
|
|
|
- items.setPrice(orderItems.getPrice());
|
|
|
- items.setSubTotalMoney(orderItems.getGoodsNum().multiply(orderItems.getPrice()));
|
|
|
- items.setSubTotalMoney(items.getSubTotalMoney().add(item.getFreight()));
|
|
|
- if ("1".equals(saleDetailDto.getWhetherRebate())) {
|
|
|
- items.setCostprie(orderItems.getGoodsNum().multiply(orderItems.getRebatePrice()));
|
|
|
- } else {
|
|
|
- items.setCostprie(orderItems.getGoodsNum().multiply(orderItems.getCostpriePrice()));
|
|
|
- }
|
|
|
- items.setProfit(items.getSubTotalMoney().subtract(items.getCostprie()));
|
|
|
- items.setReturnsNumber(orderItems.getReturnsNumber());
|
|
|
- items.setReturnsAmount(orderItems.getReturnsAmount());
|
|
|
- items.setOutGoodsTotalShipNum(orderItems.getOutGoodsTotalShipNum());
|
|
|
- items.setOutGoodsTotalShipAmount(orderItems.getOutGoodsTotalShipAmount());
|
|
|
- items.setPrimaryGoodsTotalNum(orderItems.getPrimaryGoodsTotalNum());
|
|
|
- items.setPrimaryGoodsTotalMoney(orderItems.getPrimaryGoodsTotalAmount());
|
|
|
- }
|
|
|
- }
|
|
|
- if ("已取消".equals(items.getStatus())) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
|
|
|
- items.setGoodsNum(new BigDecimal("0.00").subtract(items.getReturnsNumber()));
|
|
|
- items.setSubTotalMoney(new BigDecimal("0.00").subtract(items.getReturnsAmount()).subtract(item.getFreight()));
|
|
|
-// items.setFreight(new BigDecimal("0.00").subtract(items.getFreight()));
|
|
|
- if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
- amount = amount.subtract(items.getSubTotalMoney().abs());
|
|
|
- } else {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00").subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
- amount = new BigDecimal("0.00");
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (amount.compareTo(items.getSubTotalMoney()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
- amount = amount.subtract(items.getSubTotalMoney());
|
|
|
- } else {
|
|
|
- items.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
- amount = new BigDecimal("0.00");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
- items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId())
|
|
|
+ && !"线下退款".equals(e.getRefundType())).map(PjOrderItems::getReturnsAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amount = item.getPaymentAmountTl().subtract(returnsAmount);
|
|
|
+ amount = amount.abs();
|
|
|
+ for (SaleDetailDto items : saleDetailDtoList1) {
|
|
|
+ PjOrderItems orderItems = pjOrderItemsList.stream().filter(e -> e.getId().equals(items.getItemId())).findFirst().orElse(null);
|
|
|
+ if (orderItems != null) {
|
|
|
+ items.setItemRemarks(orderItems.getRemarks());
|
|
|
+ items.setGoodsNum(orderItems.getGoodsNum());
|
|
|
+ items.setPrice(orderItems.getPrice());
|
|
|
+ items.setSubTotalMoney(orderItems.getGoodsNum().multiply(orderItems.getPrice()));
|
|
|
+ items.setSubTotalMoney(items.getSubTotalMoney().add(item.getFreight()));
|
|
|
+ if (CommonEnum.ONE.info.equals(saleDetailDto.getWhetherRebate())) {
|
|
|
+ items.setCostprie(orderItems.getGoodsNum().multiply(orderItems.getRebatePrice()));
|
|
|
+ } else {
|
|
|
+ items.setCostprie(orderItems.getGoodsNum().multiply(orderItems.getCostpriePrice()));
|
|
|
}
|
|
|
+ items.setProfit(items.getSubTotalMoney().subtract(items.getCostprie()));
|
|
|
+ items.setReturnsNumber(orderItems.getReturnsNumber());
|
|
|
+ items.setReturnsAmount(orderItems.getReturnsAmount());
|
|
|
+ items.setOutGoodsTotalShipNum(orderItems.getOutGoodsTotalShipNum());
|
|
|
+ items.setOutGoodsTotalShipAmount(orderItems.getOutGoodsTotalShipAmount());
|
|
|
+ items.setPrimaryGoodsTotalNum(orderItems.getPrimaryGoodsTotalNum());
|
|
|
+ items.setPrimaryGoodsTotalMoney(orderItems.getPrimaryGoodsTotalAmount());
|
|
|
+ items.setCostpriePrice(orderItems.getCostpriePrice());
|
|
|
}
|
|
|
- }*/
|
|
|
- for (PjOrder item : pjOrderList) {
|
|
|
- List<SaleDetailDto> saleDetailDtoList1 = saleDetailDtoList.stream()
|
|
|
- .filter(e -> e.getOrdNo().equals(item.getOrdNo())).collect(Collectors.toList());
|
|
|
- if (!saleDetailDtoList1.isEmpty()) {
|
|
|
- BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId())
|
|
|
- && !"线下退款".equals(e.getRefundType())).map(PjOrderItems::getReturnsAmount)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amount = item.getPaymentAmountTl().subtract(returnsAmount);
|
|
|
- amount = amount.abs();
|
|
|
- for (SaleDetailDto items : saleDetailDtoList1) {
|
|
|
- items.setRemarks(item.getRemarks());
|
|
|
- if (!pjOrderItemsList.isEmpty()) {
|
|
|
- PjOrderItems orderItems = pjOrderItemsList.stream().filter(e -> e.getId().equals(items.getItemId())).findFirst().orElse(null);
|
|
|
- if (orderItems != null) {
|
|
|
- items.setItemRemarks(orderItems.getRemarks());
|
|
|
- items.setGoodsNum(orderItems.getGoodsNum());
|
|
|
- items.setPrice(orderItems.getPrice());
|
|
|
- items.setSubTotalMoney(orderItems.getGoodsNum().multiply(orderItems.getPrice()));
|
|
|
- items.setSubTotalMoney(items.getSubTotalMoney().add(item.getFreight()));
|
|
|
- if ("1".equals(saleDetailDto.getWhetherRebate())) {
|
|
|
- items.setCostprie(orderItems.getGoodsNum().multiply(orderItems.getRebatePrice()));
|
|
|
- } else {
|
|
|
- items.setCostprie(orderItems.getGoodsNum().multiply(orderItems.getCostpriePrice()));
|
|
|
- }
|
|
|
- items.setProfit(items.getSubTotalMoney().subtract(items.getCostprie()));
|
|
|
- items.setReturnsNumber(orderItems.getReturnsNumber());
|
|
|
- items.setReturnsAmount(orderItems.getReturnsAmount());
|
|
|
- items.setOutGoodsTotalShipNum(orderItems.getOutGoodsTotalShipNum());
|
|
|
- items.setOutGoodsTotalShipAmount(orderItems.getOutGoodsTotalShipAmount());
|
|
|
- items.setPrimaryGoodsTotalNum(orderItems.getPrimaryGoodsTotalNum());
|
|
|
- items.setPrimaryGoodsTotalMoney(orderItems.getPrimaryGoodsTotalAmount());
|
|
|
- items.setCostpriePrice(orderItems.getCostpriePrice());
|
|
|
- }
|
|
|
- }
|
|
|
- if ("已取消".equals(items.getStatus())) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
-// items.setGoodsNum(new BigDecimal("0.00"));
|
|
|
-// items.setProfit(new BigDecimal("0.00"));
|
|
|
-// items.setSubTotalMoney(new BigDecimal("0.00"));
|
|
|
-// items.setFreight(new BigDecimal("0.00"));
|
|
|
-// items.setCostprie(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
|
|
|
- if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
- amount = amount.subtract(items.getSubTotalMoney().abs());
|
|
|
- } else {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00").subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
- amount = new BigDecimal("0.00");
|
|
|
- }
|
|
|
- items.setGoodsNum(new BigDecimal("0.00").subtract(items.getReturnsNumber()));
|
|
|
- items.setSubTotalMoney(new BigDecimal("0.00").subtract(items.getReturnsAmount()).subtract(item.getFreight()));
|
|
|
- items.setFreight(new BigDecimal("0.00").subtract(items.getFreight()));
|
|
|
- BigDecimal costprie = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
- BigDecimal profit = items.getSubTotalMoney().abs().subtract(costprie);
|
|
|
- items.setProfit(new BigDecimal("0.00").subtract(profit));
|
|
|
- items.setCostprie(new BigDecimal("0.00").subtract(costprie));
|
|
|
- } else {
|
|
|
- if (amount.compareTo(items.getSubTotalMoney()) >= 0) {
|
|
|
- items.setBalanceAmount(new BigDecimal("0.00"));
|
|
|
- amount = amount.subtract(items.getSubTotalMoney());
|
|
|
- } else {
|
|
|
- items.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
- amount = new BigDecimal("0.00");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
- items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ if (OrderStatusEnum.CANCELLED.value.equals(items.getStatus())) {
|
|
|
+ // 已取消的
|
|
|
+ items.setBalanceAmount(FinalMap.ZERO_POINT_ZERO);
|
|
|
+ items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
+ items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (BsTypeEnum.REFUND_SALE.info.equals(item.getBsType()) || BsTypeEnum.REFUND_PROCUREMENT.info.equals(item.getBsType())) {
|
|
|
+ if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
|
|
|
+ items.setBalanceAmount(FinalMap.ZERO_POINT_ZERO);
|
|
|
+ amount = amount.subtract(items.getSubTotalMoney().abs());
|
|
|
+ } else {
|
|
|
+ items.setBalanceAmount(FinalMap.ZERO_POINT_ZERO.subtract(items.getSubTotalMoney().abs().subtract(amount)));
|
|
|
+ amount = FinalMap.ZERO_POINT_ZERO;
|
|
|
}
|
|
|
+ items.setGoodsNum(FinalMap.ZERO_POINT_ZERO.subtract(items.getReturnsNumber()));
|
|
|
+ items.setSubTotalMoney(FinalMap.ZERO_POINT_ZERO.subtract(items.getReturnsAmount()).subtract(item.getFreight()));
|
|
|
+ items.setFreight(FinalMap.ZERO_POINT_ZERO.subtract(items.getFreight()));
|
|
|
+ BigDecimal costPrice = items.getReturnsNumber().multiply(items.getCostpriePrice());
|
|
|
+ BigDecimal profit = items.getSubTotalMoney().abs().subtract(costPrice);
|
|
|
+ items.setProfit(FinalMap.ZERO_POINT_ZERO.subtract(profit));
|
|
|
+ items.setCostprie(FinalMap.ZERO_POINT_ZERO.subtract(costPrice));
|
|
|
+ items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
|
|
|
+ items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
|
|
|
+ continue;
|
|
|
}
|
|
|
+ if (amount.compareTo(items.getSubTotalMoney()) >= 0) {
|
|
|
+ items.setBalanceAmount(FinalMap.ZERO_POINT_ZERO);
|
|
|
+ amount = amount.subtract(items.getSubTotalMoney());
|
|
|
+ } else {
|
|
|
+ items.setBalanceAmount(items.getSubTotalMoney().subtract(amount));
|
|
|
+ amount = FinalMap.ZERO_POINT_ZERO;
|
|
|
+ }
|
|
|
+ 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).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal subTotalMoneyCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal costprieCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal profitCancel = saleDetailDtoList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal freightCancel = pjOrderList.stream().filter(e -> "已取消".equals(e.getStatus()))
|
|
|
- .map(PjOrder::getFreight).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
- BigDecimal freight = pjOrderList.stream().filter(e -> !"已取消".equals(e.getStatus()) && !"已完成".equals(e.getStatus()))
|
|
|
- .map(PjOrder::getFreight).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).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).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ }
|
|
|
+ // 已取消的数量
|
|
|
+ BigDecimal goodsNumCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 已取消的金额
|
|
|
+ BigDecimal subTotalMoneyCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 已取消的成本金额
|
|
|
+ BigDecimal costprieCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 已取消的毛利
|
|
|
+ BigDecimal profitCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 已取消的运费
|
|
|
+ BigDecimal freightCancel = pjOrderList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
+ .map(PjOrder::getFreight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
|
- BigDecimal freightReturns = pjOrderList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(PjOrder::getFreight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal goodsNumReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal subTotalMoneyReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal costprieReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
- BigDecimal profitReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
- .map(SaleDetailDto::getProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
- .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 实际数量
|
|
|
+ BigDecimal goodsNumActual = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 实际金额
|
|
|
+ BigDecimal subTotalMoneyActual = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 实际成本金额
|
|
|
+ BigDecimal costprieActual = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 剩余数量
|
|
|
+ BigDecimal profitActual = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 运费
|
|
|
+ BigDecimal freight = pjOrderList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(PjOrder::getFreight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 已发货数量
|
|
|
+ BigDecimal outGoodsTotalShipNum = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getOutGoodsTotalShipNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 已发货金额
|
|
|
+ BigDecimal outGoodsTotalShipAmount = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getOutGoodsTotalShipAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 订单数量
|
|
|
+ BigDecimal primaryGoodsTotalNum = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getPrimaryGoodsTotalNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 订单金额
|
|
|
+ BigDecimal primaryGoodsTotalMoney = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getPrimaryGoodsTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 剩余数量
|
|
|
+ BigDecimal surplusNum = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getSurplusNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 剩余金额
|
|
|
+ BigDecimal surplusAmount = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getSurplusAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP);
|
|
|
+ // 退货运费
|
|
|
+ BigDecimal freightReturns = pjOrderList.stream().filter(e -> OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(PjOrder::getFreight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 退货数量
|
|
|
+ BigDecimal goodsNumReturns = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 退货金额
|
|
|
+ BigDecimal subTotalMoneyReturns = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 退货成本金额
|
|
|
+ BigDecimal costprieReturns = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
+ // 退货毛利金额
|
|
|
+ BigDecimal profitReturns = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.COMPLETED.value.equals(e.getStatus()))
|
|
|
+ .map(SaleDetailDto::getProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
|
- 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", new BigDecimal("0"));
|
|
|
- map.put("freightCancellation", 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.abs());
|
|
|
- map.put("freightCancellation", "0");
|
|
|
- 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().add(freightCancel));
|
|
|
- map.put("freightCancellation", 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", 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", "0");
|
|
|
- map.put("amount", "0.00");
|
|
|
- map.put("costprie", "0.00");
|
|
|
- map.put("profit", "0.00");
|
|
|
- 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("freightCancellation", "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");
|
|
|
+ if (BsTypeEnum.REFUND_SALE.info.equals(saleDetailDto.getBsType()) || BsTypeEnum.REFUND_PROCUREMENT.info.equals(saleDetailDto.getBsType())) {
|
|
|
+ statisticsVo.setFreightCancellation(freightCancel.add(freightReturns));
|
|
|
+ statisticsVo.setGoodsSumCancellation(goodsNumCancel.add(goodsNumReturns));
|
|
|
+ statisticsVo.setAmountCancellation(subTotalMoneyCancel.add(subTotalMoneyReturns));
|
|
|
+ statisticsVo.setCostPriceCancellation(costprieCancel.add(costprieReturns));
|
|
|
+ statisticsVo.setProfitCancellation(profitCancel.add(profitReturns));
|
|
|
+ return R.data(statisticsVo);
|
|
|
}
|
|
|
- return R.data(map);
|
|
|
+ if (BsTypeEnum.SALE.info.equals(saleDetailDto.getBsType()) || BsTypeEnum.PROCUREMENT.info.equals(saleDetailDto.getBsType()) || BsTypeEnum.FINANCING_PROCUREMENT.info.equals(saleDetailDto.getBsType())) {
|
|
|
+ statisticsVo.setGoodsSum(goodsNumActual);
|
|
|
+ statisticsVo.setAmount(subTotalMoneyActual);
|
|
|
+ statisticsVo.setCostPrice(costprieActual);
|
|
|
+ statisticsVo.setProfit(profitActual);
|
|
|
+ statisticsVo.setFreight(freight.abs());
|
|
|
+ statisticsVo.setOutGoodsTotalShipNum(outGoodsTotalShipNum);
|
|
|
+ statisticsVo.setOutGoodsTotalShipAmount(outGoodsTotalShipAmount);
|
|
|
+ statisticsVo.setPrimaryGoodsTotalNum(primaryGoodsTotalNum);
|
|
|
+ statisticsVo.setPrimaryGoodsTotalMoney(primaryGoodsTotalMoney);
|
|
|
+ statisticsVo.setSurplusNum(surplusNum);
|
|
|
+ statisticsVo.setSurplusAmount(surplusAmount);
|
|
|
+ return R.data(statisticsVo);
|
|
|
+ }
|
|
|
+ statisticsVo.setGoodsSum(goodsNumActual.abs().add(goodsNumCancel));
|
|
|
+ statisticsVo.setAmount(subTotalMoneyActual.abs().add(subTotalMoneyCancel));
|
|
|
+ statisticsVo.setCostPrice(costprieActual.abs().add(costprieCancel));
|
|
|
+ statisticsVo.setProfit(profitActual.abs().add(profitCancel));
|
|
|
+ statisticsVo.setFreight(freight.abs().add(freightCancel));
|
|
|
+ statisticsVo.setFreightCancellation(freightCancel.add(freightReturns));
|
|
|
+ statisticsVo.setGoodsSumCancellation(goodsNumCancel.add(goodsNumReturns));
|
|
|
+ statisticsVo.setAmountCancellation(subTotalMoneyCancel.add(subTotalMoneyReturns));
|
|
|
+ statisticsVo.setCostPriceCancellation(costprieCancel.add(costprieReturns));
|
|
|
+ statisticsVo.setProfitCancellation(profitCancel.add(profitReturns));
|
|
|
+ statisticsVo.setOutGoodsTotalShipNum(outGoodsTotalShipNum);
|
|
|
+ statisticsVo.setOutGoodsTotalShipAmount(outGoodsTotalShipAmount);
|
|
|
+ statisticsVo.setPrimaryGoodsTotalNum(primaryGoodsTotalNum);
|
|
|
+ statisticsVo.setPrimaryGoodsTotalMoney(primaryGoodsTotalMoney);
|
|
|
+ statisticsVo.setSurplusNum(surplusNum);
|
|
|
+ statisticsVo.setSurplusAmount(surplusAmount);
|
|
|
+ return R.data(statisticsVo);
|
|
|
}
|
|
|
|
|
|
@Override
|