shjung 1 год назад
Родитель
Сommit
e485bfdb38
31 измененных файлов с 203 добавлено и 882 удалено
  1. 4 2
      src/main/java/com/ggits/comm/server/GgitsCommServerApplication.java
  2. 11 0
      src/main/java/com/ggits/comm/server/config/ThreadPoolInitializer.java
  3. 2 25
      src/main/java/com/ggits/comm/server/dao/mapper/IntMapper.java
  4. 3 3
      src/main/java/com/ggits/comm/server/dao/mapper/batch/SigIntDao.java
  5. 0 26
      src/main/java/com/ggits/comm/server/dao/vo/AbstractDbmsVo.java
  6. 0 12
      src/main/java/com/ggits/comm/server/dao/vo/AlarmConfigVo.java
  7. 0 19
      src/main/java/com/ggits/comm/server/dao/vo/AlarmOccrVo.java
  8. 0 20
      src/main/java/com/ggits/comm/server/dao/vo/CommStatusVo.java
  9. 0 22
      src/main/java/com/ggits/comm/server/dao/vo/KafkaTransVo.java
  10. 0 11
      src/main/java/com/ggits/comm/server/dao/vo/NodeAddDetailVo.java
  11. 0 11
      src/main/java/com/ggits/comm/server/dao/vo/NodeAddVo.java
  12. 0 19
      src/main/java/com/ggits/comm/server/dao/vo/NodeStatusVo.java
  13. 0 14
      src/main/java/com/ggits/comm/server/dao/vo/NodeVo.java
  14. 0 17
      src/main/java/com/ggits/comm/server/dao/vo/ProcessStateVo.java
  15. 0 44
      src/main/java/com/ggits/comm/server/dto/CurrTodDto.java
  16. 0 27
      src/main/java/com/ggits/comm/server/dto/CurrTransDto.java
  17. 0 73
      src/main/java/com/ggits/comm/server/entity/TbCurrTod.java
  18. 0 41
      src/main/java/com/ggits/comm/server/entity/TbCurrTrans.java
  19. 0 25
      src/main/java/com/ggits/comm/server/entity/TbIntUnknown.java
  20. 0 22
      src/main/java/com/ggits/comm/server/entity/TbUnitSyst.java
  21. 0 17
      src/main/java/com/ggits/comm/server/entity/TbUnitSystStts.java
  22. 1 9
      src/main/java/com/ggits/comm/server/process/dbms/DbmsData.java
  23. 1 1
      src/main/java/com/ggits/comm/server/process/dbms/DbmsDataAsyncTask.java
  24. 3 12
      src/main/java/com/ggits/comm/server/process/dbms/DbmsDataProcess.java
  25. 17 0
      src/main/java/com/ggits/comm/server/process/kafka/KafkaDataAsyncTask.java
  26. 116 0
      src/main/java/com/ggits/comm/server/process/kafka/KafkaDataProcess.java
  27. 6 5
      src/main/java/com/ggits/comm/server/process/work/GgitsPacketProcess.java
  28. 36 16
      src/main/java/com/ggits/comm/server/process/work/GgitsPacketWorker.java
  29. 1 1
      src/main/java/com/ggits/comm/server/service/UnitSystService.java
  30. 2 1
      src/main/resources/application.yml
  31. 0 387
      src/main/resources/mybatis/mapper/IntMapper.xml

+ 4 - 2
src/main/java/com/ggits/comm/server/GgitsCommServerApplication.java

@@ -2,6 +2,7 @@ package com.ggits.comm.server;
 
 import com.ggits.comm.server.common.SpringUtils;
 import com.ggits.comm.server.process.dbms.DbmsDataProcess;
+import com.ggits.comm.server.process.kafka.KafkaDataProcess;
 import com.ggits.comm.server.process.work.GgitsPacketProcess;
 import com.ggits.comm.server.repository.ApplicationRepository;
 import com.ggits.comm.server.udp.SigGgitsTsinfoUdpServer;
@@ -22,6 +23,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+//JAVA_OPTS = -Xms128m -Xmx1303m -Xss256k
 @Slf4j
 @SpringBootApplication
 @EnableTransactionManagement
@@ -57,8 +59,8 @@ public class GgitsCommServerApplication implements CommandLineRunner, Applicatio
         DbmsDataProcess dbmsDataProcess = SpringUtils.getBean(DbmsDataProcess.class);
         dbmsDataProcess.run();
 
-//        WorkDataProcess workDataProcess = SpringUtils.getBean(WorkDataProcess.class);
-//        workDataProcess.run();
+        KafkaDataProcess kafkaDataProcess = SpringUtils.getBean(KafkaDataProcess.class);
+        kafkaDataProcess.run();
 
         ApplicationRepository applicationRepository = SpringUtils.getBean(ApplicationRepository.class);
         applicationRepository.loadDb();

+ 11 - 0
src/main/java/com/ggits/comm/server/config/ThreadPoolInitializer.java

@@ -22,6 +22,7 @@ import java.util.concurrent.Executor;
 public class ThreadPoolInitializer extends AsyncConfigurerSupport {
     private int work = 0;
     private int dbms = 0;
+    private int kafka = 0;
 
     @PostConstruct
     private void init() {
@@ -31,6 +32,9 @@ public class ThreadPoolInitializer extends AsyncConfigurerSupport {
         if (this.dbms <= 0) {
             this.dbms = 30;
         }
+        if (this.kafka <= 0) {
+            this.kafka = 30;
+        }
         log.info("{}", this);
     }
     public ThreadPoolTaskExecutor getDefaultExecutor(int poolSize) {
@@ -59,4 +63,11 @@ public class ThreadPoolInitializer extends AsyncConfigurerSupport {
         return threadPoolTaskExecutor;
     }
 
+    @Bean(name="kafkaDataExecutor")
+    public Executor getKafkaDataExecutor() {
+        ThreadPoolTaskExecutor threadPoolTaskExecutor = getDefaultExecutor(this.kafka*2);
+        threadPoolTaskExecutor.setThreadNamePrefix("kafka-pool-");
+        threadPoolTaskExecutor.initialize();
+        return threadPoolTaskExecutor;
+    }
 }

+ 2 - 25
src/main/java/com/ggits/comm/server/dao/mapper/IntMapper.java

@@ -1,39 +1,16 @@
 package com.ggits.comm.server.dao.mapper;
 
-import com.ggits.comm.server.entity.TbCurrTod;
-import com.ggits.comm.server.entity.TbCurrTrans;
 import com.ggits.comm.server.entity.TbInt;
-import com.ggits.comm.server.entity.TbIntUnknown;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 @Mapper
 public interface IntMapper {
 
-    List<TbInt> selectGgitsIntAll();
     List<TbInt> selectAll(@Param("regionCd") String regionCd);
-    List<TbCurrTrans> selectCurrTransAll(@Param("regionCd") String regionCd);
-    List<TbCurrTod> selectCurrTodAll(@Param("regionCd") String regionCd);
-    int insertIntUnknown(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownPhase(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownStatus(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownResrvPlan(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownPlan(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownOperPlan(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownHolyDdPlan(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownDyPlan(@Param("obj") TbIntUnknown obj);
-    int insertIntUnknownSignalMap(@Param("obj") TbIntUnknown obj);
+    int updateIntPhaseStts(@Param("obj") HashMap<String, Object> obj);
 
-    int initIntStts();
-    int initIntPlan();
-    int initIntOperPlan();
-    int initIntDyPlan();
-    int initIntResrvPlan();
-    int initIntHolyDdPlan();
-    int initIntSignalMap();
-//    int updateIntPhaseStts(Map<String, Object> obj);
-    int updateIntStaticCycle(Map<String, Object> obj);
 }

+ 3 - 3
src/main/java/com/ggits/comm/server/dao/mapper/batch/SigIntDao.java

@@ -19,7 +19,7 @@ public class SigIntDao extends BatchDaoService {
         this.serviceName = "SigIntDao";//this.getClass().getName();
     }
 
-    public List<HashMap<String, Object>> getSttsList(List<IntStatusDto> req) {
+    public List<HashMap<String, Object>> getIntPhaseSttsList(List<IntStatusDto> req) {
         List<HashMap<String, Object>> lists = new ArrayList<>();
         req.forEach(obj -> {
             HashMap<String, Object> param = new HashMap<>();
@@ -64,10 +64,10 @@ public class SigIntDao extends BatchDaoService {
         return lists;
     }
 
-    public int updateStatus(List<IntStatusDto> req) {
+    public int updateIntPhaseStts(List<IntStatusDto> req) {
 //        log.info("{}.updateStatus: START. {} EA", this.serviceName, req.size());
 //        Elapsed elapsed = new Elapsed();
-        int total = updateBatch("updateIntPhaseStts", getSttsList(req));
+        int total = updateBatch("updateIntPhaseStts", getIntPhaseSttsList(req));
 //        log.info("{}.updateStatus: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
         return total;
     }

+ 0 - 26
src/main/java/com/ggits/comm/server/dao/vo/AbstractDbmsVo.java

@@ -1,26 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import com.ggits.app.common.utils.TimeUtils;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public abstract class AbstractDbmsVo {
-
-    public static final int DBMS_NODE_STATUS = 1;
-    public static final int DBMS_TPMS_STAT_1S = 2;
-    public static final int DBMS_KAFKA_TRANS_HS = 3;
-    public static final int DBMS_ALARM_OCCR_HS = 4;
-    public static final int DBMS_PROCESS_STATE = 5;
-
-    protected int dbmsType;
-    protected String eventDt;
-
-    public AbstractDbmsVo(int dbmsType) {
-        this.dbmsType = dbmsType;
-        this.eventDt = TimeUtils.getCurrentTimeString();
-    }
-}

+ 0 - 12
src/main/java/com/ggits/comm/server/dao/vo/AlarmConfigVo.java

@@ -1,12 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Data;
-
-@Data
-public class AlarmConfigVo {
-
-    private String alarmCode;
-    private String desc;
-    private int    value;
-    private String useYn;
-}

+ 0 - 19
src/main/java/com/ggits/comm/server/dao/vo/AlarmOccrVo.java

@@ -1,19 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class AlarmOccrVo extends AbstractDbmsVo {
-
-    protected String alarmCode;
-    protected String alarmTarget;
-    protected String alarmValue;
-
-    public AlarmOccrVo(int dbmsType) {
-        super(dbmsType);
-    }
-}

+ 0 - 20
src/main/java/com/ggits/comm/server/dao/vo/CommStatusVo.java

@@ -1,20 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class CommStatusVo extends AbstractDbmsVo {
-
-    protected int sessions;
-    protected long trans;
-    protected long bytes;
-
-    public CommStatusVo(int statType) {
-        super(statType);
-    }
-
-}

+ 0 - 22
src/main/java/com/ggits/comm/server/dao/vo/KafkaTransVo.java

@@ -1,22 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class KafkaTransVo extends AbstractDbmsVo {
-
-    protected long sendNanoTime;
-    protected String hostName;
-    protected long status;
-    protected long sendTm;
-    protected long recvTm;
-
-    public KafkaTransVo(int statType) {
-        super(statType);
-    }
-
-}

+ 0 - 11
src/main/java/com/ggits/comm/server/dao/vo/NodeAddDetailVo.java

@@ -1,11 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Data;
-
-@Data
-public class NodeAddDetailVo {
-    private Long nodeId;
-    private int originDirCode;
-    private int addNodeOrder;
-    private String addDirCode;
-}

+ 0 - 11
src/main/java/com/ggits/comm/server/dao/vo/NodeAddVo.java

@@ -1,11 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class NodeAddVo {
-    private Long originNodeId;
-    private List<NodeAddDetailVo> addDetailList;
-}

+ 0 - 19
src/main/java/com/ggits/comm/server/dao/vo/NodeStatusVo.java

@@ -1,19 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class NodeStatusVo extends AbstractDbmsVo {
-
-    private long nodeId;
-    private int status;
-    private String ipAddr;
-
-    public NodeStatusVo(int dbmsType) {
-        super(dbmsType);
-    }
-}

+ 0 - 14
src/main/java/com/ggits/comm/server/dao/vo/NodeVo.java

@@ -1,14 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Data;
-
-@Data
-public class NodeVo {
-
-    private Long nodeId;
-    private String ipAddr;
-    private String useYn;
-    private String cvimYn;
-    private String nodeYn;
-    private String testYn;
-}

+ 0 - 17
src/main/java/com/ggits/comm/server/dao/vo/ProcessStateVo.java

@@ -1,17 +0,0 @@
-package com.ggits.comm.server.dao.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class ProcessStateVo extends AbstractDbmsVo {
-
-    protected String processId;
-
-    public ProcessStateVo(int dbmsType) {
-        super(dbmsType);
-    }
-}

+ 0 - 44
src/main/java/com/ggits/comm/server/dto/CurrTodDto.java

@@ -1,44 +0,0 @@
-package com.ggits.comm.server.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class CurrTodDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String regionCd;    /* 지역 코드 */
-    private int intNo;
-    private int planNo;
-    private int idxNo;
-    private int hour;
-    private int minute;
-    private int cycle;
-    private int offset;
-
-    private int splitA1;
-    private int splitA2;
-    private int splitA3;
-    private int splitA4;
-    private int splitA5;
-    private int splitA6;
-    private int splitA7;
-    private int splitA8;
-
-    private int splitB1;
-    private int splitB2;
-    private int splitB3;
-    private int splitB4;
-    private int splitB5;
-    private int splitB6;
-    private int splitB7;
-    private int splitB8;
-
-}

+ 0 - 27
src/main/java/com/ggits/comm/server/dto/CurrTransDto.java

@@ -1,27 +0,0 @@
-package com.ggits.comm.server.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class CurrTransDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String regionCd;    /* 지역 코드 */
-    private int intNo;          /* 교차로번호 */
-    private int ringNo;
-    private int planTp;
-    private int stepNo;
-    private int minTm;
-    private int maxTm;
-    private int eop;
-    private int intMainPhase;
-
-}

+ 0 - 73
src/main/java/com/ggits/comm/server/entity/TbCurrTod.java

@@ -1,73 +0,0 @@
-package com.ggits.comm.server.entity;
-
-import com.ggits.comm.server.dto.CurrTodDto;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class TbCurrTod implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String regionCd;    /* 지역 코드 */
-    private int intNo;
-    private int planNo;
-    private int idxNo;
-    private int hour;           /* 소속 교차로그룹의 정보와 동일 */
-    private int minute;         /* 소속 교차로그룹의 정보와 동일 */
-    private int cycle;          /* 소속 교차로그룹의 정보와 동일 */
-    private int offset;
-
-    private int splitA1;
-    private int splitA2;
-    private int splitA3;
-    private int splitA4;
-    private int splitA5;
-    private int splitA6;
-    private int splitA7;
-    private int splitA8;
-
-    private int splitB1;
-    private int splitB2;
-    private int splitB3;
-    private int splitB4;
-    private int splitB5;
-    private int splitB6;
-    private int splitB7;
-    private int splitB8;
-
-    public CurrTodDto toDto() {
-        return CurrTodDto.builder()
-                .regionCd(this.regionCd)
-                .intNo(this.intNo)
-                .planNo(this.planNo)
-                .idxNo(this.idxNo)
-                .hour(this.hour)
-                .minute(this.minute)
-                .cycle(this.cycle)
-                .offset(this.offset)
-                .splitA1(this.splitA1)
-                .splitA2(this.splitA2)
-                .splitA3(this.splitA3)
-                .splitA4(this.splitA4)
-                .splitA5(this.splitA5)
-                .splitA6(this.splitA6)
-                .splitA7(this.splitA7)
-                .splitA8(this.splitA8)
-                .splitB1(this.splitB1)
-                .splitB2(this.splitB2)
-                .splitB3(this.splitB3)
-                .splitB4(this.splitB4)
-                .splitB5(this.splitB5)
-                .splitB6(this.splitB6)
-                .splitB7(this.splitB7)
-                .splitB8(this.splitB8)
-                .build();
-    }
-}

+ 0 - 41
src/main/java/com/ggits/comm/server/entity/TbCurrTrans.java

@@ -1,41 +0,0 @@
-package com.ggits.comm.server.entity;
-
-import com.ggits.comm.server.dto.CurrTransDto;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class TbCurrTrans implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String regionCd;    /* 지역 코드 */
-    private int intNo;          /* 교차로번호 */
-    private int ringNo;
-    private int planTp;
-    private int stepNo;
-    private int minTm;
-    private int maxTm;
-    private int eop;
-    private int intMainPhase;
-
-    public CurrTransDto toDto() {
-        return CurrTransDto.builder()
-                .regionCd(this.regionCd)
-                .intNo(this.intNo)
-                .ringNo(this.ringNo)
-                .planTp(this.planTp)
-                .stepNo(this.stepNo)
-                .minTm(this.minTm)
-                .maxTm(this.maxTm)
-                .eop(this.eop)
-                .intMainPhase(this.intMainPhase)
-                .build();
-    }
-}

+ 0 - 25
src/main/java/com/ggits/comm/server/entity/TbIntUnknown.java

@@ -1,25 +0,0 @@
-package com.ggits.comm.server.entity;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class TbIntUnknown implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String regionCd;    /* 지역 코드 */
-    private int intNo;          /* 교차로번호 */
-    private String intNm;       /* 그룹번호 */
-
-    private int pNum;
-    private int iNum;
-    private int oNum;
-
-}

+ 0 - 22
src/main/java/com/ggits/comm/server/entity/TbUnitSyst.java

@@ -1,22 +0,0 @@
-package com.ggits.comm.server.entity;
-
-import lombok.Builder;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-@Getter
-@Setter
-@Builder
-public class TbUnitSyst implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String systId;      //	N	VARCHAR2(30)	N			시스템 ID
-    private String systType;    //	N	VARCHAR2(7)	    Y			시스템 유형
-    private String systNm;      //	N	VARCHAR2(100)	Y			시스템 명
-    private String systIp1;     //	N	VARCHAR2(20)	Y			시스템 IP_1
-    private String systIp2;     //	N	VARCHAR2(20)	Y			시스템 IP_2
-    private int prgmPort;       //	N	VARCHAR2(5)	    Y			프로그램 포트
-    private String delYn;
-}

+ 0 - 17
src/main/java/com/ggits/comm/server/entity/TbUnitSystStts.java

@@ -1,17 +0,0 @@
-package com.ggits.comm.server.entity;
-
-import lombok.Builder;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-@Getter
-@Setter
-@Builder
-public class TbUnitSystStts implements Serializable {
-    private static final long serialVersionUID = 1L;
-    private String SYST_ID;
-    private String UPDT_DT;
-    private String SYST_STTS_CD;
-}

+ 1 - 9
src/main/java/com/ggits/comm/server/process/dbms/DbmsData.java

@@ -20,10 +20,9 @@ public class DbmsData {
     private String       regionCd;
     private int          regionId;
     private int          type;
-    private boolean      isHistory;
     private Object       data;
 
-    public DbmsData(RegionCenter center, int qIdx, long timestamp, long popTimestamp, long parseTimestamp, String regionCd, int regionId, int type, boolean isHistory, Object data) {
+    public DbmsData(RegionCenter center, int qIdx, long timestamp, long popTimestamp, long parseTimestamp, String regionCd, int regionId, int type, Object data) {
         this.center = center;
         this.qIdx = qIdx;
         this.timestamp = timestamp;
@@ -32,14 +31,7 @@ public class DbmsData {
         this.regionCd = regionCd;
         this.regionId = regionId;
         this.type      = type;
-        this.isHistory = isHistory;
         this.data      = data;
     }
 
-    public long getPopTimestamp() {
-        return this.popTimestamp - this.timestamp;
-    }
-    public long getParsingTimestamp() {
-        return this.parseTimestamp - this.popTimestamp;
-    }
 }

+ 1 - 1
src/main/java/com/ggits/comm/server/process/dbms/DbmsDataAsyncTask.java

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class DbmsDataAsyncTask {
 
-    @Async("workDataExecutor")
+    @Async("dbmsDataExecutor")
     public void run(DbmsDataProcess process, DbmsData data) {
         process.runJob(data);
     }

+ 3 - 12
src/main/java/com/ggits/comm/server/process/dbms/DbmsDataProcess.java

@@ -9,7 +9,6 @@ import com.ggits.comm.server.dto.IntStatusDto;
 import com.ggits.comm.server.dto.RegionCenter;
 import com.ggits.comm.server.entity.TbProcessState;
 import com.ggits.comm.server.entity.TbRegionCenterComm;
-import com.ggits.comm.server.kafka.KafkaProducerService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -24,11 +23,10 @@ import java.util.concurrent.ThreadPoolExecutor;
 @Service
 public class DbmsDataProcess {
 
-    private final LinkedBlockingQueue<DbmsData> dbmsDataBlockingQueue = new LinkedBlockingQueue<>(2000);
+    private final LinkedBlockingQueue<DbmsData> dbmsDataBlockingQueue = new LinkedBlockingQueue<>(1000);
     private final ThreadPoolExecutor taskExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(1);
 
     private final DbmsDataAsyncTask asyncTask;
-    private final KafkaProducerService kafkaProducer;
     private final ProcessMapper processMapper;
     private final RegionCenterMapper centerMapper;
     private final SigIntDao sigIntDao;
@@ -91,14 +89,7 @@ public class DbmsDataProcess {
                         return;
                     }
                     List<IntStatusDto> intStatusLists = (List<IntStatusDto>)data.getData();
-                    intStatusLists.forEach(status -> {
-                        if (status.getNodeId() > 1000000000) {
-                            this.kafkaProducer.sendNode(Long.toString(status.getNodeId()), status.getKafkaData());
-                            this.kafkaProducer.sendSig(Long.toString(status.getNodeId()), status.getKafkaData());
-                        }
-                    });
-
-                    cnt = this.sigIntDao.updateStatus(intStatusLists);
+                    cnt = this.sigIntDao.updateIntPhaseStts(intStatusLists);
 //                    log.info("INT_STATUS_UPDATE: [{}, {}], {}",
 //                            data.getRegionCd(), data.getRegionId(),
 //                            String.format("%4d/%4d EA. Pop(%5d)/Parsing(%5d)/Dbms(%5d)/Total(%5d) ms.",
@@ -107,7 +98,7 @@ public class DbmsDataProcess {
 //                                    System.currentTimeMillis() - start,
 //                                    System.currentTimeMillis() - data.getTimestamp()));
 
-                    intStatusLists.clear();
+//                    intStatusLists.clear();
                     break;
                 case DbmsData.DBMS_DATA_CENTER_STTS:
                     TbRegionCenterComm stts = (TbRegionCenterComm) data.getData();

+ 17 - 0
src/main/java/com/ggits/comm/server/process/kafka/KafkaDataAsyncTask.java

@@ -0,0 +1,17 @@
+package com.ggits.comm.server.process.kafka;
+
+import com.ggits.comm.server.process.dbms.DbmsData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class KafkaDataAsyncTask {
+
+    @Async("kafkaDataExecutor")
+    public void run(KafkaDataProcess process, DbmsData data) {
+        process.runJob(data);
+    }
+
+}

+ 116 - 0
src/main/java/com/ggits/comm/server/process/kafka/KafkaDataProcess.java

@@ -0,0 +1,116 @@
+package com.ggits.comm.server.process.kafka;
+
+import com.ggits.comm.server.common.SpringUtils;
+import com.ggits.comm.server.config.ThreadPoolInitializer;
+import com.ggits.comm.server.dto.IntStatusDto;
+import com.ggits.comm.server.dto.RegionCenter;
+import com.ggits.comm.server.kafka.KafkaProducerService;
+import com.ggits.comm.server.process.dbms.DbmsData;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class KafkaDataProcess {
+
+    private final LinkedBlockingQueue<DbmsData> kafkaDataBlockingQueue = new LinkedBlockingQueue<>(2000);
+    private final ThreadPoolExecutor taskExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(1);
+
+    private final KafkaDataAsyncTask asyncTask;
+    private final KafkaProducerService kafkaProducer;
+
+    public void run() {
+        log.info("KafkaDataProcess.run: Start.");
+        ThreadPoolInitializer poolInitializer = SpringUtils.getBean(ThreadPoolInitializer.class);
+        int executePool = poolInitializer.getKafka();
+        for (int ii = 0; ii < executePool; ii++) {
+            log.info("KafkaDataProcess.Task: {}", ii);
+            this.taskExecutor.execute(() -> {
+                boolean isRunning = true;
+                while (isRunning) {
+                    try {
+                        DbmsData data = kafkaDataBlockingQueue.take();
+                        asyncTask.run(this, data);
+//                        runJob(data);
+                    }
+                    catch (Exception e) {
+                        log.error("KafkaDataProcess.Task: Exception: {}", e.getMessage(), e);
+                        Thread.currentThread().interrupt();
+                        isRunning = false;
+                    }
+                }
+            });
+        }
+
+        log.info("KafkaDataProcess.run: ..End.");
+    }
+
+    public void runJob(DbmsData data) {
+        process(data);
+    }
+
+    public void process(DbmsData data) {
+        try {
+            if (DbmsData.DBMS_DATA_INT_STATUS_UPDATE == data.getType()) {
+                RegionCenter center = data.getCenter();
+                if (center == null) {
+                    log.error("RegionCenter is null");
+                    return;
+                }
+                List<IntStatusDto> intStatusLists = (List<IntStatusDto>)data.getData();
+                int count = 0;
+                for (IntStatusDto status : intStatusLists) {
+                    if (status.getNodeId() > 1000000000) {
+                        count++;
+                    }
+                }
+                if (count > 0) {
+                    ByteBuffer buffer = ByteBuffer.allocate((count * IntStatusDto.MAX_KAFKA_DATA_SIZE) + 2);
+                    buffer.order(ByteOrder.BIG_ENDIAN);
+                    buffer.putShort((short)count);
+                    for (IntStatusDto status : intStatusLists) {
+                        if (status.getNodeId() > 1000000000) {
+                            buffer.put(status.getKafkaData());
+                        }
+                    }
+                    this.kafkaProducer.sendSig(center.getRegionCd(), buffer.array());
+                }
+//                intStatusLists.forEach(status -> {
+//                    if (status.getNodeId() > 1000000000) {
+//                        this.kafkaProducer.sendNode(Long.toString(status.getNodeId()), status.getKafkaData());
+//                        this.kafkaProducer.sendSig(Long.toString(status.getNodeId()), status.getKafkaData());
+//                    }
+//                });
+            }
+        }
+        catch (Exception e) {
+            log.error("KafkaDataProcess.process: Exception: {}", e.toString());
+        }
+    }
+
+    /*
+     *  작업큐에 데이터 추가
+     */
+    public boolean add(DbmsData data) {
+        boolean offer = false;
+        try {
+            offer = kafkaDataBlockingQueue.offer(data);
+            if (!offer) {
+                log.error("KafkaDataProcess.add: Queue Full Error, Size: {} EA", kafkaDataBlockingQueue.size());
+            }
+        } catch (Exception e) {
+            log.error("KafkaDataProcess.add: Exception: {}", e.getMessage(), e);
+        }
+        return offer;
+    }
+
+}

+ 6 - 5
src/main/java/com/ggits/comm/server/process/work/GgitsPacketProcess.java

@@ -1,10 +1,10 @@
 package com.ggits.comm.server.process.work;
 
 import com.ggits.comm.server.config.ApplicationConfig;
-import com.ggits.comm.server.kafka.KafkaProducerService;
 import com.ggits.comm.server.process.AbstractAppProcess;
 import com.ggits.comm.server.process.AbstractAppWorker;
 import com.ggits.comm.server.process.dbms.DbmsDataProcess;
+import com.ggits.comm.server.process.kafka.KafkaDataProcess;
 import com.ggits.comm.server.repository.ApplicationRepository;
 import com.ggits.comm.server.udp.SigGgitsTsinfoDto;
 import lombok.AllArgsConstructor;
@@ -23,12 +23,12 @@ public class GgitsPacketProcess extends AbstractAppProcess {
 
     private final ApplicationConfig config;
     private final DbmsDataProcess dbmsDataProcess;
+    private final KafkaDataProcess kafkaDataProcess;
     private final ApplicationRepository repo;
-    private final KafkaProducerService kafkaProducer;
 
     @PostConstruct
     void init() {
-        this.workerGroup = new ThreadGroup("PacketProcess");
+        this.workerGroup = new ThreadGroup("GgitsPacketProcess");
     }
 
     public boolean add(Object object, int idx) {
@@ -60,7 +60,7 @@ public class GgitsPacketProcess extends AbstractAppProcess {
         qSize *= 4;
         qSize /= this.workers;
         for (int ii = 0; ii < this.workers; ii++) {
-            GgitsPacketWorker packetWorker = new GgitsPacketWorker(ii, qSize, this.repo, this.dbmsDataProcess, this.kafkaProducer);
+            GgitsPacketWorker packetWorker = new GgitsPacketWorker(ii, qSize, this.repo, this.dbmsDataProcess, this.kafkaDataProcess);
             this.workerList.add(packetWorker);
             Thread worker = new Thread(workerGroup, packetWorker);
             worker.setName(String.format("PacketWorker-%03d.%03d", this.workers, ii+1));
@@ -73,7 +73,7 @@ public class GgitsPacketProcess extends AbstractAppProcess {
     }
 
     public void stop() {
-
+        log.info("Stopping");
     }
 
     public void report() {
@@ -81,4 +81,5 @@ public class GgitsPacketProcess extends AbstractAppProcess {
             worker.report();
         }
     }
+
 }

+ 36 - 16
src/main/java/com/ggits/comm/server/process/work/GgitsPacketWorker.java

@@ -5,10 +5,10 @@ import com.ggits.comm.server.dto.IntDto;
 import com.ggits.comm.server.dto.IntStatusDto;
 import com.ggits.comm.server.dto.RegionCenter;
 import com.ggits.comm.server.dto.UnknownIntDto;
-import com.ggits.comm.server.kafka.KafkaProducerService;
 import com.ggits.comm.server.process.AbstractAppWorker;
 import com.ggits.comm.server.process.dbms.DbmsData;
 import com.ggits.comm.server.process.dbms.DbmsDataProcess;
+import com.ggits.comm.server.process.kafka.KafkaDataProcess;
 import com.ggits.comm.server.repository.ApplicationRepository;
 import com.ggits.comm.server.udp.SigGgitsTsinfoDto;
 import com.ggits.comm.server.udp.SigProtocolConst;
@@ -24,16 +24,16 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
 
     private final ApplicationRepository repo;
     private final DbmsDataProcess dbmsDataProcess;
-    private final KafkaProducerService kafkaProducer;
+    private final KafkaDataProcess kafkaDataProcess;
 
     private final LinkedBlockingQueue<SigGgitsTsinfoDto> DATA_QUEUE;
 
-    public GgitsPacketWorker(int idx, int qSize, ApplicationRepository repo, DbmsDataProcess dbmsDataProcess, KafkaProducerService kafkaProducer) {
+    public GgitsPacketWorker(int idx, int qSize, ApplicationRepository repo, DbmsDataProcess dbmsDataProcess, KafkaDataProcess kafkaDataProcess) {
         this.idx = idx;
         this.qSize = qSize;
         this.repo = repo;
         this.dbmsDataProcess = dbmsDataProcess;
-        this.kafkaProducer = kafkaProducer;
+        this.kafkaDataProcess = kafkaDataProcess;
         this.DATA_QUEUE = new LinkedBlockingQueue<>(qSize);
     }
 
@@ -81,7 +81,7 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
         try {
             RegionCenter center = data.getCenter();//this.repo.getCenterMap().get(data.getLocalPort());
             if (center == null) {
-                log.warn("WorkDataProcess.process: [{}],Not Found Region Center By RegionId: {}", data.getLocalPort(), data.getLocalPort());
+                log.warn("GgitsPacketWorker.process: [{}],Not Found Region Center By RegionId: {}", data.getLocalPort(), data.getLocalPort());
                 return;
             }
             List<IntStatusDto> statusLists = new ArrayList<>();
@@ -101,23 +101,24 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
             int dataLength = ((data.buffer[idx++] & 0xFF) << 8) | (data.buffer[idx++] & 0xFF);
             int count      = ((data.buffer[idx++] & 0xFF) << 8) | (data.buffer[idx++] & 0xFF);
 
-//            log.info("WorkDataProcess.process: [{}], Sequence {}, RegionId {}, DataLength {}, Count {}, {} Bytes. {} ms.",
+//            log.info("GgitsPacketWorker.process: [{}], Sequence {}, RegionId {}, DataLength {}, Count {}, {} Bytes. {} ms.",
 //                    data.getLocalPort(), sequence, regionId, dataLength, count, data.getBuffer().length, timestamp - data.getTimestamp());
 
             if (opCode != SigProtocolConst.SIG_PHASE_CHANGE) {
-                log.warn("WorkDataProcess.process: [{}], Unknown OpCode: {}, {}", data.getLocalPort(), stx, opCode);
+                log.warn("GgitsPacketWorker.process: [{}], Unknown OpCode: {}, {}", data.getLocalPort(), stx, opCode);
                 return;
             }
             if (dataLength != (count * 10)) {
-                log.warn("WorkDataProcess.process: [{}], Data Length & Data count Error(length/count): {}, {}", data.getLocalPort(), dataLength, count);
+                log.warn("GgitsPacketWorker.process: [{}], Data Length & Data count Error(length/count): {}, {}", data.getLocalPort(), dataLength, count);
                 return;
             }
 
             if (sequence < center.getRecvSeqNo()) {
-//                log.warn("WorkDataProcess.process: [{}], Receive Sequence Error(curr/old): {}, {}", data.getLocalPort(), sequence, center.getRecvSeqNo());
+//                log.warn("GgitsPacketWorker.process: [{}], Receive Sequence Error(curr/old): {}, {}", data.getLocalPort(), sequence, center.getRecvSeqNo());
             }
             if (regionId != data.getLocalPort()) {
-                log.warn("WorkDataProcess.process: [{}], Receive Region Id Error(packet/port): {}, {}", data.getLocalPort(), regionId, data.getLocalPort());
+                log.error("GgitsPacketWorker.process: [{}], Receive Region Id Error(packet/port): {}, {}", data.getLocalPort(), regionId, data.getLocalPort());
+                return;
             }
             center.setRecvSeqNo(sequence);
 
@@ -172,9 +173,23 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
                     if (unknownDto == null) {
                         unknownDto = new UnknownIntDto(intLcNo, center.getRegionCd());
                         this.repo.getUnknownIntMap().put(intLcNo, unknownDto);
-                        log.warn("WorkDataProcess.process: [{}], Not Found IntLcNo: {}, {}, {}", data.getLocalPort(), intLcNo, intLcNo % 10000, intLcNo / 10000);
+                        log.warn("GgitsPacketWorker.process: [{}], Not Found IntLcNo: {}, {}, {}", data.getLocalPort(), intLcNo, intLcNo % 10000, intLcNo / 10000);
                     }
-                    continue;
+//                    continue;
+                    intDto = IntDto.builder()
+                            .intLcNo(intLcNo)
+                            .regionCd(data.getCenter().getRegionCd())
+                            .intNo(intLcNo % 10000)
+                            .intNm("-")
+                            .intType(0)
+                            .intLcType(1)
+                            .intLampType(3)
+                            .mainIntNo(0)
+                            .groupNo(0)
+                            .nodeId(0L)
+                            .status(new IntStatusDto(data.getCenter().getRegionCd(), intLcNo % 10000, 0))
+                            .build();
+                    this.repo.getIntMap().put(intLcNo, intDto);
                 }
 
                 aRingPhase = (aRingCode >> 5) & 0x07;   // 0x7 = 0000 0111
@@ -251,19 +266,24 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
                 statusLists.add(status);
             }
             if (statusLists.isEmpty()) {
-                log.warn("WorkDataProcess.process: [{}], Int Status Data Empty: {}, {} ms.", data.getLocalPort(), collctDtime, System.currentTimeMillis() - popTimestamp);
+                log.warn("GgitsPacketWorker.process: [{}], Int Status Data Empty: {}, {} EA. {} ms.",
+                        data.getLocalPort(), collctDtime, count, System.currentTimeMillis() - popTimestamp);
                 return;
             }
+
+            this.kafkaDataProcess.add(new DbmsData(data.getCenter(), this.idx, data.getTimestamp(), popTimestamp, System.currentTimeMillis(),
+                    center.getRegionCd(), center.getRegionId(), DbmsData.DBMS_DATA_INT_STATUS_UPDATE, statusLists));
+
             this.dbmsDataProcess.add(new DbmsData(data.getCenter(), this.idx, data.getTimestamp(), popTimestamp, System.currentTimeMillis(),
-                    center.getRegionCd(), center.getRegionId(), DbmsData.DBMS_DATA_INT_STATUS_UPDATE, false, statusLists));
+                    center.getRegionCd(), center.getRegionId(), DbmsData.DBMS_DATA_INT_STATUS_UPDATE, statusLists));
         }
         catch (Exception e) {
-            log.error("WorkDataProcess.process: Exception: [{}] {}", data.getLocalPort(), e.toString());
+            log.error("GgitsPacketWorker.process: Exception: [{}] {}", data.getLocalPort(), e.toString());
         }
     }
 
     public void report() {
         long avgTime = 0;
-        log.info("Packet: Remain Q: {}, Average: {}, {}", this.DATA_QUEUE.size(), TimeUtils.elapsedTimeStr(avgTime), Thread.currentThread().getName());
+        log.info("GgitsPacketWorker, Packet: Remain Q: {}, Average: {}, {}", this.DATA_QUEUE.size(), TimeUtils.elapsedTimeStr(avgTime), Thread.currentThread().getName());
     }
 }

+ 1 - 1
src/main/java/com/ggits/comm/server/service/UnitSystService.java

@@ -61,7 +61,7 @@ public class UnitSystService {
                     .processId(this.processId)
                     .runState("1")
                     .build();
-            this.dbmsDataProcess.add(new DbmsData(null, 0, System.currentTimeMillis(), System.currentTimeMillis(), System.currentTimeMillis(), "L00", 1, DbmsData.DBMS_DATA_PROCESS_STTS, false, processState));
+            this.dbmsDataProcess.add(new DbmsData(null, 0, System.currentTimeMillis(), System.currentTimeMillis(), System.currentTimeMillis(), "L00", 1, DbmsData.DBMS_DATA_PROCESS_STTS, processState));
         }
         MDC.remove(keyData);
         MDC.clear();

+ 2 - 1
src/main/resources/application.yml

@@ -43,7 +43,8 @@ application:
   dbms-queue-size: 0
   thread-pool:
     dbms: 0
-    work: 60
+    work: 0
+    kafka: 0
 
   kafka:
     bootstrap-servers: 192.168.11.23:9092

+ 0 - 387
src/main/resources/mybatis/mapper/IntMapper.xml

@@ -3,22 +3,6 @@
 
 <mapper namespace="com.ggits.comm.server.dao.mapper.IntMapper">
 
-    <select id="selectGgitsIntAll" parameterType="java.lang.String" resultType="com.ggits.comm.server.entity.TbInt" fetchSize="1024">
-        <![CDATA[
-        SELECT A.REGION_CD AS regionCd,
-               B.REGION_NO * 10000 + A.INT_NO AS intLcNo,
-               A.INT_NO AS intNo,
-               A.INT_NM AS intNm,
-               NVL(A.INT_TYPE,     0) AS intType,
-               NVL(A.INT_LCTYPE,   1) AS intLcType,
-               NVL(A.INT_LAMPTYPE, 3) AS intLampType,
-               NVL(A.MAIN_INTNO,   0) AS mainIntNo,
-               NVL(A.GROUP_NO,     0) AS groupNo,
-               NVL(A.NODE_ID,      0) AS nodeId
-        FROM TB_INT A, TB_REGION_GGITS B
-        WHERE A.REGION_CD = B.REGION_CD
-        ]]>
-    </select>
     <select id="selectAll" parameterType="java.lang.String" resultType="com.ggits.comm.server.entity.TbInt" fetchSize="1024">
         <![CDATA[
         SELECT A.REGION_CD AS regionCd,
@@ -37,276 +21,6 @@
         ]]>
     </select>
 
-    <insert id="insertIntUnknown" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT( REGION_CD,  INT_NO,  INT_NM, X_COORD, Y_COORD, UPD_DTIME)
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.intNn}, 0, 0, SYSDATE )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownPhase" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_PHASE( REGION_CD,  INT_NO, MAP_NO )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, 0 )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownStatus" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_STATUS( REGION_CD,  INT_NO )
-        VALUES (#{obj.regionCd}, #{obj.intNo} )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownResrvPlan" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_RESRV_PLAN( REGION_CD,  INT_NO, RESRV_NO )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.pNum} )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownPlan" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_PLAN( REGION_CD,  INT_NO, INT_PLAN_NO )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.pNum} )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownOperPlan" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_OPER_PLAN( REGION_CD,  INT_NO, INT_PLAN_NO, INT_PLAN_IDX_NO )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.pNum}, #{obj.iNum} )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownHolyDdPlan" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_HOLYDD_PLAN( REGION_CD,  INT_NO, PLAN_SN )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.pNum} )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownDyPlan" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_DY_PLAN( REGION_CD,  INT_NO, PLAN_DY )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.pNum} )
-        ]]>
-    </insert>
-
-    <insert id="insertIntUnknownSignalMap" parameterType="com.ggits.comm.server.entity.TbIntUnknown">
-    <![CDATA[
-        INSERT INTO TB_INT_SIGNALMAP( REGION_CD,  INT_NO, RING_NO, PLAN_TP, STEP_NO )
-        VALUES (#{obj.regionCd}, #{obj.intNo}, #{obj.pNum}, #{obj.iNum}, #{obj.oNum} )
-        ]]>
-    </insert>
-
-    <select id="selectCurrTransAll" parameterType="java.lang.String" resultType="com.ggits.comm.server.entity.TbCurrTrans">
-        <![CDATA[
-        SELECT T.REGION_CD AS regionCd,
-               T.INT_NO AS intNo,
-               T.RING_NO AS ringNo,
-               T.PLAN_TP AS planTp,
-               T.STEP_NO AS stepNo,
-               T.MIN_TM AS minTm,
-               T.MAX_TM AS maxTm,
-               T.EOP AS eop,
-               A.INT_MAINPHASE AS intMainPhase
-        FROM TB_INT_SIGNALMAP T,
-             TB_INT_PHASE     A,
-             TB_INT_STATUS    B
-        WHERE T.REGION_CD = A.REGION_CD
-          AND T.INT_NO    = A.INT_NO
-          AND A.REGION_CD = B.REGION_CD
-          AND A.INT_NO    = B.INT_NO
-          AND T.PLAN_TP   = B.MAP_NO
-          AND A.MAP_NO    = B.MAP_NO
-          AND (T.MIN_TM > 0 OR T.MAX_TM > 0 OR T.EOP > 0)
-          AND T.REGION_CD = #{regionCd}
-        ORDER BY 1,2,3,4,5
-        ]]>
-    </select>
-
-    <select id="selectCurrTodAll" parameterType="java.lang.String" resultType="com.ggits.comm.server.entity.TbCurrTod">
-        <![CDATA[
-        SELECT A.REGION_CD                  AS regionCd,
-               A.INT_NO                     AS intNo,
-               A.INT_PLAN_NO                AS planNo,
-               A.INT_PLAN_IDX_NO            AS idxNo,
-               NVL(A.OPER_PLAN_HH,       0) AS hour,
-       NVL(A.OPER_PLAN_MI,       0) AS minute,
-       NVL(A.INT_OPER_CYCLE_VAL, 0) AS cycle,
-       NVL(A.INT_OPER_OFFSET_VAL,0) AS offset,
-            NVL(A.A_RING_1_PHASE_VAL, 0) AS splitA1,
-            NVL(A.A_RING_2_PHASE_VAL, 0) AS splitA2,
-            NVL(A.A_RING_3_PHASE_VAL, 0) AS splitA3,
-            NVL(A.A_RING_4_PHASE_VAL, 0) AS splitA4,
-            NVL(A.A_RING_5_PHASE_VAL, 0) AS splitA5,
-            NVL(A.A_RING_6_PHASE_VAL, 0) AS splitA6,
-            NVL(A.A_RING_7_PHASE_VAL, 0) AS splitA7,
-            NVL(A.A_RING_8_PHASE_VAL, 0) AS splitA8,
-            NVL(A.B_RING_1_PHASE_VAL, 0) AS splitB1,
-            NVL(A.B_RING_2_PHASE_VAL, 0) AS splitB2,
-            NVL(A.B_RING_3_PHASE_VAL, 0) AS splitB3,
-            NVL(A.B_RING_4_PHASE_VAL, 0) AS splitB4,
-            NVL(A.B_RING_5_PHASE_VAL, 0) AS splitB5,
-            NVL(A.B_RING_6_PHASE_VAL, 0) AS splitB6,
-            NVL(A.B_RING_7_PHASE_VAL, 0) AS splitB7,
-            NVL(A.B_RING_8_PHASE_VAL, 0) AS splitB8
-        FROM TB_INT_OPER_PLAN A,
-            (SELECT IDP.REGION_CD, IDP.INT_NO,
-            NVL2(IHP.INT_PLAN_NO, IHP.INT_PLAN_NO, IDP.INT_PLAN_NO) AS INT_PLAN_NO
-            FROM (SELECT REGION_CD, INT_NO, INT_PLAN_NO
-            FROM TB_INT_DY_PLAN
-            WHERE PLAN_DY = TO_NUMBER(TO_CHAR (SYSDATE, 'D'))
-            ) IDP
-            LEFT OUTER JOIN
-            (SELECT REGION_CD, INT_NO, INT_PLAN_NO
-            FROM TB_INT_HOLYDD_PLAN
-            WHERE LPAD(HOLYDD_PLAN_MM, 2, 0) = TO_CHAR(SYSDATE, 'MM')
-            AND LPAD(HOLYDD_PLAN_DD, 2, 0) = TO_CHAR(SYSDATE, 'DD')
-            ) IHP
-            ON IDP.REGION_CD = IHP.REGION_CD
-            AND IDP.INT_NO    = IHP.INT_NO
-            ) B
-        WHERE A.REGION_CD = #{regionCd}
-          AND A.REGION_CD = B.REGION_CD
-          AND A.INT_NO = B.INT_NO
-          AND B.INT_PLAN_NO = A.INT_PLAN_NO
-        ORDER BY A.REGION_CD, A.INT_NO, A.INT_PLAN_IDX_NO
-        ]]>
-    </select>
-
-    <update id="initIntStts">
-    <![CDATA[
-        MERGE INTO TB_INT_STATUS L
-            USING (SELECT A.REGION_CD, B.INT_NO
-                   FROM TB_REGION_CENTER A,
-                        TB_INT           B
-                   WHERE A.REGION_CD = B.REGION_CD
-                     AND B.INT_TYPE  = 0) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO)
-                VALUES (M.REGION_CD, M.INT_NO)
-        ]]>
-    </update>
-
-    <update id="initIntPlan">
-    <![CDATA[
-        MERGE INTO TB_INT_PLAN L
-            USING (SELECT A.REGION_CD, B.INT_NO, C.IDX AS INT_PLAN_NO
-                   FROM TB_REGION_CENTER A,
-                        TB_INT           B,
-                        (SELECT LEVEL AS IDX FROM DUAL CONNECT BY LEVEL <= 10) C
-                   WHERE A.REGION_CD = B.REGION_CD
-                     AND B.INT_TYPE  = 0) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO, INT_PLAN_NO)
-                VALUES (M.REGION_CD, M.INT_NO, M.INT_PLAN_NO)
-        ]]>
-    </update>
-
-    <update id="initIntOperPlan">
-    <![CDATA[
-        MERGE INTO TB_INT_OPER_PLAN L
-            USING (SELECT A.REGION_CD, B.INT_NO, C.INT_PLAN_NO, C.INT_PLAN_IDX_NO
-                   FROM TB_REGION_CENTER A,
-                        TB_INT           B,
-                        (SELECT A.IDX AS INT_PLAN_NO, B.IDX AS INT_PLAN_IDX_NO
-                         FROM (SELECT LEVEL AS IDX FROM DUAL CONNECT BY LEVEL <= 10) A,
-                              (SELECT LEVEL AS IDX FROM DUAL CONNECT BY LEVEL <= 16) B) C
-                   WHERE A.REGION_CD = B.REGION_CD
-                     AND B.INT_TYPE  = 0) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO
-                AND L.INT_PLAN_NO = M.INT_PLAN_NO
-                AND L.INT_PLAN_IDX_NO = M.INT_PLAN_IDX_NO)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO, INT_PLAN_NO, INT_PLAN_IDX_NO)
-                VALUES (M.REGION_CD, M.INT_NO, M.INT_PLAN_NO, M.INT_PLAN_IDX_NO)
-        ]]>
-    </update>
-
-    <update id="initIntDyPlan">
-    <![CDATA[
-        MERGE INTO TB_INT_DY_PLAN L
-            USING (SELECT A.REGION_CD, B.INT_NO, C.IDX AS PLAN_DY
-                   FROM TB_REGION_CENTER A,
-                        TB_INT           B,
-                        (SELECT LEVEL AS IDX FROM DUAL CONNECT BY LEVEL <= 7) C
-                   WHERE A.REGION_CD = B.REGION_CD
-                     AND B.INT_TYPE  = 0) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO
-                AND L.PLAN_DY = M.PLAN_DY)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO, PLAN_DY, INT_PLAN_NO)
-                VALUES (M.REGION_CD, M.INT_NO, M.PLAN_DY, 1)
-        ]]>
-    </update>
-
-    <update id="initIntResrvPlan">
-    <![CDATA[
-        MERGE INTO TB_INT_RESRV_PLAN L
-            USING (SELECT A.REGION_CD, B.INT_NO, C.IDX AS RESRV_NO
-                   FROM TB_REGION_CENTER A,
-                        TB_INT           B,
-                        (SELECT LEVEL AS IDX FROM DUAL CONNECT BY LEVEL <= 10) C
-                   WHERE A.REGION_CD = B.REGION_CD
-                     AND B.INT_TYPE  = 0) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO, RESRV_NO)
-                VALUES (M.REGION_CD, M.INT_NO, M.RESRV_NO)
-        ]]>
-    </update>
-
-    <update id="initIntHolyDdPlan">
-    <![CDATA[
-        MERGE INTO TB_INT_HOLYDD_PLAN L
-            USING (SELECT A.REGION_CD, B.INT_NO, C.IDX AS PLAN_SN
-                   FROM TB_REGION_CENTER A,
-                        TB_INT           B,
-                        (SELECT LEVEL AS IDX FROM DUAL CONNECT BY LEVEL <= 30) C
-                   WHERE A.REGION_CD = B.REGION_CD
-                     AND B.INT_TYPE  = 0) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO, PLAN_SN)
-                VALUES (M.REGION_CD, M.INT_NO, M.PLAN_SN)
-        ]]>
-    </update>
-
-    <update id="initIntSignalMap">
-    <![CDATA[
-        MERGE INTO TB_INT_SIGNALMAP L
-            USING (SELECT A.REGION_CD, A.INT_NO, B.RING_NO, B.PLAN_TP, B.STEP_NO
-                   FROM (SELECT A.REGION_CD, B.INT_NO
-                         FROM TB_REGION_CENTER A,
-                              TB_INT           B
-                         WHERE A.REGION_CD = B.REGION_CD
-                           AND B.INT_TYPE  = 0
-                        ) A,
-                        (SELECT L.RING_NO, L.PLAN_TP, M.IDX AS STEP_NO
-                         FROM (SELECT X.IDX AS RING_NO, Y.IDX AS PLAN_TP
-                               FROM (SELECT LEVEL-1 AS IDX FROM DUAL CONNECT BY LEVEL <=  2) X,
-                                    (SELECT LEVEL-1 AS IDX FROM DUAL CONNECT BY LEVEL <=  7) Y
-                              ) L,
-                              (SELECT LEVEL   AS IDX FROM DUAL CONNECT BY LEVEL <= 32) M
-                        ) B) M
-            ON (L.REGION_CD = M.REGION_CD
-                AND L.INT_NO = M.INT_NO)
-            WHEN NOT MATCHED THEN
-                INSERT (REGION_CD, INT_NO, RING_NO, PLAN_TP, STEP_NO)
-                VALUES (M.REGION_CD, M.INT_NO, M.RING_NO, M.PLAN_TP, M.STEP_NO)
-        ]]>
-    </update>
-
     <update id="updateIntPhaseStts" parameterType="java.util.Map">
     <![CDATA[
         UPDATE TB_INT_STATUS
@@ -347,105 +61,4 @@
         ]]>
     </update>
 
-    <update id="updateIntStaticCycle" parameterType="java.util.Map">
-    <![CDATA[
-        UPDATE TB_INT_STATUS
-        SET COLLCT_DTIME               = TO_DATE(#{COLLCT_DTIME},'YYYYMMDDHH24MISS')
-          , SYS_COLLCT_DTIME           = SYSDATE
-          , COMM_ON_OFF_FLAG           = #{COMM_ON_OFF_FLAG}
-          , CONTRLR_OPER_MODE_CD       = #{CONTRLR_OPER_MODE_CD}
-          , A_RING_PHASE_VAL           = #{A_RING_PHASE_VAL}
-          , B_RING_PHASE_VAL           = #{B_RING_PHASE_VAL}
-          , SIGLIGHT_TURNOFF_FLAG      = #{SIGLIGHT_TURNOFF_FLAG}
-          , SIGLIGHT_BLINK_FLAG        = #{SIGLIGHT_BLINK_FLAG}
-          , CONTRLR_MANUAL_FLAG        = #{CONTRLR_MANUAL_FLAG}
-          , MAP_NO                     = #{MAP_NO}
-          , CONTRLR_TMDIFF_CONTRL_FLAG = #{CONTRLR_TMDIFF_CONTRL_FLAG}
-          , INT_SIG_CYCLE_CNT          = #{INT_SIG_CYCLE_CNT}
-          , INT_SIG_CYCLE_LEN          = #{INT_SIG_CYCLE_LEN}
-          , PPC_CONTRL_FLAG            = #{PPC_CONTRL_FLAG}
-          , SIMULFLAG                  = 'N'
-        WHERE REGION_CD = REGION_CD = #{REGION_CD}
-          AND INT_NO    = #{INT_NO}
-        ]]>
-    </update>
-
-    <update id="updateIntSimulationSend" parameterType="java.util.Map">
-    <![CDATA[
-        UPDATE TB_INT_STATUS
-        SET COLLCT_DTIME                = SYSDATE
-          , SYS_COLLCT_DTIME            = SYSDATE
-          , COMM_ON_OFF_FLAG            = #{COMM_ON_OFF_FLAG}
-          , CONTRLR_OPER_MODE_CD        = #{CONTRLR_OPER_MODE_CD}
-          , A_RING_PHASE_VAL            = #{A_RING_PHASE_VAL}
-          , B_RING_PHASE_VAL            = #{B_RING_PHASE_VAL}
-          , SIGLIGHT_TURNOFF_FLAG       = #{SIGLIGHT_TURNOFF_FLAG}
-          , SIGLIGHT_BLINK_FLAG         = #{SIGLIGHT_BLINK_FLAG}
-          , CONTRLR_MANUAL_FLAG         = #{CONTRLR_MANUAL_FLAG}
-          , MAP_NO                      = #{MAP_NO}
-          , CONTRLR_TMDIFF_CONTRL_FLAG  = #{CONTRLR_TMDIFF_CONTRL_FLAG}
-          , INT_SIG_CYCLE_CNT           = #{INT_SIG_CYCLE_CNT}
-          , INT_SIG_CYCLE_LEN           = #{INT_SIG_CYCLE_LEN}
-          , A_RING_1_PHASE_VAL          = #{A_RING_1_PHASE_VAL}
-          , A_RING_2_PHASE_VAL          = #{A_RING_2_PHASE_VAL}
-          , A_RING_3_PHASE_VAL          = #{A_RING_3_PHASE_VAL}
-          , A_RING_4_PHASE_VAL          = #{A_RING_4_PHASE_VAL}
-          , A_RING_5_PHASE_VAL          = #{A_RING_5_PHASE_VAL}
-          , A_RING_6_PHASE_VAL          = #{A_RING_6_PHASE_VAL}
-          , A_RING_7_PHASE_VAL          = #{A_RING_7_PHASE_VAL}
-          , A_RING_8_PHASE_VAL          = #{A_RING_8_PHASE_VAL}
-          , B_RING_1_PHASE_VAL          = #{B_RING_1_PHASE_VAL}
-          , B_RING_2_PHASE_VAL          = #{B_RING_2_PHASE_VAL}
-          , B_RING_3_PHASE_VAL          = #{B_RING_3_PHASE_VAL}
-          , B_RING_4_PHASE_VAL          = #{B_RING_4_PHASE_VAL}
-          , B_RING_5_PHASE_VAL          = #{B_RING_5_PHASE_VAL}
-          , B_RING_6_PHASE_VAL          = #{B_RING_6_PHASE_VAL}
-          , B_RING_7_PHASE_VAL          = #{B_RING_7_PHASE_VAL}
-          , B_RING_8_PHASE_VAL          = #{B_RING_8_PHASE_VAL}
-          , PPC_CONTRL_FLAG             = #{PPC_CONTRL_FLAG}
-          , SIMULFLAG                   = 'Y'
-        WHERE REGION_CD = #{REGION_CD}
-          AND INT_NO    = #{INT_NO}
-        ]]>
-    </update>
-
-    <update id="updateIntSimulationSendTrans" parameterType="java.util.Map">
-    <![CDATA[
-        UPDATE TB_INT_STATUS_TOD
-        SET COLLCT_DTIME                = SYSDATE
-          , SYS_COLLCT_DTIME            = SYSDATE
-          , COMM_ON_OFF_FLAG            = #{COMM_ON_OFF_FLAG}
-          , CONTRLR_OPER_MODE_CD        = #{CONTRLR_OPER_MODE_CD}
-          , A_RING_PHASE_VAL            = #{A_RING_PHASE_VAL}
-          , B_RING_PHASE_VAL            = #{B_RING_PHASE_VAL}
-          , SIGLIGHT_TURNOFF_FLAG       = #{SIGLIGHT_TURNOFF_FLAG}
-          , SIGLIGHT_BLINK_FLAG         = #{SIGLIGHT_BLINK_FLAG}
-          , CONTRLR_MANUAL_FLAG         = #{CONTRLR_MANUAL_FLAG}
-          , MAP_NO                      = #{MAP_NO}
-          , CONTRLR_TMDIFF_CONTRL_FLAG  = #{CONTRLR_TMDIFF_CONTRL_FLAG}
-          , INT_SIG_CYCLE_CNT           = #{INT_SIG_CYCLE_CNT}
-          , INT_SIG_CYCLE_LEN           = #{INT_SIG_CYCLE_LEN}
-          , A_RING_1_PHASE_VAL          = #{A_RING_1_PHASE_VAL}
-          , A_RING_2_PHASE_VAL          = #{A_RING_2_PHASE_VAL}
-          , A_RING_3_PHASE_VAL          = #{A_RING_3_PHASE_VAL}
-          , A_RING_4_PHASE_VAL          = #{A_RING_4_PHASE_VAL}
-          , A_RING_5_PHASE_VAL          = #{A_RING_5_PHASE_VAL}
-          , A_RING_6_PHASE_VAL          = #{A_RING_6_PHASE_VAL}
-          , A_RING_7_PHASE_VAL          = #{A_RING_7_PHASE_VAL}
-          , A_RING_8_PHASE_VAL          = #{A_RING_8_PHASE_VAL}
-          , B_RING_1_PHASE_VAL          = #{B_RING_1_PHASE_VAL}
-          , B_RING_2_PHASE_VAL          = #{B_RING_2_PHASE_VAL}
-          , B_RING_3_PHASE_VAL          = #{B_RING_3_PHASE_VAL}
-          , B_RING_4_PHASE_VAL          = #{B_RING_4_PHASE_VAL}
-          , B_RING_5_PHASE_VAL          = #{B_RING_5_PHASE_VAL}
-          , B_RING_6_PHASE_VAL          = #{B_RING_6_PHASE_VAL}
-          , B_RING_7_PHASE_VAL          = #{B_RING_7_PHASE_VAL}
-          , B_RING_8_PHASE_VAL          = #{B_RING_8_PHASE_VAL}
-          , PPC_CONTRL_FLAG             = #{PPC_CONTRL_FLAG}
-          , SIMULFLAG                   = 'Y'
-        WHERE REGION_CD = #{REGION_CD}
-          AND INT_NO    = #{INT_NO}
-        ]]>
-    </update>
-
 </mapper>