package com.prolog.rdc.tms.model.dto.basicData;

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

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class TmsBaseBranchDTO implements Serializable {

	private static final long serialVersionUID = -1703244645797387669L;

	@ApiModelProperty(value = "仓库ID (主键)")
	private Long id;

	@ApiModelProperty(value = "仓库编码")
	private String code;

	@ApiModelProperty(value = "仓库名称")
	private String name;

	@ApiModelProperty(value = "仓库简称")
	private String shortName;

	@ApiModelProperty(value = "联系人")
	private String contact;

	@ApiModelProperty(value = "手机号")
	private String phoneNumber;

	@ApiModelProperty(value = "座机号")
	private String landlineNumber;

	@ApiModelProperty(value = "邮箱")
	private String email;

	@ApiModelProperty(value = "邮编")
	private String postCode;

	@ApiModelProperty(value = "省编码")
	private String province;

	@ApiModelProperty(value = "省名称")
	private String provinceName;

	@ApiModelProperty(value = "市编码")
	private String city;

	@ApiModelProperty(value = "市名称")
	private String cityName;

	@ApiModelProperty(value = "区编码")
	private String district;

	@ApiModelProperty(value = "区名称")
	private String districtName;

	@ApiModelProperty(value = "详细地址")
	private String address;

	@ApiModelProperty(value = "经度")
	private BigDecimal longitude;

	@ApiModelProperty(value = "纬度")
	private BigDecimal latitude;

	@ApiModelProperty(value = "备注")
	private String memo;

	@ApiModelProperty(value = "提货签到 数据字典WHETHER:0否，1是")
	private String pickUpSign;

	@ApiModelProperty(value = "自动提货签到 数据字典WHETHER:0否，1是")
	private Integer autoPickUpSign;

	@ApiModelProperty(value = "提货图片 数据字典WHETHER:0否，1是")
	private String pickUpPicture;

	@ApiModelProperty(value = "默认提货围栏")
	private BigDecimal defaultPickUpRail;

	@ApiModelProperty(value = "送达签到 数据字典WHETHER:0否，1是")
	private String deliverySign;

	@ApiModelProperty(value = "自动送达签到 数据字典WHETHER:0否，1是")
	private Integer autoDeliverySign;

	@ApiModelProperty(value = "送达图片 数据字典WHETHER:0否，1是")
	private String deliveryPicture;

	@ApiModelProperty(value = "回单图片 数据字典WHETHER:0否，1是")
	private Integer returnOrderPicture;

	@ApiModelProperty(value = "默认送达围栏")
	private BigDecimal defaultDeliveryRail;

	@ApiModelProperty(value = "每日作业开始时间")
	private String startTime;

	@ApiModelProperty(value = "每日作业结束时间")
	private String endTime;

	@ApiModelProperty(value = "作业时长")
	private BigDecimal workingTime;

	@ApiModelProperty(value = "企业ID")
	private Long enterpriseId;

	@ApiModelProperty(value = "企业名称")
	private String enterpriseName;

	@ApiModelProperty(value = "状态")
	private Integer status;

	@ApiModelProperty(value = "状态")
	private String statusName;

	@ApiModelProperty(value = "来源")
	private Integer source;

	@ApiModelProperty(value = "导入批次号")
	private String importBatchNumber;

	@ApiModelProperty(value = "扩展字段1")
	private String extStr1;

	@ApiModelProperty(value = "扩展字段2")
	private String extStr2;

	@ApiModelProperty(value = "扩展字段3")
	private String extStr3;

	@ApiModelProperty(value = "扩展字段4")
	private String extStr4;

	@ApiModelProperty(value = "扩展字段5")
	private String extStr5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "扩展字段6")
	private Date extDate1;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "扩展字段7")
	private Date extDate2;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "扩展字段8")
	private Date extDate3;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "扩展字段9")
	private Date extDate4;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "扩展字段10")
	private Date extDate5;

	@ApiModelProperty(value = "扩展字段11")
	private BigDecimal extNum1;

	@ApiModelProperty(value = "扩展字段12")
	private BigDecimal extNum2;

	@ApiModelProperty(value = "扩展字段13")
	private BigDecimal extNum3;

	@ApiModelProperty(value = "扩展字段14")
	private BigDecimal extNum4;

	@ApiModelProperty(value = "扩展字段15")
	private BigDecimal extNum5;

	@ApiModelProperty(value = "部门ID")
	private String departmentId;

	@ApiModelProperty(value = "部门编码")
	private String departmentCode;

	@ApiModelProperty(value = "部门名称")
	private String departmentName;

	@ApiModelProperty(value = "创建时间")
	private Date createtime;

	@ApiModelProperty(value = "创建人")
	private String createperson;

	@ApiModelProperty(value = "修改时间")
	private Date updatetime;

	@ApiModelProperty(value = "修改人")
	private String updateperson;

	@ApiModelProperty(value = "提货签到时间点 数据字典PICK_UP_SIGN_TIME 10预计提货开始时间 20预计提货结束时间 " +
			"30下单时间 40提交时间 50审核时间 60调度时间 70调度审核时间")
	private Integer pickUpSignTime;

	@ApiModelProperty(value = "提货签到时间期间")
	private Integer pickUpSignTimeDura;

	@ApiModelProperty(value = "提货签到时间单位 数据字典SIGN_TIME_UNIT 1分钟 2小时 3天")
	private Integer pickUpSignTimeUnit;

	@ApiModelProperty(value = "送达签到时间点 数据字典PICK_UP_SIGN_TIME 10预计送达开始时间 20预计送达结束时间 " +
			"30下单时间 40提交时间 50审核时间 60调度时间 70调度审核时间")
	private Integer deliverySignTime;

	@ApiModelProperty(value = "送达签到时间期间")
	private Integer deliverySignTimeDura;

	@ApiModelProperty(value = "送达签到时间单位 数据字典SIGN_TIME_UNIT 1分钟 2小时 3天")
	private Integer deliverySignTimeUnit;

	@ApiModelProperty(value = "可预约时间点 数据字典AVAILABLE_TIME 10预计提货时间 20下单时间 30提交时间 40审核时间 50调度时间 60调度审核时间")
	private Integer aptTime;

	@ApiModelProperty(value = "可预约时间点 数据字典AVAILABLE_TIME 10预计提货时间 20下单时间 30提交时间 40审核时间 50调度时间 60调度审核时间")
	private String aptTimeName;

	@ApiModelProperty(value = "预约时间期间")
	private Integer aptTimeDura;

	@ApiModelProperty(value = "可预约时间单位 数据字典AVAILABLE_UNIT 1小时 2天")
	private Integer aptUnit;

	@ApiModelProperty(value = "可预约时间单位 数据字典AVAILABLE_UNIT 1小时 2天")
	private String aptUnitName;

	@ApiModelProperty(value = "班次允许预约数")
	private Integer aptNum;

	@ApiModelProperty(value = "预约模式 数据字典 APPOINTMENT_TYPE 10仅提货预约 20仅送货预约 30提货,送货皆预约")
	private Integer aptType;

	@ApiModelProperty(value = "预约模式 数据字典 APPOINTMENT_TYPE 10仅提货预约 20仅送货预约 30提货,送货皆预约")
	private String aptTypeName;

	@ApiModelProperty(value = "预约不可取消时间点 数据字典AVAILABLE_TIME 10预计提货时间 20下单时间 30提交时间 40审核时间 50调度时间 60调度审核时间")
	private Integer aptCanNotCancel;

	@ApiModelProperty(value = "预约不可取消时间点 数据字典AVAILABLE_TIME 10预计提货时间 20下单时间 30提交时间 40审核时间 50调度时间 60调度审核时间")
	private String aptCanNotCancelName;

	@ApiModelProperty(value = "预约不可取消期间")
	private Integer aptCanNotCancelDura;

	@ApiModelProperty(value = "预约不可时间单位 数据字典AVAILABLE_UNIT 1小时 2天")
	private Integer aptCanNotCancelUnit;

	@ApiModelProperty(value = "预约不可时间单位 数据字典AVAILABLE_UNIT 1小时 2天")
	private String aptCanNotCancelUnitName;

	@ApiModelProperty(value = "叫号处理方式 数据字典 10等待区先叫号 20按照排队号叫号")
	private Integer callHandleType;

	@ApiModelProperty(value = "叫号处理方式 数据字典 10等待区先叫号 20按照排队号叫号")
	private String callHandleTypeName;

	@ApiModelProperty(value = "过号处理方式 数据字典  10重新取号 20往后排三位 30往后排五位")
	private Integer overNumHandleType;

	@ApiModelProperty(value = "过号处理方式 数据字典  10重新取号 20往后排三位 30往后排五位")
	private String overNumHandleTypeName;

	@ApiModelProperty(value = "签到自动取号 数据字典WHETHER:0否，1是")
	private Integer signInAutoPickUpNum;

	@ApiModelProperty(value = "签到自动取号 数据字典WHETHER:0否，1是")
	private String signInAutoPickUpNumName;

	@ApiModelProperty(value = "装车时长")
	private BigDecimal loadingTime;

	@ApiModelProperty(value = "不可预约日期 数据字典 NON_ABL_DT 10按周 20按月")
	private Integer nonAptDt;

	@ApiModelProperty(value = "不可预约日期 多个日期逗号隔开")
	private String nonAptDura;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "不可预约指定开始日期")
	private Date nonAptSpecStartDate;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "不可预约指定结束日期")
	private Date nonAptSpecEndDate;

	@ApiModelProperty(value = "可预约时间段集合")
	private List<TmsBaseBranchApTimeDTO> apTimeDTOList;

	@ApiModelProperty(value = "可预约时间段")
	private String apTimeDuras;

	@ApiModelProperty(value = "站点ID")
	private Long stationId;

	@ApiModelProperty(value = "站点编号")
	private String stationCode;

	@ApiModelProperty(value = "站点名称")
	private String stationName;

	@ApiModelProperty(value = "站点区域")
	private String stationAreas;

	@ApiModelProperty(value = "站点配送顺序")
	private BigDecimal stationDeliveryOrder;

}
