根据最大开票金额 拆分发票对象list 不满足最大开票金额进行合并,ID一致,超过最大开票金额拆分成新的发票对象list,ID不同
时间: 2023-08-19 14:03:53 浏览: 80
类似于上面的答案,我们可以遍历原始的List对象,然后根据最大开票金额对发票对象进行合并或拆分。下面是一个示例代码:
```java
public List<Invoice> splitInvoiceList(List<Invoice> invoiceList, int maxAmount) {
List<Invoice> result = new ArrayList<>();
int sum = 0;
List<Invoice> temp = new ArrayList<>();
int id = 1;
for (Invoice invoice : invoiceList) {
sum += invoice.getAmount();
invoice.setId(id);
temp.add(invoice);
if (sum >= maxAmount) {
result.addAll(temp);
temp.clear();
sum = 0;
id++;
}
}
if (temp.size() > 0) {
result.addAll(temp);
}
return result;
}
```
在这个示例中,我们首先遍历了原始的List对象,并根据金额属性进行累加。如果累加结果超过最大开票金额,则将当前temp列表中的发票对象添加到result列表中,并清空temp列表。同时,我们为每个发票对象设置一个ID属性,以便后续处理。如果遍历完整个List对象后,temp列表中还有发票对象,则将它们添加到result列表中。最后,我们返回result列表,其中包含了拆分后的多个发票对象列表。
请注意,这只是一个简单的示例代码,您可能需要根据实际需求进行调整。
阅读全文