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);
|
List<PayMailBillProject> type5List = payMailBillProjectService.list(wrapper);
|
||||||
|
|
||||||
if (type5List != null && type5List.size() > 0) {
|
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")
|
@PostMapping(value = "/batchPayBill")
|
||||||
public Result<?> mergePayBill(@RequestBody MergePayBillVO mergePayBillVO) {
|
public Result<?> mergePayBill(@RequestBody MergePayBillVO mergePayBillVO) {
|
||||||
payMeetingSituationService.mergePayBill(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.entity.PayContactsManagement;
|
||||||
import com.jero.company.service.IPayCompanyManagementService;
|
import com.jero.company.service.IPayCompanyManagementService;
|
||||||
import com.jero.company.service.IPayContactsManagementService;
|
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.MeetingCommon;
|
||||||
import com.jero.meeting.common.MeetingSubitemCommon;
|
import com.jero.meeting.common.MeetingSubitemCommon;
|
||||||
import com.jero.meeting.entity.PayMeeting;
|
import com.jero.meeting.entity.PayMeeting;
|
||||||
@@ -30,6 +33,7 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
@@ -59,6 +63,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
|||||||
private IMemberInfoService memberInfoService;
|
private IMemberInfoService memberInfoService;
|
||||||
@Resource
|
@Resource
|
||||||
private ISysBaseAPI iSysBaseApi;
|
private ISysBaseAPI iSysBaseApi;
|
||||||
|
@Resource
|
||||||
|
private IPayMailBillService payMailBillService;
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*/
|
*/
|
||||||
@@ -130,6 +136,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
|||||||
public void check(CheckVO checkVO) {
|
public void check(CheckVO checkVO) {
|
||||||
String id = checkVO.getId();
|
String id = checkVO.getId();
|
||||||
PayMeetingSituation meetingSituation = getById(id);
|
PayMeetingSituation meetingSituation = getById(id);
|
||||||
|
|
||||||
Integer checkResult = checkVO.getCheckResult();
|
Integer checkResult = checkVO.getCheckResult();
|
||||||
if (checkResult.equals(MeetingSubitemCommon.SIGNUP_STATUS_2)){
|
if (checkResult.equals(MeetingSubitemCommon.SIGNUP_STATUS_2)){
|
||||||
//TODO 提示信息
|
//TODO 提示信息
|
||||||
@@ -140,7 +147,54 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mergePayBill(MergePayBillVO mergePayBillVO) {
|
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;
|
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 io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.DecimalMax;
|
import javax.validation.constraints.DecimalMax;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -35,6 +34,8 @@ public class MergePayBillVO {
|
|||||||
@DecimalMax(value = "9999999999.99", message = "开票金额格式错误")
|
@DecimalMax(value = "9999999999.99", message = "开票金额格式错误")
|
||||||
private BigDecimal invoiceAmount;
|
private BigDecimal invoiceAmount;
|
||||||
|
|
||||||
|
@NotNull(message = "请选择参会人")
|
||||||
|
@Size(min = 1, message = "请选择参会人")
|
||||||
private List<String> meetingSituationIds;
|
private List<String> meetingSituationIds;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-8
@@ -96,10 +96,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
*/
|
*/
|
||||||
public Result<?> addPhase(PayPaymentRecord payPaymentRecord){
|
public Result<?> addPhase(PayPaymentRecord payPaymentRecord){
|
||||||
//来款记录表新增
|
//来款记录表新增
|
||||||
String res = insertPayPaymentRecord(payPaymentRecord);
|
insertPayPaymentRecord(payPaymentRecord);
|
||||||
if(!"success".equals(res)){
|
|
||||||
return Result.error(res);
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal receivableAmount;
|
BigDecimal receivableAmount;
|
||||||
Boolean isAdd;
|
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()))){
|
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);
|
List<PayPaymentRecord> type5List = payPaymentRecordMapper.selectList(wrapper);
|
||||||
|
|
||||||
if(type5List!=null && type5List.size()>0){
|
if(type5List!=null && type5List.size()>0){
|
||||||
return "标协会员项目,只能来款一次。";
|
throw new JeroBootException("标协会员项目,只能来款一次。");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbMemberProjectSubitem tbMemberInsert = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
TbMemberProjectSubitem tbMemberInsert = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
@@ -240,11 +237,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
//欠款
|
//欠款
|
||||||
BigDecimal debtInsert = rAInsert.subtract(pAInsert);
|
BigDecimal debtInsert = rAInsert.subtract(pAInsert);
|
||||||
if(aRInsert.compareTo(debtInsert) != 0){
|
if(aRInsert.compareTo(debtInsert) != 0){
|
||||||
return "标协会员项目,到账金额不等于欠款金额。";
|
throw new JeroBootException("标协会员项目,到账金额不等于欠款金额。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
payPaymentRecordMapper.insert(payPaymentRecord);
|
payPaymentRecordMapper.insert(payPaymentRecord);
|
||||||
return "success";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user