diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java index 632472cbe..b2865c487 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java @@ -62,8 +62,12 @@ public interface EmisSettleSubBillMapper extends BaseMapper public Map getQueryStatInfoMap(EmisSettleSubBill emisSettleSubBill); - - + /** + * 获取不开票账单统计 + * @param emisSettleSubBill + * @return + */ + public Map getNoNeedOpenBillSum(String settleBillNo); /** * 根据客户统计月结账单 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 821bc97cb..0f0bf4f63 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 @@ -489,6 +489,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS } BigDecimal totalMoney = BigDecimal.ZERO; + // 所有开票金额 = 已开票金额+不开票金额 + BigDecimal totalAllMoney = BigDecimal.ZERO; // 获取运单已经开票记录 // 查询关联的运单表 List listRel=emisSettleInvoiceRelMapper.selectHasOpenInvoiceMapList(settleBillNo); if(!CollectionUtils.isEmpty(listRel)) { @@ -528,14 +530,42 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS newBill.setId(oldBill.getId()); newBill.setInvoicedMoney(totalMoney); - if( totalMoney.compareTo(BigDecimal.ZERO) == 0 ){ - newBill.setOpenBillStatus("0"); + // 判断是否有不开票的运单,如果有不开票的运单 + Map noNeedOpenBillMap=emisSettleSubBillMapper.getNoNeedOpenBillSum(settleBillNo); + BigDecimal totalNoNeed=BigDecimal.ZERO; + if(noNeedOpenBillMap!=null){ + totalAllMoney=totalAllMoney.add(totalMoney); + Integer totalCnt=Integer.valueOf(noNeedOpenBillMap.get("totalCnt").toString()); + if(totalCnt>0){ + totalNoNeed=BigDecimal.valueOf(Double.valueOf(noNeedOpenBillMap.get("totalNoNeed").toString()).doubleValue()); + totalAllMoney=totalAllMoney.add(totalNoNeed); + } + + }else{ + totalAllMoney=totalMoney; } - else{ - if (oldBill.getRecMoney().compareTo(totalMoney) > 0) { - newBill.setOpenBillStatus("2"); + + if(totalNoNeed.compareTo(BigDecimal.ZERO)>0){ + if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) { + newBill.setOpenBillStatus("0"); } else { - newBill.setOpenBillStatus("1"); + if (oldBill.getRecMoney().compareTo(totalAllMoney) > 0) { + newBill.setOpenBillStatus("2"); + } else { + // 已完成 + newBill.setOpenBillStatus("4"); + } + } + } + else { + if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) { + newBill.setOpenBillStatus("0"); + } else { + if (oldBill.getRecMoney().compareTo(totalAllMoney) > 0) { + newBill.setOpenBillStatus("2"); + } else { + newBill.setOpenBillStatus("1"); + } } } // 更新账单开票状态 diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml index dda183d27..96dd70b60 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml @@ -432,6 +432,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + +