收入合同关联会员项目

This commit is contained in:
梁琦涛
2021-09-18 11:56:09 +08:00
parent 5acaecbc80
commit f148054711
15 changed files with 295 additions and 193 deletions
@@ -20,6 +20,7 @@ import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.project.common.PayProjectCommon;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -104,6 +105,9 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE5)){
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
IPage<TbMemberProjectSubitem> list = tbMemberProjectSubitemService.queryListByCompany(page,companyId,PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack(),payIncomeContract.getPackYear());
if(!CollectionUtils.isEmpty(list.getRecords())){
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = list.getRecords();
}
return Result.OK(list);
}
return Result.OK(null);
@@ -1,16 +1,11 @@
package com.jero.member.controller;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.math.MathUtil;
import cn.hutool.core.util.NumberUtil;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.exception.JeroBootException;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectMapper;
@@ -17,11 +18,13 @@ import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.entity.PayWorkGroupSubletStatistics;
import com.jero.statistics.entity.AllProjectStatistics;
import com.jero.statistics.entity.AllProjectStatisticsSearch;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroupSubItem;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -39,13 +42,14 @@ import javax.annotation.Resource;
public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProjectMapper, PayMemberProject> implements IPayMemberProjectService {
@Resource
private SysUserMapper userMapper;
@Resource
private PayMemberProjectMapper payMemberProjectMapper;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Resource
private IPayMemberProjectSubitemService memberProjectSubitemService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
/**
* 保存
*
@@ -94,30 +98,12 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(PayMemberProjectSubitem::getProjectId, id);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listPayMemberProjectSubitem);
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)) {
throw new JeroBootException("会员项目下存在企业,不可进行删除!");
}
removeById(id);
}
/**
* @Description 校验是存在关联合同的项目
* @Author lqt
* @Date 2021/9/8
* @Param
* @Return
* @Exception
*/
private void getPayIncomeContractAssociated(List<PayMemberProjectSubitem> listPayMemberProjectSubitem){
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)){
List<String> list = listPayMemberProjectSubitem.stream().map(PayMemberProjectSubitem::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
throw new JeroBootException("已关联合同不可删除!");
}
}
}
/**
* 批量删除
*
@@ -129,7 +115,9 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.in(PayMemberProjectSubitem::getProjectId, ids);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listPayMemberProjectSubitem);
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)) {
throw new JeroBootException("会员项目下存在企业,不可进行删除!");
}
removeByIds(ids);
}
@@ -7,12 +7,11 @@ import com.jero.common.service.ProjectDetailService;
import com.jero.common.util.ValidUtil;
import com.jero.common.vo.ProjectStatusVO;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
@@ -30,6 +29,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@@ -63,6 +64,8 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
private ProjectDetailService projectDetailService;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Resource
private IPayMemberProjectSubitemService memberProjectSubitemService;
/**
* 保存
*/
@@ -248,18 +251,8 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
@Override
@Transactional
public void deleteById(String id) {
try {
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getProjectId, id);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
if (!Objects.isNull(payIncomeContractAssociated)) {
throw new JeroBootException("已关联合同不可删除!");
}
} catch (Exception e) {
log.error("会员项目-批量删除异常", e);
throw new JeroBootException("已关联合同不可删除!");
}
delectTemporaryById(id);
deleteProject(id);
// delectTemporaryById(id);
removeById(id);
}
@@ -283,23 +276,41 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
@Transactional
public void deleteByIds(List<String> ids) {
for (String id : ids) {
try {
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getProjectId, id);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
if (!Objects.isNull(payIncomeContractAssociated)) {
throw new JeroBootException("已关联合同不可删除!");
}
} catch (Exception e) {
log.error("普通项目管理-批量删除异常", e);
throw new JeroBootException("已关联合同不可删除!");
}
delectTemporaryById(id);
deleteProject(id);
// delectTemporaryById(id);
}
removeByIds(ids);
}
/**
* @Description 删除项目打包关联,临时企业、联系信息
* @Author lqt
* @Date 2021/9/18
* @Param id 项目id
* @Return
* @Exception
*/
private void deleteProject(String id){
PayMemberProjectSubitem payMemberProjectSubitem = memberProjectSubitemService.getById(id);
// 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payMemberProjectSubitem.getInAccount(), PayProjectCommon.IN_ACCOUNT0)
|| !Objects.equals(payMemberProjectSubitem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|| !Objects.equals(payMemberProjectSubitem.getMail(),PayProjectCommon.MAIL0)){
throw new JeroBootException("项目已有到账信息不可删除!");
}
// 校验项目是否已关联合同 抛异常
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payMemberProjectSubitem.getId()));
// 如果已打报,同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId());
payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId());
contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId()));
}
/**
* 通过id查询
*/
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -34,12 +35,12 @@ import javax.annotation.Resource;
@Service
public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMapper, TbMemberProject> implements ITbMemberProjectService {
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private TbMemberProjectMapper tbMemberProjectMapper;
@Autowired
private IPayIncomeContractService payIncomeContractService;
/**
* 保存
*/
@@ -64,28 +65,11 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(TbMemberProjectSubitem::getProjectId, id);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listTbMemberProjectSubitem);
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)) {
throw new JeroBootException("标协会员项目下存在企业,不可进行删除!");
}
removeById(id);
}
/**
* @Description 校验是存在关联合同的项目
* @Author lqt
* @Date 2021/9/8
* @Param
* @Return
* @Exception
*/
private void getPayIncomeContractAssociated(List<TbMemberProjectSubitem> listTbMemberProjectSubitem){
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)){
List<String> list = listTbMemberProjectSubitem.stream().map(TbMemberProjectSubitem::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
throw new JeroBootException("已关联合同不可删除!");
}
}
}
/**
* 批量删除
@@ -95,7 +79,9 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.in(TbMemberProjectSubitem::getProjectId, ids);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listTbMemberProjectSubitem);
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)) {
throw new JeroBootException("标协会员项目下存在企业,不可进行删除!");
}
removeByIds(ids);
}
@@ -1,16 +1,27 @@
package com.jero.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.exception.JeroBootException;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@@ -31,6 +42,16 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
/**
* 保存
*/
@@ -52,17 +73,7 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
*/
@Override
public void deleteById(String id) {
try {
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getProjectId, id);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
if (!Objects.isNull(payIncomeContractAssociated)) {
throw new JeroBootException("已关联合同不可删除!");
}
} catch (Exception e) {
log.error("标协会员-批量删除异常", e);
throw new JeroBootException("已关联合同不可删除!");
}
deleteProject(id);
removeById(id);
}
@@ -72,21 +83,36 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
@Override
public void deleteByIds(List<String> ids) {
ids.forEach(p->{
try {
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getProjectId, p);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
if (!Objects.isNull(payIncomeContractAssociated)) {
throw new JeroBootException("已关联合同不可删除!");
}
} catch (Exception e) {
log.error("标协会员-批量删除异常", e);
throw new JeroBootException("已关联合同不可删除!");
}
deleteProject(p);
});
removeByIds(ids);
}
/**
* @Description 删除项目打包关联,临时企业、联系信息
* @Author lqt
* @Date 2021/9/18
* @Param id 项目id
* @Return
* @Exception
*/
private void deleteProject(String id){
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(id);
// 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(tbMemberProjectSubitem.getInAccount(), PayProjectCommon.IN_ACCOUNT0)
|| !Objects.equals(tbMemberProjectSubitem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|| !Objects.equals(tbMemberProjectSubitem.getMail(),PayProjectCommon.MAIL0)){
throw new JeroBootException("项目已有到账信息不可删除!");
}
// 校验项目是否已关联合同 抛异常
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(tbMemberProjectSubitem.getId()));
// 如果已打报,同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,tbMemberProjectSubitem.getId());
payPackCompanyProjectService.remove(update);
}
/**
* 通过id查询
*/