package com.bonus.material.scrap.mapper;

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

import java.math.BigDecimal;
import java.util.List;

@Mapper
public interface ScrapMapper {

    /**
     * 获取申请编号
     * @param year 年
     * @param month 月
     * @param type 任务类型
     */
    int getMonthMaxOrderByDate(@Param("year") String year, @Param("month") String month, @Param("type") Integer type);

    /**
     * 审批明细数据
     */
    int auditData(ToBeScrap toBeScrap);

    /**
     * 查询待审批条数
     */
    int selectCountByChangeId(@Param("changeId") Long changeId);

    /**
     * 删除任务
     */
    int deleteChangeInfo(@Param("id") Long id);

    /**
     * 修改任务状态
     */
    int updateChangeStatus(@Param("changeId") Long changeId, @Param("reviewStatus") String reviewStatus);

    /**
     * 新增工具生命周期数据
     */
    int addToolLifecycleByRepair(ToBeScrap beScrap);

    /**
     * 更新装备信息
     */
    int updateMaDevInfo(ToBeScrap toBeScrap);

    /**
     * 更新工具台账
     */
    int updateToolLifecycle(ToBeScrap toBeScrap);

    /**
     * 新增退役任务
     */
    int addDeviceChangeApply(CsDeviceInfo deviceInfo);

    /**
     * 新增退役任务明细
     */
    int addScrapChangeApplyDetails(ToBeScrap bean);

    /**
     * 获取在库的装备、工具列表
     */
    List<ToBeScrap> getInStockList(ToBeScrap bean);

    /**
     * 获取报废申请列表
     */
    List<ToBeScrap> getScrapApplyList(ToBeScrap bean);

    /**
     * 获取报废详情明细
     */
    List<ToBeScrap> getScrapDetailsList(ToBeScrap bean);

    /**
     * 根据设备类型和编号查询
     */
    ToBeScrap selectByTypeIdAndCode(ToBeScrap toBeScrap);

    List<ToBeScrap> getDetail(String id);

    BigDecimal getDetailsNum(ToBeScrap toBeScrap);
}
