61f3ca9c5ce1c3dbbcca91af9c3fffcc2d514636..ee98daf76231cb373d20803dfa1a309fefd82644
7 天以前 fei
修改了对应代码
ee98da 对比 | 目录
7 天以前 fei
修改了对应代码
9f5127 对比 | 目录
6个文件已修改
134 ■■■■ 已修改文件
archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/mapper/DocumentMaterialsMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/IDocumentMaterialsService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java
@@ -114,9 +114,27 @@
    @Excel(name = "备注")
    private String remarks;
    @TableField(exist = false)
    private String categoryNumberStart;
    public String getCategoryNumberStart() {
        return categoryNumberStart;
    }
    public void setCategoryNumberStart(String categoryNumberStart) {
        this.categoryNumberStart = categoryNumberStart;
    }
    public String getCategoryNumberEnd() {
        return categoryNumberEnd;
    }
    public void setCategoryNumberEnd(String categoryNumberEnd) {
        this.categoryNumberEnd = categoryNumberEnd;
    }
    @TableField(exist = false)
    private String categoryNumberEnd;
    /** 历史相关发文号 */
    @Excel(name = "历史相关发文号")
    private String historicalReferenceNumber;
archiveManager/src/main/java/com/ruoyi/mapper/DocumentMaterialsMapper.java
@@ -66,4 +66,9 @@
    @Select("select if(count(*) < max(page_number), false, true) as res from document_materials where record_id=#{recordId}")
    boolean isPageNumberLegal(@Param("recordId") int recordId);
    //拿到除其它材料之外的全部数据的个数
    @Select("select count(*) FROM document_materials where file_style!='其他材料' and record_id=#{recordId}")
    int getCount(@Param("recordId") int recordId);
}
archiveManager/src/main/java/com/ruoyi/service/IDocumentMaterialsService.java
@@ -91,4 +91,7 @@
    //判断pageNumber是否连续
    public  boolean isPageNumberIslegal(Integer recordId);
    //拿到对应的案卷材料个数
    public int getFileCount(Integer recordId);
}
archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
@@ -3,6 +3,8 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -47,29 +49,72 @@
    private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords, Long userId){
        LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
        // 根据开始和结束的categoryNumber生成连续的recordId
        String categoryNumberStart = archiveRecords.getCategoryNumberStart();
        String categoryNumberEnd = archiveRecords.getCategoryNumberEnd();
        if (!StringUtils.isEmpty(categoryNumberStart) && !StringUtils.isEmpty(categoryNumberEnd)) {
            try {
                // 解析开始和结束的编号,提取前缀和数字部分
                // 例如:B1.3-999-2024-1 -> 前缀: B1.3-999-2024-, 数字: 1
                int lastDashIndexStart = categoryNumberStart.lastIndexOf('-');
                int lastDashIndexEnd = categoryNumberEnd.lastIndexOf('-');
                if (lastDashIndexStart > 0 && lastDashIndexEnd > 0) {
                    String prefixStart = categoryNumberStart.substring(0, lastDashIndexStart + 1);
                    String prefixEnd = categoryNumberEnd.substring(0, lastDashIndexEnd + 1);
                    // 确保前缀相同,才生成连续编号
                    if (prefixStart.equals(prefixEnd)) {
                        int startNum = Integer.parseInt(categoryNumberStart.substring(lastDashIndexStart + 1));
                        int endNum = Integer.parseInt(categoryNumberEnd.substring(lastDashIndexEnd + 1));
                        // 生成连续的recordId列表,将数字格式化为5位(如00001, 00101)
                        List<String> recordIds = new ArrayList<>();
                        for (int i = startNum; i <= endNum; i++) {
                            // 使用String.format将数字格式化为5位,不足前面补0
                            String formattedNumber = String.format("%05d", i);
                            recordIds.add(prefixStart + formattedNumber);
                        }
                        // 添加到查询条件中
                        lqw.in(ArchiveRecords::getRecordId, recordIds);
                    }
                }
            } catch (Exception e) {
                // 如果解析失败,忽略此条件
                e.printStackTrace();
            }
        }
        System.out.println(archiveRecords.getIds());
        lqw.like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId())
                .like(!StringUtils.isEmpty(archiveRecords.getInquiryNumber()), ArchiveRecords::getInquiryNumber, archiveRecords.getInquiryNumber())
                .like(!StringUtils.isEmpty(archiveRecords.getCaseTitle()), ArchiveRecords::getCaseTitle, archiveRecords.getCaseTitle())
                .like(!StringUtils.isEmpty(archiveRecords.getPublicAttribute()), ArchiveRecords::getPublicAttribute, archiveRecords.getPublicAttribute())
                .like(!StringUtils.isEmpty(archiveRecords.getPreparationUnit()), ArchiveRecords::getPreparationUnit, archiveRecords.getPreparationUnit())
                .like(!StringUtils.isEmpty(archiveRecords.getRetentionPeriod()), ArchiveRecords::getRetentionPeriod, archiveRecords.getRetentionPeriod())
                .like(!StringUtils.isEmpty(archiveRecords.getSecurityClassification()), ArchiveRecords::getSecurityClassification, archiveRecords.getSecurityClassification())
                .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
                .like(!StringUtils.isEmpty(archiveRecords.getConstructionUnit()), ArchiveRecords::getConstructionUnit, archiveRecords.getConstructionUnit())
                .like(!StringUtils.isEmpty(archiveRecords.getConstructionAddress()), ArchiveRecords::getConstructionAddress, archiveRecords.getConstructionAddress())
                .like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
                .like(!StringUtils.isEmpty(archiveRecords.getProjectNumber()), ArchiveRecords::getProjectNumber, archiveRecords.getProjectNumber())
                .like(!StringUtils.isEmpty(archiveRecords.getScanningCompany()), ArchiveRecords::getScanningCompany, archiveRecords.getScanningCompany())
                .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
                .like(!StringUtils.isEmpty(archiveRecords.getMicrofilmNumber()), ArchiveRecords::getMicrofilmNumber, archiveRecords.getMicrofilmNumber())
                .like(!StringUtils.isEmpty(archiveRecords.getHistoricalReferenceNumber()), ArchiveRecords::getHistoricalReferenceNumber, archiveRecords.getHistoricalReferenceNumber())
                .eq(!StringUtils.isEmpty(archiveRecords.getRecordStatus()), ArchiveRecords::getRecordStatus, archiveRecords.getRecordStatus())
                .like(!StringUtils.isEmpty(archiveRecords.getEveryProjectName()), ArchiveRecords::getEveryProjectName, archiveRecords.getEveryProjectName())
                .like(!StringUtils.isEmpty(archiveRecords.getRemarks()), ArchiveRecords::getRemarks, archiveRecords.getRemarks());
        // 如果没有使用连续编号条件,才使用普通的like条件
        if (StringUtils.isEmpty(categoryNumberStart) || StringUtils.isEmpty(categoryNumberEnd)) {
            lqw.like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId());
        }
        else {
                lqw.
            like(!StringUtils.isEmpty(archiveRecords.getInquiryNumber()), ArchiveRecords::getInquiryNumber, archiveRecords.getInquiryNumber())
                    .like(!StringUtils.isEmpty(archiveRecords.getCaseTitle()), ArchiveRecords::getCaseTitle, archiveRecords.getCaseTitle())
                    .like(!StringUtils.isEmpty(archiveRecords.getPublicAttribute()), ArchiveRecords::getPublicAttribute, archiveRecords.getPublicAttribute())
                    .like(!StringUtils.isEmpty(archiveRecords.getPreparationUnit()), ArchiveRecords::getPreparationUnit, archiveRecords.getPreparationUnit())
                    .like(!StringUtils.isEmpty(archiveRecords.getRetentionPeriod()), ArchiveRecords::getRetentionPeriod, archiveRecords.getRetentionPeriod())
                    .like(!StringUtils.isEmpty(archiveRecords.getSecurityClassification()), ArchiveRecords::getSecurityClassification, archiveRecords.getSecurityClassification())
                    .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
                    .like(!StringUtils.isEmpty(archiveRecords.getConstructionUnit()), ArchiveRecords::getConstructionUnit, archiveRecords.getConstructionUnit())
                    .like(!StringUtils.isEmpty(archiveRecords.getConstructionAddress()), ArchiveRecords::getConstructionAddress, archiveRecords.getConstructionAddress())
                    .like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
                    .like(!StringUtils.isEmpty(archiveRecords.getProjectNumber()), ArchiveRecords::getProjectNumber, archiveRecords.getProjectNumber())
                    .like(!StringUtils.isEmpty(archiveRecords.getScanningCompany()), ArchiveRecords::getScanningCompany, archiveRecords.getScanningCompany())
                    .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
                    .like(!StringUtils.isEmpty(archiveRecords.getMicrofilmNumber()), ArchiveRecords::getMicrofilmNumber, archiveRecords.getMicrofilmNumber())
                    .like(!StringUtils.isEmpty(archiveRecords.getHistoricalReferenceNumber()), ArchiveRecords::getHistoricalReferenceNumber, archiveRecords.getHistoricalReferenceNumber())
                    .eq(!StringUtils.isEmpty(archiveRecords.getRecordStatus()), ArchiveRecords::getRecordStatus, archiveRecords.getRecordStatus())
                    .like(!StringUtils.isEmpty(archiveRecords.getEveryProjectName()), ArchiveRecords::getEveryProjectName, archiveRecords.getEveryProjectName())
                    .like(!StringUtils.isEmpty(archiveRecords.getRemarks()), ArchiveRecords::getRemarks, archiveRecords.getRemarks());
        }
        if(archiveRecords.getIds()!=null)
                lqw.in(ArchiveRecords::getId,new ArrayList<>(Arrays.asList(archiveRecords.getIds())));
archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
@@ -329,4 +329,9 @@
    public boolean isPageNumberIslegal(Integer recordId) {
        return this.baseMapper.isPageNumberLegal(recordId);
    }
    @Override
    public int getFileCount(Integer recordId) {
        return this.baseMapper.getCount(recordId);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java
@@ -9,6 +9,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
@@ -73,7 +74,22 @@
    {
        boolean res = documentMaterialsService.isPageNumberIslegal(recordId);
        return AjaxResult.success(res);
        int cnt = documentMaterialsService.getFileCount(recordId);
        HashMap<String, Object> data = new HashMap<>();
        data.put("res",res);
        data.put("total",cnt);
        return AjaxResult.success(data);
    }
    /**
     * 拿到除了其它类型材料的个数
     */
    @PreAuthorize("@ss.hasPermi('system:materials:list')")
    @GetMapping("/getFileCount/{recordId}")
    public AjaxResult getFileCount(@PathVariable("recordId") Integer recordId)
    {
        int cnt = documentMaterialsService.getFileCount(recordId);
        return AjaxResult.success(cnt);
    }
    /**
     * 查询【文件材料综合信息】列表