开票
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.PayMeetingMapper;
|
||||||
import com.jero.meeting.mapper.PayMeetingSituationMapper;
|
import com.jero.meeting.mapper.PayMeetingSituationMapper;
|
||||||
import com.jero.meeting.service.IPayMeetingService;
|
import com.jero.meeting.service.IPayMeetingService;
|
||||||
import com.jero.member.entity.PayMemberProject;
|
import com.jero.member.entity.*;
|
||||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
import com.jero.member.mapper.*;
|
||||||
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.service.IPayMemberProjectService;
|
import com.jero.member.service.IPayMemberProjectService;
|
||||||
import com.jero.member.service.ITbMemberProjectService;
|
import com.jero.member.service.ITbMemberProjectService;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
@@ -108,6 +102,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
@Resource
|
@Resource
|
||||||
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
|
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private TbCertificatePaymentMapper certificatePaymentMapper;
|
||||||
|
@Resource
|
||||||
private TbMemberProjectMapper tbMemberProjectMapper;
|
private TbMemberProjectMapper tbMemberProjectMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private PayContactsManagementMapper payContactsManagementMapper;
|
private PayContactsManagementMapper payContactsManagementMapper;
|
||||||
@@ -193,6 +189,17 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
//推送开票数据到会员系统
|
//推送开票数据到会员系统
|
||||||
pushBillToStandards(payMailBill, id);
|
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);
|
listId.add(meetingTemporary);
|
||||||
}
|
}
|
||||||
break;
|
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;
|
default:break;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -630,6 +655,31 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
return "企业未审核,需要审核后开票";
|
return "企业未审核,需要审核后开票";
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -820,6 +870,34 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
principalId.append(",").append(tbProject.getDirectorId());
|
principalId.append(",").append(tbProject.getDirectorId());
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -888,7 +966,14 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
newTbMemberProject.setMakeInvoice(makeInvoice);
|
newTbMemberProject.setMakeInvoice(makeInvoice);
|
||||||
newTbMemberProject.setInvoiceAmount(invoiceAmount);
|
newTbMemberProject.setInvoiceAmount(invoiceAmount);
|
||||||
tbMemberProjectSubitemMapper.updateById(newTbMemberProject);
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
|
|||||||
* 添加一个来款
|
* 添加一个来款
|
||||||
* @param 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> typr5List = new ArrayList<>();
|
||||||
List<TbCheckVo> typr6List = new ArrayList<>();
|
List<TbCheckVo> typr6List = new ArrayList<>();
|
||||||
for(PayPaymentRecord payPaymentRecord : list){
|
for(PayPaymentRecord payPaymentRecord : list){
|
||||||
addOneAmountReceived(payPaymentRecord,typr5List,flag);
|
addOneAmountReceived(payPaymentRecord,typr5List,typr6List,flag);
|
||||||
|
|
||||||
}
|
}
|
||||||
//会员到账推送到会员系统
|
//会员到账推送到会员系统
|
||||||
@@ -294,20 +294,21 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@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;
|
BigDecimal newPaidAmount;
|
||||||
Integer inAccount;
|
Integer inAccount;
|
||||||
String principalId = "";
|
String principalId = "";
|
||||||
String project = "";
|
String project = "";
|
||||||
List<PayContactsManagementTemporary> listId = new ArrayList<>();
|
List<PayContactsManagementTemporary> listId = new ArrayList<>();
|
||||||
|
|
||||||
//累加主列表实收金额
|
//累加主列表实收金额
|
||||||
|
//来款条件校验
|
||||||
|
amountReceivedVerification( payPaymentRecord, flag);
|
||||||
switch (String.valueOf(payPaymentRecord.getProjectType())){
|
switch (String.valueOf(payPaymentRecord.getProjectType())){
|
||||||
|
|
||||||
// 普通项目
|
// 普通项目
|
||||||
case PayIncomeContractCommon.PROJECT_TYPE1:
|
case PayIncomeContractCommon.PROJECT_TYPE1:
|
||||||
//来款条件校验
|
|
||||||
amountReceivedVerification( payPaymentRecord, flag);
|
|
||||||
|
|
||||||
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
|
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
@@ -329,8 +330,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
break;
|
break;
|
||||||
// 工作组项目
|
// 工作组项目
|
||||||
case PayIncomeContractCommon.PROJECT_TYPE2:
|
case PayIncomeContractCommon.PROJECT_TYPE2:
|
||||||
//来款条件校验
|
|
||||||
amountReceivedVerification( payPaymentRecord, flag);
|
|
||||||
|
|
||||||
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
|
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId());
|
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId());
|
||||||
@@ -365,8 +364,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
break;
|
break;
|
||||||
//会议项目
|
//会议项目
|
||||||
case PayIncomeContractCommon.PROJECT_TYPE3:
|
case PayIncomeContractCommon.PROJECT_TYPE3:
|
||||||
//来款条件校验
|
|
||||||
amountReceivedVerification( payPaymentRecord, flag);
|
|
||||||
|
|
||||||
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
|
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
PayMeeting payMeeting =payMeetingService.getById(meeting.getMeetingId());
|
PayMeeting payMeeting =payMeetingService.getById(meeting.getMeetingId());
|
||||||
@@ -391,8 +388,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
break;
|
break;
|
||||||
//会员项目
|
//会员项目
|
||||||
case PayIncomeContractCommon.PROJECT_TYPE4:
|
case PayIncomeContractCommon.PROJECT_TYPE4:
|
||||||
//来款条件校验
|
|
||||||
amountReceivedVerification( payPaymentRecord, flag);
|
|
||||||
|
|
||||||
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId());
|
PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId());
|
||||||
@@ -415,10 +410,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
break;
|
break;
|
||||||
//标协会员
|
//标协会员
|
||||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||||
//标协类型条件校验
|
|
||||||
type5AddCheck(payPaymentRecord);
|
|
||||||
//来款条件校验
|
|
||||||
amountReceivedVerification( payPaymentRecord, flag);
|
|
||||||
|
|
||||||
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMember.getProjectId());
|
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMember.getProjectId());
|
||||||
@@ -447,10 +438,42 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
tbCheckVo.setCheckMark(payPaymentRecord.getRemark());
|
tbCheckVo.setCheckMark(payPaymentRecord.getRemark());
|
||||||
typr5List.add(tbCheckVo);
|
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;
|
break;
|
||||||
default:break;
|
default:break;
|
||||||
}
|
}
|
||||||
//插入来款记录表
|
//插入来款记录表
|
||||||
|
payPaymentRecord.setPaymentStatus(PaymentStatusEnum.COMPLETED.getCode());
|
||||||
payPaymentRecordMapper.insert(payPaymentRecord);
|
payPaymentRecordMapper.insert(payPaymentRecord);
|
||||||
// 发消息
|
// 发消息
|
||||||
SendMessage( principalId, project, payPaymentRecord, listId);
|
SendMessage( principalId, project, payPaymentRecord, listId);
|
||||||
@@ -859,6 +882,9 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
//标协会员
|
//标协会员
|
||||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||||
throw new JeroBootException("标协会员类型不可编辑!");
|
throw new JeroBootException("标协会员类型不可编辑!");
|
||||||
|
//标协证书
|
||||||
|
case PayIncomeContractCommon.PROJECT_TYPE6:
|
||||||
|
throw new JeroBootException("标协证书类型不可编辑!");
|
||||||
default:break;
|
default:break;
|
||||||
}
|
}
|
||||||
payPaymentRecordMapper.updateById(payPaymentRecord);
|
payPaymentRecordMapper.updateById(payPaymentRecord);
|
||||||
|
|||||||
Reference in New Issue
Block a user