收入合同关联会员项目

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
@@ -8,6 +8,7 @@ import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.entity.PayIncomeContractAudit;
import com.jero.contract.vo.PayIncomeContractInput;
import com.jero.contract.vo.ProjectOutput;
import com.jero.project.entity.PayWorkingGroupSubItem;
import java.util.List;
@@ -130,7 +131,16 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
*/
PayIncomeContract checkContractNum(String contractNum);
/**
* @Description 校验项目是否已关联合同
* @Description 校验项目是否已关联合同 抛异常
* @Author lqt
* @Date 2021/9/18
* @Param
* @Return
* @Exception
*/
void getPayIncomeContractAssociated(List<String> list);
/**
* @Description 校验项目是否已关联合同 ,返回合同信息
* @Author lqt
* @Date 2021/9/9
* @Param projectId 项目id
@@ -796,6 +796,16 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
return null;
}
@Override
public void getPayIncomeContractAssociated(List<String> list) {
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
throw new JeroBootException("已关联合同不可删除!");
}
}
@Override
public PayIncomeContract checkPayIncomeContractAssociated(String projectId) {
// 检查项目是否关联了合同
@@ -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查询
*/
@@ -11,7 +11,9 @@ import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.base.controller.JeroController;
@@ -23,6 +25,7 @@ import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.service.IPayCommonProjectService;
@@ -220,21 +223,7 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@ApiOperation(value="普通项目管理-通过id删除", notes="普通项目管理-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id") String id) {
if(StringUtils.isBlank(id)){
return Result.error("id不能为空!");
}
try {
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getProjectId,id);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
if(!Objects.isNull(payIncomeContractAssociated)){
return Result.error("已关联合同不可删除!");
}
}catch (Exception e){
log.error("普通项目管理-批量删除异常",e);
return Result.error("已关联合同不可删除!");
}
payCommonProjectService.removeById(id);
payCommonProjectService.delete(id);
return Result.OK("删除成功!");
}
@@ -247,22 +236,7 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@ApiOperation(value="普通项目管理-批量删除", notes="普通项目管理-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids") String ids) {
if(StringUtils.isBlank(ids)){
return Result.error("id不能为空!");
}
String[] s = ids.split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
return Result.error("id不能为空!");
}
}
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.in(PayIncomeContractAssociated::getProjectId,Arrays.asList(ids.split(",")));
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(query);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
return Result.error("已关联合同不可删除!");
}
this.payCommonProjectService.removeByIds(Arrays.asList(ids.split(",")));
payCommonProjectService.deleteBatch(ids);
return Result.OK("批量删除成功!");
}
@@ -3,24 +3,13 @@ package com.jero.project.controller;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.vo.ProjectDetailVO;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.modules.message.handle.impl.EmailSendMsgHandle;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.*;
@@ -31,16 +20,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.project.vo.SetChargeInput;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.jero.util.AmountUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.record.DVALRecord;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
@@ -56,15 +39,11 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping("/project/payWorkingGroupSubitem")
@Slf4j
public class PayWorkingGroupSubItemController extends JeroController<PayWorkingGroupSubItem, IPayWorkingGroupSubItemService> {
@Autowired
private ISysBaseAPI sysBaseAPI;
@Autowired
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
@Autowired
private ProjectDetailService projectDetailService;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Autowired
private IPayWorkingGroupService payWorkingGroupService;
@@ -188,21 +167,7 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-通过id删除", notes = "工作组成员-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id") String id) {
if (StringUtils.isBlank(id)) {
return Result.error("id不能为空!");
}
try {
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getProjectId, id);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
if (!Objects.isNull(payIncomeContractAssociated)) {
return Result.error("已关联合同不可删除!");
}
} catch (Exception e) {
log.error("普通项目管理-批量删除异常", e);
return Result.error("已关联合同不可删除!");
}
payWorkingGroupSubItemService.removeById(id);
payWorkingGroupSubItemService.delete(id);
return Result.OK("删除成功!");
}
@@ -215,22 +180,7 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-批量删除", notes = "工作组成员-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
if (StringUtils.isBlank(ids)) {
return Result.error("id不能为空!");
}
String[] s = ids.split(",");
for (String s1 : s) {
if (StringUtils.isBlank(s1)) {
return Result.error("id不能为空!");
}
}
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.in(PayIncomeContractAssociated::getProjectId, Arrays.asList(ids.split(",")));
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(query);
if (!CollectionUtils.isEmpty(listPayIncomeContractAssociated)) {
return Result.error("已关联合同不可删除!");
}
payWorkingGroupSubItemService.removeByIds(Arrays.asList(ids.split(",")));
payWorkingGroupSubItemService.deleteBatch(ids);
return Result.OK("批量删除成功!");
}
@@ -45,6 +45,24 @@ public interface IPayCommonProjectService extends IService<PayCommonProject> {
* @Exception
*/
void editPayCommonProject(PayCommonProject payCommonProject);
/**
* @Description 根据id删除
* @Author lqt
* @Date 2021/9/18
* @Param
* @Return
* @Exception
*/
void delete(String id);
/**
* @Description 批量删除
* @Author lqt
* @Date 2021/9/18
* @Param
* @Return
* @Exception
*/
void deleteBatch(String ids);
/**
* 全所统计
@@ -79,4 +79,24 @@ public interface IPayWorkingGroupSubItemService extends IService<PayWorkingGroup
List<PayWorkGroupSubletStatistics> importExcelStatistics(String id);
/**
* @Description 根据id删除
* @Author lqt
* @Date 2021/9/18
* @Param
* @Return
* @Exception
*/
void delete(String id);
/**
* @Description 批量删除
* @Author lqt
* @Date 2021/9/18
* @Param
* @Return
* @Exception
*/
void deleteBatch(String ids);
}
@@ -16,6 +16,7 @@ import com.jero.contract.service.IPayIncomeContractService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon;
@@ -40,7 +41,9 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@@ -56,7 +59,6 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
@Resource
private PayCommonProjectMapper payCommonProjectMapper;
@Autowired
private IPayCommonProjectService payCommonProjectService;
@Autowired
@@ -68,12 +70,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Autowired
private ProjectDetailService projectDetailService;
@@ -203,6 +201,58 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
return payCommonProjectMapper.queryPageList3(allProjectStatisticsSearch);
}
@Override
@Transactional
public void delete(String id) {
if(StringUtils.isBlank(id)){
throw new JeroBootException("id不能为空!");
}
deleteProject(id);
payCommonProjectService.removeById(id);
}
@Override
@Transactional
public void deleteBatch(String ids) {
if(StringUtils.isBlank(ids)){
throw new JeroBootException("id不能为空!");
}
String[] s = ids.split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
throw new JeroBootException("id不能为空!");
}
deleteProject(s1);
}
this.payCommonProjectService.removeByIds(Arrays.asList(ids.split(",")));
}
/**
* @Description 删除项目打包关联,临时企业、联系信息
* @Author lqt
* @Date 2021/9/18
* @Param id 项目id
* @Return
* @Exception
*/
private void deleteProject(String id){
PayCommonProject payCommonProject = payCommonProjectService.getById(id);
// 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payCommonProject.getInAccount(),PayProjectCommon.IN_ACCOUNT0)
|| !Objects.equals(payCommonProject.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|| !Objects.equals(payCommonProject.getMail(),PayProjectCommon.MAIL0)){
throw new JeroBootException("项目已有到账信息不可删除!");
}
// 校验项目是否已关联合同 抛异常
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payCommonProject.getId()));
// 如果已打报,同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId());
payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payCommonProject.getChargeCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProject.getContactsTemporaryId(),payCommonProject.getMailContactsTemporaryId()));
}
/**
* @Description 插入企业信息,联系人信息到临时表,更新项目记录
* @Author lqt
@@ -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.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.project.entity.*;
@@ -49,6 +50,8 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
private PayWorkingGroupMapper payWorkingGroupMapper;
@Autowired
private ISysUserService sysUserService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Override
public IPage<PayWorkingGroupVO> queryPageList(Page<PayWorkingGroupVO> page, PayWorkingGroup payWorkingGroup) {
@@ -71,7 +74,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
getPayIncomeContractAssociated(listPayWorkingGroupSubItem);
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) {
throw new JeroBootException("工作组下存在企业,不可进行删除!");
}
payWorkingGroupService.removeById(id);
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
@@ -84,7 +89,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.in(PayWorkingGroupSubItem::getWorkingGroupId, ids);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
getPayIncomeContractAssociated(listPayWorkingGroupSubItem);
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) {
throw new JeroBootException("工作组下存在企业,不可进行删除!");
}
payWorkingGroupService.removeByIds(ids);
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getWorkingGroupId,ids);
@@ -4,6 +4,7 @@ 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.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.util.ValidUtil;
@@ -13,8 +14,10 @@ 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.project.entity.*;
@@ -77,8 +80,6 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
private ProjectDetailService projectDetailService;
@Override
@@ -504,6 +505,58 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
}
@Override
@Transactional
public void delete(String id) {
if (StringUtils.isBlank(id)) {
throw new JeroBootException("id不能为空!");
}
deleteProject(id);
payWorkingGroupSubItemService.removeById(id);
}
@Override
@Transactional
public void deleteBatch(String ids) {
if (StringUtils.isBlank(ids)) {
throw new JeroBootException("id不能为空!");
}
String[] s = ids.split(",");
for (String s1 : s) {
if (StringUtils.isBlank(s1)) {
throw new JeroBootException("id不能为空!");
}
deleteProject(s1);
}
payWorkingGroupSubItemService.removeByIds(Arrays.asList(ids.split(",")));
}
/**
* @Description 删除项目打包关联,临时企业、联系信息
* @Author lqt
* @Date 2021/9/18
* @Param id 项目id
* @Return
* @Exception
*/
private void deleteProject(String id){
PayWorkingGroupSubItem payWorkingGroupSubItem = payWorkingGroupSubItemService.getById(id);
// 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payWorkingGroupSubItem.getInAccount(),PayProjectCommon.IN_ACCOUNT0)
|| !Objects.equals(payWorkingGroupSubItem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|| !Objects.equals(payWorkingGroupSubItem.getMail(),PayProjectCommon.MAIL0)){
throw new JeroBootException("项目已有到账信息不可删除!");
}
// 校验项目是否已关联合同 抛异常
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payWorkingGroupSubItem.getId()));
// 如果已打报,同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,payWorkingGroupSubItem.getId());
payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItem.getChargeCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payWorkingGroupSubItem.getContactsTemporaryIdOne(),payWorkingGroupSubItem.getContactsTemporaryIdTwo(),payWorkingGroupSubItem.getContactsTemporaryIdThree(),payWorkingGroupSubItem.getMailContactsTemporaryId()));
}
/**
* @Description 插入企业信息,联系人信息到临时表,更新项目记录
* @Author lqt