package com.foreverwin.mesnac.meapi.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.meapi.dto.ResrceWorkCenter;
import com.foreverwin.mesnac.meapi.model.Resrce;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.modular.core.util.FrontPage;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Leon.L
 * @since 2021-05-26
 */
public interface ResrceService extends IService<Resrce> {

    /**
     *  分页查询
     * @param frontPage
     * @return
     */
    IPage<Resrce> selectPage(FrontPage<Resrce> frontPage, Resrce resrce);

    List<Resrce> selectList(Resrce resrce);

    /**
     * 根据资源类型查询资源清单
     *
     * @param site
     * @param resourceType
     * @return
     */
    List<Resrce> getResourceListByType(String site, String resourceType);

    /**
     * 查询站点下所有资源类型与资源关系清单
     *
     * @param site
     * @return
     */
    List<Map<String, Object>> getResourceTypeResourceList(String site);

    Resrce findByResrce(String resrce);

    List<Resrce> findAllResrce();

    /**
     * 仅修改设备状态
     */
    void updateResourceStatus(String site, String resource, String status);

    /**
     * 根据设备类型、站点，获取该类型的所有设备
     * @param site
     * @param resourceTypeBo
     * @return
     */
    List<Resrce> findResourceListByResourceType(String site,String resourceTypeBo);


    /**
     * 查询设备所属资源类型以及对应的工序
     *
     * @param resourceBo
     * @return
     */
    List<Map<String, Object>> getResourceOperation(String resourceBo);

    /**
     * 根据设备查询设备及车间信息
     * @param resrce
     * @return
     */
    ResrceWorkCenter findResourceAndWorkCenterByResource(Resrce resrce);

    /**
     * 根据资源类型和派工用户查询资源
     *
     * @param site
     * @param resourceType
     * @param userList
     * @return
     */
    List<Resrce> getResourceListByUT(String site, String resourceType, String[] userList);

    /**
     * 功能1  1. 找到设备下面的某个字段，弹出框的不分页查询，并且自定义字段的值不能为空
     * 功能2  2. 根据设备找到它的某个字段的值
     * @param resource 资源名 ,可以为空
     * @param customField 字段名
     * @return 返回字段   设备，设备描述，字段名
     */
    List<Resrce> findResourceCustomList(String resource,String customField);
}