add 标协会员项目成员-开票后更新有效期

This commit is contained in:
lijiarao
2024-03-08 13:39:54 +08:00
parent cbac67f777
commit 655326382e
5 changed files with 64 additions and 25 deletions
@@ -203,30 +203,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
for (int i = 0; i < bmpList.size(); i++) {
PayMailBillProject payMailBillProject = bmpList.get(i);
if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(payMailBillProject.getProjectType()))) {
// 更新会员有效期
String id = payMailBillProject.getProjectId();
LambdaQueryWrapper<PayMailBillProject> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMailBillProject::getProjectId, id);
wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5);
List<PayMailBillProject> 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<PayMailBillProject> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMailBillProject::getProjectId, id);
wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE6);
List<PayMailBillProject> 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()))) {
@@ -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<TbMemberProject
IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
List<TbMemberProjectSubitem> 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);
}
@@ -82,4 +82,6 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
void ticketCollection(String id);
void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO);
void generateValidDate(String id);
}
@@ -1,6 +1,10 @@
package com.jero.member.service.impl;
import java.util.*;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -251,4 +255,56 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
.set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate);
this.update(updateWrapper);
}
@Override
public void generateValidDate(String id){
TbMemberProjectSubitem memberProjectSubitem = getById(id);
String companyId = memberProjectSubitem.getCompanyId();
//获得有效数据
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
DateTime effectiveDate;
LambdaUpdateWrapper<TbMemberProjectSubitem> 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;
}
}
@@ -515,8 +515,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
tbMember.setPaymentStatus(paymentStatus);
tbMemberProjectSubitemMapper.updateById(tbMember);
//生成有效期
//拼装推到标协缴费的参数
// TbCheckVo tbCheckVo = new TbCheckVo();
// tbCheckVo.setId(tbMember.getTbPaymentId());