add 合并开票
This commit is contained in:
+1
-1
@@ -114,7 +114,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
List<PayMailBillProject> type5List = payMailBillProjectService.list(wrapper);
|
||||
|
||||
if (type5List != null && type5List.size() > 0) {
|
||||
return Result.error("标协会员项目,只能开票一次。");
|
||||
throw new JeroBootException("标协会员项目,只能开票一次。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -190,7 +190,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
@PostMapping(value = "/batchPayBill")
|
||||
public Result<?> mergePayBill(@RequestBody MergePayBillVO mergePayBillVO) {
|
||||
payMeetingSituationService.mergePayBill(mergePayBillVO);
|
||||
return Result.OK("审核成功!");
|
||||
return Result.OK("合并开票成功!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+55
-1
@@ -10,6 +10,9 @@ import com.jero.company.entity.PayCompanyManagement;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
import com.jero.company.service.IPayCompanyManagementService;
|
||||
import com.jero.company.service.IPayContactsManagementService;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.mail.entity.PayMailBill;
|
||||
import com.jero.mail.service.IPayMailBillService;
|
||||
import com.jero.meeting.common.MeetingCommon;
|
||||
import com.jero.meeting.common.MeetingSubitemCommon;
|
||||
import com.jero.meeting.entity.PayMeeting;
|
||||
@@ -30,6 +33,7 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
@@ -59,6 +63,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
private IMemberInfoService memberInfoService;
|
||||
@Resource
|
||||
private ISysBaseAPI iSysBaseApi;
|
||||
@Resource
|
||||
private IPayMailBillService payMailBillService;
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@@ -130,6 +136,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
public void check(CheckVO checkVO) {
|
||||
String id = checkVO.getId();
|
||||
PayMeetingSituation meetingSituation = getById(id);
|
||||
|
||||
Integer checkResult = checkVO.getCheckResult();
|
||||
if (checkResult.equals(MeetingSubitemCommon.SIGNUP_STATUS_2)){
|
||||
//TODO 提示信息
|
||||
@@ -140,7 +147,54 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
|
||||
@Override
|
||||
public void mergePayBill(MergePayBillVO mergePayBillVO) {
|
||||
mergePayBillVO.getInvoiceAmount();
|
||||
List<String> meetingSituationIds = mergePayBillVO.getMeetingSituationIds();
|
||||
List<PayMeetingSituation> payMeetingSituations = listByIds(meetingSituationIds);
|
||||
if (payMeetingSituations.isEmpty()){
|
||||
throw new JeroBootException("参会人不正确");
|
||||
}
|
||||
PayMeetingSituation payMeetingSituation = payMeetingSituations.get(0);
|
||||
String meetingId = payMeetingSituation.getMeetingId();
|
||||
StringBuilder projectIds = new StringBuilder();
|
||||
BigDecimal allAmount = new BigDecimal("0");
|
||||
for (int i = 0; i < payMeetingSituations.size(); i++) {
|
||||
PayMeetingSituation payMeetingSituation1 = payMeetingSituations.get(i);
|
||||
BigDecimal amountReceivable = payMeetingSituation1.getAmountReceivable();
|
||||
if (!payMeetingSituation1.getMeetingId().equals(meetingId)) {
|
||||
throw new JeroBootException("合并开票只能是同一会议");
|
||||
}
|
||||
if (!payMeetingSituation1.getCompanyId().equals(payMeetingSituation.getCompanyId())) {
|
||||
throw new JeroBootException("合并开票只能是同一企业");
|
||||
}
|
||||
if (amountReceivable.equals(new BigDecimal("0"))) {
|
||||
throw new JeroBootException("应收金额为0,不能合并开票");
|
||||
}
|
||||
if (payMeetingSituation1.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_PACK)) {
|
||||
throw new JeroBootException("缴费方式为打包,不能合并开票");
|
||||
}
|
||||
if (payMeetingSituation1.getNeedInvoice().equals(PayProjectCommon.NO)) {
|
||||
throw new JeroBootException("不需要发票,不能合并开票");
|
||||
}
|
||||
if (!payMeetingSituation1.getMakeInvoice().equals(PayProjectCommon.NO)) {
|
||||
throw new JeroBootException("已经开票的,不能合并开票");
|
||||
}
|
||||
allAmount = amountReceivable.add(allAmount);
|
||||
projectIds.append(payMeetingSituation1.getId());
|
||||
//如果不是最后一次,就拼接","
|
||||
if (i != payMeetingSituations.size() - 1) {
|
||||
projectIds.append(",");
|
||||
}
|
||||
}
|
||||
//删除最后一位","
|
||||
//projectIds.deleteCharAt(projectIds.length()-1);
|
||||
|
||||
PayMeeting payMeeting = meetingService.getById(meetingId);
|
||||
PayMailBill payMailBill = new PayMailBill();
|
||||
payMailBill.setBillNo(mergePayBillVO.getBillNo());
|
||||
payMailBill.setInvoiceAmount(allAmount);
|
||||
payMailBill.setBillDate(new Date());
|
||||
payMailBill.setProjectName(payMeeting.getMeetingName());
|
||||
payMailBill.setChargeCompanyName(payMeetingSituation.getCompanyName());
|
||||
payMailBillService.addPayBill(payMailBill,projectIds.toString(), PayIncomeContractCommon.PROJECT_TYPE3);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.jero.meeting.vo;
|
||||
|
||||
import com.jero.common.util.jsonschema.validate.StringProperty;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.DecimalMax;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,6 +34,8 @@ public class MergePayBillVO {
|
||||
@DecimalMax(value = "9999999999.99", message = "开票金额格式错误")
|
||||
private BigDecimal invoiceAmount;
|
||||
|
||||
@NotNull(message = "请选择参会人")
|
||||
@Size(min = 1, message = "请选择参会人")
|
||||
private List<String> meetingSituationIds;
|
||||
|
||||
}
|
||||
|
||||
+4
-8
@@ -96,10 +96,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
||||
*/
|
||||
public Result<?> addPhase(PayPaymentRecord payPaymentRecord){
|
||||
//来款记录表新增
|
||||
String res = insertPayPaymentRecord(payPaymentRecord);
|
||||
if(!"success".equals(res)){
|
||||
return Result.error(res);
|
||||
}
|
||||
insertPayPaymentRecord(payPaymentRecord);
|
||||
|
||||
BigDecimal receivableAmount;
|
||||
Boolean isAdd;
|
||||
@@ -219,7 +216,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
||||
}
|
||||
|
||||
//来款记录表新增
|
||||
private String insertPayPaymentRecord(PayPaymentRecord payPaymentRecord){
|
||||
private void insertPayPaymentRecord(PayPaymentRecord payPaymentRecord){
|
||||
//如果是标协会员类型,只能新增一次
|
||||
if(PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(payPaymentRecord.getProjectType()))){
|
||||
|
||||
@@ -229,7 +226,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
||||
List<PayPaymentRecord> type5List = payPaymentRecordMapper.selectList(wrapper);
|
||||
|
||||
if(type5List!=null && type5List.size()>0){
|
||||
return "标协会员项目,只能来款一次。";
|
||||
throw new JeroBootException("标协会员项目,只能来款一次。");
|
||||
}
|
||||
|
||||
TbMemberProjectSubitem tbMemberInsert = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||
@@ -240,11 +237,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
||||
//欠款
|
||||
BigDecimal debtInsert = rAInsert.subtract(pAInsert);
|
||||
if(aRInsert.compareTo(debtInsert) != 0){
|
||||
return "标协会员项目,到账金额不等于欠款金额。";
|
||||
throw new JeroBootException("标协会员项目,到账金额不等于欠款金额。");
|
||||
}
|
||||
}
|
||||
payPaymentRecordMapper.insert(payPaymentRecord);
|
||||
return "success";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user