From 047700e947ce757ea8ca72deddbdac77664e3ab1 Mon Sep 17 00:00:00 2001 From: linfso Date: Tue, 3 Sep 2024 07:40:12 +0800 Subject: [PATCH] md --- .../erp/emis/domain/EmisCustomerUser.java | 2 +- .../impl/EmisSettleBillServiceImpl.java | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerUser.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerUser.java index cc83abf62..5b6a63e86 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerUser.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerUser.java @@ -136,7 +136,7 @@ public class EmisCustomerUser extends BaseEntity /* 付款期类型 1-天 2-月 */ private String creditPeriodType; /* 付款期 默认10天 */ - private Integer creditPeriod; + private BigDecimal creditPeriod; /* 账单日 1-31 */ private Integer settleDay; /* 启用状态 1-启用 0-未启用 */ 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 1e2ff7220..2b371407e 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 @@ -11,13 +11,16 @@ package com.xdadan.erp.emis.service.impl; import java.math.BigDecimal; +import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.List; import cn.hutool.core.collection.CollectionUtil; import com.xdadan.erp.common.core.domain.AjaxResult; +import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.StringUtils; +import com.xdadan.erp.emis.domain.EmisCustomerUser; import com.xdadan.erp.emis.domain.EmisSettleSubBill; import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; import com.xdadan.erp.emis.domain.exception.EmisBizError; @@ -126,6 +129,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // /* 合计金额 */ BigDecimal sendMoneySum= BigDecimal.ZERO; + Date sendDate = null; + for (EmisSettleSubBill subBill: emisSettleBill.getSubBillList() ) { EmisSettleSubBill subBllOld = getSettleSubBillBySubBillNo(subBill.getBillNo()); @@ -162,8 +167,11 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS emisSettleBill.setCustomerName(subBllOld.getCustomerName()); emisSettleBill.setPayee(subBllOld.getPayee()); emisSettleBill.setSalesmen(subBllOld.getSalesmen()); + + sendDate=subBllOld.getWaybillDetail().getSendDate(); } + sendMoneySum=totalRecMoney; emisSettleBill.setSendPieceSum(sendPieceSum); @@ -179,6 +187,49 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS emisSettleBill.setConfirmSiteManCode("1"); emisSettleBill.setConfirmSiteCode("88888"); emisSettleBill.setConfirmSiteNote("现金账单系统自动确认"); + + // 现金账期从寄件开始10天 + emisSettleBill.setCreditPeriodType("1"); + emisSettleBill.setCreditPeriod(BigDecimal.valueOf(Long.valueOf(10))); + + // 现金账期日从当天开始 + sendDate=WaybillHelper.removeTimeHMS(sendDate); + Calendar sendDateCal=Calendar.getInstance(); + sendDateCal.setTime(sendDate); + emisSettleBill.setSettleDay(sendDateCal.get(Calendar.DAY_OF_MONTH));// 每月1-31日 + // 10天时间 + emisSettleBill.setPaymentDueDate(DateUtils.addDays(sendDate,10)); + + }else{ + + // 计算月结客户的最后付款日期 + EmisCustomerUser monthUser=getCustomerUserByMonthlyPayCode(emisSettleBill.getCustNo()); + if(monthUser!=null) { + + // 默认30天,从1号开始 + BigDecimal creditPeriod = BigDecimal.valueOf(30D); + Integer settleDay=1; + + if(monthUser.getCreditPeriod() !=null){ + creditPeriod=monthUser.getCreditPeriod(); + } + + if(monthUser.getSettleDay()!=null){ + settleDay=monthUser.getSettleDay(); + } + + // 现金账期从寄件开始10天 + emisSettleBill.setCreditPeriodType("1"); + emisSettleBill.setCreditPeriod(creditPeriod); + emisSettleBill.setSettleDay(settleDay); + + Date billMonthDate = DateUtils.parseDate(emisSettleBill.getBillMonth() + "-"+settleDay); + Date paymentDueDate = DateUtils.addMonths(billMonthDate,1); + paymentDueDate= DateUtils.addDays(paymentDueDate,creditPeriod.intValue()); + + // 最后时间 + emisSettleBill.setPaymentDueDate(paymentDueDate); + } }