add 【编辑开票类型】

This commit is contained in:
lijiarao
2023-05-18 18:02:00 +08:00
parent b50bb0251f
commit f51705b0b3
4 changed files with 118 additions and 0 deletions
@@ -7,6 +7,7 @@ import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.ValidUtil;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.PayMailBillVO;
import com.jero.mail.service.IPayMailBillService;
@@ -16,6 +17,7 @@ import com.jero.member.service.ITbCertificatePaymentService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput;
import com.jero.standards.memberinfo.entity.MemberInfo;
@@ -191,6 +193,17 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
return Result.OK("编辑成功!");
}
/**
* 添加开票
*/
@ApiOperation(value = "编辑开票类型", notes = "编辑开票类型")
@PostMapping(value = "/editBillType")
public Result<?> editBillType(@RequestBody EditBillTypeParam editBillTypeParam) {
ValidUtil.validate(editBillTypeParam);
payPaymentRecordService.editBillType(editBillTypeParam);
return Result.OK("编辑成功!");
}
/**
* 添加开票
*/
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput;
@@ -135,4 +136,6 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
void revoke(String id);
void editBillType(EditBillTypeParam editBillTypeParam);
}
@@ -46,6 +46,7 @@ import com.jero.payment.mapper.PayPaymentCheckMapper;
import com.jero.payment.mapper.PayPaymentRecordMapper;
import com.jero.payment.service.IPayPaymentCheckService;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
@@ -1313,6 +1314,71 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
this.removeById(id);
}
@Override
public void editBillType(EditBillTypeParam editBillTypeParam) {
String projectId = editBillTypeParam.getProjectId();
String projectType = String.valueOf(editBillTypeParam.getProjectType());
String mailContactsId = editBillTypeParam.getMailContactsId();
Integer needInvoice = editBillTypeParam.getNeedInvoice();
String mailContactsTemporaryId;
String mailContactsTemporaryName;
if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)
||PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)
||PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(mailContactsId);
if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!");
}
mailContactsTemporaryId = mailContactsName.getId();
mailContactsTemporaryName = mailContactsName.getName();
}else {
throw new JeroBootException("只有普通项目,作组项目,会员项目可以变更开票类型");
}
switch (projectType) {
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectId);
if (!Objects.equals(payCommonProject.getMakeInvoice(),0)){
throw new JeroBootException("只有开票为空的可以变更开票类型");
}
//更新主列表
payCommonProject.setNeedInvoice(needInvoice);
payCommonProject.setMailContactsTemporaryId(mailContactsTemporaryId);
payCommonProject.setMailContactsTemporaryName(mailContactsTemporaryName);
payCommonProjectMapper.updateById(payCommonProject);
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(projectId);
if (!Objects.equals(payWorking.getMakeInvoice(),0)){
throw new JeroBootException("只有开票为空的可以变更开票类型");
}
//更新主列表
payWorking.setNeedInvoice(needInvoice);
payWorking.setMailContactsTemporaryId(mailContactsTemporaryId);
payWorking.setMailContactsTemporaryName(mailContactsTemporaryName);
payWorkingGroupSubItemMapper.updateById(payWorking);
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(projectId);
if (!Objects.equals(member.getMakeInvoice(),0)){
throw new JeroBootException("只有开票为空的可以变更开票类型");
}
//更新主列表
member.setNeedInvoice(needInvoice);
member.setPostContactTemporaryId(mailContactsTemporaryId);
member.setPostContactName(mailContactsTemporaryName);
payMemberProjectSubitemMapper.updateById(member);
break;
}
}
/**
* 获取对象ID
*
@@ -0,0 +1,36 @@
package com.jero.payment.vo;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @author liJiaRao
* @date 2023-05-18 16:11
*/
@Data
public class EditBillTypeParam {
/**项目id*/
@ApiModelProperty(value = "项目id")
@NotBlank(message = "项目id不能为空")
private String projectId;
/**项目类型*/
@ApiModelProperty(value = "项目类型")
@NotBlank(message = "项目类型不能为空")
private Integer projectType;
/**邮寄联系人id*/
@ApiModelProperty(value = "邮寄联系人id")
@NotBlank(message = "邮寄联系人id不能为空")
private String mailContactsId;
/**需要发票(1:增值税普通发票,2:增值税专用发票,0:否)*/
@ApiModelProperty(value = "需要发票(1:增值税普通发票,2:增值税专用发票,0:否)")
@NotNull(message = "需要发票不能为空")
@Dict(dicCode = "invoice_type")
private Integer needInvoice;
}