fei
2025-11-19 f0aac7e028b09aefa2428a8d66fdb81e466a89fe
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
@@ -6,10 +6,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.ArchiveCategory;
import com.ruoyi.domain.ArchiveRecords;
import com.ruoyi.domain.DocumentMaterials;
import com.ruoyi.domain.vo.*;
import com.ruoyi.mapper.DocumentMaterialsMapper;
@@ -40,6 +42,9 @@
                .like(!StringUtils.isEmpty(documentMaterials.getPublicity()), DocumentMaterials::getPublicity, documentMaterials.getPublicity())
                .like(!StringUtils.isEmpty(documentMaterials.getRetentionPeriod()), DocumentMaterials::getRetentionPeriod, documentMaterials.getRetentionPeriod())
                .like(!StringUtils.isEmpty(documentMaterials.getSecurityLevel()), DocumentMaterials::getSecurityLevel, documentMaterials.getSecurityLevel())
                .like(!StringUtils.isEmpty(documentMaterials.getTitle()), DocumentMaterials::getTitle, documentMaterials.getTitle())
                .eq(documentMaterials.getDate()!=null, DocumentMaterials::getDate, documentMaterials.getDate())
                .eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId())
        .eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber());
@@ -148,59 +153,79 @@
    }
    @Override
    public List<DocumentMaterials> selectDocumentMaterialsByIds(Long[] ids) {
        // 获取当前用户ID
        Long userid = SecurityUtils.getUserId();
        // 创建查询条件
        LambdaQueryWrapper<DocumentMaterials> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        // 根据ids查询
        lambdaQueryWrapper.in(DocumentMaterials::getMaterialId, Arrays.asList(ids));
        lambdaQueryWrapper.orderByAsc(DocumentMaterials::getPageNumber);
        // 如果不是管理员,需要考虑权限过滤(可根据实际权限需求调整)
        if (userid != 1) {
            // 这里可以添加权限相关的过滤条件
        }
        List<DocumentMaterials> beanRecords = list(lambdaQueryWrapper);
        return beanRecords;
    }
    @Override
    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);
//            //修改页号成功之后,要重新生成文件材料序号,页次
//            //根据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);
//
//            //计算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);
            }
//            //把剩下所有的的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);
//            }
        } catch (Exception e) {
@@ -299,4 +324,9 @@
        else
            return null;
    }
    @Override
    public boolean isPageNumberIslegal(Integer recordId) {
        return this.baseMapper.isPageNumberLegal(recordId);
    }
}