收入合同关联会员项目

This commit is contained in:
梁琦涛
2021-09-18 09:03:31 +08:00
parent cec778f25b
commit 2e9a63f4da
16 changed files with 564 additions and 67 deletions
@@ -2,18 +2,26 @@ package com.jero.member.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.IPayMemberProjectService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -35,13 +43,17 @@ import com.jero.common.aspect.annotation.AutoLog;
public class PayMemberProjectController extends JeroController<PayMemberProject, IPayMemberProjectService> {
@Resource
private IPayMemberProjectService memberProjectService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
/**
* 分页列表查询
*/
@AutoLog(value = "会员项目表-分页列表查询")
@ApiOperation(value="会员项目表-分页列表查询", notes="会员项目表-分页列表查询")
@AutoLog(value = "会员项目表-根据成员单位列表查询")
@ApiOperation(value="会员项目表-根据成员单位列表查询", notes="会员项目表-根据成员单位列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(PayMemberProject payMemberProject,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@@ -53,6 +65,50 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
return Result.OK(memberProjectPage);
}
/**
* @Description 收入合同列表分页查询
* @Author lqt
* @Date 2021/9/17
* @Param companyId 企业id
* @Param contractId 合同id
* @Param projectType 会员类型 4:会员项目,5:标协会员项目
* @Param memberName 会员名称
* @Return
* @Exception
*/
@AutoLog(value = "会员项目表-收入合同列表分页查询")
@ApiOperation(value="会员项目表-收入合同列表分页查询", notes="会员项目表-收入合同列表分页查询")
@GetMapping(value = "/queryListByCompany")
public Result<?> queryListByCompany(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name = "companyId") String companyId,
@RequestParam(name = "contractId") String contractId,
@RequestParam(name = "projectType") String projectType,
@RequestParam(name = "memberName",required = false) String memberName) {
if(StringUtils.isBlank(companyId)){
return Result.error("企业id不能为空!");
}
PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId);
if(Objects.isNull(payIncomeContract)){
return Result.error("合同不存在!");
}
// 会员
if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE4)){
Page<PayMemberProject> page = new Page<>(pageNo, pageSize);
IPage<PayMemberProject> list = memberProjectService.queryListByCompany(page,companyId,memberName,PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack(),payIncomeContract.getPackYear());
return Result.OK(list);
}
// 标协会员
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());
return Result.OK(list);
}
return Result.OK(null);
}
/**
* 列表查询
*/
@@ -5,6 +5,7 @@ import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.modules.system.volid.group.*;
@@ -133,4 +134,11 @@ public class PayMemberProject implements Serializable {
@Size(max = 200, message = "备注最大为200个字符")
private String remark;
/**
* 项目类型
*/
@TableField(exist = false)
@ApiModelProperty(value = "项目类型")
private Integer projectType;
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.util.PasswordUtil;
@@ -198,4 +199,17 @@ public class TbMemberProjectSubitem implements Serializable {
return PasswordUtil.decrypt(mobile);
}
/**项目名称*/
@ApiModelProperty(value = "项目名称")
@TableField(exist = false)
private String projectName;
/**
* 项目类型
*/
@TableField(exist = false)
@ApiModelProperty(value = "项目类型")
private Integer projectType;
}
@@ -1,7 +1,10 @@
package com.jero.member.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.entity.PayMemberProject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 会员项目表
@@ -11,4 +14,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface PayMemberProjectMapper extends BaseMapper<PayMemberProject> {
/**
* @Description 查询与收入合同企业一致的数据
* @Author lqt
* @Date 2021/9/17
* @Param companyId 企业id
* @Param memberName 会员名称
* @Param projectType 项目类型
* @Return
* @Exception
*/
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page,@Param("companyId") String companyId,@Param("memberName") String memberName,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear);
}
@@ -2,6 +2,8 @@ package com.jero.member.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -14,4 +16,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProjectSubitem> {
/**
* @Description 查询与收入合同企业一致的数据
* @Author lqt
* @Date 2021/9/17
* @Param companyId 企业id
* @Param memberName 会员名称
* @Param projectType 项目类型
* @Param
* @Return
* @Exception
*/
IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page,@Param("companyId") String companyId,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear);
}
@@ -16,4 +16,23 @@
<result column="charge_notice_file_id" property="chargeNoticeFileId" />
<result column="remark" property="remark" />
</resultMap>
<select id="queryListByCompany" resultType="com.jero.member.entity.PayMemberProject">
SELECT pmp.*,#{projectType} AS projectType FROM pay_member_project_subitem pmps
LEFT JOIN pay_member_project pmp ON pmp.id = pmps.project_id
LEFT JOIN pay_pack_company_project ppcp ON ppcp.project_id = pmps.id
LEFT JOIN pay_pack_company ppc ON ppc.id = ppcp.pack_id
<if test="pack == 1 and packYear != '' and packYear != null">
AND ppc.pack_year=#{packYear}
</if>
LEFT JOIN pay_income_contract_associated pica ON pica.project_id = pmps.id
WHERE pmps.company_id =#{companyId} AND pmp.id IS NOT NULL AND pmp.id != ''
AND (pica.id is null OR pica.id = '')
<if test="memberName != '' and memberName != null">
AND pmp.project_name like concat('%',concat(#{memberName},'%'))
</if>
<if test="pack == 1 and packYear != '' and packYear != null">
AND (ppc.id is null OR ppc.id ='')
</if>
GROUP BY pmp.id ORDER BY pmp.create_time DESC
</select>
</mapper>
@@ -23,4 +23,20 @@
<result column="make_invoice" property="makeInvoice" />
<result column="mail" property="mail" />
</resultMap>
<select id="queryListByCompany" resultType="com.jero.member.entity.TbMemberProjectSubitem">
SELECT tmps.*,tmp.project_name,#{projectType} AS projectType FROM tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp ON tmps.project_id = tmp.id
LEFT JOIN pay_pack_company_project ppcp ON ppcp.project_id = tmps.id
LEFT JOIN pay_pack_company ppc ON ppc.id = ppcp.pack_id
<if test="pack == 1 and packYear != '' and packYear != null">
AND ppc.pack_year=#{packYear}
</if>
LEFT JOIN pay_income_contract_associated pica ON pica.project_id = tmps.id
WHERE tmps.company_id =#{companyId} AND tmp.id IS NOT NULL AND tmp.id != ''
AND (pica.id is null OR pica.id = '')
<if test="pack == 1 and packYear != '' and packYear != null">
AND (ppc.id is null OR ppc.id ='')
</if>
GROUP BY tmps.id ORDER BY tmps.create_time DESC
</select>
</mapper>
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.entity.PayMemberProject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.project.common.PayProjectCommon;
import java.util.List;
/**
@@ -69,4 +71,16 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
* @return
*/
IPage<PayMemberProject> getPage(Page<PayMemberProject> page, QueryWrapper<PayMemberProject> queryWrapper);
/**
* @Description 查询与收入合同企业一致的数据
* @Author lqt
* @Date 2021/9/17
* @Param companyId 企业id
* @Param memberName 会员名称
* @Param projectType 项目类型
* @Return
* @Exception
*/
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page,String companyId,String memberName,String projectType,Integer pack,String packYear);
}
@@ -1,5 +1,7 @@
package com.jero.member.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -58,4 +60,15 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
* @return
*/
List<TbMemberProjectSubitem> queryList();
/**
* @Description 查询与收入合同企业一致的数据
* @Author lqt
* @Date 2021/9/17
* @Param companyId 企业id
* @Param memberName 会员名称
* @Param projectType 项目类型
* @Return
* @Exception
*/
IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear);
}
@@ -5,15 +5,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectMapper;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
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.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@@ -25,8 +34,14 @@ import javax.annotation.Resource;
*/
@Service
public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProjectMapper, PayMemberProject> implements IPayMemberProjectService {
@Resource
private PayMemberProjectMapper payMemberProjectMapper;
@Resource
private SysUserMapper userMapper;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Resource
private IPayMemberProjectSubitemService memberProjectSubitemService;
/**
* 保存
*
@@ -34,6 +49,7 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
* @return
*/
@Override
@Transactional
public void add(PayMemberProject payMemberProject) {
//判断项目名称
LambdaQueryWrapper<PayMemberProject> wrapper = new LambdaQueryWrapper<>();
@@ -49,9 +65,6 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
throw new JeroBootException("联系人不存在");
}
payMemberProject.setDirectorName(sysUser.getUsername());
save(payMemberProject);
}
@@ -74,9 +87,33 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
*/
@Override
public void deleteById(String id) {
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(PayMemberProjectSubitem::getProjectId, id);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listPayMemberProjectSubitem);
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("已关联合同不可删除!");
}
}
}
/**
* 批量删除
*
@@ -85,7 +122,11 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.in(PayMemberProjectSubitem::getProjectId, ids);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listPayMemberProjectSubitem);
removeByIds(ids);
}
/**
@@ -121,4 +162,9 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
memberProjectPage.setRecords(records);
return memberProjectPage;
}
@Override
public IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page,String companyId, String memberName, String projectType,Integer pack,String packYear) {
return payMemberProjectMapper.queryListByCompany(page,companyId,memberName,projectType, pack, packYear);
}
}
@@ -1,11 +1,19 @@
package com.jero.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.exception.JeroBootException;
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.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
@@ -18,11 +26,15 @@ import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.valid.group.ChargeNotice;
import com.jero.valid.group.Contract;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@@ -34,20 +46,23 @@ import javax.annotation.Resource;
*/
@Service
public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMemberProjectSubitemMapper, PayMemberProjectSubitem> implements IPayMemberProjectSubitemService {
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementTemporaryService companyManagementTemporaryService;
@Resource
private IPayContactsManagementTemporaryService contactsManagementTemporaryService;
@Resource
private IPayMemberProjectService memberProjectService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private ProjectDetailService projectDetailService;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
/**
* 保存
*/
@@ -78,6 +93,22 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
//邮寄
payMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
save(payMemberProjectSubitem);
// 来款方式为合同,校验合同编号
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
PayIncomeContract payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(payMemberProjectSubitem.getContractNo(),payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getId());
if(!Objects.isNull(payIncomeContract)){
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContract,payMemberProjectSubitem.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE4));
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if(Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
payPackCompanyProjectService.setPack(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getCompanyContactId(),payIncomeContract.getPackYear(),payIncomeContract.getId(),PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack());
LambdaUpdateWrapper<PayMemberProjectSubitem> update = new LambdaUpdateWrapper<>();
update.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId());
update.set(PayMemberProjectSubitem::getPack,PayProjectCommon.PACKAGING1);
update(update);
}
}
}
}
/**
@@ -90,6 +121,40 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
if (payMemberProjectSubitem1 == null){
throw new JeroBootException("会员项目不存在");
}
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem1.getCompanyId())
&& (Objects.equals(payMemberProjectSubitem.getPack(),PayProjectCommon.PACKAGING1)
|| !Objects.equals(payMemberProjectSubitem.getInAccount(),PayProjectCommon.IN_ACCOUNT0)
|| !Objects.equals(payMemberProjectSubitem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|| !Objects.equals(payMemberProjectSubitem.getMail(),PayProjectCommon.MAIL0))){
throw new JeroBootException("来款企业不可更改!");
}
// 校验项目是否已关联合同
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payMemberProjectSubitem.getId());
if(!Objects.isNull(payIncomeContract)){
if(!Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
}
if(!Objects.equals(payIncomeContract.getContractNum(),payMemberProjectSubitem.getContractNo())){
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
}
}else{
PayIncomeContract payIncomeContractAdd = null;
// 来款方式为合同,校验合同编号
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(payMemberProjectSubitem.getContractNo(),payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getId());
}
if(!Objects.isNull(payIncomeContractAdd)){
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContractAdd,payMemberProjectSubitem.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE4));
}else{
payMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
}
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if(!Objects.isNull(payIncomeContractAdd) && Objects.equals(payIncomeContractAdd.getPack(),PayProjectCommon.PACKAGING1)){
payPackCompanyProjectService.setPack(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getCompanyContactId(),payIncomeContractAdd.getPackYear(),payMemberProjectSubitem.getId(),PayProjectCommon.PROJECT_TYPE4,payIncomeContractAdd.getPack());
}
}
//无法更改状态
payMemberProjectSubitem.setPack(payMemberProjectSubitem1.getPack());
//payMemberProjectSubitem.setNeedInvoice(payMemberProjectSubitem1.getNeedInvoice());
@@ -112,6 +177,19 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
if (!payMemberProjectSubitem1.getPostContactTemporaryId().equals(postContactId)) {
contactsManagementTemporaryService.removeById(postContactId);
}
// 变更应收金额,重新校验状态
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payMemberProjectSubitem.getId(),payMemberProjectSubitem.getAmountReceivable(),payMemberProjectSubitem.getNeedInvoice());
if(!Objects.isNull(projectStatusVO)){
if(!Objects.isNull(projectStatusVO.getInAccount())){
payMemberProjectSubitem.setInAccount(projectStatusVO.getInAccount());
}
if(!Objects.isNull(projectStatusVO.getMakeInvoice())){
payMemberProjectSubitem.setMakeInvoice(projectStatusVO.getMakeInvoice());
}
if(!Objects.isNull(projectStatusVO.getMail())){
payMemberProjectSubitem.setMail(projectStatusVO.getMail());
}
}
validMemberProjectSubitem(payMemberProjectSubitem);
saveOrUpdate(payMemberProjectSubitem);
}
@@ -168,7 +246,19 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
* 通过id删除
*/
@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);
removeById(id);
}
@@ -190,10 +280,23 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
* 批量删除
*/
@Override
@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);
}
removeByIds(ids);
}
@@ -1,12 +1,25 @@
package com.jero.member.service.impl;
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.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
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.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
/**
* @Description: 标协会员项目表
* @Author: jero-boot
@@ -16,6 +29,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMapper, TbMemberProject> implements ITbMemberProjectService {
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
/**
* 保存
*/
@@ -37,15 +54,42 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
*/
@Override
public void deleteById(String id) {
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(TbMemberProjectSubitem::getProjectId, id);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listTbMemberProjectSubitem);
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("已关联合同不可删除!");
}
}
}
/**
* 批量删除
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.in(TbMemberProjectSubitem::getProjectId, ids);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
getPayIncomeContractAssociated(listTbMemberProjectSubitem);
removeByIds(ids);
}
/**
@@ -1,12 +1,23 @@
package com.jero.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.ITbMemberProjectSubitemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
/**
* @Description: 标协会员项目成员表
* @Author: jero-boot
@@ -16,6 +27,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProjectSubitemMapper, TbMemberProjectSubitem> implements ITbMemberProjectSubitemService {
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
/**
* 保存
*/
@@ -37,6 +52,17 @@ 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("已关联合同不可删除!");
}
removeById(id);
}
@@ -45,7 +71,20 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(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("已关联合同不可删除!");
}
});
removeByIds(ids);
}
/**
@@ -63,4 +102,9 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
public List<TbMemberProjectSubitem> queryList() {
return list();
}
@Override
public IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear) {
return tbMemberProjectSubitemMapper.queryListByCompany(page, companyId, projectType,pack,packYear);
}
}