| | |
| | | import com.ruoyi.common.utils.QueryWrappers; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.framework.exception.ErrorException; |
| | | import com.ruoyi.system.mapper.UserMapper; |
| | | import com.ruoyi.manage.util.DocumentPreviewUtils; |
| | | |
| | | |
| | | import com.ruoyi.manage.mapper.*; |
| | |
| | | manageRecordAudit.setReason(manageDocumentAlter.getAlterNote()); |
| | | manageRecordAudit.setAlterUser(SecurityUtils.getUserId().intValue()); |
| | | manageRecordAudit.setMethod("修订"); |
| | | manageRecordAudit.setCreateTime(LocalDate.now()); |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getFile())) { |
| | | String urlString; |
| | | String pathName; |
| | |
| | | return 0; |
| | | } |
| | | } |
| | | return manageDocumentAlterMapper.updateById(manageDocumentAlter); |
| | | int result = manageDocumentAlterMapper.updateById(manageDocumentAlter); |
| | | // 变更内容修改后同步到自动生成的修订记录,避免两个页面内容对不上 |
| | | ManageRecordAudit linkedAudit = findLinkedAudit(manageDocumentAlter1); |
| | | if (linkedAudit != null) { |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterBeforeCode())) { |
| | | linkedAudit.setDocumentCode(manageDocumentAlter.getAlterBeforeCode()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterBeforeName())) { |
| | | linkedAudit.setDocumentName(manageDocumentAlter.getAlterBeforeName()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterBeforeVersion())) { |
| | | linkedAudit.setBeforeVersion(manageDocumentAlter.getAlterBeforeVersion()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterAfterVersion())) { |
| | | linkedAudit.setAfterVersion(manageDocumentAlter.getAlterAfterVersion()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterNote())) { |
| | | linkedAudit.setReason(manageDocumentAlter.getAlterNote()); |
| | | } |
| | | if (ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterAfterUrl())) { |
| | | linkedAudit.setAfterUrl(manageDocumentAlter.getAlterAfterUrl()); |
| | | } |
| | | manageRecordAuditMapper.updateById(linkedAudit); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | // 按变更前信息定位自动生成的那条修订记录 |
| | | private ManageRecordAudit findLinkedAudit(ManageDocumentAlter manageDocumentAlter) { |
| | | return manageRecordAuditMapper.selectOne(Wrappers.<ManageRecordAudit>lambdaQuery() |
| | | .eq(ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterBeforeCode()), ManageRecordAudit::getDocumentCode, manageDocumentAlter.getAlterBeforeCode()) |
| | | .eq(ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterBeforeName()), ManageRecordAudit::getDocumentName, manageDocumentAlter.getAlterBeforeName()) |
| | | .eq(ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterBeforeVersion()), ManageRecordAudit::getBeforeVersion, manageDocumentAlter.getAlterBeforeVersion()) |
| | | .eq(ObjectUtils.isNotEmpty(manageDocumentAlter.getAlterAfterVersion()), ManageRecordAudit::getAfterVersion, manageDocumentAlter.getAlterAfterVersion()) |
| | | .eq(ObjectUtils.isNotEmpty(manageDocumentAlter.getCreateUser()), ManageRecordAudit::getAlterUser, manageDocumentAlter.getCreateUser()) |
| | | .eq(ManageRecordAudit::getMethod, "修订") |
| | | .orderByDesc(ManageRecordAudit::getId) |
| | | .last("limit 1")); |
| | | } |
| | | |
| | | @Override |
| | |
| | | manageRecordAudit.setDocumentName(manageDocumentCancel.getName()); |
| | | manageRecordAudit.setAlterThing("作废"); |
| | | manageRecordAudit.setMethod("作废"); |
| | | manageRecordAudit.setAlterUser(oldManageDocumentAlter.getCreateUser()); |
| | | manageRecordAudit.setCreateTime(LocalDate.now()); |
| | | manageRecordAuditMapper.insert(manageRecordAudit); |
| | | }else { |
| | | //如果是存档不可用,那就将文件清单的状态改为无效 |
| | |
| | | manageRecordCheck.setCheckState(manageDocumentAlter.getState()); |
| | | manageRecordCheck.setRemark(manageDocumentAlter.getAlterNote()); |
| | | manageRecordCheckMapper.insert(manageRecordCheck); |
| | | // 审核通过后回写批准人,文件修订申请审批记录里能直接看到审批结果 |
| | | ManageRecordAudit linkedAudit = findLinkedAudit(oldManageDocumentAlter); |
| | | if (linkedAudit != null |
| | | && "通过".equals(manageDocumentAlter.getState()) |
| | | && linkedAudit.getRatifyUser() == null |
| | | && oldManageDocumentAlter.getCheckUser() != null) { |
| | | linkedAudit.setRatifyUser(oldManageDocumentAlter.getCheckUser()); |
| | | manageRecordAuditMapper.updateById(linkedAudit); |
| | | } |
| | | return manageDocumentAlterMapper.updateById(manageDocumentAlter); |
| | | } |
| | | |
| | | @Override |
| | | public void checkManageDocumentAlterPdf(Long id, HttpServletResponse response) throws Exception { |
| | | ManageDocumentAlter manageDocumentAlter = manageDocumentAlterMapper.selectById(id); |
| | | File file = new File(wordUrl + "/" + manageDocumentAlter.getAlterAfterUrl()); |
| | | FileInputStream fileInputStream = new FileInputStream(file); |
| | | response.setContentType("application/pdf"); |
| | | response.setCharacterEncoding("UTF-8"); |
| | | response.setHeader("Content-disposition", "inline;filename=" + file.getName()); |
| | | response.setContentLength((int)file.length()); |
| | | OutputStream os = response.getOutputStream(); |
| | | // 将文件内容写入输出流 |
| | | byte[] buffer = new byte[4096]; |
| | | int bytesRead; |
| | | while ((bytesRead = fileInputStream.read(buffer)) != -1) { |
| | | os.write(buffer, 0, bytesRead); |
| | | if (manageDocumentAlter == null || ObjectUtils.isEmpty(manageDocumentAlter.getAlterAfterUrl())) { |
| | | throw new ErrorException("文件未上传"); |
| | | } |
| | | os.flush(); |
| | | os.close(); |
| | | // PDF 直接输出,Word/图片在线转 PDF,供前端预览盖章 |
| | | DocumentPreviewUtils.writeAsPdf(new File(wordUrl + "/" + manageDocumentAlter.getAlterAfterUrl()), response); |
| | | } |
| | | |
| | | @Override |