package com.yeejoin.amos.boot.module.ymt.api.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.KV;
import com.yeejoin.amos.boot.module.ymt.api.entity.CategoryOtherInfo;
import lombok.NonNull;
import org.apache.ibatis.annotations.Param;

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

/**
 * 装备分类 Mapper 接口
 *
 * @author system_generator
 * @date 2021-10-20
 */
public interface CategoryOtherInfoMapper extends BaseMapper<CategoryOtherInfo> {

    int updateSupervisorCode(String supervisorCode, String code, @Param("record") String record);

    CategoryOtherInfo selectSupervisorCode(@Param("supervisorCode") String supervisorCode);

    CategoryOtherInfo selectElevatorCode(@Param("elevatorCode") String elevatorCode, String status);

    EquInfoDto selectEquipInfo(String record);

    int updateCode(String supervisorCode, String equState);

    int updateOtherInfo(String supervisorCode, String editStatus);

    Map<String, Object> selectDataById(String id);

    CategoryOtherInfo queryInitCode(@Param("initCode") @NonNull String initCode);

    void updateEsStatus(String id);

    Map<String, Long> checkCode(@Param("type") String type,
                                @Param("code96333") String code96333,
                                @Param("equCode") String equCode,
                                @Param("useOrgCode") String useOrgCode,
                                @Param("record") String record);

    List<Integer> selectExceedElevatorCodeList(Integer start,String prefix);

    Integer selectCode(Integer start, Integer end, String prefix);

    /**
     * 查询96333码，根据区域+类别分组后，取最大顺序码
     * @return list
     */
    List<KV> selectElevatorCodeMaxValue();

    /**
     * 查询监管码，根据区域+类别分组后，取最大顺序码
     * @return list
     */
    List<KV> selectSupervisorCodeMaxValue();

    /**
     * 查询电梯码是否重复
     * @param elevatorCode 96333
     * @return 0
     */
    Integer checkElevatorCodeRepeat(@Param("elevatorCode") String elevatorCode);

}
