From 3d397976d08f0359b8cfeb4e4f22403ae5d0c04f Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 24 十月 2026 20:44:14 +0800
Subject: [PATCH] feat(device): 设备核查计划附件与设备使用记录联动改造

---
 cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java
index a468993..aa4c52d 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java
@@ -5,11 +5,14 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.device.dto.DeviceExaminePlanDetailsDto;
 import com.ruoyi.device.dto.DeviceExaminePlanDto;
+import com.ruoyi.device.pojo.Device;
+import com.ruoyi.device.pojo.DeviceExamineAttachment;
 import com.ruoyi.device.pojo.DeviceExaminePlan;
 import com.ruoyi.device.pojo.DeviceExaminePlanDetails;
 import org.springframework.web.multipart.MultipartFile;
 
 import jakarta.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * <p>
@@ -86,4 +89,75 @@
      * @return
      */
     DeviceExaminePlanDto getDeviceExaminePlan(Integer planId);
+
+    /**
+     * 鎸夊勾浠芥煡璇㈣澶囨牳鏌ヨ鍒掞紙涓嶅瓨鍦ㄥ垯鑷姩鍒涘缓锛夛紝骞惰嚜鍔ㄨˉ鍏ㄥ凡鍒扮偣鐨勮澶囨槑缁�
+     * @param planYear 骞翠唤
+     * @return 璁″垝涓昏〃淇℃伅
+     */
+    DeviceExaminePlanDto getOrCreatePlanByYear(String planYear);
+
+    /**
+     * 璁惧妗f鍙樻洿鍚庯紝绔嬪嵆鎶婅澶囩櫥璁板埌涓嬫鏍告煡鏃ユ湡鎵�鍦ㄥ勾浠界殑璁惧鏍告煡璁″垝鏄庣粏
+     * @param device 璁惧
+     */
+    void syncDeviceExamineDetail(Device device);
+
+    /**
+     * 鏍告煡璁板綍澶嶆牳閫氳繃鍚庯紝婊氬姩璁惧妗f鐨勬渶杩�/涓嬫鏍告煡鏃ユ湡锛屽苟鐧昏涓嬩竴杞鍒�
+     * @param planDetailsId 璁″垝鏄庣粏id
+     */
+    void updateDeviceExamineDate(Integer planDetailsId);
+
+    /**
+     * 涓烘寚瀹氳澶囨壘涓�鏉″彲褰曞叆鏍告煡璁板綍鐨勮鍒掓槑缁嗭紝娌℃湁鍒欐柊澧炴湰杞槑缁�
+     * @param deviceId 璁惧id
+     * @param checkTime 鏍告煡鏈堜唤锛坹yyy-MM锛夛紝鍐冲畾鏄庣粏鎵�灞炵殑璁″垝骞翠唤
+     * @return 璁″垝鏄庣粏
+     */
+    DeviceExaminePlanDetails resolveExaminePlanDetail(Integer deviceId, String checkTime);
+
+    /**
+     * 鏌ユ壘鎸囧畾璁惧鍙鐢ㄧ殑鏍告煡璁板綍璁″垝鏄庣粏锛堝彧鏌ヨ锛屼笉鏂板璁″垝鎴栨槑缁嗭級
+     * @param deviceId 璁惧id
+     * @param checkTime 鏍告煡鏈堜唤锛坹yyy-MM锛�
+     * @return 鍙鐢ㄧ殑璁″垝鏄庣粏锛屾病鏈夋椂杩斿洖 null
+     */
+    DeviceExaminePlanDetails findExaminePlanDetail(Integer deviceId, String checkTime);
+
+    /**
+     * 淇敼璁″垝鏄庣粏锛堟牳鏌ユ湀浠借法骞存椂褰掑埌瀵瑰簲骞翠唤鐨勮鍒掞級
+     * @param detail 璁″垝鏄庣粏
+     * @return 鏄惁淇敼鎴愬姛
+     */
+    boolean updateExaminePlanDetail(DeviceExaminePlanDetails detail);
+
+    /**
+     * 鍒犻櫎璁″垝鏄庣粏锛堝凡鏈夋牳鏌ヨ褰曠殑涓嶅厑璁稿垹闄わ級
+     * @param planDetailsId 璁″垝鏄庣粏id
+     * @return 鏄惁鍒犻櫎鎴愬姛
+     */
+    boolean removeExaminePlanDetail(Integer planDetailsId);
+
+    /**
+     * 鏌ヨ鏍告煡璁板綍鐨勯檮浠跺垪琛�
+     * @param planDetailsId 璁″垝鏄庣粏id
+     * @return 闄勪欢鍒楄〃
+     */
+    List<DeviceExamineAttachment> selectAttachments(Integer planDetailsId);
+
+    /**
+     * 涓婁紶鏍告煡璁板綍鐨勯檮浠讹紙鏀寔浠绘剰鏍煎紡锛屽彲澶氫釜锛�
+     * @param planDetailsId 璁″垝鏄庣粏id
+     * @param file 鏂囦欢
+     * @return 闄勪欢淇℃伅
+     */
+    DeviceExamineAttachment uploadAttachment(Integer planDetailsId, MultipartFile file);
+
+    /**
+     * 鍒犻櫎鏍告煡璁板綍鐨勯檮浠�
+     * @param id 闄勪欢id
+     * @return 鏄惁鍒犻櫎鎴愬姛
+     */
+    boolean deleteAttachment(Long id);
 }

--
Gitblit v1.9.3