This commit is contained in:
baozhipeng
2021-12-17 20:00:53 +08:00
parent 7049a20cf0
commit b6335e460e
3 changed files with 135 additions and 24 deletions
@@ -40,14 +40,8 @@ import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingMapper;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectMapper;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.entity.*;
import com.jero.member.mapper.*;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.modules.system.entity.SysUser;
@@ -108,6 +102,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Resource
private TbMemberProjectMapper tbMemberProjectMapper;
@Resource
private PayContactsManagementMapper payContactsManagementMapper;
@@ -193,6 +189,17 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
//推送开票数据到会员系统
pushBillToStandards(payMailBill, id);
}
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("标协证书项目,只能开票一次。");
}
}
}
@@ -352,6 +359,24 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
listId.add(meetingTemporary);
}
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(p.getProjectId());
if(Objects.isNull(tbMemberCertificate)){
throw new JeroBootException("标协会员成员不存在!");
}
TbMemberProject tbMemberProjectCertificate = tbMemberProjectService.getById(tbMemberCertificate.getProjectId());
if(Objects.isNull(tbMemberProjectCertificate)){
throw new JeroBootException("标协会员不存在!");
}
project = tbMemberProjectCertificate.getProjectName();
PayContactsManagement tbMemberPayContactsManagementCer = payContactsManagementService.getById(tbMemberCertificate.getLiaisonManId());
if(!Objects.isNull(tbMemberPayContactsManagementCer)){
String str = JSON.toJSONString(tbMemberPayContactsManagementCer);
PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str,PayContactsManagementTemporary.class);
listId.add(meetingTemporary);
}
break;
default:break;
}
@@ -630,6 +655,31 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
return "企业未审核,需要审核后开票";
}
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(bmpList.get(i).getProjectId());
//将第一个项目作为基准公司
if (i == 0) {
standardCompanyId = tbMemberCertificate.getCompanyId();
}
if (!standardCompanyId.equals(tbMemberCertificate.getCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = tbMemberCertificate.getInvoiceAmount();
if(oldInvoiceAmount==null){
oldInvoiceAmount= new BigDecimal("0");
}
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(tbMemberCertificate.getAmountReceivable()) != 0){
return "开票金额应等于当前未开票金额,输入有误!";
}
PayCompanyManagement payCompanyManagementTbMemberCer = payCompanyManagementService.getById(tbMemberCertificate.getCompanyId());
if(!Objects.isNull(payCompanyManagementTbMemberCer) && "2".equals(payCompanyManagementTbMemberCer.getStatus()) ){
return "企业未审核,需要审核后开票";
}
break;
default:
break;
}
@@ -820,6 +870,34 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
principalId.append(",").append(tbProject.getDirectorId());
}
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(payMailBillProject.getProjectId());
amountReceivable = tbMemberCertificate.getAmountReceivable();//应收
needInvoice = tbMemberCertificate.getInvoiceRequirements();//是否需要发票
oldInvoiceAmount = tbMemberCertificate.getInvoiceAmount();
if(oldInvoiceAmount==null){
oldInvoiceAmount= new BigDecimal("0");
}
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
//查父表
TbMemberProject tbProjectCer = tbMemberProjectMapper.selectById(tbMemberCertificate.getProjectId());
SysUser queryTbMemberProjectSysUserCer = sysUserService.getById(tbProjectCer.getDirectorId());
//逗号拼接邮寄信息
if(i==0){
projectName.append(tbProjectCer.getProjectName());
chargeCompanyName.append(tbMemberCertificate.getCompanyName());
principalName.append(queryTbMemberProjectSysUserCer.getRealname());
principalId.append(tbProjectCer.getDirectorId());
}else{
projectName.append(",").append(tbMemberCertificate.getProjectName());
chargeCompanyName.append(",").append(tbMemberCertificate.getCompanyName());
principalName.append(",").append(queryTbMemberProjectSysUserCer.getRealname());
principalId.append(",").append(tbProjectCer.getDirectorId());
}
break;
default:
break;
}
@@ -888,7 +966,14 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
newTbMemberProject.setMakeInvoice(makeInvoice);
newTbMemberProject.setInvoiceAmount(invoiceAmount);
tbMemberProjectSubitemMapper.updateById(newTbMemberProject);
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
TbCertificatePayment newCertificate = new TbCertificatePayment();
newCertificate.setId(payMailBillProject.getProjectId());
newCertificate.setMakeInvoice(makeInvoice);
newCertificate.setInvoiceAmount(invoiceAmount);
certificatePaymentMapper.updateById(newCertificate);
break;
default:
break;
@@ -47,7 +47,7 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
* 添加一个来款
* @param payPaymentRecord
*/
void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,Integer flag);
void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,List<TbCheckVo> typr6List,Integer flag);
/**
* 标协会员添加来款
@@ -150,7 +150,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
List<TbCheckVo> typr5List = new ArrayList<>();
List<TbCheckVo> typr6List = new ArrayList<>();
for(PayPaymentRecord payPaymentRecord : list){
addOneAmountReceived(payPaymentRecord,typr5List,flag);
addOneAmountReceived(payPaymentRecord,typr5List,typr6List,flag);
}
//会员到账推送到会员系统
@@ -294,20 +294,21 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
*/
@Override
@Transactional
public void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,Integer flag){
public void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,List<TbCheckVo> typr6List,Integer flag){
BigDecimal newPaidAmount;
Integer inAccount;
String principalId = "";
String project = "";
List<PayContactsManagementTemporary> listId = new ArrayList<>();
//累加主列表实收金额
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
switch (String.valueOf(payPaymentRecord.getProjectType())){
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
@@ -329,8 +330,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId());
@@ -365,8 +364,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
PayMeeting payMeeting =payMeetingService.getById(meeting.getMeetingId());
@@ -391,8 +388,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId());
@@ -415,10 +410,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
//标协类型条件校验
type5AddCheck(payPaymentRecord);
//来款条件校验
amountReceivedVerification( payPaymentRecord, flag);
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMember.getProjectId());
@@ -447,10 +438,42 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
tbCheckVo.setCheckMark(payPaymentRecord.getRemark());
typr5List.add(tbCheckVo);
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(payPaymentRecord.getProjectId());
TbMemberProject tbMemberProjectCertificate = tbMemberProjectService.getById(tbMemberCertificate.getProjectId());
principalId = tbMemberProjectCertificate.getDirectorId();
project = tbMemberProjectCertificate.getProjectName();
PayContactsManagement tbMemberPayContactsManagementCer = payContactsManagementService.getById(tbMemberCertificate.getLiaisonManId());
if(!Objects.isNull(tbMemberPayContactsManagementCer)){
String str = JSON.toJSONString(tbMemberPayContactsManagementCer);
PayContactsManagementTemporary meetingTemporaryCer = JSONObject.parseObject(str,PayContactsManagementTemporary.class);
listId.add(meetingTemporaryCer);
}
newPaidAmount =addPaidAmount(tbMemberCertificate.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(tbMemberCertificate.getAmountReceivable(), newPaidAmount);//到账状态
//更新主列表
tbMemberCertificate.setPaidAmount(newPaidAmount);
tbMemberCertificate.setInAccount(inAccount);
certificatePaymentMapper.updateById(tbMemberCertificate);
//拼装推到标协缴费的参数
TbCheckVo tbCheckCerVo = new TbCheckVo();
tbCheckCerVo.setId(tbMemberCertificate.getTbPaymentId());
tbCheckCerVo.setCheckResult(PayProjectCommon.YES);
tbCheckCerVo.setCheckMark(payPaymentRecord.getRemark());
typr6List.add(tbCheckCerVo);
break;
default:break;
}
//插入来款记录表
payPaymentRecord.setPaymentStatus(PaymentStatusEnum.COMPLETED.getCode());
payPaymentRecordMapper.insert(payPaymentRecord);
// 发消息
SendMessage( principalId, project, payPaymentRecord, listId);
@@ -859,6 +882,9 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
throw new JeroBootException("标协会员类型不可编辑!");
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
throw new JeroBootException("标协证书类型不可编辑!");
default:break;
}
payPaymentRecordMapper.updateById(payPaymentRecord);