shjung 2 سال پیش
والد
کامیت
216e07c0d6

+ 0 - 1
conf/wthr-comm-server.pid

@@ -1 +0,0 @@
-39692

+ 1 - 1
pom.xml

@@ -15,7 +15,7 @@
     <name>wthr-comm-server</name>
     <description>Weather(Open API) Communication Server</description>
 
-    <packaging>war</packaging>
+    <packaging>jar</packaging>
 
     <repositories>
         <repository>

+ 16 - 8
src/main/java/com/its/wthr/WthrCommServerApplication.java

@@ -95,14 +95,13 @@ public class WthrCommServerApplication implements CommandLineRunner, Application
         unitSystService.loadMaster();
         unitSystService.updateUnitSyst(true);
 
-        AtmpService atmpService = (AtmpService)AppUtils.getBean(AtmpService.class);
-        atmpService.doJob();
-
-        FrcsService frcsService = (FrcsService)AppUtils.getBean(FrcsService.class);
-        frcsService.doJob();
-
-        // schedule enable
-        serverConfig.setStartSchedule(true);
+//        if (!OS.isWindows()) {
+//            AtmpService atmpService = (AtmpService) AppUtils.getBean(AtmpService.class);
+//            atmpService.doJob();
+//
+//            FrcsService frcsService = (FrcsService) AppUtils.getBean(FrcsService.class);
+//            frcsService.doJob();
+//        }
 
         if (OS.isWindows()) {
             SwingUtilities.invokeLater(() -> {
@@ -143,6 +142,15 @@ public class WthrCommServerApplication implements CommandLineRunner, Application
                 UI.LoadControllerInfo();
             });
         }
+
+        AtmpService atmpService = (AtmpService) AppUtils.getBean(AtmpService.class);
+        atmpService.doJob();
+
+        FrcsService frcsService = (FrcsService) AppUtils.getBean(FrcsService.class);
+        frcsService.doJob();
+
+        // schedule enable
+        serverConfig.setStartSchedule(true);
     }
 
     public void terminateApplication() {

+ 10 - 2
src/main/java/com/its/wthr/service/AtmpService.java

@@ -7,6 +7,7 @@ import com.its.wthr.process.DbmsJobData;
 import com.its.wthr.process.DbmsJobProcess;
 import com.its.wthr.process.DbmsJobType;
 import com.its.wthr.repository.AppRepository;
+import com.its.wthr.ui.MainUI;
 import com.its.wthr.vo.AtmpPltnSttsVo;
 import com.its.wthr.vo.AtmpPltnVo;
 import lombok.RequiredArgsConstructor;
@@ -36,7 +37,7 @@ public class AtmpService extends AbstractXmlService {
     private final DbmsJobProcess dbmsJobProcess;
 
     @PostConstruct
-    private void init() {
+    private void postConstruct() {
         log.info("init");
         if (this.config.isEnabled()) {
             load();
@@ -65,11 +66,13 @@ public class AtmpService extends AbstractXmlService {
         if (!this.config.isEnabled()) {
             return;
         }
+
+        String sysTime = SysUtils.getSysTimeStr();
         String keyData = "atmp";
         MDC.put("id", keyData);
         log.info("AtmpService doJob Start...");
 
-        load();
+        //load();
 
         int errCnt = 0;
         List<AtmpPltnSttsVo> atmpPltnSttsList = Collections.synchronizedList(new ArrayList<>());
@@ -150,6 +153,11 @@ public class AtmpService extends AbstractXmlService {
         log.info("AtmpService doJob ..End...");
         MDC.remove(keyData);
         MDC.clear();
+
+        MainUI UI = MainUI.getInstance();
+        if (UI != null) {
+            UI.updateAtmpPltnStts(sysTime);
+        }
     }
 
     public AtmpPltnSttsVo requestJob(AtmpPltnVo obj) {

+ 9 - 2
src/main/java/com/its/wthr/service/FrcsService.java

@@ -10,6 +10,7 @@ import com.its.wthr.repository.AppRepository;
 import com.its.wthr.rss.Feed;
 import com.its.wthr.rss.FeedMessage;
 import com.its.wthr.rss.RSSFeedParser;
+import com.its.wthr.ui.MainUI;
 import com.its.wthr.vo.FrcsZoneSttsVo;
 import com.its.wthr.vo.FrcsZoneVo;
 import com.rometools.rome.feed.synd.SyndEntry;
@@ -49,7 +50,7 @@ public class FrcsService extends AbstractXmlService {
     private final DbmsJobProcess dbmsJobProcess;
 
     @PostConstruct
-    private void init() {
+    private void postConstruct() {
         log.info("init");
         if (this.config.isEnabled()) {
             load();
@@ -79,11 +80,12 @@ public class FrcsService extends AbstractXmlService {
             return;
         }
 
+        String sysTime = SysUtils.getSysTimeStr();
         String keyData = "frcs";
         MDC.put("id", keyData);
         log.info("FrcsService doJob Start...");
 
-        load();
+        //load();
 
         int errCnt = 0;
         try {
@@ -170,6 +172,11 @@ public class FrcsService extends AbstractXmlService {
         log.info("FrcsService doJob ..End...");
         MDC.remove(keyData);
         MDC.clear();
+
+        MainUI UI = MainUI.getInstance();
+        if (UI != null) {
+            UI.updateFrcsPltnStts(sysTime);
+        }
     }
 
     List<FrcsZoneSttsVo> getFrcsInfo(String frcsZoneCode, String GRIDX, String GRIDY) {

+ 19 - 4
src/main/java/com/its/wthr/ui/MainUI.form

@@ -22,7 +22,9 @@
                 <preferred-size width="200" height="200"/>
               </grid>
             </constraints>
-            <properties/>
+            <properties>
+              <font name="Malgun Gothic" size="12" style="0"/>
+            </properties>
             <border type="none"/>
             <children>
               <grid id="deba2" binding="tabAtmp" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
@@ -30,7 +32,9 @@
                 <constraints>
                   <tabbedpane title="대기환경 "/>
                 </constraints>
-                <properties/>
+                <properties>
+                  <font name="Malgun Gothic" size="12" style="0"/>
+                </properties>
                 <border type="none"/>
                 <children>
                   <scrollpane id="8694">
@@ -53,7 +57,9 @@
                 <constraints>
                   <tabbedpane title="동네예보 "/>
                 </constraints>
-                <properties/>
+                <properties>
+                  <font name="Malgun Gothic" size="12" style="0"/>
+                </properties>
                 <border type="none"/>
                 <children>
                   <scrollpane id="ee5ca">
@@ -87,7 +93,7 @@
         <properties/>
         <border type="none"/>
         <children>
-          <grid id="dbb05" binding="pnlLogTitle" layout-manager="GridLayoutManager" row-count="1" column-count="6" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
+          <grid id="dbb05" binding="pnlLogTitle" layout-manager="GridLayoutManager" row-count="1" column-count="7" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
             <margin top="0" left="0" bottom="0" right="2"/>
             <constraints>
               <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
@@ -151,6 +157,15 @@
                   <text value="복사"/>
                 </properties>
               </component>
+              <component id="f3eb2" class="javax.swing.JButton" binding="btnRequest">
+                <constraints>
+                  <grid row="0" column="6" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
+                </constraints>
+                <properties>
+                  <font name="Malgun Gothic" size="12" style="0"/>
+                  <text value="  기상정보요청  "/>
+                </properties>
+              </component>
             </children>
           </grid>
           <scrollpane id="a6866">

+ 58 - 2
src/main/java/com/its/wthr/ui/MainUI.java

@@ -3,8 +3,11 @@ package com.its.wthr.ui;
 import com.intellij.uiDesigner.core.GridConstraints;
 import com.intellij.uiDesigner.core.GridLayoutManager;
 import com.intellij.uiDesigner.core.Spacer;
+import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
 import com.its.wthr.repository.AppRepository;
+import com.its.wthr.service.AtmpService;
+import com.its.wthr.service.FrcsService;
 import com.its.wthr.vo.AtmpPltnVo;
 import com.its.wthr.vo.FrcsZoneVo;
 import com.sun.management.OperatingSystemMXBean;
@@ -64,6 +67,7 @@ public class MainUI {
     private JPanel tabFrcs;
     private JTable listAtmp;
     private JTable listFrcs;
+    private JButton btnRequest;
 
     public static MainUI getInstance() {
         return _instance;
@@ -163,6 +167,20 @@ public class MainUI {
             }
         });
 
+        btnRequest.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                if (tabInfo.getSelectedIndex() == 0) {
+                    log.info("대기환경 정보 요청.......");
+                    AtmpService atmpService = (AtmpService) AppUtils.getBean(AtmpService.class);
+                    atmpService.doJob();
+                } else {
+                    log.info("동네예보 정보 요청.......");
+                    FrcsService frcsService = (FrcsService) AppUtils.getBean(FrcsService.class);
+                    frcsService.doJob();
+                }
+            }
+        });
     }
 
     /**
@@ -220,7 +238,6 @@ public class MainUI {
             getColumnModel.getColumn(ii).setCellRenderer(atmpCellRenderer);
         }
 
-
         this.frcsTableModel = new FrcsTableModel(frcsList);
         listFrcs.setModel(this.frcsTableModel);
 
@@ -288,6 +305,34 @@ public class MainUI {
         initTblListUI(atmpList, frcsList);
     }
 
+    public void updateAtmpPltnStts(String sysTime) {
+        tabInfo.setTitleAt(0, "대기환경 - [" + sysTime + "]");
+
+        try {
+            AtmpTableModel tableModel = (AtmpTableModel) this.listAtmp.getModel();
+            if (tableModel != null) {
+                tableModel.fireTableDataChanged();
+            }
+        } catch (ClassCastException e) {
+            log.error("Cast Atmp Error");
+        }
+        tabAtmp.repaint();
+    }
+
+    public void updateFrcsPltnStts(String sysTime) {
+        tabInfo.setTitleAt(1, "동네예보 - [" + sysTime + "]");
+
+        try {
+            FrcsTableModel tableModel = (FrcsTableModel) this.listFrcs.getModel();
+            if (tableModel != null) {
+                tableModel.fireTableDataChanged();
+            }
+        } catch (ClassCastException e) {
+            log.error("Cast Frcs Error");
+        }
+        tabFrcs.repaint();
+    }
+
     public void updateCtlrStts(AtmpPltnVo obj) {
         if (this.atmpTableModel == null) {
             return;
@@ -326,9 +371,13 @@ public class MainUI {
         pnlCtlr.setLayout(new GridLayoutManager(1, 1, new Insets(10, 4, 0, 4), -1, -1));
         rootPanel.add(pnlCtlr, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
         tabInfo = new JTabbedPane();
+        Font tabInfoFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, tabInfo.getFont());
+        if (tabInfoFont != null) tabInfo.setFont(tabInfoFont);
         pnlCtlr.add(tabInfo, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, new Dimension(200, 200), null, 0, false));
         tabAtmp = new JPanel();
         tabAtmp.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+        Font tabAtmpFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, tabAtmp.getFont());
+        if (tabAtmpFont != null) tabAtmp.setFont(tabAtmpFont);
         tabInfo.addTab("대기환경 ", tabAtmp);
         final JScrollPane scrollPane1 = new JScrollPane();
         tabAtmp.add(scrollPane1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
@@ -336,6 +385,8 @@ public class MainUI {
         scrollPane1.setViewportView(listAtmp);
         tabFrcs = new JPanel();
         tabFrcs.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+        Font tabFrcsFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, tabFrcs.getFont());
+        if (tabFrcsFont != null) tabFrcs.setFont(tabFrcsFont);
         tabInfo.addTab("동네예보 ", tabFrcs);
         final JScrollPane scrollPane2 = new JScrollPane();
         tabFrcs.add(scrollPane2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
@@ -345,7 +396,7 @@ public class MainUI {
         pnlLog.setLayout(new GridLayoutManager(2, 1, new Insets(0, 4, 0, 4), -1, -1));
         rootPanel.add(pnlLog, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, new Dimension(-1, 200), new Dimension(-1, 200), new Dimension(-1, 200), 0, false));
         pnlLogTitle = new JPanel();
-        pnlLogTitle.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 2), 1, 1));
+        pnlLogTitle.setLayout(new GridLayoutManager(1, 7, new Insets(0, 0, 0, 2), 1, 1));
         pnlLog.add(pnlLogTitle, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
         final JLabel label1 = new JLabel();
         Font label1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label1.getFont());
@@ -380,6 +431,11 @@ public class MainUI {
         if (btnLogCopyFont != null) btnLogCopy.setFont(btnLogCopyFont);
         btnLogCopy.setText("복사");
         pnlLogTitle.add(btnLogCopy, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnRequest = new JButton();
+        Font btnRequestFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnRequest.getFont());
+        if (btnRequestFont != null) btnRequest.setFont(btnRequestFont);
+        btnRequest.setText("  기상정보요청  ");
+        pnlLogTitle.add(btnRequest, new GridConstraints(0, 6, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JScrollPane scrollPane3 = new JScrollPane();
         Font scrollPane3Font = this.$$$getFont$$$("D2Coding", Font.PLAIN, 12, scrollPane3.getFont());
         if (scrollPane3Font != null) scrollPane3.setFont(scrollPane3Font);

+ 3 - 3
src/main/resources/application.yml

@@ -23,7 +23,7 @@ application:
     end-hour: 23
 
 server:
-  port: 9873
+  port: 8873
   shutdown: graceful
   error:
     whitelabel:
@@ -38,7 +38,7 @@ spring:
   application:
     name: wthr-comm-server
   profiles:
-    active: prod
+    active: dev
   main:
     banner-mode: off
   mvc:
@@ -54,7 +54,7 @@ spring:
   datasource:
     hikari:
       driver-class-name: oracle.jdbc.OracleDriver
-      jdbc-url: jdbc:oracle:thin:@115.91.94.42:1521:HANTE
+      jdbc-url: jdbc:oracle:thin:@115.91.94.42:1522:HANTE19C
       username: ptatms
       password: ptatms
 

+ 2 - 62
src/main/resources/logback-spring.xml

@@ -30,7 +30,8 @@
     <property name="LOG_PATTERN_SQL"         value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_STATISTICS"  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>
+<!--    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>-->
+    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] [%5level] %msg %n"/>
 
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <withJansi>true</withJansi>
@@ -99,67 +100,6 @@
         <appender-ref ref="FILE_ERROR"/>
     </root>
 
-    <logger name="${APP_CLASS_PATH}.xnettcp" level="DEBUG" additivity="false">
-        <appender-ref ref="FILE_PACKET"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="CENTER_COMM" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_CENTER_COMM}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_CENTER_COMM}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}CenterComm/${LOG_FILE_NAME_CENTER_COMM}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="${APP_CLASS_PATH}.xnetudp" level="DEBUG" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="CENTER_COMM"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="FILE_SESSION" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_SESSION}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_FILE}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_SESSION}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="${APP_CLASS_PATH}.xnettcp" level="DEBUG" additivity="true">
-        <appender-ref ref="FILE_SESSION"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="FILE_STATISTICS" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_STATISTICS}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_STATISTICS}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}Schedule/${LOG_FILE_NAME_STATISTICS}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="${APP_CLASS_PATH}.service.StatisticsServices" level="DEBUG" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_STATISTICS"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
     <appender name="FILE_SCHEDULE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${LOG_PATH}${LOG_FILE_NAME_SCHEDULE}</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">