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 0f0bf4f63..592a62b04 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 @@ -532,42 +532,67 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // 判断是否有不开票的运单,如果有不开票的运单 Map noNeedOpenBillMap=emisSettleSubBillMapper.getNoNeedOpenBillSum(settleBillNo); - BigDecimal totalNoNeed=BigDecimal.ZERO; + BigDecimal totalNoNeedMoney=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); + totalNoNeedMoney=BigDecimal.valueOf(Double.valueOf(noNeedOpenBillMap.get("totalNoNeed").toString()).doubleValue()); + totalAllMoney=totalAllMoney.add(totalNoNeedMoney); } }else{ totalAllMoney=totalMoney; } + /* + 未开票: 不开票金额+开票金额==0 + 已开票: 不开票金额==0 && 开票金额>=应收金额 + 不开票: 开票金额==0 && 不开票金额>=应收金额 + 已完成: 不开票金额>0 && 开票金额>0 && (开票金额+不开票金额)>=应收金额 + 部分开票: 开票金额>0 && (开票金额+不开票金额)>=应收金额 - if(totalNoNeed.compareTo(BigDecimal.ZERO)>0){ - if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) { - newBill.setOpenBillStatus("0"); - } else { - if (oldBill.getRecMoney().compareTo(totalAllMoney) > 0) { - newBill.setOpenBillStatus("2"); - } else { - // 已完成 - newBill.setOpenBillStatus("4"); - } - } + 开票金额==0: + */ + + // totalAllMoney == 0 未开票 + if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) { + newBill.setOpenBillStatus("0"); } + // totalAllMoney > 0 else { - if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) { - newBill.setOpenBillStatus("0"); - } else { - if (oldBill.getRecMoney().compareTo(totalAllMoney) > 0) { - newBill.setOpenBillStatus("2"); - } else { + // 有实开票 + if(totalMoney.compareTo(BigDecimal.ZERO) > 0) { + // 已开票 + if( totalMoney.compareTo(oldBill.getRecMoney()) >=0 ){ newBill.setOpenBillStatus("1"); } + else{ + // 有不开票 + if(totalNoNeedMoney.compareTo(BigDecimal.ZERO) > 0) { + if( totalAllMoney.compareTo(oldBill.getRecMoney()) >=0 ){ + // 已完成 + newBill.setOpenBillStatus("4"); + } + }else{ + // 部分开票 + newBill.setOpenBillStatus("2"); + } + } + } + // 无实开票 + else{ + // 不开票 + if( totalNoNeedMoney.compareTo(oldBill.getRecMoney()) >=0 ){ + newBill.setOpenBillStatus("3"); + }else{ + // 未开票 + newBill.setOpenBillStatus("0"); + } + } + } + // 更新账单开票状态 emisSettleBillMapper.updateEmisSettleBill(newBill);