package com.yccrc.kede.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yccrc.common.core.domain.BaseEntity;
import com.yccrc.common.utils.StringUtils;
import com.yccrc.kede.vo.ProjectHeadAddVO;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @TableName enterprise_project
 */
@TableName(value = "enterprise_project")
@Data
public class EnterpriseProject extends BaseEntity {

    // 项目负责人以研发人员
    @TableField(exist = false)
    List<ProjectHeadAddVO> headAddVOList = new ArrayList<>();
    @TableId
    private Integer id;
    /**
     * 关联企业ID
     */
    private Integer entId;
    /**
     * 企业名称
     */
    private String entName;
    /**
     * 申报状态 1:待补充 2:待申报 3:待审核 4:已申报
     */
    private Integer reportState;
    /**
     * 项目编号
     */
    private String projectNo;
    /**
     * 是否跨年
     */
    private Boolean overYearFlag;
    /**
     * 年份
     */
    private String projectYear;
    /**
     * 研发结果
     */
    private Boolean developFlag;
    /**
     * 是否追溯项目
     */
    private Boolean backFlag;
    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 立项时间
     */
    private String projectDate;
    /**
     * 项目开始日期
     */
    private String projectStartDate;
    /**
     * 项目结束日期
     */
    private String projectEndDate;
    /**
     * 项目类型 1:自主研发 2:委托研发 3:合作研发 4:自主研发(含委托研发)
     */
    private Integer projectType;
    /**
     * 项目负责人及研发人员
     */
    private String projectJson;
    /**
     * 项目所属技术领域,多个逗号隔开
     */
    private String technicalField;
    /**
     * 技术来源,多个逗号隔开
     */
    private String technicalSource;
    /**
     * 技术开发形式,多个逗号隔开
     */
    private String technicalForm;
    /**
     * 新兴产业信息-是否战略新兴产业:1-是 0-否
     */
    private Boolean industry;
    /**
     * 所属新兴产业领域:
     * 激光
     * 新型显示
     * 新一代移动通信
     * 数控机床
     * 地球空间信息
     * 半导体及规模集成电路
     * 软件及服务外包
     * 新能源
     * 新材料
     * 新动力汽车
     * 生物医药
     * 现代物流
     * 动漫
     * 节能环保装备
     * 金融服务
     */
    private Integer industryType;
    /**
     * 2、附件上传:研究成果报告
     */
    private Boolean reportFlag;
    /**
     * 5、附件上传:经科技行政主管部门登记的委托、合作研究开发项目的合同
     */
    private Boolean contractFlag;
    /**
     * 7、附件上传:企业如果已取得地市级（含）以上科技行政主管部门出具的鉴定意见，应作为资料留存备查
     */
    private Boolean appraisalFlag;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 技术用户ID
     */
    private Long techUserId;
    /**
     * 财务用户ID
     */
    private Long finUserId;
    // 统一社会信用代码
    @TableField(exist = false)
    private String creditCode;
    // 技术百分比
    @TableField(exist = false)
    private String techRate;
    // 技术填写数
    @TableField(exist = false)
    private int techNum;
    // 财务百分比
    @TableField(exist = false)
    private String finRate;
    @TableField(exist = false)
    private int techPersons;

    public int getTechNum() {
        int success = 0;
        if (StringUtils.isNotEmpty(getProjectYear())) {
            success++;
        }
        if (getDevelopFlag() != null) {
            success++;
        }
        if (StringUtils.isNotEmpty(getProjectName())) {
            success++;
        }
        if (StringUtils.isNotEmpty(getProjectDate())) {
            success++;
        }
        if (StringUtils.isNotEmpty(getProjectStartDate())) {
            success++;
        }
        if (StringUtils.isNotEmpty(getProjectEndDate())) {
            success++;
        }
        if (getProjectType() != null) {
            success++;
        }
        if (StringUtils.isNotEmpty(getProjectJson())) {
            success++;
        }
        if (StringUtils.isNotEmpty(getTechnicalField())) {
            success++;
        }
        if (StringUtils.isNotEmpty(getTechnicalSource())) {
            success++;
        }
        if (StringUtils.isNotEmpty(getTechnicalForm())) {
            success++;
        }
        if (getIndustry() != null) {
            success++;
        }
        return success;
    }
}