package com.sig.todp.server.dto; import com.sig.todp.server.cluster.dto.RegionCenterInfo; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; @Slf4j @Data @Builder @NoArgsConstructor//(access = AccessLevel.PROTECTED) @AllArgsConstructor public class RegionCenter implements Serializable { private static final long serialVersionUID = 1L; /* * Region Center properties */ private int clusterId; // 서버 ID private int realClusterId; // 실제 운영중인 서버 ID private int idx; private boolean isDeleted; private String regionCd; /* 지역 코드 */ private String regionNm; /* 지역 명 */ private String ipAddress; /* IP Address */ private String loginId; /* 지역센터 아이디 */ private String loginPswd; /* 지역센터 비밀번호 */ private String fileUpdDt; /* 파일 수정일자 */ private boolean simulateFlag; /* 시뮬레이터 여부 */ private int regionId; /* 지역 ID */ private boolean extYn; /* 민간연계여부(N;연계안함,Y:연계) */ private boolean realtimeYn; /* 실시간정보 연계여부(N;연계안함,Y:연계) */ private boolean dbaseYn; /* TOD기반정보 연계여부(N;연계안함,Y:연계) */ private boolean commHistYn; /* TB_COMM_HIST 저장여부(N;저장안함,Y:저장) */ private int minIntNo; private int maxIntNo; private int intCount; private long lastCommMilliSeconds; private long lastTodRunTime; // 센터에 속한 교차로 정보 목록 @Builder.Default private HashMap intMap = new HashMap<>(); public String getLogKey() { return this.regionCd; } public void update(RegionCenter dto) { this.regionNm = dto.getRegionNm(); this.ipAddress = dto.getIpAddress(); this.loginId = dto.getLoginId(); this.loginPswd = dto.getLoginPswd(); this.fileUpdDt = dto.getFileUpdDt(); this.regionId = dto.getRegionId(); this.simulateFlag = dto.isSimulateFlag(); this.extYn = dto.isExtYn(); this.realtimeYn = dto.isRealtimeYn(); this.dbaseYn = dto.isDbaseYn(); this.commHistYn = dto.isCommHistYn(); this.minIntNo = dto.getMinIntNo(); this.maxIntNo = dto.getMaxIntNo(); this.intCount = dto.getIntCount(); this.lastTodRunTime = dto.getLastTodRunTime(); } public String getLastTodRunTimeStr() { Date date = new Date(this.lastTodRunTime); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return dateFormat.format(date); } public void copyInfo(RegionCenterInfo info) { //this.clusterId = info.getClusterId(); // 서버 ID this.realClusterId = info.getRealClusterId(); // 실제 운영중인 서버 ID this.lastTodRunTime = info.getLastTodRunTime(); this.lastCommMilliSeconds = info.getLastCommMilliSeconds(); } public RegionCenterInfo cloneCopy() { return RegionCenterInfo.builder() .clusterId(this.clusterId) .realClusterId(this.realClusterId) .regionCd(this.regionCd) .regionId(this.regionId) .lastTodRunTime(this.lastTodRunTime) .lastCommMilliSeconds(this.lastCommMilliSeconds) .build(); } }