From 93dfe76b5323418f6e05a91a34bd7205f0308011 Mon Sep 17 00:00:00 2001 From: sjh Date: Tue, 17 Dec 2024 09:59:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D118=E6=A8=A1=E5=9E=8B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/dwd/GBaseCSCZRKMapper.java | 16 ++++---- .../service/impl/PointServiceImpl.java | 39 +++++++++++++++++-- 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java index 77eccd1..34ae364 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java @@ -62,29 +62,29 @@ public interface GBaseCSCZRKMapper extends BaseMapper { + "inner join dwd_ry_kxgxzyk_csczrk c ON a.hh = c.hh " + "where a.gmsfhm != c.gmsfhm and (" + "( a.mqgmsfzhm IS NULL AND a.fqgmsfzhm IS NULL ) " - + ")") - List selectFamilyPeople1(); + + "LIMIT #{limit} OFFSET #{offset}") + List selectFamilyPeople1(int offset, int limit); @Select("select distinct a.gmsfhm, c.gmsfhm family_id from dwd_ry_kxgxzyk_csczrk a inner join csga_wdpcdb.wdpc_person b on a.gmsfhm = b.id_code " + "inner join dwd_ry_kxgxzyk_csczrk c ON a.hh = c.hh " + "where a.gmsfhm != c.gmsfhm and (" + "( a.mqgmsfzhm IS NULL AND a.fqgmsfzhm != c.gmsfhm ) " - + ")") - List selectFamilyPeople2(); + + "LIMIT #{limit} OFFSET #{offset}") + List selectFamilyPeople2(int offset, int limit); @Select("select distinct a.gmsfhm, c.gmsfhm family_id from dwd_ry_kxgxzyk_csczrk a inner join csga_wdpcdb.wdpc_person b on a.gmsfhm = b.id_code " + "inner join dwd_ry_kxgxzyk_csczrk c ON a.hh = c.hh " + "where a.gmsfhm != c.gmsfhm and (" + "( a.fqgmsfzhm IS NULL AND a.mqgmsfzhm != c.gmsfhm ) " - + ")") - List selectFamilyPeople3(); + + "LIMIT #{limit} OFFSET #{offset}") + List selectFamilyPeople3(int offset, int limit); @Select("select distinct a.gmsfhm, c.gmsfhm family_id from dwd_ry_kxgxzyk_csczrk a inner join csga_wdpcdb.wdpc_person b on a.gmsfhm = b.id_code " + "inner join dwd_ry_kxgxzyk_csczrk c ON a.hh = c.hh " + "where a.gmsfhm != c.gmsfhm and (" + "(a.fqgmsfzhm IS NOT NULL AND a.mqgmsfzhm IS NOT NULL AND a.fqgmsfzhm != c.gmsfhm AND a.mqgmsfzhm != c.gmsfhm) " - + ")") - List selectFamilyPeople4(); + + "LIMIT #{limit} OFFSET #{offset}") + List selectFamilyPeople4(int offset, int limit); @Select("select distinct a.gmsfhm, a.fqgmsfzhm father_id from dwd_ry_kxgxzyk_csczrk a INNER JOIN csga_wdpcdb.wdpc_person b ON a.gmsfhm = b.id_code where a.fqgmsfzhm is not null;") List selectFather(); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java index 890dd60..b430e2c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -1455,14 +1455,45 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); List list = new ArrayList<>(); + List familyPeople = new ArrayList<>(); log.info("模型118开始查询"); - List familyPeople = new ArrayList<>(cSCZRKRepository.getBaseMapper().selectFamilyPeople1()); + int pageSize = 100000; + int pageNumber1 = 1; + List currentPageResults1; + do { + int offset = (pageNumber1 - 1) * pageSize; + currentPageResults1 = cSCZRKRepository.getBaseMapper().selectFamilyPeople1(offset, pageSize); + log.info("模型118第一部分查询完毕"); + familyPeople.addAll(currentPageResults1); + pageNumber1++; + } while (!currentPageResults1.isEmpty()); log.info("模型118查询familyPeople1结果数:{}", familyPeople.size()); - familyPeople.addAll(cSCZRKRepository.getBaseMapper().selectFamilyPeople2()); + int pageNumber2 = 1; + List currentPageResults2; + do { + int offset = (pageNumber2 - 1) * pageSize; + currentPageResults2 = cSCZRKRepository.getBaseMapper().selectFamilyPeople2(offset, pageSize); + familyPeople.addAll(currentPageResults2); + pageNumber2++; + } while (!currentPageResults2.isEmpty()); log.info("模型118查询familyPeople2结果数:{}", familyPeople.size()); - familyPeople.addAll(cSCZRKRepository.getBaseMapper().selectFamilyPeople3()); + int pageNumber3 = 1; + List currentPageResults3; + do { + int offset = (pageNumber3 - 1) * pageSize; + currentPageResults3 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize); + familyPeople.addAll(currentPageResults3); + pageNumber3++; + } while (!currentPageResults3.isEmpty()); log.info("模型118查询familyPeople3结果数:{}", familyPeople.size()); - familyPeople.addAll(cSCZRKRepository.getBaseMapper().selectFamilyPeople4()); + int pageNumber4 = 1; + List currentPageResults4; + do { + int offset = (pageNumber4 - 1) * pageSize; + currentPageResults4 = cSCZRKRepository.getBaseMapper().selectFamilyPeople4(offset, pageSize); + familyPeople.addAll(currentPageResults4); + pageNumber4++; + } while (!currentPageResults4.isEmpty()); log.info("模型118查询familyPeople结果数:{}", familyPeople.size()); Map> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList())));