收入合同关联会员项目
This commit is contained in:
+58
-2
@@ -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;
|
||||
}
|
||||
|
||||
+14
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+14
@@ -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);
|
||||
}
|
||||
|
||||
+15
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
+19
@@ -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>
|
||||
+16
@@ -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>
|
||||
+14
@@ -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);
|
||||
}
|
||||
|
||||
+13
@@ -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);
|
||||
}
|
||||
|
||||
+50
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+108
-5
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+45
-1
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+45
-1
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user