fei
7 天以前 fc3ccbfc30b83e432c71c508ef2b9c1052816ed2
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
@@ -302,12 +302,13 @@
    }
    @Override
    public List<DocumentMaterialsVo> findArchMInfo(String recordId) {
    public List<DocumentMaterialsVo> findArchMInfo(String recordId, long pageCount) {
        // 获取原始数据列表
        List<DocumentMaterialsVo> dataList = this.baseMapper.getArchiveMatInfo(Integer.parseInt(recordId));
        
        // 获取该案卷的最大页号(总页数)
        Long totalPages = this.baseMapper.getMaxPageNumber(Integer.parseInt(recordId));
        Long totalPages = (long) pageCount;
                //this.baseMapper.getMaxPageNumber(Integer.parseInt(recordId));
       
        // 如果数据列表不为空
        if (dataList != null && !dataList.isEmpty() && totalPages != null) {
@@ -416,7 +417,114 @@
    public int getFileCount(Integer recordId) {
        return this.baseMapper.getCount(recordId);
    }
    public List<DocumentMaterials> SelectAllRecordsByPageNumbersToList(Long recordId, Long maxPageNumber) {
        // 获取指定recordId下的所有记录,按页号升序排列
        LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>();
        lqw.eq(DocumentMaterials::getRecordId, recordId);
        lqw.ne(DocumentMaterials::getFileStyle, "其他材料");
        lqw.orderByAsc(DocumentMaterials::getPageNumber);
        List<DocumentMaterials> records = this.list(lqw);
        if (records == null || records.isEmpty()) {
            // return AjaxResult.success("没有找到指定记录");
            return null;
        }
        List<DocumentMaterials> middleRecords = new ArrayList<>();
        int startFileNumber = 1;
        // 遍历记录,找出需要添加中间页号的位置
        for (int i = 0; i < records.size() - 1; i++) {
            // startFileNumber = 1;
            int pageOrderNumber = 1;
            DocumentMaterials currentRecord = records.get(i);
            DocumentMaterials nextRecord = records.get(i + 1);
            currentRecord.setFileNumber((long) startFileNumber);
            currentRecord.setPageOrder((long) pageOrderNumber++);
            middleRecords.add(currentRecord);
            long currentPage = currentRecord.getPageNumber();
            long nextPage = nextRecord.getPageNumber();
            // 如果当前页号和下一页号之间有间隔
            if (nextPage - currentPage > 1) {
                // 添加中间页号的记录,信息与当前记录保持一致
                for (long page = currentPage + 1; page < nextPage; page++) {
                    DocumentMaterials newRecord = new DocumentMaterials();
                    // 复制当前记录的所有属性
                    BeanUtils.copyBeanProp(newRecord, currentRecord);
                    // 设置新的页号
                    newRecord.setPageNumber(page);
                    // 清除ID,确保是新记录
                    newRecord.setMaterialId(null);
                    // 设置创建时间
                    newRecord.setCreatedAt(new Date());
                    // 重置文件材料序号为null,让系统自动生成
                    newRecord.setFileNumber((long) startFileNumber);
                    // 重置页次为null,让系统自动生成
                    newRecord.setPageOrder((long) pageOrderNumber++);
                    // 重置图像相关字段,以便上传文件时更新
                    newRecord.setSizeType(null);
                    newRecord.setWidth(null);
                    newRecord.setHeight(null);
                    newRecord.setHorizontalResolution(null);
                    newRecord.setVerticalResolution(null);
                    newRecord.setFileSize(null);
                    newRecord.setFormat(null);
                    newRecord.setUrl(null);
                    //不在前端显示
                    newRecord.setVisible(0);
                    // 添加到中间记录列表
                    middleRecords.add(newRecord);
                }
            }
            //下一次加1
            startFileNumber++;
        }
        // 处理最后一条记录到maxPageNumber之间的间隔
     //   int startLastFileNumber = 1;
        DocumentMaterials lastRecord = records.get(records.size() - 1);
        lastRecord.setFileNumber((long) startFileNumber);
        int lastpageordernumber = 1;
        lastRecord.setPageOrder((long) lastpageordernumber);
        long lastPage = lastRecord.getPageNumber();
        middleRecords.add(lastRecord);
        if (maxPageNumber > lastPage) {
            // 添加从lastPage+1到maxPageNumber之间的中间记录
            for (long page = lastPage + 1; page <= maxPageNumber; page++) {
                DocumentMaterials newRecord = new DocumentMaterials();
                // 复制最后一条记录的所有属性
                BeanUtils.copyBeanProp(newRecord, lastRecord);
                // 设置新的页号
                newRecord.setPageNumber(page);
                // 清除ID,确保是新记录
                newRecord.setMaterialId(null);
                // 设置创建时间
                newRecord.setCreatedAt(new Date());
                // 重置文件材料序号为null,让系统自动生成
                newRecord.setFileNumber((long) startFileNumber);
                // 重置页次为null,让系统自动生成
                newRecord.setPageOrder((long) lastpageordernumber++);
                // 重置图像相关字段,以便上传文件时更新
                newRecord.setSizeType(null);
                newRecord.setWidth(null);
                newRecord.setHeight(null);
                newRecord.setHorizontalResolution(null);
                newRecord.setVerticalResolution(null);
                newRecord.setFileSize(null);
                newRecord.setFormat(null);
                newRecord.setUrl(null);
                newRecord.setVisible(0);
                // 添加到中间记录列表
                middleRecords.add(newRecord);
            }
        }
        return middleRecords;
    }
    @Override
    public AjaxResult addMiddleRecordsByPageNumbers(Long recordId, Long maxPageNumber) {
        try {