update 年度数据锁定

This commit is contained in:
lijiarao
2024-07-26 17:55:28 +08:00
parent 8973c647d6
commit c7e9a9b231
8 changed files with 104 additions and 15 deletions
@@ -23,4 +23,7 @@ public interface PayMemberProjectSubitemMapper extends BaseMapper<PayMemberProje
List<PayMemberProjectSubitem> queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
List<PayMemberProjectSubitem> listByYear(@Param("year") String year);
}
@@ -61,4 +61,6 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
IPage<TbMemberProjectSubitem> pageAllMemberName(Page<TbMemberProjectSubitem> page);
List<TbMemberProjectSubitem> getAllYearInfoByCompanyId(@Param("companyId") String companyId);
List<TbMemberProjectSubitem> listByYear(@Param("year") String year);
}
@@ -90,4 +90,11 @@
</where>
</select>
<select id="listByYear" resultType="com.jero.member.entity.PayMemberProjectSubitem">
select pmps.*
from pay_member_project_subitem pmps
left join pay_member_project pmp on pmps.project_id = pmp.id
where pmp.particular_year = #{year}
</select>
</mapper>
@@ -169,4 +169,11 @@
tmps.company_id = #{companyId}
</where>
</select>
<select id="listByYear" resultType="com.jero.member.entity.TbMemberProjectSubitem">
select tmps.*,tmp.year
from tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
where tmp.year = #{year}
</select>
</mapper>
@@ -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<PayCommonProject> {
/**
* @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<PayCommonProject> {
/**
* @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<PayCommonProject> queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper<PayCommonProject> queryWrapper,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear);
List<PayCommonProject> queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper<PayCommonProject> queryWrapper, @Param("projectType") String projectType, @Param("pack") Integer pack, @Param("packYear") String packYear);
default List<PayCommonProject> listByYear(String year) {
LambdaQueryWrapper<PayCommonProject> myQuery = Wrappers.lambdaQuery(PayCommonProject.class);
myQuery.eq(PayCommonProject::getYear, year);
return selectList(myQuery);
}
}
@@ -64,4 +64,6 @@ public interface PayWorkingGroupSubItemMapper extends BaseMapper<PayWorkingGroup
IPage<PayWorkingGroupSubItem> publishReminderList(Page<PayWorkingGroupSubItem> page, @Param("payWorkingGroupSubItem") PayWorkingGroupSubItem payWorkingGroupSubItem);
List<PayWorkingGroupSubItem> queryList(@Param(Constants.WRAPPER) QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem);
List<PayWorkingGroupSubItem> listByYear(@Param("year") String year);
}
@@ -389,4 +389,10 @@
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
${ew.customSqlSegment}
</select>
<select id="listByYear" resultType="com.jero.project.entity.PayWorkingGroupSubItem">
select pwgs.* from pay_working_group_subitem pwgs
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
where pwg.year = #{year}
</select>
</mapper>
@@ -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<AnnualDataLockingMappe
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayMemberProjectService payMemberProjectService;
@@ -90,13 +93,15 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
String year = annualDataLocking.getYear();
//第一步先获取所有企业和联系人
List<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYear(year);
List<String> meetingSituationsCompanyIdList = meetingSituations.stream().map(PayMeetingSituation::getCompanyId).distinct().collect(Collectors.toList());
List<String> meetingSituationsContactIdList = meetingSituations.stream().map(PayMeetingSituation::getCompanyContactId).distinct().collect(Collectors.toList());
List<String> meetingSituationsPostContactIdList = meetingSituations.stream().map(PayMeetingSituation::getPostContactId).distinct().collect(Collectors.toList());
meetingSituationsContactIdList.addAll(meetingSituationsPostContactIdList);
ArrayList<String> distinctContactIdList = CollectionUtil.distinct(meetingSituationsContactIdList);
List<PayWorkingGroupSubItem> workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year);
List<PayCommonProject> payCommonProjects = payCommonProjectMapper.listByYear(year);
List<PayMemberProjectSubitem> memberProjectSubitems = payMemberProjectSubitemMapper.listByYear(year);
List<TbMemberProjectSubitem> tbMemberProjectSubitems = tbMemberProjectSubitemMapper.listByYear(year);
//获得去重后的所有企业和联系人(联系人和邮寄联系人)
ArrayList<String> distinctCompanyIdList = getDistinctCompanyIdList(meetingSituations, workingGroupSubItems, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems);
ArrayList<String> distinctContactIdList = getDistinctContactIdList(meetingSituations, workingGroupSubItems, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems);
//生成企业和联系人临时数据
List<PayCompanyManagementTemporary> companyTemporaryList = companyTemporaryService.insertList(meetingSituationsCompanyIdList,year);
List<PayCompanyManagementTemporary> companyTemporaryList = companyTemporaryService.insertList(distinctCompanyIdList,year);
Map<String, PayCompanyManagementTemporary> companyTemporaryMap = CollStreamUtil.toIdentityMap(companyTemporaryList, PayCompanyManagementTemporary::getCompanyId);
List<PayContactsManagementTemporary> contactsTemporaryList = contactsTemporaryService.insertList(distinctContactIdList,year);
Map<String, PayContactsManagementTemporary> contactsTemporaryMap = CollStreamUtil.toIdentityMap(contactsTemporaryList, PayContactsManagementTemporary::getContactId);
@@ -131,6 +136,54 @@ public class AnnualDataLockingService extends ServiceImpl<AnnualDataLockingMappe
updateMeetingSituationList.add(update);
}
meetingSituationService.updateBatchById(updateMeetingSituationList);
//工作组项目
for (PayWorkingGroupSubItem workingGroupSubItem : workingGroupSubItems) {
}
}
@NotNull
private ArrayList<String> getDistinctContactIdList(List<PayMeetingSituation> meetingSituations, List<PayWorkingGroupSubItem> workingGroupSubItems, List<PayCommonProject> payCommonProjects, List<PayMemberProjectSubitem> memberProjectSubitems, List<TbMemberProjectSubitem> tbMemberProjectSubitems) {
//获得所有联系人id
List<String> contactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyContactId).distinct().collect(Collectors.toList());
List<String> contactIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getContactsIdOne).distinct().collect(Collectors.toList());
List<String> contactIdList3 = payCommonProjects.stream().map(PayCommonProject::getContactsId).distinct().collect(Collectors.toList());
List<String> contactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyContactId).distinct().collect(Collectors.toList());
List<String> contactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getLiaisonManId).distinct().collect(Collectors.toList());
contactIdList1.addAll(contactIdList2);
contactIdList1.addAll(contactIdList3);
contactIdList1.addAll(contactIdList4);
contactIdList1.addAll(contactIdList5);
//获得所有邮寄联系人id
List<String> postContactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getPostContactId).distinct().collect(Collectors.toList());
List<String> postContactIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getMailContactsId).distinct().collect(Collectors.toList());
List<String> postContactIdList3 = payCommonProjects.stream().map(PayCommonProject::getMailContactsId).distinct().collect(Collectors.toList());
List<String> postContactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList());
List<String> 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<String> getDistinctCompanyIdList(List<PayMeetingSituation> meetingSituations, List<PayWorkingGroupSubItem> workingGroupSubItems, List<PayCommonProject> payCommonProjects, List<PayMemberProjectSubitem> memberProjectSubitems, List<TbMemberProjectSubitem> tbMemberProjectSubitems) {
//获取所有企业id
List<String> companyIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getChargeCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList3 = payCommonProjects.stream().map(PayCommonProject::getChargeCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList());
List<String> 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);
}
/**