package com.yeejoin.amos.boot.module.cylinder.flc.api.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CityCylinderInfoDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderInfoDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderUnitDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderUnit;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 气瓶企业信息 Mapper 接口
 *
 * @author system_generator
 * @date 2021-12-14
 */
public interface CylinderUnitMapper extends BaseMapper<CylinderUnit> {

    /**
     * 获取上个月企业总量
     * @return
     */
    Integer getLastMonthUnitTotal(@Param("regionCode") String regionCode);

    /**
     * 获取上上个月企业总量
     * @return
     */
    Integer getMonthBeforeLastUnitTotal(@Param("regionCode") String regionCode);

    /**
     * 根据regioncode 获取企业总量
     * @param regionCode
     * @return
     */
    Integer getUnitTotalByRegionCode(@Param("regionCode") String regionCode);

    Integer getWarnNum(String code);
    
    Integer getWarnNumByAppId(String appId);

    /**
     * 根据creditCode查询该企业是否存在许可超期
     * @param creditCode 统一社会信用代码
     * @return
     */
    Integer getLicenseOutOfDate(String creditCode);

    Integer getThisMonthUnitTotalByRegionCode(String regionCode);

    List<CylinderUnitDto> getMessage(@Param("regionCode") String regionCode);

    /**
     * 根据层级查气瓶信息
     * @param level 层级
     * @return list
     */
    List<CityCylinderInfoDto> getCylinderDataByLevel(@Param("level") String level);

    void saveOrUpdateBatch(@Param("list") List<CylinderUnit> list);


    /**
     * 查询资质超期但是还没生成问题的单位
     * @param questionType 问题类型
     * @return List<CylinderInfoDto>
     */
    List<CylinderUnitDto> queryCylinderUnitOfPermissionExpire(@Param("questionType") String questionType);
}
