package com.bcxin.ars.dto.export;

import com.abcxin.smart.validator.annotation.ModelAnnotation;
import com.abcxin.smart.validator.annotation.ModelTableAnnotation;
import com.bcxin.ars.enums.SignType;
import com.bcxin.ars.model.BaseModel;
import com.bcxin.ars.model.Police;
import com.bcxin.ars.serializer.LongJsonDeserializer;
import com.bcxin.ars.serializer.LongJsonSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import java.util.List;

/**
 * sb_personcertificate 保安员证考试报名打印
 */
@Data
@ModelTableAnnotation(areaCodeFilterColumn = "areaCode")
public class PersoncertificateExportPrintDTO extends BaseModel {

	/**  */
	private static final long serialVersionUID = 8556407864044628410L;

	/**
	 * 姓名
	 */
	@ModelAnnotation(getName = "姓名",isExport = true,column = "Name",defaultColumn=true,sign = SignType.LIKE)
	private String name;

	/**
	 * 身份证号码
	 */
	@ModelAnnotation(getName = "身份证号码",isExport = true,column = "Cardnumber",defaultColumn=true,sign = SignType.LIKE)
	private String cardnumber;
	/**
	 * 手机号码
	 */
	@ModelAnnotation(getName = "手机号码",isExport = true,column = "phone",defaultColumn=true)
	private String phone;
	/**
	 * 2018年8月15日16:50:33 wjb 所属公司名称
	 */
	@ModelAnnotation(getName="报名时就职单位",column = "companyName",sign = SignType.LIKE,isExport = true,defaultColumn=true,anotherTable = true)
	private String companyName;
	/*@ModelAnnotation(getName="所属公司名称",column = "sc_name",sign = SignType.LIKE,isExport = true,defaultColumn=true,anotherTable = true)
	private String scName;*/
    /**
     * 培训机构名称
     */
    @ModelAnnotation(getName="培训机构名称",column = "trainOrgName",isExport = true,sign = SignType.LIKE)
    private String trainOrgName;
	/**
	 * 保安员证号
	 */
	@ModelAnnotation(getName="保安员证号",column = "zsbh",isExport = true,anotherTable = true,sign = SignType.LIKE)
	private String zsbh;


	/**
	 * 打印状态 0未打印 1 已打印
	 */
	@ModelAnnotation(getName="打印状态",column = "isprint",isExport = true,tableName="c",defaultColumn=true,needTranslate = true,dictName ="isprint",anotherTable = true)
	private String isprint;

	/**
	 * 打印状态 0未打印 1 已打印
	 */
	@ModelAnnotation(getName="打印状态",column = "isprint",tableName="c",defaultColumn=true,needTranslate = true,dictName ="isprint",anotherTable = true)
	private String printState;
	/**
	 * 发证日期
	 */
	@ModelAnnotation(getName="发证日期",column = "fzrq",isExport = true,anotherTable = true)
	private String fzrq;


	/***
	 * 发证日期开始日期
	 */
	@ModelAnnotation(getName="发证日期",column = "fzrq",tableName="c",anotherTable = true,sign = SignType.DATE_GREATER_EQUAL)
	private String startDate;
	/***
	 * 发证日期结束日期
	 */
	@ModelAnnotation(getName="发证日期",column = "fzrq",tableName="c",anotherTable = true,sign = SignType.DATE_LESS_EQUAL)
	private String endDate;

	/**
	 * 发证机关
	 */
	@ModelAnnotation(getName="发证机关",column = "fzjgmc",isExport = true,anotherTable = true)
	private String fzjgmc;
	/**
	 * 是否有照片 0 否 1 是
	 */
	@ModelAnnotation(getName="是否有照片",column = "havephoto",isExport = true,needTranslate = true,tableName="c",dictName ="havephoto",anotherTable = true,sign = SignType.EQUAL_NULL_ZERO)
	private String havephoto;
	@ModelAnnotation(getName="是否旧数据",column = "isolddata",isExport = true,needTranslate = true,tableName="c",dictName ="isolddata",anotherTable = true,sign = SignType.EQUAL_NULL_ZERO)
	private String oldData;
	/**
	 * 打印次数
	 */
	@ModelAnnotation(getName="打印次数",column = "printcount",isExport = true,anotherTable = true,tableName="c")
	private String printcount;
	/**
	 * 打印日期
	 */
	@ModelAnnotation(getName="打印日期",column = "printTime",isExport = true,anotherTable = true,tableName="c")
	private String printTime;

	/**
	 * 审批状态
	 */
	@ModelAnnotation(getName="审批状态",column = "approvalstate",isExport = true,needTranslate = true,dictName ="approvalState")
	private String approvalstate;
	/**
	 * 审批人
	 */
	@ModelAnnotation(getName="审批人",column = "Approvalperson",isExport = true)
	private String approvalperson;



	/**
	 * 审批时间
	 */
	@ModelAnnotation(getName="审批时间",column = "approvaldate",isExport = true)
	private String approvaldate;

	/**
	 * 审批原因
	 */
	@ModelAnnotation(getName="审批原因",column = "approvalreason",isExport = true)
	private String approvalreason;
	/***
	 * 申领状态
	 */
	@ModelAnnotation(getName="申领状态",column = "applyforstate",isExport = true)
	private String applyforstate;
	/**
	 * 性别
	 */
	@ModelAnnotation(getName = "性别",isExport = true,column = "sex",needTranslate = true,dictName = "sex")
	private String sex;

	/**
	 * 出生年月
	 */
	@ModelAnnotation(getName = "出生年月",isExport = true,column = "Brith")
	private String brith;

	/**
	 * 民族
	 */
	@ModelAnnotation(getName = "民族",isExport = true,column = "nation",specialTranslateType = "1",dictName = "nation")
	private String nation;

	/**
	 *政治面貌
	 */
	@ModelAnnotation(getName="政治面貌",column = "Politics",isExport = true,needTranslate = true,dictName = "politics")
	private String politics;
	/**
	 * 户籍地址
	 */
	@ModelAnnotation(getName="户籍地址",column = "address",isExport = true)
	private String address;
	/**
	 * 文化程度
	 */
	@ModelAnnotation(getName="文化程度",column = "Culture",isExport = true,needTranslate = true,dictName = "edu")
	private String culture;



	/**
	 * 邮编
	 */
	@ModelAnnotation(getName="邮编",column = "Zipcode",isExport = true)
	private String zipcode;

	/**
	 * 曾用名
	 */
	@ModelAnnotation(getName="曾用名",column = "beforeName",isExport = true)
	private String beforeName;

	/**
	 * 社会保障卡
	 */
	@ModelAnnotation(getName="社会保障卡",column = "guaranteecar",isExport = true)
	private String guaranteecar;

	/**
	 * 家庭电话
	 */
	@ModelAnnotation(getName="家庭电话",column = "familyPhone",isExport = true)
	private String familyPhone;
	/**
	 * 兵役情况
	 */
	@ModelAnnotation(getName="兵役情况",column = "militaryService",isExport = true,needTranslate = true,dictName = "militaryService")
	private String militaryService;
	/**
	 * 指纹卡号
	 */
	@ModelAnnotation(getName="指纹卡号",column = "fingerprint",isExport = true)
	private String fingerprint;

	/**
	 * 宗教信仰
	 */
	@ModelAnnotation(getName="宗教信仰",column = "religion",isExport = true)
	private String religion;

	/***
	 * 国籍
	 */
	@ModelAnnotation(getName="国籍",column = "nationality",isExport = true)
	private String nationality;

	/**
	 * 籍贯
	 */
	@ModelAnnotation(getName="籍贯",column = "birthPlace",isExport = true)
	private String birthPlace;

	/**
	 * 身高
	 */
	@ModelAnnotation(getName="身高",column = "hight",isExport = true)
	private String hight;
	/**
	 * 血型
	 */
	@ModelAnnotation(getName="血型",column = "booldType",isExport = true)
	private String booldType;

	/**
	 * 健康状况
	 */
	@ModelAnnotation(getName="健康状况",column = "healthStatus",isExport = true)
	private String healthStatus;
	/**
	 * 现住地址
	 */
	@ModelAnnotation(getName="现住地址",column = "nowAddress",isExport = true)
	private String nowAddress;
	/**
	 * 备注
	 */
	@ModelAnnotation(getName="备注",column = "baseRemack",isExport = true)
	private String baseRemack;

	/**
	 * 头像
	 *
	 * @return
	 */
	private String heading;
	/**
	 * 审批信息列表
	 */
	private List approvallist;

	/***
	 * 上传路径
	 */
	@ModelAnnotation(getName="上传路径",column = "template_rar")
	private String templateRar;

	/***
	 * 头像
	 */
	@ModelAnnotation(getName="头像",column = "imglogo")
	private String imglogo;

	/**
	 * 所在地省市县（区）
	 **/
	@ModelAnnotation(getName="所在地省市县（区）",column = "szss",isExport = true)
	private String szss;

	/**
	 * 所在地省代码
	 **/
	@ModelAnnotation(getName="所在地省代码",column = "province")
	private String province;

	/**
	 * 所在地市代码
	 **/
	@ModelAnnotation(getName="所在地市代码",column = "city")
	private String city;

	/**
	 * 所在地县（区）代码
	 **/
	@ModelAnnotation(getName="所在地县（区）代码",column = "district",isExport = true,sign = SignType.LIKE)
	private String district;

	/**
	 * 公司ID
	 **/
	@ModelAnnotation(getName="公司ID",column = "companyid")
	private Long companyid;

	/**
	 * 保安员ID
	 **/
	@ModelAnnotation(getName="保安员ID",column = "personid")
	@JsonSerialize(using = LongJsonSerializer.class)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	private Long personid;

	/**
	 * 身份证正面
	 **/
	@ModelAnnotation(getName="身份证正面",column = "id_card_front")
	private String idCardFront;

	/**
	 * 身份证反面
	 **/
	@ModelAnnotation(getName="id_card_reverse",column = "name")
	private String idCardReverse;

	/**
	 * 县级以上医院出具的体检证明
	 **/
	@ModelAnnotation(getName="县级以上医院出具的体检证明",column = "health_examination")
	private String healthExamination;

	/**
	 * 初中以上学历证明原件
	 **/
	@ModelAnnotation(getName="初中以上学历证明原件",column = "edu_photo")
	private String eduPhoto;

	/**
	 * 无违法犯罪记录证明
	 **/
	@ModelAnnotation(getName="无违法犯罪记录证明",column = "nocrime_photo",isExport = true)
	private String nocrimePhoto;

	/**
	 * 审查状态 001未审查 003 审查通过 004审查不通过
	 */
	@ModelAnnotation(getName="审查状态",column = "censor_status",isExport = true,needTranslate = true,dictName = "censorStatus")
	private String censorStatus;

	/**
	 * 笔试成绩
	 */
	@ModelAnnotation(getName="笔试成绩",column = "written_score",isExport = true)
	private Integer writtenScore;

	/**
	 * 实操成绩
	 */
	@ModelAnnotation(getName="实操成绩",column = "operate_score",isExport = true)
	private Integer operateScore;

	/**
	 * 总成绩
	 */
	@ModelAnnotation(getName="总成绩",column = "sum_score",isExport = true)
	private Double sumScore;

	/**
	 * 制证状态 1已制证 0未制证
	 *//*
	@ModelAnnotation(getName="制证状态",column = "card_state",isExport = true)
	private String cardState;*/

	/**
	 * 考试状态 1通过0不通过
	 */
	@ModelAnnotation(getName="考试状态",column = "test_state",isExport = true,needTranslate = true,dictName = "testState")
	private String testState;

	/**
	 * 指纹卡号状态1已录0未录
	 */
	@ModelAnnotation(getName="指纹卡号状态",column = "fingercard_state",isExport = true,needTranslate = true,dictName = "fingercardState")
	private String fingercardState;

	/**
	 * 缴费状态 1已缴费 0 未缴费
	 */
	@ModelAnnotation(getName="缴费状态",column = "fee_state",isExport = true,needTranslate = true,dictName = "feeState")
	private String feeState;

	/**
	 * 考试安排状态：0未安排，1已安排，2已取消,3 已修改
	 */
	@ModelAnnotation(getName="考试安排状态",column = "exam_state",isExport = true,needTranslate = true,dictName = "examState")
	private String examState;

	/** 考试科目 *//*
	@ModelAnnotation(getName="考试科目",column = "exam_subject",isExport = true)
	private String examSubject;
*/
	/** 考点名称 */
	@ModelAnnotation(getName="考点名称",column = "exam_address",isExport = true)
	private String examAddress;

	/** 考试开始时间 */
	@ModelAnnotation(getName="考试开始时间",column = "exam_start",isExport = true)
	private String examStart;

	/** 考试结束时间 */
	@ModelAnnotation(getName="考试结束时间",column = "exam_end",isExport = true)
	private String examEnd;

	/** 考试次数 *//*
	@ModelAnnotation(getName="考试次数",column = "exam_times",isExport = true)
	private Integer examTimes;*/
	/** 人员id */
	@ModelAnnotation(getName="人员id",column = "bbdPersonID")
	private Long bbdPersonID;
	/** 机构id */
	@ModelAnnotation(getName="机构id",column = "orgid")
	private Long orgID;

	/**
	 * 科目ID
	 */
	@ModelAnnotation(getName="科目ID",column = "subjectID")
	private Integer subjectID;

	/**
	 * 派出所ID
	 */
	@ModelAnnotation(getName="派出所ID",column = "orgid")
	private Long orgid;

	/** 体能测试地址 */
	@ModelAnnotation(getName="体能测试地址",column = "stamina_address",isExport = true)
	private String staminaAddress;

	/** 体能测试开始时间 */
	@ModelAnnotation(getName="体能测试开始时间",column = "stamina_startDate",isExport = true)
	private String staminaStartDate;

	/** 体能测试结束时间 */
	@ModelAnnotation(getName="体能测试结束时间",column = "stamina_endDate",isExport = true)
	private String staminaEndDate;
	/***
	 * 报名确认（001未确认002已确认）
	 */
	@ModelAnnotation(getName="报名确认",column = "signConfirm",isExport = true,needTranslate = true,dictName = "signConfirm")
	private String signConfirm;
	/***
	 * 缴费确认状态
	 */
	@ModelAnnotation(getName="缴费确认状态",column = "payConfirm",isExport = true)
	private String payConfirm;



	/**
	 * 派出所信息
	 */
	private Police police;

	// 同approval中的groupid，用做外网导入时判断所在审批阶段做通知
	@ModelAnnotation(getName="groupid",column = "groupid")
	private String groupid;

	/**
	 * 培训机构ID
	 */
	@ModelAnnotation(getName="培训机构ID",column = "trainOrgID")
	private String trainOrgID;



	/**
	 * 学习进度
	 */
	@ModelAnnotation(getName="学习进度",column = "learnRate")
	private int learnRate;


	/***
	 * 发送单位的代码
	 */
	private String policeCode;

	/***
	 * 发送单位的名称
	 */
	private String policeName;


	/**
	 * 补考次数
	 */
	@ModelAnnotation(getName="补考次数",column = "makeUpCount",isExport = true,specialTranslateType = "4")
	private Integer makeUpCount;
	/**
	 * 是否补考
	 */
	@ModelAnnotation(getName="是否补考",column = "isMakeUp",isExport = true,needTranslate = true,dictName ="isMakeUp")
	private String isMakeUp;

	/**
	 * 流程状态  1 流程结束  其他 流程未结束
	 */
	@ModelAnnotation(getName="流程状态",column = "proState",isExport = true,needTranslate = true,dictName ="proState")
	private String proState;

	/**
	 * 补考状态  003补考通过 004补考未通过
	 */
	@ModelAnnotation(getName="补考状态",column = "makeUpstate",isExport = true,needTranslate = true,dictName ="makeUpstate")
	private String makeUpstate;
}