LineConfig.java 3.62 KB
package com.bsth.entity.realcontrol;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedAttributeNode;
import javax.persistence.NamedEntityGraph;
import javax.persistence.NamedEntityGraphs;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.bsth.entity.Line;
import com.bsth.util.DateUtils;

/**
 * 
 * @ClassName: LineConfig
 * @Description: TODO(线调 线路相关配置信息)
 * @author PanZhao
 * @date 2016年8月15日 下午1:57:56
 *
 */
@Entity
@Table(name = "bsth_c_line_config")
@NamedEntityGraphs({
    @NamedEntityGraph(name = "lineConfig_line_80temps", attributeNodes = {
            @NamedAttributeNode("line"),
            @NamedAttributeNode("d80Temps")
    })
})
public class LineConfig {

	@Id
	@GeneratedValue
	private Integer id;
	
	@OneToOne
	private Line line;

	/** 开始运营时间 HH:mm */
	private String startOpt;
	
	/** 当天开始营运时间戳 
	@Transient
	private long currStartTime;*/

	/** 托管状态 */
	private boolean trust;

	/** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 2:出站即出场 */
	private int outConfig;

	/** 进场时间设置 0:真实进场(设备进入缓冲区时间) 1:请求进场时间  2:出站即出场*/
	private int inConfig;

	/** 短语模板 , 号分隔多个 */
	private String phraseTemps;

	/** 调度指令模板 */
	private String schDirectiveTemp;

	@OneToMany(cascade = CascadeType.ALL)
	private Set<D80ReplyTemp> d80Temps = new HashSet<>();

	public Integer getId() {
		return id;
	}

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

	public Line getLine() {
		return line;
	}

	public void setLine(Line line) {
		this.line = line;
	}

	public String getStartOpt() {
		return startOpt;
	}

	public void setStartOpt(String startOpt) {
		this.startOpt = startOpt;
	}

	public boolean isTrust() {
		return trust;
	}

	public void setTrust(boolean trust) {
		this.trust = trust;
	}

	public int getOutConfig() {
		return outConfig;
	}

	public void setOutConfig(int outConfig) {
		this.outConfig = outConfig;
	}

	public int getInConfig() {
		return inConfig;
	}

	public void setInConfig(int inConfig) {
		this.inConfig = inConfig;
	}

	public String getPhraseTemps() {
		return phraseTemps;
	}

	public void setPhraseTemps(String phraseTemps) {
		this.phraseTemps = phraseTemps;
	}

	public String getSchDirectiveTemp() {
		return schDirectiveTemp;
	}

	public void setSchDirectiveTemp(String schDirectiveTemp) {
		this.schDirectiveTemp = schDirectiveTemp;
	}

	public long getCurrStartTime() {
		Date d = null;
		try {
			SimpleDateFormat sdfyyyyMMddHHmm = new SimpleDateFormat("yyyy-MM-ddHH:mm")
						,sdfyyyyMMdd = new SimpleDateFormat("yyyy-MM-dd");
			d = sdfyyyyMMddHHmm.parse(sdfyyyyMMdd.format(new Date()) + this.startOpt);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return d.getTime();
	}
	
	public D80ReplyTemp findByCode(short code){
		for(D80ReplyTemp temp : d80Temps){
			if(temp.getRequestCode() == code)
				return temp;
		}
		
		return null;
	}

	public Set<D80ReplyTemp> getD80Temps() {
		return d80Temps;
	}

	public void setD80Temps(Set<D80ReplyTemp> d80Temps) {
		this.d80Temps = d80Temps;
	}
}