xuhy
2025-01-02 b94fffb01c94100b34e2908b4fe79c1c554b0912
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
@@ -25,6 +25,7 @@
import com.ruoyi.web.controller.query.dto.RegisterDto;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -279,6 +280,11 @@
                .orderByDesc(TAppUser::getCreateTime)
                .page(Page.of(appUserQuery.getPageNum(), appUserQuery.getPageSize()));
        List<TRegion> regions = regionService.lambdaQuery().list();
        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list();
        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list();
        List<TLevel> levels = levelService.lambdaQuery().list();
        for (TAppUser record : page.getRecords()) {
            List<String> newString = new ArrayList<>();
            //拿到最新的change
@@ -286,11 +292,11 @@
           if (newest!=null){
              List<TUserChangeDetail> list = tUserChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, newest.getId()).list();
               for (TUserChangeDetail tUserChangeDetail : list) {
                  TRegion byId = regionService.getById(tUserChangeDetail.getRegionId());
                    TTechnicalTitle byId1 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId());
                    TTitleMajor byId2 = majorService.getById(tUserChangeDetail.getMajorId());
                    TLevel byId3 = levelService.getById(tUserChangeDetail.getLevelId());
                   newString.add(byId.getName()+"-"+byId1.getTitileName()+"-"+byId2.getMajorName()+"-"+byId3.getName());
                   TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null);
                   TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null);
                   TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null);
                   TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null);
                   newString.add(region.getName()+"-"+tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()+"-"+tLevel.getName());
               }
           }
@@ -301,11 +307,11 @@
            if (latest!=null){
                List<TUserChangeDetail> list = tUserChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, latest.getId()).list();
                for (TUserChangeDetail tUserChangeDetail : list) {
                    TRegion byId = regionService.getById(tUserChangeDetail.getRegionId());
                    TTechnicalTitle byId1 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId());
                    TTitleMajor byId2 = majorService.getById(tUserChangeDetail.getMajorId());
                    TLevel byId3 = levelService.getById(tUserChangeDetail.getLevelId());
                    lateString.add(byId.getName()+"-"+byId1.getTitileName()+"-"+byId2.getMajorName()+"-"+byId3.getName());
                    TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null);
                    TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null);
                    TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null);
                    TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null);
                    lateString.add(region.getName()+"-"+tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()+"-"+tLevel.getName());
                }
            }
@@ -402,13 +408,26 @@
            endTime = appUserQuery.getCreateTime2().atTime(23, 59, 59, 999999999);
        }
        List<TAppUser> page = appUserService.lambdaQuery().like(appUserQuery.getName() != null, TAppUser::getName, appUserQuery.getName())
                .like(appUserQuery.getPhone() != null, TAppUser::getPhone, appUserQuery.getPhone())
                .eq(appUserQuery.getStatus() != null, TAppUser::getStatus, appUserQuery.getStatus())
                .ge(appUserQuery.getCreateTime1() != null, TAppUser::getCreateTime, startTime)
                .le(appUserQuery.getCreateTime2() != null, TAppUser::getCreateTime, endTime)
                .in(finalIds.size() > 0, TAppUser::getId, finalIds).list()
                ;
        int pageSize = 100;
        int currentPage = 0;
        List<TAppUser> page = new ArrayList<>();
        while (true) {
            Page<TAppUser> pageItems = appUserService.lambdaQuery().like(appUserQuery.getName() != null, TAppUser::getName, appUserQuery.getName())
                    .like(appUserQuery.getPhone() != null, TAppUser::getPhone, appUserQuery.getPhone())
                    .eq(appUserQuery.getStatus() != null, TAppUser::getStatus, appUserQuery.getStatus())
                    .ge(appUserQuery.getCreateTime1() != null, TAppUser::getCreateTime,startTime)
                    .le(appUserQuery.getCreateTime2() != null, TAppUser::getCreateTime,endTime)
                    .in(finalIds.size() > 0, TAppUser::getId, finalIds)
                    .orderByDesc(TAppUser::getCreateTime)
                    .page(Page.of(currentPage * pageSize, pageSize));
            List<TAppUser> records = pageItems.getRecords();
            if (CollectionUtils.isEmpty(records)) {
                break; // 没有更多数据,退出循环
            }
            page.addAll(records); // 累加当前页数据
            currentPage++; // 进入下一页
        }
        List<Long> collect = page.stream().map(TAppUser::getId).collect(Collectors.toList());
        Map<Long, TUserChange> collect1 = tUserChangeService.lambdaQuery()
                .in(TUserChange::getUserId, collect).orderByDesc(TUserChange::getCreateTime).list()