diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java index 9637934a0..cfbd8e981 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java @@ -613,6 +613,11 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS } } + // 已开票总金额 + BigDecimal hasOpenBillSumMoney=BigDecimal.ZERO; + // 不开票总金额 + BigDecimal noOpenBillSumMoney=BigDecimal.ZERO; + // 获取账单运单列表,重新计算每一单的开票状态 List 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; } diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml index 0b2358c6c..15eb7eab4 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml @@ -438,7 +438,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"