package com.prolog.rdc.tms.model.vo.xlsimport;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.apache.poi.ss.usermodel.IndexedColors;

import com.alibaba.excel.annotation.ExcelProperty;
import com.prolog.product.core.easyexcel.annotation.ValidationPropertyExt;
import com.prolog.product.core.easyexcel.support.DropdownPropExtConverter;
import com.prolog.product.core.easyexcel.util.ValidationCellEnum;

import lombok.Data;

/**
 * 客户导入 VO
 *
 * Company: 湖北普罗格科技股份有限公司
 *
 * @author zhangsj
 * @since 2022/3/28 10:57
 */
@Data
public class CustomerImportStdVO implements Serializable {

	private static final long serialVersionUID = -5548886904618028999L;

	@ValidationPropertyExt(headFontColor = IndexedColors.RED)
	@ExcelProperty("客户编码(必填)")
	private String code;

	@ValidationPropertyExt(headFontColor = IndexedColors.RED)
	@ExcelProperty("客户名称(必填)")
	private String name;

	@ExcelProperty("客户简称")
	private String shortName;

	@ValidationPropertyExt(headFontColor = IndexedColors.RED)
	@ExcelProperty(value = "所属部门名称(必填)")
	private String departmentName;

	@ExcelProperty(value = "合作性质(必选)", converter = DropdownPropExtConverter.class)
	@ValidationPropertyExt(headFontColor = IndexedColors.RED, dropdownValues = { "1", "2" }, dropdownNames = { "合同", "临时" }, cellType = ValidationCellEnum.LIST)
	private String cooperativeNature;

	@ExcelProperty("税务登记号")
	private String taxRegisterNumber;

	@ExcelProperty("营业执照号")
	private String businessLicenseNumber;

	@ExcelProperty("道路许可证")
	private String roadPermit;

	@ValidationPropertyExt(headFontColor = IndexedColors.RED)
	@ExcelProperty("货主名称(必填)")
	private String cargoOwnerName;

	@ExcelProperty("联系人")
	private String contact;

	@ExcelProperty("手机号")
	private String phoneNumber;

	@ExcelProperty("座机号")
	private String landlineNumber;

	@ExcelProperty("邮箱")
	private String email;

	@ExcelProperty("邮编")
	private String postCode;

	@ExcelProperty("省名称")
	private String provinceName;

	@ExcelProperty("市名称")
	private String cityName;

	@ExcelProperty("区名称")
	private String districtName;

	@ExcelProperty("详细地址")
	private String address;

	@ExcelProperty("法人代表")
	private String legalman;

	@ExcelProperty("发票抬头")
	private String invoice;

	@ExcelProperty("税号")
	private String invoiceTaxNumber;

	@ExcelProperty("注册资金")
	private String registeredCapital;

	@ExcelProperty("开户银行")
	private String bank;

	@ExcelProperty("银行账号")
	private String bankAccount;

	@ExcelProperty("成立时间(格式 年/月/日)")
	private Date established;

	@ExcelProperty("注册地址")
	private String registeredAddress;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "提货签到(是/否)", converter = DropdownPropExtConverter.class)
	private String pickUpSign;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "自动提货签到(是/否)", converter = DropdownPropExtConverter.class)
	private String autoPickUpSign;

	@ValidationPropertyExt(dropdownValues = { "10", "20", "30" , "40" , "50" , "60" , "70"  },
			dropdownNames = { "预计提货开始时间", "预计提货结束时间", "下单时间", "提交时间", "审核时间", "调度时间", "调度审核时间" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "可提货签到时间点" , converter = DropdownPropExtConverter.class)
	private String pickUpSignTime;

	@ExcelProperty(value = "可提货签到时间区间")
	private Integer pickUpSignTimeDura;

	@ValidationPropertyExt(dropdownValues = { "1", "2", "3" },
			dropdownNames = { "分钟", "小时", "天" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "可提货签到时间单位", converter = DropdownPropExtConverter.class)
	private String pickUpSignTimeUnit;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "提货图片(是/否)", converter = DropdownPropExtConverter.class)
	private String pickUpPicture;

	@ExcelProperty("默认提货围栏(km)")
	private BigDecimal defaultPickUpRail;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "送达签到(是/否)", converter = DropdownPropExtConverter.class)
	private String deliverySign;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "自动送达签到(是/否)", converter = DropdownPropExtConverter.class)
	private String autoDeliverySign;

	@ValidationPropertyExt(dropdownValues = { "10", "20", "30" , "40" , "50" , "60" , "70"  },
			dropdownNames = { "预计送达开始时间", "预计送达结束时间", "下单时间", "提交时间", "审核时间", "调度时间", "调度审核时间" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "可送达签到时间点", converter = DropdownPropExtConverter.class)
	private String deliverySignTime;

	@ExcelProperty(value = "可送达签到时间区间")
	private Integer deliverySignTimeDura;

	@ValidationPropertyExt(dropdownValues = { "1", "2", "3" },
			dropdownNames = { "分钟", "小时", "天" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "可送达签到时间单位", converter = DropdownPropExtConverter.class)
	private String deliverySignTimeUnit;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "送达图片(是/否)", converter = DropdownPropExtConverter.class)
	private String deliveryPicture;

	// @ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是",
	// "否" }, cellType = ValidationCellEnum.LIST)
	// @ApiModelProperty(value = "回单图片(是/否)")
	// private Integer returnOrderPicture;

	@ExcelProperty("默认送达围栏(km)")
	private BigDecimal defaultDeliveryRail;

	@ValidationPropertyExt(dropdownValues = { "1", "0" }, dropdownNames = { "是", "否" }, cellType = ValidationCellEnum.LIST)
	@ExcelProperty(value = "是否要求回单(是/否)", converter = DropdownPropExtConverter.class)
	private String returnOrderFlag;

	@ExcelProperty("回单期限(天)")
	private int returnOrderDeadline;

}
