package com.bonus.material.repair.mapper;

import com.bonus.material.devchange.domain.CsDeviceInfo;
import com.bonus.material.repair.domain.ToBeRepair;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RepairMapper {

    /**
     * 获取待修工具和装备列表
     * @param bean
     * @return
     */
    List<ToBeRepair> selectToBeRepairList(ToBeRepair bean);

    /**
     * 获取申请编号
     * @param year
     * @param month
     * @param type
     * @return
     */
    int getMonthMaxOrderByDate(@Param("year") String year, @Param("month") String month, @Param("type") Integer type);

    /**
     * 新增数据
     * @param deviceInfo
     * @return
     */
    int addDeviceChange(CsDeviceInfo deviceInfo);

    /**
     * 新增设备详情
     * @param toBeRepair
     * @return
     */
    int addRepairData(ToBeRepair toBeRepair);

    /**
     * 获取维修列表
     * @param bean
     * @return
     */
    List<ToBeRepair> getRepairList(ToBeRepair bean);

    /**
     * 删除设备变更信息
     * @param bean
     * @return
     */
    int deleteChangeInfo(ToBeRepair bean);

    /**
     * 删除设备详情信息
     * @param bean
     * @return
     */
    int deleteChangeDetails(ToBeRepair bean);

    /**
     * 获取设备详情列表
     * @param bean
     * @return
     */
    List<ToBeRepair> getRepairDetailsList(ToBeRepair bean);

    /**
     * 审核数据
     * @param toBeRepair
     * @return
     */
    int auditData(ToBeRepair toBeRepair);

    /**
     * 获取详情列表
     * @param toBeRepair
     * @return
     */
    List<ToBeRepair> getDetailsList(ToBeRepair toBeRepair);

    /**
     * 根据设备类型和编号查询
     * @param toBeRepair
     * @return
     */
    ToBeRepair selectByTypeIdAndCode(ToBeRepair toBeRepair);

    /**
     * 新增设备生命周期数据
     * @param bean2
     * @return
     */
    int addToolLifecycleByRepair(ToBeRepair bean2);

    /**
     * 更新台账信息
     * @param bean2
     * @return
     */
    int updateToolLifecycle(ToBeRepair bean2);

    /**
     * 更新设备信息
     * @param toBeRepair
     * @return
     */
    int updateMaDevInfo(ToBeRepair toBeRepair);

    /**
     * 删除设备变更信息
     * @param bean
     * @return
     */
    int deleteChangeDetailsByChangeId(ToBeRepair bean);

    /**
     * 获取设备信息
     * @param toBeRepair
     * @return
     */
    ToBeRepair selectMaDevInfoByTypeIdAndCode(ToBeRepair toBeRepair);

    /**
     * 修改设备信息
     * @param bean
     * @return
     */
    int updateRepairTask(ToBeRepair bean);

    /**
     * 获取设备主表信息
     * @param toBeRepair
     * @return
     */
    ToBeRepair selectInfoId(ToBeRepair toBeRepair);

    /**
     * 审核主表
     * @param info
     * @return
     */
    int auditInfoById(ToBeRepair info);

    /**
     * 物理删除设备详情信息
     * @param bean
     * @return
     */
    int physicalDeletionDetailsByChangeId(ToBeRepair bean);

    /**
     * 更新任务状态
     * @param bean
     * @return
     */
    int updateStatusById(ToBeRepair bean);

    /**
     * 更新设备状态
     * @param detail
     * @return
     */
    int updateDevStatus(ToBeRepair detail);

    /**
     * 获取设备详情信息
     * @param detail
     * @return
     */
    int updateToolStatus(ToBeRepair detail);

    /**
     * 获取设备详情信息
     * @param detail
     * @return
     */
    int updateToolNum(ToBeRepair detail);
}
