package com.bonus.material.clz.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.clz.domain.TeamVo;
import com.bonus.material.clz.domain.machine.MaterialUseStorageInfo;
import com.bonus.material.clz.domain.vo.MaterialRetainedTeamTotalVo;
import com.bonus.material.clz.domain.vo.MaterialRetainedTeamVo;
import com.bonus.material.clz.domain.vo.MaterialTotalMentInfo;
import com.bonus.material.ma.domain.Machine;
import com.bonus.material.clz.domain.machine.MaterialStorageInfo;
import com.bonus.material.clz.domain.vo.MaterialRetainedEquipmentInfo;

import java.util.List;

/**
 * @Author ma_sh
 * @create 2025/6/25 13:27
 */
public interface MaterialMachineService {

    /**
     * 获取机具追溯管理数据
     * @param machine
     * @return
     */
    List<Machine> getMachineInfo(Machine machine);

    /**
     * 保有设备总量查询
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getRetainedEquipmentList(MaterialRetainedEquipmentInfo bean);

    /**
     * 查询在库机具设备详情
     * @param bean
     * @return
     */
    List<MaterialStorageInfo> getMaCodeList(MaterialStorageInfo bean);

    /**
     * 班组库存查询
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getTeamUseNumList(MaterialRetainedEquipmentInfo bean);

    /**
     * 班组预警详情查询
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getTeamWarnDetailsList(MaterialRetainedEquipmentInfo bean);

    /**
     * 工器具台账--APP
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getToolsLedgerList(MaterialRetainedEquipmentInfo bean);

    /**
     * 工器具预警设备数量查询
     * @param bean
     * @return
     */
    MaterialRetainedEquipmentInfo getToolsLedgerDetailsList(MaterialRetainedEquipmentInfo bean);

    /**
     * 工器具台账详情查询
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getToolsDetailsList(MaterialRetainedEquipmentInfo bean);

    /**
     * 查询在用设备详情
     * @param bean
     * @return
     */
    List<MaterialUseStorageInfo> getUserRecords(MaterialUseStorageInfo bean);

    /**
     * 安全工器具预警页面查询
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getSafeDetailsList(MaterialRetainedEquipmentInfo bean);

    /**
     * 后台班组在用库存查询
     * @param bean
     * @return
     */
    List<MaterialRetainedTeamTotalVo> getTeamNumList(MaterialRetainedEquipmentInfo bean);

    /**
     * 后台班组在用库存查询二级页面后台班组在用库存查询二级页面
     * @param bean
     * @return
     */
    List<MaterialRetainedTeamVo> getTeamNumSecondList(MaterialRetainedEquipmentInfo bean);

    /**
     * 后台班组在用库存查询三级页面
     * @param bean
     * @return
     */
    List<MaterialRetainedEquipmentInfo> getTeamNumThirdList(MaterialRetainedEquipmentInfo bean);

    /**
     * 安全工器具预警数量查询
     * @param bean
     * @return
     */
    MaterialRetainedEquipmentInfo getSafeNumList(MaterialRetainedEquipmentInfo bean);

    /**
     * 安全工器具预警页面查询获取协议id
     * @param bean
     * @return
     */
    AjaxResult getAgreementId(MaterialRetainedEquipmentInfo bean);

    /**
     * 工器具台账查询
     * @param bean
     * @return
     */
    MaterialTotalMentInfo getTotalList(MaterialRetainedEquipmentInfo bean);

    /**
     * 班组进出场记录
     * @param bean
     * @return
     */
    List<TeamVo> getTeamInOrOutInfo(TeamVo bean);
}
