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.data.entity.PayCaseCouncilSubitem;
|
||||
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.system.model.SysLoginModel;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
@@ -68,6 +70,8 @@ public class CompanyLoginController {
|
||||
private WxSecretMapper wxSecretMapper;
|
||||
@Value("${defaultPassword}")
|
||||
private String defaultPassword;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
/**
|
||||
* 密码登录错误的次数前缀
|
||||
*/
|
||||
@@ -413,13 +417,12 @@ public class CompanyLoginController {
|
||||
contactsManagement.setIsCouncil(1);
|
||||
}
|
||||
//判断企业角色
|
||||
QueryWrapper<PayCompanyManagement> queryWrapper2 = new QueryWrapper<>();
|
||||
queryWrapper2.eq("id",contactsManagement.getCompanyId());
|
||||
PayCompanyManagement one = payCompanyManagementService.getOne(queryWrapper2);
|
||||
if(ObjectUtils.isEmpty(one)){
|
||||
throw new JeroBootException("联系人无企业信息");
|
||||
String companyId = contactsManagement.getCompanyId();
|
||||
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(companyId);
|
||||
if(takeEffectInfo != null){
|
||||
contactsManagement.setCompanyRole("2");
|
||||
}else {
|
||||
contactsManagement.setCompanyRole(one.getRoleCode());
|
||||
contactsManagement.setCompanyRole("1");
|
||||
}
|
||||
// 生成token
|
||||
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.common.api.vo.Result;
|
||||
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.PasswordUtil;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||
import com.jero.member.entity.TbMemberProject;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||
@@ -20,6 +23,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.member.vo.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.springframework.beans.BeanUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -65,6 +70,31 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
|
||||
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*/
|
||||
@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")
|
||||
private String projectId;
|
||||
|
||||
@@ -376,7 +377,7 @@ public class TbMemberProjectSubitem implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date invalidationDate;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
@ApiModelProperty(value = "年份")
|
||||
@TableField(exist = false)
|
||||
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);
|
||||
|
||||
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="tax" property="tax"/>
|
||||
<result column="tax_rate" property="taxRate"/>
|
||||
|
||||
</resultMap>
|
||||
<sql id="a">
|
||||
|
||||
</sql>
|
||||
|
||||
<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
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
+7
@@ -132,4 +132,11 @@
|
||||
GROUP BY company_id) AS t2 ON t2.id = t1.id
|
||||
${ew.customSqlSegment}
|
||||
</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>
|
||||
+107
-30
@@ -1,12 +1,34 @@
|
||||
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.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.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.Objects;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Description: 会员项目表
|
||||
@@ -14,15 +36,45 @@ import java.util.List;
|
||||
* @Date: 2021-08-26
|
||||
* @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
|
||||
* @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
|
||||
* @return
|
||||
*/
|
||||
void editById(PayMemberProject payMemberProject);
|
||||
public void editById(PayMemberProject payMemberProject) {
|
||||
saveOrUpdate(payMemberProject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
@@ -38,7 +92,15 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
||||
* @param id
|
||||
* @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
|
||||
* @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查询
|
||||
@@ -54,35 +124,42 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
PayMemberProject queryById(String id);
|
||||
public PayMemberProject queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<PayMemberProject> queryList();
|
||||
public List<PayMemberProject> queryList() {
|
||||
return list();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param page
|
||||
* @param queryWrapper
|
||||
* @return
|
||||
*/
|
||||
IPage<PayMemberProject> getPage(Page<PayMemberProject> page, QueryWrapper<PayMemberProject> queryWrapper);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description 查询与收入合同企业一致的数据
|
||||
* @Author lqt
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param memberName 会员名称
|
||||
* @Param projectType 项目类型
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page, String companyId, String projectName, String projectType, Integer pack, String packYear);
|
||||
|
||||
void check(String projectId, String permission);
|
||||
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);
|
||||
}
|
||||
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("权限不足");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+462
-32
@@ -1,11 +1,50 @@
|
||||
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.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.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
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: 会员项目成员表
|
||||
@@ -13,66 +52,457 @@ import java.util.List;
|
||||
* @Date: 2021-08-26
|
||||
* @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 会员项目成员
|
||||
*/
|
||||
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删除
|
||||
*
|
||||
* @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查询
|
||||
*
|
||||
* @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);
|
||||
|
||||
void check(String subitemId, String permission);
|
||||
public IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||
return baseMapper.getPage(page, queryWrapper);
|
||||
}
|
||||
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;
|
||||
|
||||
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.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
/**
|
||||
* @Description: 证书缴费表
|
||||
@@ -10,35 +14,65 @@ import java.util.List;
|
||||
* @Date: 2021-12-14
|
||||
* @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删除
|
||||
*
|
||||
* @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查询
|
||||
*
|
||||
* @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;
|
||||
|
||||
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.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.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: 标协会员项目表
|
||||
@@ -17,54 +38,103 @@ import java.util.List;
|
||||
* @Date: 2021-09-01
|
||||
* @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删除
|
||||
*
|
||||
* @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查询
|
||||
*
|
||||
* @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;
|
||||
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.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.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 java.util.List;
|
||||
|
||||
import static freemarker.template.utility.NullArgumentException.check;
|
||||
|
||||
/**
|
||||
* @Description: 标协会员项目成员表
|
||||
@@ -20,89 +69,407 @@ import java.util.List;
|
||||
* @Date: 2021-09-01
|
||||
* @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删除
|
||||
*
|
||||
* @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
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param memberName 会员名称
|
||||
* @Param projectType 项目类型
|
||||
* @Date 2021/9/18
|
||||
* @Param id 项目id
|
||||
* @Return
|
||||
* @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