package com.zksy.system.basicData.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zksy.system.basicData.domain.CrmHighTechZoneEnterprises;
import com.zksy.system.basicData.model.respone.*;
import com.zksy.system.domain.bo.FinancialBo;
import org.apache.ibatis.annotations.Param;

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

/**
 * 高新区企业（119家）Mapper接口
 * 
 * @author sy
 * @date 2024-05-06
 */
public interface CrmHighTechZoneEnterprisesMapper extends BaseMapper<CrmHighTechZoneEnterprises> {
    List<Map<String,String>> getAllTableNames(@Param("tableNames")List<String> tableNames);

    List<String> getColumnNames(String tableName);

    String getColumnComment(@Param("tableName")String tableName,@Param("columnName") String columnName);

    String getTableComment(String tableName);

    List<Map<String, Object>> getTableDataMap(@Param("tableName")String tableName, @Param("unifiedSocialCreditCode") String unifiedSocialCreditCode);

    List<List<String>> getTableData(@Param("tableName")String tableName, @Param("unifiedSocialCreditCode") String unifiedSocialCreditCode);
    /**
     * TODO 参考信用评价得分
      * @param unifiedSocialCreditCode
     * @return java.util.List<com.zksy.system.basicData.model.respone.CreditRatingEntityDto>
     * @author Administrator
     * @date 2024/6/8 08:59:25
     */
    List<CreditRatingEntityDto> referenceCreditRating(@Param("unifiedSocialCreditCode")String unifiedSocialCreditCode,@Param("enterpriseName")String enterpriseName);
    /**
     * TODO 行政处罚得分
      * @param unifiedSocialCreditCode
     * @return java.util.List<com.zksy.system.basicData.model.respone.RegulatoryPenaltyDto>
     * @author Administrator
     * @date 2024/6/8 09:14:59
     */
    List<RegulatoryPenaltyDto> regulatoryPenalty(@Param("unifiedSocialCreditCode")String unifiedSocialCreditCode,@Param("enterpriseName")String enterpriseName);

    /**
     * TODO 行政监管、践诺履约得分
      * @param unifiedSocialCreditCode
     * @return java.util.List<com.zksy.system.basicData.model.respone.CreditScoreDeductionsDto>
     * @author Administrator
     * @date 2024/6/8 09:35:22
     */
    List<CreditScoreDeductionsDto> creditScoreDeductions(@Param("unifiedSocialCreditCode")String unifiedSocialCreditCode,@Param("enterpriseName")String enterpriseName);

    /**
     * TODO 企业竞争力
      * @param unifiedSocialCreditCode
     * @return java.util.List<com.zksy.system.basicData.model.respone.CreditScoreDeductionsDto>
     * @author Administrator
     * @date 2024/6/8 09:42:29
     */
    List<EnterpriseScoreDto> enterpriseScore(@Param("unifiedSocialCreditCode")String unifiedSocialCreditCode,@Param("enterpriseName")String enterpriseName);
    /**
     * TODO 司法裁判得分
      * @param unifiedSocialCreditCode
     * @return com.spire.ms.System.Collections.Generic.List<com.zksy.system.basicData.model.respone.LegalDeductionDto>
     * @author Administrator
     * @date 2024/6/8 10:05:57
     */
    List<LegalDeductionDto> legalDeduction(@Param("unifiedSocialCreditCode")String unifiedSocialCreditCode,@Param("enterpriseName")String enterpriseName);

    /**
     * TODO 直接评级为C
      * @param unifiedSocialCreditCode
     * @return com.spire.ms.System.Collections.Generic.List<com.zksy.system.basicData.domain.CrmHighTechZoneEnterprises>
     * @author Administrator
     * @date 2024/6/8 10:15:21
     */
    List<CrmHighTechZoneEnterprises> ratedLevelC(String unifiedSocialCreditCode);
    /**
     * TODO 直接评级为D
     * @param unifiedSocialCreditCode
     * @return com.spire.ms.System.Collections.Generic.List<com.zksy.system.basicData.domain.CrmHighTechZoneEnterprises>
     * @author Administrator
     * @date 2024/6/8 10:15:21
     */
    List<CrmHighTechZoneEnterprises> ratedLevelD(String unifiedSocialCreditCode);

    List<FinancialBo> getCrmFinancialReportList(@Param("unifiedSocialCreditCode")String unifiedSocialCreditCode,@Param("enterpriseName")String enterpriseName);

    /**
     * TODO 查询扣分条数
      * @param
     * @return java.util.List<java.lang.String>
     * @author Administrator
     * @date 2024/6/26 16:16:34
     */
    List<String> getDeductionPoints();
}
