来款审核

This commit is contained in:
baozhipeng
2021-12-15 17:49:58 +08:00
parent 62f8184399
commit 75e4f566b6
4 changed files with 151 additions and 66 deletions
@@ -0,0 +1,22 @@
package com.jero.common.enums;
/**
* 缴费状态
*/
public enum PaymentStatusEnum {
TO_BE_UPLOADED("TO_BE_UPLOADED"),//待上传
TO_BE_REVIEWED("TO_BE_REVIEWED"),//待审核
REJECTED("REJECTED"),//已拒绝
COMPLETED("COMPLETED");//已完结
private String code;
private PaymentStatusEnum(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
@@ -83,8 +83,8 @@ public class PayPaymentRecord implements Serializable {
@ApiModelProperty(value = "申请人名字")
private String applicantName;
@ApiModelProperty(value = "审核结果")
private String reviewResult;
@ApiModelProperty(value = "审核状态")
private String reviewStatus;
@ApiModelProperty(value = "审核人id")
private String reviewerId;
@@ -36,6 +36,13 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
*/
void addAmountReceived(List<PayPaymentRecord> list,Integer flag);
/**
* 来款条件校验
* @param payPaymentRecord
* @param flag
*/
void amountReceivedVerification(PayPaymentRecord payPaymentRecord,Integer flag);
/**
* 添加一个来款
* @param payPaymentRecord
@@ -51,6 +58,9 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
void updateStandards(String tbPaymentId, MemberInfo memberInfo);
//标协类型新增时条件校验
void type5AddCheck(PayPaymentRecord payPaymentRecord);
/**
* 编辑来款
* @param payPaymentRecord
@@ -98,12 +98,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private IPayCompanyManagementService payCompanyManagementService;
@Resource
private IPayWorkingGroupService payWorkingGroupService;
@Resource
private IPayMeetingService payMeetingService;
@@ -120,8 +116,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
@Value("${jero.path.upload}")
private String upLoadPath;
@Value("${standards.url}")
private String url;
/**
* 到账开票主列表
@@ -169,24 +163,16 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
}
}
}
/**
* 添加一个来款记录
* 来款条件校验
* @param payPaymentRecord
* @param flag
*/
@Override
@Transactional
public void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,Integer flag){
public void amountReceivedVerification(PayPaymentRecord payPaymentRecord,Integer flag){
BigDecimal receivableAmount;
Boolean isAdd;
BigDecimal newPaidAmount;
BigDecimal paidAmount;
Integer inAccount;
String principalId = "";
String project = "";
List<PayContactsManagementTemporary> listId = new ArrayList<>();
//累加主列表实收金额
switch (String.valueOf(payPaymentRecord.getProjectType())){
// 普通项目
@@ -199,7 +185,106 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
paidAmount=payCommonProject.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
if(Objects.isNull(payWorking)){
throw new JeroBootException("项目不存在,不可提交!");
}
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId());
if(Objects.isNull(payWorkingGroup)){
throw new JeroBootException("工作组不存在,不可提交!");
}
receivableAmount = payWorking.getReceivableAmount();//应收
paidAmount=payWorking.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
if(Objects.isNull(meeting)){
throw new JeroBootException("项目不存在,不可提交!");
}
PayMeeting payMeeting =payMeetingService.getById(meeting.getMeetingId());
if(Objects.isNull(payMeeting)){
throw new JeroBootException("会议不存在,不可提交!");
}
// 来款方式为汇款/现场缴费的不可进行到账操作 1为汇款,2为线上缴费
if(!Objects.equals(ProjectCommon.PAYMENT_FLAG1,flag) && (Objects.equals(meeting.getPayMode(), MeetingSubitemCommon.PAY_MODE_1) || Objects.equals(meeting.getPayMode(),MeetingSubitemCommon.PAY_MODE_2))){
throw new JeroBootException("会议项目在参会人审核通过后会系统自动到账!");
}
receivableAmount = meeting.getAmountReceivable();//应收
paidAmount=meeting.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
if(Objects.isNull(member)){
throw new JeroBootException("项目不存在,不可提交!");
}
PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId());
if(Objects.isNull(payMemberProject)){
throw new JeroBootException("会员项目不存在,不可提交!");
}
receivableAmount = member.getAmountReceivable();//应收
paidAmount=member.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount, paidAmount,payPaymentRecord.getAmountReceived());
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
//标协类型条件校验
type5AddCheck(payPaymentRecord);
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
receivableAmount = tbMember.getAmountReceivable();//应收
paidAmount=tbMember.getPaidAmount();//实收
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMember.getProjectId());
if(Objects.isNull(tbMemberProject)){
throw new JeroBootException("标协会员不存在!");
}
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
break;
default:break;
}
}
/**
* 添加一个来款记录
* @param payPaymentRecord
*/
@Override
@Transactional
public void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,Integer flag){
BigDecimal newPaidAmount;
Integer inAccount;
String principalId = "";
String project = "";
List<PayContactsManagementTemporary> listId = new ArrayList<>();
//累加主列表实收金额
switch (String.valueOf(payPaymentRecord.getProjectType())){
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
PayContactsManagementTemporary payCommonProjectTemporary = payContactsManagementTemporaryService.getById(payCommonProject.getContactsTemporaryId());
if(!Objects.isNull(payCommonProjectTemporary)){
listId.add(payCommonProjectTemporary);
@@ -218,20 +303,12 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
if(Objects.isNull(payWorking)){
throw new JeroBootException("项目不存在,不可提交!");
}
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId());
if(Objects.isNull(payWorkingGroup)){
throw new JeroBootException("工作组不存在,不可提交!");
}
receivableAmount = payWorking.getReceivableAmount();//应收
paidAmount=payWorking.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
PayContactsManagementTemporary payWorkingTemporaryOne = payContactsManagementTemporaryService.getById(payWorking.getContactsTemporaryIdOne());
if(!Objects.isNull(payWorkingTemporaryOne)){
listId.add(payWorkingTemporaryOne);
@@ -262,24 +339,12 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
if(Objects.isNull(meeting)){
throw new JeroBootException("项目不存在,不可提交!");
}
PayMeeting payMeeting =payMeetingService.getById(meeting.getMeetingId());
if(Objects.isNull(payMeeting)){
throw new JeroBootException("会议不存在,不可提交!");
}
// 来款方式为汇款/现场缴费的不可进行到账操作 1为汇款,2为线上缴费
if(!Objects.equals(ProjectCommon.PAYMENT_FLAG1,flag) && (Objects.equals(meeting.getPayMode(), MeetingSubitemCommon.PAY_MODE_1) || Objects.equals(meeting.getPayMode(),MeetingSubitemCommon.PAY_MODE_2))){
throw new JeroBootException("会议项目在参会人审核通过后会系统自动到账!");
}
receivableAmount = meeting.getAmountReceivable();//应收
paidAmount=meeting.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
PayContactsManagement meetingPayContactsManagement = payContactsManagementService.getById(meeting.getContractId());
if(!Objects.isNull(meetingPayContactsManagement)){
String str = JSON.toJSONString(meetingPayContactsManagement);
@@ -300,20 +365,12 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
if(Objects.isNull(member)){
throw new JeroBootException("项目不存在,不可提交!");
}
PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId());
if(Objects.isNull(payMemberProject)){
throw new JeroBootException("会员项目不存在,不可提交!");
}
receivableAmount = member.getAmountReceivable();//应收
paidAmount=member.getPaidAmount();//实收
//是否还能再添加来款
isAdd(receivableAmount, paidAmount,payPaymentRecord.getAmountReceived());
PayContactsManagementTemporary memberTemporary = payContactsManagementTemporaryService.getById(member.getCompanyContactTemporaryId());
if(!Objects.isNull(memberTemporary)){
listId.add(memberTemporary);
@@ -334,16 +391,11 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
case PayIncomeContractCommon.PROJECT_TYPE5:
//标协类型条件校验
type5AddCheck(payPaymentRecord);
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
receivableAmount = tbMember.getAmountReceivable();//应收
paidAmount=tbMember.getPaidAmount();//实收
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMember.getProjectId());
if(Objects.isNull(tbMemberProject)){
throw new JeroBootException("标协会员不存在!");
}
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
principalId = tbMemberProject.getDirectorId();
project = tbMemberProject.getProjectName();
@@ -430,7 +482,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
}
//标协类型新增时条件校验
private void type5AddCheck(PayPaymentRecord payPaymentRecord){
@Override
public void type5AddCheck(PayPaymentRecord payPaymentRecord){
LambdaQueryWrapper<PayPaymentRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPaymentRecord::getProjectId, payPaymentRecord.getProjectId());
@@ -536,7 +589,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
}
//发送消息
public void SendMessage(String principalId,String project,PayPaymentRecord payPaymentRecord,
private void SendMessage(String principalId,String project,PayPaymentRecord payPaymentRecord,
List<PayContactsManagementTemporary> listId){
// 发送给项目负责人
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();