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/ManageDocumentCancelServiceImpl.java |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java
index a97290a..3847b0b 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java
@@ -5,20 +5,25 @@
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.system.mapper.UserMapper;
 
 
 import com.ruoyi.manage.mapper.ManageDocumentCancelMapper;
 import com.ruoyi.manage.mapper.ManageDocumentListMapper;
 import com.ruoyi.manage.mapper.ManageRecordAuditMapper;
+import com.ruoyi.manage.mapper.ManageRecordCancelMapper;
 import com.ruoyi.manage.mapper.ManageRecordCheckMapper;
 import com.ruoyi.manage.pojo.ManageDocumentCancel;
 import com.ruoyi.manage.pojo.ManageDocumentList;
 import com.ruoyi.manage.pojo.ManageRecordAudit;
+import com.ruoyi.manage.pojo.ManageRecordCancel;
 import com.ruoyi.manage.pojo.ManageRecordCheck;
 import com.ruoyi.manage.service.ManageDocumentCancelService;
 
@@ -29,6 +34,7 @@
 import jakarta.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.time.LocalDate;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -54,7 +60,8 @@
     @Resource
     private ManageRecordAuditMapper manageRecordAuditMapper;
 
-
+    @Resource
+    private ManageRecordCancelMapper manageRecordCancelMapper;
 
     @Resource
     private ManageDocumentListMapper manageDocumentListMapper;
@@ -76,6 +83,8 @@
         manageRecordAudit.setDocumentName(manageDocumentCancel.getName());
         manageRecordAudit.setAlterThing("浣滃簾");
         manageRecordAudit.setMethod("浣滃簾");
+        manageRecordAudit.setAlterUser(SecurityUtils.getUserId().intValue());
+        manageRecordAudit.setCreateTime(LocalDate.now());
         manageRecordAuditMapper.insert(manageRecordAudit);
         return manageDocumentCancelMapper.insert(manageDocumentCancel);
     }
@@ -83,9 +92,14 @@
     @Override
     public int checkManageDocumentCancel(Integer id, String state) {
         ManageDocumentCancel manageDocumentCancel = manageDocumentCancelMapper.selectById(id);
-        if (state.equals("閫氳繃")){
+        if (manageDocumentCancel == null) {
+            throw new ErrorException("鐢宠璁板綍涓嶅瓨鍦�");
+        }
+        if ("閫氳繃".equals(state)){
             //鍒犻櫎鏂囦欢娓呭崟瀵瑰簲鏁版嵁
             manageDocumentListMapper.delete(Wrappers.<ManageDocumentList>lambdaQuery().eq(ManageDocumentList::getDocumentCode,manageDocumentCancel.getDocumentCode()));
+            // 浣滃簾閫氳繃鍚庤嚜鍔ㄧ敓鎴愰攢姣佸彴璐︼紝淇濊瘉鈥滄枃浠朵綔搴熺敵璇封�濆拰鈥滀綔搴熸枃浠堕攢姣佽褰曗�濈殑鏁版嵁鑱斿姩
+            createRecordCancelIfAbsent(manageDocumentCancel);
         }
         manageDocumentCancel.setState(state);
         /*鏂板8.4鐨勬枃浠跺鎵硅褰�*/
@@ -143,4 +157,24 @@
     public int doManageDocumentCancel(ManageDocumentCancel manageDocumentCancel) {
         return manageDocumentCancelMapper.updateById(manageDocumentCancel);
     }
+
+    // 浣滃簾鐢宠閫氳繃鍚庯紝鍦ㄢ�滀綔搴熸枃浠堕攢姣佽褰曗�濈敓鎴愪竴鏉″緟琛ュ叏鐨勫彴璐﹁褰�
+    private void createRecordCancelIfAbsent(ManageDocumentCancel manageDocumentCancel) {
+        ManageRecordCancel existing = manageRecordCancelMapper.selectOne(Wrappers.<ManageRecordCancel>lambdaQuery()
+                .eq(ObjectUtils.isNotEmpty(manageDocumentCancel.getDocumentCode()), ManageRecordCancel::getDocumentCode, manageDocumentCancel.getDocumentCode())
+                .eq(ObjectUtils.isNotEmpty(manageDocumentCancel.getName()), ManageRecordCancel::getDocumentName, manageDocumentCancel.getName())
+                .orderByDesc(ManageRecordCancel::getId)
+                .last("limit 1"));
+        if (existing != null) {
+            return;
+        }
+        ManageRecordCancel manageRecordCancel = new ManageRecordCancel();
+        manageRecordCancel.setDocumentCode(manageDocumentCancel.getDocumentCode());
+        manageRecordCancel.setDocumentName(manageDocumentCancel.getName());
+        manageRecordCancel.setReason(ObjectUtils.isNotEmpty(manageDocumentCancel.getCancelNote())
+                ? manageDocumentCancel.getCancelNote() : "鏂囦欢浣滃簾");
+        manageRecordCancel.setRemark("鐢辨枃浠朵綔搴熺敵璇疯嚜鍔ㄧ敓鎴愶紝璇疯ˉ鍏呴攢姣佹暟閲忓悗鎵瑰噯");
+        manageRecordCancel.setCreateUser(manageDocumentCancel.getCreateUser());
+        manageRecordCancelMapper.insert(manageRecordCancel);
+    }
 }

--
Gitblit v1.9.3