shjung 2 năm trước cách đây
mục cha
commit
378b9292e8

+ 8 - 1
pom.xml

@@ -33,7 +33,7 @@
         <!--main 함수가 있는 class 경로-->
         <start-class>com.its.dsrc.DsrcCommServerApplication</start-class>
         <!--    <webapp.lib>${basedir}/my-repo</webapp.lib> -->
-        <webapp.lib>C:\DEV\ITS\01.WINDOWS\22.07.PyeongTaek\JAVA\repository</webapp.lib>
+        <webapp.lib>C:\java\repository</webapp.lib>
         <maven.test.skip>true</maven.test.skip>
     </properties>
 
@@ -90,6 +90,13 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <!-- Exclude the Tomcat dependency -->
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>

+ 2 - 2
src/main/java/com/its/dsrc/DsrcCommServerApplication.java

@@ -70,7 +70,7 @@ public class DsrcCommServerApplication implements CommandLineRunner, Application
             log.error("Program Already Running.....");
         }
 
-        if (!OS.isWindows()) {
+        if (OS.isWindows()) {
             ApplicationContext context = new SpringApplicationBuilder(DsrcCommServerApplication.class)
                     //.web(WebApplicationType.NONE)
                     .listeners(new ApplicationPidFileWriter("./conf/" + applicationName + ".pid"))
@@ -133,7 +133,7 @@ public class DsrcCommServerApplication implements CommandLineRunner, Application
         // schedule enable
         processConfig.setStartSchedule(true);
 
-        if (!OS.isWindows()) {
+        if (OS.isWindows()) {
             SwingUtilities.invokeLater(() -> {
                 String sysTime = SysUtils.getSysTimeStr();
                 //JFrame.setDefaultLookAndFeelDecorated(true);

+ 9 - 0
src/main/java/com/its/dsrc/dao/mapper/batch/RseCtlrDao.java

@@ -39,6 +39,15 @@ public class RseCtlrDao extends BatchDaoService {
             param.put("ATN_2_MTNS",     obj.getATN_2_MTNS());
             param.put("ATN_3_MTNS",     obj.getATN_3_MTNS());
             param.put("ATN_4_MTNS",     obj.getATN_4_MTNS());
+            param.put("CBOX_DOOR_STTS_CD",  obj.getCBOX_DOOR_STTS_CD());
+            param.put("FRONT_DOOR_STTS_CD", obj.getFRONT_DOOR_STTS_CD());
+            param.put("BACK_DOOR_STTS_CD",  obj.getBACK_DOOR_STTS_CD());
+            param.put("FAN_STTS_CD",        obj.getFAN_STTS_CD());
+            param.put("HETR_STTS_CD",       obj.getHETR_STTS_CD());
+            param.put("RTU_STTS_CD",        obj.getRTU_STTS_CD());
+            param.put("CBOX_TMPR",          obj.getCBOX_TMPR());
+            param.put("CBOX_HMDT",          obj.getCBOX_HMDT());
+
             lists.add(param);
         });
         return lists;

+ 55 - 12
src/main/java/com/its/dsrc/entity/TbRseCtlrStts.java

@@ -9,18 +9,26 @@ import lombok.ToString;
 @Setter
 @ToString
 public class TbRseCtlrStts {
-    private String RSE_CTLR_NMBR;   //	N	NUMBER(10)	    N			RSE 제어기 번호
-    private String UPDT_DT;         //	N	VARCHAR2(14)	N			갱신 일시
-    private String CMNC_STTS_CD;    //	N	VARCHAR2(7)	    Y			통신 상태
-    private String CNTL_DEVC_STTS;  //	N	VARCHAR2(7)	    Y			제어 장치 상태
-    private String ATN_1_STTS;      //	N	VARCHAR2(7)	    Y			안테나 1 상태
-    private String ATN_2_STTS;      //	N	VARCHAR2(7)	    Y			안테나 2 상태
-    private String ATN_3_STTS;      //	N	VARCHAR2(7)	    Y			안테나 3 상태
-    private String ATN_4_STTS;      //	N	VARCHAR2(7)	    Y			안테나 4 상태
-    private String ATN_1_MTNS;      //	N	VARCHAR2(7)	    Y			안테나 1 동작
-    private String ATN_2_MTNS;      //	N	VARCHAR2(7)	    Y			안테나 2 동작
-    private String ATN_3_MTNS;      //	N	VARCHAR2(7)	    Y			안테나 3 동작
-    private String ATN_4_MTNS;      //	N	VARCHAR2(7)	    Y			안테나 4 동작
+    private String RSE_CTLR_NMBR;       //	N	NUMBER(10)	    N			RSE 제어기 번호
+    private String UPDT_DT;             //	N	VARCHAR2(14)	N			갱신 일시
+    private String CMNC_STTS_CD;        //	N	VARCHAR2(7)	    Y			통신 상태
+    private String CNTL_DEVC_STTS;      //	N	VARCHAR2(7)	    Y			제어 장치 상태
+    private String ATN_1_STTS;          //	N	VARCHAR2(7)	    Y			안테나 1 상태
+    private String ATN_2_STTS;          //	N	VARCHAR2(7)	    Y			안테나 2 상태
+    private String ATN_3_STTS;          //	N	VARCHAR2(7)	    Y			안테나 3 상태
+    private String ATN_4_STTS;          //	N	VARCHAR2(7)	    Y			안테나 4 상태
+    private String ATN_1_MTNS;          //	N	VARCHAR2(7)	    Y			안테나 1 동작
+    private String ATN_2_MTNS;          //	N	VARCHAR2(7)	    Y			안테나 2 동작
+    private String ATN_3_MTNS;          //	N	VARCHAR2(7)	    Y			안테나 3 동작
+    private String ATN_4_MTNS;          //	N	VARCHAR2(7)	    Y			안테나 4 동작
+    private String CBOX_DOOR_STTS_CD;   //	N	VARCHAR2(7)	Y			함체 문 상태 코드('CDS')-앞문/뒷문상태가 모두닫힌경우 닫힘
+    private String FRONT_DOOR_STTS_CD;  //	N	VARCHAR2(7)	Y			앞문 상태 코드('CDS')
+    private String BACK_DOOR_STTS_CD;   //	N	VARCHAR2(7)	Y			뒷문 상태 코드('CDS')
+    private String FAN_STTS_CD;         //	N	VARCHAR2(7)	Y			팬 상태 코드('PAS')
+    private String HETR_STTS_CD;        //	N	VARCHAR2(7)	Y			히터 상태 코드('HTS')
+    private String RTU_STTS_CD;         //	N	VARCHAR2(7)	Y			RTU 상태 코드('RTU')
+    private int    CBOX_TMPR;           //	N	NUMBER(3)	Y	0		함체 온도
+    private int    CBOX_HMDT;           //	N	NUMBER(3)	Y	0		함체 습도
 
 /*
 if      (sDevcStts == "0") sDevcStts = "정상";
@@ -66,6 +74,14 @@ else if (sAtn1Mtns == "3") sAtn1Mtns = "정보 없음";
         setATN_2_MTNS("3");
         setATN_3_MTNS("3");
         setATN_4_MTNS("3");
+        setCBOX_DOOR_STTS_CD("CDS2");
+        setFRONT_DOOR_STTS_CD("CDS2");
+        setBACK_DOOR_STTS_CD("CDS2");
+        setFAN_STTS_CD("PAS2");
+        setHETR_STTS_CD("HTS2");
+        setRTU_STTS_CD("RTU2");
+        setCBOX_TMPR(0);
+        setCBOX_HMDT(0);
     }
     public void initError() {
         setUPDT_DT(SysUtils.getSysTime());
@@ -79,6 +95,14 @@ else if (sAtn1Mtns == "3") sAtn1Mtns = "정보 없음";
         setATN_2_MTNS("3");
         setATN_3_MTNS("3");
         setATN_4_MTNS("3");
+        setCBOX_DOOR_STTS_CD("CDS2");
+        setFRONT_DOOR_STTS_CD("CDS2");
+        setBACK_DOOR_STTS_CD("CDS2");
+        setFAN_STTS_CD("PAS2");
+        setHETR_STTS_CD("HTS2");
+        setRTU_STTS_CD("RTU2");
+        setCBOX_TMPR(0);
+        setCBOX_HMDT(0);
     }
     public void initNormal() {
         setUPDT_DT(SysUtils.getSysTime());
@@ -92,5 +116,24 @@ else if (sAtn1Mtns == "3") sAtn1Mtns = "정보 없음";
         setATN_2_MTNS("0");
         setATN_3_MTNS("0");
         setATN_4_MTNS("0");
+        setCBOX_DOOR_STTS_CD("CDS2");
+        setFRONT_DOOR_STTS_CD("CDS2");
+        setBACK_DOOR_STTS_CD("CDS2");
+        setFAN_STTS_CD("PAS2");
+        setHETR_STTS_CD("HTS2");
+        setRTU_STTS_CD("RTU2");
+        setCBOX_TMPR(0);
+        setCBOX_HMDT(0);
+    }
+
+    public void setStts(int frontDoor, int backDoor, int fan, int hetr, int rtu, int tmpr, int hmdt) {
+        setFRONT_DOOR_STTS_CD((frontDoor == 0 && backDoor == 0) ? "CDS0" : "CDS1");
+        setFRONT_DOOR_STTS_CD(frontDoor == 0 ? "CDS0" : "CDS1");
+        setBACK_DOOR_STTS_CD(backDoor == 0 ? "CDS0" : "CDS1");
+        setFAN_STTS_CD(fan == 0 ? "PAS0" : "PAS1");
+        setHETR_STTS_CD(hetr == 0 ? "HTS0" : "HTS1");
+        setRTU_STTS_CD(rtu == 0 ? "RTU0" : "RTU1");
+        setCBOX_TMPR(tmpr);
+        setCBOX_HMDT(hmdt);
     }
 }

+ 1 - 10
src/main/java/com/its/dsrc/ui/MainUI.form

@@ -99,7 +99,7 @@
               </component>
             </children>
           </scrollpane>
-          <grid id="17544" binding="pnlControl" layout-manager="GridLayoutManager" row-count="1" column-count="8" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
+          <grid id="17544" binding="pnlControl" 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="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
@@ -107,15 +107,6 @@
             <properties/>
             <border type="none"/>
             <children>
-              <component id="660a8" class="javax.swing.JButton" binding="btnImage">
-                <constraints>
-                  <grid row="0" column="7" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="정지영상"/>
-                </properties>
-              </component>
               <hspacer id="60c19">
                 <constraints>
                   <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>

+ 2 - 17
src/main/java/com/its/dsrc/ui/MainUI.java

@@ -66,7 +66,6 @@ public class MainUI {
     private JLabel lblCpuRate;
     private JLabel lblMemoryUsage;
     private JPanel pnlControl;
-    private JButton btnImage;
     private JButton btnInitialize;
     private JButton btnReset;
     private JButton btnDisconnect;
@@ -210,12 +209,6 @@ public class MainUI {
                 controlController(3);
             }
         });
-        btnImage.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(4);
-            }
-        });
     }
 
     /**
@@ -246,10 +239,6 @@ public class MainUI {
                 message = "제어기를 초기화 하시겠습니까?";
                 title = "제어기 초기화";
                 break;
-            case 4:
-                message = "제어기의 정지영상 정보를 요청하시겠습니까?";
-                title = "제어기 정지영상 요청";
-                break;
             default:
                 return;
         }
@@ -475,13 +464,8 @@ public class MainUI {
         if (tblCtlrListFont != null) tblCtlrList.setFont(tblCtlrListFont);
         scrollPane1.setViewportView(tblCtlrList);
         pnlControl = new JPanel();
-        pnlControl.setLayout(new GridLayoutManager(1, 8, new Insets(0, 0, 0, 2), 1, 1));
+        pnlControl.setLayout(new GridLayoutManager(1, 7, new Insets(0, 0, 0, 2), 1, 1));
         pnlCtlr.add(pnlControl, new GridConstraints(2, 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));
-        btnImage = new JButton();
-        Font btnImageFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnImage.getFont());
-        if (btnImageFont != null) btnImage.setFont(btnImageFont);
-        btnImage.setText("정지영상");
-        pnlControl.add(btnImage, new GridConstraints(0, 7, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final Spacer spacer2 = new Spacer();
         pnlControl.add(spacer2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
         btnInitialize = new JButton();
@@ -646,4 +630,5 @@ public class MainUI {
     public JComponent $$$getRootComponent$$$() {
         return rootPanel;
     }
+
 }

+ 2 - 1
src/main/java/com/its/dsrc/xnettcp/dsrc/process/response/PublicationResponse.java

@@ -87,7 +87,8 @@ public class PublicationResponse implements DsrcAsn1Response {
                     eControlDevice e = eControlDevice.getByValue(controlDevice.getVpbdControlID().value[0]);
                     if (e == eControlDevice.Control_StatusRequest) {
                         //TODO: DSRC Device Status
-                        ControlDeviceService.getInstance().decoding_ControlDevice_Status(this.obj, controlDevice);
+                        //ControlDeviceService.getInstance().decoding_ControlDevice_Status_AirPoint(this.obj, controlDevice);
+                        ControlDeviceService.getInstance().decoding_ControlDevice_Status_ITTelecom(this.obj, controlDevice);
                     }
                     else {
                         log.error("PublicationResponse.responsePublicationData: Unknown: {}", e.toString());

+ 105 - 2
src/main/java/com/its/dsrc/xnettcp/dsrc/process/service/ControlDeviceService.java

@@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
 
 import java.io.ByteArrayInputStream;
 import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
 
 @Slf4j
 public class ControlDeviceService {
@@ -35,15 +36,117 @@ public class ControlDeviceService {
         }
         return _instance;
     }
+    public ConcurrentHashMap<Integer, Integer> rxSenseMap = null;
+    public ConcurrentHashMap<Integer, Integer> txPowerMap = null;
 
     public ControlDeviceService() {
+        this.rxSenseMap = new ConcurrentHashMap<>();
+        this.txPowerMap = new ConcurrentHashMap<>();
+
+        this.rxSenseMap.put(0x85, 81);
+        this.rxSenseMap.put(0xA0, 80);
+        this.rxSenseMap.put(0xA4, 79);
+        this.rxSenseMap.put(0xA8, 78);
+        this.rxSenseMap.put(0xAC, 77);
+        this.rxSenseMap.put(0xAF, 76);
+        this.rxSenseMap.put(0xB2, 75);
+        this.rxSenseMap.put(0xB5, 74);
+        this.rxSenseMap.put(0xB8, 73);
+        this.rxSenseMap.put(0xBB, 72);
+        this.rxSenseMap.put(0xBE, 71);
+        this.rxSenseMap.put(0xC1, 70);
+        this.rxSenseMap.put(0xC4, 69);
+        this.rxSenseMap.put(0xC7, 68);
+        this.rxSenseMap.put(0xCC, 67);
+        this.rxSenseMap.put(0xCF, 66);
+        this.rxSenseMap.put(0xD3, 65);
+        this.rxSenseMap.put(0xD7, 64);
+        this.rxSenseMap.put(0xDB, 63);
+        this.rxSenseMap.put(0xDF, 62);
+        this.rxSenseMap.put(0xE2, 61);
+        this.rxSenseMap.put(0xE5, 60);
+        this.rxSenseMap.put(0xE8, 59);
+
+        this.txPowerMap.put(0xFF, 93);
+        this.txPowerMap.put(0xDF, 93);
+        this.txPowerMap.put(0xC8, 93);
+        this.txPowerMap.put(0xB7, 93);
+        this.txPowerMap.put(0xA7, 93);
+        this.txPowerMap.put(0x9A, 93);
+        this.txPowerMap.put(0x8F, 93);
+        this.txPowerMap.put(0x85, 93);
+        this.txPowerMap.put(0x7C, 92);
+        this.txPowerMap.put(0x75, 92);
+        this.txPowerMap.put(0x6E, 91);
+        this.txPowerMap.put(0x68, 91);
+        this.txPowerMap.put(0x62, 90);
+
     }
 
     /*
     *  AI_Publication 메시지로 수신한 데이터중 RSE 상태정보에 대한 데이터 Decoding
     *  decoding 한 RSE 상태정보를 데이터베이스에 업데이트 한다.
+    *  IT Telecom/AIR Point
      */
-    public boolean decoding_ControlDevice_Status(TbRseCtlr obj, ControlDevice controlDevice) {
+    public boolean decoding_ControlDevice_Status_ITTelecom(TbRseCtlr obj, ControlDevice controlDevice) {
+        try {
+            StatusOfDeviceInfo deviceInfo = new StatusOfDeviceInfo();
+            ByteArrayInputStream deviceStream = new ByteArrayInputStream(controlDevice.getVpbdControlDeviceData().value);
+            deviceInfo.decode(deviceStream);
+            log.info("ControlDeviceService.decoding_ControlDevice_Status: controlDevice{}, deviceInfo: {}", controlDevice.toString(), deviceInfo.toString());
+
+            obj.getStts().initNormal();    // 상태정보 업데이트
+            byte devStts[] = deviceInfo.getStatusInfo().value;
+            if (devStts != null && devStts.length >= 3) {
+                int temperature = ((devStts[0] & 0x80) != 0 ? (devStts[0] & 0x80) * -1 : devStts[0]);
+                int humidity    = devStts[1];
+                int frontDoor   = ((devStts[2] & 0x01) != 0 ?  1 : 0);
+                int backDoor    = ((devStts[2] & 0x02) != 0 ?  1 : 0);
+                int fan         = ((devStts[2] & 0x04) != 0 ?  1 : 0);
+                int heater      = ((devStts[2] & 0x08) != 0 ?  1 : 0);
+                int rtu         = ((devStts[2] & 0x10) != 0 ?  1 : 0);
+                obj.getStts().setStts(frontDoor, backDoor, fan, heater, rtu, temperature, humidity);
+                log.info("{}, STTS: {}/{}/{}/{}/{}/{}/{}", obj.getRSE_CTLR_NMBR(), temperature, humidity, frontDoor, backDoor, fan, heater, rtu);
+            }
+
+            // 현장 데이터가 들어오는것 보고 아래 내용과 확인하여 상태정보 자세히 업데이트 해야함
+            if (deviceInfo.getDataOfBeaconInfoList() != null) {
+                StatusOfDeviceInfo.DataOfBeaconInfoList beacon = deviceInfo.getDataOfBeaconInfoList();
+                List<BeaconInfo> bList = beacon.getBeaconInfo();
+                int beaconCount = bList.size();
+                for (int ii = 0; ii < bList.size(); ii++) {
+                    BeaconInfo bInfo = bList.get(ii);
+
+                    String beaconId = String.format("%04X0%08X0", bInfo.getBeaconID().getManufacturerid().value.longValue(), bInfo.getBeaconID().getIndividualid().value.longValue());
+                    int updateVer = bInfo.getUpdateVer().intValue();
+                    int workMode = bInfo.getWorkMode().intValue();
+                    int roadStationType = bInfo.getRoadStationType().intValue();
+                    int status = bInfo.getStatus().intValue();
+
+                    int beaconState = ((status & 0xFF000000) > 0) ? 1 : 0;
+                    int outputPutGain = status & 0x0FF;
+                    int txPowerSt = ((status >> 8) & 0x0FF);
+                    int rxSenseSt = ((status >>16) & 0x0FF);
+                    Integer txPowerVal = ControlDeviceService.getInstance().txPowerMap.get(txPowerSt);
+                    Integer rxSenseVal = ControlDeviceService.getInstance().rxSenseMap.get(rxSenseSt);
+                    int txPower = txPowerVal == null ? 0 : txPowerVal;
+                    int rxSense = rxSenseVal == null ? 0 : rxSenseVal;
+
+                    log.info("{}, BEACON({}): {}/{}/{}/{}/{}/{}/{}/{}/{}", obj.getRSE_CTLR_NMBR(), ii, beaconId, updateVer, workMode, roadStationType, status, beaconState, outputPutGain, txPower, rxSense);
+                }
+            }
+            DbmsDataProcess dbmsDataProcess = (DbmsDataProcess) AppUtils.getBean(DbmsDataProcess.class);
+            dbmsDataProcess.add(new DbmsData(DbmsDataType.DBMS_DATA_CTLR_STTS, false, obj.getStts()));
+
+            log.info("ControlDeviceService.decoding_ControlDevice_Status: {}", obj.getStts().toString());
+        }
+        catch(Exception e) {
+            log.error("ControlDeviceService.decoding_ControlDevice_Status: {}", e.toString());
+        }
+        return true;
+    }
+
+    public boolean decoding_ControlDevice_Status_AirPoint(TbRseCtlr obj, ControlDevice controlDevice) {
         try {
             StatusOfDeviceInfo deviceInfo = new StatusOfDeviceInfo();
             ByteArrayInputStream deviceStream = new ByteArrayInputStream(controlDevice.getVpbdControlDeviceData().value);
@@ -70,6 +173,7 @@ public class ControlDeviceService {
             //String stationId = deviceInfo.getRoadStationID().value.toString();
             //String stts = deviceInfo.getStatusInfo().value.toString();
             //String roadStationID = new String(deviceInfo.getRoadStationID().value);
+            // FOR AIR POINT
             String statusInfo = new String(deviceInfo.getStatusInfo().value);
             String CNTL_DEVC_STTS = "0";
             try {
@@ -88,7 +192,6 @@ public class ControlDeviceService {
 
             // 현장 데이터가 들어오는것 보고 아래 내용과 확인하여 상태정보 자세히 업데이트 해야함
             // AIR POINT 개발자: 상태정보는 일체형인 경우 하나만 사용, 본체, 안테나 같이 사용함
-
             if (deviceInfo.getDataOfBeaconInfoList() != null) {
                 StatusOfDeviceInfo.DataOfBeaconInfoList beacon = deviceInfo.getDataOfBeaconInfoList();
                 List<BeaconInfo> bList = beacon.getBeaconInfo();

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

@@ -72,6 +72,8 @@ spring:
   profiles:
     active: dev
   main:
+    web-application-type: none
+    log-startup-info: true
     banner-mode: off
   mvc:
     view:
@@ -96,7 +98,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
 

+ 1 - 1
src/main/resources/logback-spring.xml

@@ -31,7 +31,7 @@
     <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}] [%5level] %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>-->

+ 160 - 32
src/main/resources/mybatis/mapper/RseCtlrMapper.xml

@@ -58,19 +58,27 @@
     <![CDATA[
         MERGE INTO TB_RSE_CTLR_STTS L
         USING (
-               SELECT #{obj.RSE_CTLR_NMBR} 	 AS RSE_CTLR_NMBR,
-                      #{obj.UPDT_DT} 	     AS UPDT_DT,
-                      #{obj.CMNC_STTS_CD} 	 AS CMNC_STTS_CD,
-                      #{obj.CNTL_DEVC_STTS}  AS CNTL_DEVC_STTS,
-                      #{obj.ATN_1_STTS} 	 AS ATN_1_STTS,
-                      #{obj.ATN_2_STTS} 	 AS ATN_2_STTS,
-                      #{obj.ATN_3_STTS} 	 AS ATN_3_STTS,
-                      #{obj.ATN_4_STTS} 	 AS ATN_4_STTS,
-                      #{obj.ATN_1_MTNS} 	 AS ATN_1_MTNS,
-                      #{obj.ATN_2_MTNS} 	 AS ATN_2_MTNS,
-                      #{obj.ATN_3_MTNS} 	 AS ATN_3_MTNS,
-                      #{obj.ATN_4_MTNS} 	 AS ATN_4_MTNS
-                 FROM DUAL
+               SELECT #{obj.RSE_CTLR_NMBR} 	    AS RSE_CTLR_NMBR,
+                      #{obj.UPDT_DT} 	        AS UPDT_DT,
+                      #{obj.CMNC_STTS_CD} 	    AS CMNC_STTS_CD,
+                      #{obj.CNTL_DEVC_STTS}     AS CNTL_DEVC_STTS,
+                      #{obj.ATN_1_STTS} 	    AS ATN_1_STTS,
+                      #{obj.ATN_2_STTS} 	    AS ATN_2_STTS,
+                      #{obj.ATN_3_STTS} 	    AS ATN_3_STTS,
+                      #{obj.ATN_4_STTS} 	    AS ATN_4_STTS,
+                      #{obj.ATN_1_MTNS} 	    AS ATN_1_MTNS,
+                      #{obj.ATN_2_MTNS} 	    AS ATN_2_MTNS,
+                      #{obj.ATN_3_MTNS} 	    AS ATN_3_MTNS,
+                      #{obj.ATN_4_MTNS} 	    AS ATN_4_MTNS,
+                      #{obj.CBOX_DOOR_STTS_CD} 	AS CBOX_DOOR_STTS_CD,
+                      #{obj.FRONT_DOOR_STTS_CD} AS FRONT_DOOR_STTS_CD,
+                      #{obj.BACK_DOOR_STTS_CD} 	AS BACK_DOOR_STTS_CD,
+                      #{obj.FAN_STTS_CD} 	    AS FAN_STTS_CD,
+                      #{obj.HETR_STTS_CD} 	    AS HETR_STTS_CD,
+                      #{obj.RTU_STTS_CD} 	    AS RTU_STTS_CD,
+                      #{obj.CBOX_TMPR} 	        AS CBOX_TMPR,
+                      #{obj.CBOX_HMDT} 	        AS CBOX_HMDT
+                FROM DUAL
            ) M
         ON ( L.RSE_CTLR_NMBR = M.RSE_CTLR_NMBR )
         WHEN MATCHED THEN
@@ -86,7 +94,15 @@
                      L.ATN_1_MTNS     = M.ATN_1_MTNS,
                      L.ATN_2_MTNS     = M.ATN_2_MTNS,
                      L.ATN_3_MTNS     = M.ATN_3_MTNS,
-                     L.ATN_4_MTNS     = M.ATN_4_MTNS
+                     L.ATN_4_MTNS     = M.ATN_4_MTNS,
+                     L.CBOX_DOOR_STTS_CD  = M.CBOX_DOOR_STTS_CD,
+                     L.FRONT_DOOR_STTS_CD = M.FRONT_DOOR_STTS_CD,
+                     L.BACK_DOOR_STTS_CD  = M.BACK_DOOR_STTS_CD,
+                     L.FAN_STTS_CD        = M.FAN_STTS_CD,
+                     L.HETR_STTS_CD       = M.HETR_STTS_CD,
+                     L.RTU_STTS_CD        = M.RTU_STTS_CD,
+                     L.CBOX_TMPR          = M.CBOX_TMPR,
+                     L.CBOX_HMDT          = M.CBOX_HMDT
         WHEN NOT MATCHED THEN
           INSERT (
 	              L.RSE_CTLR_NMBR,
@@ -100,7 +116,15 @@
                   L.ATN_1_MTNS,
                   L.ATN_2_MTNS,
                   L.ATN_3_MTNS,
-                  L.ATN_4_MTNS
+                  L.ATN_4_MTNS,
+                  L.CBOX_DOOR_STTS_CD,
+                  L.FRONT_DOOR_STTS_CD,
+                  L.BACK_DOOR_STTS_CD,
+                  L.FAN_STTS_CD,
+                  L.HETR_STTS_CD,
+                  L.RTU_STTS_CD,
+                  L.CBOX_TMPR,
+                  L.CBOX_HMDT
                  )
           VALUES (
 	              M.RSE_CTLR_NMBR,
@@ -114,7 +138,15 @@
                   M.ATN_1_MTNS,
                   M.ATN_2_MTNS,
                   M.ATN_3_MTNS,
-                  M.ATN_4_MTNS
+                  M.ATN_4_MTNS,
+                  M.CBOX_DOOR_STTS_CD,
+                  M.FRONT_DOOR_STTS_CD,
+                  M.BACK_DOOR_STTS_CD,
+                  M.FAN_STTS_CD,
+                  M.HETR_STTS_CD,
+                  M.RTU_STTS_CD,
+                  M.CBOX_TMPR,
+                  M.CBOX_HMDT
                  )
     ]]>
     </update>
@@ -134,7 +166,15 @@
                        #{ATN_1_MTNS} 	 AS ATN_1_MTNS,
                        #{ATN_2_MTNS} 	 AS ATN_2_MTNS,
                        #{ATN_3_MTNS} 	 AS ATN_3_MTNS,
-                       #{ATN_4_MTNS} 	 AS ATN_4_MTNS
+                       #{ATN_4_MTNS} 	     AS ATN_4_MTNS,
+                       #{CBOX_DOOR_STTS_CD}  AS CBOX_DOOR_STTS_CD,
+                       #{FRONT_DOOR_STTS_CD} AS FRONT_DOOR_STTS_CD,
+                       #{BACK_DOOR_STTS_CD}  AS BACK_DOOR_STTS_CD,
+                       #{FAN_STTS_CD} 	     AS FAN_STTS_CD,
+                       #{HETR_STTS_CD} 	     AS HETR_STTS_CD,
+                       #{RTU_STTS_CD} 	     AS RTU_STTS_CD,
+                       #{CBOX_TMPR} 	     AS CBOX_TMPR,
+                       #{CBOX_HMDT} 	     AS CBOX_HMDT
                 FROM DUAL
             ) M
             ON ( L.RSE_CTLR_NMBR = M.RSE_CTLR_NMBR )
@@ -151,7 +191,15 @@
                         L.ATN_1_MTNS     = M.ATN_1_MTNS,
                         L.ATN_2_MTNS     = M.ATN_2_MTNS,
                         L.ATN_3_MTNS     = M.ATN_3_MTNS,
-                        L.ATN_4_MTNS     = M.ATN_4_MTNS
+                        L.ATN_4_MTNS     = M.ATN_4_MTNS,
+                        L.CBOX_DOOR_STTS_CD  = M.CBOX_DOOR_STTS_CD,
+                        L.FRONT_DOOR_STTS_CD = M.FRONT_DOOR_STTS_CD,
+                        L.BACK_DOOR_STTS_CD  = M.BACK_DOOR_STTS_CD,
+                        L.FAN_STTS_CD        = M.FAN_STTS_CD,
+                        L.HETR_STTS_CD       = M.HETR_STTS_CD,
+                        L.RTU_STTS_CD        = M.RTU_STTS_CD,
+                        L.CBOX_TMPR          = M.CBOX_TMPR,
+                        L.CBOX_HMDT          = M.CBOX_HMDT
             WHEN NOT MATCHED THEN
                 INSERT (
                         L.RSE_CTLR_NMBR,
@@ -165,7 +213,15 @@
                         L.ATN_1_MTNS,
                         L.ATN_2_MTNS,
                         L.ATN_3_MTNS,
-                        L.ATN_4_MTNS
+                        L.ATN_4_MTNS,
+                        L.CBOX_DOOR_STTS_CD,
+                        L.FRONT_DOOR_STTS_CD,
+                        L.BACK_DOOR_STTS_CD,
+                        L.FAN_STTS_CD,
+                        L.HETR_STTS_CD,
+                        L.RTU_STTS_CD,
+                        L.CBOX_TMPR,
+                        L.CBOX_HMDT
                     )
                     VALUES (
                        M.RSE_CTLR_NMBR,
@@ -179,7 +235,15 @@
                        M.ATN_1_MTNS,
                        M.ATN_2_MTNS,
                        M.ATN_3_MTNS,
-                       M.ATN_4_MTNS
+                       M.ATN_4_MTNS,
+                       M.CBOX_DOOR_STTS_CD,
+                       M.FRONT_DOOR_STTS_CD,
+                       M.BACK_DOOR_STTS_CD,
+                       M.FAN_STTS_CD,
+                       M.HETR_STTS_CD,
+                       M.RTU_STTS_CD,
+                       M.CBOX_TMPR,
+                       M.CBOX_HMDT
                    )
         ]]>
     </update>
@@ -200,7 +264,15 @@
                       #{obj.ATN_1_MTNS} 	 AS ATN_1_MTNS,
                       #{obj.ATN_2_MTNS} 	 AS ATN_2_MTNS,
                       #{obj.ATN_3_MTNS} 	 AS ATN_3_MTNS,
-                      #{obj.ATN_4_MTNS} 	 AS ATN_4_MTNS
+                      #{obj.ATN_4_MTNS} 	 AS ATN_4_MTNS,
+                      #{obj.CBOX_DOOR_STTS_CD} 	AS CBOX_DOOR_STTS_CD,
+                      #{obj.FRONT_DOOR_STTS_CD} AS FRONT_DOOR_STTS_CD,
+                      #{obj.BACK_DOOR_STTS_CD} 	AS BACK_DOOR_STTS_CD,
+                      #{obj.FAN_STTS_CD} 	    AS FAN_STTS_CD,
+                      #{obj.HETR_STTS_CD} 	    AS HETR_STTS_CD,
+                      #{obj.RTU_STTS_CD} 	    AS RTU_STTS_CD,
+                      #{obj.CBOX_TMPR} 	        AS CBOX_TMPR,
+                      #{obj.CBOX_HMDT} 	        AS CBOX_HMDT
                  FROM DUAL
                </foreach>
            ) M
@@ -218,7 +290,15 @@
                      L.ATN_1_MTNS     = M.ATN_1_MTNS,
                      L.ATN_2_MTNS     = M.ATN_2_MTNS,
                      L.ATN_3_MTNS     = M.ATN_3_MTNS,
-                     L.ATN_4_MTNS     = M.ATN_4_MTNS
+                     L.ATN_4_MTNS     = M.ATN_4_MTNS,
+                     L.CBOX_DOOR_STTS_CD  = M.CBOX_DOOR_STTS_CD,
+                     L.FRONT_DOOR_STTS_CD = M.FRONT_DOOR_STTS_CD,
+                     L.BACK_DOOR_STTS_CD  = M.BACK_DOOR_STTS_CD,
+                     L.FAN_STTS_CD        = M.FAN_STTS_CD,
+                     L.HETR_STTS_CD       = M.HETR_STTS_CD,
+                     L.RTU_STTS_CD        = M.RTU_STTS_CD,
+                     L.CBOX_TMPR          = M.CBOX_TMPR,
+                     L.CBOX_HMDT          = M.CBOX_HMDT
                  </set>
         WHEN NOT MATCHED THEN
           INSERT (
@@ -233,11 +313,19 @@
                   L.ATN_1_MTNS,
                   L.ATN_2_MTNS,
                   L.ATN_3_MTNS,
-                  L.ATN_4_MTNS
-                 )
-          VALUES (
-	              M.RSE_CTLR_NMBR,
-	              M.UPDT_DT,
+                  L.ATN_4_MTNS,
+                  L.CBOX_DOOR_STTS_CD,
+                  L.FRONT_DOOR_STTS_CD,
+                  L.BACK_DOOR_STTS_CD,
+                  L.FAN_STTS_CD,
+                  L.HETR_STTS_CD,
+                  L.RTU_STTS_CD,
+                  L.CBOX_TMPR,
+                  L.CBOX_HMDT
+                  )
+           VALUES (
+                  M.RSE_CTLR_NMBR,
+                  M.UPDT_DT,
                   M.CMNC_STTS_CD,
                   M.CNTL_DEVC_STTS,
                   M.ATN_1_STTS,
@@ -247,7 +335,15 @@
                   M.ATN_1_MTNS,
                   M.ATN_2_MTNS,
                   M.ATN_3_MTNS,
-                  M.ATN_4_MTNS
+                  M.ATN_4_MTNS,
+                  M.CBOX_DOOR_STTS_CD,
+                  M.FRONT_DOOR_STTS_CD,
+                  M.BACK_DOOR_STTS_CD,
+                  M.FAN_STTS_CD,
+                  M.HETR_STTS_CD,
+                  M.RTU_STTS_CD,
+                  M.CBOX_TMPR,
+                  M.CBOX_HMDT
                  )
     ]]>
     </update>
@@ -266,7 +362,15 @@
                   ATN_1_MTNS,
                   ATN_2_MTNS,
                   ATN_3_MTNS,
-                  ATN_4_MTNS
+                  ATN_4_MTNS,
+                  CBOX_DOOR_STTS_CD,
+                  FRONT_DOOR_STTS_CD,
+                  BACK_DOOR_STTS_CD,
+                  FAN_STTS_CD,
+                  HETR_STTS_CD,
+                  RTU_STTS_CD,
+                  CBOX_TMPR,
+                  CBOX_HMDT
                  )
           VALUES (
                   #{obj.UPDT_DT},
@@ -280,7 +384,15 @@
                   #{obj.ATN_1_MTNS},
                   #{obj.ATN_2_MTNS},
                   #{obj.ATN_3_MTNS},
-                  #{obj.ATN_4_MTNS}
+                  #{obj.ATN_4_MTNS},
+                  #{obj.CBOX_DOOR_STTS_CD},
+                  #{obj.FRONT_DOOR_STTS_CD},
+                  #{obj.BACK_DOOR_STTS_CD},
+                  #{obj.FAN_STTS_CD},
+                  #{obj.HETR_STTS_CD},
+                  #{obj.RTU_STTS_CD},
+                  #{obj.CBOX_TMPR},
+                  #{obj.CBOX_HMDT}
                  )
     ]]>
     </insert>
@@ -299,7 +411,15 @@
             ATN_1_MTNS,
             ATN_2_MTNS,
             ATN_3_MTNS,
-            ATN_4_MTNS
+            ATN_4_MTNS,
+            CBOX_DOOR_STTS_CD,
+            FRONT_DOOR_STTS_CD,
+            BACK_DOOR_STTS_CD,
+            FAN_STTS_CD,
+            HETR_STTS_CD,
+            RTU_STTS_CD,
+            CBOX_TMPR,
+            CBOX_HMDT
         )
         VALUES (
                    #{UPDT_DT},
@@ -313,7 +433,15 @@
                    #{ATN_1_MTNS},
                    #{ATN_2_MTNS},
                    #{ATN_3_MTNS},
-                   #{ATN_4_MTNS}
+                   #{ATN_4_MTNS},
+                   #{CBOX_DOOR_STTS_CD},
+                   #{FRONT_DOOR_STTS_CD},
+                   #{BACK_DOOR_STTS_CD},
+                   #{FAN_STTS_CD},
+                   #{HETR_STTS_CD},
+                   #{RTU_STTS_CD},
+                   #{CBOX_TMPR},
+                   #{CBOX_HMDT}
                )
         ]]>
     </insert>