package com.prolog.rdc.tms.model.entity.line;

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

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;

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

/**
 * 
 *
 * 仓库资料表
 *
 * @className :TmsBaseBranchModel
 * @author :xiaoyf
 * @creationTime :2022/03/21
 * @description :
 *
 * @modifier :xiaoyf
 * @modifyTime :2022/03/21
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
@Data
@Table(value = "tms_base_branch")
public class TmsBaseBranchModel implements Serializable {

	private static final long serialVersionUID = -8765782235483302424L;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "所属组织ID")
	@Column(value = "organization_id")
	private Long organizationId;

	@ApiModelProperty(value = "所属组织编码")
	@Column(value = "organization_code")
	private String organizationCode;

	@ApiModelProperty(value = "所属组织名称")
	@Column(value = "organization_name")
	private String organizationName;

	@ApiModelProperty(value = "所属部门ID")
	@Column(value = "department_id")
	private String departmentId;

	@ApiModelProperty(value = "所属部门编码")
	@Column(value = "department_code")
	private String departmentCode;

	@ApiModelProperty(value = "所属部门名称")
	@Column(value = "department_name")
	private String departmentName;

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "扩展字段5")
	@Column(value = "ext_str5")
	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")
	@Column(value = "ext_date1")
	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")
	@Column(value = "ext_date2")
	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")
	@Column(value = "ext_date3")
	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")
	@Column(value = "ext_date4")
	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")
	@Column(value = "ext_date5")
	private Date extDate5;

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

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

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

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

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

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间")
	@Column(value = "createtime")
	private Date createtime;

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

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "修改时间")
	@Column(value = "updatetime")
	private Date updatetime;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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