/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the yifu4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */
package com.yifu.cloud.plus.v1.yifu.social.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 社保户公积金户数据
 *
 * @author fxj
 * @date 2022-07-12 08:53:19
 */
@Data
@TableName("sys_house_hold_info")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "社保户公积金户数据")
public class SysHouseHoldInfo extends BaseEntity {

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ExcelAttribute(name = "id" )
    @Schema(description ="id")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("id")
    private String id;

    /**
     * 所属机构ID
     */
    @ExcelAttribute(name = "所属机构ID" )
    @Schema(description ="所属机构ID")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("所属机构ID")
    private String organId;

    /**
     * 户名
     */
    @ExcelAttribute(name = "户名" )
    @Schema(description ="户名")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("户名")
    private String name;

    /**
     * 0启用1禁用
     */
    @ExcelAttribute(name = "0启用1禁用" )
    @Schema(description ="0启用1禁用")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("0启用1禁用")
    private String delFlag;

    /**
     * 账户性质：0社保 1公积金
     */
    @ExcelAttribute(name = "账户性质：0社保 1公积金" )
    @Schema(description ="账户性质：0社保 1公积金")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("账户性质：0社保 1公积金")
    private String type;

    /**
     * 缴纳地-省
     */
    @ExcelAttribute(name = "缴纳地-省" )
    @Schema(description ="缴纳地-省")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("缴纳地-省")
    private String province;

    /**
     * 缴纳地-市
     */
    @ExcelAttribute(name = "缴纳地-市" )
    @Schema(description ="缴纳地-市")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("缴纳地-市")
    private String city;

    /**
     * 缴纳地-县
     */
    @ExcelAttribute(name = "缴纳地-县" )
    @Schema(description ="缴纳地-县")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("缴纳地-县")
    private String town;

    /**
     * 备注
     */
    @ExcelAttribute(name = "备注" )
    @Schema(description ="备注")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("备注")
    private String rmark;

    /**
     * 所属机构名称
     */
    @ExcelAttribute(name = "所属机构名称" )
    @Schema(description ="所属机构名称")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("所属机构名称")
    private String organName;

	/**
     * 审核人id
     */
    @ExcelAttribute(name = "审核人id" )
    @Schema(description ="审核人id")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("审核人id")
    private String auditUser;

	/**
     * 办理人id
     */
    @ExcelAttribute(name = "办理人id" )
    @Schema(description ="办理人id")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("办理人id")
    private String handleUser;

	/**
     * 审核人
     */
    @ExcelAttribute(name = "审核人" )
    @Schema(description ="审核人")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("审核人")
    private String auditUserName;

	/**
     * 办理人
     */
    @ExcelAttribute(name = "办理人" )
    @Schema(description ="办理人")
    @HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("办理人")
    private String handleUserName;

	/**
	 * 类型 0 独立户 1 自有户
	 */
	@ExcelAttribute(name = "类型" )
	@Schema(description ="类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("类型")
	private String houseType;

	/**
	 * 单位编号
	 */
	@ExcelAttribute(name = "单位编号" , maxLength = 50)
	@Schema(description ="单位编号")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("单位编号")
	private String customerNo;

	/**
	 * 单位统一信用代码
	 */
	@ExcelAttribute(name = "单位统一信用代码" )
	@Schema(description ="单位统一信用代码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("单位统一信用代码")
	private String unitCreditCode;

	/**
	 * 公积金承办银行
	 */
	@ExcelAttribute(name = "公积金承办银行" )
	@Schema(description ="公积金承办银行")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("公积金承办银行")
	private String fundBank;

	/**
	 * 手机号
	 */
	@ExcelAttribute(name = "手机号", maxLength = 50)
	@Schema(description ="手机号")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("手机号")
	private String phone;

	/**
	 * 社保-登录账户
	 */
	@ExcelAttribute(name = "社保-登录账户" , maxLength = 50)
	@Schema(description ="社保-登录账户")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保-登录账户")
	private String socialAccount;

	/**
	 * 社保-登录密码
	 */
	@ExcelAttribute(name = "社保-登录密码" )
	@Schema(description ="社保-登录密码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保-登录密码")
	private String socialPassword;

	/**
	 * 医保-登录账户
	 */
	@ExcelAttribute(name = "医保-登录账户" , maxLength = 50)
	@Schema(description ="医保-登录账户")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保-登录账户")
	private String mediclAccount;

	/**
	 * 医保-登录密码
	 */
	@ExcelAttribute(name = "医保-登录密码" )
	@Schema(description ="医保-登录密码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保-登录密码")
	private String mediclPassword;

	/**
	 * 是否配置公章 0有1无
	 */
	@ExcelAttribute(name = "是否配置公章" )
	@Schema(description ="是否配置公章")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("是否配置公章")
	private String isSign;

	/**
	 * 是否配置公章
	 */
	@Schema(description ="行政区划代码")
	private String areaCode;

	/**
	 * 社保自动化（自动化配置状态） 0 启用 1 禁用   -MVP1.7.15调整为是否社保自动化
	 */
	@Schema(description ="社保自动化")
	private String autoStatus;

	/**
	 * 医保自动化（自动化配置状态） 0 启用 1 禁用   -MVP1.7.15新增医保自动化
	 */
	@Schema(description ="医保自动化")
	private String autoStatusYsd;

	/**
	 * 医保单位编号
	 */
	@ExcelAttribute(name = "医保-单位编号" , maxLength = 50)
	@Schema(description ="医保-单位编号")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保-单位编号")
	private String customerNoYsd;

	/**
	 * 社保推送类型（是否单个接口） 0否1是（税友接口走单个还是批量，审核是否立即推送税友） MVP1.7.15 调整为社保推送类型 0批量 1单个
	 */
	@ExcelAttribute(name = "社保推送类型" )
	@Schema(description ="社保推送类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保推送类型")
	private String isSingle;

	/**
	 * 医保推送类型 0否1是 MVP1.7.15 新增医保推送类型 0批量 1单个
	 */
	@ExcelAttribute(name = "医保推送类型" )
	@Schema(description ="医保推送类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保推送类型")
	private String isSingleYsd;

	/**
	 * 是否自动生成解除劳动合同书 0否1是（是的话，走单个推送，因为税友的减员接口没有批量附件的字段）
	 */
	@ExcelAttribute(name = "是否自动生成解除劳动合同书" )
	@Schema(description ="是否自动生成解除劳动合同书")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("是否自动生成解除劳动合同书 0否1是")
	private String isAutoLeaveDoc;

	/**
	 * 审核人部门
	 */
	@TableField(exist = false)
	private String auditUserDeptName;

	/**
	 * 办理人部门
	 */
	@TableField(exist = false)
	private String handleUserDeptName;

	/**
	 * 附件Id
	 */
	@TableField(exist = false)
	private String attaId;

	/**
	 * 印章附件
	 */
	@TableField(exist = false)
	private TAttaInfo atta;

	/**
	 * 社保是否自动生成花名册 0否1是
	 */
	@ExcelAttribute(name = "社保是否自动生成花名册" )
	@Schema(description ="社保是否自动生成花名册 0否1是")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保是否自动生成花名册")
	private String rosterAutoFlagYgs;

	/**
	 * 医保是否自动生成花名册 0否1是
	 */
	@ExcelAttribute(name = "医保是否自动生成花名册" )
	@Schema(description ="医保是否自动生成花名册 0否1是")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保是否自动生成花名册")
	private String rosterAutoFlagYsd;

	/**
	 * 社保仅补缴生成材料 0否1是
	 */
	@ExcelAttribute(name = "社保仅补缴生成材料" )
	@Schema(description ="社保仅补缴生成材料 0否1是")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保仅补缴生成材料")
	private String dataFlagYgs;

	/**
	 * 医保仅补缴生成材料 0否1是
	 */
	@ExcelAttribute(name = "医保仅补缴生成材料" )
	@Schema(description ="医保仅补缴生成材料 0否1是")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保仅补缴生成材料")
	private String dataFlagYsd;

	/**
	 * 社保增员花名册模板
	 */
	@ExcelAttribute(name = "社保增员花名册模板" )
	@Schema(description ="社保增员花名册模板")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保增员花名册模板")
	private String addRosterTempYgs;

	/**
	 * 社保减员花名册模板
	 */
	@ExcelAttribute(name = "社保减员花名册模板" )
	@Schema(description ="社保减员花名册模板")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保减员花名册模板")
	private String reduceRosterTempYgs;


	/**
	 * 医保增员花名册模板
	 */
	@ExcelAttribute(name = "医保增员花名册模板" )
	@Schema(description ="医保增员花名册模板")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保增员花名册模板")
	private String addRosterTempYsd;

	/**
	 * 医保减员花名册模板
	 */
	@ExcelAttribute(name = "医保减员花名册模板" )
	@Schema(description ="医保减员花名册模板")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保减员花名册模板")
	private String reduceRosterTempYsd;

	/**
	 * 医保是否强制参保:0否1是（默认是）
	 */
	@ExcelAttribute(name = "医保是否强制参保" )
	@Schema(description ="医保是否强制参保")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保是否强制参保")
	private String ybsfqzcb;

	/**
	 * 推送时，社保是否单个接口 0批量1单个（为空，则随isSingle）
	 */
	@ExcelAttribute(name = "社保推送类型" )
	@Schema(description ="社保推送类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("社保推送类型")
	private String isSingleYgsPush;

	/**
	 * 推送时，医保是否单个接口 0批量1单个（为空，则随isSingleYsd）
	 */
	@ExcelAttribute(name = "医保推送类型" )
	@Schema(description ="医保推送类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("医保推送类型")
	private String isSingleYsdPush;

	/**
	 * 推送时,医保完成后才推送社保,默认0否
	 */
	@ExcelAttribute(name = "根据医保结果办理养工失" )
	@Schema(description ="根据医保结果办理养工失")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("根据医保结果办理养工失")
	private String isYsdOkPushYgs;
	
	/**
	 * 大专及以上学校必填 0否1是(默认是)
	 */
	@ExcelAttribute(name = "大专及以上学校必填" )
	@Schema(description ="大专及以上学校必填")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("大专及以上学校必填")
	private String collegeDegreeRequired;


	/**
	 * 户与失败原因关联list
	 */
	@TableField(exist = false)
	private List<SysHouseHoldInfoFailRes> resList;

	/**
	 * 模板附件
	 */
	@TableField(exist = false)
	private List<TAttaInfo> tempAttas;

}
