diff --git a/WebContent/jsp/common/scheduler/schedulerMan.jsp b/WebContent/jsp/common/scheduler/schedulerMan.jsp index 92d45c3..dced78b 100644 --- a/WebContent/jsp/common/scheduler/schedulerMan.jsp +++ b/WebContent/jsp/common/scheduler/schedulerMan.jsp @@ -31,7 +31,7 @@ function init(){ new makeOptions("CODE","NAME").setObj($("select[name=searchJobInst]")).setNoValueInclude(true).setNoValue("", "<%= localeMessage.getString("combo.all")%>").setData(json.instanceList).rendering(); - $("select[name=searchJobUseYn]").val("Y"); + //$("select[name=searchJobUseYn]").val("Y"); putSelectFromParam(); diff --git a/WebContent/jsp/onl/apim/apistatus/hist/apiStatusHistMan.jsp b/WebContent/jsp/onl/apim/apistatus/hist/apiStatusHistMan.jsp new file mode 100644 index 0000000..d00b5ba --- /dev/null +++ b/WebContent/jsp/onl/apim/apistatus/hist/apiStatusHistMan.jsp @@ -0,0 +1,194 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" %> +<%@ page import="java.io.*" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> +<%@ include file="/jsp/common/include/localemessage.jsp" %> +<% + response.setHeader("Pragma", "No-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setHeader("Expires", "0"); +%> + +
+{@code ApiStatusService.updateApiStatus()}에서 상태 전이 CAS 선점에 성공한 건에 대해 + * {@code ApiStatusRepository.insertHistory()}(native INSERT)로 1건씩 적재된다. 이 엔티티는 + * 그 적재 결과를 조회하는 용도로만 쓴다.
+ */ +@Entity +@Table(name = "API_STATUS_HIST") +@Getter +@Setter +@NoArgsConstructor +public class ApiStatusHist { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "api_status_hist_seq") + @SequenceGenerator( + name = "api_status_hist_seq", + sequenceName = "API_STATUS_HIST_SEQ", + allocationSize = 1 + ) + @Column(name = "HIST_SEQ") + private Long histSeq; + + @Column(name = "EAISVCNAME", length = 30) + private String eaisvcname; + + @Column(name = "STATUS_CODE", length = 1) + private String statusCode; + + @Column(name = "PREV_STATUS_CODE", length = 1) + private String prevStatusCode; + + @Column(name = "JOBNAME", length = 40) + private String jobname; + + @Column(name = "INSTANCENAME", length = 20) + private String instancename; + + @Column(name = "CREATED_BY", length = 20) + private String createdBy; + + @Column(name = "CREATED_DATE") + private LocalDateTime createdDate; +} diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/hist/ApiStatusHistManController.java b/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/hist/ApiStatusHistManController.java new file mode 100644 index 0000000..8ec5e50 --- /dev/null +++ b/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/hist/ApiStatusHistManController.java @@ -0,0 +1,41 @@ +package com.eactive.eai.rms.ext.djb.apistatus.hist; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.web.SortDefault; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import com.eactive.eai.rms.common.base.BaseAnnotationController; +import com.eactive.eai.rms.common.vo.GridResponse; + +import lombok.RequiredArgsConstructor; + +/** + * API 상태 변경 히스토리(API_STATUS_HIST) 조회 화면 컨트롤러. + * + *조회 전용 (등록/수정/삭제 없음) - 데이터는 {@code ApiStatusService.updateApiStatus()}에서 + * 상태 전이가 감지될 때마다 자동 적재된다.
+ */ +@Controller +@RequiredArgsConstructor +public class ApiStatusHistManController extends BaseAnnotationController { + + private final ApiStatusHistManService apiStatusHistManService; + + @GetMapping(value = "/onl/apim/apistatus/hist/apiStatusHistMan.view") + public void view() { + // 목록 view + } + + @PostMapping(value = "/onl/apim/apistatus/hist/apiStatusHistMan.json", params = "cmd=LIST") + public ResponseEntity상태코드(N/C/D/E)의 한글 라벨은 화면(JS)에서 매핑한다. 등록일시는 yyyy-MM-dd HH:mm:ss + * 형식 문자열로 제공한다.
+ */ +@Data +public class ApiStatusHistUI { + + private Long histSeq; + private String eaisvcname; + private String statusCode; + private String prevStatusCode; + private String jobname; + private String instancename; + private String createdBy; + private String createdDate; +} diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/hist/ApiStatusHistUISearch.java b/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/hist/ApiStatusHistUISearch.java new file mode 100644 index 0000000..0376dbc --- /dev/null +++ b/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/hist/ApiStatusHistUISearch.java @@ -0,0 +1,23 @@ +package com.eactive.eai.rms.ext.djb.apistatus.hist; + +import lombok.Data; + +@Data +public class ApiStatusHistUISearch { + + /* API ID(EAISVCNAME), LIKE 검색 */ + private String searchEaisvcname; + + /* 변경후 상태코드 (N/C/D/E, 공백=전체) */ + private String searchStatusCode; + + /* Job명(스케줄러 등록명), LIKE 검색 */ + private String searchJobname; + + /* 실행 인스턴스명 */ + private String searchInstancename; + + /* 등록일시 기간 검색 (yyyyMMdd, 8자리) */ + private String searchStartDate; + private String searchEndDate; +}