| | |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | |
| | | public int updateDocumentMaterials(DocumentMaterials documentMaterials) { |
| | | boolean result = false; |
| | | try { |
| | | |
| | | // //修改页号成功之后,要重新生成文件材料序号,页次 |
| | | // //根据pageNumber拿到title,然后计算pageOrder |
| | | // LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>(); |
| | | // lqw.eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId()); |
| | | // lqw.eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber()); |
| | | // List<DocumentMaterials> records = list(lqw); |
| | | |
| | | |
| | | // |
| | | // //计算pageOrder |
| | | // Long pageOrder = 1L; |
| | | // if(documentMaterials.getPageNumber().equals(1)) |
| | | // pageOrder = 1L; |
| | | // else { |
| | | // Long maxPOrder = this.baseMapper.getMaxPageOrder(records.get(0).getTitle(), documentMaterials.getPageNumber(), records.get(0).getStage(), documentMaterials.getRecordId()); |
| | | // if (maxPOrder != null) |
| | | // pageOrder = maxPOrder + 1; |
| | | // } |
| | | // //设置pageOrder |
| | | // documentMaterials.setPageOrder(pageOrder); |
| | | // //计算fileNumber |
| | | // Long fileNumber = this.getFiNum(documentMaterials.getPageNumber(), documentMaterials.getRecordId()); |
| | | // documentMaterials.setFileNumber(fileNumber); |
| | | //修改页号 |
| | | result = updateById(documentMaterials); |
| | | // //把剩下所有的的fileNumber和pageOrder都更新一遍 |
| | | // LambdaQueryWrapper<DocumentMaterials> lqw1 = new LambdaQueryWrapper<>(); |
| | | // lqw.eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId()); |
| | | // // lqw.eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber()); |
| | | // List<DocumentMaterials> recordss = list(lqw1); |
| | | // for(DocumentMaterials dt: recordss) |
| | | // { |
| | | // //计算pageOrder |
| | | // Long pageOrder1 = 1L; |
| | | // if(dt.getPageNumber().equals(1)) |
| | | // pageOrder1 = 1L; |
| | | // else { |
| | | // Long maxPOrder1 = this.baseMapper.getMaxPageOrder(dt.getTitle(), dt.getPageNumber(), dt.getStage(), dt.getRecordId()); |
| | | // if (maxPOrder1 != null) |
| | | // pageOrder1 = maxPOrder1 + 1; |
| | | // } |
| | | // //设置pageOrder |
| | | // dt.setPageOrder(pageOrder1); |
| | | // //计算fileNumber |
| | | // Long fileNumber1 = this.getFiNum(dt.getPageNumber(), dt.getRecordId()); |
| | | // dt.setFileNumber(fileNumber1); |
| | | // //修改页号 |
| | | // updateById(dt); |
| | | // } |
| | | |
| | | |
| | | // 使用LambdaUpdateWrapper构造更新条件,确保null值也能更新到数据库 |
| | | LambdaUpdateWrapper<DocumentMaterials> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(DocumentMaterials::getMaterialId, documentMaterials.getMaterialId()); |
| | | |
| | | // 明确设置需要更新的字段 |
| | | updateWrapper.set(DocumentMaterials::getFileNumber, documentMaterials.getFileNumber()); |
| | | updateWrapper.set(DocumentMaterials::getDocumentNumber, documentMaterials.getDocumentNumber()); |
| | | updateWrapper.set(DocumentMaterials::getCreator, documentMaterials.getCreator()); |
| | | updateWrapper.set(DocumentMaterials::getTitle, documentMaterials.getTitle()); |
| | | updateWrapper.set(DocumentMaterials::getDate, documentMaterials.getDate()); |
| | | updateWrapper.set(DocumentMaterials::getPageNumber, documentMaterials.getPageNumber()); // 允许更新为null |
| | | updateWrapper.set(DocumentMaterials::getPageOrder, documentMaterials.getPageOrder()); |
| | | updateWrapper.set(DocumentMaterials::getStage, documentMaterials.getStage()); |
| | | updateWrapper.set(DocumentMaterials::getPublicity, documentMaterials.getPublicity()); |
| | | updateWrapper.set(DocumentMaterials::getIsAttachment, documentMaterials.getIsAttachment()); |
| | | updateWrapper.set(DocumentMaterials::getIsDiagram, documentMaterials.getIsDiagram()); |
| | | updateWrapper.set(DocumentMaterials::getRetentionPeriod, documentMaterials.getRetentionPeriod()); |
| | | updateWrapper.set(DocumentMaterials::getSecurityLevel, documentMaterials.getSecurityLevel()); |
| | | updateWrapper.set(DocumentMaterials::getIsSensitive, documentMaterials.getIsSensitive()); |
| | | updateWrapper.set(DocumentMaterials::getIsCanceled, documentMaterials.getIsCanceled()); |
| | | updateWrapper.set(DocumentMaterials::getFormat, documentMaterials.getFormat()); |
| | | updateWrapper.set(DocumentMaterials::getSizeType, documentMaterials.getSizeType()); |
| | | updateWrapper.set(DocumentMaterials::getHorizontalResolution, documentMaterials.getHorizontalResolution()); |
| | | updateWrapper.set(DocumentMaterials::getVerticalResolution, documentMaterials.getVerticalResolution()); |
| | | updateWrapper.set(DocumentMaterials::getWidth, documentMaterials.getWidth()); |
| | | updateWrapper.set(DocumentMaterials::getHeight, documentMaterials.getHeight()); |
| | | updateWrapper.set(DocumentMaterials::getFileSize, documentMaterials.getFileSize()); |
| | | updateWrapper.set(DocumentMaterials::getAttachmentHistoryNumbers, documentMaterials.getAttachmentHistoryNumbers()); |
| | | updateWrapper.set(DocumentMaterials::getRemarks, documentMaterials.getRemarks()); |
| | | updateWrapper.set(DocumentMaterials::getVisible, documentMaterials.getVisible()); |
| | | updateWrapper.set(DocumentMaterials::getFileStyle, documentMaterials.getFileStyle()); |
| | | // 执行更新操作 |
| | | result = update(updateWrapper); |
| | | } catch (Exception e) { |
| | | System.out.println(e); |
| | | throw new ErrorcodeExceptionextends(500, "同一个案卷内,不允许页码重复!"); |
| | |
| | | |
| | | @Override |
| | | public Long getFiNum(Long pageNumber, Long recordId) { |
| | | return this.baseMapper.getFileNumber(pageNumber, recordId); |
| | | return this.baseMapper.getFileNumber(pageNumber, recordId)+1; |
| | | } |
| | | |
| | | @Override |
| | |
| | | DocumentMaterials documentMaterials = new DocumentMaterials(); |
| | | BeanUtils.copyProperties(archiveCategory, documentMaterials); |
| | | documentMaterials.setRecordId(Long.parseLong(recordId)); |
| | | documentMaterials.setVisible(1); |
| | | this.insertDocumentMaterials(documentMaterials); |
| | | } |
| | | |
| | |
| | | public boolean isPageNumberIslegal(Integer recordId) { |
| | | return this.baseMapper.isPageNumberLegal(recordId); |
| | | } |
| | | |
| | | @Override |
| | | 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.ne(DocumentMaterials::getFileStyle, "其他材料"); |
| | | 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); |
| | | //不在前端显示 |
| | | newRecord.setVisible(0); |
| | | // 添加到中间记录列表 |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |