财务管理-到账开票 添加开票、确认收入的弹框中增加撤销的功能

This commit is contained in:
梁琦涛
2023-12-28 18:14:56 +08:00
parent 417434ae9c
commit 9c365a4f78
5 changed files with 106 additions and 29 deletions
@@ -6,8 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.company.entity.PayContactsManagement;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.member.enums.StandardsTypeEnum;
import java.util.List;
@@ -98,4 +99,7 @@ public interface IPayMailBillService extends IService<PayMailBill> {
IPage<PayMailBill> contactsSearchPageList(Page<PayMailBill> page, String userId, QueryWrapper<PayMailBill> queryWrapper);
void backInvoice(PayMailBillProject payMailBillProject);
}
@@ -25,7 +25,6 @@ import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.mail.entity.BillingInfo;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
@@ -33,6 +32,7 @@ import com.jero.mail.mapper.PayMailBillMapper;
import com.jero.mail.mapper.PayMailBillProjectMapper;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingMapper;
@@ -72,10 +72,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -603,6 +600,39 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
return payMailBillMapper.contactsSearchPageList(page,userId,queryWrapper);
}
@Override
@Transactional(rollbackFor = JeroBootException.class)
public void backInvoice(PayMailBillProject payMailBillProject) {
if(StringUtils.isBlank(payMailBillProject.getId()) || StringUtils.isBlank(payMailBillProject.getBillId())){
throw new JeroBootException("邮寄票据关联项目id、邮寄票据billId不能为空");
}
PayMailBill payMailBill = getById(payMailBillProject.getBillId());
if(Objects.isNull(payMailBill)){
throw new JeroBootException("未找到对应数据");
}
PayMailBillProject payMailBillProjectObj = payMailBillProjectService.getById(payMailBillProject.getId());
if(Objects.isNull(payMailBillProjectObj)){
throw new JeroBootException("未找到对应数据");
}
// 标协会员缴费、证书缴费 先不做此功能的开发
if(Arrays.asList(5,6).contains(payMailBillProjectObj.getProjectType())){
throw new JeroBootException("标协会员缴费、证书缴费项目不可撤销");
}
// 开票被邮寄的话就不能撤销
if(Objects.equals(payMailBill.getPostStatus(),1)){
throw new JeroBootException("票据已邮寄不可撤销");
}
// 删除邮寄票据关联项目表
payMailBillProjectService.removeById(payMailBillProject.getId());
// 删除邮寄票据表
removeById(payMailBillProject.getBillId());
// todo 到账开票减掉开票
// todo 项目减掉开票
}
//校验不同项目是否属于同一个公司,开票金额是否大于当前未开票金额,企业名称是否审核
private String checkCompanyProject(List<PayMailBillProject> bmpList) {
@@ -1,29 +1,27 @@
package com.jero.payment.controller;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.validation.annotation.Validated;
import com.jero.common.system.query.QueryGenerator;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* (pay_confirm_payment_record)表控制层
@@ -152,4 +150,15 @@ public class PayConfirmPaymentRecordController extends JeroController<PayConfir
return super.importExcel(request, response, PayConfirmPaymentRecord.class);
}
/**
* 确认收入-撤销
*/
// @RequiresPermissions({"incomePaymentAndInvoiving:confirmPayment","packProject:confirmPayment"})
@AutoLog(value = "确认来款-撤销")
@ApiOperation(value="确认来款-撤销", notes="确认来款-撤销")
@PostMapping(value = "/backIncoming")
public Result<?> backIncoming(@RequestBody PayConfirmPaymentRecord payConfirmPaymentRecord) {
payConfirmPaymentRecordService.backIncoming(payConfirmPaymentRecord);
return Result.OK();
}
}
@@ -9,8 +9,9 @@ import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.ValidUtil;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillService;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbCertificatePaymentService;
@@ -27,6 +28,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
@@ -266,6 +268,14 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
String projectType, String paymentDate, String paidInvoicStatus) {
return payPaymentRecordService.exportXls(request, payCommonProject, projectType, paymentDate, paidInvoicStatus, PayCommonProjectOutput.class, "到账开票");
}
/**
* 开票-撤销
*/
@AutoLog(value = "开票-撤销")
@ApiOperation(value = "开票-撤销", notes = "开票-撤销")
@PostMapping(value = "/backInvoice")
public Result<?> backInvoice(@RequestBody PayMailBillProject payMailBillProject) {
payMailBillService.backInvoice(payMailBillProject);
return Result.OK();
}
}
@@ -1,14 +1,20 @@
package com.jero.payment.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.member.entity.*;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.mapper.PayConfirmPaymentRecordMapper;
import com.jero.payment.mapper.PayPaymentRecordMapper;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.entity.PayCommonProject;
@@ -17,14 +23,14 @@ import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.mapper.PayConfirmPaymentRecordMapper;
import java.util.Objects;
/**
* @author liJiaRao
@@ -315,7 +321,25 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
}
@Transactional(rollbackFor = JeroBootException.class)
public void backIncoming(PayConfirmPaymentRecord payConfirmPaymentRecord){
PayConfirmPaymentRecord obj = getById(payConfirmPaymentRecord.getId());
if(Objects.isNull(obj)){
throw new JeroBootException("未找到对应数据");
}
removeById(payConfirmPaymentRecord.getId());
// 标协会员缴费、证书缴费 先不做此功能的开发
if(Arrays.asList("5","6").contains(obj.getProjectType())){
throw new JeroBootException("标协会员缴费、证书缴费项目不可撤销");
}
// 更新对应项目金额
// todo 到账开票减掉金额
// todo 项目减掉金额
}
}