TbScIxrCmraMngm.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. package com.its.op.entity.its.scrs;
  2. import com.its.op.dto.its.scrs.TbScIxrCmraMngmDto;
  3. import com.its.op.dto.its.scrs.TbScIxrCmraSttsDto;
  4. import com.its.op.global.CmmnCdManager;
  5. import com.its.utils.ItsUtils;
  6. import io.swagger.annotations.ApiModel;
  7. import io.swagger.annotations.ApiModelProperty;
  8. import lombok.AllArgsConstructor;
  9. import lombok.Builder;
  10. import lombok.Getter;
  11. import lombok.NoArgsConstructor;
  12. import org.hibernate.annotations.NotFound;
  13. import org.hibernate.annotations.NotFoundAction;
  14. import javax.persistence.*;
  15. import java.io.Serializable;
  16. /**
  17. * 카메라 관리 Entity Class
  18. */
  19. @Getter
  20. @NoArgsConstructor//(access = AccessLevel.PROTECTED)
  21. @Builder
  22. @AllArgsConstructor
  23. @ApiModel("카메라 관리")
  24. @Entity
  25. @Table(name = "TB_SC_IXR_CMRA_MNGM")
  26. @IdClass(TbScIxrCmraMngmKey.class)
  27. public class TbScIxrCmraMngm implements Serializable {
  28. private static final long serialVersionUID = 1L;
  29. @ApiModelProperty("교차로 ID") // N VARCHAR2(10)
  30. @Id
  31. @Column(name = "IXR_ID", nullable = false, length = 10)
  32. private String ixrId;
  33. @ApiModelProperty("카메라 ID") // N VARCHAR2(10)
  34. @Id
  35. @Column(name = "CMRA_ID", nullable = false, length = 10)
  36. private String cmraId;
  37. @ApiModelProperty("방향 구분 코드") // N NUMBER(1)
  38. @Id
  39. @Column(name = "DRCT_DVSN_CD", nullable = false, columnDefinition = "NUMBER", length = 1)
  40. private Integer drctDvsnCd;
  41. @ApiModelProperty("설치 위치") // Y VARCHAR2(40)
  42. @Column(name = "ISTL_LCTN", length = 40)
  43. private String istlLctn;
  44. @ApiModelProperty("카메라 IP") // Y VARCHAR2(16)
  45. @Column(name = "CMRA_IP", length = 16)
  46. private String cmraIp;
  47. @ApiModelProperty("카메라 PORT") // Y VARCHAR2(4)
  48. @Column(name = "CMRA_PORT", length = 4)
  49. private String cmraPort;
  50. @ApiModelProperty("사용 유무") // Y NUMBER(1)
  51. @Column(name = "USE_EN", columnDefinition = "NUMBER", length = 1)
  52. private Integer useEn;
  53. @ApiModelProperty("카메라 로그인 ID") // Y VARCHAR2(16)
  54. @Column(name = "CMRA_LOGN_ID", length = 16)
  55. private String cmraLognId;
  56. @ApiModelProperty("카메라 로그인 비밀번호") // Y VARCHAR2(16)
  57. @Column(name = "CMRA_LOGN_PW", length = 16)
  58. private String cmraLognPw;
  59. @ApiModelProperty("카메라 HTTP PORT") // Y NUMBER(2)
  60. @Column(name = "CMRA_HTTP_PORT", columnDefinition = "NUMBER", length = 2)
  61. private Integer cmraHttpPort;
  62. @ApiModelProperty("스트림 URL") // Y VARCHAR2(32)
  63. @Column(name = "STRE_URL", length = 32)
  64. private String streUrl;
  65. @ApiModelProperty("카메라 URL") // Y VARCHAR2(100)
  66. @Column(name = "CMRA_URL", length = 100)
  67. private String cmraUrl;
  68. @ApiModelProperty("카메라 유형") // Y NUMBER(1)
  69. @Column(name = "CMRA_TYPE", columnDefinition = "NUMBER", length = 1)
  70. private Integer cmraType;
  71. @ApiModelProperty("카메라 X 좌표") // Y VARCHAR2(20)
  72. @Column(name = "CMRA_X_CRDN", length = 20)
  73. private String cmraXCrdn;
  74. @ApiModelProperty("카메라 Y 좌표") // Y VARCHAR2(20)
  75. @Column(name = "CMRA_Y_CRDN", length = 20)
  76. private String cmraYCrdn;
  77. @ApiModelProperty("카메라 각도") // Y NUMBER(3)
  78. @Column(name = "CMRA_ANGL", columnDefinition = "NUMBER", length = 3)
  79. private Integer cmraAngl;
  80. @ApiModelProperty("홈페이지 표출 유무") // Y NUMBER(1)
  81. @Column(name = "HMPG_DSPL_EN", columnDefinition = "NUMBER", length = 1)
  82. private Integer hmpgDsplEn;
  83. @ApiModelProperty("버스 전용 차로 유무") // Y NUMBER(1)
  84. @Column(name = "BUS_DVRS_LANE_EN", columnDefinition = "NUMBER", length = 1)
  85. private Integer busDvrsLaneEn;
  86. @ApiModelProperty("서비스 분석 유무") // Y NUMBER(1)
  87. @Column(name = "SRVC_ANLY_EN", columnDefinition = "NUMBER", length = 1)
  88. private Integer srvcAnlyEn;
  89. @ApiModelProperty("차선수") // Y NUMBER(3)
  90. @Column(name = "LANE_CNT", columnDefinition = "NUMBER", length = 2)
  91. private Integer laneCnt;
  92. @ApiModelProperty("WEB RTC 서버 아이피") // Y VARCHAR2(20)
  93. @Column(name = "WEB_RTC_SVR_IP", length = 20)
  94. private String webRtcSvrIp;
  95. @ApiModelProperty("WEB RTC 서버 포트") // Y NUMBER(5)
  96. @Column(name = "WEB_RTC_SVR_PORT", columnDefinition = "NUMBER", length = 5)
  97. private Integer webRtcSvrPort;
  98. @ApiModelProperty("WEB RTC ID") // Y VARCHAR2(56)
  99. @Column(name = "WEB_RTC_ID", length = 56)
  100. private String webRtcId;
  101. @ApiModelProperty("RTC 서버 아이피") // Y VARCHAR2(20)
  102. @Column(name = "RTC_SVR_IP", length = 20)
  103. private String rtcSvrIp;
  104. @ApiModelProperty("RTC 서버 포트") // Y NUMBER(5)
  105. @Column(name = "RTC_SVR_PORT", columnDefinition = "NUMBER", length = 5)
  106. private Integer rtcSvrPort;
  107. @ApiModelProperty("RTC ID") // Y VARCHAR2(56)
  108. @Column(name = "RTC_ID", length = 56)
  109. private String rtcId;
  110. @OneToOne
  111. @JoinColumns({
  112. @JoinColumn(insertable=false, updatable=false, name = "IXR_ID", referencedColumnName = "IXR_ID"),
  113. @JoinColumn(insertable=false, updatable=false, name = "CMRA_ID", referencedColumnName = "CMRA_ID"),
  114. @JoinColumn(insertable=false, updatable=false, name = "DRCT_DVSN_CD", referencedColumnName = "DRCT_DVSN_CD")
  115. })
  116. @NotFound(action = NotFoundAction.IGNORE)
  117. private TbScIxrCmraStts state;
  118. public void setDelete(boolean delete) {
  119. if (delete) {
  120. this.useEn = 0;
  121. } else {
  122. this.useEn = 1;
  123. }
  124. }
  125. public String getCmncSttsCd() {
  126. String result = "CMS1";
  127. if (this.state != null) {
  128. if (this.state.getCmraStts() == 1)
  129. result = "CMS0";
  130. } else {
  131. result = "CMS1";
  132. }
  133. return result;
  134. }
  135. public TbScIxrCmraStts getState() {
  136. if (this.state == null) {
  137. TbScIxrCmraStts state = TbScIxrCmraStts.builder()
  138. .ixrId(this.ixrId)
  139. .cmraId(this.cmraId)
  140. .drctDvsnCd(this.drctDvsnCd)
  141. .clctDt(CmmnCdManager.CMNC_STTS_ERROR_DT)
  142. .cmraStts(1)
  143. .build();
  144. this.state = state;
  145. }
  146. return this.state;
  147. }
  148. public TbScIxrCmraMngmDto toDto() {
  149. return TbScIxrCmraMngmDto.builder()
  150. .ixrId(this.ixrId)
  151. .cmraId(this.cmraId)
  152. .drctDvsnCd(this.drctDvsnCd)
  153. .istlLctn(this.istlLctn)
  154. .cmraIp(this.cmraIp)
  155. .cmraPort(this.cmraPort)
  156. .useEn(this.useEn)
  157. .cmraLognId(this.cmraLognId)
  158. .cmraLognPw(this.cmraLognPw)
  159. .cmraHttpPort(this.cmraHttpPort)
  160. .streUrl(this.streUrl)
  161. .cmraUrl(this.cmraUrl)
  162. .cmraType(this.cmraType)
  163. // .cmraXCrdn(this.cmraYCrdn)
  164. // .cmraYCrdn(this.cmraXCrdn)
  165. .cmraXCrdn(this.cmraXCrdn)
  166. .cmraYCrdn(this.cmraYCrdn)
  167. .cmraAngl(this.cmraAngl)
  168. .hmpgDsplEn(this.hmpgDsplEn)
  169. .busDvrsLaneEn(this.busDvrsLaneEn)
  170. .srvcAnlyEn(this.srvcAnlyEn)
  171. .laneCnt(this.laneCnt)
  172. .webRtcSvrIp(this.webRtcSvrIp)
  173. .webRtcSvrPort(this.webRtcSvrPort)
  174. .webRtcId(this.webRtcId)
  175. .rtcSvrIp(this.rtcSvrIp)
  176. .rtcSvrPort(this.rtcSvrPort)
  177. .rtcId(this.rtcId)
  178. .build();
  179. }
  180. public TbScIxrCmraSttsDto toSttsDto() {
  181. TbScIxrCmraSttsDto dto = TbScIxrCmraSttsDto.builder()
  182. .ixrId(this.ixrId)
  183. .cmraId(this.cmraId)
  184. .drctDvsnCd(this.drctDvsnCd)
  185. .istlLctn(this.istlLctn)
  186. .updtDt(CmmnCdManager.CMNC_STTS_ERROR_DT)
  187. .cmncSttsCd(CmmnCdManager.CMNC_STTS_ERROR)
  188. .build();
  189. if (this.state != null) {
  190. dto.setUpdtDt(this.state.getClctDt());
  191. dto.setCmraStts(this.state.getCmraStts());
  192. if (1 == this.state.getCmraStts()) {
  193. dto.setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
  194. }
  195. }
  196. dto.setMissSttsYn(ItsUtils.getMissSttsYn(dto.getUpdtDt()));
  197. if (("Y").equals(dto.getMissSttsYn())) {
  198. // 기준시각 보다 크기 때문에 상태정보를 통신두절로 설정
  199. dto.setCmncSttsCd(CmmnCdManager.CMNC_STTS_ERROR);
  200. }
  201. dto.setCmncSttsDesc(CmmnCdManager.getCodeDescShort(CmmnCdManager.CMNC_STTS_CD, dto.getCmncSttsCd()));
  202. return dto;
  203. }
  204. public TbScIxrCmraMngm(String ixrId, String cmraId, Integer drctDvsnCd) {
  205. this.ixrId = ixrId;
  206. this.cmraId = cmraId;
  207. this.drctDvsnCd = drctDvsnCd;
  208. }
  209. public void updateInfo(TbScIxrCmraMngmDto.TbScIxrCmraMngmUpdReq req) {
  210. this.istlLctn = req.getIstlLctn();
  211. this.cmraIp = req.getCmraIp();
  212. this.cmraPort = req.getCmraPort();
  213. this.useEn = req.getUseEn();
  214. this.cmraLognId = req.getCmraLognId();
  215. this.cmraLognPw = req.getCmraLognPw();
  216. this.cmraHttpPort = req.getCmraHttpPort();
  217. this.streUrl = req.getStreUrl();
  218. this.cmraUrl = req.getCmraUrl();
  219. this.cmraType = req.getCmraType();
  220. this.cmraXCrdn = req.getCmraXCrdn();
  221. this.cmraYCrdn = req.getCmraYCrdn();
  222. this.cmraAngl = req.getCmraAngl();
  223. this.hmpgDsplEn = req.getHmpgDsplEn();
  224. this.busDvrsLaneEn = req.getBusDvrsLaneEn();
  225. this.srvcAnlyEn = req.getSrvcAnlyEn();
  226. this.laneCnt = req.getLaneCnt();
  227. this.webRtcSvrIp = req.getWebRtcSvrIp();
  228. this.webRtcSvrPort = req.getWebRtcSvrPort();
  229. this.webRtcId = req.getWebRtcId();
  230. this.rtcSvrIp = req.getRtcSvrIp();
  231. this.rtcSvrPort = req.getRtcSvrPort();
  232. this.rtcId = req.getRtcId();
  233. }
  234. }