package org.jeecg.ctop.finance.policy.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;



/**
 * 政策信息表
 * @author jeecg-boot
 * @date   2021-07-27
 * @version V1.0
 */
@Data
@TableName("ctop_cwjs_policy_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="ctop_cwjs_policy_info对象", description="政策信息表")
public class CwjsPolicyInfo implements Serializable{
    
	/**自增主键*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "自增主键")
	private Integer id;
	/**公司名称*/
	@Excel(name = "公司名称", width = 15)
    @ApiModelProperty(value = "公司名称")
	private String companyName;
	/**广告主id*/
	@Excel(name = "广告主名称", width = 15)
    @ApiModelProperty(value = "广告主名称")
	private String advertiserName;
	/**媒体类型*/
	@Excel(name = "媒体类型", width = 15)
    @ApiModelProperty(value = "媒体类型")
	private Integer mediaType;
	/**我司主体*/
	@Excel(name = "我司主体", width = 15)
    @ApiModelProperty(value = "我司主体")
	private Integer companySubjectId;

	@TableField(exist = false)
	private String companyId;
	/**集团简称*/
	@Excel(name = "集团简称", width = 15)
    @ApiModelProperty(value = "集团简称")
	private String groupAbbreviation;
	/**状态 0：待审核 1:审核中 2：审核通过3：审核拒绝*/
	@Excel(name = "状态 0:草稿 1：待审核 2:审核中 3：审核通过4：审核拒绝", width = 15)
    @ApiModelProperty(value = "0:草稿 1：待审核 2:审核中 3：审核通过4：审核拒绝")
	private Integer approvedStatus;

	@TableField(exist = false)
	private List<Integer> statusList;

	@ApiModelProperty(value = "审核进度，当前该谁审核,审核人")
	private String approvedProgress;
	/**是否预付：0：否  1：是 */
	@Excel(name = "是否预付：0：否  1：是 ", width = 15)
    @ApiModelProperty(value = "是否预付：0：否  1：是 ")
	private Integer advancePay;

	/**是否老客户：0：否  1：是 */
	@Excel(name = "是否老客户：0：否  1：是 ", width = 15)
	@ApiModelProperty(value = "是否老客户：0：否  1：是 ")
	private Integer customerFlag;
	/**账期*/
	@Excel(name = "账期", width = 15)
    @ApiModelProperty(value = "账期")
	private String accountingPeriod;
	/**返点类型：0:返现  1:返货   2:返现+返货*/
	@Excel(name = "返点类型：0:返现  1:返货   2:返现+返货", width = 15)
    @ApiModelProperty(value = "返点类型：0:返现  1:返货   2:返现+返货")
	private Integer rebateType;
	/**返点比例*/
	@Excel(name = "返点比例", width = 15)
    @ApiModelProperty(value = "返点比例")
	private java.math.BigDecimal rebateRate;
	/**是否垫付：0：否  1：是 */
	@Excel(name = "是否垫付：0：否  1：是 ", width = 15)
    @ApiModelProperty(value = "是否垫付：0：否  1：是 ")
	private Integer isDianPay;
	/**垫付公司名称*/
	@Excel(name = "垫付公司名称", width = 15)
    @ApiModelProperty(value = "垫付公司名称")
	private String dianPayCompanyName;
	/**垫付公司返点比例*/
	@Excel(name = "垫付公司返点比例", width = 15)
    @ApiModelProperty(value = "垫付公司返点比例")
	private java.math.BigDecimal dianPayCompanyRebateRate;
	/**运营方式： 0:自运营  1:代运营*/
	@Excel(name = "运营方式： 0:自运营  1:代运营", width = 15)
    @ApiModelProperty(value = "运营方式： 0:自运营  1:代运营")
	private Integer promotionType;
	/**政策开始时间*/
	@Excel(name = "政策开始时间", width = 15)
    @ApiModelProperty(value = "政策开始时间")
	private String policyStartDate;
	/**政策结束时间*/
	@Excel(name = "政策结束时间", width = 15)
    @ApiModelProperty(value = "政策结束时间")
	private String policyEndDate;
	/**备注：如果没人填的话记录被拒次数*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
	private Object remarks;
	/**删除状态（0，正常，1已删除）*/
	@Excel(name = "删除状态（0，正常，1已删除）", width = 15)
    @ApiModelProperty(value = "删除状态（0，正常，1已删除）")
	private Integer delFlag;
	/**销售人员(信息创建人)*/
	@Excel(name = "创建人", width = 15)
	@ApiModelProperty(value = "创建人")
	private String createUserId;
	@Excel(name = "创建人名字", width = 15)
	@ApiModelProperty(value = "创建人名字")
	private String createUserName;


	@ApiModelProperty(value = "销售id")
	private String saleId;
	@TableField(exist = false)
	private List<String> saleIds;

	@TableField(exist = false)
	@ApiModelProperty(value = "销售姓名")
	private String saleName;

	@ApiModelProperty(value = "作废原因")
	private String delReason;
	private String estimatedProfit;

	/**创建时间*/
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新时间*/
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;
	/**接收前端传递的产品名称array*/
	@TableField(exist = false)
    private JSONArray policyProductName;
	/**后端查询数据库后，sql映射时使用*/
	@TableField(exist = false)
	private String productName;

	@TableField(exist = false)
	private String startTime;
	@TableField(exist = false)
	private String endTime;
	@TableField(exist = false)
	private List<String> createUserIds;
	@TableField(exist = false)
	private List<Integer> companySubjectIds;
	@TableField(exist = false)
	private String approvalContent;
	@TableField(exist = false)
	private String operation;
	@TableField(exist = false)
	private String nickName;
	@TableField(exist = false)
	private String companySubjectName;

	/**区域 华北，华南，华东*/
	@TableField(exist = false)
	private String areaInfo;


	/* 是否显示老板审批的 操作 yes显示 no 不显示*/
	@TableField(exist = false)
	private String theBossRight;
	/* 老板审核的内容*/
	@TableField(exist = false)
	private String theBossContent;

	/* 给老板审核的理由*/
	@TableField(exist = false)
	private String theForwardingBossContent;
	/* 法务审核意见*/
	@TableField(exist = false)
	private String legalAffairsContent;

	@TableField(exist = false)
	private String meidiaAffairsContent;

	@TableField(exist = false)
	private String loginUserId;

}
