update 删除标协会员或证书时,同时删除关联关系

This commit is contained in:
lijiarao
2024-01-17 17:39:46 +08:00
parent 017b8f8bcd
commit a05b1a3fe4
3 changed files with 47 additions and 18 deletions
@@ -16,6 +16,7 @@ import com.jero.member.service.ITbCertificatePaymentService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.member.vo.CertificatePaymentInfo; import com.jero.member.vo.CertificatePaymentInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
@@ -41,6 +42,8 @@ import com.jero.common.aspect.annotation.AutoLog;
public class TbCertificatePaymentController extends JeroController<TbCertificatePayment, ITbCertificatePaymentService> { public class TbCertificatePaymentController extends JeroController<TbCertificatePayment, ITbCertificatePaymentService> {
@Autowired @Autowired
private ITbCertificatePaymentService tbCertificatePaymentService; private ITbCertificatePaymentService tbCertificatePaymentService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
/** /**
* 分页列表查询 * 分页列表查询
@@ -138,8 +141,13 @@ public class TbCertificatePaymentController extends JeroController<TbCertificate
@ApiOperation(value="证书缴费表-通过会员缴费id删除", notes="证书缴费表-通过会员缴费id删除") @ApiOperation(value="证书缴费表-通过会员缴费id删除", notes="证书缴费表-通过会员缴费id删除")
@PostMapping(value = "/deleteByTbPaymentId") @PostMapping(value = "/deleteByTbPaymentId")
public Result<?> deleteByTbPaymentId(@RequestBody TbCertificatePayment tbCertificatePayment) { public Result<?> deleteByTbPaymentId(@RequestBody TbCertificatePayment tbCertificatePayment) {
LambdaQueryWrapper<TbCertificatePayment> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbCertificatePayment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbCertificatePayment::getTbPaymentId, tbCertificatePayment.getTbPaymentId()); wrapper.eq(TbCertificatePayment::getTbPaymentId, tbCertificatePayment.getTbPaymentId());
TbCertificatePayment certificatePayment = tbCertificatePaymentService.getOne(wrapper);
if (certificatePayment != null){
tbMemberProjectSubitemService.deleteProject(certificatePayment.getId());
}
tbCertificatePaymentService.remove(wrapper); tbCertificatePaymentService.remove(wrapper);
return Result.OK("删除成功!"); return Result.OK("删除成功!");
} }
@@ -47,7 +47,9 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
*/ */
void deleteByIds(List<String> ids); void deleteByIds(List<String> ids);
/** void deleteProject(String id);
/**
* 通过id查询 * 通过id查询
* *
* @param id * @param id
@@ -5,29 +5,30 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.RolePermissionService; import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.service.IPayIncomeContractService;
import com.jero.member.entity.PayMemberProjectSubitem; import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectSubitemMapper; import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.ITbMemberProjectSubitemService; import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon; import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -60,6 +61,15 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
private ITbMemberProjectSubitemService tbMemberProjectSubitemService; private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource @Resource
private RolePermissionService rolePermissionService; private RolePermissionService rolePermissionService;
@Resource
private IPayPaymentRecordService payPaymentRecordService;
@Resource
private PayConfirmPaymentRecordService payConfirmPaymentRecordService;
@Resource
private IPayMailBillProjectService payMailBillProjectService;
@Resource
private IPayMailBillService payMailBillService;
/** /**
* 保存 * 保存
*/ */
@@ -105,19 +115,28 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
* @Return * @Return
* @Exception * @Exception
*/ */
private void deleteProject(String id){ @Override
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(id); public void deleteProject(String id){
// 到账!=0 || 开票!=0 || 邮寄!=0 //删除到账
if(!Objects.equals(tbMemberProjectSubitem.getInAccount(), PayProjectCommon.IN_ACCOUNT0) LambdaQueryWrapper<PayPaymentRecord> wrapper1 = new LambdaQueryWrapper<>();
|| !Objects.equals(tbMemberProjectSubitem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0) wrapper1.eq(PayPaymentRecord::getProjectId,id);
|| !Objects.equals(tbMemberProjectSubitem.getMail(),PayProjectCommon.MAIL0)){ payPaymentRecordService.remove(wrapper1);
throw new JeroBootException("项目已有到账信息不可删除!"); //删除确认收入
} LambdaQueryWrapper<PayConfirmPaymentRecord> wrapper = new LambdaQueryWrapper<>();
// 校验项目是否已关联合同 抛异常 wrapper.eq(PayConfirmPaymentRecord::getProjectId,id);
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(tbMemberProjectSubitem.getId())); payConfirmPaymentRecordService.remove(wrapper);
//删除开票
LambdaQueryWrapper<PayMailBillProject> wrapper2 = new LambdaQueryWrapper<>();
wrapper2.eq(PayMailBillProject::getProjectId,id);
payMailBillProjectService.remove(wrapper2);
// 删除合同关联
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,id);
payIncomeContractAssociatedService.remove(queryPayIncomeContractAssociated);
// 如果已打报,同步删除打包关联 // 如果已打报,同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,tbMemberProjectSubitem.getId()); update.eq(PayPackCompanyProject::getProjectId,id);
payPackCompanyProjectService.remove(update); payPackCompanyProjectService.remove(update);
} }