springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberExcelVO.java
@@ -2,6 +2,7 @@ import java.io.Serializable; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @@ -27,4 +28,7 @@ @ExcelProperty(value = "联系电话",index = 1) private String phone; @ExcelIgnore private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -271,7 +271,7 @@ try { inputStream = file.getInputStream(); EasyExcel.read(inputStream, PartyBuildingMemberExcelVO.class, new PartyBuildingMemberExcelListen(partyBuildingService)).sheet().doRead(); new PartyBuildingMemberExcelListen(partyBuildingService,this.getCommunityId())).sheet().doRead(); } catch (IOException e) { e.printStackTrace(); log.error("导入模板失败【{}】", e.getMessage()); springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
@@ -24,14 +24,17 @@ private static final int BATCH_COUNT = 5000; private PartyBuildingService partyBuildingService; private Long communityId; private List<PartyBuildingMemberExcelVO> list = new ArrayList<>(); public PartyBuildingMemberExcelListen(PartyBuildingService partyBuildingService) { public PartyBuildingMemberExcelListen(PartyBuildingService partyBuildingService,Long communityId) { this.partyBuildingService = partyBuildingService; this.communityId=communityId; } @Override public void invoke(PartyBuildingMemberExcelVO partyBuildingMemberExcelVO, AnalysisContext analysisContext) { partyBuildingMemberExcelVO.setCommunityId(communityId); list.add(partyBuildingMemberExcelVO); // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (list.size() >= BATCH_COUNT) { springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
@@ -148,66 +148,16 @@ // } // valueOperations.set(REDIS_ORG_ALL,JSONArray.toJSONString(partyOrganizationVOS),24, TimeUnit.HOURS); // } List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new LambdaQueryWrapper<>()); if (!ObjectUtils.isEmpty(comPbOrgDOS)) { List<PartyOrganizationVO> partyOrganizationVOList = new ArrayList<>(); comPbOrgDOS.forEach(comPbOrgDO -> { PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO(); partyOrganizationVO.setId(comPbOrgDO.getId()); partyOrganizationVO.setName(comPbOrgDO.getName()); partyOrganizationVO.setCommunityId(comPbOrgDO.getCommunityId()); partyOrganizationVOList.add(partyOrganizationVO); }); partyOrganizationVOS = partyOrganizationVOList; } List<ComPbMemberDO> comPbMemberDOS = new ArrayList<>(); if (!ObjectUtils.isEmpty(list)) { List<PartyOrganizationVO> partyOrganizationVOArrayList = partyOrganizationVOS; for (PartyBuildingMemberExcelVO partyBuildingMemberExcelVO : list) { ComPbMemberDO comPbMemberDO = new ComPbMemberDO(); Date date = new Date(); comPbMemberDO.setUpdateAt(date); comPbMemberDO.setCreateAt(date); String orgName = partyBuildingMemberExcelVO.getOrgName(); List<PartyOrganizationVO> collect = partyOrganizationVOArrayList.stream() .filter(partyOrganizationVO -> orgName.equals(partyOrganizationVO.getName())) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(collect)) { throw new PartyBuildingMemberException( "导入失败,组织不存在" + partyBuildingMemberExcelVO.getOrgName() + ",请先在“党支部管理”中添加该党支部"); } else { PartyOrganizationVO partyOrganizationVO = collect.get(0); comPbMemberDO.setOrgId(partyOrganizationVO.getId()); comPbMemberDO.setCommunityId(partyOrganizationVO.getCommunityId()); List<ComPbMemberDO> comPbMemberDOList = this.baseMapper.selectList(new QueryWrapper<ComPbMemberDO>() .lambda().eq(ComPbMemberDO::getPhone, partyBuildingMemberExcelVO.getPhone()) .eq(ComPbMemberDO::getCommunityId, partyOrganizationVO.getCommunityId()) .in(ComPbMemberDO::getAuditResult, 0, 1)); if (!comPbMemberDOList.isEmpty()) { comPbMemberDOList.forEach(comPbMember -> { BeanUtils.copyProperties(partyBuildingMemberExcelVO, comPbMember); this.baseMapper.updateById(comPbMember); }); continue; // throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+ // partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" + // partyBuildingMemberExcelVO.getName()); } } comPbMemberDO.setName(partyBuildingMemberExcelVO.getName()); comPbMemberDO.setPhone(partyBuildingMemberExcelVO.getPhone()); comPbMemberDOS.add(comPbMemberDO); } } comPbMemberDOS.forEach(comPbMemberDO -> { list.forEach(partyBuildingMemberExcelVO -> { ComPbMemberDO comPbMemberDO=new ComPbMemberDO(); BeanUtils.copyProperties(partyBuildingMemberExcelVO,comPbMemberDO); boolean flag=this.save(comPbMemberDO); if(flag){ //修改党员状态 userService.updateUserIsPartymemberByPhone(comPbMemberDO.getPhone()); } }); } ); return R.ok(); } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbCheckUnitMapper.xml
@@ -41,8 +41,13 @@ and cpcu.community_id = #{dto.communityId} </if> <if test="dto.keyWord != null and dto.keyWord != ''"> and (cpcu.`name` like concat(#{dto.keyWord},'%') or cpcu.`contacts` like concat(#{dto.keyWord},'%') or cpcu.phone like concat(#{dto.keyWord},'%')) and cpcu.org_name like concat(#{dto.keyWord},'%') </if> <if test="dto.name != null and dto.name != ''"> and cpcu.`name` like concat(#{dto.name},'%') </if> <if test="dto.contacts != null and dto.contacts != ''"> and cpcu.`contacts` like concat(#{dto.name},'%') </if> </where> order by cpcu.create_at desc