浏览代码

vms control add

shjung 2 年之前
父节点
当前提交
8819635081

+ 142 - 0
src/main/java/com/its/op/controller/its/vms/CsVmsControlController.java

@@ -0,0 +1,142 @@
+package com.its.op.controller.its.vms;
+
+import com.its.op.controller.its.LoginController;
+import com.its.op.dto.its.vms.VmsControlDto;
+import com.its.op.service.its.vms.VmsControlService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.NoSuchElementException;
+
+@Slf4j
+@Api(tags = "12.VMS-0.제어(CS-APP)")
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/cs-api/vms/control")
+public class CsVmsControlController {
+
+    private final VmsControlService service;
+    private final LoginController loginController;
+
+    @ApiOperation(value = "VMS 제어기 리셋", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/reset/{key}/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlReset(
+            @PathVariable final String key,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
+            @ApiParam(name = "req", value = "VMS 제어기 제어 정보", example = "[ADMIN]", required = true)
+            @RequestBody @Valid final VmsControlDto.VmsControlReq req) throws NoSuchElementException {
+        log.warn("Vms reset: {}, {}, {}", key, ctlrNmbr, req);
+        if (!StringUtils.equals(key, "abcdefg1234567890x")) {
+            throw new NoSuchElementException("Authentication key mismatched: " + ctlrNmbr);
+        }
+        return this.service.controlReset(ctlrNmbr, req);
+    }
+
+    @ApiOperation(value = "VMS 제어기 전광판 ON/OFF 제어", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/power/{key}/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlPower(
+            @PathVariable final String key,
+            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
+            @ApiParam(name = "req", value = "VMS 제어기 제어 정보", example = "[ADMIN]", required = true)
+            @RequestBody @Valid final VmsControlDto.VmsControlReq req) throws NoSuchElementException {
+        log.warn("Vms power: {}, {}, {}", key, ctlrNmbr, req);
+        if (!StringUtils.equals(key, "abcdefg1234567890x")) {
+            throw new NoSuchElementException("Authentication key mismatched: " + ctlrNmbr);
+        }
+        return this.service.controlPower(ctlrNmbr, req);
+    }
+
+    @ApiOperation(value = "VMS 제어기 휘도 제어", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/luminance/{key}/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlLuminance(
+            @PathVariable final String key,
+            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
+            @ApiParam(name = "req", value = "VMS 제어기 제어 정보", example = "[ADMIN]", required = true)
+            @RequestBody @Valid final VmsControlDto.VmsControlReq req) throws NoSuchElementException {
+        log.warn("Vms luminance: {}, {}, {}", key, ctlrNmbr, req);
+        if (!StringUtils.equals(key, "abcdefg1234567890x")) {
+            throw new NoSuchElementException("Authentication key mismatched: " + ctlrNmbr);
+        }
+        return this.service.controlLuminance(ctlrNmbr, req);
+    }
+
+    @ApiOperation(value = "VMS 제어기 파라미터 설정", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/param/{key}/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlLuminance(
+            @PathVariable final String key,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
+            @ApiParam(name = "req", value = "VMS 제어기 파라미터 설정 정보", example = "[ADMIN]", required = true)
+            @RequestBody @Valid final VmsControlDto.VmsControlParamReq req) throws NoSuchElementException {
+        log.warn("Vms param: {}, {}, {}", key, ctlrNmbr, req);
+        if (!StringUtils.equals(key, "abcdefg1234567890x")) {
+            throw new NoSuchElementException("Authentication key mismatched: " + ctlrNmbr);
+        }
+        return this.service.controlParam(ctlrNmbr, req);
+    }
+
+    @ApiOperation(value = "VMS 제어기 전광판 ON-OFF 시각 설정", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/on-off-time/{key}/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlOnOffTime(
+            @PathVariable final String key,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
+            @ApiParam(name = "req", value = "VMS 제어기 전광판 ON-OFF 시각 설정 정보", example = "[ADMIN]", required = true)
+            @RequestBody @Valid final VmsControlDto.VmsControlOnOffTimeReq req) throws NoSuchElementException {
+        log.warn("Vms on-off-time: {}, {}, {}", key, ctlrNmbr, req);
+        if (!StringUtils.equals(key, "abcdefg1234567890x")) {
+            throw new NoSuchElementException("Authentication key mismatched: " + ctlrNmbr);
+        }
+        return this.service.controlOnOffTime(ctlrNmbr, req);
+    }
+
+    @ApiOperation(value = "VMS 제어기 운영모드 설정", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/opr-mode/{key}/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlOprMode(
+            @PathVariable final String key,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
+            @ApiParam(name = "req", value = "VMS 제어기 운영모드 설정 정보(A:자동, F:고정, B:기본)", example = "[A]", required = true)
+            @RequestBody @Valid final VmsControlDto.VmsControlOprModeReq req) throws NoSuchElementException {
+        log.warn("Vms opr-mode: {}, {}, {}", key, ctlrNmbr, req);
+        if (!StringUtils.equals(key, "abcdefg1234567890x")) {
+            throw new NoSuchElementException("Authentication key mismatched: " + ctlrNmbr);
+        }
+        return this.service.controlOprMode(ctlrNmbr, req);
+    }
+
+    @ApiOperation(value = "VMS 이미지 심볼 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/image-symbol", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyImageSymbol() {
+        return this.service.controlNotifyImageSymbol();
+    }
+
+    @ApiOperation(value = "VMS 이미지 트레픽 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/image-traffic", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyImageTraffic() {
+        return this.service.controlNotifyImageTraffic();
+    }
+
+    @ApiOperation(value = "VMS 폼 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/vms-form", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyVmsForm() {
+        return this.service.controlNotifyVmsForm();
+    }
+
+    @ApiOperation(value = "VMS 정보제공구간 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/vms-ifsc", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyVmsIfsc() {
+        return this.service.controlNotifyVmsIfsc();
+    }
+}

+ 32 - 26
src/main/java/com/its/op/controller/its/vms/VmsControlController.java

@@ -25,11 +25,11 @@ public class VmsControlController {
     private final VmsControlService service;
     private final LoginController loginController;
 
-    @ApiOperation(value = "VMS 제어기 제어", response = VmsControlDto.VmsControlRes.class)
-    @PostMapping(value = "/reset/{id}", produces = {"application/json; charset=utf8"})
+    @ApiOperation(value = "VMS 제어기 리셋", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/reset/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
     public VmsControlDto.VmsControlRes controlReset(
-            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
-            @PathVariable("id") Long id,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
             @ApiParam(name = "req", value = "VMS 제어기 제어 정보", example = "[ADMIN]", required = true)
             @RequestBody @Valid final VmsControlDto.VmsControlReq req,
             HttpServletRequest request) {
@@ -38,14 +38,14 @@ public class VmsControlController {
         if (!userId.equals("")) {
             req.setUserId(userId);
         }
-        return this.service.controlReset(id, req);
+        return this.service.controlReset(ctlrNmbr, req);
     }
 
     @ApiOperation(value = "VMS 제어기 전광판 ON/OFF 제어", response = VmsControlDto.VmsControlRes.class)
-    @PostMapping(value = "/power/{id}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/power/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
     public VmsControlDto.VmsControlRes controlPower(
-            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
-            @PathVariable("id") Long id,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
             @ApiParam(name = "req", value = "VMS 제어기 제어 정보", example = "[ADMIN]", required = true)
             @RequestBody @Valid final VmsControlDto.VmsControlReq req,
             HttpServletRequest request) {
@@ -54,14 +54,14 @@ public class VmsControlController {
         if (!userId.equals("")) {
             req.setUserId(userId);
         }
-        return this.service.controlPower(id, req);
+        return this.service.controlPower(ctlrNmbr, req);
     }
 
     @ApiOperation(value = "VMS 제어기 휘도 제어", response = VmsControlDto.VmsControlRes.class)
-    @PostMapping(value = "/luminance/{id}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/luminance/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
     public VmsControlDto.VmsControlRes controlLuminance(
-            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
-            @PathVariable("id") Long id,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
             @ApiParam(name = "req", value = "VMS 제어기 제어 정보", example = "[ADMIN]", required = true)
             @RequestBody @Valid final VmsControlDto.VmsControlReq req,
             HttpServletRequest request) {
@@ -70,14 +70,14 @@ public class VmsControlController {
         if (!userId.equals("")) {
             req.setUserId(userId);
         }
-        return this.service.controlLuminance(id, req);
+        return this.service.controlLuminance(ctlrNmbr, req);
     }
 
     @ApiOperation(value = "VMS 제어기 파라미터 설정", response = VmsControlDto.VmsControlRes.class)
-    @PostMapping(value = "/param/{id}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/param/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
     public VmsControlDto.VmsControlRes controlLuminance(
-            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
-            @PathVariable("id") Long id,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
             @ApiParam(name = "req", value = "VMS 제어기 파라미터 설정 정보", example = "[ADMIN]", required = true)
             @RequestBody @Valid final VmsControlDto.VmsControlParamReq req,
             HttpServletRequest request) {
@@ -86,24 +86,30 @@ public class VmsControlController {
         if (!userId.equals("")) {
             req.setUserId(userId);
         }
-        return this.service.controlParam(id, req);
+        return this.service.controlParam(ctlrNmbr, req);
     }
 
     @ApiOperation(value = "VMS 제어기 전광판 ON-OFF 시각 설정", response = VmsControlDto.VmsControlRes.class)
-    @PostMapping(value = "/on-off-time/{id}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/on-off-time/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
     public VmsControlDto.VmsControlRes controlOnOffTime(
-            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
-            @PathVariable("id") Long id,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
             @ApiParam(name = "req", value = "VMS 제어기 전광판 ON-OFF 시각 설정 정보", example = "[ADMIN]", required = true)
-            @RequestBody @Valid final VmsControlDto.VmsControlOnOffTimeReq req) {
-        return this.service.controlOnOffTime(id, req);
+            @RequestBody @Valid final VmsControlDto.VmsControlOnOffTimeReq req,
+            HttpServletRequest request) {
+        String userId = this.loginController.getSessionUserId(request);
+        log.info("UUID: {}", userId);
+        if (!userId.equals("")) {
+            req.setUserId(userId);
+        }
+        return this.service.controlOnOffTime(ctlrNmbr, req);
     }
 
     @ApiOperation(value = "VMS 제어기 운영모드 설정", response = VmsControlDto.VmsControlRes.class)
-    @PostMapping(value = "/opr-mode/{id}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/opr-mode/{ctlrNmbr}", produces = {"application/json; charset=utf8"})
     public VmsControlDto.VmsControlRes controlOprMode(
-            @ApiParam(name = "id", value = "제어기번호", example = "10021", required = true)
-            @PathVariable("id") Long id,
+            @ApiParam(name = "ctlrNmbr", value = "제어기번호", example = "10021", required = true)
+            @PathVariable("ctlrNmbr") Long ctlrNmbr,
             @ApiParam(name = "req", value = "VMS 제어기 운영모드 설정 정보(A:자동, F:고정, B:기본)", example = "[A]", required = true)
             @RequestBody @Valid final VmsControlDto.VmsControlOprModeReq req,
             HttpServletRequest request) {
@@ -112,7 +118,7 @@ public class VmsControlController {
         if (!userId.equals("")) {
             req.setUserId(userId);
         }
-        return this.service.controlOprMode(id, req);
+        return this.service.controlOprMode(ctlrNmbr, req);
     }
 
     @ApiOperation(value = "VMS 이미지 심볼 재로딩 요청", response = VmsControlDto.VmsControlRes.class)

+ 2 - 2
src/main/java/com/its/op/dto/its/vms/TbVmsCtlrSttsDto.java

@@ -61,11 +61,11 @@ public class TbVmsCtlrSttsDto implements Serializable {
     @JsonProperty("comm_stts_cd")
     private String commSttsCd;
 
-    @ApiModelProperty("모듈상태-사용안함")  // Y VARCHAR2(200)
+    @ApiModelProperty("모듈상태-배열")  // Y VARCHAR2(200)
     @JsonProperty("modl_stts")
     private String modlStts;
 
-    @ApiModelProperty("모듈전원상태-사용안함")  // Y VARCHAR2(200)
+    @ApiModelProperty("모듈전원상태-배열")  // Y VARCHAR2(200)
     @JsonProperty("pwer_stts")
     private String pwerStts;
 

+ 14 - 1
src/main/java/com/its/op/dto/its/vms/VmsControlDto.java

@@ -29,10 +29,23 @@ public class VmsControlDto implements Serializable {
         @JsonProperty("user_id")
         private String userId;
 
-        @ApiModelProperty("리셋(0), 전관판제어(0:On, 1:Off), 휘도제어(0:자동, 1:주간, 2:야간, 3~100:수동)")
+        //@ApiModelProperty("리셋(0:소프트웨어리셋, 1:하드웨어리셋), 전관판제어(0:On, 1:Off), 휘도제어(0:자동, 1:주간, 2:야간, 3~100:수동)")
+        @ApiModelProperty("리셋(0:소프트웨어리셋, 1:하드웨어리셋), 전관판제어(0:On, 1:Off), 휘도제어(0:주간, 1:야간, 2:자동, 9:수동)")
         @JsonProperty("value")
         private Integer value;
 
+        @ApiModelProperty("휘도제어 휘도값-현재")
+        @JsonProperty("curr_step")
+        private Integer currStep;
+
+        @ApiModelProperty("휘도제어 휘도값-주간")
+        @JsonProperty("week_step")
+        private Integer weekStep;
+
+        @ApiModelProperty("휘도제어 휘도값-야간")
+        @JsonProperty("nght_step")
+        private Integer nghtStep;
+
         @Builder
         public VmsControlReq(String user_id, Integer value) {
             this.userId = user_id;

+ 10 - 9
src/main/java/com/its/op/entity/its/vms/TbVmsCtlr.java

@@ -296,9 +296,6 @@ public class TbVmsCtlr implements Serializable {
             dto.setOperModeDesc("[" + this.operMode + "] 알수없음");
         }
 
-//        if (this.usagType != null) {
-//            dto.setVmsUsagTypeDesc(this.usagType.getVmsUsagTypeNm());
-//        }
         if (this.type != null) {
             dto.setVmsTypeDesc(this.type.getVmsTypeNm());
             dto.setVmsWdth(this.type.getVmsWdth());
@@ -316,21 +313,23 @@ public class TbVmsCtlr implements Serializable {
 
             dto.setCmncSttsCd(this.state.getCmncSttsCd());
             dto.setPwerSttsCd(this.state.getPwerSttsCd());
+            dto.setModlSttsCd(this.state.getModlSttsCd());
+            dto.setCboxDoorSttsCd(this.state.getCboxDoorSttsCd());
             dto.setFanSttsCd(this.state.getFanSttsCd());
             dto.setHetrSttsCd(this.state.getHetrSttsCd());
-            dto.setCboxDoorSttsCd(this.state.getCboxDoorSttsCd());
-            dto.setModlSttsCd(this.state.getFanSttsCd());
             dto.setCboxTmpr(this.state.getCboxTmpr());
-            dto.setBrghVal(this.state.getCboxTmpr());
+            dto.setBrghVal(this.state.getBrghVal());
             dto.setModlStts(this.state.getModlStts());
             dto.setPwerStts(this.state.getPwerStts());
+            dto.setCommSttsCd(this.state.getCommSttsCd());
         }
         else {
-            dto.setModlSttsDesc(CodeManager.STTS_UNKNOWN);       // 모듈상태
             dto.setPwerSttsDesc(CodeManager.STTS_UNKNOWN);       // 전원상태
+            dto.setModlSttsDesc(CodeManager.STTS_UNKNOWN);       // 모듈상태
             dto.setCboxDoorSttsDesc(CodeManager.STTS_UNKNOWN);   // 도어
             dto.setFanSttsDesc(CodeManager.STTS_UNKNOWN);        // 팬상태
             dto.setHetrSttsDesc(CodeManager.STTS_UNKNOWN);       // 히터상태
+            dto.setCommSttsDesc(CodeManager.STTS_UNKNOWN);
             dto.setCboxTmpr(255);
             dto.setBrghVal(255);
         }
@@ -344,18 +343,20 @@ public class TbVmsCtlr implements Serializable {
 
         dto.setCmncSttsDesc(CodeManager.getCodeDescShort(CodeManager.CMNC_STTS_CD, dto.getCmncSttsCd()));       // 통신상태
         if (CodeManager.CMNC_STTS_NORMAL.equals(dto.getCmncSttsCd())) {
-            dto.setModlSttsDesc(CodeManager.getCodeDescShort(CodeManager.MODL_STTS_CD, dto.getModlSttsCd()));           // 모듈상태
             dto.setPwerSttsDesc(CodeManager.getCodeDescShort(CodeManager.PWER_STTS_CD, dto.getPwerSttsCd()));           // 전원상태
+            dto.setModlSttsDesc(CodeManager.getCodeDescShort(CodeManager.MODL_STTS_CD, dto.getModlSttsCd()));           // 모듈상태
             dto.setCboxDoorSttsDesc(CodeManager.getCodeDescShort(CodeManager.DOOR_STTS_CD, dto.getCboxDoorSttsCd()));   // 도어
             dto.setFanSttsDesc(CodeManager.getCodeDescShort(CodeManager.FAN_STTS_CD, dto.getFanSttsCd()));              // 팬상태
             dto.setHetrSttsDesc(CodeManager.getCodeDescShort(CodeManager.HETR_STTS_CD, dto.getHetrSttsCd()));           // 히터상태
+            dto.setCommSttsDesc(CodeManager.getCodeDescShort(CodeManager.CMNC_STTS_CD, dto.getCommSttsCd()));             // 통신상태
         }
         else {
-            dto.setModlSttsDesc(CodeManager.STTS_UNKNOWN);       // 모듈상태
             dto.setPwerSttsDesc(CodeManager.STTS_UNKNOWN);       // 전원상태
+            dto.setModlSttsDesc(CodeManager.STTS_UNKNOWN);       // 모듈상태
             dto.setCboxDoorSttsDesc(CodeManager.STTS_UNKNOWN);   // 도어
             dto.setFanSttsDesc(CodeManager.STTS_UNKNOWN);        // 팬상태
             dto.setHetrSttsDesc(CodeManager.STTS_UNKNOWN);       // 히터상태
+            dto.setCommSttsDesc(CodeManager.STTS_UNKNOWN);
             dto.setCboxTmpr(255);
             dto.setBrghVal(255);
         }