| | |
| | | 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()); |
| | | } |
| | | } |
| | | } |