This commit is contained in:
linfso 2025-05-07 10:34:18 +08:00
parent 73e9c67b88
commit 88c33e4e8d
2 changed files with 15 additions and 8 deletions

View File

@ -613,6 +613,11 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
}
}
// 已开票总金额
BigDecimal hasOpenBillSumMoney=BigDecimal.ZERO;
// 不开票总金额
BigDecimal noOpenBillSumMoney=BigDecimal.ZERO;
// 获取账单运单列表,重新计算每一单的开票状态
List<EmisSettleSubBill> subBillList=emisSettleSubBillMapper.selectSubBillListBySettleBillNo(settleBillNo);
for (EmisSettleSubBill subBill:subBillList) {
@ -621,6 +626,9 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
sumMoney=hasOpenBillMap.get(subBill.getBillNo());
}
// 已开票总金额累加
hasOpenBillSumMoney=hasOpenBillSumMoney.add(sumMoney);
EmisSettleSubBill updEmisSettleSubBill=new EmisSettleSubBill();
updEmisSettleSubBill.setBillCode(subBill.getBillCode());
updEmisSettleSubBill.setInvoicedMoney(sumMoney);
@ -644,7 +652,6 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
// 更新每一单的开票状态
emisSettleSubBillMapper.updateOpenBillStatus(updEmisSettleSubBill);
}else{
// 如果开票金额大于等于账单金额
if (sumMoney.compareTo(subBill.getBillFee()) >= 0) {
@ -652,6 +659,10 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
updEmisSettleSubBill.setOpenBillStatus("1");
// 更新每一单的开票状态
emisSettleSubBillMapper.updateOpenBillStatus(updEmisSettleSubBill);
}else{
// 不开票或开票完成金额累加
noOpenBillSumMoney=noOpenBillSumMoney.add(subBill.getBillFee().subtract(sumMoney));
}
}
@ -676,13 +687,9 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
Map noNeedOpenBillMap=emisSettleSubBillMapper.getNoNeedOpenBillSum(settleBillNo);
BigDecimal totalNoNeedMoney=BigDecimal.ZERO;
if(noNeedOpenBillMap!=null){
totalNoNeedMoney=new BigDecimal(noNeedOpenBillMap.get("totalNoNeed").toString());
totalAllMoney=totalAllMoney.add(totalMoney);
Integer totalCnt=Integer.valueOf(noNeedOpenBillMap.get("totalCnt").toString());
if(totalCnt>0){
totalNoNeedMoney=BigDecimal.valueOf(Double.valueOf(noNeedOpenBillMap.get("totalNoNeed").toString()).doubleValue());
totalAllMoney=totalAllMoney.add(totalNoNeedMoney);
}
totalAllMoney=totalAllMoney.add(totalNoNeedMoney);
}else{
totalAllMoney=totalMoney;
}

View File

@ -438,7 +438,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getNoNeedOpenBillSum" parameterType="String" resultType="map">
select
round(sum(bill_fee-invoiced_money),2) as totalNoNeed,count(1) as totalCnt
IFNULL(round(sum(bill_fee-invoiced_money),2),0) as totalNoNeed,count(1) as totalCnt
from emis_settle_sub_bill
where del_flag='0' and open_bill_status in('3','4') and `settle_bill_no`=#{settleBillNo}
</select>