|
@@ -1055,9 +1055,9 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
|
|
}
|
|
}
|
|
} else {//开票金额不为0的状态
|
|
} else {//开票金额不为0的状态
|
|
int indexFlag = 0;
|
|
int indexFlag = 0;
|
|
- int baseAccountFlag = 0;
|
|
|
|
//创建发票集合
|
|
//创建发票集合
|
|
List<String> invoiceNumber = Lists.newArrayList();
|
|
List<String> invoiceNumber = Lists.newArrayList();
|
|
|
|
+ BigDecimal allMoneyB = new BigDecimal(0);
|
|
for (CwFinanceInvoiceDTO invoiceDTO : mapList) {
|
|
for (CwFinanceInvoiceDTO invoiceDTO : mapList) {
|
|
indexFlag ++ ;
|
|
indexFlag ++ ;
|
|
//开票金额
|
|
//开票金额
|
|
@@ -1067,21 +1067,15 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
|
|
//项目开票金额
|
|
//项目开票金额
|
|
BigDecimal baseAccountB = new BigDecimal(invoiceDTO.getBaseAccount());
|
|
BigDecimal baseAccountB = new BigDecimal(invoiceDTO.getBaseAccount());
|
|
|
|
|
|
- if((baseAccountB.compareTo(accountB) < 0 && baseAccountB.compareTo(accountDetailB) < 0)) {
|
|
|
|
-
|
|
|
|
- } else if (baseAccountB.compareTo(accountB) == 0) {
|
|
|
|
- if(baseAccountFlag>0){
|
|
|
|
- invoiceDTO.setBaseAccount("0");
|
|
|
|
- }
|
|
|
|
- baseAccountFlag ++ ;
|
|
|
|
- } else if (accountB.compareTo(accountDetailB) < 0) {
|
|
|
|
- invoiceDTO.setBaseAccount(invoiceDTO.getAccount());
|
|
|
|
- } else if(accountDetailB.compareTo(accountB) < 0){
|
|
|
|
- invoiceDTO.setBaseAccount(invoiceDTO.getAccountDetail());
|
|
|
|
|
|
+ if(allMoneyB.compareTo(accountB) == 0){
|
|
|
|
+ invoiceDTO.setBaseAccount("0");
|
|
|
|
+ }else{
|
|
|
|
+ allMoneyB = allMoneyB.add(baseAccountB);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //将发票号进行汇总并转换成字符串
|
|
String invoiceNumberStr = String.join(", ", invoiceNumber);
|
|
String invoiceNumberStr = String.join(", ", invoiceNumber);
|
|
-
|
|
|
|
|
|
+ //如果 遍历行不是第一行,则需要将总开票费用填写为0 且需要判定当前行的发票号是否已经存在于发票汇总中,若存在,则表示发票金额已经录入,则不需要重复添加,给予默认值0
|
|
if(indexFlag>1){
|
|
if(indexFlag>1){
|
|
invoiceDTO.setAccount("0");
|
|
invoiceDTO.setAccount("0");
|
|
if(invoiceNumberStr.contains(invoiceDTO.getNumber())){
|
|
if(invoiceNumberStr.contains(invoiceDTO.getNumber())){
|