开票
This commit is contained in:
+94
-9
@@ -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;
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
/**
|
||||
* 标协会员添加来款
|
||||
|
||||
+40
-14
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user