Bladeren bron

vms figure image management update

shjung 3 jaren geleden
bovenliggende
commit
64b509ae9f

+ 22 - 19
src/main/java/com/its/api/bis/controller/BisWallController.java

@@ -19,18 +19,7 @@ public class BisWallController {
 
     private final BisWallService service;
 
-    @ApiOperation(value = "BUS ROUTE 정보조회(getBusrouteInfo)", response = BusRouteInfoDto.class, responseContainer = "ArrayList")
-    @GetMapping(value = "/bus-routes", produces = {"application/json; charset=utf8"})
-    public List<BusRouteInfoDto> findAllBusRoute(@RequestParam(required = false) String route_name) {
-        return service.findAllBusRoute(route_name);
-    }
-
-    @ApiOperation(value = "BUS VEHICLE LIST 정보조회(getBusVehicleList)", response = BusVehicleListDto.class, responseContainer = "ArrayList")
-    @GetMapping(value = "/bus-vehicles", produces = {"application/json; charset=utf8"})
-    public List<BusVehicleListDto> findAllBusVehicleList(@RequestParam(required = false) String plate_no) {
-        return service.findAllBusVehicleList(plate_no);
-    }
-
+    // BIT
     @ApiOperation(value = "BIT LIST 조회(getBitList)", response = BitInfoDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/bit-lists", produces = {"application/json; charset=utf8"})
     public List<BitInfoDto> findAllBitList() {
@@ -38,21 +27,35 @@ public class BisWallController {
     }
 
     @ApiOperation(value = "BIT SEARCH LIST 조회(getBitSearchList)", response = BitInfoDto.class, responseContainer = "ArrayList")
-    @GetMapping(value = "/bis-search", produces = {"application/json; charset=utf8"})
+    @GetMapping(value = "/bit-search", produces = {"application/json; charset=utf8"})
     public List<BitInfoDto> findAllBitSearchList(@RequestParam(required = false) String bit_name) {
         return service.findAllBitSearchList(bit_name);
     }
 
+    // 팝업창
+    @ApiOperation(value = "BIT ROUTE 조회(getBitRouteInfo)", response = BitRouteInfoDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/bit-route", produces = {"application/json; charset=utf8"})
+    public List<BitRouteInfoDto> findAllBitRouteInfo(@RequestParam(required = false) String bit_id) {
+        return service.findAllBitRouteInfo(bit_id);
+    }
+
+    // BUS
+    @ApiOperation(value = "BUS VEHICLE LIST 정보조회(getBusVehicleList)", response = BusVehicleListDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/bus-vehicle-plate", produces = {"application/json; charset=utf8"})
+    public List<BusVehicleListDto> findAllBusVehicleList(@RequestParam(required = false) String plate_no) {
+        return service.findAllBusVehicleList(plate_no);
+    }
+
     @ApiOperation(value = "BUS VEHICLE SEARCH LIST 조회(getBusVehicleSearchList)", response = BusVehicleDto.class, responseContainer = "ArrayList")
-    @GetMapping(value = "/bus-vehicle/{bit_name}", produces = {"application/json; charset=utf8"})
-    public List<BusVehicleDto> findAllBusVehicleSearchList(@PathVariable final String bit_name) {
+    @GetMapping(value = "/bus-vehicle-bit", produces = {"application/json; charset=utf8"})
+    public List<BusVehicleDto> findAllBusVehicleSearchList(@RequestParam(required = false) String bit_name) {
         return service.findAllBusVehicleSearchList(bit_name);
     }
 
-    @ApiOperation(value = "BIT ROUTE 조회(getBitRouteInfo)", response = BitRouteInfoDto.class, responseContainer = "ArrayList")
-    @GetMapping(value = "/bit-route/{bit_id}", produces = {"application/json; charset=utf8"})
-    public List<BitRouteInfoDto> findAllBitRouteInfo(@PathVariable final String bit_id) {
-        return service.findAllBitRouteInfo(bit_id);
+    @ApiOperation(value = "BUS ROUTE 정보조회(getBusrouteInfo)", response = BusRouteInfoDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/bus-routes", produces = {"application/json; charset=utf8"})
+    public List<BusRouteInfoDto> findAllBusRoute(@RequestParam(required = false) String route_name) {
+        return service.findAllBusRoute(route_name);
     }
 
     @ApiOperation(value = "DRAW BUS STATION 정보조회(drawBusStation)", response = DrawBusStationDto.class, responseContainer = "ArrayList")

+ 16 - 0
src/main/java/com/its/api/its/controller/common/CommonController.java

@@ -1,7 +1,10 @@
 package com.its.api.its.controller.common;
 
 import com.its.api.its.model.dto.code.TbClctSystStupDto;
+import com.its.api.its.model.dto.common.CongestTrafficDto;
+import com.its.api.its.model.dto.common.WeatherInfoDto;
 import com.its.api.its.service.code.TbClctSystStupService;
+import com.its.api.its.service.common.CommonService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -20,6 +23,7 @@ import java.util.List;
 public class CommonController {
 
     private final TbClctSystStupService clctSystStupService;
+    private final CommonService commonService;
 
     // /api/database/clct-syst-stup 와 동일
     @ApiOperation(value = "수집시스템 조회(TB_CLCT_SYST_STUP)", response = TbClctSystStupDto.class, responseContainer = "ArrayList")
@@ -28,4 +32,16 @@ public class CommonController {
         return this.clctSystStupService.findAll();
     }
 
+    @ApiOperation(value = "지정체정보조회", response = CongestTrafficDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/congest-traffic", produces = {"application/json; charset=utf8"})
+    public List<CongestTrafficDto> findAllCongestTraffic() {
+        return this.commonService.findAllCongestTraffic();
+    }
+
+    @ApiOperation(value = "현재기상정보조회", response = WeatherInfoDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/weather-info", produces = {"application/json; charset=utf8"})
+    public List<WeatherInfoDto> findAllWeatherInfo() {
+        return this.commonService.findAllWeatherInfo();
+    }
+
 }

+ 1 - 1
src/main/java/com/its/api/its/global/UnitSystManager.java

@@ -28,7 +28,7 @@ public class UnitSystManager {
 
     public void load() {
 
-        List<TbUnitSyst> objList = repo.findAll();
+        List<TbUnitSyst> objList = repo.findAllUnitSystList();
         objList.forEach(obj -> {
             objMap.put(obj.getSystId(), obj);
         });

+ 53 - 0
src/main/java/com/its/api/its/model/dto/common/CongestTrafficDto.java

@@ -0,0 +1,53 @@
+package com.its.api.its.model.dto.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  DTO Class
+ */
+@Data
+@Builder
+@ApiModel("CongestTrafficDto(도로 지정체 정보)")
+public class CongestTrafficDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("정보제공구간ID")  // Y VARCHAR(4)
+    @JsonProperty("ifsc_id")
+    private String fcltType;
+
+    @ApiModelProperty("속도")  // Y VARCHAR(30)
+    @JsonProperty("sped")
+    private Integer sped;
+
+    @ApiModelProperty("소통등급")  // Y VARCHAR(100)
+    @JsonProperty("cmtr_grad_cd")
+    private String cmtrGradCd;
+
+    @ApiModelProperty("시점명")  // Y VARCHAR(256)
+    @JsonProperty("strt_nm")
+    private String strtNm;
+
+    @ApiModelProperty("종점명")  // Y VARCHAR(32)
+    @JsonProperty("end_nm")
+    private String endNm;
+
+    @ApiModelProperty("소통등급코드명")  // Y VARCHAR(1)
+    @JsonProperty("cmmn_cd_kor_nm")
+    private String cmmnCdKorNm;
+
+    @ApiModelProperty("구간거리")
+    @JsonProperty("sect_lngt")
+    private Integer sectLngt;
+
+    @ApiModelProperty("도로명")
+    @JsonProperty("atrd_nm")
+    private String atrdNm;
+
+
+}

+ 36 - 0
src/main/java/com/its/api/its/model/dto/common/NotifyDto.java

@@ -0,0 +1,36 @@
+package com.its.api.its.model.dto.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 링크 소통상황 DTO Class
+ */
+@Data
+@Builder
+@ApiModel("NotifyDto(통지메시지)")
+public class NotifyDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("통지정보")
+    @JsonProperty("notify")
+    private String notify;
+
+    @ApiModelProperty("통지시각")
+    @JsonProperty("notify_tm")
+    private String notifyTm;
+
+    @ApiModelProperty("통지시각")
+    @JsonProperty("notify_count")
+    private Integer notifyCount;
+
+    @ApiModelProperty("통지메시지")
+    @JsonProperty("notify_msg")
+    private String notifyMsg;
+
+}

+ 44 - 0
src/main/java/com/its/api/its/model/dto/common/WeatherInfoDto.java

@@ -0,0 +1,44 @@
+package com.its.api.its.model.dto.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  DTO Class
+ */
+@Data
+@Builder
+@ApiModel("WeatherInfoDto(기상 정보)")
+public class WeatherInfoDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("제공시각")  // Y VARCHAR(4)
+    @JsonProperty("announce_date")
+    private String announcdDate;
+
+    @ApiModelProperty("기상발효코드")  // Y VARCHAR(100)
+    @JsonProperty("announce_time_code")
+    private String announceTimeCode;
+
+    @ApiModelProperty("온도")  // Y VARCHAR(256)
+    @JsonProperty("temperature")
+    private String temperature;
+
+    @ApiModelProperty("날씨코드")  // Y VARCHAR(32)
+    @JsonProperty("weather_code")
+    private String weatherCode;
+
+    @ApiModelProperty("최저온도")  // Y VARCHAR(1)
+    @JsonProperty("min_temperature")
+    private String minTemperature;
+
+    @ApiModelProperty("최고온도")
+    @JsonProperty("max_temperature")
+    private String maxTemperature;
+
+}

+ 8 - 0
src/main/java/com/its/api/its/model/dto/vms/TbVmsSymbIfscDto.java

@@ -40,6 +40,14 @@ public class TbVmsSymbIfscDto implements Serializable {
     @JsonProperty("vms_ifsc_id")
     private Long vmsIfscId;
 
+    @ApiModelProperty("표출 시작 노드 명")  // Y VARCHAR(30)
+    @JsonProperty("dspl_strt_node_nm")
+    private String dsplStrtNodeNm;
+
+    @ApiModelProperty("표출 종료 노드 명")  // Y VARCHAR(30)
+    @JsonProperty("dspl_end_node_nm")
+    private String dsplEndNodeNm;
+
     // Code Description Field
     @ApiModel("TbVmsSymbIfscUpdReq(VMS 심벌 라이브러리 셀 구간정보 정보변경)")
     @Getter

+ 14 - 1
src/main/java/com/its/api/its/model/entity/vms/TbVmsSymbIfsc.java

@@ -4,6 +4,8 @@ import com.its.api.its.model.dto.vms.TbVmsSymbIfscDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -44,14 +46,25 @@ public class TbVmsSymbIfsc implements Serializable {
     @Column(name = "VMS_IFSC_ID", columnDefinition = "NUMBER", length = 10)
     private Long vmsIfscId;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="VMS_IFSC_ID", referencedColumnName = "VMS_IFSC_ID")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbVmsIfsc ifsc = new TbVmsIfsc();
+
     public TbVmsSymbIfscDto toDto() {
-        return TbVmsSymbIfscDto.builder()
+        TbVmsSymbIfscDto dto = TbVmsSymbIfscDto.builder()
                 .symbLibNmbr(this.symbLibNmbr)
                 .cellId(this.cellId)
                 .posx(this.posx)
                 .posy(this.posy)
                 .vmsIfscId(this.vmsIfscId)
                 .build();
+
+        if (this.ifsc != null) {
+            dto.setDsplStrtNodeNm(this.ifsc.getDsplStrtNodeNm());
+            dto.setDsplEndNodeNm(this.ifsc.getDsplEndNodeNm());
+        }
+        return dto;
     }
 
     public TbVmsSymbIfsc(Integer symbLibNmbr, Integer cellId) {

+ 13 - 0
src/main/java/com/its/api/its/repository/common/CommonMapper.java

@@ -0,0 +1,13 @@
+package com.its.api.its.repository.common;
+
+import com.its.api.its.model.dto.common.CongestTrafficDto;
+import com.its.api.its.model.dto.common.WeatherInfoDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface CommonMapper {
+    List<CongestTrafficDto> findAllCongestTraffic();
+    List<WeatherInfoDto> findAllWeatherInfo();
+}

+ 3 - 0
src/main/java/com/its/api/its/repository/unit/TbUnitSystRepository.java

@@ -16,4 +16,7 @@ public interface TbUnitSystRepository extends JpaRepository<TbUnitSyst, String>,
 
     @Query("select p from TbUnitSyst p left outer join fetch p.state where p.delYn = 'N' and p.sttsDsplYn = 'Y'")
     List<TbUnitSyst> findAllList();
+
+    @Query("select p from TbUnitSyst p left outer join fetch p.state where p.delYn = 'N'")
+    List<TbUnitSyst> findAllUnitSystList();
 }

+ 1 - 1
src/main/java/com/its/api/its/repository/vms/TbVmsSymbIfscRepository.java

@@ -14,7 +14,7 @@ import java.util.List;
 @Repository
 public interface TbVmsSymbIfscRepository extends JpaRepository<TbVmsSymbIfsc, TbVmsSymbIfscKey>, JpaSpecificationExecutor<TbVmsSymbIfsc> {
 
-    @Query("select p from TbVmsSymbIfsc p where p.symbLibNmbr = :id")
+    @Query("select p from TbVmsSymbIfsc p inner join fetch p.ifsc where p.symbLibNmbr = :id")
     List<TbVmsSymbIfsc> findDataById(@Param("id") Integer id);
 
     @Modifying

+ 36 - 0
src/main/java/com/its/api/its/service/common/CommonService.java

@@ -0,0 +1,36 @@
+package com.its.api.its.service.common;
+
+import com.its.api.its.model.dto.common.CongestTrafficDto;
+import com.its.api.its.model.dto.common.WeatherInfoDto;
+import com.its.api.its.repository.common.CommonMapper;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class CommonService {
+
+    private final CommonMapper repo;
+
+    /**
+     * 지정체구간 소통정보 조회
+     * @return
+     */
+    public List<CongestTrafficDto> findAllCongestTraffic() {
+        List<CongestTrafficDto> result = this.repo.findAllCongestTraffic();
+        return result;
+    }
+
+    /**
+     * 기상정보 조회
+     * @return
+     */
+    public List<WeatherInfoDto> findAllWeatherInfo() {
+        List<WeatherInfoDto> result = this.repo.findAllWeatherInfo();
+        return result;
+    }
+}

+ 10 - 0
src/main/java/com/its/api/utils/ItsUtils.java

@@ -26,6 +26,16 @@ public final class ItsUtils
 	public static final String SATURDAY     = "DTW6";
 	public static final String SUNDAY       = "DTW7";
 
+	public static String getCurrFiveMinString() {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(new Date());
+		cal.set(Calendar.SECOND, 0);
+		cal.set(Calendar.MILLISECOND, 0);
+		int min = cal.get(Calendar.MINUTE);
+		cal.add(Calendar.MINUTE, -(min % 5));
+		return new SimpleDateFormat("yyyyMMddHHmmss").format(cal.getTime());
+	}
+
 	public static Date getPrcsDt(String prcsDt) {
 		SimpleDateFormat transFormat = new SimpleDateFormat("yyyyMMddHHmmss");
 		Date to = null;

+ 1 - 1
src/main/java/com/its/api/websocket/ItsWebSocketSessionManager.java

@@ -61,7 +61,7 @@ public class ItsWebSocketSessionManager {
 
     public void sendBroadcastMessage(String command, TextMessage message) {
         this.sessionMap.forEach((key, value) -> {
-            log.info("{}, {}", command, message);
+            log.info("{}, {}, {}", command, message, key);
             value.sendMessage(command, message);
         });
     }

+ 68 - 9
src/main/java/com/its/api/xnetudp/thread/CenterCommServerReceiver.java

@@ -1,11 +1,19 @@
 package com.its.api.xnetudp.thread;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.its.api.its.model.dto.common.NotifyDto;
+import com.its.api.utils.ItsUtils;
+import com.its.api.websocket.ItsWebSocketMessage;
+import com.its.api.websocket.ItsWebSocketSessionManager;
 import com.its.api.xnetudp.protocol.CENTER_COMM_DEFINE;
 import com.its.api.xnetudp.protocol.CENTER_COMM_MESSAGE;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.web.socket.TextMessage;
 
+import javax.annotation.PostConstruct;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 
@@ -13,6 +21,13 @@ import java.nio.ByteOrder;
 @Service
 public class CenterCommServerReceiver {
 
+    private ObjectMapper mapper;
+
+    @PostConstruct
+    private void init() {
+        this.mapper = new ObjectMapper();
+    }
+
     @Async("centerCommExecutor")
     public void run(CENTER_COMM_MESSAGE data) {
         if (data == null) {
@@ -22,7 +37,21 @@ public class CenterCommServerReceiver {
 
         if (CENTER_COMM_DEFINE.INT_ID_TRAFFIC_SERVER == data.getSendId()) {
             if (CENTER_COMM_DEFINE.INT_OP_TRAFFIC_CHANGE == data.getOpCode()) {
-                log.error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ RECV Traffic server job completed.");
+                log.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ RECV Traffic server job completed.");
+                NotifyDto notifyDto = NotifyDto.builder()
+                        .notify("traffic")
+                        .notifyTm(ItsUtils.getCurrFiveMinString())
+                        .notifyCount(0)
+                        .notifyMsg("traffic")
+                        .build();
+                ItsWebSocketMessage socketMessage = new ItsWebSocketMessage("traffic", notifyDto);
+                try {
+                    String jsonData = this.mapper.writeValueAsString(socketMessage);
+                    ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(socketMessage.getCommand(), new TextMessage(jsonData));
+                }
+                catch(JsonProcessingException e){
+                    log.error("CenterCommServerReceiver NotifyDto Json parsing Exception: {}, {}", notifyDto, e.getMessage());
+                }
             }
             return;
         }
@@ -42,10 +71,45 @@ public class CenterCommServerReceiver {
                 byte msgSeq = byteBuffer.get();
                 log.error("OP CODE: {}, MsgSeq: {}", opCode, msgSeq);
                 switch(opCode) {
+                    case CENTER_COMM_DEFINE.INT_OP_VMS_FORM_SAVE:
+                        byte[] saveDt  = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_DATETIME];
+                        byteBuffer.get(saveDt);
+                        // VMS 폼을 데이터베이스에 저장(다운로드 결과는 알수 없음)
+                        log.info("INT_OP_VMS_FORM_SAVE: SaveTime: {}", new String(saveDt));
+                        NotifyDto notifyDto1 = NotifyDto.builder()
+                                .notify("form-save")
+                                .notifyTm(new String(saveDt))
+                                .notifyCount(0)
+                                .notifyMsg("form-save")
+                                .build();
+                        ItsWebSocketMessage socketMessage1 = new ItsWebSocketMessage("form-save", notifyDto1);
+                        try {
+                            String jsonData = this.mapper.writeValueAsString(socketMessage1);
+                            ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(socketMessage1.getCommand(), new TextMessage(jsonData));
+                        }
+                        catch(JsonProcessingException e){
+                            log.error("CenterCommServerReceiver NotifyDto Json parsing Exception: {}, {}", notifyDto1, e.getMessage());
+                        }
+                        break;
                     case CENTER_COMM_DEFINE.INT_OP_VMS_FORM_DOWNLOAD:
                         count = byteBuffer.get();
-                        log.error("INT_OP_VMS_FORM_DOWNLOAD: Count: {} EA", count);
-                        for (int ii = 0; ii < count; ii++) {
+                        // VMS 폼 다운로드 결과 데이터베이스 저장
+                        log.info("INT_OP_VMS_FORM_DOWNLOAD: Count: {} EA", count);
+                        NotifyDto notifyDto2 = NotifyDto.builder()
+                                .notify("form-download")
+                                .notifyTm(ItsUtils.getSysTime())
+                                .notifyCount(0)
+                                .notifyMsg("form-download")
+                                .build();
+                        ItsWebSocketMessage socketMessage2 = new ItsWebSocketMessage("form-download", notifyDto2);
+                        try {
+                            String jsonData = this.mapper.writeValueAsString(socketMessage2);
+                            ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(socketMessage2.getCommand(), new TextMessage(jsonData));
+                        }
+                        catch(JsonProcessingException e){
+                            log.error("CenterCommServerReceiver NotifyDto Json parsing Exception: {}, {}", notifyDto2, e.getMessage());
+                        }
+/*                        for (int ii = 0; ii < count; ii++) {
                             vmsId = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_ID];
                             byte[] downloadDt  = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_DATETIME];
                             byteBuffer.get(vmsId);
@@ -58,12 +122,7 @@ public class CenterCommServerReceiver {
                                 }
                             }
                             //log.error("{}, {}, {}, {}", ii+1, new String(vmsId).trim(), new String(downloadDt), result);
-                        }
-                        break;
-                    case CENTER_COMM_DEFINE.INT_OP_VMS_FORM_SAVE:
-                        byte[] saveDt  = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_DATETIME];
-                        byteBuffer.get(saveDt);
-                        log.error("INT_OP_VMS_FORM_SAVE: SaveTime: {}", new String(saveDt));
+                        }*/
                         break;
                     case CENTER_COMM_DEFINE.INT_OP_VMS_STATE_RES:
                         short total = byteBuffer.getShort();

+ 6 - 1
src/main/resources/mybatis/mapper/bis/BisWallMapper.xml

@@ -299,7 +299,9 @@
                COORDY
         FROM BIT
         WHERE USEFLAG = '1'
+        <if test='bitName != null and bitName != ""'>
           AND BITNAME LIKE '%' || #{bitName} || '%'
+        </if>
     </select>
 
     <select id="findAllBitRouteInfo" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BitRouteInfoDto">
@@ -355,7 +357,10 @@
                                  AND T2.LOCATIONNO > 0
                                ORDER BY T2.SERVICETYPE, T2.PREDICTTIME
                            ) A, BIT_BUSSTATION B
-                       WHERE B.BITID = #{bitId}
+                       WHERE 1 = 1
+        <if test='bitId != null and bitId != ""'>
+                         AND B.BITID = #{bitId}
+        </if>
                          AND A.BUSSTOPID = B.STATIONID)
                   START WITH RNUM = 1
                   CONNECT BY PRIOR RNUM = RNUM - 1 AND PRIOR BUSROUTEID = BUSROUTEID

+ 71 - 0
src/main/resources/mybatis/mapper/its/common/CommonMapper.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.its.api.its.repository.common.CommonMapper">
+
+    <select id="findAllCongestTraffic" resultType="com.its.api.its.model.dto.common.CongestTrafficDto">
+        SELECT * FROM
+            (SELECT
+                 AA.IFSC_ID,
+                 AA.SPED,
+                 AA.CMTR_GRAD_CD,
+                 AA.STRT_NM,
+                 AA.END_NM,
+                 AA.CMMN_CD_KOR_NM,
+                 ROUND(AA.SECT_LNGT / 1000,2) SECT_LNGT,
+                 BB.ATRD_NM
+             FROM
+                 (
+                     SELECT
+                         A.IFSC_ID,
+                         A.SPED,
+                         A.CMTR_GRAD_CD,
+                         B.STRT_NM,
+                         B.END_NM,
+                         B.SECT_LNGT,
+                         C.CMMN_CD_KOR_NM
+                     FROM
+                         TB_IFSC_TRAF A,
+                         TB_IFSC B,
+                         TB_CMMN_CD C
+                     WHERE A.IFSC_ID = B.IFSC_ID
+                       AND C.CMMN_CLSF_CD = 'LTC'
+                       AND A.CMTR_GRAD_CD = C.CMMN_CD
+                       AND (A.CMTR_GRAD_CD = 'LTC2' OR A.CMTR_GRAD_CD = 'LTC3')
+                 ) AA LEFT OUTER JOIN
+                 (
+                     SELECT
+                         A.IFSC_ID,
+                         D.ATRD_NM
+                     FROM
+                         TB_IFSC A,
+                         TB_ROAD_IFSC_RLTN B,
+                         TB_ATRD_ROAD_RLTN C,
+                         TB_ATRD D
+                     WHERE
+                         A.IFSC_ID = B.IFSC_ID
+                       AND B.ROAD_ID = C.ROAD_ID
+                       AND C.ATRD_ID = D.ATRD_ID
+                 ) BB
+                 ON AA.IFSC_ID = BB.IFSC_ID
+            )
+        WHERE ATRD_NM IS NOT NULL
+    </select>
+
+    <select id="findAllWeatherInfo" resultType="com.its.api.its.model.dto.common.WeatherInfoDto">
+        SELECT * FROM
+            (SELECT
+                 ANNOUNCEDATE,
+                 ANNOUNCETIMECODE,
+                 NVL(TEMPERATURE,'-') TEMPERATURE,
+                 WEATHERCODE,
+                 MINTEMPERATURE,
+                 MAXTEMPERATURE
+             FROM KMA_OVERLAND
+             WHERE ANNOUNCEDATE > SYSDATE - 1
+               AND ANNOUNCETIMECODE = 0
+             ORDER BY ANNOUNCEDATE DESC)
+        WHERE ROWNUM = 1
+    </select>
+
+</mapper>