fei
2025-11-17 131cd265f4711691fe22ff50c44f523c65cd7022
修改了对应代码
6个文件已修改
117 ■■■■■ 已修改文件
archiveManager/src/main/java/com/ruoyi/mapper/DocumentMaterialsMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/mapper/DocumentMaterialsMapper.java
@@ -63,4 +63,7 @@
            "where record_id=#{recordId} GROUP BY file_style")
    List<DocumentMaterialFileStyle> getFileStyleInfo(@Param("recordId") int recordId);
    @Select("select if(count(*) < max(page_number), false, true) as res from document_materials where record_id=#{recordId}")
    boolean isPageNumberLegal(@Param("recordId") int recordId);
}
archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java
@@ -38,6 +38,14 @@
     * @return 档案记录集合
     */
    public List<ArchiveRecords> selectArchiveRecordsList(ArchiveRecords archiveRecords);
    /**
     * 根据ids查询档案记录列表
     *
     * @param ids 档案记录主键集合
     * @return 档案记录集合
     */
    public List<ArchiveRecords> selectArchiveRecordsByIds(Long[] ids);
    /**
     * 新增档案记录
archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
@@ -24,6 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
/**
 * 档案记录Service业务层处理
@@ -183,6 +184,27 @@
        return beanRecords;
    }
    @Override
    public List<ArchiveRecords> selectArchiveRecordsByIds(Long[] ids)
    {
        // 获取当前用户ID
        Long userid = SecurityUtils.getUserId();
        // 创建查询条件
        LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        // 根据ids查询
        lambdaQueryWrapper.in(ArchiveRecords::getId, Arrays.asList(ids));
        // 如果不是管理员,需要考虑权限过滤(可根据实际权限需求调整)
        if (userid != 1) {
            // 这里可以添加权限相关的过滤条件
        }
        List<ArchiveRecords> beanRecords = list(lambdaQueryWrapper);
        return beanRecords;
    }
    /**
     * 新增档案记录
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
@@ -149,8 +149,64 @@
    @Override
    public int updateDocumentMaterials(DocumentMaterials documentMaterials) {
        boolean result = false;
        try {
        boolean result = updateById(documentMaterials);
            //修改页号成功之后,要重新生成文件材料序号,页次
            //根据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);
            }
        } catch (Exception e) {
            System.out.println(e);
            throw new ErrorcodeExceptionextends(500, "同一个案卷内,不允许页码重复!");
        }
        if(result)
            return 1;
        else
@@ -180,9 +236,12 @@
    public int updateByPageNumber(Long pageNumber, String sizeType, Long fileNumber, int width, int height, int horizontalResolution, int verticalResolution, double fileSize, String url, String format, Long recordId) {
        //根据pageNumber拿到title,然后计算pageOrder
        LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>();
        lqw.eq(recordId!=null, DocumentMaterials::getRecordId, recordId);
        lqw.eq(pageNumber!=null, DocumentMaterials::getPageNumber, pageNumber);
        List<DocumentMaterials> records = list(lqw);
        //计算pageOrder
        Long pageOrder = 1L;
        if(pageNumber.equals(1))
            pageOrder = 1L;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java
@@ -104,14 +104,19 @@
    @PreAuthorize("@ss.hasPermi('system:records:export')")
    @Log(title = "档案记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArchiveRecords archiveRecords)
    public void export(HttpServletResponse response, ArchiveRecords archiveRecords, @RequestParam(value = "ids", required = false) Long[] ids)
    {
        List<ArchiveRecords> list = archiveRecordsService.selectArchiveRecordsList(archiveRecords);
        List<ArchiveRecords> list;
        System.out.println(ids);
        // 如果提供了ids参数,则根据ids导出指定记录
        if (ids != null && ids.length > 0) {
            list = archiveRecordsService.selectArchiveRecordsByIds(ids);
        } else {
            // 否则根据查询条件导出
            list = archiveRecordsService.selectArchiveRecordsList(archiveRecords);
        }
        ExcelUtil<ArchiveRecords> util = new ExcelUtil<ArchiveRecords>(ArchiveRecords.class);
        //util.showColumn();
        util.exportExcel(response, list, "档案记录数据");
       // response.getB
      //  response.
    }
    /**
@@ -237,7 +242,7 @@
        if(selectedSignatures!=null){
            for(int si: selectedSignatures)
            {
                arrLis.add(sig[si-1]);
                arrLis.add(sig[si]);
            }
        }
        //注选择
@@ -249,7 +254,7 @@
        List<String> arrAn = new ArrayList<>();
        if(selectedAnnotations!=null) {
            for (int ar : selectedAnnotations) {
                arrAn.add(ann[ar - 1]);
                arrAn.add(ann[ar]);
            }
        }
        List<DocumentMaterialsFileList> arsi = new ArrayList<>();
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -195,7 +195,9 @@
         <set>
             <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
             <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
             <if test="email != null ">email = #{email},</if>
            <if test="userName != null and userName != ''">user_name = #{userName},</if>
            <if test="email != null ">email = #{email},</if>
             <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
             <if test="sex != null and sex != ''">sex = #{sex},</if>
             <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>