package com.bonus.material.common.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.back.domain.BackApplyInfo;
import com.bonus.material.basic.domain.BmProject;
import com.bonus.material.basic.domain.BmUnit;
import com.bonus.material.common.domain.dto.SelectDto;

/**
 * @author 10488
 * 统一下拉选
 */
public interface SelectService {

    /**
     * 往来单位
     * @param bmUnit
     * @return AjaxResult
     * @description 往来单位
     * @author cwchen
     * @date 2023/12/20 14:20
     */
    AjaxResult getUnitList(BmUnit bmUnit);

    /**
     * 工程
     * @param bmProject
     * @return AjaxResult
     * @description 工程
     * @author cwchen
     * @date 2023/12/20 15:04
     */
    AjaxResult getProjectList(BmProject bmProject);

    /**
     * 机具类型
     * @param dto
     * @return AjaxResult
     * @description 机具类型
     * @author cwchen
     * @date 2023/12/20 16:02
     */
    AjaxResult getMaTypeData(SelectDto dto);

    /**
     * 数据字典下拉选
     * @param dto
     * @return AjaxResult
     * @description 数据字典下拉选
     * @author cwchen
     * @date 2023/12/20 16:22
     */
//    AjaxResult getDictByPidCbx(SelectDto dto);

    /**
     * 单位树/归属部门/所属上级
     * @param dto
     * @return AjaxResult
     * @description 单位树/归属部门/所属上级
     * @author cwchen
     * @date 2023/12/20 16:36
     */
//    AjaxResult getDeptTree(SelectDto dto);

    /**
     * 岗位下拉树
     * @param dto
     * @return AjaxResult
     * @description 岗位下拉树
     * @author cwchen
     * @date 2023/12/20 17:45
     */
//    AjaxResult getPostCbx(SelectDto dto);

    /**
     * 角色下拉选
     * @param dto
     * @return AjaxResult
     * @description 角色下拉选
     * @author cwchen
     * @date 2023/12/20 17:56
     */
//    AjaxResult getRoleCbx(SelectDto dto);

    /**
     * 单位类型下拉选
     * @param dto
     * @return AjaxResult
     * @description 单位类型下拉选
     * @author cwchen
     * @date 2023/12/20 18:00
     */
//    AjaxResult getUnitTypeCbx(SelectDto dto);

    /**
     * 设备类型树
     * @param dto
     * @return AjaxResult
     * @description 设备类型树
     * @author cwchen
     * @date 2023/12/20 18:14
     */
    AjaxResult getDeviceTypeTree(SelectDto dto);

    /**
     * 资产属性
     * @param dto
     * @return AjaxResult
     * @description 资产属性
     * @author cwchen
     * @date 2023/12/20 19:47
     */
    AjaxResult getAssetAttributesCbx(SelectDto dto);

    /**
     * 机具厂家
     * @param dto
     * @return AjaxResult
     * @description 机具厂家
     * @author cwchen
     * @date 2023/12/20 19:56
     */
    AjaxResult getDeviceFactoryCbx(SelectDto dto);

    /**
     * 工程项目
     * @param dto
     * @return AjaxResult
     * @description 工程项目
     * @author cwchen
     * @date 2023/12/20 20:01
     */
//    AjaxResult getProCbx(SelectDto dto);

    /**
     * 配件所属上级树
     * @param
     * @return AjaxResult
     * @description 配件所属上级树
     * @author cwchen
     * @date 2023/12/20 20:25
     */
    AjaxResult getAccessoryTree();

    /**
     * 货架
     * @param dto
     * @return AjaxResult
     * @description 货架
     * @author cwchen
     * @date 2023/12/20 20:36
     */
    AjaxResult getGoodsShelvesCbx(SelectDto dto);

    /**
     * 用户/维修员/库管员/采购员
     * @param dto
     * @return AjaxResult
     * @description 用户/维修员/库管员/采购员
     * @author cwchen
     * @date 2023/12/20 20:48
     */
//    AjaxResult getUserByRoleIdCbx(SelectDto dto);

    /**
     * 往来单位id和标段工程id获取协议信息
     * @param dto
     * @return AjaxResult
     * @description 往来单位id和标段工程id获取协议信息
     * @author cwchen
     * @date 2023/12/21 10:47
     */
    AjaxResult getAgreementInfoById(SelectDto dto);

    /**
    * 配件所属上级树
    * @param dto
    * @return AjaxResult
    */
    AjaxResult getPartTree(SelectDto dto);

    /**
     * 在用设备类型树
     * @param bean
     * @return
     */
    AjaxResult getUseTypeTree(BackApplyInfo bean);
}
