吴羡
2026-10-24 3d397976d08f0359b8cfeb4e4f22403ae5d0c04f
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);
    /**
     * 设备档案变更后,立即把设备登记到下次核查日期所在年份的设备核查计划明细
     * @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);
}