From 1c832f2ffcaf7ae8e9c49d1e99c56035b9f35eb7 Mon Sep 17 00:00:00 2001 From: linfso Date: Sun, 24 Nov 2024 12:41:45 +0800 Subject: [PATCH] md --- .../web/emis/EmisSettleSubBillController.java | 20 ++++++++++++++++--- .../emis/mapper/EmisSettleSubBillMapper.java | 2 ++ .../erp/emis/service/EmisBaseService.java | 10 ++++++++++ .../impl/EmisSettleBillServiceImpl.java | 19 ++++++++++++------ .../mapper/EmisSettleSubBillMapper.xml | 6 ++++++ 5 files changed, 48 insertions(+), 9 deletions(-) diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java index 08749f6e2..1b9510919 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java @@ -11,6 +11,7 @@ package com.xdadan.erp.web.emis; +import java.math.BigDecimal; import java.time.temporal.ChronoUnit; import java.util.*; import javax.servlet.http.HttpServletResponse; @@ -618,12 +619,25 @@ public class EmisSettleSubBillController extends EmisBaseController return AjaxResult.error("账单不存在!"); } + EmisSettleSubBill emisSettleSubBill = new EmisSettleSubBill(); emisSettleSubBill.setId(id); - emisBaseService.setNoNeedOpenBill(emisSettleSubBill); - // 重新计算账单状态 - emisSettleBillService.reCalcSettleBillInvoiceStatus(oldSubBill.getSettleBillNo()); + if( oldSubBill.getInvoicedMoney().compareTo(BigDecimal.ZERO)==0 ) { + emisBaseService.setNoNeedOpenBill(emisSettleSubBill); + // 重新计算账单状态 + emisSettleBillService.reCalcSettleBillInvoiceStatus(oldSubBill.getSettleBillNo()); + } + else if( + oldSubBill.getInvoicedMoney().compareTo(BigDecimal.ZERO)>0 + && oldSubBill.getInvoicedMoney().compareTo(oldSubBill.getBillFee())<0 + ){ + emisBaseService.setCompleteOpenBill(emisSettleSubBill); + // 重新计算账单状态 + emisSettleBillService.reCalcSettleBillInvoiceStatus(oldSubBill.getSettleBillNo()); + } + + }catch (Exception ex){ ex.printStackTrace(); 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 b2865c487..8bfcf4a80 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 @@ -128,6 +128,8 @@ public interface EmisSettleSubBillMapper extends BaseMapper public int setNoNeedOpenBill(EmisSettleSubBill emisSettleSubBill); + public int setCompleteOpenBill(EmisSettleSubBill emisSettleSubBill); + public int updatePayedStatus(EmisSettleSubBill emisSettleSubBill); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index e994d0dcd..eb7d71a9c 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -1514,6 +1514,16 @@ public class EmisBaseService { } + /** + * 设置开票完成 + * @param emisSettleSubBill + * @return + */ + public int setCompleteOpenBill(EmisSettleSubBill emisSettleSubBill){ + return emisSettleSubBillMapper.setCompleteOpenBill(emisSettleSubBill); + } + + public List selectSubBillListBySettleBillNo(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 71bd0fa10..0c38fd82d 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 @@ -508,17 +508,24 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS updEmisSettleSubBill.setBillCode(subBill.getBillCode()); updEmisSettleSubBill.setInvoicedMoney(sumMoney); - if( sumMoney.compareTo(BigDecimal.ZERO) == 0 ){ - updEmisSettleSubBill.setOpenBillStatus("0"); + if(!"3".equals(subBill)&&!"4".equals(subBill)) { + if (sumMoney.compareTo(BigDecimal.ZERO) == 0) { + updEmisSettleSubBill.setOpenBillStatus("0"); + } else { + if (sumMoney.compareTo(subBill.getBillFee()) >= 0) { + updEmisSettleSubBill.setOpenBillStatus("1"); + } else { + updEmisSettleSubBill.setOpenBillStatus("2"); + } + } + // 更新每一单的开票状态 + emisSettleSubBillMapper.updateOpenBillStatus(updEmisSettleSubBill); }else{ + // 如果开票金额大于等于账单金额 if (sumMoney.compareTo(subBill.getBillFee()) >= 0) { updEmisSettleSubBill.setOpenBillStatus("1"); - }else { - updEmisSettleSubBill.setOpenBillStatus("2"); } } - // 更新每一单的开票状态 - emisSettleSubBillMapper.updateOpenBillStatus(updEmisSettleSubBill); } } diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml index 96dd70b60..8fbc7613c 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml @@ -977,6 +977,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id=#{id} + + update emis_settle_sub_bill + set open_bill_status='4' + where id=#{id} + + update emis_settle_sub_bill set open_bill_status=#{openBillStatus},invoiced_money=#{invoicedMoney}