Merge branch 'feature-invoice-export' into dev

This commit is contained in:
Lemon
2026-07-21 13:49:19 +08:00
5 changed files with 240 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import com.jsowell.pile.domain.OrderInvoiceRecord;
import com.jsowell.pile.dto.GetInvoiceInfoDTO;
import com.jsowell.pile.dto.QueryInvoiceRecordDTO;
import com.jsowell.pile.vo.web.InvoiceRecordVO;
import com.jsowell.pile.vo.web.OrderInvoiceExportVO;
import com.jsowell.pile.vo.web.OrderInvoiceRecordVO;
import java.time.LocalDateTime;
@@ -26,6 +27,8 @@ public interface OrderInvoiceRecordService {
InvoiceRecordVO selectInvoiceTitleVO(Integer id);
List<OrderInvoiceExportVO> selectInvoiceExportList(Integer[] ids);
/**
* 查询申请开票列表
*

View File

@@ -13,6 +13,8 @@ import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.uniapp.customer.InvoiceTitleVO;
import com.jsowell.pile.vo.web.InvoiceRecordVO;
import com.jsowell.pile.vo.web.OrderInvoiceExportVO;
import com.jsowell.pile.vo.web.OrderInvoiceOrderExportVO;
import com.jsowell.pile.vo.web.OrderInvoiceRecordVO;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,7 +22,11 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 申请开票Service业务层处理
@@ -76,6 +82,82 @@ public class OrderInvoiceRecordServiceImpl implements OrderInvoiceRecordService
.build();
}
@Override
public List<OrderInvoiceExportVO> selectInvoiceExportList(Integer[] ids) {
if (ids == null || ids.length == 0) {
return Collections.emptyList();
}
return Arrays.stream(ids)
.filter(Objects::nonNull)
.distinct()
.map(this::selectInvoiceTitleVO)
.filter(Objects::nonNull)
.map(this::buildOrderInvoiceExportVO)
.collect(Collectors.toList());
}
private OrderInvoiceExportVO buildOrderInvoiceExportVO(InvoiceRecordVO invoiceRecordVO) {
InvoiceTitleVO invoiceTitle = invoiceRecordVO.getInvoiceTitle();
return OrderInvoiceExportVO.builder()
.id(invoiceRecordVO.getId())
.memberId(invoiceRecordVO.getMemberId())
.phoneNumber(invoiceRecordVO.getPhoneNumber())
.status(invoiceRecordVO.getStatus())
.createTime(invoiceRecordVO.getCreateTime())
.updateTime(invoiceRecordVO.getUpdateTime())
.titleId(invoiceTitle == null ? null : invoiceTitle.getTitleId())
.titleName(invoiceTitle == null ? null : invoiceTitle.getTitleName())
.titleType(invoiceTitle == null ? null : invoiceTitle.getTitleType())
.taxId(invoiceTitle == null ? null : invoiceTitle.getTaxId())
.unitAddress(invoiceTitle == null ? null : invoiceTitle.getUnitAddress())
.email(invoiceTitle == null ? null : invoiceTitle.getEmail())
.reception(invoiceTitle == null ? null : invoiceTitle.getReception())
.titlePhoneNumber(invoiceTitle == null ? null : invoiceTitle.getPhoneNumber())
.bankName(invoiceTitle == null ? null : invoiceTitle.getBankName())
.bankAccountNumber(invoiceTitle == null ? null : invoiceTitle.getBankAccountNumber())
.defaultFlag(invoiceTitle == null ? null : invoiceTitle.getDefaultFlag())
.orderList(buildOrderExportList(invoiceRecordVO.getOrderList()))
.build();
}
private List<OrderInvoiceOrderExportVO> buildOrderExportList(List<OrderAmountDetailVO> orderList) {
if (CollectionUtils.isEmpty(orderList)) {
List<OrderInvoiceOrderExportVO> emptyOrderList = new ArrayList<>();
emptyOrderList.add(new OrderInvoiceOrderExportVO());
return emptyOrderList;
}
List<OrderInvoiceOrderExportVO> exportList = orderList.stream()
.filter(Objects::nonNull)
.map(this::buildOrderInvoiceOrderExportVO)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(exportList)) {
exportList.add(new OrderInvoiceOrderExportVO());
}
return exportList;
}
private OrderInvoiceOrderExportVO buildOrderInvoiceOrderExportVO(OrderAmountDetailVO orderAmountDetailVO) {
return OrderInvoiceOrderExportVO.builder()
.orderCode(orderAmountDetailVO.getOrderCode())
.totalUsedElectricity(orderAmountDetailVO.getTotalUsedElectricity())
.totalOrderAmount(orderAmountDetailVO.getTotalOrderAmount())
.totalElectricityAmount(orderAmountDetailVO.getTotalElectricityAmount())
.totalServiceAmount(orderAmountDetailVO.getTotalServiceAmount())
.sharpUsedElectricity(orderAmountDetailVO.getSharpUsedElectricity())
.sharpElectricityPrice(orderAmountDetailVO.getSharpElectricityPrice())
.sharpServicePrice(orderAmountDetailVO.getSharpServicePrice())
.peakUsedElectricity(orderAmountDetailVO.getPeakUsedElectricity())
.peakElectricityPrice(orderAmountDetailVO.getPeakElectricityPrice())
.peakServicePrice(orderAmountDetailVO.getPeakServicePrice())
.flatUsedElectricity(orderAmountDetailVO.getFlatUsedElectricity())
.flatElectricityPrice(orderAmountDetailVO.getFlatElectricityPrice())
.flatServicePrice(orderAmountDetailVO.getFlatServicePrice())
.valleyUsedElectricity(orderAmountDetailVO.getValleyUsedElectricity())
.valleyElectricityPrice(orderAmountDetailVO.getValleyElectricityPrice())
.valleyServicePrice(orderAmountDetailVO.getValleyServicePrice())
.build();
}
/**
* 查询申请开票列表
*