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;