@Service public class InvoiceLimitProcessPlugin extends Object implements DataProcessPlugin
| Constructor and Description |
|---|
InvoiceLimitProcessPlugin() |
| Modifier and Type | Method and Description |
|---|---|
protected List<List<BillItem>> |
minInvoice(List<BillItem> processItems,
SplitGroupLimit splitGroupLimit) |
List<ItemGroup> |
processData(List<ItemGroup> itemGroups,
BillInfo billInfo,
RuleInfo rule)
处理数据
|
protected List<BillItem> |
splitByAmountAndLineLimit(List<BillItem> billItems,
SplitGroupLimit splitGroupLimit)
1.迭代billItems
2.从billItems中选第一个元素a
3 判断是否为差额征税
4.如果是,splitGroup.add(a),billItems remove a,结束
5.如果不是,计算billItems加上a之后是否满足行数和限额要求以及税额误差不超过1.27
6.如果满足,splitGroup.add(a),billItems remove a,回到第一步。
7.如果不满足,判断是否为顺序优先,不是:【回到第2步】,是:【迭代结束】。
8.迭代结束。
|
public List<ItemGroup> processData(List<ItemGroup> itemGroups, BillInfo billInfo, RuleInfo rule)
DataProcessPluginprocessData in interface DataProcessPluginprotected List<List<BillItem>> minInvoice(List<BillItem> processItems, SplitGroupLimit splitGroupLimit)
protected List<BillItem> splitByAmountAndLineLimit(List<BillItem> billItems, SplitGroupLimit splitGroupLimit)
billItems - 待分组单据明细列表Copyright © 2020. All rights reserved.