diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java index 8420bccd..fa42a9d1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java @@ -238,8 +238,8 @@ public class PayIncomeContractController extends JeroController associated(@RequestBody List listPayIncomeContractAssociated) { - List list = payIncomeContractService.associated(listPayIncomeContractAssociated); - return Result.OK("关联成功!",list); + payIncomeContractService.associated(listPayIncomeContractAssociated); + return Result.OK("关联成功!"); } /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java index 90416e36..d83648e1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java @@ -65,7 +65,7 @@ public interface IPayIncomeContractService extends IService { * @Return * @Exception */ - List associated(List listPayIncomeContractAssociated); + void associated(List listPayIncomeContractAssociated); /** * @Description 取消关联 * @Author lqt diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java index 6e42c235..e2ba9c0a 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java @@ -21,9 +21,14 @@ import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.vo.PayIncomeContractInput; import com.jero.contract.vo.ProjectOutput; import com.jero.meeting.service.IPayMeetingService; +import com.jero.member.entity.PayMemberProject; +import com.jero.member.entity.PayMemberProjectSubitem; +import com.jero.member.entity.TbMemberProjectSubitem; +import com.jero.member.service.IPayMemberProjectService; +import com.jero.member.service.IPayMemberProjectSubitemService; +import com.jero.member.service.ITbMemberProjectSubitemService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; -import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyService; @@ -89,6 +94,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPageList(Page page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) { @@ -106,7 +117,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl listPayIncomeContractInstallment,PayIncomeContract payIncomeContract){ if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){ StringBuilder msgPayIncomeContractInstallment = new StringBuilder(); - List finalListPayIncomeContractInstallment = listPayIncomeContractInstallment; listPayIncomeContractInstallment.forEach(p->{ p.setContractId(payIncomeContract.getId()); StringBuilder sb = ValidUtil.validateAll(p); if(!StringUtils.isBlank(sb)){ - msgPayIncomeContractInstallment.append("第").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb); + msgPayIncomeContractInstallment.append("第").append(listPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb); } if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount()) - && p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) == -1){ - msgPayIncomeContractInstallment.append("第").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!"); + && p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) < 0){ + msgPayIncomeContractInstallment.append("第").append(listPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!"); } }); if(!StringUtils.isBlank(msgPayIncomeContractInstallment)){ @@ -204,7 +214,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl associated(List listPayIncomeContractAssociated) { + public void associated(List listPayIncomeContractAssociated) { if(CollectionUtils.isEmpty(listPayIncomeContractAssociated)){ throw new JeroBootException("关联项目不能为空!"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - List listProjectOutput = new ArrayList<>(); listPayIncomeContractAssociated.forEach(p->{ ProjectOutput projectOutput = new ProjectOutput(); StringBuilder msgPayIncomeContractAssociated = ValidUtil.validateAll(p); @@ -322,14 +331,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPayWorkingGroupSubItem = new LambdaQueryWrapper<>(); queryPayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getWorkingGroupId,payWorkingGroup.getId()); - queryPayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getChargeCompanyId,payIncomeContract.getSignedCompanyId()); List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(queryPayWorkingGroupSubItem); if(CollectionUtils.isEmpty(listPayWorkingGroupSubItem)){ throw new JeroBootException("工作组成员单位不存在!"); @@ -370,14 +372,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPayMemberProjectSubitem = new LambdaQueryWrapper<>(); + queryPayMemberProjectSubitem.eq(PayMemberProjectSubitem::getProjectId,payMemberProject.getId()); + List listPayMemberProjectSubitem = memberProjectSubitemService.list(queryPayMemberProjectSubitem); + if(CollectionUtils.isEmpty(listPayMemberProjectSubitem)){ + throw new JeroBootException("会员项目成员单位不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(listPayMemberProjectSubitem.get(0).getCompanyId(),payIncomeContract.getSignedCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + // 验证项目是否已被关联 + getIncomeContractAssociated(p.getContractId(),listPayMemberProjectSubitem.get(0).getId()); + // 合同选择打包,运行年份不是打包企业,添加打包企业 + if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ + // 打包,将关联项目设置成打包 + LambdaUpdateWrapper updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date()); + if(!StringUtils.isBlank(listPayMemberProjectSubitem.get(0).getContractNo())){ + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getContractNo,payIncomeContract.getContractNum()); + } + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK1); + updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,listPayMemberProjectSubitem.get(0).getId()); + memberProjectSubitemService.update(updatePayMemberProjectSubitem); + // 添加打包企业 + // 合同选择了打包,查看打包年份&&打包企业是否存在 + if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ + payPackCompanyProjectService.setPack(listPayMemberProjectSubitem.get(0).getCompanyId(),listPayMemberProjectSubitem.get(0).getCompanyContactId(),payIncomeContract.getPackYear(),listPayMemberProjectSubitem.get(0).getId(),PayIncomeContractCommon.PROJECT_TYPE4,payIncomeContract.getPack()); + } + } + p.setProjectId(listPayMemberProjectSubitem.get(0).getId()); break; case PayIncomeContractCommon.PROJECT_TYPE5: - // todo 标协会员 + // 标协会员 + TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(p.getProjectId()); + if(Objects.isNull(tbMemberProjectSubitem)){ + throw new JeroBootException("标协会员项目不存在!"); + } + // 验证企业是否正确 + if(!Objects.equals(tbMemberProjectSubitem.getCompanyId(),payIncomeContract.getSignedCompanyId())){ + throw new JeroBootException("企业不匹配!"); + } + // 验证项目是否已被关联 + getIncomeContractAssociated(p.getContractId(),tbMemberProjectSubitem.getId()); + // 合同选择打包,运行年份不是打包企业,添加打包企业 + if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ + // 打包,将关联项目设置成打包 + LambdaUpdateWrapper updateTbMemberProjectSubitem = new LambdaUpdateWrapper<>(); + updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateTime,new Date()); + updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK1); + updateTbMemberProjectSubitem.eq(TbMemberProjectSubitem::getId,tbMemberProjectSubitem.getId()); + tbMemberProjectSubitemService.update(updateTbMemberProjectSubitem); + // 添加打包企业 + // 合同选择了打包,查看打包年份&&打包企业是否存在 + if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ + payPackCompanyProjectService.setPack(tbMemberProjectSubitem.getCompanyId(),tbMemberProjectSubitem.getLiaisonManId(),payIncomeContract.getPackYear(),tbMemberProjectSubitem.getId(),PayIncomeContractCommon.PROJECT_TYPE5,payIncomeContract.getPack()); + } + } + p.setProjectId(tbMemberProjectSubitem.getId()); break; default:break; } - payIncomeContractAssociatedService.save(p); projectOutput.setContractId(p.getContractId()); projectOutput.setId(p.getId()); - listProjectOutput.add(projectOutput); }); - return listProjectOutput; } /** * @Description 验证项目是否被合同关联 @@ -443,12 +486,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl queryPayPackCompanyProject = new LambdaQueryWrapper<>(); + queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId()); + queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayIncomeContractCommon.COME1); + List listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject); + // 存在数据,取消打包,变更项目打包状态, 否则不进行操作 + if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){ + payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId()); + LambdaUpdateWrapper updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date()); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK0); + updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId()); + memberProjectSubitemService.update(updatePayMemberProjectSubitem); + } + } break; case PayIncomeContractCommon.PROJECT_TYPE5: - // todo 标协会员 + // 标协会员 + TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(payIncomeContractAssociated.getProjectId()); + if(Objects.isNull(tbMemberProjectSubitem)){ + throw new JeroBootException("标协会员项目不存在!"); + } + // 更新项目id + payIncomeContractAssociated.setProjectId(tbMemberProjectSubitem.getId()); + // 合同为打包 + if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ + // 查询打包项目来源是否为收入合同 + LambdaQueryWrapper queryPayPackCompanyProject = new LambdaQueryWrapper<>(); + queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,tbMemberProjectSubitem.getId()); + queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayIncomeContractCommon.COME1); + List listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject); + // 存在数据,取消打包,变更项目打包状态, 否则不进行操作 + if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){ + payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId()); + LambdaUpdateWrapper updateTbMemberProjectSubitem = new LambdaUpdateWrapper<>(); + updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateTime,new Date()); + updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK0); + updateTbMemberProjectSubitem.eq(TbMemberProjectSubitem::getId,tbMemberProjectSubitem.getId()); + tbMemberProjectSubitemService.update(updateTbMemberProjectSubitem); + } + } break; default:break; } @@ -603,7 +694,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper(); + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); update.set(PayIncomeContract::getUpdateBy,sysUser.getUsername()); update.set(PayIncomeContract::getUpdateTime,new Date()); update.eq(PayIncomeContract::getId,payIncomeContractAudit.getContractId()); @@ -628,7 +719,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper(); + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); update.set(PayIncomeContract::getUpdateBy,sysUser.getUsername()); update.set(PayIncomeContract::getUpdateTime,new Date()); update.eq(PayIncomeContract::getId,payIncomeContractAudit.getContractId()); @@ -745,7 +836,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl { @Resource private IPayMemberProjectService memberProjectService; + @Autowired + private IPayIncomeContractService payIncomeContractService; + @Resource + private ITbMemberProjectSubitemService tbMemberProjectSubitemService; /** * 分页列表查询 */ - @AutoLog(value = "会员项目表-分页列表查询") - @ApiOperation(value="会员项目表-分页列表查询", notes="会员项目表-分页列表查询") + @AutoLog(value = "会员项目表-根据成员单位列表查询") + @ApiOperation(value="会员项目表-根据成员单位列表查询", notes="会员项目表-根据成员单位列表查询") @GetMapping(value = "/page") public Result queryPageList(PayMemberProject payMemberProject, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @@ -53,6 +65,50 @@ public class PayMemberProjectController extends JeroController queryListByCompany( + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name = "companyId") String companyId, + @RequestParam(name = "contractId") String contractId, + @RequestParam(name = "projectType") String projectType, + @RequestParam(name = "memberName",required = false) String memberName) { + + if(StringUtils.isBlank(companyId)){ + return Result.error("企业id不能为空!"); + } + PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId); + if(Objects.isNull(payIncomeContract)){ + return Result.error("合同不存在!"); + } + // 会员 + if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE4)){ + Page page = new Page<>(pageNo, pageSize); + IPage list = memberProjectService.queryListByCompany(page,companyId,memberName,PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack(),payIncomeContract.getPackYear()); + return Result.OK(list); + } + // 标协会员 + if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE5)){ + Page page = new Page<>(pageNo, pageSize); + IPage list = tbMemberProjectSubitemService.queryListByCompany(page,companyId,PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack(),payIncomeContract.getPackYear()); + return Result.OK(list); + } + return Result.OK(null); + } + /** * 列表查询 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProject.java index bdccbaf0..dc67adfd 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProject.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProject.java @@ -5,6 +5,7 @@ import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.jero.modules.system.volid.group.*; @@ -133,4 +134,11 @@ public class PayMemberProject implements Serializable { @Size(max = 200, message = "备注最大为200个字符") private String remark; + + /** + * 项目类型 + */ + @TableField(exist = false) + @ApiModelProperty(value = "项目类型") + private Integer projectType; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java index c2db11ea..aa14d1d9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.jero.common.util.PasswordUtil; @@ -198,4 +199,17 @@ public class TbMemberProjectSubitem implements Serializable { return PasswordUtil.decrypt(mobile); } + /**项目名称*/ + @ApiModelProperty(value = "项目名称") + @TableField(exist = false) + private String projectName; + + /** + * 项目类型 + */ + @TableField(exist = false) + @ApiModelProperty(value = "项目类型") + private Integer projectType; + + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectMapper.java index 16491eb0..0eaf381c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectMapper.java @@ -1,7 +1,10 @@ package com.jero.member.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.member.entity.PayMemberProject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; /** * @Description: 会员项目表 @@ -11,4 +14,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface PayMemberProjectMapper extends BaseMapper { + /** + * @Description 查询与收入合同企业一致的数据 + * @Author lqt + * @Date 2021/9/17 + * @Param companyId 企业id + * @Param memberName 会员名称 + * @Param projectType 项目类型 + * @Return + * @Exception + */ + IPage queryListByCompany(Page page,@Param("companyId") String companyId,@Param("memberName") String memberName,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java index 0e6355ed..0692e75c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java @@ -2,6 +2,8 @@ package com.jero.member.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import com.jero.member.entity.TbMemberProjectSubitem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +16,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface TbMemberProjectSubitemMapper extends BaseMapper { + /** + * @Description 查询与收入合同企业一致的数据 + * @Author lqt + * @Date 2021/9/17 + * @Param companyId 企业id + * @Param memberName 会员名称 + * @Param projectType 项目类型 + * @Param + * @Return + * @Exception + */ + IPage queryListByCompany(Page page,@Param("companyId") String companyId,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear); + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectMapper.xml index a03efdac..1bfe66e8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectMapper.xml @@ -16,4 +16,23 @@ + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml index 5362166a..e3451132 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml @@ -23,4 +23,20 @@ + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java index d1e55248..3d20abc9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.member.entity.PayMemberProject; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.project.common.PayProjectCommon; + import java.util.List; /** @@ -69,4 +71,16 @@ public interface IPayMemberProjectService extends IService { * @return */ IPage getPage(Page page, QueryWrapper queryWrapper); + + /** + * @Description 查询与收入合同企业一致的数据 + * @Author lqt + * @Date 2021/9/17 + * @Param companyId 企业id + * @Param memberName 会员名称 + * @Param projectType 项目类型 + * @Return + * @Exception + */ + IPage queryListByCompany(Page page,String companyId,String memberName,String projectType,Integer pack,String packYear); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java index ca09027e..0fae382a 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java @@ -1,5 +1,7 @@ package com.jero.member.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.member.entity.TbMemberProjectSubitem; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -58,4 +60,15 @@ public interface ITbMemberProjectSubitemService extends IService queryList(); + /** + * @Description 查询与收入合同企业一致的数据 + * @Author lqt + * @Date 2021/9/17 + * @Param companyId 企业id + * @Param memberName 会员名称 + * @Param projectType 项目类型 + * @Return + * @Exception + */ + IPage queryListByCompany(Page page, String companyId, String projectType,Integer pack,String packYear); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java index 0cce4f43..fb7f036e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java @@ -5,15 +5,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.exception.JeroBootException; +import com.jero.contract.entity.PayIncomeContractAssociated; +import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.member.entity.PayMemberProject; +import com.jero.member.entity.PayMemberProjectSubitem; import com.jero.member.mapper.PayMemberProjectMapper; import com.jero.member.service.IPayMemberProjectService; +import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.project.entity.PayWorkingGroupSubItem; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -25,8 +34,14 @@ import javax.annotation.Resource; */ @Service public class PayPayMemberProjectServiceImpl extends ServiceImpl implements IPayMemberProjectService { + @Resource + private PayMemberProjectMapper payMemberProjectMapper; @Resource private SysUserMapper userMapper; + @Autowired + private IPayIncomeContractAssociatedService payIncomeContractAssociatedService; + @Resource + private IPayMemberProjectSubitemService memberProjectSubitemService; /** * 保存 * @@ -34,6 +49,7 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); @@ -49,9 +65,6 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); + query.eq(PayMemberProjectSubitem::getProjectId, id); + List listPayMemberProjectSubitem = memberProjectSubitemService.list(query); + getPayIncomeContractAssociated(listPayMemberProjectSubitem); removeById(id); } + /** + * @Description 校验是存在关联合同的项目 + * @Author lqt + * @Date 2021/9/8 + * @Param + * @Return + * @Exception + */ + private void getPayIncomeContractAssociated(List listPayMemberProjectSubitem){ + if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)){ + List list = listPayMemberProjectSubitem.stream().map(PayMemberProjectSubitem::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryPayIncomeContractAssociated = new LambdaQueryWrapper<>(); + queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list); + List listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated); + if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){ + throw new JeroBootException("已关联合同不可删除!"); + } + } + } + /** * 批量删除 * @@ -85,7 +122,11 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl ids) { - removeByIds(ids); + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.in(PayMemberProjectSubitem::getProjectId, ids); + List listPayMemberProjectSubitem = memberProjectSubitemService.list(query); + getPayIncomeContractAssociated(listPayMemberProjectSubitem); + removeByIds(ids); } /** @@ -121,4 +162,9 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl queryListByCompany(Page page,String companyId, String memberName, String projectType,Integer pack,String packYear) { + return payMemberProjectMapper.queryListByCompany(page,companyId,memberName,projectType, pack, packYear); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index fd6ace7d..7840f381 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -1,11 +1,19 @@ package com.jero.member.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.ProjectDetailService; import com.jero.common.util.ValidUtil; +import com.jero.common.vo.ProjectStatusVO; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; +import com.jero.contract.entity.PayIncomeContract; +import com.jero.contract.entity.PayIncomeContractAssociated; +import com.jero.contract.service.IPayIncomeContractAssociatedService; +import com.jero.contract.service.IPayIncomeContractService; +import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.project.common.PayProjectCommon; import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary; @@ -18,11 +26,15 @@ import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.valid.group.ChargeNotice; import com.jero.valid.group.Contract; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; +import java.util.Objects; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -34,20 +46,23 @@ import javax.annotation.Resource; */ @Service public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl implements IPayMemberProjectSubitemService { - @Resource - private IPayCompanyManagementService companyManagementService; @Resource private IPayContactsManagementService contactsManagementService; - @Resource private IPayCompanyManagementTemporaryService companyManagementTemporaryService; - @Resource private IPayContactsManagementTemporaryService contactsManagementTemporaryService; - @Resource private IPayMemberProjectService memberProjectService; + @Autowired + private IPayIncomeContractService payIncomeContractService; + @Autowired + private IPayPackCompanyProjectService payPackCompanyProjectService; + @Autowired + private ProjectDetailService projectDetailService; + @Autowired + private IPayIncomeContractAssociatedService payIncomeContractAssociatedService; /** * 保存 */ @@ -78,6 +93,22 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper<>(); + update.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId()); + update.set(PayMemberProjectSubitem::getPack,PayProjectCommon.PACKAGING1); + update(update); + } + } + } } /** @@ -90,6 +121,40 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); + query.eq(PayIncomeContractAssociated::getProjectId, id); + PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query); + if (!Objects.isNull(payIncomeContractAssociated)) { + throw new JeroBootException("已关联合同不可删除!"); + } + } catch (Exception e) { + log.error("会员项目-批量删除异常", e); + throw new JeroBootException("已关联合同不可删除!"); + } delectTemporaryById(id); removeById(id); } @@ -190,10 +280,23 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl ids) { for (String id : ids) { + try { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayIncomeContractAssociated::getProjectId, id); + PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query); + if (!Objects.isNull(payIncomeContractAssociated)) { + throw new JeroBootException("已关联合同不可删除!"); + } + } catch (Exception e) { + log.error("普通项目管理-批量删除异常", e); + throw new JeroBootException("已关联合同不可删除!"); + } delectTemporaryById(id); } + removeByIds(ids); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectServiceImpl.java index 5ce461a6..9a42d2f8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectServiceImpl.java @@ -1,12 +1,25 @@ package com.jero.member.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.exception.JeroBootException; +import com.jero.contract.entity.PayIncomeContractAssociated; +import com.jero.contract.service.IPayIncomeContractAssociatedService; +import com.jero.member.entity.PayMemberProjectSubitem; import com.jero.member.entity.TbMemberProject; +import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.mapper.TbMemberProjectMapper; import com.jero.member.service.ITbMemberProjectService; +import com.jero.member.service.ITbMemberProjectSubitemService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import javax.annotation.Resource; + /** * @Description: 标协会员项目表 * @Author: jero-boot @@ -16,6 +29,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class TbMemberProjectServiceImpl extends ServiceImpl implements ITbMemberProjectService { + @Autowired + private IPayIncomeContractAssociatedService payIncomeContractAssociatedService; + @Resource + private ITbMemberProjectSubitemService tbMemberProjectSubitemService; /** * 保存 */ @@ -37,15 +54,42 @@ public class TbMemberProjectServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); + query.eq(TbMemberProjectSubitem::getProjectId, id); + List listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query); + getPayIncomeContractAssociated(listTbMemberProjectSubitem); removeById(id); } + /** + * @Description 校验是存在关联合同的项目 + * @Author lqt + * @Date 2021/9/8 + * @Param + * @Return + * @Exception + */ + private void getPayIncomeContractAssociated(List listTbMemberProjectSubitem){ + if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)){ + List list = listTbMemberProjectSubitem.stream().map(TbMemberProjectSubitem::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryPayIncomeContractAssociated = new LambdaQueryWrapper<>(); + queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list); + List listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated); + if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){ + throw new JeroBootException("已关联合同不可删除!"); + } + } + } /** * 批量删除 */ @Override public void deleteByIds(List ids) { - removeByIds(ids); + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.in(TbMemberProjectSubitem::getProjectId, ids); + List listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query); + getPayIncomeContractAssociated(listTbMemberProjectSubitem); + removeByIds(ids); } /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java index 0081d272..2357134e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java @@ -1,12 +1,23 @@ package com.jero.member.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.exception.JeroBootException; +import com.jero.contract.entity.PayIncomeContractAssociated; +import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.mapper.TbMemberProjectSubitemMapper; import com.jero.member.service.ITbMemberProjectSubitemService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import javax.annotation.Resource; + /** * @Description: 标协会员项目成员表 * @Author: jero-boot @@ -16,6 +27,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class TbMemberProjectSubitemServiceImpl extends ServiceImpl implements ITbMemberProjectSubitemService { + @Resource + private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper; + @Autowired + private IPayIncomeContractAssociatedService payIncomeContractAssociatedService; /** * 保存 */ @@ -37,6 +52,17 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); + query.eq(PayIncomeContractAssociated::getProjectId, id); + PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query); + if (!Objects.isNull(payIncomeContractAssociated)) { + throw new JeroBootException("已关联合同不可删除!"); + } + } catch (Exception e) { + log.error("标协会员-批量删除异常", e); + throw new JeroBootException("已关联合同不可删除!"); + } removeById(id); } @@ -45,7 +71,20 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl ids) { - removeByIds(ids); + ids.forEach(p->{ + try { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayIncomeContractAssociated::getProjectId, p); + PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query); + if (!Objects.isNull(payIncomeContractAssociated)) { + throw new JeroBootException("已关联合同不可删除!"); + } + } catch (Exception e) { + log.error("标协会员-批量删除异常", e); + throw new JeroBootException("已关联合同不可删除!"); + } + }); + removeByIds(ids); } /** @@ -63,4 +102,9 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl queryList() { return list(); } + + @Override + public IPage queryListByCompany(Page page, String companyId, String projectType,Integer pack,String packYear) { + return tbMemberProjectSubitemMapper.queryListByCompany(page, companyId, projectType,pack,packYear); + } }