diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java index d6df6678..0927ec31 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java @@ -23,4 +23,7 @@ public interface PayMemberProjectSubitemMapper extends BaseMapper queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); IPage getPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + + List listByYear(@Param("year") String year); } 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 bf897d6b..45899468 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 @@ -61,4 +61,6 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper pageAllMemberName(Page page); List getAllYearInfoByCompanyId(@Param("companyId") String companyId); + + List listByYear(@Param("year") String year); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml index 34fdee29..ec332f24 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml @@ -90,4 +90,11 @@ + + 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 86f74404..b586385a 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 @@ -169,4 +169,11 @@ tmps.company_id = #{companyId} + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java index d757e234..8b672386 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java @@ -1,4 +1,7 @@ package com.jero.project.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -13,14 +16,14 @@ import java.util.List; /** * @Description: pay_common_project * @Author: jeecg-boot - * @Date: 2021-08-27 + * @Date: 2021-08-27 * @Version: V1.0 */ public interface PayCommonProjectMapper extends BaseMapper { /** * @Description 分页查询 - * @Author lqt - * @Date 2021/8/27 + * @Author lqt + * @Date 2021/8/27 * @Param paymentDate 来款年份 * @Return * @Exception @@ -31,16 +34,22 @@ public interface PayCommonProjectMapper extends BaseMapper { /** * @Description 收入合同-列表 - * @Author lqt - * @Date 2021/10/18 - * @Param queryWrapper + * @Author lqt + * @Date 2021/10/18 + * @Param queryWrapper * @Param projectType 项目类型 * @Param pack 打包状态 * @Param packYear 打包年份 * @Return * @Exception */ - List queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear); + List queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("projectType") String projectType, @Param("pack") Integer pack, @Param("packYear") String packYear); + + default List listByYear(String year) { + LambdaQueryWrapper myQuery = Wrappers.lambdaQuery(PayCommonProject.class); + myQuery.eq(PayCommonProject::getYear, year); + return selectList(myQuery); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java index 1bada09c..b9addf05 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java @@ -64,4 +64,6 @@ public interface PayWorkingGroupSubItemMapper extends BaseMapper publishReminderList(Page page, @Param("payWorkingGroupSubItem") PayWorkingGroupSubItem payWorkingGroupSubItem); List queryList(@Param(Constants.WRAPPER) QueryWrapper queryPayWorkingGroupSubItem); + + List listByYear(@Param("year") String year); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml index acdf652f..52b0aa5b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml @@ -389,4 +389,10 @@ left join pay_working_group pwg ON pwgs.working_group_id = pwg.id ${ew.customSqlSegment} + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java index 263b53d4..5ea468b9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java @@ -12,12 +12,16 @@ import com.jero.meeting.entity.PayMeetingSituation; import com.jero.meeting.mapper.PayMeetingMapper; import com.jero.meeting.mapper.PayMeetingSituationMapper; import com.jero.meeting.service.IPayMeetingSituationService; +import com.jero.member.entity.PayMemberProjectSubitem; +import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.mapper.PayMemberProjectSubitemMapper; import com.jero.member.mapper.TbCertificatePaymentMapper; import com.jero.member.mapper.TbMemberProjectSubitemMapper; import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.ITbMemberProjectSubitemService; import com.jero.modules.system.service.ISysUserService; +import com.jero.project.entity.PayCommonProject; +import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.mapper.PayCommonProjectMapper; import com.jero.project.mapper.PayWorkingGroupMapper; import com.jero.project.mapper.PayWorkingGroupSubItemMapper; @@ -27,6 +31,7 @@ import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -69,8 +74,6 @@ public class AnnualDataLockingService extends ServiceImpl meetingSituations = meetingSituationMapper.listByYear(year); - List meetingSituationsCompanyIdList = meetingSituations.stream().map(PayMeetingSituation::getCompanyId).distinct().collect(Collectors.toList()); - List meetingSituationsContactIdList = meetingSituations.stream().map(PayMeetingSituation::getCompanyContactId).distinct().collect(Collectors.toList()); - List meetingSituationsPostContactIdList = meetingSituations.stream().map(PayMeetingSituation::getPostContactId).distinct().collect(Collectors.toList()); - meetingSituationsContactIdList.addAll(meetingSituationsPostContactIdList); - ArrayList distinctContactIdList = CollectionUtil.distinct(meetingSituationsContactIdList); + List workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year); + List payCommonProjects = payCommonProjectMapper.listByYear(year); + List memberProjectSubitems = payMemberProjectSubitemMapper.listByYear(year); + List tbMemberProjectSubitems = tbMemberProjectSubitemMapper.listByYear(year); + //获得去重后的所有企业和联系人(联系人和邮寄联系人) + ArrayList distinctCompanyIdList = getDistinctCompanyIdList(meetingSituations, workingGroupSubItems, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems); + ArrayList distinctContactIdList = getDistinctContactIdList(meetingSituations, workingGroupSubItems, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems); //生成企业和联系人临时数据 - List companyTemporaryList = companyTemporaryService.insertList(meetingSituationsCompanyIdList,year); + List companyTemporaryList = companyTemporaryService.insertList(distinctCompanyIdList,year); Map companyTemporaryMap = CollStreamUtil.toIdentityMap(companyTemporaryList, PayCompanyManagementTemporary::getCompanyId); List contactsTemporaryList = contactsTemporaryService.insertList(distinctContactIdList,year); Map contactsTemporaryMap = CollStreamUtil.toIdentityMap(contactsTemporaryList, PayContactsManagementTemporary::getContactId); @@ -131,6 +136,54 @@ public class AnnualDataLockingService extends ServiceImpl getDistinctContactIdList(List meetingSituations, List workingGroupSubItems, List payCommonProjects, List memberProjectSubitems, List tbMemberProjectSubitems) { + //获得所有联系人id + List contactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyContactId).distinct().collect(Collectors.toList()); + List contactIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getContactsIdOne).distinct().collect(Collectors.toList()); + List contactIdList3 = payCommonProjects.stream().map(PayCommonProject::getContactsId).distinct().collect(Collectors.toList()); + List contactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyContactId).distinct().collect(Collectors.toList()); + List contactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getLiaisonManId).distinct().collect(Collectors.toList()); + contactIdList1.addAll(contactIdList2); + contactIdList1.addAll(contactIdList3); + contactIdList1.addAll(contactIdList4); + contactIdList1.addAll(contactIdList5); + //获得所有邮寄联系人id + List postContactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getPostContactId).distinct().collect(Collectors.toList()); + List postContactIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getMailContactsId).distinct().collect(Collectors.toList()); + List postContactIdList3 = payCommonProjects.stream().map(PayCommonProject::getMailContactsId).distinct().collect(Collectors.toList()); + List postContactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList()); + List postContactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList()); + contactIdList1.addAll(postContactIdList1); + contactIdList1.addAll(postContactIdList2); + contactIdList1.addAll(postContactIdList3); + contactIdList1.addAll(postContactIdList4); + contactIdList1.addAll(postContactIdList5); + //联系人和邮寄联系人合并后去重 + return CollectionUtil.distinct(contactIdList1); + } + + @NotNull + private ArrayList getDistinctCompanyIdList(List meetingSituations, List workingGroupSubItems, List payCommonProjects, List memberProjectSubitems, List tbMemberProjectSubitems) { + //获取所有企业id + List companyIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyId).distinct().collect(Collectors.toList()); + List companyIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getChargeCompanyId).distinct().collect(Collectors.toList()); + List companyIdList3 = payCommonProjects.stream().map(PayCommonProject::getChargeCompanyId).distinct().collect(Collectors.toList()); + List companyIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList()); + List companyIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList()); + companyIdList1.addAll(companyIdList2); + companyIdList1.addAll(companyIdList3); + companyIdList1.addAll(companyIdList4); + companyIdList1.addAll(companyIdList5); + //去重 + return CollectionUtil.distinct(companyIdList1); } /**