123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425 |
- package com.its.op.entity.its.cctv;
- import com.its.op.dto.its.cctv.TbCctvCtlrDto;
- import com.its.op.dto.its.cctv.TbCctvCtlrSttsDto;
- import com.its.op.dto.its.facility.TbFcltSttsAlrmStupDto;
- import com.its.op.global.CmmnCdManager;
- import com.its.utils.ItsUtils;
- import io.swagger.annotations.ApiModel;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Getter;
- import lombok.NoArgsConstructor;
- import org.hibernate.annotations.NotFound;
- import org.hibernate.annotations.NotFoundAction;
- import javax.persistence.*;
- import java.io.Serializable;
- /**
- * CCTV 제어기 Entity Class
- */
- @Getter
- @NoArgsConstructor//(access = AccessLevel.PROTECTED)
- @Builder
- @AllArgsConstructor
- @ApiModel("CCTV 제어기")
- @Entity
- @Table(name = "TB_CCTV_CTLR")
- public class TbCctvCtlr implements Serializable {
- private static final long serialVersionUID = 1L;
- @ApiModelProperty("CCTV 관리 번호") // N NUMBER(10)
- @Id
- @Column(name = "CCTV_CTLR_NMBR", nullable = false, columnDefinition = "NUMBER", length = 10)
- private Long cctvCtlrNmbr;
- @ApiModelProperty("CCTV 제어기 ID") // Y VARCHAR2(10)
- @Column(name = "CCTV_CTLR_ID", length = 10)
- private String cctvCtlrId;
- @ApiModelProperty("CCTV 명칭") // Y VARCHAR2(40)
- @Column(name = "CCTV_NM", length = 40)
- private String cctvNm;
- @ApiModelProperty("설치 위치 명") // Y VARCHAR2(40)
- @Column(name = "ISTL_LCTN_NM", length = 40)
- private String istlLctnNm;
- @ApiModelProperty("설치 위치 주소") // Y VARCHAR2(200)
- @Column(name = "ISTL_LCTN_ADDR", length = 200)
- private String istlLctnAddr;
- @ApiModelProperty("CCTV 제어기 아이피") // Y VARCHAR2(20)
- @Column(name = "CCTV_CTLR_IP", length = 20)
- private String cctvCtlrIp;
- @ApiModelProperty("CCTV 제어기 포트") // Y NUMBER(5)
- @Column(name = "CCTV_CTLR_PORT", columnDefinition = "NUMBER", length = 5)
- private Integer cctvCtlrPort;
- @ApiModelProperty("CCTV 제어기 지역번호") // Y NUMBER(5)
- @Column(name = "CCTV_CTLR_LOCAL_NO", columnDefinition = "NUMBER", length = 5)
- private Integer cctvCtlrLocalNo;
- @ApiModelProperty("CCTV 유형 코드('CCTVT')") // Y VARCHAR2(7)
- @Column(name = "CCTV_TYPE_CD", length = 7)
- private String cctvTypeCd;
- @ApiModelProperty("CCTV 자막기 아이피") // Y VARCHAR2(20)
- @Column(name = "CCTV_CAPT_IP", length = 20)
- private String cctvCaptIp;
- @ApiModelProperty("CCTV 자막기 포트") // Y NUMBER(5)
- @Column(name = "CCTV_CAPT_PORT", columnDefinition = "NUMBER", length = 5)
- private Integer cctvCaptPort;
- @ApiModelProperty("스트리밍 서버 아이피--->분배서버ip") // Y VARCHAR2(20)
- @Column(name = "STRM_SVR_IP", length = 20)
- private String strmSvrIp;
- @ApiModelProperty("스트리밍 서버 포트--->분배서버port") // Y NUMBER(5)
- @Column(name = "STRM_SVR_PORT", columnDefinition = "NUMBER", length = 5)
- private Integer strmSvrPort;
- @ApiModelProperty("스트리밍 세션 명") // Y VARCHAR2(200)
- @Column(name = "STRM_SESN_NM", length = 200)
- private String strmSesnNm;
- @ApiModelProperty("X 좌표") // Y NUMBER(11,8)
- @Column(name = "X_CRDN", columnDefinition = "NUMBER", length = 11, precision = 8)
- private Double xCrdn;
- @ApiModelProperty("Y 좌표") // Y NUMBER(10,8)
- @Column(name = "Y_CRDN", columnDefinition = "NUMBER", length = 10, precision = 8)
- private Double yCrdn;
- @ApiModelProperty("스트리밍 RTSP 주소") // Y VARCHAR2(200)
- @Column(name = "STRM_RTSP_ADDR", length = 200)
- private String strmRtspAddr;
- @ApiModelProperty("스트리밍 HTTP 주소") // Y VARCHAR2(200)
- @Column(name = "STRM_HTTP_ADDR", length = 200)
- private String strmHttpAddr;
- @ApiModelProperty("인터넷 HLS 주소") // Y VARCHAR2(200)
- @Column(name = "INTR_HTTP_ADDR", length = 200)
- private String intrHttpAddr;
- @ApiModelProperty("WEB RTC 서버 아이피") // Y VARCHAR2(20)
- @Column(name = "WEB_RTC_SVR_IP", length = 20)
- private String webRtcSvrIp;
- @ApiModelProperty("WEB RTC 서버 포트") // Y NUMBER(5)
- @Column(name = "WEB_RTC_SVR_PORT", columnDefinition = "NUMBER", length = 5)
- private Integer webRtcSvrPort;
- @ApiModelProperty("WEB RTC ID") // Y VARCHAR2(56)
- @Column(name = "WEB_RTC_ID", length = 56)
- private String webRtcId;
- @ApiModelProperty("CCTV 대체 영상 이미지 번호") // Y NUMBER(5)
- @Column(name = "ALTT_IMAG_NMBR", columnDefinition = "NUMBER", length = 5)
- private Integer alttImagNmbr;
- @ApiModelProperty("CCTV 대체 표출 여부") // Y CHAR(1)
- @Column(name = "ALTT_IMAG_DSPL_YN", columnDefinition = "CHAR", length = 1)
- private String alttImagDsplYn;
- @ApiModelProperty("운영자 제어 여부") // Y CHAR(1)
- @Column(name = "SYOP_CNTL_YN", columnDefinition = "CHAR", length = 1)
- private String syopCntlYn;
- @ApiModelProperty("링크ID") // Y NUMBER(10)
- @Column(name = "LINK_ID", columnDefinition = "NUMBER", length = 10)
- private Long linkId;
- @ApiModelProperty("노드ID") // Y NUMBER(10)
- @Column(name = "NODE_ID", columnDefinition = "NUMBER", length = 10)
- private Long nodeId;
- @ApiModelProperty("공단 CCTV ID") // Y VARCHAR2(10)
- @Column(name = "CCTV_ID", length = 10)
- private String cctvId;
- @ApiModelProperty("CCTV 지역 구분") // Y VARCHAR2(7)
- @Column(name = "CCTV_AREA_DVSN", length = 7)
- private String cctvAreaDvsn;
- @ApiModelProperty("사용 여부") // Y CHAR(1)
- @Column(name = "USE_YN", columnDefinition = "CHAR", length = 1)
- private String useYn;
- @ApiModelProperty("팬 ON 온도") // Y NUMBER(3)
- @Column(name = "FAN_ON_TMPR", columnDefinition = "NUMBER", length = 3)
- private Integer fanOnTmpr;
- @ApiModelProperty("팬 OFF 온도") // Y NUMBER(3)
- @Column(name = "FAN_OFF_TMPR", columnDefinition = "NUMBER", length = 3)
- private Integer fanOffTmpr;
- @ApiModelProperty("히터 ON 온도") // Y NUMBER(3)
- @Column(name = "HETR_ON_TMPR", columnDefinition = "NUMBER", length = 3)
- private Integer hetrOnTmpr;
- @ApiModelProperty("히터 OFF 온도") // Y NUMBER(3)
- @Column(name = "HETR_OFF_TMPR", columnDefinition = "NUMBER", length = 3)
- private Integer hetrOffTmpr;
- @ApiModelProperty("삭제 여부") // Y CHAR(1)
- @Column(name = "DEL_YN", columnDefinition = "CHAR", length = 1)
- private String delYn;
- @ApiModelProperty("RTC 서버 아이피") // Y VARCHAR2(20)
- @Column(name = "RTC_SVR_IP", length = 20)
- private String rtcSvrIp;
- @ApiModelProperty("RTC 서버 포트") // Y NUMBER(5)
- @Column(name = "RTC_SVR_PORT", columnDefinition = "NUMBER", length = 5)
- private Integer rtcSvrPort;
- @ApiModelProperty("RTC ID") // Y VARCHAR2(56)
- @Column(name = "RTC_ID", length = 56)
- private String rtcId;
- @OneToOne
- @JoinColumn(insertable=false, updatable=false, name="CCTV_CTLR_NMBR", referencedColumnName = "CCTV_CTLR_NMBR")
- @NotFound(action = NotFoundAction.IGNORE)
- private TbCctvCtlrStts state;
- public void setDelete() {
- this.delYn = "Y";
- }
- public TbCctvCtlrDto toDto() {
- TbCctvCtlrDto dto = TbCctvCtlrDto.builder()
- .cctvCtlrNmbr(this.cctvCtlrNmbr)
- .cctvCtlrId(this.cctvCtlrId)
- .cctvNm(this.cctvNm)
- .istlLctnNm(this.istlLctnNm)
- .istlLctnAddr(this.istlLctnAddr)
- .cctvCtlrIp(this.cctvCtlrIp)
- .cctvCtlrPort(this.cctvCtlrPort)
- .cctvCtlrLocalNo(this.cctvCtlrLocalNo)
- .cctvTypeCd(this.cctvTypeCd)
- .cctvCaptIp(this.cctvCaptIp)
- .cctvCaptPort(this.cctvCaptPort)
- .strmSvrIp(this.strmSvrIp)
- .strmSvrPort(this.strmSvrPort)
- .strmSesnNm(this.strmSesnNm)
- .xCrdn(this.xCrdn)
- .yCrdn(this.yCrdn)
- .strmRtspAddr(this.strmRtspAddr)
- .strmHttpAddr(this.strmHttpAddr)
- .intrHttpAddr(this.intrHttpAddr)
- .webRtcSvrIp(this.webRtcSvrIp)
- .webRtcSvrPort(this.webRtcSvrPort)
- .webRtcId(this.webRtcId)
- .alttImagNmbr(this.alttImagNmbr)
- .alttImagDsplYn(this.alttImagDsplYn)
- .syopCntlYn(this.syopCntlYn)
- .linkId(this.linkId)
- .nodeId(this.nodeId)
- .cctvId(this.cctvId)
- .cctvAreaDvsn(this.cctvAreaDvsn)
- .useYn(this.useYn)
- .fanOnTmpr(this.fanOnTmpr)
- .fanOffTmpr(this.fanOffTmpr)
- .hetrOnTmpr(this.hetrOnTmpr)
- .hetrOffTmpr(this.hetrOffTmpr)
- .delYn(this.delYn)
- .rtcSvrIp(this.rtcSvrIp)
- .rtcSvrPort(this.rtcSvrPort)
- .rtcId(this.rtcId)
- .build();
- dto.setCctvTypeDesc(CmmnCdManager.getCodeDesc(CmmnCdManager.CCTV_TYPE_CD, dto.getCctvTypeCd()));
- return dto;
- }
- public TbCctvCtlrSttsDto toSttsDto() {
- TbCctvCtlrSttsDto dto = TbCctvCtlrSttsDto.builder()
- .cctvCtlrNmbr(this.cctvCtlrNmbr)
- .collCnt(100)
- .cctvCtlrId(this.cctvCtlrId)
- .istlLctnNm(this.istlLctnNm)
- .updtDt(CmmnCdManager.CMNC_STTS_ERROR_DT)
- .cmncSttsCd(CmmnCdManager.CMNC_STTS_ERROR)
- .build();
- if (this.state != null) {
- dto.setUpdtDt(this.state.getUpdtDt());
- dto.setCmncSttsCd(this.state.getCmncSttsCd());
- dto.setCboxDoorSttsCd(this.state.getCboxDoorSttsCd());
- dto.setFrontDoorSttsCd(this.state.getFrontDoorSttsCd());
- dto.setBackDoorSttsCd(this.state.getBackDoorSttsCd());
- dto.setFanSttsCd(this.state.getFanSttsCd());
- dto.setHetrSttsCd(this.state.getHetrSttsCd());
- dto.setVideoInput(this.state.getVideoInput());
- dto.setCboxTmpr(this.state.getCboxTmpr());
- dto.setCboxHmdt(this.state.getCboxHmdt());
- dto.setPan(this.state.getPan());
- dto.setTilt(this.state.getTilt());
- dto.setZoom(this.state.getZoom());
- dto.setFocus(this.state.getFocus());
- dto.setCboxDoorSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.DOOR_STTS_CD, dto.getCboxDoorSttsCd()));
- dto.setFrontDoorSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.DOOR_STTS_CD, dto.getFrontDoorSttsCd()));
- dto.setBackDoorSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.DOOR_STTS_CD, dto.getBackDoorSttsCd()));
- dto.setFanSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.FAN_STTS_CD, dto.getFanSttsCd()));
- dto.setHetrSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.HETR_STTS_CD, dto.getHetrSttsCd()));
- dto.setVideoInputDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.VIDEO_INPUT_CD, dto.getVideoInput()));
- }
- if ("N".equals(this.syopCntlYn)) {
- // 제어불가 CCTV 는 정상으로 설정
- // 운영단말 화면에서 제어 못하도록 화면설정 해야함
- dto.setUpdtDt(ItsUtils.getSysTime());
- dto.setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
- dto.setCboxDoorSttsCd("CDS0");
- dto.setFrontDoorSttsCd("CDS0");
- dto.setBackDoorSttsCd("CDS0");
- dto.setFanSttsCd("PAS0");
- dto.setHetrSttsCd("HTS0");
- dto.setVideoInput("VDI0");
- dto.setCboxTmpr(0);
- dto.setCboxHmdt(0);
- dto.setPan(0);
- dto.setTilt(0);
- dto.setZoom(0);
- dto.setFocus(0);
- dto.setCboxDoorSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.DOOR_STTS_CD, dto.getCboxDoorSttsCd()));
- dto.setFrontDoorSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.DOOR_STTS_CD, dto.getFrontDoorSttsCd()));
- dto.setBackDoorSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.DOOR_STTS_CD, dto.getBackDoorSttsCd()));
- dto.setFanSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.FAN_STTS_CD, dto.getFanSttsCd()));
- dto.setHetrSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.HETR_STTS_CD, dto.getHetrSttsCd()));
- dto.setVideoInputDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.VIDEO_INPUT_CD, dto.getVideoInput()));
- }
- dto.setMissSttsYn(ItsUtils.getMissSttsYn(dto.getUpdtDt()));
- if (("Y").equals(dto.getMissSttsYn())) {
- // 기준시각 보다 크기 때문에 상태정보를 통신두절로 설정
- dto.setCmncSttsCd(CmmnCdManager.CMNC_STTS_ERROR);
- }
- dto.setCmncSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.CMNC_STTS_CD, dto.getCmncSttsCd()));
- return dto;
- }
- public TbCctvCtlr(Long cctvCtlrNmbr) {
- this.cctvCtlrNmbr = cctvCtlrNmbr;
- }
- public void updateInfo(TbCctvCtlrDto.TbCctvCtlrUpdReq req) {
- this.cctvCtlrId = req.getCctvCtlrId();
- this.cctvNm = req.getCctvNm();
- this.istlLctnNm = req.getIstlLctnNm();
- this.istlLctnAddr = req.getIstlLctnAddr();
- this.cctvCtlrIp = req.getCctvCtlrIp();
- this.cctvCtlrPort = req.getCctvCtlrPort();
- this.cctvCtlrLocalNo = req.getCctvCtlrLocalNo();
- this.cctvTypeCd = req.getCctvTypeCd();
- this.cctvCaptIp = req.getCctvCaptIp();
- this.cctvCaptPort = req.getCctvCaptPort();
- this.strmSvrIp = req.getStrmSvrIp();
- this.strmSvrPort = req.getStrmSvrPort();
- this.strmSesnNm = req.getStrmSesnNm();
- this.xCrdn = req.getXCrdn();
- this.yCrdn = req.getYCrdn();
- this.strmRtspAddr = req.getStrmRtspAddr();
- this.strmHttpAddr = req.getStrmHttpAddr();
- this.intrHttpAddr = req.getIntrHttpAddr();
- this.webRtcSvrIp = req.getWebRtcSvrIp();
- this.webRtcSvrPort = req.getWebRtcSvrPort();
- this.webRtcId = req.getWebRtcId();
- this.alttImagNmbr = req.getAlttImagNmbr();
- this.alttImagDsplYn = req.getAlttImagDsplYn();
- this.syopCntlYn = req.getSyopCntlYn();
- this.linkId = req.getLinkId();
- this.nodeId = req.getNodeId();
- this.cctvId = req.getCctvId();
- this.cctvAreaDvsn = req.getCctvAreaDvsn();
- this.useYn = req.getUseYn();
- this.fanOnTmpr = req.getFanOnTmpr();
- this.fanOffTmpr = req.getFanOffTmpr();
- this.hetrOnTmpr = req.getHetrOnTmpr();
- this.hetrOffTmpr = req.getHetrOffTmpr();
- this.delYn = req.getDelYn();
- }
- public String getCmncSttsCd() {
- String result = CmmnCdManager.CMNC_STTS_ERROR;
- if (this.state != null) {
- result = this.state.getCmncSttsCd();
- }
- return result;
- }
- public TbCctvCtlrStts getState() {
- if (this.state == null) {
- TbCctvCtlrStts state = TbCctvCtlrStts.builder()
- .cctvCtlrNmbr(this.cctvCtlrNmbr)
- .updtDt(CmmnCdManager.CMNC_STTS_ERROR_DT)
- .cmncSttsCd(CmmnCdManager.CMNC_STTS_ERROR)
- .cboxDoorSttsCd("CDS2")
- .frontDoorSttsCd("CDS2")
- .backDoorSttsCd("CDS2")
- .fanSttsCd("PAS2")
- .hetrSttsCd("HTS2")
- .videoInput("VDI2")
- .cboxTmpr(0)
- .cboxHmdt(0)
- .pan(0)
- .tilt(0)
- .zoom(0)
- .focus(0)
- .build();
- if ("N".equals(this.syopCntlYn)) {
- // 제어불가 CCTV 는 정상으로 설정
- // 운영단말 화면에서 제어 못하도록 화면설정 해야함
- state.setUpdtDt(ItsUtils.getSysTime());
- state.setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
- state.setCboxDoorSttsCd("CDS0");
- state.setFrontDoorSttsCd("CDS0");
- state.setBackDoorSttsCd("CDS0");
- state.setFanSttsCd("PAS0");
- state.setHetrSttsCd("HTS0");
- state.setVideoInput("VDI0");
- state.setCboxTmpr(0);
- state.setCboxHmdt(0);
- state.setPan(0);
- state.setTilt(0);
- state.setZoom(0);
- state.setFocus(0);
- }
- this.state = state;
- }
- return this.state;
- }
- public void setAlrmSetup(TbFcltSttsAlrmStupDto alarm) {
- if (alarm == null || "N".equals(alarm.getUseYn())) {
- return;
- }
- if ("N".equals(this.syopCntlYn)) {
- return;
- }
- if ("N".equals(alarm.getCmncStts())) {
- getState().setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
- getState().setUpdtDt(ItsUtils.getSysTime());
- }
- if (CmmnCdManager.CMNC_STTS_NORMAL.equals(getState().getCmncSttsCd())) {
- if ("N".equals(alarm.getDoorStts())) {
- getState().setCboxDoorSttsCd("CDS0");
- getState().setFrontDoorSttsCd("CDS0");
- getState().setBackDoorSttsCd("CDS0");
- }
- if ("N".equals(alarm.getVideoInput())) {
- getState().setVideoInput("VDI0");
- }
- }
- }
- }
|