缴费审核

This commit is contained in:
baozhipeng
2021-12-16 10:01:41 +08:00
parent 81e11244b6
commit 70a6b9df1e
5 changed files with 149 additions and 3 deletions
@@ -32,5 +32,17 @@ public class PayPaymentCheckController extends JeroController<PayPaymentRecordSu
return Result.OK("操作成功");
}
@ApiOperation(value="审核", notes="审核")
@PostMapping(value = "/check")
public Result<?> check(@RequestBody PayPaymentRecord payPaymentRecord) {
try{
payPaymentCheckService.check(payPaymentRecord);
}catch (Exception e){
log.error("审核异常",e);
return Result.error(e.getMessage());
}
return Result.OK("操作成功");
}
}
@@ -3,6 +3,7 @@ package com.jero.payment.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.payment.entity.PayPaymentRecordSub;
import com.jero.payment.entity.PayPaymentRecord;
import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
@@ -14,7 +15,13 @@ public interface IPayPaymentCheckService extends IService<PayPaymentRecordSub> {
* 申请
* @param payPaymentRecord
*/
public void applicant(PayPaymentRecord payPaymentRecord);
void applicant(PayPaymentRecord payPaymentRecord);
/**
* 审核
* @param payPaymentRecord
*/
void check(PayPaymentRecord payPaymentRecord);
/**
* 得到缴费状态
@@ -58,6 +58,21 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
void updateStandards(String tbPaymentId, MemberInfo memberInfo);
/**
* 累加实收并四舍五入
* @param paidAmount 实收
* @param amountReceived 到账
* @return
*/
BigDecimal addPaidAmount(BigDecimal paidAmount,BigDecimal amountReceived);
/**
* 得到到账状态
* @param receivableAmount 应收
* @param paidAmount 实收
* @return
*/
Integer getInAccount(BigDecimal receivableAmount,BigDecimal paidAmount);
//标协类型新增时条件校验
void type5AddCheck(PayPaymentRecord payPaymentRecord);
@@ -145,6 +145,116 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentCheckMapper.insert(payPaymentRecordSub);
}
/**
* 审核
* @param payPaymentRecord
*/
@Override
public void check(PayPaymentRecord payPaymentRecord){
//拒绝
if(PaymentStatusEnum.REJECTED.getCode().equals(payPaymentRecord.getPaymentStatus())){
LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
payPaymentRecord.setReviewerId(sysUser.getId());
payPaymentRecord.setReviewerName(sysUser.getRealname());
//更新来款记录主表
payPaymentRecordMapper.updateById(payPaymentRecord);
//新增来款记录表子表
PayPaymentRecordSub payPaymentRecordSub = new PayPaymentRecordSub();
payPaymentRecordSub.setRecordId(payPaymentRecord.getId());
BeanUtils.copyProperties(payPaymentRecord, payPaymentRecordSub);
payPaymentCheckMapper.insert(payPaymentRecordSub);
return;
}
//通过
BigDecimal newPaidAmount;
Integer inAccount;
String paymentStatus;
switch (String.valueOf(payPaymentRecord.getProjectType())){
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
//来款条件校验
payPaymentRecordService.amountReceivedVerification( payPaymentRecord, ProjectCommon.PAYMENT_FLAG2);
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
newPaidAmount =payPaymentRecordService.addPaidAmount(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = payPaymentRecordService.getInAccount(payCommonProject.getReceivableAmount(), newPaidAmount);//到账状态
paymentStatus = getPaymentStatus(payCommonProject.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态
//更新主列表
payCommonProject.setPaidAmount(newPaidAmount);
payCommonProject.setInAccount(inAccount);
payCommonProject.setPaymentStatus(paymentStatus);
payCommonProjectMapper.updateById(payCommonProject);
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
//来款条件校验
payPaymentRecordService.amountReceivedVerification( payPaymentRecord, ProjectCommon.PAYMENT_FLAG2);
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
newPaidAmount =payPaymentRecordService.addPaidAmount(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = payPaymentRecordService.getInAccount(payWorking.getReceivableAmount(), newPaidAmount);//到账状态
paymentStatus = getPaymentStatus(payWorking.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态
//更新主列表
payWorking.setPaidAmount(newPaidAmount);
payWorking.setInAccount(inAccount);
payWorking.setPaymentStatus(paymentStatus);
payWorkingGroupSubItemMapper.updateById(payWorking);
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
// //来款条件校验
// payPaymentRecordService.amountReceivedVerification( payPaymentRecord, ProjectCommon.PAYMENT_FLAG2);
//
// PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
//
// PayMeetingSituation meeting = new PayMeetingSituation();
// meeting.setId(payPaymentRecord.getProjectId());
// meeting.setPaymentStatus(PaymentStatusEnum.TO_BE_REVIEWED.getCode());
// payMeetingSituationMapper.updateById(meeting);
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
//来款条件校验
payPaymentRecordService.amountReceivedVerification( payPaymentRecord, ProjectCommon.PAYMENT_FLAG2);
PayMemberProjectSubitem member = new PayMemberProjectSubitem();
member.setId(payPaymentRecord.getProjectId());
member.setPaymentStatus(PaymentStatusEnum.TO_BE_REVIEWED.getCode());
payMemberProjectSubitemMapper.updateById(member);
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
//标协类型条件校验
payPaymentRecordService.type5AddCheck(payPaymentRecord);
//来款条件校验
payPaymentRecordService.amountReceivedVerification( payPaymentRecord, ProjectCommon.PAYMENT_FLAG2);
TbMemberProjectSubitem tbMember= new TbMemberProjectSubitem();
tbMember.setId(payPaymentRecord.getProjectId());
tbMember.setPaymentStatus(PaymentStatusEnum.TO_BE_REVIEWED.getCode());
tbMemberProjectSubitemMapper.updateById(tbMember);
break;
default:break;
}
}
/**
* 得到缴费状态
* @param amountReceivable 应收
@@ -545,7 +545,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
* @param amountReceived 到账
* @return
*/
private BigDecimal addPaidAmount(BigDecimal paidAmount,BigDecimal amountReceived){
@Override
public BigDecimal addPaidAmount(BigDecimal paidAmount,BigDecimal amountReceived){
if(paidAmount == null){
paidAmount = new BigDecimal("0");
@@ -559,7 +560,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
* @param paidAmount 实收
* @return
*/
private Integer getInAccount(BigDecimal receivableAmount,BigDecimal paidAmount){
@Override
public Integer getInAccount(BigDecimal receivableAmount,BigDecimal paidAmount){
BigDecimal zero =new BigDecimal("0");
if(receivableAmount == null){
receivableAmount = new BigDecimal("0");