package com.ruoyi.ibs.customerselect.domain;


import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
     * 客户基本信息对象 sys_customer_basedata
     *
     * @author ruoyi
     * @date 2024-09-10
     */
    @Data
    public class CustBaseInfo extends BaseEntity
    {

        /** id */
        private Long id;

        /** 客户标签 */
        @NotNull(message = "客户标签不能为空")
        @Excel(name = "客户分类",readConverterExp = "0=个人,1=商户,2=企业")
        private String custPattern = "0";

        /** 客户类型 */
        @NotNull(message = "客户类型不能为空")
        @Excel(name = "客户类型",readConverterExp = "0=存量,1=潜在")
        private String custType = "2";

        /** 产品标签 */
        @NotNull(message = "产品标签不能为空")
        @Excel(name = "产品标签",readConverterExp = "100=存款,010=贷款,001=中收,110=存款、贷款,101=存款、中收,011=贷款、中收,111=存款、贷款、中收")
        private String custTag = "111";

        /** 企业规模 */
        @NotNull(message = "企业规模不能为空")
        @Excel(name = "企业规模",readConverterExp = "0=无,1=小型,2=中型,3=大型")
        private String custScale;

        //规模小型
        private String custScale1;
        //规模中型
        private String custScale2;
        //规模大型
        private String custScale3;
        //规模微型
        private String custScale0;

        private String opsDept;

        private String custLevel;

        private Long branchId;

        private Long outletId;

        private String cmpmUserName;

        private Long cmpmBranchId;

        private Long cmpmOutletId;

        private String deptCode;

        private boolean isHead;

        private List<String> custScaleList;

        /** 企业名称 */
        @Excel(name = "企业名称")
        private String custName;

        @Excel(name = "归属总行网格名称")
        private String regionTopGridName;

        @Excel(name = "归属支行网格名称")
        private String regionSecGridName;
        /** 归属支行 */
        @Excel(name = "行政网格归属支行")
        private String belongBranchName;

        /** 归属网点 */
        @Excel(name = "行政网格归属网点")
        private String belongOutletName;

        /**
         * 归属 网格客户经理名，多个按照逗号 隔开
         */
        @Excel(name = "行政网格归属客户经理")
        private String belongUserNameList;

        /** 管护客户经理 */
        private String manageUserName;

        /** 网格客户经理 */
        private String belongUserName;

        /** 法人姓名 */
        private String lpName;

        /** 法人电话 */
        private String custPhone;

        /** 注册资本 */
        private String custCapital;

        /** 是否贷款 */
        private String loanTag;

        /** 客户状态 */
        private String status;

        /** 归属机构 */
        private Long userDeptId;

        private Long deptId;
        private Long outletsId;
        private Long userId;
        private String userName;
        private String custId;

        private String roleName;




        int num;
        int size;

        int start;
        int end;
        String latitude;
        String longitude;

        private List<Long> regionTopGridIds;

        private List<Long> regionSecGridIds;

        private List<Long> virtualGridIds;

        private List<Long> drawGridIds;

        private Boolean isSelectGrid;


        private String regionBranchNames;

        private String regionOutletNames;

        private String regionUserNames;
        @Excel(name = "归属自定义地图网格名称")
        private String drawGridName;

        @Excel(name = "自定义地图网格归属支行")
        private String drawBranchNames;

        @Excel(name = "自定义地图网格归属网点")
        private String drawOutletNames;

        @Excel(name = "自定义地图网格归属客户经理")
        private String drawUserNames;
        @Excel(name = "归属自定义名单网格名称")
        private String virtualGridName;
        @Excel(name = "自定义名单网格归属支行")
        private String virtualBranchNames;

        @Excel(name = "自定义名单网格归属网点")
        private String virtualOutletNames;

        @Excel(name = "自定义名单网格归属客户经理")
        private String virtualUserNames;

        private String asset;

        private String credit;

        //个人商户业务指标
        /**
         * 活期存款余额
         */
        @Excel(name = "活期存款余额（元）")
        private String curBalD;
        /**
         * 定期存款余额
         */
        @Excel(name = "定期存款余额（元）")
        private String curBalT;
        /**
         * 贷款余额
         */
        @Excel(name = "贷款余额（元）")
        private String balLoan;
        /**
         * 五级不良贷款余额
         */
        @Excel(name = "五级不良贷款余额（元）")
        private String curBal5Bad;
        /**
         * 活期存款年日均
         */
        @Excel(name = "活期存款年日均（元）")
        private String curDAve;
        /**
         * 定期存款年日均
         */
        @Excel(name = "定期存款年日均（元）")
        private String curTAve;
        /**
         * 贷款年日均
         */
        @Excel(name = "贷款年日均（元）")
        private String loanAve;
        /**
         * 是否建档
         */
        @Excel(name = "是否建档")
        private String isPh;
        /**
         * 是否授信
         */
        @Excel(name = "是否授信")
        private String isSx;
        /**
         * 是否合同签约
         */
        @Excel(name = "是否合同签约")
        private String isYxht;
        /**
         * 是否持有信用卡
         */
        @Excel(name = "是否持有信用卡")
        private String isXyk;
        /**
         * 是否开通丰收互联
         */
        @Excel(name = "是否开通丰收互联")
        private String fshl;
        /**
         * 是否办理收单
         */
        @Excel(name = "是否办理收单")
        private String isSd;
        /**
         * 是否办理etc
         */
        @Excel(name = "是否办理etc")
        private String etc;
        /**
         * 是否代扣电费
         */
        @Excel(name = "是否代扣电费")
        private String dian;
        /**
         * 是否贷款黑名单
         */
        @Excel(name = "是否贷款黑名单")
        private String isBlack;
        /**
         * 是否五级不良贷款客户
         */
        @Excel(name = "是否五级不良贷款客户")
        private String isBad;



        //企业业务指标
        /**
         * 活期存款余额
         */
        @Excel(name = "活期存款余额（元）")
        private String hqCurBalance;
        /**
         * 保证金存款余额
         */
        @Excel(name = "保证金存款余额（元）")
        private String bzCurBalance;
        /**
         * 是否授信
         */
        @Excel(name = "是否授信")
        private String isCredit;
        /**
         * 贷款余额
         */
        @Excel(name = "贷款余额（元）")
        private String loanBalanceCny;
        /**
         * 贷款年日均
         */
        @Excel(name = "贷款年日均（元）")
        private String loanYearDailyaverage;
        /**
         * 是否普惠签约
         */
        @Excel(name = "是否合同签约")
        private String isHtqy;
        /**
         * 是否有签发承兑汇票
         */
        @Excel(name = "是否有签发承兑汇票")
        private String financeProd716OpenFlag;
        /**
         * 承兑汇票余额
         */
        @Excel(name = "承兑汇票余额（元）")
        private String financeProd716Balance;
        /**
         * 是否有贴现业务
         */
        @Excel(name = "是否有贴现业务")
        private String financeProd711OpenFlag;
        /**
         * 贴现金额
         */
        @Excel(name = "贴现金额（元）")
        private String financeProd711Balance;
        /**
         * 是否有保函业务
         */
        @Excel(name = "是否有保函业务")
        private String intlBussinessJcbhOpenFlag;
        /**
         * 是否为有效代发工资客户
         */
        @Excel(name = "是否为有效代发工资客户")
        private String isUstr;
        /**
         * 月均代发工资笔数
         */
        @Excel(name = "月均代发工资笔数")
        private String ustrCountPerM;
        /**
         * 月均代发工资金额(元)
         */
        @Excel(name = "月均代发工资金额(元)")
        private String ustrBalM;
        /**
         * 是否代扣电费
         */
        @Excel(name = "是否代扣电费")
        private String elecchargeSignFlag;
        /**
         * 是否代扣水费
         */
        @Excel(name = "是否代扣水费")
        private String waterchargeSignFlag;
        /**
         * 是否代扣税费
         */
        @Excel(name = "是否代扣税费")
        private String taxdeductionSignFlag;
        /**
         * 是否票据宝签约
         */
        @Excel(name = "是否票据宝签约")
        private String pjb;
        /**
         * 是否财资宝签约
         */
        @Excel(name = "是否财资宝签约")
        private String czb;
        /**
         * 是否收付宝签约
         */
        @Excel(name = "是否收付宝签约")
        private String sfb;
        /**
         * 是否贸融宝签约
         */
        @Excel(name = "是否贸融宝签约")
        private String mrb;
        /**
         * 是否数字生态产品签约
         */
        @Excel(name = "是否数字生态产品签约")
        private String szst;
        /**
         * 是否开户
         */
        @Excel(name = "是否开户")
        private String isOpenSts;
        /**
         * 是否国际结算业务
         */
        @Excel(name = "是否国际结算业务")
        private String intlBussinessOpenFlag;
        /**
         * 是否有远期结算汇业务
         */
        @Excel(name = "是否有远期结算汇业务")
        private String intlBussiness325OpenFlag;
        @Excel(name = "近365天有无走访")
        private String is365zf;
        @Excel(name = "近180天有无走访")
        private String is180zf;
        @Excel(name = "近90天有无走访")
        private String is90zf;
        @Excel(name = "近30天有无走访")
        private String is30zf;


        public String getBelongUserNameList() {
            return belongUserNameList;
        }

        public void setBelongUserNameList(String belongUserNameList) {
            this.belongUserNameList = belongUserNameList;
        }

        public String getOpsDept() {
            return opsDept;
        }

        public void setOpsDept(String opsDept) {
            this.opsDept = opsDept;
        }

        public String getCustScale1() {
            return custScale1;
        }

        public void setCustScale1(String custScale1) {
            this.custScale1 = custScale1;
        }

        public String getCustScale2() {
            return custScale2;
        }

        public void setCustScale2(String custScale2) {
            this.custScale2 = custScale2;
        }

        public String getCustScale3() {
            return custScale3;
        }

        public void setCustScale3(String custScale3) {
            this.custScale3 = custScale3;
        }

        public String getCustScale0() {
            return custScale0;
        }

        public void setCustScale0(String custScale0) {
            this.custScale0 = custScale0;
        }
        public String getLatitude() {
            return latitude;
        }

        public void setLatitude(String latitude) {
            this.latitude = latitude;
        }

        public String getLongitude() {
            return longitude;
        }

        public void setLongitude(String longitude) {
            this.longitude = longitude;
        }

        public int getStart() {
            return start;
        }

        public void setStart(int start) {
            this.start = start;
        }

        public int getEnd() {
            return end;
        }

        public void setEnd(int end) {
            this.end = end;
        }

        public int getNum() {
            return num;
        }

        public void setNum(int num) {
            this.num = num;
        }

        public int getSize() {
            return size;
        }

        public void setSize(int size) {
            this.size = size;
        }

        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }

        @NotBlank(message = "客户标签不能为空")
        public String getCustPattern() {
            return custPattern;
        }

        public void setCustPattern(String custPattern) {
            this.custPattern = custPattern;
        }

        public String getCustType() {
            return custType;
        }

        public void setCustType(String custType) {
            this.custType = custType;
        }

        public String getCustTag() {
            return custTag;
        }

        public void setCustTag(String custTag) {
            this.custTag = custTag;
        }

        public String getCustScale() {
            return custScale;
        }

        public void setCustScale(String custScale) {
            this.custScale = custScale;
        }

        public String getCustName() {
            return custName;
        }

        public void setCustName(String custName) {
            this.custName = custName;
        }

        public String getBelongBranchName() {
            return belongBranchName;
        }

        public void setBelongBranchName(String belongBranchName) {
            this.belongBranchName = belongBranchName;
        }

        public String getBelongOutletName() {
            return belongOutletName;
        }

        public void setBelongOutletName(String belongOutletName) {
            this.belongOutletName = belongOutletName;
        }

        public String getManageUserName() {
            return manageUserName;
        }

        public void setManageUserName(String manageUserName) {
            this.manageUserName = manageUserName;
        }

        public String getBelongUserName() {
            return belongUserName;
        }

        public void setBelongUserName(String belongUserName) {
            this.belongUserName = belongUserName;
        }

        public String getLpName() {
            return lpName;
        }

        public void setLpName(String lpName) {
            this.lpName = lpName;
        }

        public String getCustPhone() {
            return custPhone;
        }

        public void setCustPhone(String custPhone) {
            this.custPhone = custPhone;
        }

        public String getCustCapital() {
            return custCapital;
        }

        public void setCustCapital(String custCapital) {
            this.custCapital = custCapital;
        }

        public String getLoanTag() {
            return loanTag;
        }

        public void setLoanTag(String loanTag) {
            this.loanTag = loanTag;
        }

        public String getStatus() {
            return status;
        }

        public void setStatus(String status) {
            this.status = status;
        }

        public Long getUserDeptId() {
            return userDeptId;
        }

        public void setUserDeptId(Long userDeptId) {
            this.userDeptId = userDeptId;
        }

        public Long getDeptId() {
            return deptId;
        }

        public void setDeptId(Long deptId) {
            this.deptId = deptId;
        }

        public Long getUserId() {
            return userId;
        }

        public void setUserId(Long userId) {
            this.userId = userId;
        }

        public Long getOutletsId() {
            return outletsId;
        }

        public void setOutletsId(Long outletsId) {
            this.outletsId = outletsId;
        }

        public String getCustId() {
            return custId;
        }

        public void setCustId(String custId) {
            this.custId = custId;
        }

        private List<ContinuousParam> continuousParams;      //连续型指标

        private List<DiscreteParam> discreteParams;        //离散型指标

        private String perMetric;

        public List<ContinuousParam> getContinuousParams() {
            return continuousParams;
        }

        public void setContinuousParams(List<ContinuousParam> continuousParams) {
            this.continuousParams = continuousParams;
        }

        public List<DiscreteParam> getDiscreteParams() {
            return discreteParams;
        }

        public void setDiscreteParams(List<DiscreteParam> discreteParams) {
            this.discreteParams = discreteParams;
        }

        public String getPerMetric() {
            return perMetric;
        }

        public void setPerMetric(String perMetric) {
            this.perMetric = perMetric;
        }

        @Override
        public String toString() {
            return "CustBaseInfo{" +
                    "id=" + id +
                    ", custPattern='" + custPattern + '\'' +
                    ", custType='" + custType + '\'' +
                    ", custTag='" + custTag + '\'' +
                    ", custScale='" + custScale + '\'' +
                    ", custName='" + custName + '\'' +
                    ", belongBranchName='" + belongBranchName + '\'' +
                    ", belongOutletName='" + belongOutletName + '\'' +
                    ", manageUserName='" + manageUserName + '\'' +
                    ", belongUserName=" + belongUserName +
                    ", lpName='" + lpName + '\'' +
                    ", custPhone='" + custPhone + '\'' +
                    ", custCapital='" + custCapital + '\'' +
                    ", loanTag='" + loanTag + '\'' +
                    ", status='" + status + '\'' +
                    ", userDeptId=" + userDeptId +
                    '}';
        }
    }

