Direct DA의 경우에는 정보를 제공하지 않는다고 해서 그냥 Direct DA인 경우는 "Direct DA"라고 DB에 저장해놨는데 진행하다보니 direct DA도 상세유형을 분류해서 넣어주어야 다른 기능에 지장이 없다는 것을 알았다...
(애초에 내가 멘토님의 요구사항을 잘못 이해한듯...)
정규 회의 이틀 전 밤에 멘토님께 전화로 확인해서 다음날 아침에 바로 수정해보았다!
Direct DA로 분류된 경우에는 아래의 알고리즘을 거쳐 다시 상세유형을 분류하는 작업이 필요하다.
1. controller에서 상세유형을 분류하는 조건식
/*direct da 상세유형 분류*/
@ResponseBody
@RequestMapping(value = "/sortOut")
public String sortOut(@RequestParam("daid") String daid) {
daid = daid.toString();
DAVO da = service5.get(daid);
log.info(da.getDaSystemSW().toString());
log.info(da.getDaReportIF().toString());
log.info(da.getDaHMIType().toString());
log.info(da.getDaModifiableOperationData().toString());
log.info(da.getDaModifyOPAvailability().toString());
if (!da.getDaSystemSW().equals("Firmware")) {
return "PC/Server";
} else { // 시스템sw유형 == firmware
if (!da.getDaReportIF().equals("Hard Wiring")) {
if (da.getDaReportIF().equals("Ethernet")) {
return "Control Facilities HF"; // == Telecomm Facilities HF
} else if (da.getDaReportIF().equals("Serial")) {
if (da.getDaHMIType().equals("External")) {
if (da.getDaModifiableOperationData().equals("Control Logic")) {
return "Control Facilities MF"; // == Telecomm Facilities MF
} else if (da.getDaModifiableOperationData().equals("Firmware Setting")) {
return "Control Facilities LF"; // == Telecomm Facilities LF
}
} else if (da.getDaHMIType().equals("Integral")) {
if (da.getDaModifiableOperationData().equals("Operaing parameter")) {
return "Field Facilities MF";
} else if (da.getDaModifiableOperationData().equals("Firmware Setting")) {
return "Field Facilities HF";
}
}
}
} else { // 통신IF == Hard Wiring
if (da.getDaModifyOPAvailability().equals("N")) {
return "Field Facilities LF";
} else {
if (da.getDaModifiableOperationData().equals("Operaing parameter")) {
return "Field Facilities MF";
} else if (da.getDaModifiableOperationData().equals("Firmware Setting")) {
return "Field Facilities HF";
}
}
}
}
return "err";
}
무수한 if와 else문의 반복........
2. ajax를 사용하여 sortOut()에서 반환한 상세유형 값을 html에 적용하기
function sort_out(id) {
//alert(id);
$.ajax({
contentType : "application/json; charset=utf-8;",
type : "GET",
url : "/SecurityAssessment/sortOut", ///user/valid?userid=id
data : {
"daid" : id
},
success : function(response) {
setTimeout(function(){
$(".text-danger").hide();
$("#directda_img").show();
$("#indirect_msg3").text("해당 자산의 상세 유형은 "+response+"입니다.");
},2200);
},
error : function(request, status, error) {
alert("code:" + request.status + "\n" + "message:"
+ request.responseText + "\n" + "error:" + error);
}
})
}
해당 부분을 실행해보면 아래처럼 작동한다.
평가 종료 누르면 저장되는 부분은 어차피 기존 코드와 유사하니(type 파라미터를 추가하면 됨) 따로 기록하지는 않음!
'Spring > ICS단계적보안성평가 프로젝트(한이음)' 카테고리의 다른 글
[Spring] ICS단계적보안성평가WEB - DA 단계적 보안성 평가 코드 (0) | 2021.08.05 |
---|---|
[Spring] ICS단계적보안성평가WEB - 사번 유효성 검사 및 승인 코드 (0) | 2021.07.27 |
댓글