吴羡
2026-10-24 3d397976d08f0359b8cfeb4e4f22403ae5d0c04f
cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java
@@ -6,11 +6,13 @@
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>
@@ -96,14 +98,66 @@
    DeviceExaminePlanDto getOrCreatePlanByYear(String planYear);
    /**
     * 设备档案变更后,把设备同步到对应年份的设备核查计划明细(仅当已进入提醒期/已过期时生成)
     * 设备档案变更后,立即把设备登记到下次核查日期所在年份的设备核查计划明细
     * @param device 设备
     */
    void syncDeviceExamineDetail(Device device);
    /**
     * 核查记录复核通过后,滚动设备档案的最近/下次核查日期
     * 核查记录复核通过后,滚动设备档案的最近/下次核查日期,并登记下一轮计划
     * @param planDetailsId 计划明细id
     */
    void updateDeviceExamineDate(Integer planDetailsId);
    /**
     * 为指定设备找一条可录入核查记录的计划明细,没有则新增本轮明细
     * @param deviceId 设备id
     * @param checkTime 核查月份(yyyy-MM),决定明细所属的计划年份
     * @return 计划明细
     */
    DeviceExaminePlanDetails resolveExaminePlanDetail(Integer deviceId, String checkTime);
    /**
     * 查找指定设备可复用的核查记录计划明细(只查询,不新增计划或明细)
     * @param deviceId 设备id
     * @param checkTime 核查月份(yyyy-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);
}