ScheduleRule1.java 4.14 KB
package com.bsth.entity.schedule.rule;

import com.bsth.entity.Cars;
import com.bsth.entity.Line;
import com.bsth.entity.Personnel;
import com.bsth.entity.schedule.GuideboardInfo;

import javax.persistence.*;
import java.util.Date;
import java.util.List;

/**
 * 排班规则1,
 * 基于老系统的规则设定实体,
 * 有所谓的路牌范围,就是关联多个路牌
 * 有所谓的人员返回,就是关联多个人(可能带早晚班)
 * 有起始路牌,起始人员,翻班格式
 */
@Entity
@Table(name = "bsth_c_s_sr1")
public class ScheduleRule1 {

    /** 主键Id */
    @Id
    @GeneratedValue
    private Long id;

    /** 关联线路 */
    @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
    private Line xl;
    /** 关联车辆 */
    @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
    private Cars cl;
    /** 启用日期 */
    private Date qyrq;

    /** 起始路牌 */
    @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
    private GuideboardInfo qslp;
    /** 起始人员 */
    @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
    private Personnel qsry;
    /** 翻班格式(TODO:这个目前还不太明白)*/
    private String fbgs;

    /** 路牌范围(TODO:路牌有序号的需要排序,这个再议了) */
    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinTable(
            name = "bsth_c_s_sr1_lp",
            joinColumns = @JoinColumn(name = "SR1_ID"),
            inverseJoinColumns = @JoinColumn(name = "LP_ID")
    )
    private List<GuideboardInfo> guideboardInfos;

    // TODO:暂时不考虑早晚班
//    /** 是否早晚班 */
//    private boolean isZWB = false;

    /** 人员范围 */
    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinTable(
            name = "bsth_c_s_sr1_ry",
            joinColumns = @JoinColumn(name = "SR1_ID"),
            inverseJoinColumns = @JoinColumn(name = "RY_ID")
    )
    private List<Personnel> personnels;


    // 创建日期
    @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
    private Date createDate;
    // 修改日期
    @Column(name = "update_date", columnDefinition = "TIMESTAMP  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
    private Date updateDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Line getXl() {
        return xl;
    }

    public void setXl(Line xl) {
        this.xl = xl;
    }

    public Cars getCl() {
        return cl;
    }

    public void setCl(Cars cl) {
        this.cl = cl;
    }

    public Date getQyrq() {
        return qyrq;
    }

    public void setQyrq(Date qyrq) {
        this.qyrq = qyrq;
    }

    public GuideboardInfo getQslp() {
        return qslp;
    }

    public void setQslp(GuideboardInfo qslp) {
        this.qslp = qslp;
    }

    public Personnel getQsry() {
        return qsry;
    }

    public void setQsry(Personnel qsry) {
        this.qsry = qsry;
    }

    public String getFbgs() {
        return fbgs;
    }

    public void setFbgs(String fbgs) {
        this.fbgs = fbgs;
    }

    public List<GuideboardInfo> getGuideboardInfos() {
        return guideboardInfos;
    }

    public void setGuideboardInfos(List<GuideboardInfo> guideboardInfos) {
        this.guideboardInfos = guideboardInfos;
    }

    public List<Personnel> getPersonnels() {
        return personnels;
    }

    public void setPersonnels(List<Personnel> personnels) {
        this.personnels = personnels;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }
}