add 企业端 标协会员项目成员表
This commit is contained in:
+9
-6
@@ -23,6 +23,8 @@ import com.jero.company.vo.Jscode2sessionVO;
|
|||||||
import com.jero.config.StaticConfig;
|
import com.jero.config.StaticConfig;
|
||||||
import com.jero.data.entity.PayCaseCouncilSubitem;
|
import com.jero.data.entity.PayCaseCouncilSubitem;
|
||||||
import com.jero.data.service.IPayCaseCouncilSubitemService;
|
import com.jero.data.service.IPayCaseCouncilSubitemService;
|
||||||
|
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||||
|
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||||
import com.jero.modules.base.service.BaseCommonService;
|
import com.jero.modules.base.service.BaseCommonService;
|
||||||
import com.jero.modules.system.model.SysLoginModel;
|
import com.jero.modules.system.model.SysLoginModel;
|
||||||
import com.jero.modules.system.service.ISysDictService;
|
import com.jero.modules.system.service.ISysDictService;
|
||||||
@@ -68,6 +70,8 @@ public class CompanyLoginController {
|
|||||||
private WxSecretMapper wxSecretMapper;
|
private WxSecretMapper wxSecretMapper;
|
||||||
@Value("${defaultPassword}")
|
@Value("${defaultPassword}")
|
||||||
private String defaultPassword;
|
private String defaultPassword;
|
||||||
|
@Resource
|
||||||
|
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||||
/**
|
/**
|
||||||
* 密码登录错误的次数前缀
|
* 密码登录错误的次数前缀
|
||||||
*/
|
*/
|
||||||
@@ -413,13 +417,12 @@ public class CompanyLoginController {
|
|||||||
contactsManagement.setIsCouncil(1);
|
contactsManagement.setIsCouncil(1);
|
||||||
}
|
}
|
||||||
//判断企业角色
|
//判断企业角色
|
||||||
QueryWrapper<PayCompanyManagement> queryWrapper2 = new QueryWrapper<>();
|
String companyId = contactsManagement.getCompanyId();
|
||||||
queryWrapper2.eq("id",contactsManagement.getCompanyId());
|
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(companyId);
|
||||||
PayCompanyManagement one = payCompanyManagementService.getOne(queryWrapper2);
|
if(takeEffectInfo != null){
|
||||||
if(ObjectUtils.isEmpty(one)){
|
contactsManagement.setCompanyRole("2");
|
||||||
throw new JeroBootException("联系人无企业信息");
|
|
||||||
}else {
|
}else {
|
||||||
contactsManagement.setCompanyRole(one.getRoleCode());
|
contactsManagement.setCompanyRole("1");
|
||||||
}
|
}
|
||||||
// 生成token
|
// 生成token
|
||||||
String token = JwtUtil.sign(phone, syspassword);
|
String token = JwtUtil.sign(phone, syspassword);
|
||||||
|
|||||||
+30
@@ -9,8 +9,11 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import com.jero.aspect.annotation.CompanyNameTranslate;
|
import com.jero.aspect.annotation.CompanyNameTranslate;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.system.query.QueryGenerator;
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
import com.jero.common.util.AuthenticationUtils;
|
import com.jero.common.util.AuthenticationUtils;
|
||||||
import com.jero.common.util.PasswordUtil;
|
import com.jero.common.util.PasswordUtil;
|
||||||
|
import com.jero.common.util.oConvertUtils;
|
||||||
|
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||||
import com.jero.member.entity.TbMemberProject;
|
import com.jero.member.entity.TbMemberProject;
|
||||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||||
@@ -20,6 +23,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.jero.member.vo.*;
|
import com.jero.member.vo.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -65,6 +70,31 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
|
|||||||
return Result.OK(pageList);
|
return Result.OK(pageList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业端 标协会员项目成员表-分页列表查询
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "企业端 标协会员项目成员表-分页列表查询")
|
||||||
|
@GetMapping(value = "/pageCompany")
|
||||||
|
public Result<IPage<TbMemberProjectSubitem>> queryPageListCompany(TbMemberProjectSubitem projectSubitem,
|
||||||
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
|
HttpServletRequest req) {
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
projectSubitem.setCompanyId(loginUser.getCompanyId());
|
||||||
|
QueryWrapper<TbMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(projectSubitem, req.getParameterMap());
|
||||||
|
String year = projectSubitem.getYear();
|
||||||
|
if (StringUtils.isNotBlank(year)) {
|
||||||
|
queryWrapper.eq("pmp.particular_year", year);
|
||||||
|
}
|
||||||
|
String projectName = projectSubitem.getProjectName();
|
||||||
|
if (StringUtils.isNotBlank(projectName)) {
|
||||||
|
queryWrapper.like("pmp.project_name", oConvertUtils.replaceAllPercent(projectName.trim()));
|
||||||
|
}
|
||||||
|
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
|
||||||
|
IPage<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.queryPageListCompany(page, queryWrapper);
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加
|
* 添加
|
||||||
*/
|
*/
|
||||||
|
|||||||
+2
-1
@@ -64,6 +64,7 @@ public class TbMemberProjectSubitem implements Serializable {
|
|||||||
|
|
||||||
/**项目id*/
|
/**项目id*/
|
||||||
@Excel(name = "项目名称", width = 15 ,dictTable = "tb_member_project", dicText = "project_name", dicCode = "id")
|
@Excel(name = "项目名称", width = 15 ,dictTable = "tb_member_project", dicText = "project_name", dicCode = "id")
|
||||||
|
@Dict(dictTable = "tb_member_project", dicText = "project_name", dicCode = "id")
|
||||||
@ApiModelProperty(value = "项目id")
|
@ApiModelProperty(value = "项目id")
|
||||||
private String projectId;
|
private String projectId;
|
||||||
|
|
||||||
@@ -376,7 +377,7 @@ public class TbMemberProjectSubitem implements Serializable {
|
|||||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
private Date invalidationDate;
|
private Date invalidationDate;
|
||||||
|
|
||||||
@ApiModelProperty(value = "备注")
|
@ApiModelProperty(value = "年份")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String year;
|
private String year;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -51,4 +51,6 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
|
|||||||
List<MemberLineChartMap> getByYear(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);
|
List<MemberLineChartMap> getByYear(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);
|
||||||
|
|
||||||
IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
||||||
|
|
||||||
|
IPage<TbMemberProjectSubitem> queryPageListCompany(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -47,13 +47,15 @@
|
|||||||
<result column="post_company_id" property="postCompanyId"/>
|
<result column="post_company_id" property="postCompanyId"/>
|
||||||
<result column="tax" property="tax"/>
|
<result column="tax" property="tax"/>
|
||||||
<result column="tax_rate" property="taxRate"/>
|
<result column="tax_rate" property="taxRate"/>
|
||||||
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="a">
|
<sql id="a">
|
||||||
|
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="queryPageListCompany" resultMap="MemberProjectSubitemResultMap">
|
<select id="queryPageListCompany" resultMap="MemberProjectSubitemResultMap">
|
||||||
select pmps.*,pmp.project_name,pmp.particular_year,pmp.director_id as director_name from pay_member_project_subitem pmps
|
select pmps.*,pmp.project_name,pmp.particular_year,pmp.director_id as director_name
|
||||||
|
from pay_member_project_subitem pmps
|
||||||
left join pay_member_project pmp on pmps.project_id = pmp.id
|
left join pay_member_project pmp on pmps.project_id = pmp.id
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
+7
@@ -132,4 +132,11 @@
|
|||||||
GROUP BY company_id) AS t2 ON t2.id = t1.id
|
GROUP BY company_id) AS t2 ON t2.id = t1.id
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryPageListCompany" resultMap="TbMemberProjectSubitemResultMap">
|
||||||
|
select tmps.*
|
||||||
|
from tb_member_project_subitem tmps
|
||||||
|
LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
|
||||||
|
${ew.customSqlSegment}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+107
-30
@@ -1,12 +1,34 @@
|
|||||||
package com.jero.member.service;
|
package com.jero.member.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.service.RolePermissionService;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||||
|
import com.jero.contract.service.IPayIncomeContractService;
|
||||||
import com.jero.member.entity.PayMemberProject;
|
import com.jero.member.entity.PayMemberProject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
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.common.PayProjectCommon;
|
||||||
|
import com.jero.project.entity.PayCommonProject;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 会员项目表
|
* @Description: 会员项目表
|
||||||
@@ -14,15 +36,45 @@ import java.util.List;
|
|||||||
* @Date: 2021-08-26
|
* @Date: 2021-08-26
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
@Service
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper, PayMemberProject> {
|
||||||
|
@Resource
|
||||||
|
private SysUserMapper userMapper;
|
||||||
|
@Resource
|
||||||
|
private PayMemberProjectMapper payMemberProjectMapper;
|
||||||
|
@Autowired
|
||||||
|
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||||
|
@Resource
|
||||||
|
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||||
|
@Autowired
|
||||||
|
private IPayIncomeContractService payIncomeContractService;
|
||||||
|
@Resource
|
||||||
|
private RolePermissionService rolePermissionService;
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
*
|
||||||
* @param payMemberProject
|
* @param payMemberProject
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void add(PayMemberProject payMemberProject);
|
@Transactional
|
||||||
|
public void add(PayMemberProject payMemberProject) {
|
||||||
|
//判断项目名称
|
||||||
|
LambdaQueryWrapper<PayMemberProject> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(PayMemberProject::getProjectName,payMemberProject.getProjectName());
|
||||||
|
Integer integer = baseMapper.selectCount(wrapper);
|
||||||
|
if (integer>0){
|
||||||
|
throw new JeroBootException("项目名称重复");
|
||||||
|
}
|
||||||
|
//判断联系人
|
||||||
|
String directorId = payMemberProject.getDirectorId();
|
||||||
|
SysUser sysUser = userMapper.selectById(directorId);
|
||||||
|
if (sysUser == null){
|
||||||
|
throw new JeroBootException("联系人不存在");
|
||||||
|
}
|
||||||
|
payMemberProject.setDirectorName(sysUser.getUsername());
|
||||||
|
save(payMemberProject);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
@@ -30,7 +82,9 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
|||||||
* @param payMemberProject
|
* @param payMemberProject
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void editById(PayMemberProject payMemberProject);
|
public void editById(PayMemberProject payMemberProject) {
|
||||||
|
saveOrUpdate(payMemberProject);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
@@ -38,7 +92,15 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
|||||||
* @param id
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void deleteById(String id);
|
public void deleteById(String id) {
|
||||||
|
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||||
|
query.eq(PayMemberProjectSubitem::getProjectId, id);
|
||||||
|
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
|
||||||
|
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)) {
|
||||||
|
throw new JeroBootException("会员项目下存在企业,不可进行删除!");
|
||||||
|
}
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除
|
* 批量删除
|
||||||
@@ -46,7 +108,15 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
|||||||
* @param ids
|
* @param ids
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void deleteByIds(List<String> ids);
|
public void deleteByIds(List<String> ids) {
|
||||||
|
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||||
|
query.in(PayMemberProjectSubitem::getProjectId, ids);
|
||||||
|
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
|
||||||
|
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)) {
|
||||||
|
throw new JeroBootException("会员项目下存在企业,不可进行删除!");
|
||||||
|
}
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id查询
|
* 通过id查询
|
||||||
@@ -54,35 +124,42 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
|||||||
* @param id
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PayMemberProject queryById(String id);
|
public PayMemberProject queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表查询
|
* 列表查询
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PayMemberProject> queryList();
|
public List<PayMemberProject> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
public IPage<PayMemberProject> getPage(Page<PayMemberProject> page, QueryWrapper<PayMemberProject> queryWrapper) {
|
||||||
* 分页查询
|
Page<PayMemberProject> memberProjectPage = baseMapper.selectPage(page, queryWrapper);
|
||||||
* @param page
|
List<PayMemberProject> records = memberProjectPage.getRecords();
|
||||||
* @param queryWrapper
|
for (PayMemberProject record : records) {
|
||||||
* @return
|
String directorId = record.getDirectorId();
|
||||||
*/
|
SysUser sysUser = userMapper.selectById(directorId);
|
||||||
IPage<PayMemberProject> getPage(Page<PayMemberProject> page, QueryWrapper<PayMemberProject> queryWrapper);
|
record.setDirectorName(sysUser.getUsername());
|
||||||
|
}
|
||||||
|
memberProjectPage.setRecords(records);
|
||||||
|
return memberProjectPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
public IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page, String companyId, String projectName, String projectType, Integer pack, String packYear) {
|
||||||
* @Description 查询与收入合同企业一致的数据
|
return payMemberProjectMapper.queryListByCompany(page,companyId, projectName,projectType, pack, packYear);
|
||||||
* @Author lqt
|
}
|
||||||
* @Date 2021/9/17
|
public void check(String projectId,String permission){
|
||||||
* @Param companyId 企业id
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
* @Param memberName 会员名称
|
if (!rolePermissionService.getRolePermission(permission)) {
|
||||||
* @Param projectType 项目类型
|
PayMemberProject payMemberProject = payMemberProjectMapper.selectById(projectId);
|
||||||
* @Return
|
if (!Objects.equals(payMemberProject.getDirectorId(),sysUser.getId())){
|
||||||
* @Exception
|
throw new JeroBootException("权限不足");
|
||||||
*/
|
}
|
||||||
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page, String companyId, String projectName, String projectType, Integer pack, String packYear);
|
}
|
||||||
|
}
|
||||||
void check(String projectId, String permission);
|
|
||||||
}
|
}
|
||||||
|
|||||||
+463
-33
@@ -1,11 +1,50 @@
|
|||||||
package com.jero.member.service;
|
package com.jero.member.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.jero.common.common.ProjectCommon;
|
||||||
|
import com.jero.common.dto.PaySendContactsMessageDTO;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
||||||
|
import com.jero.common.service.ProjectDetailService;
|
||||||
|
import com.jero.common.service.RolePermissionService;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.common.util.ValidUtil;
|
||||||
|
import com.jero.common.vo.ProjectStatusVO;
|
||||||
|
import com.jero.company.entity.PayContactsManagement;
|
||||||
|
import com.jero.company.service.IPayContactsManagementService;
|
||||||
|
import com.jero.contract.entity.PayIncomeContract;
|
||||||
|
import com.jero.contract.service.IPayIncomeContractService;
|
||||||
|
import com.jero.mail.service.IPayMailBillService;
|
||||||
|
import com.jero.member.entity.PayMemberProject;
|
||||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.jero.member.mapper.PayMemberProjectMapper;
|
||||||
import java.util.List;
|
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
|
||||||
|
import com.jero.member.service.IPayMemberProjectService;
|
||||||
|
import com.jero.member.service.IPayMemberProjectSubitemService;
|
||||||
|
import com.jero.pack.entity.PayPackCompanyProject;
|
||||||
|
import com.jero.pack.service.IPayPackCompanyProjectService;
|
||||||
|
import com.jero.project.common.PayProjectCommon;
|
||||||
|
import com.jero.temporary.entity.PayCompanyManagementTemporary;
|
||||||
|
import com.jero.temporary.entity.PayContactsManagementTemporary;
|
||||||
|
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
|
||||||
|
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||||
|
import com.jero.valid.group.ChargeNotice;
|
||||||
|
import com.jero.valid.group.Contract;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 会员项目成员表
|
* @Description: 会员项目成员表
|
||||||
@@ -13,66 +52,457 @@ import java.util.List;
|
|||||||
* @Date: 2021-08-26
|
* @Date: 2021-08-26
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface IPayMemberProjectSubitemService extends IService<PayMemberProjectSubitem> {
|
@Service
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjectSubitemMapper, PayMemberProjectSubitem> {
|
||||||
|
|
||||||
|
@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 ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||||
|
@Resource
|
||||||
|
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||||
|
@Resource
|
||||||
|
private RolePermissionService rolePermissionService;
|
||||||
|
@Resource
|
||||||
|
private PayMemberProjectMapper payMemberProjectMapper;
|
||||||
|
@Resource
|
||||||
|
private IPayMailBillService payMailBillService;
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
|
||||||
* @param payMemberProjectSubitem
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void add(PayMemberProjectSubitem payMemberProjectSubitem);
|
public void add(PayMemberProjectSubitem payMemberProjectSubitem) {
|
||||||
|
String projectId = payMemberProjectSubitem.getProjectId();
|
||||||
|
PayMemberProject memberProject = memberProjectService.getById(projectId);
|
||||||
|
if (memberProject == null){
|
||||||
|
throw new JeroBootException("会员项目不存在");
|
||||||
|
}
|
||||||
|
String companyId = payMemberProjectSubitem.getCompanyId();
|
||||||
|
LambdaQueryWrapper<PayMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(PayMemberProjectSubitem::getProjectId,projectId);
|
||||||
|
wrapper.eq(PayMemberProjectSubitem::getCompanyId,companyId);
|
||||||
|
int count = count(wrapper);
|
||||||
|
if (count>0){
|
||||||
|
throw new JeroBootException("会员单位已经存在");
|
||||||
|
}
|
||||||
|
// validMemberProjectSubitem(payMemberProjectSubitem);
|
||||||
|
validMemberProjectSubitemAdd(payMemberProjectSubitem);
|
||||||
|
//实收金额
|
||||||
|
payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00"));
|
||||||
|
//到账
|
||||||
|
payMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
|
||||||
|
//打包
|
||||||
|
payMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
|
||||||
|
//开票
|
||||||
|
payMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
||||||
|
//邮寄
|
||||||
|
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(),payMemberProjectSubitem.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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 收入合同创建项目发送消息到项目负责人
|
||||||
|
if(Objects.equals(ProjectCommon.FLAG,payMemberProjectSubitem.getFlag())){
|
||||||
|
contractCreateProjectSendMessageService.contractCreateProjectSendMessageService(memberProject.getProjectName() + "的" + payMemberProjectSubitem.getCompanyName(),payMemberProjectSubitem.getId(),memberProject.getDirectorId());
|
||||||
|
}
|
||||||
|
// 新建项目 给企业联系人发送消息
|
||||||
|
PayContactsManagement payContactsManagement = contactsManagementService.getById(payMemberProjectSubitem.getCompanyContactId());
|
||||||
|
if(!Objects.isNull(payContactsManagement)){
|
||||||
|
PaySendContactsMessageDTO paySendContactsMessageDTO = new PaySendContactsMessageDTO();
|
||||||
|
paySendContactsMessageDTO.setProjectName(memberProject.getProjectName());
|
||||||
|
paySendContactsMessageDTO.setProjectId(payMemberProjectSubitem.getId());
|
||||||
|
paySendContactsMessageDTO.setEmail(payContactsManagement.getEmail());
|
||||||
|
paySendContactsMessageDTO.setPhone(payContactsManagement.getPhone());
|
||||||
|
paySendContactsMessageDTO.setUserId(memberProject.getDirectorId());
|
||||||
|
paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0);
|
||||||
|
// 项目的待确收金额>0 发送缴费通知
|
||||||
|
if(payMemberProjectSubitem.getAmountReceivable().compareTo(new BigDecimal("0")) > 0){
|
||||||
|
paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0 + "," + ProjectCommon.FLAG1);
|
||||||
|
}
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("type",ProjectCommon.PROJECT_TYPE4);
|
||||||
|
json.put("id",payMemberProjectSubitem.getId());
|
||||||
|
json.put("path","MessagePage/ProjectDetailModal");
|
||||||
|
paySendContactsMessageDTO.setJson(json);
|
||||||
|
contractCreateProjectSendMessageService.createProjectSendMessageToContactsService(paySendContactsMessageDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
*
|
|
||||||
* @param payMemberProjectSubitem
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void editById(PayMemberProjectSubitem payMemberProjectSubitem);
|
public void editById(PayMemberProjectSubitem payMemberProjectSubitem) {
|
||||||
|
String id = payMemberProjectSubitem.getId();
|
||||||
|
PayMemberProjectSubitem payMemberProjectSubitem1 = getById(id);
|
||||||
|
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(),payMemberProjectSubitem1.getPaymentMethod())){
|
||||||
|
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
|
||||||
|
}
|
||||||
|
if(Objects.equals(payMemberProjectSubitem1.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2) && !Objects.equals(payMemberProjectSubitem1.getContractNo(),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());
|
||||||
|
payMemberProjectSubitem.setInAccount(payMemberProjectSubitem1.getInAccount());
|
||||||
|
payMemberProjectSubitem.setMakeInvoice(payMemberProjectSubitem1.getMakeInvoice());
|
||||||
|
payMemberProjectSubitem.setMail(payMemberProjectSubitem1.getMail());
|
||||||
|
|
||||||
|
//如果原始企业id和现在企业id不同,就删除临时表数据
|
||||||
|
// String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
|
||||||
|
// if (!payMemberProjectSubitem1.getCompanyTemporaryId().equals(companyId)) {
|
||||||
|
// companyManagementTemporaryService.removeById(companyId);
|
||||||
|
// }
|
||||||
|
// //如果原始企业联系人id和现在企业联系人id不同,就删除临时表数据
|
||||||
|
// String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
|
||||||
|
// if (!payMemberProjectSubitem1.getCompanyContactTemporaryId().equals(companyContactId)) {
|
||||||
|
// contactsManagementTemporaryService.removeById(companyContactId);
|
||||||
|
// }
|
||||||
|
// //如果原始邮寄联系人id和现在邮寄联系人id不同,就删除临时表数据
|
||||||
|
// String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
|
||||||
|
// 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 选择无
|
||||||
|
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY1)){
|
||||||
|
payMemberProjectSubitem.setContractNo(null);
|
||||||
|
payMemberProjectSubitem.setChargeNoticeNo(null);
|
||||||
|
payMemberProjectSubitem.setChargeNoticeFileId(null);
|
||||||
|
}
|
||||||
|
// 选择合同
|
||||||
|
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
|
||||||
|
payMemberProjectSubitem.setChargeNoticeNo(null);
|
||||||
|
payMemberProjectSubitem.setChargeNoticeFileId(null);
|
||||||
|
}
|
||||||
|
// 选择收费通知
|
||||||
|
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY3)){
|
||||||
|
payMemberProjectSubitem.setContractNo(null);
|
||||||
|
}
|
||||||
|
validMemberProjectSubitemEdit(payMemberProjectSubitem,payMemberProjectSubitem1);
|
||||||
|
saveOrUpdate(payMemberProjectSubitem);
|
||||||
|
// 如果有邮寄信息更新邮寄联系人信息
|
||||||
|
String mailContactsId = payMemberProjectSubitem.getPostContactId();
|
||||||
|
payMailBillService.updateContactByProjectId(mailContactsId,payMemberProjectSubitem.getId(), null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验会员项目成员
|
* 校验会员项目成员
|
||||||
* @param payMemberProjectSubitem 会员项目成员
|
* @param payMemberProjectSubitem 会员项目成员
|
||||||
*/
|
*/
|
||||||
void validMemberProjectSubitem(PayMemberProjectSubitem payMemberProjectSubitem);
|
public void validMemberProjectSubitemAdd(PayMemberProjectSubitem payMemberProjectSubitem) {
|
||||||
|
List<String> errors = new ArrayList<>();
|
||||||
|
// 企业
|
||||||
|
try {
|
||||||
|
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
|
||||||
|
if (Objects.isNull(chargeCompanyName)) {
|
||||||
|
throw new JeroBootException("企业名称为空!");
|
||||||
|
}
|
||||||
|
payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId());
|
||||||
|
payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName());
|
||||||
|
} catch (JeroBootException e) {
|
||||||
|
errors.add("会员单位不存在");
|
||||||
|
}
|
||||||
|
// 联系人
|
||||||
|
try {
|
||||||
|
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
|
||||||
|
if (Objects.isNull(contactsName)) {
|
||||||
|
throw new JeroBootException("联系人名称为空!");
|
||||||
|
}
|
||||||
|
payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId());
|
||||||
|
payMemberProjectSubitem.setCompanyContactName(contactsName.getName());
|
||||||
|
} catch (JeroBootException e) {
|
||||||
|
errors.add("企业联系人不存在");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
// 联系人
|
||||||
|
PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
|
||||||
|
if (Objects.isNull(postContactsName)) {
|
||||||
|
throw new JeroBootException("邮寄联系人为空!");
|
||||||
|
}
|
||||||
|
payMemberProjectSubitem.setPostContactTemporaryId(postContactsName.getId());
|
||||||
|
payMemberProjectSubitem.setPostContactName(postContactsName.getName());
|
||||||
|
} catch (JeroBootException e) {
|
||||||
|
errors.add("邮寄联系人不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!errors.isEmpty()) {
|
||||||
|
throw new JeroBootException(StringUtils.join(errors, ","));
|
||||||
|
}
|
||||||
|
//校验来款方式
|
||||||
|
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
|
||||||
|
//合同
|
||||||
|
if (Objects.equals(paymentMethod, 2)) {
|
||||||
|
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
|
||||||
|
}
|
||||||
|
//收费通知
|
||||||
|
if (Objects.equals(paymentMethod, 3)) {
|
||||||
|
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验会员项目成员
|
||||||
|
* @param payMemberProjectSubitem 会员项目成员
|
||||||
|
*/
|
||||||
|
public void validMemberProjectSubitemEdit(PayMemberProjectSubitem payMemberProjectSubitem,PayMemberProjectSubitem payMemberProjectSubitemOld) {
|
||||||
|
// 企业id != 企业模板id 变更
|
||||||
|
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitemOld.getCompanyId())){
|
||||||
|
// 企业
|
||||||
|
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
|
||||||
|
if(Objects.isNull(chargeCompanyName)){
|
||||||
|
throw new JeroBootException("企业名称为空!");
|
||||||
|
}
|
||||||
|
payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId());
|
||||||
|
payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName());
|
||||||
|
companyManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyTemporaryId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 联系人id != 联系人模板id 变更
|
||||||
|
// 联系人
|
||||||
|
PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
|
||||||
|
if(Objects.isNull(companyContact)){
|
||||||
|
throw new JeroBootException("联系人名称为空!");
|
||||||
|
}
|
||||||
|
payMemberProjectSubitem.setCompanyContactTemporaryId(companyContact.getId());
|
||||||
|
payMemberProjectSubitem.setCompanyContactName(companyContact.getName());
|
||||||
|
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
|
||||||
|
|
||||||
|
// 邮寄联系人id != 邮寄联系人模板id 变更
|
||||||
|
if(!Objects.equals(payMemberProjectSubitem.getPostContactId(),payMemberProjectSubitemOld.getPostContactId())){
|
||||||
|
// 联系人
|
||||||
|
PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
|
||||||
|
if(Objects.isNull(postContact)){
|
||||||
|
throw new JeroBootException("邮寄联系人为空!");
|
||||||
|
}
|
||||||
|
payMemberProjectSubitem.setPostContactTemporaryId(postContact.getId());
|
||||||
|
payMemberProjectSubitem.setPostContactName(postContact.getName());
|
||||||
|
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getPostContactTemporaryId());
|
||||||
|
}
|
||||||
|
|
||||||
|
//校验来款方式
|
||||||
|
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
|
||||||
|
//合同
|
||||||
|
if (Objects.equals(paymentMethod,2)){
|
||||||
|
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
|
||||||
|
}
|
||||||
|
//收费通知
|
||||||
|
if (Objects.equals(paymentMethod,3)){
|
||||||
|
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验会员项目成员
|
||||||
|
* @param payMemberProjectSubitem 会员项目成员
|
||||||
|
*/
|
||||||
|
public void validMemberProjectSubitem(PayMemberProjectSubitem payMemberProjectSubitem) {
|
||||||
|
//校验企业
|
||||||
|
String companyId = payMemberProjectSubitem.getCompanyId();
|
||||||
|
PayCompanyManagementTemporary companyManagementTemporary = companyManagementTemporaryService.insertCompanyManagementTemporary(companyId);
|
||||||
|
payMemberProjectSubitem.setCompanyTemporaryId(companyManagementTemporary.getId());
|
||||||
|
payMemberProjectSubitem.setCompanyName(companyManagementTemporary.getCompanyName());
|
||||||
|
|
||||||
|
//校验企业联系人
|
||||||
|
String companyContactId = payMemberProjectSubitem.getCompanyContactId();
|
||||||
|
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
|
||||||
|
//校验是否是选择的企业的联系人
|
||||||
|
String companyId1 = contactsManagement.getCompanyId();
|
||||||
|
if (companyId1.equals(companyId)){
|
||||||
|
PayContactsManagementTemporary contactsManagementTemporary = contactsManagementTemporaryService.insertContactsManagementTemporary(companyContactId);
|
||||||
|
payMemberProjectSubitem.setCompanyContactTemporaryId(contactsManagementTemporary.getId());
|
||||||
|
payMemberProjectSubitem.setCompanyContactName(contactsManagementTemporary.getName());
|
||||||
|
}else {
|
||||||
|
throw new JeroBootException("企业联系人不是所选企业的企业联系人");
|
||||||
|
}
|
||||||
|
//校验邮寄联系人
|
||||||
|
String postContactId = payMemberProjectSubitem.getPostContactId();
|
||||||
|
PayContactsManagement postContact = contactsManagementService.getById(postContactId);
|
||||||
|
//校验是否是选择的企业的联系人
|
||||||
|
String companyId2 = postContact.getCompanyId();
|
||||||
|
if (companyId2.equals(companyId)){
|
||||||
|
PayContactsManagementTemporary contactsManagementTemporary1 = contactsManagementTemporaryService.insertContactsManagementTemporary(postContactId);
|
||||||
|
payMemberProjectSubitem.setPostContactTemporaryId(contactsManagementTemporary1.getId());
|
||||||
|
payMemberProjectSubitem.setPostContactName(contactsManagementTemporary1.getName());
|
||||||
|
}else {
|
||||||
|
throw new JeroBootException("邮寄联系人不是所选企业的企业联系人");
|
||||||
|
}
|
||||||
|
//校验来款方式
|
||||||
|
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
|
||||||
|
//合同
|
||||||
|
if (Objects.equals(paymentMethod,2)){
|
||||||
|
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
|
||||||
|
}
|
||||||
|
//收费通知
|
||||||
|
if (Objects.equals(paymentMethod,3)){
|
||||||
|
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void deleteById(String id);
|
@Transactional
|
||||||
|
public void deleteById(String id) {
|
||||||
|
deleteProject(id);
|
||||||
|
// delectTemporaryById(id);
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void delectTemporaryById(String id) {
|
||||||
|
PayMemberProjectSubitem payMemberProjectSubitem = getById(id);
|
||||||
|
//删除临时表数据
|
||||||
|
String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
|
||||||
|
companyManagementTemporaryService.removeById(companyId);
|
||||||
|
|
||||||
|
String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
|
||||||
|
contactsManagementTemporaryService.removeById(companyContactId);
|
||||||
|
|
||||||
|
String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
|
||||||
|
contactsManagementTemporaryService.removeById(postContactId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除
|
* 批量删除
|
||||||
*
|
|
||||||
* @param ids
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void deleteByIds(List<String> ids);
|
@Transactional
|
||||||
|
public void deleteByIds(List<String> ids) {
|
||||||
|
for (String id : ids) {
|
||||||
|
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查询
|
* 通过id查询
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
PayMemberProjectSubitem queryById(String id);
|
public PayMemberProjectSubitem queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表查询
|
* 列表查询
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
List<PayMemberProjectSubitem> queryList();
|
public List<PayMemberProjectSubitem> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
|
||||||
IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
public IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||||
|
return baseMapper.queryPageListCompany(page,queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
List<PayMemberProjectSubitem> queryPageListCompany(QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
public List<PayMemberProjectSubitem> queryPageListCompany(QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||||
|
return baseMapper.queryPageListCompany(queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
public IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||||
|
return baseMapper.getPage(page, queryWrapper);
|
||||||
void check(String subitemId, String permission);
|
}
|
||||||
|
public void check(String subitemId,String permission){
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
if (!rolePermissionService.getRolePermission(permission)) {
|
||||||
|
PayMemberProjectSubitem payMemberProjectSubitem = baseMapper.selectById(subitemId);
|
||||||
|
PayMemberProject payMemberProject = payMemberProjectMapper.selectById(payMemberProjectSubitem.getProjectId());
|
||||||
|
if (!Objects.equals(payMemberProject.getDirectorId(),sysUser.getId())){
|
||||||
|
throw new JeroBootException("权限不足");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+42
-8
@@ -1,8 +1,12 @@
|
|||||||
package com.jero.member.service;
|
package com.jero.member.service;
|
||||||
|
|
||||||
import com.jero.member.entity.TbCertificatePayment;
|
import com.jero.member.entity.TbCertificatePayment;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.jero.member.mapper.TbCertificatePaymentMapper;
|
||||||
|
import com.jero.member.service.ITbCertificatePaymentService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 证书缴费表
|
* @Description: 证书缴费表
|
||||||
@@ -10,35 +14,65 @@ import java.util.List;
|
|||||||
* @Date: 2021-12-14
|
* @Date: 2021-12-14
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface ITbCertificatePaymentService extends IService<TbCertificatePayment> {
|
@Service
|
||||||
|
public class ITbCertificatePaymentService extends ServiceImpl<TbCertificatePaymentMapper, TbCertificatePayment> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
|
*
|
||||||
|
* @param tbCertificatePayment
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
void add(TbCertificatePayment tbCertificatePayment);
|
public void add(TbCertificatePayment tbCertificatePayment) {
|
||||||
|
saveOrUpdate(tbCertificatePayment);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
|
*
|
||||||
|
* @param tbCertificatePayment
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
void editById(TbCertificatePayment tbCertificatePayment);
|
public void editById(TbCertificatePayment tbCertificatePayment) {
|
||||||
|
saveOrUpdate(tbCertificatePayment);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
void deleteById(String id);
|
public void deleteById(String id) {
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
void deleteByIds(List<String> ids);
|
public void deleteByIds(List<String> ids) {
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id查询
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
TbCertificatePayment queryById(String id);
|
public TbCertificatePayment queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表查询
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
List<TbCertificatePayment> queryList();
|
public List<TbCertificatePayment> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+97
-27
@@ -1,15 +1,36 @@
|
|||||||
package com.jero.member.service;
|
package com.jero.member.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.service.RolePermissionService;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.member.entity.TbMemberProject;
|
import com.jero.member.entity.TbMemberProject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
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.apache.shiro.SecurityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.jero.project.entity.PayWorkGroupSubletStatistics;
|
import com.jero.project.entity.PayWorkGroupSubletStatistics;
|
||||||
import com.jero.statistics.entity.AllProjectStatistics;
|
import com.jero.statistics.entity.AllProjectStatistics;
|
||||||
import com.jero.statistics.entity.AllProjectStatisticsSearch;
|
import com.jero.statistics.entity.AllProjectStatisticsSearch;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 标协会员项目表
|
* @Description: 标协会员项目表
|
||||||
@@ -17,54 +38,103 @@ import java.util.List;
|
|||||||
* @Date: 2021-09-01
|
* @Date: 2021-09-01
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface ITbMemberProjectService extends IService<TbMemberProject> {
|
@Service
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper, TbMemberProject> {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IPayIncomeContractService payIncomeContractService;
|
||||||
|
@Resource
|
||||||
|
private RolePermissionService rolePermissionService;
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
|
||||||
* @param tbMemberProject
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void add(TbMemberProject tbMemberProject);
|
public void add(TbMemberProject tbMemberProject) {
|
||||||
|
//一年只能有一个项目
|
||||||
|
String year = tbMemberProject.getYear();
|
||||||
|
check(year, null);
|
||||||
|
save(tbMemberProject);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 一年只能有一个项目
|
||||||
|
*/
|
||||||
|
private void check(String year, String id) {
|
||||||
|
LambdaQueryWrapper<TbMemberProject> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(TbMemberProject::getYear, year);
|
||||||
|
wrapper.ne(id != null, TbMemberProject::getId, id);
|
||||||
|
int count = count(wrapper);
|
||||||
|
if (count > 0) {
|
||||||
|
throw new JeroBootException("已经存在" + year + "年标协会员项目");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
*
|
|
||||||
* @param tbMemberProject
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void editById(TbMemberProject tbMemberProject);
|
public void editById(TbMemberProject tbMemberProject) {
|
||||||
|
//一年只能有一个项目
|
||||||
|
String year = tbMemberProject.getYear();
|
||||||
|
String id = tbMemberProject.getId();
|
||||||
|
check(year, id);
|
||||||
|
saveOrUpdate(tbMemberProject);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void deleteById(String id);
|
public void deleteById(String id) {
|
||||||
|
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||||
|
query.eq(TbMemberProjectSubitem::getProjectId, id);
|
||||||
|
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
|
||||||
|
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)) {
|
||||||
|
throw new JeroBootException("标协会员项目下存在企业,不可进行删除!");
|
||||||
|
}
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除
|
* 批量删除
|
||||||
*
|
|
||||||
* @param ids
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void deleteByIds(List<String> ids);
|
public void deleteByIds(List<String> ids) {
|
||||||
|
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||||
|
query.in(TbMemberProjectSubitem::getProjectId, ids);
|
||||||
|
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
|
||||||
|
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)) {
|
||||||
|
throw new JeroBootException("标协会员项目下存在企业,不可进行删除!");
|
||||||
|
}
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id查询
|
* 通过id查询
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
TbMemberProject queryById(String id);
|
public TbMemberProject queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表查询
|
* 列表查询
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
List<TbMemberProject> queryList();
|
public List<TbMemberProject> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IPage<TbMemberProject> queryPageList(Page<TbMemberProject> page, QueryWrapper<TbMemberProject> queryWrapper) {
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
if (!rolePermissionService.getRolePermission("stardsMember:search")) {
|
||||||
|
queryWrapper.and(
|
||||||
|
a -> a.eq("pm.director_id",sysUser.getId())
|
||||||
|
.or()
|
||||||
|
.eq("tmp.director_id",sysUser.getId())
|
||||||
|
.or()
|
||||||
|
.eq("pmc.meeting_contacts_id", sysUser.getId())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return baseMapper.queryPageList(page,queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
IPage<TbMemberProject> queryPageList(Page<TbMemberProject> page, QueryWrapper<TbMemberProject> queryWrapper);
|
|
||||||
}
|
}
|
||||||
|
|||||||
+419
-52
@@ -1,18 +1,67 @@
|
|||||||
package com.jero.member.service;
|
package com.jero.member.service;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateField;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.jero.common.enums.PaymentStatusEnum;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.service.RolePermissionService;
|
||||||
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
|
import com.jero.common.system.vo.DictModel;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.common.util.AuthenticationUtils;
|
||||||
|
import com.jero.common.util.PasswordUtil;
|
||||||
|
import com.jero.company.entity.PayCompanyManagement;
|
||||||
|
import com.jero.company.service.IPayCompanyManagementService;
|
||||||
|
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||||
|
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||||
|
import com.jero.contract.service.IPayIncomeContractService;
|
||||||
|
import com.jero.mail.entity.PayMailBillProject;
|
||||||
|
import com.jero.mail.service.IPayMailBillProjectService;
|
||||||
|
import com.jero.mail.service.IPayMailBillService;
|
||||||
|
import com.jero.meeting.entity.PayMeetingSituation;
|
||||||
|
import com.jero.meeting.mapper.PayMeetingSituationMapper;
|
||||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.jero.member.enums.MemberStatusEnum;
|
||||||
|
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
|
||||||
|
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||||
import com.jero.member.vo.CopyMemberVO;
|
import com.jero.member.vo.CopyMemberVO;
|
||||||
import com.jero.member.vo.EditMemberBenefitsVO;
|
import com.jero.member.vo.EditMemberBenefitsVO;
|
||||||
import com.jero.member.vo.QueryAggVO;
|
import com.jero.member.vo.QueryAggVO;
|
||||||
|
import com.jero.pack.entity.PayPackCompanyProject;
|
||||||
|
import com.jero.pack.service.IPayPackCompanyProjectService;
|
||||||
|
import com.jero.payment.entity.PayConfirmPaymentRecord;
|
||||||
|
import com.jero.payment.entity.PayPaymentRecord;
|
||||||
|
import com.jero.payment.service.IPayPaymentRecordService;
|
||||||
|
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
|
||||||
|
import com.jero.project.common.PayProjectCommon;
|
||||||
|
import com.jero.statistics.entity.MemberLineChartMap;
|
||||||
import com.jero.statistics.entity.MemberLineChartVO;
|
import com.jero.statistics.entity.MemberLineChartVO;
|
||||||
import com.jero.statistics.entity.MemberPieChartVO;
|
import com.jero.statistics.entity.MemberPieChartVO;
|
||||||
|
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
|
||||||
|
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||||
|
import com.sun.javaws.exceptions.JreExecException;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.List;
|
|
||||||
|
import static freemarker.template.utility.NullArgumentException.check;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 标协会员项目成员表
|
* @Description: 标协会员项目成员表
|
||||||
@@ -20,89 +69,407 @@ import java.util.List;
|
|||||||
* @Date: 2021-09-01
|
* @Date: 2021-09-01
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface ITbMemberProjectSubitemService extends IService<TbMemberProjectSubitem> {
|
@Service
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectSubitemMapper, TbMemberProjectSubitem> {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
|
||||||
|
@Autowired
|
||||||
|
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||||
|
@Autowired
|
||||||
|
private IPayIncomeContractService payIncomeContractService;
|
||||||
|
@Autowired
|
||||||
|
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||||
|
@Autowired
|
||||||
|
private IPayCompanyManagementService companyManagementService;
|
||||||
|
@Autowired
|
||||||
|
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
|
||||||
|
@Resource
|
||||||
|
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||||
|
@Resource
|
||||||
|
private RolePermissionService rolePermissionService;
|
||||||
|
@Resource
|
||||||
|
private IPayPaymentRecordService payPaymentRecordService;
|
||||||
|
@Resource
|
||||||
|
private PayConfirmPaymentRecordService payConfirmPaymentRecordService;
|
||||||
|
@Resource
|
||||||
|
private IPayMailBillProjectService payMailBillProjectService;
|
||||||
|
@Resource
|
||||||
|
private IPayMailBillService payMailBillService;
|
||||||
|
@Resource
|
||||||
|
private ISysBaseAPI sysBaseAPI;
|
||||||
|
@Resource
|
||||||
|
private PayMeetingSituationMapper payMeetingSituationMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
|
||||||
* @param tbMemberProjectSubitem
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void add(TbMemberProjectSubitem tbMemberProjectSubitem);
|
public void add(TbMemberProjectSubitem tbMemberProjectSubitem) {
|
||||||
|
setDefaultCreateValue(tbMemberProjectSubitem);
|
||||||
|
|
||||||
|
check(tbMemberProjectSubitem);
|
||||||
|
save(tbMemberProjectSubitem);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时默认值
|
||||||
|
*/
|
||||||
|
private void setDefaultCreateValue(TbMemberProjectSubitem tbMemberProjectSubitem) {
|
||||||
|
//实收金额
|
||||||
|
tbMemberProjectSubitem.setPaidAmount(BigDecimal.ZERO);
|
||||||
|
//到账
|
||||||
|
tbMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
|
||||||
|
//开票
|
||||||
|
tbMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
||||||
|
//邮寄
|
||||||
|
tbMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
|
||||||
|
//打包
|
||||||
|
tbMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
|
||||||
|
//提票
|
||||||
|
tbMemberProjectSubitem.setTicketCollection(PayProjectCommon.NO);
|
||||||
|
//会员状态
|
||||||
|
tbMemberProjectSubitem.setMemberStatus(MemberStatusEnum.UNPAID_FEES.getValue());
|
||||||
|
//缴费状态
|
||||||
|
tbMemberProjectSubitem.setPaymentStatus(PaymentStatusEnum.TO_BE_UPLOADED.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void check(TbMemberProjectSubitem tbMemberProjectSubitem){
|
||||||
|
String companyId = tbMemberProjectSubitem.getCompanyId();
|
||||||
|
String projectId = tbMemberProjectSubitem.getProjectId();
|
||||||
|
//String id = tbMemberProjectSubitem.getId();
|
||||||
|
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
|
||||||
|
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
|
||||||
|
//wrapper.ne()
|
||||||
|
int count = this.count(wrapper);
|
||||||
|
if (count > 0) {
|
||||||
|
throw new JeroBootException("会员单位已经存在");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
*
|
|
||||||
* @param tbMemberProjectSubitem
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void editById(TbMemberProjectSubitem tbMemberProjectSubitem);
|
public void editById(TbMemberProjectSubitem tbMemberProjectSubitem) {
|
||||||
|
saveOrUpdate(tbMemberProjectSubitem);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void deleteById(String id);
|
public void deleteById(String id) {
|
||||||
|
deleteProject(id);
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除
|
* 批量删除
|
||||||
*
|
|
||||||
* @param ids
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
void deleteByIds(List<String> ids);
|
public void deleteByIds(List<String> ids) {
|
||||||
|
ids.forEach(p->{
|
||||||
|
deleteProject(p);
|
||||||
|
});
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
void deleteProject(String id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id查询
|
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
TbMemberProjectSubitem queryById(String id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表查询
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<TbMemberProjectSubitem> queryList();
|
|
||||||
/**
|
/**
|
||||||
* @Description 查询与收入合同企业一致的数据
|
* @Description 删除项目打包关联,临时企业、联系信息
|
||||||
* @Author lqt
|
* @Author lqt
|
||||||
* @Date 2021/9/17
|
* @Date 2021/9/18
|
||||||
* @Param companyId 企业id
|
* @Param id 项目id
|
||||||
* @Param memberName 会员名称
|
|
||||||
* @Param projectType 项目类型
|
|
||||||
* @Return
|
* @Return
|
||||||
* @Exception
|
* @Exception
|
||||||
*/
|
*/
|
||||||
IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear);
|
public void deleteProject(String id){
|
||||||
|
//删除到账
|
||||||
|
LambdaQueryWrapper<PayPaymentRecord> wrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
wrapper1.eq(PayPaymentRecord::getProjectId,id);
|
||||||
|
payPaymentRecordService.remove(wrapper1);
|
||||||
|
//删除确认收入
|
||||||
|
LambdaQueryWrapper<PayConfirmPaymentRecord> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(PayConfirmPaymentRecord::getProjectId,id);
|
||||||
|
payConfirmPaymentRecordService.remove(wrapper);
|
||||||
|
//删除开票
|
||||||
|
LambdaQueryWrapper<PayMailBillProject> wrapper2 = new LambdaQueryWrapper<>();
|
||||||
|
wrapper2.eq(PayMailBillProject::getProjectId,id);
|
||||||
|
payMailBillProjectService.remove(wrapper2);
|
||||||
|
|
||||||
IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
// 删除合同关联
|
||||||
|
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
||||||
|
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,id);
|
||||||
|
payIncomeContractAssociatedService.remove(queryPayIncomeContractAssociated);
|
||||||
|
// 如果已打报,同步删除打包关联
|
||||||
|
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
|
||||||
|
update.eq(PayPackCompanyProject::getProjectId,id);
|
||||||
|
payPackCompanyProjectService.remove(update);
|
||||||
|
}
|
||||||
|
|
||||||
void ticketCollection(String id);
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*/
|
||||||
|
public TbMemberProjectSubitem queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
TbMemberProjectSubitem getTakeEffectInfo(String companyId);
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*/
|
||||||
|
public List<TbMemberProjectSubitem> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
|
||||||
void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO);
|
public IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear) {
|
||||||
|
return tbMemberProjectSubitemMapper.queryListByCompany(page, companyId, projectType,pack,packYear);
|
||||||
|
}
|
||||||
|
|
||||||
void generateValidDate(String id);
|
public IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) {
|
||||||
|
queryWrapper.eq("tmp.director_id",sysUser.getId());
|
||||||
|
}
|
||||||
|
return baseMapper.pageList(page,queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
void copy(CopyMemberVO copyMemberVO);
|
public void ticketCollection(String id) {
|
||||||
|
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
|
||||||
|
updateWrapper.set(TbMemberProjectSubitem::getTicketCollection, PayProjectCommon.YES);
|
||||||
|
this.update(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
void copyBatch(CopyMemberVO copyMemberVO);
|
/**
|
||||||
|
* 获得最新的生效数据,没有的话会返回null
|
||||||
|
* @param companyId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TbMemberProjectSubitem getTakeEffectInfo(String companyId){
|
||||||
|
//获得所有生效数据
|
||||||
|
List<TbMemberProjectSubitem> allByCompanyId = tbMemberProjectSubitemMapper.getAllTakeEffectByCompanyId(companyId);
|
||||||
|
//获取list中年份最大的数据
|
||||||
|
Optional<TbMemberProjectSubitem> max = allByCompanyId.stream().max(Comparator.comparing(TbMemberProjectSubitem::getYear));
|
||||||
|
//没有的话会返回null
|
||||||
|
return max.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
MemberLineChartVO lineChart(Integer startYear, Integer endYear);
|
public void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO) {
|
||||||
|
String id = editMemberBenefitsVO.getId();
|
||||||
|
Date effectiveDate = editMemberBenefitsVO.getEffectiveDate();
|
||||||
|
Date invalidationDate = editMemberBenefitsVO.getInvalidationDate();
|
||||||
|
|
||||||
List<MemberPieChartVO> pieChart();
|
TbMemberProjectSubitem memberProjectSubitem = getById(id);
|
||||||
|
String companyId = memberProjectSubitem.getCompanyId();
|
||||||
|
//获得有效数据
|
||||||
|
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
|
||||||
|
if (takeEffectInfo == null || !Objects.equals(takeEffectInfo.getId(),id)){
|
||||||
|
throw new JeroBootException("只能修改最新生效会员数据");
|
||||||
|
}
|
||||||
|
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.eq(TbMemberProjectSubitem::getId,id)
|
||||||
|
.set(TbMemberProjectSubitem::getEffectiveDate,effectiveDate)
|
||||||
|
.set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate);
|
||||||
|
this.update(updateWrapper);
|
||||||
|
}
|
||||||
|
public void generateValidDate(String id){
|
||||||
|
TbMemberProjectSubitem memberProjectSubitem = getById(id);
|
||||||
|
//如果有有效期就不执行了
|
||||||
|
if (memberProjectSubitem.getEffectiveDate() != null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String companyId = memberProjectSubitem.getCompanyId();
|
||||||
|
//获得有效数据
|
||||||
|
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
|
||||||
|
DateTime effectiveDate;
|
||||||
|
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
|
||||||
|
DateTime date = DateUtil.date();
|
||||||
|
//如果是新会员,或者当前日期大于之前的失效日期
|
||||||
|
if (takeEffectInfo == null || DateUtil.compare(date,takeEffectInfo.getInvalidationDate()) > 0){
|
||||||
|
//获得当月1日
|
||||||
|
effectiveDate = DateUtil.beginOfMonth(date);
|
||||||
|
// 如果是续费
|
||||||
|
}else {
|
||||||
|
//获取上一个失效日期
|
||||||
|
Date previousInvalidationDate = takeEffectInfo.getInvalidationDate();
|
||||||
|
//获得失效日期的下个月1日
|
||||||
|
effectiveDate = DateUtil.beginOfMonth(DateUtil.date(previousInvalidationDate).offset(DateField.MONTH, 1));
|
||||||
|
}
|
||||||
|
//获得生效日期明年当月月底
|
||||||
|
DateTime invalidationDate = DateUtil.endOfMonth(effectiveDate.offset(DateField.YEAR, 1));
|
||||||
|
//设置生效失效日期
|
||||||
|
updateWrapper.set(TbMemberProjectSubitem::getEffectiveDate,effectiveDate);
|
||||||
|
updateWrapper.set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate);
|
||||||
|
//设置会员状态为已缴费
|
||||||
|
updateWrapper.set(TbMemberProjectSubitem::getMemberStatus,MemberStatusEnum.PAID.getValue());
|
||||||
|
//如果是新会员,生成会员编号
|
||||||
|
if (takeEffectInfo == null || memberProjectSubitem.getMemberNo() == null){
|
||||||
|
//格式化日期为yyyyMMdd
|
||||||
|
String dateStr = date.toString(DatePattern.PURE_DATE_PATTERN);
|
||||||
|
String memberNoPrefix = "CASA" + dateStr;
|
||||||
|
Integer maxMemberNo = tbMemberProjectSubitemMapper.getMaxMemberNo(memberNoPrefix);
|
||||||
|
//生成会员编号
|
||||||
|
String memberNo = buildMemberNo(memberNoPrefix, maxMemberNo);
|
||||||
|
updateWrapper.set(TbMemberProjectSubitem::getMemberNo,memberNo);
|
||||||
|
}
|
||||||
|
this.update(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
private String buildMemberNo(String prefix, Integer no) {
|
||||||
|
if (no == null || no <= 0) {
|
||||||
|
return prefix + "001";
|
||||||
|
}
|
||||||
|
String suffix = no.toString();
|
||||||
|
while (suffix.length() < 3) {
|
||||||
|
suffix = "0" + suffix;
|
||||||
|
}
|
||||||
|
return prefix + suffix;
|
||||||
|
}
|
||||||
|
|
||||||
void dataDownloadPower(QueryAggVO queryAggVO, HttpServletRequest request);
|
public void copy(CopyMemberVO copyMemberVO) {
|
||||||
|
String projectId = copyMemberVO.getProjectId();
|
||||||
|
String id = copyMemberVO.getId();
|
||||||
|
copyOperation(projectId, id);
|
||||||
|
}
|
||||||
|
|
||||||
void enableMemberByCompanyName(String companyName);
|
/**
|
||||||
|
* 复制操作
|
||||||
|
*/
|
||||||
|
private void copyOperation(String projectId, String id) {
|
||||||
|
TbMemberProjectSubitem memberProjectSubitem = this.getById(id);
|
||||||
|
//查询目标项目是否有当前企业
|
||||||
|
memberProjectSubitem.setProjectId(projectId);
|
||||||
|
this.check(memberProjectSubitem);
|
||||||
|
//复制成员信息生成新成员
|
||||||
|
TbMemberProjectSubitem newMemberProjectSubitem = setCopyValue(memberProjectSubitem);
|
||||||
|
this.setDefaultCreateValue(newMemberProjectSubitem);
|
||||||
|
newMemberProjectSubitem.setProjectId(projectId);
|
||||||
|
this.save(newMemberProjectSubitem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void copyBatch(CopyMemberVO copyMemberVO) {
|
||||||
|
String projectId = copyMemberVO.getProjectId();
|
||||||
|
String ids = copyMemberVO.getIds();
|
||||||
|
for (String id : ids.split(",")) {
|
||||||
|
copyOperation(projectId, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public MemberLineChartVO lineChart(Integer startYear, Integer endYear) {
|
||||||
|
MemberLineChartVO memberLineChartVO = new MemberLineChartVO();
|
||||||
|
List<MemberLineChartMap> byYear = tbMemberProjectSubitemMapper.getByYear(startYear, endYear);
|
||||||
|
Map<Integer, String> map = byYear.stream().collect(Collectors.toMap(MemberLineChartMap::getYear, MemberLineChartMap::getValue));
|
||||||
|
List<String> value = new ArrayList<>();
|
||||||
|
List<Integer> year = new ArrayList<>();
|
||||||
|
for (int i = startYear; i <= endYear; i++) {
|
||||||
|
year.add(i);
|
||||||
|
value.add(map.getOrDefault(i,"0"));
|
||||||
|
}
|
||||||
|
memberLineChartVO.setValue(value);
|
||||||
|
memberLineChartVO.setYear(year);
|
||||||
|
return memberLineChartVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MemberPieChartVO> pieChart() {
|
||||||
|
|
||||||
|
List<TbMemberProjectSubitem> allTakeEffect = tbMemberProjectSubitemMapper.getAllTakeEffect();
|
||||||
|
Map<Integer, List<TbMemberProjectSubitem>> collect = allTakeEffect.stream().collect(Collectors.groupingBy(TbMemberProjectSubitem::getMemberNature));
|
||||||
|
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("member_nature");
|
||||||
|
List<MemberPieChartVO> memberPieChartVOList = new ArrayList<>();
|
||||||
|
for (DictModel dictModel : dictModels) {
|
||||||
|
MemberPieChartVO memberPieChartVO = new MemberPieChartVO();
|
||||||
|
String value = dictModel.getValue();
|
||||||
|
memberPieChartVO.setMemberNature(value);
|
||||||
|
memberPieChartVO.setValue(collect.getOrDefault(Integer.valueOf(value),new ArrayList<>()).size()+"");
|
||||||
|
memberPieChartVOList.add(memberPieChartVO);
|
||||||
|
}
|
||||||
|
return memberPieChartVOList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
|
||||||
|
return baseMapper.pieChartPage(page,queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dataDownloadPower(QueryAggVO queryAggVO, HttpServletRequest request) {
|
||||||
|
String meetingId = queryAggVO.getMeetingId();
|
||||||
|
String meetingType = queryAggVO.getMeetingType();
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
String userId = loginUser.getId();
|
||||||
|
|
||||||
|
String companyId = loginUser.getCompanyId();
|
||||||
|
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
|
||||||
|
boolean isNotMember = false;
|
||||||
|
if (takeEffectInfo == null){
|
||||||
|
isNotMember = true;
|
||||||
|
}
|
||||||
|
//如果是标准宣贯&&学习培训要判断是否为参会人员
|
||||||
|
if ("6".equals(meetingType) || "7".equals(meetingType)) {
|
||||||
|
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(PayMeetingSituation::getMeetingId,meetingId);
|
||||||
|
wrapper.eq(PayMeetingSituation::getCompanyContactId,userId);
|
||||||
|
Integer count = payMeetingSituationMapper.selectCount(wrapper);
|
||||||
|
|
||||||
|
if (count <= 0 && isNotMember) {
|
||||||
|
throw new JeroBootException("只有参会人员和有效期内的缴费会员可以下载和预览文件!");
|
||||||
|
}
|
||||||
|
}else if (isNotMember){
|
||||||
|
throw new JeroBootException("只有有效期内的缴费会员可以下载和预览文件!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enableMemberByCompanyName(String companyName) {
|
||||||
|
PayCompanyManagement company = companyManagementService.getCompanyByName(companyName);
|
||||||
|
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(company.getId());
|
||||||
|
if (takeEffectInfo == null){
|
||||||
|
throw new JeroBootException(companyName + "不是有效会员");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) {
|
||||||
|
TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
|
||||||
|
tbMemberProjectSubitem.setMemberNo(memberProjectSubitem.getMemberNo());
|
||||||
|
tbMemberProjectSubitem.setCompanyId(memberProjectSubitem.getCompanyId());
|
||||||
|
tbMemberProjectSubitem.setCompanyName(memberProjectSubitem.getCompanyName());
|
||||||
|
tbMemberProjectSubitem.setMemberNature(memberProjectSubitem.getMemberNature());
|
||||||
|
tbMemberProjectSubitem.setMemberType(memberProjectSubitem.getMemberType());
|
||||||
|
tbMemberProjectSubitem.setLiaisonManId(memberProjectSubitem.getLiaisonManId());
|
||||||
|
tbMemberProjectSubitem.setLiaisonMan(memberProjectSubitem.getLiaisonMan());
|
||||||
|
tbMemberProjectSubitem.setEmail(memberProjectSubitem.getEmail());
|
||||||
|
tbMemberProjectSubitem.setMobile(memberProjectSubitem.getMobile());
|
||||||
|
tbMemberProjectSubitem.setMemberStatus(memberProjectSubitem.getMemberStatus());
|
||||||
|
tbMemberProjectSubitem.setRegisterTime(memberProjectSubitem.getRegisterTime());
|
||||||
|
tbMemberProjectSubitem.setAmountReceivable(memberProjectSubitem.getAmountReceivable());
|
||||||
|
tbMemberProjectSubitem.setEstimatedArrivalDate(memberProjectSubitem.getEstimatedArrivalDate());
|
||||||
|
tbMemberProjectSubitem.setInvoiceRequirements(memberProjectSubitem.getInvoiceRequirements());
|
||||||
|
tbMemberProjectSubitem.setTicketCollection(memberProjectSubitem.getTicketCollection());
|
||||||
|
tbMemberProjectSubitem.setChargeUse(memberProjectSubitem.getChargeUse());
|
||||||
|
tbMemberProjectSubitem.setPaymentMethod(memberProjectSubitem.getPaymentMethod());
|
||||||
|
tbMemberProjectSubitem.setHeaderName(memberProjectSubitem.getHeaderName());
|
||||||
|
tbMemberProjectSubitem.setTaxNumber(memberProjectSubitem.getTaxNumber());
|
||||||
|
tbMemberProjectSubitem.setInvoiceAddress(memberProjectSubitem.getInvoiceAddress());
|
||||||
|
tbMemberProjectSubitem.setInvoicePhone(memberProjectSubitem.getInvoicePhone());
|
||||||
|
tbMemberProjectSubitem.setDepositBank(memberProjectSubitem.getDepositBank());
|
||||||
|
tbMemberProjectSubitem.setBankAccount(memberProjectSubitem.getBankAccount());
|
||||||
|
tbMemberProjectSubitem.setLinkBankNumber(memberProjectSubitem.getLinkBankNumber());
|
||||||
|
tbMemberProjectSubitem.setTaxRate(memberProjectSubitem.getTaxRate());
|
||||||
|
tbMemberProjectSubitem.setTax(memberProjectSubitem.getTax());
|
||||||
|
tbMemberProjectSubitem.setNoTaxAmount(memberProjectSubitem.getNoTaxAmount());
|
||||||
|
tbMemberProjectSubitem.setPostCompanyId(memberProjectSubitem.getPostCompanyId());
|
||||||
|
tbMemberProjectSubitem.setPostContactId(memberProjectSubitem.getPostContactId());
|
||||||
|
tbMemberProjectSubitem.setAdminAddFlag(memberProjectSubitem.getAdminAddFlag());
|
||||||
|
tbMemberProjectSubitem.setContractNum(memberProjectSubitem.getContractNum());
|
||||||
|
tbMemberProjectSubitem.setChargeNoticeNo(memberProjectSubitem.getChargeNoticeNo());
|
||||||
|
tbMemberProjectSubitem.setChargeNoticeId(memberProjectSubitem.getChargeNoticeId());
|
||||||
|
tbMemberProjectSubitem.setInvalidationDate(memberProjectSubitem.getInvalidationDate());
|
||||||
|
tbMemberProjectSubitem.setEffectiveDate(memberProjectSubitem.getEffectiveDate());
|
||||||
|
tbMemberProjectSubitem.setRemark(memberProjectSubitem.getRemark());
|
||||||
|
return tbMemberProjectSubitem;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public IPage<TbMemberProjectSubitem> queryPageListCompany(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
|
||||||
|
|
||||||
|
return baseMapper.queryPageListCompany(page, queryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-174
@@ -1,174 +0,0 @@
|
|||||||
package com.jero.member.service.impl;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
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.common.service.RolePermissionService;
|
|
||||||
import com.jero.common.system.vo.LoginUser;
|
|
||||||
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;
|
|
||||||
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.common.PayProjectCommon;
|
|
||||||
import com.jero.project.entity.PayCommonProject;
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
|
||||||
import org.apache.shiro.SecurityUtils;
|
|
||||||
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 org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 会员项目表
|
|
||||||
* @Author: jero-boot
|
|
||||||
* @Date: 2021-08-26
|
|
||||||
* @Version: V1.0
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
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;
|
|
||||||
@Resource
|
|
||||||
private RolePermissionService rolePermissionService;
|
|
||||||
/**
|
|
||||||
* 保存
|
|
||||||
*
|
|
||||||
* @param payMemberProject
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public void add(PayMemberProject payMemberProject) {
|
|
||||||
//判断项目名称
|
|
||||||
LambdaQueryWrapper<PayMemberProject> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(PayMemberProject::getProjectName,payMemberProject.getProjectName());
|
|
||||||
Integer integer = baseMapper.selectCount(wrapper);
|
|
||||||
if (integer>0){
|
|
||||||
throw new JeroBootException("项目名称重复");
|
|
||||||
}
|
|
||||||
//判断联系人
|
|
||||||
String directorId = payMemberProject.getDirectorId();
|
|
||||||
SysUser sysUser = userMapper.selectById(directorId);
|
|
||||||
if (sysUser == null){
|
|
||||||
throw new JeroBootException("联系人不存在");
|
|
||||||
}
|
|
||||||
payMemberProject.setDirectorName(sysUser.getUsername());
|
|
||||||
save(payMemberProject);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新
|
|
||||||
*
|
|
||||||
* @param payMemberProject
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void editById(PayMemberProject payMemberProject) {
|
|
||||||
saveOrUpdate(payMemberProject);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id删除
|
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteById(String id) {
|
|
||||||
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
|
||||||
query.eq(PayMemberProjectSubitem::getProjectId, id);
|
|
||||||
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
|
|
||||||
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)) {
|
|
||||||
throw new JeroBootException("会员项目下存在企业,不可进行删除!");
|
|
||||||
}
|
|
||||||
removeById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除
|
|
||||||
*
|
|
||||||
* @param ids
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteByIds(List<String> ids) {
|
|
||||||
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
|
||||||
query.in(PayMemberProjectSubitem::getProjectId, ids);
|
|
||||||
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
|
|
||||||
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)) {
|
|
||||||
throw new JeroBootException("会员项目下存在企业,不可进行删除!");
|
|
||||||
}
|
|
||||||
removeByIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id查询
|
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PayMemberProject queryById(String id) {
|
|
||||||
return getById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表查询
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<PayMemberProject> queryList() {
|
|
||||||
return list();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<PayMemberProject> getPage(Page<PayMemberProject> page, QueryWrapper<PayMemberProject> queryWrapper) {
|
|
||||||
Page<PayMemberProject> memberProjectPage = baseMapper.selectPage(page, queryWrapper);
|
|
||||||
List<PayMemberProject> records = memberProjectPage.getRecords();
|
|
||||||
for (PayMemberProject record : records) {
|
|
||||||
String directorId = record.getDirectorId();
|
|
||||||
SysUser sysUser = userMapper.selectById(directorId);
|
|
||||||
record.setDirectorName(sysUser.getUsername());
|
|
||||||
}
|
|
||||||
memberProjectPage.setRecords(records);
|
|
||||||
return memberProjectPage;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page, String companyId, String projectName, String projectType, Integer pack, String packYear) {
|
|
||||||
return payMemberProjectMapper.queryListByCompany(page,companyId, projectName,projectType, pack, packYear);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void check(String projectId,String permission){
|
|
||||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
if (!rolePermissionService.getRolePermission(permission)) {
|
|
||||||
PayMemberProject payMemberProject = payMemberProjectMapper.selectById(projectId);
|
|
||||||
if (!Objects.equals(payMemberProject.getDirectorId(),sysUser.getId())){
|
|
||||||
throw new JeroBootException("权限不足");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-519
@@ -1,519 +0,0 @@
|
|||||||
package com.jero.member.service.impl;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.jero.common.common.ProjectCommon;
|
|
||||||
import com.jero.common.dto.PaySendContactsMessageDTO;
|
|
||||||
import com.jero.common.exception.JeroBootException;
|
|
||||||
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
|
||||||
import com.jero.common.service.ProjectDetailService;
|
|
||||||
import com.jero.common.service.RolePermissionService;
|
|
||||||
import com.jero.common.system.vo.LoginUser;
|
|
||||||
import com.jero.common.util.ValidUtil;
|
|
||||||
import com.jero.common.vo.ProjectStatusVO;
|
|
||||||
import com.jero.company.entity.PayContactsManagement;
|
|
||||||
import com.jero.company.service.IPayContactsManagementService;
|
|
||||||
import com.jero.contract.entity.PayIncomeContract;
|
|
||||||
import com.jero.contract.service.IPayIncomeContractService;
|
|
||||||
import com.jero.mail.service.IPayMailBillService;
|
|
||||||
import com.jero.member.entity.PayMemberProject;
|
|
||||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
|
||||||
import com.jero.member.mapper.PayMemberProjectMapper;
|
|
||||||
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
|
|
||||||
import com.jero.member.service.IPayMemberProjectService;
|
|
||||||
import com.jero.member.service.IPayMemberProjectSubitemService;
|
|
||||||
import com.jero.pack.entity.PayPackCompanyProject;
|
|
||||||
import com.jero.pack.service.IPayPackCompanyProjectService;
|
|
||||||
import com.jero.project.common.PayProjectCommon;
|
|
||||||
import com.jero.temporary.entity.PayCompanyManagementTemporary;
|
|
||||||
import com.jero.temporary.entity.PayContactsManagementTemporary;
|
|
||||||
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
|
|
||||||
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
|
||||||
import com.jero.valid.group.ChargeNotice;
|
|
||||||
import com.jero.valid.group.Contract;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.apache.shiro.SecurityUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 会员项目成员表
|
|
||||||
* @Author: jero-boot
|
|
||||||
* @Date: 2021-08-26
|
|
||||||
* @Version: V1.0
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMemberProjectSubitemMapper, PayMemberProjectSubitem> implements IPayMemberProjectSubitemService {
|
|
||||||
|
|
||||||
@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 ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
|
||||||
@Resource
|
|
||||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
|
||||||
@Resource
|
|
||||||
private RolePermissionService rolePermissionService;
|
|
||||||
@Resource
|
|
||||||
private PayMemberProjectMapper payMemberProjectMapper;
|
|
||||||
@Resource
|
|
||||||
private IPayMailBillService payMailBillService;
|
|
||||||
/**
|
|
||||||
* 保存
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void add(PayMemberProjectSubitem payMemberProjectSubitem) {
|
|
||||||
String projectId = payMemberProjectSubitem.getProjectId();
|
|
||||||
PayMemberProject memberProject = memberProjectService.getById(projectId);
|
|
||||||
if (memberProject == null){
|
|
||||||
throw new JeroBootException("会员项目不存在");
|
|
||||||
}
|
|
||||||
String companyId = payMemberProjectSubitem.getCompanyId();
|
|
||||||
LambdaQueryWrapper<PayMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(PayMemberProjectSubitem::getProjectId,projectId);
|
|
||||||
wrapper.eq(PayMemberProjectSubitem::getCompanyId,companyId);
|
|
||||||
int count = count(wrapper);
|
|
||||||
if (count>0){
|
|
||||||
throw new JeroBootException("会员单位已经存在");
|
|
||||||
}
|
|
||||||
// validMemberProjectSubitem(payMemberProjectSubitem);
|
|
||||||
validMemberProjectSubitemAdd(payMemberProjectSubitem);
|
|
||||||
//实收金额
|
|
||||||
payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00"));
|
|
||||||
//到账
|
|
||||||
payMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
|
|
||||||
//打包
|
|
||||||
payMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
|
|
||||||
//开票
|
|
||||||
payMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
|
||||||
//邮寄
|
|
||||||
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(),payMemberProjectSubitem.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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 收入合同创建项目发送消息到项目负责人
|
|
||||||
if(Objects.equals(ProjectCommon.FLAG,payMemberProjectSubitem.getFlag())){
|
|
||||||
contractCreateProjectSendMessageService.contractCreateProjectSendMessageService(memberProject.getProjectName() + "的" + payMemberProjectSubitem.getCompanyName(),payMemberProjectSubitem.getId(),memberProject.getDirectorId());
|
|
||||||
}
|
|
||||||
// 新建项目 给企业联系人发送消息
|
|
||||||
PayContactsManagement payContactsManagement = contactsManagementService.getById(payMemberProjectSubitem.getCompanyContactId());
|
|
||||||
if(!Objects.isNull(payContactsManagement)){
|
|
||||||
PaySendContactsMessageDTO paySendContactsMessageDTO = new PaySendContactsMessageDTO();
|
|
||||||
paySendContactsMessageDTO.setProjectName(memberProject.getProjectName());
|
|
||||||
paySendContactsMessageDTO.setProjectId(payMemberProjectSubitem.getId());
|
|
||||||
paySendContactsMessageDTO.setEmail(payContactsManagement.getEmail());
|
|
||||||
paySendContactsMessageDTO.setPhone(payContactsManagement.getPhone());
|
|
||||||
paySendContactsMessageDTO.setUserId(memberProject.getDirectorId());
|
|
||||||
paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0);
|
|
||||||
// 项目的待确收金额>0 发送缴费通知
|
|
||||||
if(payMemberProjectSubitem.getAmountReceivable().compareTo(new BigDecimal("0")) > 0){
|
|
||||||
paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0 + "," + ProjectCommon.FLAG1);
|
|
||||||
}
|
|
||||||
JSONObject json = new JSONObject();
|
|
||||||
json.put("type",ProjectCommon.PROJECT_TYPE4);
|
|
||||||
json.put("id",payMemberProjectSubitem.getId());
|
|
||||||
json.put("path","MessagePage/ProjectDetailModal");
|
|
||||||
paySendContactsMessageDTO.setJson(json);
|
|
||||||
contractCreateProjectSendMessageService.createProjectSendMessageToContactsService(paySendContactsMessageDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void editById(PayMemberProjectSubitem payMemberProjectSubitem) {
|
|
||||||
String id = payMemberProjectSubitem.getId();
|
|
||||||
PayMemberProjectSubitem payMemberProjectSubitem1 = getById(id);
|
|
||||||
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(),payMemberProjectSubitem1.getPaymentMethod())){
|
|
||||||
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
|
|
||||||
}
|
|
||||||
if(Objects.equals(payMemberProjectSubitem1.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2) && !Objects.equals(payMemberProjectSubitem1.getContractNo(),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());
|
|
||||||
payMemberProjectSubitem.setInAccount(payMemberProjectSubitem1.getInAccount());
|
|
||||||
payMemberProjectSubitem.setMakeInvoice(payMemberProjectSubitem1.getMakeInvoice());
|
|
||||||
payMemberProjectSubitem.setMail(payMemberProjectSubitem1.getMail());
|
|
||||||
|
|
||||||
//如果原始企业id和现在企业id不同,就删除临时表数据
|
|
||||||
// String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
|
|
||||||
// if (!payMemberProjectSubitem1.getCompanyTemporaryId().equals(companyId)) {
|
|
||||||
// companyManagementTemporaryService.removeById(companyId);
|
|
||||||
// }
|
|
||||||
// //如果原始企业联系人id和现在企业联系人id不同,就删除临时表数据
|
|
||||||
// String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
|
|
||||||
// if (!payMemberProjectSubitem1.getCompanyContactTemporaryId().equals(companyContactId)) {
|
|
||||||
// contactsManagementTemporaryService.removeById(companyContactId);
|
|
||||||
// }
|
|
||||||
// //如果原始邮寄联系人id和现在邮寄联系人id不同,就删除临时表数据
|
|
||||||
// String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
|
|
||||||
// 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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 选择无
|
|
||||||
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY1)){
|
|
||||||
payMemberProjectSubitem.setContractNo(null);
|
|
||||||
payMemberProjectSubitem.setChargeNoticeNo(null);
|
|
||||||
payMemberProjectSubitem.setChargeNoticeFileId(null);
|
|
||||||
}
|
|
||||||
// 选择合同
|
|
||||||
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
|
|
||||||
payMemberProjectSubitem.setChargeNoticeNo(null);
|
|
||||||
payMemberProjectSubitem.setChargeNoticeFileId(null);
|
|
||||||
}
|
|
||||||
// 选择收费通知
|
|
||||||
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY3)){
|
|
||||||
payMemberProjectSubitem.setContractNo(null);
|
|
||||||
}
|
|
||||||
validMemberProjectSubitemEdit(payMemberProjectSubitem,payMemberProjectSubitem1);
|
|
||||||
saveOrUpdate(payMemberProjectSubitem);
|
|
||||||
// 如果有邮寄信息更新邮寄联系人信息
|
|
||||||
String mailContactsId = payMemberProjectSubitem.getPostContactId();
|
|
||||||
payMailBillService.updateContactByProjectId(mailContactsId,payMemberProjectSubitem.getId(), null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验会员项目成员
|
|
||||||
* @param payMemberProjectSubitem 会员项目成员
|
|
||||||
*/
|
|
||||||
public void validMemberProjectSubitemAdd(PayMemberProjectSubitem payMemberProjectSubitem) {
|
|
||||||
List<String> errors = new ArrayList<>();
|
|
||||||
// 企业
|
|
||||||
try {
|
|
||||||
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
|
|
||||||
if (Objects.isNull(chargeCompanyName)) {
|
|
||||||
throw new JeroBootException("企业名称为空!");
|
|
||||||
}
|
|
||||||
payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId());
|
|
||||||
payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName());
|
|
||||||
} catch (JeroBootException e) {
|
|
||||||
errors.add("会员单位不存在");
|
|
||||||
}
|
|
||||||
// 联系人
|
|
||||||
try {
|
|
||||||
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
|
|
||||||
if (Objects.isNull(contactsName)) {
|
|
||||||
throw new JeroBootException("联系人名称为空!");
|
|
||||||
}
|
|
||||||
payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId());
|
|
||||||
payMemberProjectSubitem.setCompanyContactName(contactsName.getName());
|
|
||||||
} catch (JeroBootException e) {
|
|
||||||
errors.add("企业联系人不存在");
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
// 联系人
|
|
||||||
PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
|
|
||||||
if (Objects.isNull(postContactsName)) {
|
|
||||||
throw new JeroBootException("邮寄联系人为空!");
|
|
||||||
}
|
|
||||||
payMemberProjectSubitem.setPostContactTemporaryId(postContactsName.getId());
|
|
||||||
payMemberProjectSubitem.setPostContactName(postContactsName.getName());
|
|
||||||
} catch (JeroBootException e) {
|
|
||||||
errors.add("邮寄联系人不存在");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!errors.isEmpty()) {
|
|
||||||
throw new JeroBootException(StringUtils.join(errors, ","));
|
|
||||||
}
|
|
||||||
//校验来款方式
|
|
||||||
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
|
|
||||||
//合同
|
|
||||||
if (Objects.equals(paymentMethod, 2)) {
|
|
||||||
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
|
|
||||||
}
|
|
||||||
//收费通知
|
|
||||||
if (Objects.equals(paymentMethod, 3)) {
|
|
||||||
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验会员项目成员
|
|
||||||
* @param payMemberProjectSubitem 会员项目成员
|
|
||||||
*/
|
|
||||||
public void validMemberProjectSubitemEdit(PayMemberProjectSubitem payMemberProjectSubitem,PayMemberProjectSubitem payMemberProjectSubitemOld) {
|
|
||||||
// 企业id != 企业模板id 变更
|
|
||||||
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitemOld.getCompanyId())){
|
|
||||||
// 企业
|
|
||||||
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
|
|
||||||
if(Objects.isNull(chargeCompanyName)){
|
|
||||||
throw new JeroBootException("企业名称为空!");
|
|
||||||
}
|
|
||||||
payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId());
|
|
||||||
payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName());
|
|
||||||
companyManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyTemporaryId());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 联系人id != 联系人模板id 变更
|
|
||||||
// 联系人
|
|
||||||
PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
|
|
||||||
if(Objects.isNull(companyContact)){
|
|
||||||
throw new JeroBootException("联系人名称为空!");
|
|
||||||
}
|
|
||||||
payMemberProjectSubitem.setCompanyContactTemporaryId(companyContact.getId());
|
|
||||||
payMemberProjectSubitem.setCompanyContactName(companyContact.getName());
|
|
||||||
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
|
|
||||||
|
|
||||||
// 邮寄联系人id != 邮寄联系人模板id 变更
|
|
||||||
if(!Objects.equals(payMemberProjectSubitem.getPostContactId(),payMemberProjectSubitemOld.getPostContactId())){
|
|
||||||
// 联系人
|
|
||||||
PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
|
|
||||||
if(Objects.isNull(postContact)){
|
|
||||||
throw new JeroBootException("邮寄联系人为空!");
|
|
||||||
}
|
|
||||||
payMemberProjectSubitem.setPostContactTemporaryId(postContact.getId());
|
|
||||||
payMemberProjectSubitem.setPostContactName(postContact.getName());
|
|
||||||
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getPostContactTemporaryId());
|
|
||||||
}
|
|
||||||
|
|
||||||
//校验来款方式
|
|
||||||
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
|
|
||||||
//合同
|
|
||||||
if (Objects.equals(paymentMethod,2)){
|
|
||||||
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
|
|
||||||
}
|
|
||||||
//收费通知
|
|
||||||
if (Objects.equals(paymentMethod,3)){
|
|
||||||
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验会员项目成员
|
|
||||||
* @param payMemberProjectSubitem 会员项目成员
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void validMemberProjectSubitem(PayMemberProjectSubitem payMemberProjectSubitem) {
|
|
||||||
//校验企业
|
|
||||||
String companyId = payMemberProjectSubitem.getCompanyId();
|
|
||||||
PayCompanyManagementTemporary companyManagementTemporary = companyManagementTemporaryService.insertCompanyManagementTemporary(companyId);
|
|
||||||
payMemberProjectSubitem.setCompanyTemporaryId(companyManagementTemporary.getId());
|
|
||||||
payMemberProjectSubitem.setCompanyName(companyManagementTemporary.getCompanyName());
|
|
||||||
|
|
||||||
//校验企业联系人
|
|
||||||
String companyContactId = payMemberProjectSubitem.getCompanyContactId();
|
|
||||||
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
|
|
||||||
//校验是否是选择的企业的联系人
|
|
||||||
String companyId1 = contactsManagement.getCompanyId();
|
|
||||||
if (companyId1.equals(companyId)){
|
|
||||||
PayContactsManagementTemporary contactsManagementTemporary = contactsManagementTemporaryService.insertContactsManagementTemporary(companyContactId);
|
|
||||||
payMemberProjectSubitem.setCompanyContactTemporaryId(contactsManagementTemporary.getId());
|
|
||||||
payMemberProjectSubitem.setCompanyContactName(contactsManagementTemporary.getName());
|
|
||||||
}else {
|
|
||||||
throw new JeroBootException("企业联系人不是所选企业的企业联系人");
|
|
||||||
}
|
|
||||||
//校验邮寄联系人
|
|
||||||
String postContactId = payMemberProjectSubitem.getPostContactId();
|
|
||||||
PayContactsManagement postContact = contactsManagementService.getById(postContactId);
|
|
||||||
//校验是否是选择的企业的联系人
|
|
||||||
String companyId2 = postContact.getCompanyId();
|
|
||||||
if (companyId2.equals(companyId)){
|
|
||||||
PayContactsManagementTemporary contactsManagementTemporary1 = contactsManagementTemporaryService.insertContactsManagementTemporary(postContactId);
|
|
||||||
payMemberProjectSubitem.setPostContactTemporaryId(contactsManagementTemporary1.getId());
|
|
||||||
payMemberProjectSubitem.setPostContactName(contactsManagementTemporary1.getName());
|
|
||||||
}else {
|
|
||||||
throw new JeroBootException("邮寄联系人不是所选企业的企业联系人");
|
|
||||||
}
|
|
||||||
//校验来款方式
|
|
||||||
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
|
|
||||||
//合同
|
|
||||||
if (Objects.equals(paymentMethod,2)){
|
|
||||||
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
|
|
||||||
}
|
|
||||||
//收费通知
|
|
||||||
if (Objects.equals(paymentMethod,3)){
|
|
||||||
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id删除
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public void deleteById(String id) {
|
|
||||||
deleteProject(id);
|
|
||||||
// delectTemporaryById(id);
|
|
||||||
removeById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void delectTemporaryById(String id) {
|
|
||||||
PayMemberProjectSubitem payMemberProjectSubitem = getById(id);
|
|
||||||
//删除临时表数据
|
|
||||||
String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
|
|
||||||
companyManagementTemporaryService.removeById(companyId);
|
|
||||||
|
|
||||||
String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
|
|
||||||
contactsManagementTemporaryService.removeById(companyContactId);
|
|
||||||
|
|
||||||
String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
|
|
||||||
contactsManagementTemporaryService.removeById(postContactId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public void deleteByIds(List<String> ids) {
|
|
||||||
for (String id : ids) {
|
|
||||||
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查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PayMemberProjectSubitem queryById(String id) {
|
|
||||||
return getById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<PayMemberProjectSubitem> queryList() {
|
|
||||||
return list();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
|
||||||
return baseMapper.queryPageListCompany(page,queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<PayMemberProjectSubitem> queryPageListCompany(QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
|
||||||
return baseMapper.queryPageListCompany(queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
|
||||||
return baseMapper.getPage(page, queryWrapper);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void check(String subitemId,String permission){
|
|
||||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
if (!rolePermissionService.getRolePermission(permission)) {
|
|
||||||
PayMemberProjectSubitem payMemberProjectSubitem = baseMapper.selectById(subitemId);
|
|
||||||
PayMemberProject payMemberProject = payMemberProjectMapper.selectById(payMemberProjectSubitem.getProjectId());
|
|
||||||
if (!Objects.equals(payMemberProject.getDirectorId(),sysUser.getId())){
|
|
||||||
throw new JeroBootException("权限不足");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-84
@@ -1,84 +0,0 @@
|
|||||||
package com.jero.member.service.impl;
|
|
||||||
|
|
||||||
import com.jero.member.entity.TbCertificatePayment;
|
|
||||||
import com.jero.member.mapper.TbCertificatePaymentMapper;
|
|
||||||
import com.jero.member.service.ITbCertificatePaymentService;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import java.util.List;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 证书缴费表
|
|
||||||
* @Author: jero-boot
|
|
||||||
* @Date: 2021-12-14
|
|
||||||
* @Version: V1.0
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class TbCertificatePaymentServiceImpl extends ServiceImpl<TbCertificatePaymentMapper, TbCertificatePayment> implements ITbCertificatePaymentService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 保存
|
|
||||||
*
|
|
||||||
* @param tbCertificatePayment
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void add(TbCertificatePayment tbCertificatePayment) {
|
|
||||||
saveOrUpdate(tbCertificatePayment);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新
|
|
||||||
*
|
|
||||||
* @param tbCertificatePayment
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void editById(TbCertificatePayment tbCertificatePayment) {
|
|
||||||
saveOrUpdate(tbCertificatePayment);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id删除
|
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteById(String id) {
|
|
||||||
removeById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除
|
|
||||||
*
|
|
||||||
* @param ids
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteByIds(List<String> ids) {
|
|
||||||
removeByIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id查询
|
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public TbCertificatePayment queryById(String id) {
|
|
||||||
return getById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表查询
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<TbCertificatePayment> queryList() {
|
|
||||||
return list();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-147
@@ -1,147 +0,0 @@
|
|||||||
package com.jero.member.service.impl;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.jero.common.exception.JeroBootException;
|
|
||||||
import com.jero.common.service.RolePermissionService;
|
|
||||||
import com.jero.common.system.vo.LoginUser;
|
|
||||||
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;
|
|
||||||
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.apache.shiro.SecurityUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import com.jero.project.entity.PayWorkGroupSubletStatistics;
|
|
||||||
import com.jero.statistics.entity.AllProjectStatistics;
|
|
||||||
import com.jero.statistics.entity.AllProjectStatisticsSearch;
|
|
||||||
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;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 标协会员项目表
|
|
||||||
* @Author: jero-boot
|
|
||||||
* @Date: 2021-09-01
|
|
||||||
* @Version: V1.0
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMapper, TbMemberProject> implements ITbMemberProjectService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IPayIncomeContractService payIncomeContractService;
|
|
||||||
@Resource
|
|
||||||
private RolePermissionService rolePermissionService;
|
|
||||||
/**
|
|
||||||
* 保存
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void add(TbMemberProject tbMemberProject) {
|
|
||||||
//一年只能有一个项目
|
|
||||||
String year = tbMemberProject.getYear();
|
|
||||||
check(year, null);
|
|
||||||
save(tbMemberProject);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 一年只能有一个项目
|
|
||||||
*/
|
|
||||||
private void check(String year, String id) {
|
|
||||||
LambdaQueryWrapper<TbMemberProject> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(TbMemberProject::getYear, year);
|
|
||||||
wrapper.ne(id != null, TbMemberProject::getId, id);
|
|
||||||
int count = count(wrapper);
|
|
||||||
if (count > 0) {
|
|
||||||
throw new JeroBootException("已经存在" + year + "年标协会员项目");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void editById(TbMemberProject tbMemberProject) {
|
|
||||||
//一年只能有一个项目
|
|
||||||
String year = tbMemberProject.getYear();
|
|
||||||
String id = tbMemberProject.getId();
|
|
||||||
check(year, id);
|
|
||||||
saveOrUpdate(tbMemberProject);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id删除
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteById(String id) {
|
|
||||||
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
|
||||||
query.eq(TbMemberProjectSubitem::getProjectId, id);
|
|
||||||
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
|
|
||||||
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)) {
|
|
||||||
throw new JeroBootException("标协会员项目下存在企业,不可进行删除!");
|
|
||||||
}
|
|
||||||
removeById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteByIds(List<String> ids) {
|
|
||||||
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
|
||||||
query.in(TbMemberProjectSubitem::getProjectId, ids);
|
|
||||||
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
|
|
||||||
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)) {
|
|
||||||
throw new JeroBootException("标协会员项目下存在企业,不可进行删除!");
|
|
||||||
}
|
|
||||||
removeByIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public TbMemberProject queryById(String id) {
|
|
||||||
return getById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<TbMemberProject> queryList() {
|
|
||||||
return list();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<TbMemberProject> queryPageList(Page<TbMemberProject> page, QueryWrapper<TbMemberProject> queryWrapper) {
|
|
||||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
if (!rolePermissionService.getRolePermission("stardsMember:search")) {
|
|
||||||
queryWrapper.and(
|
|
||||||
a -> a.eq("pm.director_id",sysUser.getId())
|
|
||||||
.or()
|
|
||||||
.eq("tmp.director_id",sysUser.getId())
|
|
||||||
.or()
|
|
||||||
.eq("pmc.meeting_contacts_id", sysUser.getId())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return baseMapper.queryPageList(page,queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-491
@@ -1,491 +0,0 @@
|
|||||||
package com.jero.member.service.impl;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import cn.hutool.core.date.DateField;
|
|
||||||
import cn.hutool.core.date.DatePattern;
|
|
||||||
import cn.hutool.core.date.DateTime;
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
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.enums.PaymentStatusEnum;
|
|
||||||
import com.jero.common.exception.JeroBootException;
|
|
||||||
import com.jero.common.service.RolePermissionService;
|
|
||||||
import com.jero.common.system.api.ISysBaseAPI;
|
|
||||||
import com.jero.common.system.vo.DictModel;
|
|
||||||
import com.jero.common.system.vo.LoginUser;
|
|
||||||
import com.jero.common.util.AuthenticationUtils;
|
|
||||||
import com.jero.common.util.PasswordUtil;
|
|
||||||
import com.jero.company.entity.PayCompanyManagement;
|
|
||||||
import com.jero.company.service.IPayCompanyManagementService;
|
|
||||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
|
||||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
|
||||||
import com.jero.contract.service.IPayIncomeContractService;
|
|
||||||
import com.jero.mail.entity.PayMailBillProject;
|
|
||||||
import com.jero.mail.service.IPayMailBillProjectService;
|
|
||||||
import com.jero.mail.service.IPayMailBillService;
|
|
||||||
import com.jero.meeting.entity.PayMeetingSituation;
|
|
||||||
import com.jero.meeting.mapper.PayMeetingSituationMapper;
|
|
||||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
|
||||||
import com.jero.member.enums.MemberStatusEnum;
|
|
||||||
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
|
|
||||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
|
||||||
import com.jero.member.vo.CopyMemberVO;
|
|
||||||
import com.jero.member.vo.EditMemberBenefitsVO;
|
|
||||||
import com.jero.member.vo.QueryAggVO;
|
|
||||||
import com.jero.pack.entity.PayPackCompanyProject;
|
|
||||||
import com.jero.pack.service.IPayPackCompanyProjectService;
|
|
||||||
import com.jero.payment.entity.PayConfirmPaymentRecord;
|
|
||||||
import com.jero.payment.entity.PayPaymentRecord;
|
|
||||||
import com.jero.payment.service.IPayPaymentRecordService;
|
|
||||||
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
|
|
||||||
import com.jero.project.common.PayProjectCommon;
|
|
||||||
import com.jero.statistics.entity.MemberLineChartMap;
|
|
||||||
import com.jero.statistics.entity.MemberLineChartVO;
|
|
||||||
import com.jero.statistics.entity.MemberPieChartVO;
|
|
||||||
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
|
|
||||||
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
|
||||||
import com.sun.javaws.exceptions.JreExecException;
|
|
||||||
import org.apache.shiro.SecurityUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import static freemarker.template.utility.NullArgumentException.check;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 标协会员项目成员表
|
|
||||||
* @Author: jero-boot
|
|
||||||
* @Date: 2021-09-01
|
|
||||||
* @Version: V1.0
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProjectSubitemMapper, TbMemberProjectSubitem> implements ITbMemberProjectSubitemService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
|
|
||||||
@Autowired
|
|
||||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
|
||||||
@Autowired
|
|
||||||
private IPayIncomeContractService payIncomeContractService;
|
|
||||||
@Autowired
|
|
||||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
|
||||||
@Autowired
|
|
||||||
private IPayCompanyManagementService companyManagementService;
|
|
||||||
@Autowired
|
|
||||||
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
|
|
||||||
@Resource
|
|
||||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
|
||||||
@Resource
|
|
||||||
private RolePermissionService rolePermissionService;
|
|
||||||
@Resource
|
|
||||||
private IPayPaymentRecordService payPaymentRecordService;
|
|
||||||
@Resource
|
|
||||||
private PayConfirmPaymentRecordService payConfirmPaymentRecordService;
|
|
||||||
@Resource
|
|
||||||
private IPayMailBillProjectService payMailBillProjectService;
|
|
||||||
@Resource
|
|
||||||
private IPayMailBillService payMailBillService;
|
|
||||||
@Resource
|
|
||||||
private ISysBaseAPI sysBaseAPI;
|
|
||||||
@Resource
|
|
||||||
private PayMeetingSituationMapper payMeetingSituationMapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 保存
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void add(TbMemberProjectSubitem tbMemberProjectSubitem) {
|
|
||||||
setDefaultCreateValue(tbMemberProjectSubitem);
|
|
||||||
|
|
||||||
check(tbMemberProjectSubitem);
|
|
||||||
save(tbMemberProjectSubitem);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时默认值
|
|
||||||
*/
|
|
||||||
private void setDefaultCreateValue(TbMemberProjectSubitem tbMemberProjectSubitem) {
|
|
||||||
//实收金额
|
|
||||||
tbMemberProjectSubitem.setPaidAmount(BigDecimal.ZERO);
|
|
||||||
//到账
|
|
||||||
tbMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
|
|
||||||
//开票
|
|
||||||
tbMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
|
||||||
//邮寄
|
|
||||||
tbMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
|
|
||||||
//打包
|
|
||||||
tbMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
|
|
||||||
//提票
|
|
||||||
tbMemberProjectSubitem.setTicketCollection(PayProjectCommon.NO);
|
|
||||||
//会员状态
|
|
||||||
tbMemberProjectSubitem.setMemberStatus(MemberStatusEnum.UNPAID_FEES.getValue());
|
|
||||||
//缴费状态
|
|
||||||
tbMemberProjectSubitem.setPaymentStatus(PaymentStatusEnum.TO_BE_UPLOADED.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void check(TbMemberProjectSubitem tbMemberProjectSubitem){
|
|
||||||
String companyId = tbMemberProjectSubitem.getCompanyId();
|
|
||||||
String projectId = tbMemberProjectSubitem.getProjectId();
|
|
||||||
//String id = tbMemberProjectSubitem.getId();
|
|
||||||
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
|
|
||||||
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
|
|
||||||
//wrapper.ne()
|
|
||||||
int count = this.count(wrapper);
|
|
||||||
if (count > 0) {
|
|
||||||
throw new JeroBootException("会员单位已经存在");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void editById(TbMemberProjectSubitem tbMemberProjectSubitem) {
|
|
||||||
saveOrUpdate(tbMemberProjectSubitem);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id删除
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteById(String id) {
|
|
||||||
deleteProject(id);
|
|
||||||
removeById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteByIds(List<String> ids) {
|
|
||||||
ids.forEach(p->{
|
|
||||||
deleteProject(p);
|
|
||||||
});
|
|
||||||
removeByIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description 删除项目打包关联,临时企业、联系信息
|
|
||||||
* @Author lqt
|
|
||||||
* @Date 2021/9/18
|
|
||||||
* @Param id 项目id
|
|
||||||
* @Return
|
|
||||||
* @Exception
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteProject(String id){
|
|
||||||
//删除到账
|
|
||||||
LambdaQueryWrapper<PayPaymentRecord> wrapper1 = new LambdaQueryWrapper<>();
|
|
||||||
wrapper1.eq(PayPaymentRecord::getProjectId,id);
|
|
||||||
payPaymentRecordService.remove(wrapper1);
|
|
||||||
//删除确认收入
|
|
||||||
LambdaQueryWrapper<PayConfirmPaymentRecord> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(PayConfirmPaymentRecord::getProjectId,id);
|
|
||||||
payConfirmPaymentRecordService.remove(wrapper);
|
|
||||||
//删除开票
|
|
||||||
LambdaQueryWrapper<PayMailBillProject> wrapper2 = new LambdaQueryWrapper<>();
|
|
||||||
wrapper2.eq(PayMailBillProject::getProjectId,id);
|
|
||||||
payMailBillProjectService.remove(wrapper2);
|
|
||||||
|
|
||||||
// 删除合同关联
|
|
||||||
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
|
||||||
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,id);
|
|
||||||
payIncomeContractAssociatedService.remove(queryPayIncomeContractAssociated);
|
|
||||||
// 如果已打报,同步删除打包关联
|
|
||||||
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
|
|
||||||
update.eq(PayPackCompanyProject::getProjectId,id);
|
|
||||||
payPackCompanyProjectService.remove(update);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过id查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public TbMemberProjectSubitem queryById(String id) {
|
|
||||||
return getById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 列表查询
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
|
|
||||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) {
|
|
||||||
queryWrapper.eq("tmp.director_id",sysUser.getId());
|
|
||||||
}
|
|
||||||
return baseMapper.pageList(page,queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ticketCollection(String id) {
|
|
||||||
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
|
|
||||||
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
|
|
||||||
updateWrapper.set(TbMemberProjectSubitem::getTicketCollection, PayProjectCommon.YES);
|
|
||||||
this.update(updateWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得最新的生效数据,没有的话会返回null
|
|
||||||
* @param companyId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public TbMemberProjectSubitem getTakeEffectInfo(String companyId){
|
|
||||||
//获得所有生效数据
|
|
||||||
List<TbMemberProjectSubitem> allByCompanyId = tbMemberProjectSubitemMapper.getAllTakeEffectByCompanyId(companyId);
|
|
||||||
//获取list中年份最大的数据
|
|
||||||
Optional<TbMemberProjectSubitem> max = allByCompanyId.stream().max(Comparator.comparing(TbMemberProjectSubitem::getYear));
|
|
||||||
//没有的话会返回null
|
|
||||||
return max.orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO) {
|
|
||||||
String id = editMemberBenefitsVO.getId();
|
|
||||||
Date effectiveDate = editMemberBenefitsVO.getEffectiveDate();
|
|
||||||
Date invalidationDate = editMemberBenefitsVO.getInvalidationDate();
|
|
||||||
|
|
||||||
TbMemberProjectSubitem memberProjectSubitem = getById(id);
|
|
||||||
String companyId = memberProjectSubitem.getCompanyId();
|
|
||||||
//获得有效数据
|
|
||||||
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
|
|
||||||
if (takeEffectInfo == null || !Objects.equals(takeEffectInfo.getId(),id)){
|
|
||||||
throw new JeroBootException("只能修改最新生效会员数据");
|
|
||||||
}
|
|
||||||
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
|
|
||||||
updateWrapper.eq(TbMemberProjectSubitem::getId,id)
|
|
||||||
.set(TbMemberProjectSubitem::getEffectiveDate,effectiveDate)
|
|
||||||
.set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate);
|
|
||||||
this.update(updateWrapper);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void generateValidDate(String id){
|
|
||||||
TbMemberProjectSubitem memberProjectSubitem = getById(id);
|
|
||||||
//如果有有效期就不执行了
|
|
||||||
if (memberProjectSubitem.getEffectiveDate() != null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String companyId = memberProjectSubitem.getCompanyId();
|
|
||||||
//获得有效数据
|
|
||||||
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
|
|
||||||
DateTime effectiveDate;
|
|
||||||
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
|
|
||||||
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
|
|
||||||
DateTime date = DateUtil.date();
|
|
||||||
//如果是新会员,或者当前日期大于之前的失效日期
|
|
||||||
if (takeEffectInfo == null || DateUtil.compare(date,takeEffectInfo.getInvalidationDate()) > 0){
|
|
||||||
//获得当月1日
|
|
||||||
effectiveDate = DateUtil.beginOfMonth(date);
|
|
||||||
// 如果是续费
|
|
||||||
}else {
|
|
||||||
//获取上一个失效日期
|
|
||||||
Date previousInvalidationDate = takeEffectInfo.getInvalidationDate();
|
|
||||||
//获得失效日期的下个月1日
|
|
||||||
effectiveDate = DateUtil.beginOfMonth(DateUtil.date(previousInvalidationDate).offset(DateField.MONTH, 1));
|
|
||||||
}
|
|
||||||
//获得生效日期明年当月月底
|
|
||||||
DateTime invalidationDate = DateUtil.endOfMonth(effectiveDate.offset(DateField.YEAR, 1));
|
|
||||||
//设置生效失效日期
|
|
||||||
updateWrapper.set(TbMemberProjectSubitem::getEffectiveDate,effectiveDate);
|
|
||||||
updateWrapper.set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate);
|
|
||||||
//设置会员状态为已缴费
|
|
||||||
updateWrapper.set(TbMemberProjectSubitem::getMemberStatus,MemberStatusEnum.PAID.getValue());
|
|
||||||
//如果是新会员,生成会员编号
|
|
||||||
if (takeEffectInfo == null || memberProjectSubitem.getMemberNo() == null){
|
|
||||||
//格式化日期为yyyyMMdd
|
|
||||||
String dateStr = date.toString(DatePattern.PURE_DATE_PATTERN);
|
|
||||||
String memberNoPrefix = "CASA" + dateStr;
|
|
||||||
Integer maxMemberNo = tbMemberProjectSubitemMapper.getMaxMemberNo(memberNoPrefix);
|
|
||||||
//生成会员编号
|
|
||||||
String memberNo = buildMemberNo(memberNoPrefix, maxMemberNo);
|
|
||||||
updateWrapper.set(TbMemberProjectSubitem::getMemberNo,memberNo);
|
|
||||||
}
|
|
||||||
this.update(updateWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
private String buildMemberNo(String prefix, Integer no) {
|
|
||||||
if (no == null || no <= 0) {
|
|
||||||
return prefix + "001";
|
|
||||||
}
|
|
||||||
String suffix = no.toString();
|
|
||||||
while (suffix.length() < 3) {
|
|
||||||
suffix = "0" + suffix;
|
|
||||||
}
|
|
||||||
return prefix + suffix;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void copy(CopyMemberVO copyMemberVO) {
|
|
||||||
String projectId = copyMemberVO.getProjectId();
|
|
||||||
String id = copyMemberVO.getId();
|
|
||||||
copyOperation(projectId, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复制操作
|
|
||||||
*/
|
|
||||||
private void copyOperation(String projectId, String id) {
|
|
||||||
TbMemberProjectSubitem memberProjectSubitem = this.getById(id);
|
|
||||||
//查询目标项目是否有当前企业
|
|
||||||
memberProjectSubitem.setProjectId(projectId);
|
|
||||||
this.check(memberProjectSubitem);
|
|
||||||
//复制成员信息生成新成员
|
|
||||||
TbMemberProjectSubitem newMemberProjectSubitem = setCopyValue(memberProjectSubitem);
|
|
||||||
this.setDefaultCreateValue(newMemberProjectSubitem);
|
|
||||||
newMemberProjectSubitem.setProjectId(projectId);
|
|
||||||
this.save(newMemberProjectSubitem);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void copyBatch(CopyMemberVO copyMemberVO) {
|
|
||||||
String projectId = copyMemberVO.getProjectId();
|
|
||||||
String ids = copyMemberVO.getIds();
|
|
||||||
for (String id : ids.split(",")) {
|
|
||||||
copyOperation(projectId, id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MemberLineChartVO lineChart(Integer startYear, Integer endYear) {
|
|
||||||
MemberLineChartVO memberLineChartVO = new MemberLineChartVO();
|
|
||||||
List<MemberLineChartMap> byYear = tbMemberProjectSubitemMapper.getByYear(startYear, endYear);
|
|
||||||
Map<Integer, String> map = byYear.stream().collect(Collectors.toMap(MemberLineChartMap::getYear, MemberLineChartMap::getValue));
|
|
||||||
List<String> value = new ArrayList<>();
|
|
||||||
List<Integer> year = new ArrayList<>();
|
|
||||||
for (int i = startYear; i <= endYear; i++) {
|
|
||||||
year.add(i);
|
|
||||||
value.add(map.getOrDefault(i,"0"));
|
|
||||||
}
|
|
||||||
memberLineChartVO.setValue(value);
|
|
||||||
memberLineChartVO.setYear(year);
|
|
||||||
return memberLineChartVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<MemberPieChartVO> pieChart() {
|
|
||||||
|
|
||||||
List<TbMemberProjectSubitem> allTakeEffect = tbMemberProjectSubitemMapper.getAllTakeEffect();
|
|
||||||
Map<Integer, List<TbMemberProjectSubitem>> collect = allTakeEffect.stream().collect(Collectors.groupingBy(TbMemberProjectSubitem::getMemberNature));
|
|
||||||
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("member_nature");
|
|
||||||
List<MemberPieChartVO> memberPieChartVOList = new ArrayList<>();
|
|
||||||
for (DictModel dictModel : dictModels) {
|
|
||||||
MemberPieChartVO memberPieChartVO = new MemberPieChartVO();
|
|
||||||
String value = dictModel.getValue();
|
|
||||||
memberPieChartVO.setMemberNature(value);
|
|
||||||
memberPieChartVO.setValue(collect.getOrDefault(Integer.valueOf(value),new ArrayList<>()).size()+"");
|
|
||||||
memberPieChartVOList.add(memberPieChartVO);
|
|
||||||
}
|
|
||||||
return memberPieChartVOList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
|
|
||||||
return baseMapper.pieChartPage(page,queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dataDownloadPower(QueryAggVO queryAggVO, HttpServletRequest request) {
|
|
||||||
String meetingId = queryAggVO.getMeetingId();
|
|
||||||
String meetingType = queryAggVO.getMeetingType();
|
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
String userId = loginUser.getId();
|
|
||||||
|
|
||||||
String companyId = loginUser.getCompanyId();
|
|
||||||
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
|
|
||||||
boolean isNotMember = false;
|
|
||||||
if (takeEffectInfo == null){
|
|
||||||
isNotMember = true;
|
|
||||||
}
|
|
||||||
//如果是标准宣贯&&学习培训要判断是否为参会人员
|
|
||||||
if ("6".equals(meetingType) || "7".equals(meetingType)) {
|
|
||||||
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(PayMeetingSituation::getMeetingId,meetingId);
|
|
||||||
wrapper.eq(PayMeetingSituation::getCompanyContactId,userId);
|
|
||||||
Integer count = payMeetingSituationMapper.selectCount(wrapper);
|
|
||||||
|
|
||||||
if (count <= 0 && isNotMember) {
|
|
||||||
throw new JeroBootException("只有参会人员和有效期内的缴费会员可以下载和预览文件!");
|
|
||||||
}
|
|
||||||
}else if (isNotMember){
|
|
||||||
throw new JeroBootException("只有有效期内的缴费会员可以下载和预览文件!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void enableMemberByCompanyName(String companyName) {
|
|
||||||
PayCompanyManagement company = companyManagementService.getCompanyByName(companyName);
|
|
||||||
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(company.getId());
|
|
||||||
if (takeEffectInfo == null){
|
|
||||||
throw new JeroBootException(companyName + "不是有效会员");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) {
|
|
||||||
TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
|
|
||||||
tbMemberProjectSubitem.setMemberNo(memberProjectSubitem.getMemberNo());
|
|
||||||
tbMemberProjectSubitem.setCompanyId(memberProjectSubitem.getCompanyId());
|
|
||||||
tbMemberProjectSubitem.setCompanyName(memberProjectSubitem.getCompanyName());
|
|
||||||
tbMemberProjectSubitem.setMemberNature(memberProjectSubitem.getMemberNature());
|
|
||||||
tbMemberProjectSubitem.setMemberType(memberProjectSubitem.getMemberType());
|
|
||||||
tbMemberProjectSubitem.setLiaisonManId(memberProjectSubitem.getLiaisonManId());
|
|
||||||
tbMemberProjectSubitem.setLiaisonMan(memberProjectSubitem.getLiaisonMan());
|
|
||||||
tbMemberProjectSubitem.setEmail(memberProjectSubitem.getEmail());
|
|
||||||
tbMemberProjectSubitem.setMobile(memberProjectSubitem.getMobile());
|
|
||||||
tbMemberProjectSubitem.setMemberStatus(memberProjectSubitem.getMemberStatus());
|
|
||||||
tbMemberProjectSubitem.setRegisterTime(memberProjectSubitem.getRegisterTime());
|
|
||||||
tbMemberProjectSubitem.setAmountReceivable(memberProjectSubitem.getAmountReceivable());
|
|
||||||
tbMemberProjectSubitem.setEstimatedArrivalDate(memberProjectSubitem.getEstimatedArrivalDate());
|
|
||||||
tbMemberProjectSubitem.setInvoiceRequirements(memberProjectSubitem.getInvoiceRequirements());
|
|
||||||
tbMemberProjectSubitem.setTicketCollection(memberProjectSubitem.getTicketCollection());
|
|
||||||
tbMemberProjectSubitem.setChargeUse(memberProjectSubitem.getChargeUse());
|
|
||||||
tbMemberProjectSubitem.setPaymentMethod(memberProjectSubitem.getPaymentMethod());
|
|
||||||
tbMemberProjectSubitem.setHeaderName(memberProjectSubitem.getHeaderName());
|
|
||||||
tbMemberProjectSubitem.setTaxNumber(memberProjectSubitem.getTaxNumber());
|
|
||||||
tbMemberProjectSubitem.setInvoiceAddress(memberProjectSubitem.getInvoiceAddress());
|
|
||||||
tbMemberProjectSubitem.setInvoicePhone(memberProjectSubitem.getInvoicePhone());
|
|
||||||
tbMemberProjectSubitem.setDepositBank(memberProjectSubitem.getDepositBank());
|
|
||||||
tbMemberProjectSubitem.setBankAccount(memberProjectSubitem.getBankAccount());
|
|
||||||
tbMemberProjectSubitem.setLinkBankNumber(memberProjectSubitem.getLinkBankNumber());
|
|
||||||
tbMemberProjectSubitem.setTaxRate(memberProjectSubitem.getTaxRate());
|
|
||||||
tbMemberProjectSubitem.setTax(memberProjectSubitem.getTax());
|
|
||||||
tbMemberProjectSubitem.setNoTaxAmount(memberProjectSubitem.getNoTaxAmount());
|
|
||||||
tbMemberProjectSubitem.setPostCompanyId(memberProjectSubitem.getPostCompanyId());
|
|
||||||
tbMemberProjectSubitem.setPostContactId(memberProjectSubitem.getPostContactId());
|
|
||||||
tbMemberProjectSubitem.setAdminAddFlag(memberProjectSubitem.getAdminAddFlag());
|
|
||||||
tbMemberProjectSubitem.setContractNum(memberProjectSubitem.getContractNum());
|
|
||||||
tbMemberProjectSubitem.setChargeNoticeNo(memberProjectSubitem.getChargeNoticeNo());
|
|
||||||
tbMemberProjectSubitem.setChargeNoticeId(memberProjectSubitem.getChargeNoticeId());
|
|
||||||
tbMemberProjectSubitem.setInvalidationDate(memberProjectSubitem.getInvalidationDate());
|
|
||||||
tbMemberProjectSubitem.setEffectiveDate(memberProjectSubitem.getEffectiveDate());
|
|
||||||
tbMemberProjectSubitem.setRemark(memberProjectSubitem.getRemark());
|
|
||||||
return tbMemberProjectSubitem;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user