From 655326382ee10fa838dad8b978a504e0bc1d1f8f Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 8 Mar 2024 13:39:54 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=A0=87=E5=8D=8F=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=88=90=E5=91=98-=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E5=90=8E=E6=9B=B4=E6=96=B0=E6=9C=89=E6=95=88=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PayMailBillServiceImpl.java | 25 +-------- .../mapper/TbMemberProjectSubitemMapper.java | 4 ++ .../ITbMemberProjectSubitemService.java | 2 + .../TbMemberProjectSubitemServiceImpl.java | 56 +++++++++++++++++++ .../impl/PayPaymentRecordServiceImpl.java | 2 - 5 files changed, 64 insertions(+), 25 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index fe4c186c..cc775e16 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -203,30 +203,9 @@ public class PayMailBillServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(PayMailBillProject::getProjectId, id); - wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5); - List type5List = payMailBillProjectService.list(wrapper); - - if (type5List != null && type5List.size() > 0) { - throw new JeroBootException("标协会员项目,只能开票一次。"); - } - //推送开票数据到会员系统 - pushBillToStandards(payMailBill, id,StandardsTypeEnum.STANDARDS); - } - if (PayIncomeContractCommon.PROJECT_TYPE6.equals(String.valueOf(payMailBillProject.getProjectType()))) { - String id = payMailBillProject.getProjectId(); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(PayMailBillProject::getProjectId, id); - wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE6); - List type6List = payMailBillProjectService.list(wrapper); - - if (type6List != null && type6List.size() > 0) { - throw new JeroBootException("标协证书项目,只能开票一次。"); - } - //推送开票数据到会员系统 - pushBillToStandards(payMailBill, id,StandardsTypeEnum.CERTIFICATE); + tbMemberProjectSubitemService.generateValidDate(id); } //会议项目开票时,获取参会人配置的邮寄信息 if (PayIncomeContractCommon.PROJECT_TYPE3.equals(String.valueOf(payMailBillProject.getProjectType()))) { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java index 6fdbb6a0..f1f6ec8a 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import com.jero.member.entity.TbMemberProjectSubitem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; /** * @Description: 标协会员项目成员表 @@ -34,4 +35,7 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper pageList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List getAllTakeEffectByCompanyId(@Param("companyId") String companyId); + + @Select("SELECT IFNULL(MAX(SUBSTRING(member_no,13)),'0') + 1 FROM tb_member_info WHERE member_no LIKE concat(#{date},'%')") + Integer getMaxMemberNo(@Param("date") String date); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java index f75f08ae..ccef2f4f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java @@ -82,4 +82,6 @@ public interface ITbMemberProjectSubitemService extends IService updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(TbMemberProjectSubitem::getId,id); + DateTime date = DateUtil.date(); + //如果是新会员,或者当前日期大于之前的失效日期 + if (takeEffectInfo == null || date.compareTo(takeEffectInfo.getInvalidationDate()) > 0){ + //获得当月1日 + effectiveDate = DateUtil.beginOfMonth(date); + // 如果是续费 + }else { + //获取上一个失效日期 + Date previousInvalidationDate = takeEffectInfo.getInvalidationDate(); + //获得失效日期的下个月1日 + effectiveDate = DateUtil.beginOfMonth(DateUtil.date(previousInvalidationDate).offset(DateField.MONTH, 1)); + } + //获得生效日期明年当月月底 + DateTime invalidationDate = DateUtil.endOfMonth(effectiveDate.offset(DateField.YEAR, 1)); + //设置生效失效日期 + updateWrapper.set(TbMemberProjectSubitem::getEffectiveDate,effectiveDate); + updateWrapper.set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate); + //设置会员状态为已缴费 + updateWrapper.set(TbMemberProjectSubitem::getMemberStatus,MemberStatusEnum.PAID.getValue()); + //如果是新会员,生成会员编号 + if (takeEffectInfo == null){ + //格式化日期为yyyyMMdd + String dateStr = date.toString(DatePattern.PURE_DATE_PATTERN); + String memberNoPrefix = "CASA" + dateStr; + Integer maxMemberNo = tbMemberProjectSubitemMapper.getMaxMemberNo(memberNoPrefix); + //生成会员编号 + String memberNo = buildMemberNo(memberNoPrefix, maxMemberNo); + updateWrapper.set(TbMemberProjectSubitem::getMemberNo,memberNo); + } + this.update(updateWrapper); + } + + private String buildMemberNo(String prefix, Integer no) { + if (no == null || no <= 0) { + return prefix + "001"; + } + String suffix = no.toString(); + while (suffix.length() < 3) { + suffix = "0" + suffix; + } + return prefix + suffix; + } + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java index 88b155ed..a1b3cb5e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java @@ -515,8 +515,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl