package com.hw.dms.service;

import java.util.List;
import com.hw.dms.domain.DmsBillsInspectInstance;
import com.hw.dms.domain.DmsInspectInstanceDetail;
import com.hw.dms.domain.vo.DmsBillsInspectInstanceScanVo;
import org.springframework.transaction.annotation.Transactional;

/**
 * 巡检工单Service接口
 *
 * @author Open Platform
 * @date 2024-01-23
 */
public interface IDmsBillsInspectInstanceService
{
    /**
     * 查询巡检工单
     *
     * @param inspectInstanceId 巡检工单主键
     * @return 巡检工单
     */
    public DmsBillsInspectInstance selectDmsBillsInspectInstanceByInspectInstanceId(Long inspectInstanceId);

    /**
     * 查询巡检工单列表
     *
     * @param dmsBillsInspectInstance 巡检工单
     * @return 巡检工单集合
     */
    public List<DmsBillsInspectInstance> selectDmsBillsInspectInstanceList(DmsBillsInspectInstance dmsBillsInspectInstance);
    public List<DmsBillsInspectInstance> selectPoint();
    public List<DmsBillsInspectInstance> selectInspection();



    /**
     * 新增巡检工单
     *
     * @param dmsBillsInspectInstance 巡检工单
     * @return 结果
     */
    public int insertDmsBillsInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance);

    /**
     * 修改巡检工单
     *
     * @param dmsBillsInspectInstance 巡检工单
     * @return 结果
     */
    public int updateDmsBillsInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance);

    /**
     * 批量删除巡检工单
     *
     * @param inspectInstanceIds 需要删除的巡检工单主键集合
     * @return 结果
     */
    public int deleteDmsBillsInspectInstanceByInspectInstanceIds(Long[] inspectInstanceIds);

    /**
     * 删除巡检工单信息
     *
     * @param inspectInstanceId 巡检工单主键
     * @return 结果
     */
    public int deleteDmsBillsInspectInstanceByInspectInstanceId(Long inspectInstanceId);

    int insertDmsBillsInspectInstancePDA(DmsBillsInspectInstance dmsBillsInspectInstance);

    /**
     * 获取最新一条未完成的巡检工单
     *
     * @param dmsBillsInspectInstance
     * @return
     */
    public DmsBillsInspectInstance getNewestBillsInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance);

    /**
     * 扫描设备验证并获取巡检项目信息
     * @param dmsBillsInspectInstanceScanVo
     * @return
     */
    public DmsInspectInstanceDetail scanInspectInstanceDetail(DmsBillsInspectInstanceScanVo dmsBillsInspectInstanceScanVo);

    /**
     * 更新点巡检工单明细
     *
     * @param dmsInspectInstanceDetail 点巡检工单明细
     * @return 结果
     */
    public int updateDmsInspectInstanceDetail(DmsInspectInstanceDetail dmsInspectInstanceDetail);
}
