shjung 2 years ago
parent
commit
1e58a5849e

+ 2 - 4
src/main/java/com/its/op/entity/its/scrs/TbScSgnlIxrStts.java

@@ -3,10 +3,7 @@ package com.its.op.entity.its.scrs;
 import com.its.op.dto.its.scrs.TbScSgnlIxrSttsDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
+import lombok.*;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -18,6 +15,7 @@ import java.io.Serializable;
  * 신호 교차로 상태 Entity Class
  */
 @Getter
+@Setter
 @NoArgsConstructor//(access = AccessLevel.PROTECTED)
 @Builder
 @AllArgsConstructor

+ 40 - 0
src/main/java/com/its/op/service/its/facility/TbFcltSttsAlrmStupService.java

@@ -3,15 +3,21 @@ package com.its.op.service.its.facility;
 import com.its.op.dao.repository.its.cctv.TbCctvCtlrRepository;
 import com.its.op.dao.repository.its.facility.TbFcltSttsAlrmStupRepository;
 import com.its.op.dao.repository.its.rse.TbRseCtlrRepository;
+import com.its.op.dao.repository.its.scrs.TbScIxrCmraMngmRepository;
+import com.its.op.dao.repository.its.scrs.TbScSgnlCtlrRepository;
 import com.its.op.dao.repository.its.vds.TbVdsCtlrRepository;
 import com.its.op.dao.repository.its.vms.TbVmsCtlrRepository;
+import com.its.op.dao.repository.its.wcam.TbWcamCtlrRepository;
 import com.its.op.dto.its.facility.TbFcltSttsAlrmStupDto;
 import com.its.op.entity.its.cctv.TbCctvCtlr;
 import com.its.op.entity.its.facility.TbFcltSttsAlrmStup;
 import com.its.op.entity.its.facility.TbFcltSttsAlrmStupKey;
 import com.its.op.entity.its.rse.TbRseCtlr;
+import com.its.op.entity.its.scrs.TbScIxrCmraMngm;
+import com.its.op.entity.its.scrs.TbScSgnlCtlr;
 import com.its.op.entity.its.vds.TbVdsCtlr;
 import com.its.op.entity.its.vms.TbVmsCtlr;
+import com.its.op.entity.its.wcam.TbWcamCtlr;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -29,6 +35,9 @@ public class TbFcltSttsAlrmStupService {
     private final TbVmsCtlrRepository vmsRepo;
     private final TbVdsCtlrRepository vdsRepo;
     private final TbRseCtlrRepository rseRepo;
+    private final TbWcamCtlrRepository wcamRepo;
+    private final TbScSgnlCtlrRepository sigRepo;
+    private final TbScIxrCmraMngmRepository ccamRepo;
 
 
     // 데이터 1건 조회, 없으면 exception
@@ -51,6 +60,10 @@ public class TbFcltSttsAlrmStupService {
         List<TbVmsCtlr> vmsList = this.vmsRepo.findAllList();
         List<TbVdsCtlr> vdsList = this.vdsRepo.findAllList();
         List<TbRseCtlr> rseList = this.rseRepo.findAllList();
+        List<TbWcamCtlr> wcamList = this.wcamRepo.findAllList();
+        List<TbScSgnlCtlr> sigList = this.sigRepo.findAllList();
+        List<TbScIxrCmraMngm> ccamList = this.ccamRepo.findAllList();
+
         for (TbCctvCtlr cctv : cctvList) {
             result.put(cctv.getCctvCtlrId(), TbFcltSttsAlrmStupDto.build("CCTV", cctv.getCctvCtlrId(), cctv.getCctvNm()));
         }
@@ -63,6 +76,15 @@ public class TbFcltSttsAlrmStupService {
         for (TbRseCtlr rse : rseList) {
             result.put(rse.getRseCtlrId(), TbFcltSttsAlrmStupDto.build("DSRC", rse.getRseCtlrId(), rse.getRseNm()));
         }
+        for (TbWcamCtlr wcam : wcamList) {
+            result.put(wcam.getWcamCtlrId(), TbFcltSttsAlrmStupDto.build("WCAM", wcam.getWcamCtlrId(), wcam.getWcamNm()));
+        }
+        for (TbScSgnlCtlr sig : sigList) {
+            result.put(String.valueOf(sig.getSgnlIxrNmbr()), TbFcltSttsAlrmStupDto.build("SIG", String.valueOf(sig.getSgnlIxrNmbr()), sig.getIxrNm()));
+        }
+        for (TbScIxrCmraMngm ccam : ccamList) {
+            result.put(ccam.getCmraId(), TbFcltSttsAlrmStupDto.build("CCAM", ccam.getCmraId(), ccam.getIstlLctn()));
+        }
 
         List<TbFcltSttsAlrmStup> data = this.repo.findAllList();
         for (TbFcltSttsAlrmStup entity : data) {
@@ -134,6 +156,24 @@ public class TbFcltSttsAlrmStupService {
                 result.put(rse.getRseCtlrId(), TbFcltSttsAlrmStupDto.build("DSRC", rse.getRseCtlrId(), rse.getRseNm()));
             }
         }
+        else if ("WCAM".equals(fcltType)) {
+            List<TbWcamCtlr> wcamList = this.wcamRepo.findAllList();
+            for (TbWcamCtlr wcam : wcamList) {
+                result.put(wcam.getWcamCtlrId(), TbFcltSttsAlrmStupDto.build("WCAM", wcam.getWcamCtlrId(), wcam.getWcamNm()));
+            }
+        }
+        else if ("SIG".equals(fcltType)) {
+            List<TbScSgnlCtlr> sigList = this.sigRepo.findAllList();
+            for (TbScSgnlCtlr sig : sigList) {
+                result.put(String.valueOf(sig.getSgnlIxrNmbr()), TbFcltSttsAlrmStupDto.build("SIG", String.valueOf(sig.getSgnlIxrNmbr()), sig.getIxrNm()));
+            }
+        }
+        else if ("CCAM".equals(fcltType)) {
+            List<TbScIxrCmraMngm> ccamList = this.ccamRepo.findAllList();
+            for (TbScIxrCmraMngm ccam : ccamList) {
+                result.put(ccam.getCmraId(), TbFcltSttsAlrmStupDto.build("CCAM", ccam.getCmraId(), ccam.getIstlLctn()));
+            }
+        }
 
         List<TbFcltSttsAlrmStup> data = this.repo.findListById(fcltType);
         for (TbFcltSttsAlrmStup entity : data) {

+ 1 - 1
src/main/java/com/its/op/service/its/scrs/ScFileDownloadService.java

@@ -71,7 +71,7 @@ public class ScFileDownloadService {
         final String optimalFileTrafficPath = "raw-clct/";
         List<FileInfoDto> result = new ArrayList<>();
         int id = 1;
-        String filePath = dataFilePath + optimalFileTrafficPath;
+        String filePath = this.dataFilePath + optimalFileTrafficPath;
         FileInfoDto rootFile = FileInfoDto.builder()
                 .files(new ArrayList<>())
                 .id(id)

+ 6 - 1
src/main/java/com/its/op/service/its/scrs/TbScIxrCmraMngmService.java

@@ -148,7 +148,7 @@ public class TbScIxrCmraMngmService {
 
     @Transactional(readOnly = true)
     public FcltSttsListDto findAllSttsListTotal(boolean total, boolean isMemory) {
-
+        Map<String, TbFcltSttsAlrmStupDto> alarmMap = this.alarmService.loadAlarmSetup(this.fcltType);
         FcltSttsListDto result = new FcltSttsListDto();
 
         AtomicInteger error = new AtomicInteger(0);
@@ -171,6 +171,11 @@ public class TbScIxrCmraMngmService {
         }
 
         ctlrList.forEach(obj -> {
+            TbFcltSttsAlrmStupDto alarm = alarmMap.get(obj.getCmraId());
+            if (alarm != null && "Y".equals(alarm.getUseYn()) && "N".equals(alarm.getCmncStts())) {
+                obj.getState().setCmraStts(1);
+            }
+
             TbScIxrCmraSttsDto dto = obj.toSttsDto();
             if (total) {
                 int tfvl = 0;

+ 38 - 5
src/main/java/com/its/op/service/its/scrs/TbScSgnlCtlrService.java

@@ -4,21 +4,20 @@ import com.its.op.dao.repository.its.scrs.TbScSgnlCtlrRepository;
 import com.its.op.dto.its.common.FcltSttsDto;
 import com.its.op.dto.its.common.FcltSttsListDto;
 import com.its.op.dto.its.common.FcltSttsSummaryDto;
+import com.its.op.dto.its.facility.TbFcltSttsAlrmStupDto;
 import com.its.op.dto.its.scrs.TbScSgnlCtlrDto;
 import com.its.op.dto.its.scrs.TbScSgnlCtlrPhaseDto;
 import com.its.op.dto.its.scrs.TbScSgnlIxrSttsDto;
 import com.its.op.entity.its.scrs.TbScSgnlCtlr;
 import com.its.op.global.CmmnCdManager;
 import com.its.op.global.TbScSgnlCtlrManager;
+import com.its.op.service.its.facility.TbFcltSttsAlrmStupService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Optional;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
 @Slf4j
@@ -26,6 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 @Service
 public class TbScSgnlCtlrService {
 
+    private final TbFcltSttsAlrmStupService alarmService;
     private final TbScSgnlCtlrRepository repo;
     private final TbScSgnlCtlrManager manager;
     private final String fcltType = "SIG";
@@ -175,7 +175,7 @@ public class TbScSgnlCtlrService {
      */
     @Transactional(readOnly = true)
     public FcltSttsListDto findAllSttsListTotal(boolean total, boolean isMemory) {
-
+        Map<String, TbFcltSttsAlrmStupDto> alarmMap = this.alarmService.loadAlarmSetup(this.fcltType);
         FcltSttsListDto result = new FcltSttsListDto();
 
         AtomicInteger error = new AtomicInteger(0);
@@ -190,6 +190,10 @@ public class TbScSgnlCtlrService {
         }
 
         ctlrList.forEach(obj -> {
+            TbFcltSttsAlrmStupDto alarm = alarmMap.get(String.valueOf(obj.getSgnlIxrNmbr()));
+            if (alarm != null && "Y".equals(alarm.getUseYn()) && "N".equals(alarm.getCmncStts())) {
+                obj.getStts().setCntlStts(1);   // OnLine
+            }
             TbScSgnlIxrSttsDto dto = obj.toSttsDto();
             if (total) {
                 FcltSttsDto stts = FcltSttsDto.builder()
@@ -233,4 +237,33 @@ public class TbScSgnlCtlrService {
         return result;
     }
 
+    /**
+     * 삭제 되지 않은 제어기 상태 정보 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<TbScSgnlIxrSttsDto> findAllStts(boolean isMemory) {
+        Map<String, TbFcltSttsAlrmStupDto> alarmMap = this.alarmService.loadAlarmSetup(this.fcltType);
+        List<TbScSgnlIxrSttsDto> result = new ArrayList<>();
+        List<TbScSgnlCtlr> data;
+        if (isMemory) {
+            data = this.manager.findAll();
+        } else {
+            data = this.repo.findAllList();
+        }
+
+        data.forEach(obj -> {
+            if (obj.getStts().getCntlStts() == 3) {
+                TbFcltSttsAlrmStupDto alarm = alarmMap.get(String.valueOf(obj.getSgnlIxrNmbr()));
+                if (alarm != null && "Y".equals(alarm.getUseYn())) {
+                    if ("N".equals(alarm.getCmncStts())) {
+                        obj.getStts().setCntlStts(1);   // OnLine
+                    }
+                }
+            }
+            result.add(obj.toSttsDto());
+        });
+        return result;
+    }
+
 }

+ 40 - 40
src/main/java/com/its/op/service/its/wcam/TbWcamCtlrService.java

@@ -77,41 +77,6 @@ public class TbWcamCtlrService {
         return result;
     }
 
-    /**
-     * 삭제 되지 않은 제어기 상태 정보 조회
-     * @return
-     */
-    @Transactional(readOnly = true)
-    public List<TbWcamCtlrSttsDto> findAllStts(boolean isMemory) {
-        Map<String, TbFcltSttsAlrmStupDto> alarmMap = this.alarmService.loadAlarmSetup(this.fcltType);
-        List<TbWcamCtlrSttsDto> result = new ArrayList<>();
-        List<TbWcamCtlr> data;
-        if (isMemory) {
-            List<TbWcamCtlr> temp = this.manager.findAll();
-            data = temp.stream().filter(obj -> "N".equals(obj.getDelYn())).collect(Collectors.toList());
-        } else {
-            data = this.repo.findAllList();
-        }
-
-        data.forEach(obj -> {
-            if (!CmmnCdManager.CMNC_STTS_NORMAL.equals(obj.getCmncSttsCd())) {
-                TbFcltSttsAlrmStupDto alarm = alarmMap.get(obj.getWcamCtlrId());
-                if (alarm != null && "Y".equals(alarm.getUseYn())) {
-                    if ("N".equals(alarm.getCmncStts())) {
-                        obj.getState().setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
-                        if ("N".equals(alarm.getDoorStts())) {
-                        }
-                        if ("N".equals(alarm.getVideoInput())) {
-                            //obj.getState().setVideoInput("VDI0");
-                        }
-                    }
-                }
-            }
-            result.add(obj.toSttsDto());
-        });
-        return result;
-    }
-
     // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
     @Transactional(readOnly = true)
     public TbWcamCtlrDto findById(Long wcamCtlrNmbr) {
@@ -249,11 +214,11 @@ public class TbWcamCtlrService {
             TbFcltSttsAlrmStupDto alarm = alarmMap.get(obj.getWcamCtlrId());
             if (alarm != null && "Y".equals(alarm.getUseYn()) && "N".equals(alarm.getCmncStts())) {
                 obj.getState().setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
-                if ("N".equals(alarm.getDoorStts())) {
-                }
-                if ("N".equals(alarm.getVideoInput())) {
-                    //obj.getState().setVideoInput("VDI0");
-                }
+//                if ("N".equals(alarm.getDoorStts())) {
+//                }
+//                if ("N".equals(alarm.getVideoInput())) {
+//                    //obj.getState().setVideoInput("VDI0");
+//                }
             }
 
             TbWcamCtlrSttsDto dto = obj.toSttsDto();
@@ -300,6 +265,41 @@ public class TbWcamCtlrService {
         return result;
     }
 
+    /**
+     * 삭제 되지 않은 제어기 상태 정보 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<TbWcamCtlrSttsDto> findAllStts(boolean isMemory) {
+        Map<String, TbFcltSttsAlrmStupDto> alarmMap = this.alarmService.loadAlarmSetup(this.fcltType);
+        List<TbWcamCtlrSttsDto> result = new ArrayList<>();
+        List<TbWcamCtlr> data;
+        if (isMemory) {
+            List<TbWcamCtlr> temp = this.manager.findAll();
+            data = temp.stream().filter(obj -> "N".equals(obj.getDelYn())).collect(Collectors.toList());
+        } else {
+            data = this.repo.findAllList();
+        }
+
+        data.forEach(obj -> {
+            if (!CmmnCdManager.CMNC_STTS_NORMAL.equals(obj.getCmncSttsCd())) {
+                TbFcltSttsAlrmStupDto alarm = alarmMap.get(obj.getWcamCtlrId());
+                if (alarm != null && "Y".equals(alarm.getUseYn())) {
+                    if ("N".equals(alarm.getCmncStts())) {
+                        obj.getState().setCmncSttsCd(CmmnCdManager.CMNC_STTS_NORMAL);
+//                        if ("N".equals(alarm.getDoorStts())) {
+//                        }
+//                        if ("N".equals(alarm.getVideoInput())) {
+//                            obj.getState().setVideoInput("VDI0");
+//                        }
+                    }
+                }
+            }
+            result.add(obj.toSttsDto());
+        });
+        return result;
+    }
+
     /**
      * 신규 제어기 번호 조회
      * @return

+ 8 - 0
src/main/java/com/its/utils/StringUtils.java

@@ -81,4 +81,12 @@ public class StringUtils {
         return new String(chars, 0, chars.length);
     }
 
+    public static String escapeSpecialCharacters(String data) {
+        String escapedData = data.replaceAll("\\R", " ");   // carriage return
+        if (data.contains(",") || data.contains("\"") || data.contains("'")) {  // , " '
+            String tmpData = data.replace("\"", "\"\"");
+            escapedData = "\"" + tmpData + "\"";
+        }
+        return escapedData;
+    }
 }