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业务层处理 @@ -184,6 +185,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,6 +195,8 @@ <set> <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if> <if test="nickName != null and nickName != ''">nick_name = #{nickName},</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>