From 8ad863082097ffdcab4a8e7f426d344a1fe6f892 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 00:27:02 +0800
Subject: [PATCH] 修复人员管理接口校验与导出,完善设备保养计划与文件受控功能
---
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java | 71 ++++++++++++++++++++++++++++-------
1 files changed, 56 insertions(+), 15 deletions(-)
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java
index 6576d4b..f0b243e 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java
@@ -13,7 +13,9 @@
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.*;
@@ -97,6 +99,7 @@
manageRecordAudit.setReason(manageDocumentAlter.getAlterNote());
manageRecordAudit.setAlterUser(SecurityUtils.getUserId().intValue());
manageRecordAudit.setMethod("淇");
+ manageRecordAudit.setCreateTime(LocalDate.now());
if (ObjectUtils.isNotEmpty(manageDocumentAlter.getFile())) {
String urlString;
String pathName;
@@ -154,7 +157,44 @@
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
@@ -215,6 +255,8 @@
manageRecordAudit.setDocumentName(manageDocumentCancel.getName());
manageRecordAudit.setAlterThing("浣滃簾");
manageRecordAudit.setMethod("浣滃簾");
+ manageRecordAudit.setAlterUser(oldManageDocumentAlter.getCreateUser());
+ manageRecordAudit.setCreateTime(LocalDate.now());
manageRecordAuditMapper.insert(manageRecordAudit);
}else {
//濡傛灉鏄瓨妗d笉鍙敤,閭e氨灏嗘枃浠舵竻鍗曠殑鐘舵�佹敼涓烘棤鏁�
@@ -233,27 +275,26 @@
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 鐩存帴杈撳嚭锛學ord/鍥剧墖鍦ㄧ嚎杞� PDF锛屼緵鍓嶇棰勮鐩栫珷
+ DocumentPreviewUtils.writeAsPdf(new File(wordUrl + "/" + manageDocumentAlter.getAlterAfterUrl()), response);
}
@Override
--
Gitblit v1.9.3