Commit 2650ee09 authored by zhangfeng's avatar zhangfeng

feat(wealth): 优化

parent c5e5fa06
......@@ -3,12 +3,14 @@ package cn.iocoder.yudao.module.order.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Objects;
@Data
@ApiModel("费用分组dto")
@NoArgsConstructor
public class FeeGroupDto {
@ApiModelProperty("金额")
......@@ -34,4 +36,10 @@ public class FeeGroupDto {
public void addAmount(BigDecimal amount) {
this.amount = this.amount.add(amount);
}
public FeeGroupDto(BigDecimal amount, Long currencyId, String currencyName) {
this.amount = amount;
this.currencyId = currencyId;
this.currencyName = currencyName;
}
}
......@@ -3885,34 +3885,25 @@ public class OrderQueryServiceImpl implements OrderQueryService {
int startIndex = Math.max(0, (page.getPage() - 1) * page.getRows());
int endIndex = Math.min(startIndex + page.getRows(), records.size());
List<OrderCostSummaryDto> resultList = totalList.subList(startIndex, endIndex);
ContainerReportOrderPageResult<OrderCostSummaryDto> pageResult = new ContainerReportOrderPageResult(resultList, records.size(), page.getRows(), (long) page.getPage(), records.size() / page.getRows() + 1);
ContainerReportOrderPageResult<OrderCostSummaryDto> pageResult = new ContainerReportOrderPageResult<>(resultList, records.size(), page.getRows(), (long) page.getPage(), records.size() / page.getRows() + 1);
// 汇总全部
totalList.stream().forEach(orderCostSummaryDto -> {
boolean isInPage = resultList.contains(orderCostSummaryDto);
updateContainerReportFeeGroupList(pageResult.getReceivableTotalFeeGroupDtoList(), pageResult.getPageReceivableTotalFeeGroupDtoList(), isInPage, orderCostSummaryDto.getReceivableTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getDiscountTotalFeeGroupDtoList(), pageResult.getPageDiscountTotalFeeGroupDtoList(), isInPage, orderCostSummaryDto.getDiscountTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getNetReceiptsTotalFeeGroupDtoList(), pageResult.getPageNetReceiptsTotalFeeGroupDtoList(), isInPage, orderCostSummaryDto.getNetReceiptsTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getWriteOffTotalFeeGroupDtoList(), pageResult.getPageWriteOffTotalFeeGroupDtoList(), isInPage, orderCostSummaryDto.getWriteOffTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getNotWriteOffTotalFeeGroupDtoList(), pageResult.getPageNotWriteOffTotalFeeGroupDtoList(), isInPage, orderCostSummaryDto.getNotWriteOffTotalFeeGroupDtoList());
});
for (OrderCostSummaryDto orderCostSummaryDto : totalList) {
updateContainerReportFeeGroupList(pageResult.getReceivableTotalFeeGroupDtoList(), orderCostSummaryDto.getReceivableTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getDiscountTotalFeeGroupDtoList(), orderCostSummaryDto.getDiscountTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getNetReceiptsTotalFeeGroupDtoList(), orderCostSummaryDto.getNetReceiptsTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getWriteOffTotalFeeGroupDtoList(), orderCostSummaryDto.getWriteOffTotalFeeGroupDtoList());
updateContainerReportFeeGroupList(pageResult.getNotWriteOffTotalFeeGroupDtoList(), orderCostSummaryDto.getNotWriteOffTotalFeeGroupDtoList());
}
return pageResult;
}
private void updateContainerReportFeeGroupList(List<FeeGroupDto> totalList, List<FeeGroupDto> pageList, boolean isInPage, List<FeeGroupDto> feeGroupDtoList) {
private void updateContainerReportFeeGroupList(List<FeeGroupDto> totalList, List<FeeGroupDto> feeGroupDtoList) {
for (FeeGroupDto feeGroupDto : feeGroupDtoList) {
int index = totalList.indexOf(feeGroupDto);
if (index > -1) {
totalList.get(index).addAmount(feeGroupDto.getAmount());
} else {
totalList.add(feeGroupDto);
}
if (isInPage) {
int indexPage = pageList.indexOf(feeGroupDto);
if (indexPage > -1) {
pageList.get(indexPage).addAmount(feeGroupDto.getAmount());
} else {
pageList.add(feeGroupDto);
}
totalList.add(new FeeGroupDto(feeGroupDto.getAmount(), feeGroupDto.getCurrencyId(), feeGroupDto.getCurrencyName()));
}
}
}
......
package cn.iocoder.yudao.module.order.vo.order;
import cn.iocoder.yudao.module.order.dto.FeeGroupDto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiModel;
......@@ -47,21 +45,6 @@ public final class ContainerReportOrderPageResult<T> implements Serializable {
@ApiModelProperty(value = "未收总金额货币分组列表")
private List<FeeGroupDto> notWriteOffTotalFeeGroupDtoList = new ArrayList<>();
@ApiModelProperty(value = "当页应收总金额货币分组列表")
private List<FeeGroupDto> pageReceivableTotalFeeGroupDtoList = new ArrayList<>();
@ApiModelProperty(value = "当页优惠总金额货币分组列表")
private List<FeeGroupDto> pageDiscountTotalFeeGroupDtoList = new ArrayList<>();
@ApiModelProperty(value = "当页实收总金额货币分组列表")
private List<FeeGroupDto> pageNetReceiptsTotalFeeGroupDtoList = new ArrayList<>();
@ApiModelProperty(value = "当页已收总金额货币分组列表")
private List<FeeGroupDto> pageWriteOffTotalFeeGroupDtoList = new ArrayList<>();
@ApiModelProperty(value = "当页未收总金额货币分组列表")
private List<FeeGroupDto> pageNotWriteOffTotalFeeGroupDtoList = new ArrayList<>();
public ContainerReportOrderPageResult() {
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment