fei
8 小时以前 f41e9a8dd4aa5de0de323ffe2377c896cb44ea37
修改了对应代码
3个文件已修改
127 ■■■■■ 已修改文件
archiveManager/src/main/java/com/ruoyi/service/IDocumentMaterialsService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/IDocumentMaterialsService.java
@@ -94,4 +94,7 @@
    //拿到对应的案卷材料个数
    public int getFileCount(Integer recordId);
    //根据页号添加中间记录
    public AjaxResult addMiddleRecordsByPageNumbers(Long recordId, Long maxPageNumber);
}
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
@@ -334,4 +334,106 @@
    public int getFileCount(Integer recordId) {
        return this.baseMapper.getCount(recordId);
    }
    @Override
    public AjaxResult addMiddleRecordsByPageNumbers(Long recordId, Long maxPageNumber) {
        try {
            // 获取指定recordId下的所有记录,按页号升序排列
            LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>();
            lqw.eq(DocumentMaterials::getRecordId, recordId);
            lqw.orderByAsc(DocumentMaterials::getPageNumber);
            List<DocumentMaterials> records = this.list(lqw);
            if (records == null || records.isEmpty()) {
                return AjaxResult.success("没有找到指定记录");
            }
            List<DocumentMaterials> middleRecords = new ArrayList<>();
            // 遍历记录,找出需要添加中间页号的位置
            for (int i = 0; i < records.size() - 1; i++) {
                DocumentMaterials currentRecord = records.get(i);
                DocumentMaterials nextRecord = records.get(i + 1);
                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(null);
                        // 重置页次为null,让系统自动生成
                        newRecord.setPageOrder(null);
                        // 重置图像相关字段,以便上传文件时更新
                        newRecord.setSizeType(null);
                        newRecord.setWidth(null);
                        newRecord.setHeight(null);
                        newRecord.setHorizontalResolution(null);
                        newRecord.setVerticalResolution(null);
                        newRecord.setFileSize(null);
                        newRecord.setFormat(null);
                        newRecord.setUrl(null);
                        // 添加到中间记录列表
                        middleRecords.add(newRecord);
                    }
                }
            }
            // 处理最后一条记录到maxPageNumber之间的间隔
            DocumentMaterials lastRecord = records.get(records.size() - 1);
            long lastPage = lastRecord.getPageNumber();
            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(null);
                    // 重置页次为null,让系统自动生成
                    newRecord.setPageOrder(null);
                    // 重置图像相关字段,以便上传文件时更新
                    newRecord.setSizeType(null);
                    newRecord.setWidth(null);
                    newRecord.setHeight(null);
                    newRecord.setHorizontalResolution(null);
                    newRecord.setVerticalResolution(null);
                    newRecord.setFileSize(null);
                    newRecord.setFormat(null);
                    newRecord.setUrl(null);
                    // 添加到中间记录列表
                    middleRecords.add(newRecord);
                }
            }
            // 批量保存中间记录
            if (!middleRecords.isEmpty()) {
                this.saveBatch(middleRecords);
                return AjaxResult.success("成功添加中间记录", "添加数量:" + middleRecords.size());
            } else {
                return AjaxResult.success("没有需要添加的中间记录");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error("添加中间记录失败:" + e.getMessage());
        }
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java
@@ -81,7 +81,7 @@
        return AjaxResult.success(data);
    }
    /**
     * 拿到除了其它类型材料的个数
     * 拿到对应的案卷材料个数
     */
    @PreAuthorize("@ss.hasPermi('system:materials:list')")
    @GetMapping("/getFileCount/{recordId}")
@@ -90,6 +90,17 @@
        int cnt = documentMaterialsService.getFileCount(recordId);
        return AjaxResult.success(cnt);
    }
    /**
     * 根据页号添加中间记录的接口
     * 例如页号1,5,7,则添加页号为2,3,4(信息与1保持一致),6(信息与5保持一致)
     */
    @PreAuthorize("@ss.hasPermi('system:materials:edit')")
    @GetMapping("/addMiddleRecords/{recordId}/{maxPageNumber}")
    public AjaxResult addMiddleRecords(@PathVariable("recordId") Long recordId,@PathVariable("maxPageNumber")  Long maxPageNumber)
    {
        return documentMaterialsService.addMiddleRecordsByPageNumbers(recordId, maxPageNumber);
    }
    /**
     * 查询【文件材料综合信息】列表
@@ -204,15 +215,17 @@
            AjaxResult ajax = AjaxResult.success();
            //分割文件名
            String [] nams = fname.split("\\.");
            System.out.println(fname);
            Long nam = Long.parseLong(nams[0]);
            //根据页号拿到案卷的详细信息
            System.out.println("0-------------");
            System.out.println(recordId);
            System.out.println("0-------------");
            DocumentMaterials doc = documentMaterialsService.selectByPageNumber(nam, Math.toIntExact(recordId));
            if(doc==null)
                return AjaxResult.error("无对应页号,请检查清楚附件以及对应的输入!");
            else{
                if(doc.getSecurityLevel().equals("该页另存"))
                if(doc.getSecurityLevel()!=null&&doc.getSecurityLevel().equals("该页另存"))
                {
                    //替换为了准备好的图像
@@ -300,7 +313,7 @@
                    int wdpi = info.getPhysicalWidthDpi() ;
                    int hdpi = info.getPhysicalHeightDpi();
                    System.out.println("DPI: " + info.getPhysicalWidthDpi());
                    System.out.println("DPI: " + info.getPhysicalWidthDpi()+nam+"dds");
                    //计算fileNumber
                    Long fileNumber = documentMaterialsService.getFiNum(nam, recordId);
                    //计算sizeType
@@ -320,6 +333,7 @@
        }
        catch (Exception e)
        {
            System.out.println("88888888882222222222222");
            System.out.println(e);
            return AjaxResult.error(e.getMessage());
        }