diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleSubBill.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleSubBill.java index 84e4e5291..81d4b9a39 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleSubBill.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleSubBill.java @@ -100,7 +100,7 @@ public class EmisSettleSubBill extends BaseEntity private String deductionReason; /* 其他原因 */ private String otherReason; - /* 开票状态 0-未开票 1-已开票 2-部分开票 3-不开票 */ + /* 开票状态 0-未开票 1-已开票 2-部分开票 3-不开票 4-开票完成 */ private String openBillStatus; /* 付款状态 0-未付款 1-已付款 2-部分付款 */ private String paymentStatus; 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 2e3cd4a3a..2a0de1a23 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 @@ -494,15 +494,22 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // 获取运单已经开票记录 // 查询关联的运单表 List listRel=emisSettleInvoiceRelMapper.selectHasOpenInvoiceMapList(settleBillNo); if(!CollectionUtils.isEmpty(listRel)) { - for(Map item:listRel){ - String billNo= MapUtils.getString(item,"billNo",null); - if(org.apache.commons.lang3.StringUtils.isEmpty(billNo)){ - continue; + Map hasOpenBillMap = new HashMap(); + // 已收款金额list转map + for (Map mapItem:listRel) { + String billNo= MapUtils.getString(mapItem,"billNo",null); + BigDecimal sumMoney = BigDecimal.valueOf(Double.valueOf(mapItem.get("sumMoney").toString())); + hasOpenBillMap.put(billNo,sumMoney); + } + + // 获取账单运单列表,重新计算每一单的开票状态 + List subBillList=emisSettleSubBillMapper.selectSubBillListBySettleBillNo(settleBillNo); + for (EmisSettleSubBill subBill:subBillList) { + BigDecimal sumMoney=BigDecimal.ZERO; + if(hasOpenBillMap.containsKey(subBill.getBillNo())){ + sumMoney=hasOpenBillMap.get(subBill.getBillNo()); } - EmisSettleSubBill subBill = emisSettleSubBillMapper.selectSettleSubBillBySubBillNo(billNo); - BigDecimal sumMoney = BigDecimal.valueOf(Double.valueOf(item.get("sumMoney").toString())); - totalMoney = totalMoney.add(sumMoney); EmisSettleSubBill updEmisSettleSubBill=new EmisSettleSubBill(); updEmisSettleSubBill.setBillCode(subBill.getBillCode());