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 6baf8f208..2c911ef71 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 @@ -125,6 +125,8 @@ public interface EmisSettleSubBillMapper extends BaseMapper public int updatePayedStatus(EmisSettleSubBill emisSettleSubBill); + public int updateOpenBillStatus(EmisSettleSubBill emisSettleSubBill); + /** * 删除 * 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 6c6dc1c19..fad869333 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 @@ -472,6 +472,7 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS * @param settleBillNo * @return */ + @Transactional @Override public int reCalcSettleBillInvoiceStatus(String settleBillNo){ @@ -487,8 +488,33 @@ 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; + } + 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()); + updEmisSettleSubBill.setInvoicedMoney(sumMoney); + + if(sumMoney.compareTo(BigDecimal.ZERO)>0) { + if (sumMoney.compareTo(subBill.getBillFee()) >= 0) { + updEmisSettleSubBill.setOpenBillStatus("1"); + }else { + updEmisSettleSubBill.setOpenBillStatus("2"); + } + } + else{ + updEmisSettleSubBill.setOpenBillStatus("0"); + } + + // 更新每一单的开票状态 + emisSettleSubBillMapper.updateOpenBillStatus(updEmisSettleSubBill); + } } @@ -497,17 +523,19 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS EmisSettleBill newBill = new EmisSettleBill(); newBill.setId(oldBill.getId()); + newBill.setInvoicedMoney(totalMoney); - if(BigDecimal.ZERO.compareTo(totalMoney)==0){ - newBill.setOpenBillStatus("0"); - }else { + if(totalMoney.compareTo(BigDecimal.ZERO)>0) { if (oldBill.getRecMoney().compareTo(totalMoney) > 0) { newBill.setOpenBillStatus("2"); } else { newBill.setOpenBillStatus("1"); } + }else{ + newBill.setOpenBillStatus("0"); } + // 更新账单开票状态 emisSettleBillMapper.updateEmisSettleBill(newBill); @@ -620,16 +648,21 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS EmisWaybill emisWaybill = new EmisWaybill(); emisWaybill.setBillCode(subBill.getBillCode()); - if(totalMoney.compareTo(subBill.getBillFee())>=0) { - emisWaybill.setPaymentStatus("1"); + if(sumMoney.compareTo(subBill.getBillFee())>0) { + if (totalMoney.compareTo(subBill.getBillFee()) >= 0) { + emisWaybill.setPaymentStatus("1"); + } else { + emisWaybill.setPaymentStatus("2"); + } }else{ - emisWaybill.setPaymentStatus("2"); + emisWaybill.setPaymentStatus("0"); } emisWaybillMapper.updatePayedStatus(emisWaybill); EmisSettleSubBill updEmisSettleSubBill=new EmisSettleSubBill(); updEmisSettleSubBill.setPaymentStatus(emisWaybill.getPaymentStatus()); + updEmisSettleSubBill.setRecedMoney(sumMoney); updEmisSettleSubBill.setBillCode(subBill.getBillCode()); emisSettleSubBillMapper.updatePayedStatus(updEmisSettleSubBill); } diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml index 935a572b3..cf13349d6 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml @@ -959,10 +959,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update emis_settle_sub_bill - set payment_status=#{paymentStatus} + set payment_status=#{paymentStatus},reced_money=#{recedMoney} where bill_code=#{billCode} + + + update emis_settle_sub_bill + set open_bill_status=#{openBillStatus},invoiced_money=#{invoicedMoney} + where bill_code=#{billCode} + + + update emis_settle_sub_bill set del_flag='1' where bill_code = #{billCode} and del_flag='0'