diff --git a/.gitignore b/.gitignore index 546de91..023ebdc 100644 --- a/.gitignore +++ b/.gitignore @@ -239,4 +239,8 @@ gradle-app.setting Doc/ docs build-gf63.sh -gradle-gf63.sh \ No newline at end of file +gradle-gf63.sh + + +eapim-admin-kjb/ +.claude \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 49ecb7c..1d04763 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,224 +1,280 @@ # CLAUDE.md -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +이 파일은 Claude Code (claude.ai/code)가 이 저장소의 코드를 작업할 때 참고할 가이드를 제공합니다. -## Project Overview +## 프로젝트 개요 -eLink EMS (eLink Management System) is an enterprise API management platform consisting of three main applications: -- **eapim-admin**: Management console for configuration, monitoring, and statistics -- **eapim-online**: API gateway for real-time transaction processing -- **eapim-portal**: Developer portal for API consumers (Spring Boot-based) +eLink EMS (eLink Management System)는 세 가지 주요 애플리케이션으로 구성된 엔터프라이즈 API 관리 플랫폼입니다: +- **eapim-admin**: 구성, 모니터링, 통계를 위한 관리 콘솔 +- **eapim-online**: 실시간 트랜잭션 처리를 위한 API 게이트웨이 +- **eapim-portal**: API 소비자를 위한 개발자 포털 (Spring Boot 기반) -This directory (`eapim-admin`) contains the management console, built with Spring 5.3 and a hybrid ORM approach (JPA + iBATIS). +이 디렉토리(`eapim-admin`)는 Spring 5.3과 하이브리드 ORM 방식(JPA + iBATIS)으로 구축된 관리 콘솔을 포함합니다. -## Build & Development Commands +## 빌드 및 개발 명령어 -### Building the Application +### 애플리케이션 빌드 +eLink EMS (eLink Management System)는 eLink의 웹 기반 관리 서비스로, 구성, 모니터링 및 통계 기능을 제공합니다. Tomcat 또는 WebLogic에 배포되는 Spring 기반 Java 웹 애플리케이션입니다. + +### 주요 기능 +- 사용자 및 권한 관리 +- 트랜잭션 로그 조회 (온라인/배치/대량) +- 통계 및 대시보드 모니터링 +- 인터페이스, 레이아웃, 어댑터, 라우팅 관리 +- 외부 시스템 연동 (UMS, EAI 배치) + +## 빌드 및 개발 명령어 + +### 빌드 명령어 ```bash -# Standard WAR build for Tomcat -gradle war +# 표준 빌드 +gradle build -# Build without tests -gradle build -x test - -# WebLogic deployment (uses weblogic-web.xml) +# Weblogic 배포용 빌드 (테스트 제외) gradle build -x test -Pprofile=weblogic -# Clean and rebuild +# WAR 파일 빌드 +gradle war + +# 클린 빌드 gradle clean build ``` -### Running Tests - +### 테스트 실행 ```bash -# Run all tests +# 모든 테스트 실행 gradle test -# Run specific test class +# 특정 테스트 클래스 실행 gradle test --tests "com.example.ClassName" + +# 특정 테스트 패키지 실행 (JUnit 플랫폼 사용) +gradle test --tests "com.eactive.eai.rms.*" ``` -### Development Tasks +### 개발 태스크 ```bash -# Assemble classes without packaging +# 패키징 없이 클래스만 컴파일 gradle classes -# Generate QueryDSL Q-classes and other annotations +# QueryDSL Q-classes 및 기타 애노테이션 생성 gradle compileJava -# View dependency tree +# 의존성 트리 보기 gradle dependencies -# List all available tasks +# 사용 가능한 모든 태스크 목록 gradle tasks --all ``` -## Architecture & Module Dependencies +## 아키텍처 및 모듈 의존성 -### Multi-Module Structure +### 멀티 모듈 구조 -eapim-admin references modules from the sibling `eapim-online` directory via settings.gradle: +eapim-admin은 settings.gradle을 통해 형제 디렉토리 `eapim-online`의 모듈들을 참조합니다: ``` eapim-admin (root project) -├── elink-online-core # Core interfaces and domain models -├── elink-online-core-jpa # JPA entities and repositories -├── elink-online-transformer # Message transformation logic -├── elink-online-common # Shared utilities -├── elink-online-emsclient # EMS client communication -├── elink-portal-common # Portal shared components (JPA entities) -└── kjb-safedb # Custom encryption library +├── elink-online-core # 핵심 인터페이스 및 도메인 모델 +├── elink-online-core-jpa # JPA 엔티티 및 리포지토리 +├── elink-online-transformer # 메시지 변환 로직 +├── elink-online-common # 공통 유틸리티 +├── elink-online-emsclient # EMS 클라이언트 통신 +├── elink-online-adapter # 통신 어댑터 +├── elink-portal-common # 포털 공통 컴포넌트 (JPA 엔티티) +├── kjb-safedb # 커스텀 암호화 라이브러리 +└── eapim-admin-kjb # KJB 은행 특화 커스터마이제이션 ``` -All module projects are located in `../eapim-online/` and `../` relative to this directory. +모든 모듈 프로젝트는 이 디렉토리 기준으로 `../eapim-online/`, `../elink-portal-common/` 등에 위치합니다. -### Hybrid ORM Approach +### 하이브리드 ORM 방식 -This application uses **both JPA and iBATIS**: -- **JPA/Hibernate**: Modern data access via `elink-portal-common` (Spring Data repositories) -- **iBATIS**: Legacy SQL mapping for existing code (will be migrated over time) +이 애플리케이션은 **JPA와 iBATIS 모두를 사용**합니다: +- **JPA/Hibernate**: `elink-portal-common`을 통한 현대적인 데이터 액세스 (Spring Data repositories) +- **iBATIS**: 기존 코드를 위한 레거시 SQL 매핑 (점진적으로 마이그레이션 예정) -When working with data access: -- New features should use JPA with Spring Data repositories -- Legacy iBATIS mappers are in `src/main/resources/sql/` and configured via Spring XML +데이터 액세스 작업 시: +- 새로운 기능은 JPA와 Spring Data repositories를 사용해야 합니다 +- 레거시 iBATIS 매퍼는 `src/main/resources/com/eactive/eai/**/*.xml`에 있으며 Spring XML을 통해 설정됩니다 -### Code Generation +### 코드 생성 -The build process generates: -- **QueryDSL Q-classes**: Type-safe query classes -- **Lombok**: Getters/setters/builders via annotation processing -- **MapStruct**: Object mappers between DTOs and entities +빌드 프로세스에서 생성되는 것들: +- **QueryDSL Q-classes**: 타입 안전 쿼리 클래스 +- **Lombok**: 애노테이션 프로세싱을 통한 Getters/setters/builders +- **MapStruct**: DTO와 엔티티 간의 객체 매퍼 -#### Dual Q-Class Generation (Gradle + Eclipse) +#### 이중 Q-Class 생성 (Gradle + Eclipse) -This project uses **both Gradle and Eclipse annotation processors**, which means Q-classes are generated in **two locations**: +이 프로젝트는 **Gradle과 Eclipse 애노테이션 프로세서 모두를 사용**하므로, Q-classes가 **두 위치에 생성**됩니다: -1. **`build/generated/java/`** - Generated by Gradle when running `gradle compileJava` or `gradle build` -2. **`WebContent/generated/`** - Generated by Eclipse APT when building in Eclipse IDE +1. **`build/generated/java/`** - `gradle compileJava` 또는 `gradle build` 실행 시 Gradle이 생성 +2. **`WebContent/generated/`** - Eclipse IDE에서 빌드 시 Eclipse APT가 생성 -**This is expected behavior and intentional.** Both directories are in `.gitignore` and should NOT be committed. +**이는 예상된 동작이며 의도적입니다.** 두 디렉토리 모두 `.gitignore`에 포함되어 있으며 커밋해서는 안 됩니다. -#### Working with Generated Code +#### 생성된 코드 작업하기 -- **Gradle builds**: Q-classes in `build/generated/java/` are automatically on the classpath -- **Eclipse IDE**: Q-classes in `WebContent/generated/` are automatically on the classpath -- **After pulling updates**: Run `gradle compileJava` or refresh Eclipse project to regenerate Q-classes -- **IDE errors on Q-classes**: Regenerate by running `gradle clean compileJava` or Eclipse → Project → Clean +- **Gradle 빌드**: `build/generated/java/`의 Q-classes가 자동으로 classpath에 포함됩니다 +- **Eclipse IDE**: `WebContent/generated/`의 Q-classes가 자동으로 classpath에 포함됩니다 +- **업데이트 pull 후**: `gradle compileJava`를 실행하거나 Eclipse 프로젝트를 새로고침하여 Q-classes를 재생성합니다 +- **Q-classes IDE 오류 시**: `gradle clean compileJava` 또는 Eclipse → Project → Clean으로 재생성합니다 -The duplication causes no issues since: -- Both tools generate identical Q-classes from the same JPA entities -- Both output directories are gitignored -- Each tool uses its own generated classes (no classpath conflicts) +중복이 문제를 일으키지 않는 이유: +- 두 도구 모두 동일한 JPA 엔티티에서 동일한 Q-classes를 생성합니다 +- 두 출력 디렉토리 모두 gitignore됩니다 +- 각 도구는 자체 생성 클래스를 사용합니다 (classpath 충돌 없음) -## Local Development Setup +## 로컬 개발 환경 설정 -### Required Environment Variables (Tomcat) +### 필수 환경 변수 (Tomcat) ``` -Deai.datasource.type=DEV --Dinst.Name=apimsSvr11 --Deai.tableowner=ems +-Dinst.Name=emsSvr99 +-Deai.tableowner=EMSADM -Deai.systemmode=D -Dfile.encoding=utf-8 --DLOGBACK_LOG_LEVEL=info +-Dlogin.mode=db +-DLOGBACK_LOG_LEVEL=DEBUG +-Dlogback.configurationFile=classpath:logback-dev.xml +-Dhibernate.dialect=org.hibernate.dialect.Oracle12cDialect +-Dkjb_safedb.mode=fake ``` -### Database Configuration +### 개발 환경 설정 +애플리케이션은 `WebContent/WEB-INF/properties/`의 환경별 프로퍼티 파일을 통해 설정됩니다: +- `env.D.properties` - 개발 환경 +- `env.T.properties` - 테스트/스테이징 환경 +- `env.P.properties` - 운영 환경 -The application supports: -- **Oracle**: Production database -- **PostgreSQL**: Alternative production DB -- **H2**: In-memory database for tests +**프로필 설정** +- `-Pprofile=weblogic`: `web.xml` 대신 `weblogic-web.xml`을 사용 (DefaultServlet 문제 해결) -Database connection is configured via `eai.datasource.type` system property (DEV/STG/PROD). +### 데이터베이스 설정 -### SafeDB Encryption Library +애플리케이션은 다음을 지원합니다: +- **Oracle**: 운영 데이터베이스 (주) +- **PostgreSQL/MariaDB**: 대체 운영 DB +- **H2**: 테스트용 인메모리 데이터베이스 -The `kjb-safedb` module provides three operational modes: -- **REAL**: Uses actual SafeDB native library -- **FAKE**: Development mode using SHA-256/AES-256 (no SafeDB installation required) -- **NONE**: Bypass encryption (for testing only) +데이터베이스 연결은 `eai.datasource.type` 시스템 프로퍼티(DEV/STG/PROD)를 통해 설정됩니다. -In development, use FAKE mode if SafeDB is not installed locally. +### SafeDB 암호화 라이브러리 -## Key Features & Functionality +`kjb-safedb` 모듈은 세 가지 동작 모드를 제공합니다: +- **REAL**: 실제 SafeDB 네이티브 라이브러리 사용 +- **FAKE**: SHA-256/AES-256을 사용하는 개발 모드 (SafeDB 설치 불필요) +- **NONE**: 암호화 우회 (테스트 전용) -The admin console manages all aspects of the eLink platform: +개발 시 SafeDB가 로컬에 설치되지 않은 경우 FAKE 모드를 사용합니다. -| Feature | Description | -|---------|-------------| -| User Management | User accounts and authorization | -| Transaction Logs | View online/batch/bulk transaction history | -| Statistics & Dashboard | Real-time monitoring and metrics | -| Interface Management | API interface configuration | -| Layout Management | Message layout definitions | -| Transformation Rules | Message transformation logic | -| Adapter Configuration | Protocol adapters (HTTP, TCP, etc.) | -| Routing Rules | Request routing and load balancing | -| Batch Processing | Batch interface and adapter management | -| Scheduler | Quartz-based job scheduling | +## 주요 기능 -## Deployment Targets +관리 콘솔은 eLink 플랫폼의 모든 측면을 관리합니다: -The application can be deployed to: -- **Tomcat** (default, development) -- **WebLogic 14.1.2** (production, requires `-Pprofile=weblogic`) -- **JEUS** (supported) -- **JBoss/WildFly** (supported with descriptors) +| 기능 | 설명 | +|------|------| +| 사용자 관리 | 사용자 계정 및 권한 | +| 트랜잭션 로그 | 온라인/배치/대량 트랜잭션 이력 조회 | +| 통계 및 대시보드 | 실시간 모니터링 및 메트릭 | +| 인터페이스 관리 | API 인터페이스 구성 | +| 레이아웃 관리 | 메시지 레이아웃 정의 | +| 변환 규칙 | 메시지 변환 로직 | +| 어댑터 설정 | 프로토콜 어댑터 (HTTP, TCP 등) | +| 라우팅 규칙 | 요청 라우팅 및 로드 밸런싱 | +| 배치 처리 | 배치 인터페이스 및 어댑터 관리 | +| 스케줄러 | Quartz 기반 작업 스케줄링 | -### WebLogic-Specific Build +## 배포 대상 -When building for WebLogic, use the `weblogic` profile which replaces `web.xml` with `weblogic-web.xml` to address DefaultServlet issues: +애플리케이션은 다음 환경에 배포할 수 있습니다: +- **Tomcat** (기본, 개발) +- **WebLogic 14.1.2** (운영, `-Pprofile=weblogic` 필요) +- **JEUS** (지원) +- **JBoss/WildFly** (descriptors와 함께 지원) + +### WebLogic 전용 빌드 + +WebLogic용 빌드 시, DefaultServlet 문제를 해결하기 위해 `web.xml`을 `weblogic-web.xml`로 교체하는 `weblogic` 프로필을 사용합니다: ```bash gradle build -x test -Pprofile=weblogic ``` -## Technology Stack +## 기술 스택 -- **Java 8**: Enforced via Gradle toolchain -- **Spring Framework 5.3.27**: Core framework -- **Spring Data JPA 2.5.2**: Repository abstraction -- **Hibernate 5.4.33**: ORM implementation -- **QueryDSL 5.0.0**: Type-safe queries -- **iBATIS 2.3.4**: Legacy SQL mapping -- **Quartz 2.2.1**: Job scheduling -- **Apache POI 3.17**: Excel export functionality -- **Jackson 2.13.1**: JSON processing -- **Logback 1.2.10**: Logging framework/ㅊ -- **AWS SDK 2.20.142**: S3 integration -- **Kubernetes Client 18.0.1**: K8s management +- **Java 8**: Gradle toolchain을 통해 강제 +- **Spring Framework 5.3.27**: 코어 프레임워크 (MVC, Data JPA) +- **Spring Data JPA 2.5.2**: 리포지토리 추상화 +- **Hibernate 5.4.33/5.6.15**: ORM 구현 (JPA/ORM) +- **QueryDSL 5.0.0**: 타입 안전 쿼리 +- **iBATIS 2.3.4**: 레거시 SQL 매핑 +- **Quartz 2.2.1**: 작업 스케줄링 +- **Apache POI 3.17**: Excel 내보내기 기능 +- **Jackson 2.13.1**: JSON 처리 +- **Logback 1.2.10**: 로깅 프레임워크 (SLF4J와 함께) +- **AWS SDK 2.20.142**: S3 연동 +- **Kubernetes Client 18.0.1**: K8s 관리 +- **EhCache**: 캐싱, **Lombok**: 코드 생성, **MapStruct**: 객체 매핑 -## Project Conventions +## 프로젝트 규칙 -### Package Structure +### 패키지 구조 ``` -com.eactive.ems/ -├── controller/ # Spring MVC controllers -├── service/ # Business logic -├── dao/ # iBATIS DAOs (legacy) -├── repository/ # JPA repositories (via elink-portal-common) -├── model/ # DTOs and view models -└── config/ # Spring configuration classes +com.eactive.eai +├── agent/command - 커맨드 패턴 구현 +├── common - 공통 유틸리티, iBatis, JSON 직렬화 +├── custom - 고객사별 커스터마이제이션 +├── rms - 메인 애플리케이션 코드 +│ ├── bap - 배치 처리 (BAP) +│ │ ├── adaptor - 배치 어댑터 +│ │ ├── manage - 배치 관리 (메시지, 서버, 프로퍼티) +│ │ └── tansaction - 배치 트랜잭션 추적 +│ ├── bat - 추가 배치 기능 +│ ├── common - RMS 공통 (필터, 시작, 서비스) +│ ├── data - 데이터 엔티티, 리포지토리 +│ ├── env - 환경 설정 +│ ├── kakao - 카카오 연동 +│ ├── onl - 온라인 트랜잭션 관리 +│ │ ├── apim - API 관리 (포털 조직, 사용자, 승인) +│ │ ├── manage - 리소스 관리 +│ │ └── transaction - 트랜잭션 처리 +│ └── service - 비즈니스 서비스 +└── ext.kjb - 광주은행(KJB) 확장 ``` -### Spring Configuration +### Spring 설정 -The application uses: -- **XML-based configuration**: Legacy Spring XML in `WebContent/WEB-INF/` -- **Java-based configuration**: Modern `@Configuration` classes -- **Component scanning**: Enabled for annotated components +애플리케이션은 다음을 사용합니다: +- **Root context**: `WebContent/WEB-INF/applicationContext.xml` +- **Servlet context**: `WebContent/WEB-INF/springapp-servlet.xml` +- **환경별 설정**: `${eai.systemmode}` 시스템 프로퍼티 기반 로드 +- **컴포넌트 스캔**: 애노테이션 기반 설정 활성화 -### Logging +### 데이터 액세스 패턴 +애플리케이션은 **이중 퍼시스턴스**를 사용합니다: +1. **JPA/Hibernate** - `com.eactive.eai.rms.data.entity`의 최신 엔티티 기반 코드용 +2. **iBatis** - `src/main/resources/com/eactive/eai/**/*.xml`의 레거시 SQL 매핑용 -- Uses **SLF4J** with **Logback** implementation -- Log level controlled via `LOGBACK_LOG_LEVEL` system property -- All `log4j` dependencies are excluded (configurations in build.gradle) +리포지토리는 Spring Data JPA 규칙을 사용하며, 서비스는 `@Service`, 컨트롤러는 `@RestController`/`@Controller`를 사용합니다. -## IDE Setup +### 주요 초기화 +- `AppInitializer` - 시스템 프로퍼티를 설정하는 메인 애플리케이션 시작 빈 +- `CustomizingAppInitializer` - 고객사별 초기화 +- 시스템 프로퍼티: `inst.Name`, `eai.tableowner`, `eai.systemmode`, `theme.color` + +### 로깅 + +- **SLF4J**와 **Logback** 구현 사용 +- `LOGBACK_LOG_LEVEL` 시스템 프로퍼티를 통한 로그 레벨 제어 +- 모든 `log4j` 의존성 제외 (build.gradle에 설정) + +## IDE 설정 ### Eclipse @@ -226,11 +282,11 @@ The application uses: gradle eclipse ``` -This generates: -- `.project` and `.classpath` files -- Eclipse WTP configuration (context path: `/monitoring`) -- UTF-8 encoding settings -- Annotation processor configuration for QueryDSL/Lombok +다음을 생성합니다: +- `.project` 및 `.classpath` 파일 +- Eclipse WTP 설정 (context path: `/monitoring`) +- UTF-8 인코딩 설정 +- QueryDSL/Lombok을 위한 애노테이션 프로세서 설정 ### IntelliJ IDEA @@ -238,14 +294,61 @@ This generates: gradle idea ``` -Alternatively, use "Import Gradle Project" directly in IntelliJ. +또는 IntelliJ에서 직접 "Import Gradle Project"를 사용합니다. -## Testing +## 테스트 -Tests use: -- **JUnit 5 (Jupiter)**: Test framework -- **Spring Boot Test 2.6.15**: Integration testing utilities -- **H2 Database**: In-memory database for tests -- **Mockito**: Mocking framework (via Spring Boot Test) +테스트에 사용되는 것들: +- **JUnit 5 (Jupiter)**: 테스트 프레임워크 +- **Spring Boot Test 2.6.15**: 통합 테스트 유틸리티 +- **H2 Database**: 테스트용 인메모리 데이터베이스 +- **Mockito**: 모킹 프레임워크 (Spring Boot Test를 통해) -Test resources are in `src/test/resources` with H2-compatible configurations. +테스트 리소스는 H2 호환 설정과 함께 `src/test/resources`에 있습니다. + +## KJB (광주은행) 전용 설정 + +### 프로퍼티 관리 +KJB 전용 프로퍼티는 데이터베이스 테이블 `TSEAIRM24`에 그룹명 `'Monitoring'`으로 저장됩니다. `com.eactive.ext.kjb.common.KjbProperty`에서 관리하는 주요 프로퍼티: + +**이메일 알림 (EAI Batch를 통해)** +- `kjb.eai_batch.url` - 이메일 발송을 위한 EAI 배치 서버 URL + - Dev: http://172.31.32.111:10230/BATAppWeb/EaiBatCall + - QA: http://172.31.33.111:10430/BATAppWeb/EaiBatCall + - Prod: http://172.21.1.40:10860/BATAppWeb/EaiBatCall +- `kjb.ums.eai_batch.send_dir` - 이메일 파일 발송 디렉토리 (기본값: `/Data/eapim/portal/sendmail/snd`) +- `kjb.ums.eai_batch.backup_dir` - 이메일 백업 디렉토리 (기본값: `/Data/eapim/portal/sendmail/bak`) +- `kjb.ums.eai_batch.interface_id` - 고객 이메일용 인터페이스 ID (예: `UAGFF00001UIE`) + +**UMS (SMS/LMS/카카오톡) 연동** +- `kjb.ums.host_url` - UMS API 엔드포인트 +- `kjb.ums.api_key` - UMS API 인증 키 +- `kjb.ums.connection_timeout` - 연결 타임아웃 (초 단위) +- `kjb.ums.response_timeout` - 응답 타임아웃 (초 단위) + +### 보안 +- 커스텀 패스워드 인코더: SafeDB 연동을 위한 `KjbSafedbPasswordEncoder` +- SafeDB 없이 로컬 개발 시 `-Dkjb_safedb.mode=fake` 설정 + +## 데이터베이스 벤더 지원 + +애플리케이션은 벤더별 SQL 매핑 파일을 통해 여러 데이터베이스를 지원합니다: +- Oracle: `*-oracle.xml` +- MariaDB: `*-mariadb.xml` +- PostgreSQL: `*-postgresql.xml` + +데이터베이스 벤더는 프로퍼티 파일의 `db.vendor`와 `hibernate.dialect`를 통해 설정됩니다. + +## WAR 배포 + +WAR 파일은 context path `/monitoring`으로 `eapim-admin.war`로 빌드됩니다. + +**Weblogic 배포**: `weblogic-web.xml` 설정을 포함하려면 `-Pprofile=weblogic`를 사용합니다. + +## 중요 사항 + +- **인코딩**: 시스템은 UTF-8을 사용합니다. CharacterEncodingFilter는 `*.excel` 패턴을 제외한 모든 요청에 UTF-8을 적용합니다. +- **XSS 보호**: CrossScriptingFilter가 `com.eactive.eai.rms.common.filter.CrossScriptingFilter`를 통해 모든 요청에 적용됩니다. +- **실시간 업데이트**: 모든 관리 변경사항은 DB와 메모리 모두에 즉시 반영됩니다. +- **인스턴스 이름**: 클러스터링을 위해 각 배포는 고유한 `inst.Name`을 가져야 합니다. +- **테이블 소유자**: Oracle 스키마 소유자는 `eai.tableowner` 프로퍼티를 통해 지정됩니다. diff --git a/WebContent/META-INF/context.xml b/WebContent/META-INF/context.xml deleted file mode 100644 index abcab3e..0000000 --- a/WebContent/META-INF/context.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/WebContent/META-INF/persistence.xml b/WebContent/META-INF/persistence.xml index 2668051..a013e0b 100644 --- a/WebContent/META-INF/persistence.xml +++ b/WebContent/META-INF/persistence.xml @@ -2,14 +2,11 @@ org.hibernate.jpa.HibernatePersistenceProvider jdbc/dsOBP_EMS - - - + + + - com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusiness - + com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusiness com.eactive.eai.data.entity.onl.unifbwk.UnifBwkTp false @@ -17,14 +14,11 @@ org.hibernate.jpa.HibernatePersistenceProvider jdbc/dsOBP_EMS - - - + + + - com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusiness - + com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusiness com.eactive.eai.data.entity.onl.unifbwk.UnifBwkTp false \ No newline at end of file diff --git a/WebContent/WEB-INF/applicationContext-jpa.xml b/WebContent/WEB-INF/applicationContext-jpa.xml index 74bc75b..53b9b53 100644 --- a/WebContent/WEB-INF/applicationContext-jpa.xml +++ b/WebContent/WEB-INF/applicationContext-jpa.xml @@ -41,9 +41,7 @@ - - + @@ -66,15 +64,10 @@ - - - - - - + + + + @@ -92,10 +85,9 @@ none true - true + false trace - ${hibernate.dialect:org.hibernate.dialect.Oracle12cDialect} - + ${hibernate.dialect:org.hibernate.dialect.Oracle12cDialect} 100 100 diff --git a/WebContent/WEB-INF/applicationContext.xml b/WebContent/WEB-INF/applicationContext.xml index 2c394c4..99fd189 100644 --- a/WebContent/WEB-INF/applicationContext.xml +++ b/WebContent/WEB-INF/applicationContext.xml @@ -52,8 +52,10 @@ - + + + + diff --git a/WebContent/WEB-INF/auditpoints.dat b/WebContent/WEB-INF/auditpoints.dat index a1d4d5f..1c2969a 100644 --- a/WebContent/WEB-INF/auditpoints.dat +++ b/WebContent/WEB-INF/auditpoints.dat @@ -1,6 +1,6 @@ UserManController_사용자관리_APIGW_INSERT,UPDATE,DELETE AdapterController_어댑터관리_APIGW_INSERT,UPDATE,DELETE -ApiInterfaceController_API관리_APIGW_INSERT,UPDATE,DELETE +ApiInterfaceController_API관리_APIGW_INSERT,UPDATE,DELETE,CLONE ClientController_Client (키정보)관리_APIGW_INSERT,UPDATE,DELETE RoleController_Role (역할)관리_APIGW_INSERT,UPDATE,DELETE MenuController_Menu관리_APIGW_INSERT,UPDATE,DELETE diff --git a/WebContent/WEB-INF/properties/env.P.properties b/WebContent/WEB-INF/properties/env.P.properties index 6ef25bb..2a732cc 100644 --- a/WebContent/WEB-INF/properties/env.P.properties +++ b/WebContent/WEB-INF/properties/env.P.properties @@ -14,5 +14,5 @@ eai.tableowner=EMSADM # P/T/D/S eai.systemmode=P eai.drmode=N -# black / blue / green / orange / yellow -theme.color=blue \ No newline at end of file +# black / blue / green / orange / yellow +theme.color=blue diff --git a/WebContent/WEB-INF/sqlmap-config/oracle/sqlMapConfigOfBap.xml b/WebContent/WEB-INF/sqlmap-config/oracle/sqlMapConfigOfBap.xml index 4b55925..89b0448 100644 --- a/WebContent/WEB-INF/sqlmap-config/oracle/sqlMapConfigOfBap.xml +++ b/WebContent/WEB-INF/sqlmap-config/oracle/sqlMapConfigOfBap.xml @@ -115,7 +115,7 @@ resource="com/eactive/eai/rms/bap/manage/message/MessageMetaMan-oracle.xml" /> + resource="com/eactive/eai/rms/bap/manage/common/Combo-oracle.xml" /> encodingFilter *.file + + + encodingFilter + *.json + - - springapp diff --git a/WebContent/addon/request-header.jsp b/WebContent/addon/request-header.jsp new file mode 100644 index 0000000..7c0113e --- /dev/null +++ b/WebContent/addon/request-header.jsp @@ -0,0 +1,9 @@ +<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true" %> +<% +java.util.Enumeration names = request.getHeaderNames(); +while (names.hasMoreElements()) { + String name = names.nextElement(); + out.println(name + ": " + request.getHeader(name)); +} +%> +request.getScheme(): <%=request.getScheme()%> \ No newline at end of file diff --git a/WebContent/color.jsp b/WebContent/color.jsp new file mode 100644 index 0000000..4664d2e --- /dev/null +++ b/WebContent/color.jsp @@ -0,0 +1,71 @@ +<%@ page language="java" contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<% + String systemColor = System.getProperty("theme.color"); + String range = (String)request.getParameter("range"); + String color = (String)request.getParameter("color"); + String change = (String)request.getParameter("change"); + if(color == null || color.length() == 0) color= systemColor; + + if("all".equals(range)) { + System.setProperty("theme.color", color); + } +%> + + + + + + + Change Theme Color + "/> + " /> + + + + + + + +
+
" method="get"> + + + + + + + + + + + + + + +
Theme Color + +
Range + +

+ +
+
+
+ + + diff --git a/WebContent/common/errors/error.jsp b/WebContent/common/errors/error.jsp index 26a78a4..7b6e1bc 100644 --- a/WebContent/common/errors/error.jsp +++ b/WebContent/common/errors/error.jsp @@ -35,7 +35,7 @@
diff --git a/WebContent/img/ic_eai_favi_black.png b/WebContent/img/ic_eai_favi_black.png new file mode 100644 index 0000000..7b9e2d7 Binary files /dev/null and b/WebContent/img/ic_eai_favi_black.png differ diff --git a/WebContent/img/ic_eai_favi_pink.png b/WebContent/img/ic_eai_favi_pink.png new file mode 100644 index 0000000..e165d25 Binary files /dev/null and b/WebContent/img/ic_eai_favi_pink.png differ diff --git a/WebContent/img/ic_eai_favi_yellow.png b/WebContent/img/ic_eai_favi_yellow.png new file mode 100644 index 0000000..541a37a Binary files /dev/null and b/WebContent/img/ic_eai_favi_yellow.png differ diff --git a/WebContent/jsp/bap/adapter/socket/connStatus.jsp b/WebContent/jsp/bap/adapter/socket/connStatus.jsp index 805f62e..188c9c3 100644 --- a/WebContent/jsp/bap/adapter/socket/connStatus.jsp +++ b/WebContent/jsp/bap/adapter/socket/connStatus.jsp @@ -75,6 +75,7 @@ $(document).ready(function() { { name : 'status' , align:'center'}, { name : 'stop' , align:'center'} ], + autowidth: true, autoheight: true, height: $("#container").height(), //height: "500", @@ -133,7 +134,7 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
연결된 세션정보
diff --git a/WebContent/jsp/bap/adapter/socket/instStatus.jsp b/WebContent/jsp/bap/adapter/socket/instStatus.jsp index 2b246b9..63aee4f 100644 --- a/WebContent/jsp/bap/adapter/socket/instStatus.jsp +++ b/WebContent/jsp/bap/adapter/socket/instStatus.jsp @@ -21,7 +21,8 @@ $(document).ready(function() { mtype: 'POST', url: '', postData : { cmd : 'LIST' }, - colNames:['업무구분', + colNames:[ + '업무구분', '대외기관', 'IP', 'PORT', @@ -53,7 +54,7 @@ $(document).ready(function() { } } }, - { name : 'serverCheck' , align:'center' , + { name : 'serverCheck' , align:'center' , hidden: true, formatter: function (cellValue, options, rowObject) { var ip = rowObject.LNKGIPINFONAME; var port = rowObject.LNKGPORTINFONAME; @@ -67,8 +68,9 @@ $(document).ready(function() { return be; } }, - { name : 'serverConnected', align: 'center' } + { name : 'serverConnected', align: 'center', hidden: true } ], + autowidth: true, autoheight: true, height: $("#container").height(), //height: "500", @@ -151,8 +153,8 @@ function serverCheck(rowId) {
- " id="btn_operate" level="R"/> - " id="btn_excel" level="R"/> + <%-- " id="btn_operate" level="R"/> --%> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
비연결유지형 클라이언트 소켓 상태정보
diff --git a/WebContent/jsp/bap/adapter/socket/serverStatus.jsp b/WebContent/jsp/bap/adapter/socket/serverStatus.jsp index d4d5cb8..416c9fd 100644 --- a/WebContent/jsp/bap/adapter/socket/serverStatus.jsp +++ b/WebContent/jsp/bap/adapter/socket/serverStatus.jsp @@ -93,6 +93,7 @@ $(document).ready(function() { { name : 'status2' , align:'center', width:70}, { name : 'startStop' , align:'center'} ], + autowidth: true, autoheight: true, height: $("#container").height(), //height: "500", @@ -166,7 +167,7 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
연결유지형 소켓 상태정보
diff --git a/WebContent/jsp/bap/admin/adapter/adapterMan.jsp b/WebContent/jsp/bap/admin/adapter/adapterMan.jsp index 66e8da7..87c3915 100644 --- a/WebContent/jsp/bap/admin/adapter/adapterMan.jsp +++ b/WebContent/jsp/bap/admin/adapter/adapterMan.jsp @@ -25,17 +25,17 @@ var svrType = ''; $(document).ready(function() { - var url = ''; + var url = ''; var url_view = ''; var gridPostData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로 - - if(devSvr) { + + /* if(devSvr) { svrType = "stg"; } else if (stgSvr){ svrType = "prod"; } else if (!prdSvr){ svrType = "dev"; - } + }*/ $('#grid').jqGrid({ datatype:"json", @@ -68,8 +68,8 @@ $(document).ready(function() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -117,197 +117,8 @@ $(document).ready(function() { $("#btn_search").click(); } }); - $("#btn_delete").click(function() { - - var id = "grid"; - var data = new Array(); - var ids = $("#grid").jqGrid('getDataIDs'); - var chkcnt = 0; - - for(var i=0;i @@ -325,7 +136,7 @@ $(document).ready(function() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
어댑터 관리일괄전송에서 사용하는 어댑터 목록(Server/Non-permanent Client)
diff --git a/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp b/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp index 734ed08..41f8302 100644 --- a/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp +++ b/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp @@ -486,7 +486,7 @@ /* 231102 김기영 이전기능 관련 숨김 처리 */ setBtnHide(roleString, " ", "btn_clone_stg"); setBtnHide(roleString, " ", "btn_clone_prod"); - setBtnHide(roleString, " ", "btn_clone_dev"); + setBtnHide(roleString, " ", "btn_clone_dev"); }); @@ -500,9 +500,9 @@
- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> + <%-- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> " alt="" id="btn_clone_prod" level="W" status="DETAIL"/> - " alt="" id="btn_clone_dev" level="W" status="DETAIL"/> + " alt="" id="btn_clone_dev" level="W" status="DETAIL"/> --%> " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> " alt="" id="btn_delete" level="W" status="DETAIL"/> " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/> @@ -533,6 +533,15 @@ 어댑터 사용 구분 + +
+ +
+ + 복제 어댑터 그룹명 diff --git a/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp b/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp index 730ef4b..c2137a1 100644 --- a/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp +++ b/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp @@ -129,10 +129,10 @@ $(document).ready(function() {
오류메시지 관리표준화된 IF시스템 에러 응답코드를 조회합니다. 메시지 키 및 내용으로 그에 해당하는 오류메시지를 조회할 수 있습니다.
- + + -->
diff --git a/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp b/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp index b6e522f..702596d 100644 --- a/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp @@ -133,10 +133,10 @@ $(document).ready(function() {
- + diff --git a/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp b/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp index e44525c..7c9dfb8 100644 --- a/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp +++ b/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp @@ -127,10 +127,10 @@ $(document).ready(function() {
라이프사이클 관리시스템 기동 시 로딩 되는 라이프사이클 클래스를 조회합니다.
- + + -->
오류메시지 코드 *
diff --git a/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp b/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp index 9575281..b33a2e6 100644 --- a/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp @@ -135,10 +135,10 @@ $(document).ready(function() { - + diff --git a/WebContent/jsp/bap/admin/common/comPropertyMan.jsp b/WebContent/jsp/bap/admin/common/comPropertyMan.jsp index a92f85b..f3281bb 100644 --- a/WebContent/jsp/bap/admin/common/comPropertyMan.jsp +++ b/WebContent/jsp/bap/admin/common/comPropertyMan.jsp @@ -132,10 +132,10 @@ $(document).ready(function() {
프로퍼티 관리각 Layer에서 필요한 프라퍼티 Key, Value를 하나의 그룹으로 등록하기 위한 그룹명
- + + -->
라이프사이클 클래스명 *
diff --git a/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp b/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp index 290b136..b47c550 100644 --- a/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp @@ -435,14 +435,14 @@
- + diff --git a/WebContent/jsp/bap/admin/common/serverManDetail.jsp b/WebContent/jsp/bap/admin/common/serverManDetail.jsp index bb8eb42..7379911 100644 --- a/WebContent/jsp/bap/admin/common/serverManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/serverManDetail.jsp @@ -179,7 +179,7 @@ $(document).ready(function() { - + diff --git a/WebContent/jsp/bap/admin/message/classInfoMan.jsp b/WebContent/jsp/bap/admin/message/classInfoMan.jsp index 6d826fa..4c7598a 100644 --- a/WebContent/jsp/bap/admin/message/classInfoMan.jsp +++ b/WebContent/jsp/bap/admin/message/classInfoMan.jsp @@ -95,8 +95,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, +/* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -136,7 +136,7 @@ function getGridData() { var url = ''; url = url + '?cmd=DETAIL'; url = url + '&page='+$("#grid").getGridParam("page"); - url = url + '&returnUrl='+getSearchUrlForReturn(); + url = url + '&returnUrl='+getReturnUrl(); url = url + '&menuId='+'${param.menuId}'; //검색값 url = url + '&'+getSearchUrl(); @@ -385,7 +385,7 @@ function getGridData() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + " alt="" id="btn_search" level="R" />
클래스정보 관리클래스정보를 등록/관리합니다
@@ -395,16 +395,23 @@ function getGridData() {
- - - + <%-- + --%> + diff --git a/WebContent/jsp/bap/admin/message/classMapMan.jsp b/WebContent/jsp/bap/admin/message/classMapMan.jsp index 277d121..489a566 100644 --- a/WebContent/jsp/bap/admin/message/classMapMan.jsp +++ b/WebContent/jsp/bap/admin/message/classMapMan.jsp @@ -101,8 +101,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -406,7 +406,7 @@ function getGridData() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
클래스맵핑 관리클래스정보를 등록/관리합니다
@@ -418,7 +418,7 @@ function getGridData() { - + diff --git a/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp b/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp index e0aaa73..0b7df99 100644 --- a/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp +++ b/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp @@ -155,7 +155,7 @@ { name : 'MOVEUP' , align : 'center', sortable:false, width : '80', unformat : imgUpunformatter, formatter : imgUpformatter}, { name : 'MOVEDOWN' , align : 'center', sortable:false, width : '80', unformat : imgDownunformatter, formatter : imgDownformatter}, { name : 'DELETEYN' , align : 'center', sortable:false, width : '80', unformat : unformatterFunction, formatter : formatterFunction}, - { name : 'CLONE' , align : 'center', sortable:false, width : '80', unformat : cloneunformatter, formatter : cloneformatter} + { name : 'CLONE' , align : 'center', sortable:false, width : '80', unformat : cloneunformatter, formatter : cloneformatter, hidden: true} ], jsonReader : { repeatitems : false @@ -676,10 +676,10 @@
- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> + <%-- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> " alt="" id="btn_clone_prod" level="W" status="DETAIL"/> " alt="" id="btn_clone_dev" level="W" status="DETAIL"/> - " alt="" id="btn_excel" level="W" status="DETAIL"/> + " alt="" id="btn_excel" level="W" status="DETAIL"/> --%> " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> " alt="" id="btn_delete" level="W" status="DETAIL"/> " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/> diff --git a/WebContent/jsp/bap/admin/message/flowStepMan.jsp b/WebContent/jsp/bap/admin/message/flowStepMan.jsp index 73e96f3..bf9f6e2 100644 --- a/WebContent/jsp/bap/admin/message/flowStepMan.jsp +++ b/WebContent/jsp/bap/admin/message/flowStepMan.jsp @@ -116,8 +116,8 @@ function cloneformatter(cellvalue, options, rowObject) { { name : 'BJOBFLOWCMPONAME' , align:'left' ,width:40 }, { name : 'TELGMCLSID' , align:'left' ,width:40 }, { name : 'UNITTELGMLEN' , align:'left' ,width:40 }, - { name : 'BJOBNODEDESC' , align:'left' ,width:40, hidden : false }, - { name : 'CLONE' , align:'center',width:10, unformat:cloneunformatter, formatter:cloneformatter} + { name : 'BJOBNODEDESC' , align:'left' ,width:40, hidden : true }, + { name : 'CLONE' , align:'center',width:10, unformat:cloneunformatter, formatter:cloneformatter, hidden: true } ], jsonReader: { repeatitems:false @@ -129,8 +129,8 @@ function cloneformatter(cellvalue, options, rowObject) { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), loadComplete : function(rowId) { $("img[name^=img_clone]").click(function() { @@ -478,7 +478,7 @@ function cloneformatter(cellvalue, options, rowObject) { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
흐름단계 리스트흐름단계 리스트를 관리합니다
@@ -490,9 +490,9 @@ function cloneformatter(cellvalue, options, rowObject) {
-<%-- - --%> - + + + <%-- + --%> diff --git a/WebContent/jsp/bap/admin/message/messageItemMan.jsp b/WebContent/jsp/bap/admin/message/messageItemMan.jsp index 7898fb6..f80a743 100644 --- a/WebContent/jsp/bap/admin/message/messageItemMan.jsp +++ b/WebContent/jsp/bap/admin/message/messageItemMan.jsp @@ -57,13 +57,13 @@ { name : 'MSGCLMNVAL' , align:'center' , width:40 }, { name : 'THISMSGCLMNUSEYN' , align:'center' , width:40 , formatter: function (cellvalue) { - if ( !cellvalue ) { - return '사용안함'; - } else if ( cellvalue ) { - return '사용함'; - } else { - return cellvalue; - } + if ( cellvalue == '0' ) { + return '사용안함'; + } else if ( cellvalue == '1' ) { + return '사용'; + } else { + return cellvalue; + } } } ], @@ -77,8 +77,8 @@ height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -396,7 +396,7 @@ " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" /> @@ -406,12 +406,12 @@ - - + + - + <%-- + " level="W" status="LIST" class="btn_img"/> --%>
프라퍼티 그룹명 * - " class="btn_img" level="W" status="DETAIL"/> + <%-- " class="btn_img" level="W" status="DETAIL"/> --%>
IF서버인스턴스명
마스터여부
장애극복서버명
IF서버IP
전문클래스명 전문클래스 설명복제 사용여부전문클래스 설명
메시지항목 구분명메시지 컬럼명메시지 컬럼명 복제 메시지항목 구분명복제 메시지항목 구분명 - " level="W" status="LIST" class="btn_img"/>
diff --git a/WebContent/jsp/bap/admin/message/messageMetaMan.jsp b/WebContent/jsp/bap/admin/message/messageMetaMan.jsp index ff66f1a..e6248df 100644 --- a/WebContent/jsp/bap/admin/message/messageMetaMan.jsp +++ b/WebContent/jsp/bap/admin/message/messageMetaMan.jsp @@ -109,8 +109,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, +/* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -402,7 +402,7 @@ function getGridData() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
메시지메타 관리메시지메타 정보를 등록 관리합니다
@@ -415,14 +415,14 @@ function getGridData() { 메시지 설명 - 복제 사용여부 + 복제 메시지메타 구분코드 diff --git a/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp b/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp index fae898a..b6308aa 100644 --- a/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp +++ b/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp @@ -71,9 +71,9 @@ function getGridData() { colModel:[ { name : 'MSGITEMDSTICNAME' , align:'left' ,width:40 ,sortable:false }, { name : 'MSGCLMNNAME' , align:'center' ,width:40 }, - { name : 'MSGCLMNATTRIPTRNCD' , align:'center' ,width:30 }, - { name : 'MSGCLMNVAL' , align:'center' ,width:30 }, - { name : 'THISMSGCLMNUSEYN' , align:'center' ,width:30 , + { name : 'MSGCLMNATTRIPTRNCD' , align:'center' ,width:40 }, + { name : 'MSGCLMNVAL' , align:'center' ,width:40 }, + { name : 'THISMSGCLMNUSEYN' , align:'center' ,width:40 , formatter: function (cellvalue) { if ( !cellvalue ) { return '사용안함'; @@ -84,9 +84,9 @@ function getGridData() { } } }, - { name : 'MSGITEMCLONENAME', align:'left', sortable:false, width:40, unformat:unformatterFunction, formatter:gridCloneName}, - { name : 'MSGITEMCLONE' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:gridCloneFunction}, - { name : 'DELETEYN' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:formatterFunction} + { name : 'MSGITEMCLONENAME', align:'left', sortable:false, width:40, unformat:unformatterFunction, formatter:gridCloneName, hidden:true }, + { name : 'MSGITEMCLONE' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:gridCloneFunction, hidden:true }, + { name : 'DELETEYN' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:formatterFunction, hidden:true } ], jsonReader: { repeatitems:false @@ -98,8 +98,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -224,8 +224,8 @@ function getGridData() { -
배치 대외 기관 코드
+
업무구분코드
- + <%--
-
" class="btn_img"/>
+ --%> - + - + diff --git a/WebContent/jsp/bap/admin/work/messageProcMan.jsp b/WebContent/jsp/bap/admin/work/messageProcMan.jsp index 01f3139..aba6598 100644 --- a/WebContent/jsp/bap/admin/work/messageProcMan.jsp +++ b/WebContent/jsp/bap/admin/work/messageProcMan.jsp @@ -9,342 +9,215 @@ - - - - + + +
+
+ +
+ +
+
+ " alt="" id="btn_new" + level="W" /> " alt="" + id="btn_search" level="R" /> +
+
+ 송수신 파일 관리일괄 전송에서 사용하는 송수신 파일을 관리 하는 화면입니다 +
-function init() { - $.ajax({ - type: "POST", - url: url, - dataType: "json", - data: { cmd: 'LIST_INIT_COMBO' }, - success: function(json) { - new makeOptions("CODE","NAME").setObj($("select[name=searchBjobBzwkDstcd]")).setNoValueInclude(true).setNoValue('', '전체').setData(json.bjobBzwkDstcd).rendering(); // 업무구분코드 - list(); - }, - error: function(e) { - alert(e.responseText); - } - }); - setSearchable(selectName); // 콤보에 searchable 설정 -} +
배치 대외 기관 코드업무구분코드
배치 대외 기관명업무구분명
당메시지 사용여부 *
+ + + + + + + + + + + + + + +
업무구분명 + + 송수신파일명 + + 송수신파일설명 + +
-$(document).ready(function() { - - resizeJqGridWidth('grid', 'title', '1000'); - init(); - - $("#btn_search").click(function() { - var postData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로 - $("#grid").setGridParam({url:url, postData: postData,page:"1" }).trigger("reloadGrid"); - }); - - $("#btn_new").click(function() { - var url = ''; - url += '?cmd=DETAIL'; - url += '&page=' + $("#grid").getGridParam("page"); - url += '&returnUrl=' + getReturnUrl(); - url += '&menuId=' + '${param.menuId}'; - //검색값 - url += '&'+getSearchUrl(); - - goNav(url); - }); - - $("input[name^=search]").keydown(function(key) { - if (key.keyCode == 13) { - $("#btn_search").click(); - } - }); - - $("input[name^=like]").keydown(function(key) { - if (key.keyCode == 13) { - $("#btn_search").click(); - } - }); - - $("#btn_excel").click(function(event) { - event.stopPropagation(); // Do not propagate the event. - // Create an object that will manage to download the file. - var merge = new Array(); - gridToExcelSubmit(url_excel, "LIST_GRID_TO_EXCEL", $("#grid"), $("#ajaxForm"), "송수신 파일 관리", merge); - return false; - }); - - $("#btn_download").click(function() { - let selectedVal = ""; - const rowIds = $("#grid").getGridParam("selarrrow"); - - rowIds.forEach(rowId => { - selectedVal += "," + $("#grid").getRowData(rowId).BJOBMSGDSTCD; - }); - - if(selectedVal != "") selectedVal = selectedVal.substring(1); - - var url =''; - url += '?cmd=messageProcMan'; - url += '&control=download'; - url += '&serviceType=' + sessionStorage["serviceType"]; - url += '&fileName=messageProcMan'; - url += '&selectedVal=' + selectedVal; - url += '&' + getSearchUrl(); - - goNav(url); - }); - - $("#multiform").on('submit', fileupload); - $('#btn_upload').click(function() { - if( confirm( "동일한 이름의 경우 기존내용을 수정합니다.\n\n업로드 하시겠습니까?" ) != true ) return; - - if(window.FormData !== undefined) { - $("input[name=file]").click(); - } else { - if($("input[name=file]").val() == "") return; - $("#multiform").submit(); - } - }); - - if(window.FormData !== undefined) { - $("input[name=file]").change(function(ev) { - var filename = $(this).val().split('\\').pop(); - - if (!filename.startsWith('messageProcMan')) { - alert("송수신 파일관리 JSON 파일을 선택하십시오.\n\n[파일명 : messageProcMan.json]") - return false; - } - - if(filename == "") return; - else $("#multiform").submit(); - }); - } - - if(window.FormData !== undefined) { - $("input[name=file]").hide(); - } else { - $("input[name=file]").show(); - } - - buttonControl(); -}); - - - - -
-
- -
-
- "> -
- - - - " id="btn_excel" level="R" /> - " alt="" id="btn_upload" level="W" /> - " alt="" id="btn_download" level="R" /> - " alt="" id="btn_new" level="W" /> - " alt="" id="btn_search" level="R" /> -
- -
송수신 파일 관리일괄 전송에서 사용하는 송수신 파일을 관리 하는 화면입니다
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
인터페이스ID업무구분코드 -
- -
-
세부기관코드
송수신파일설명인터페이스설명사용여부 -
- -
-
- -
-
- -
-
- +
+
+ + + + + diff --git a/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp b/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp index 1ce2662..1bc6419 100644 --- a/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp +++ b/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp @@ -16,529 +16,387 @@
" alt="" id="btn_delete" level="W" status="DETAIL"/> - " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> - " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/> - " alt="" id="btn_close" level="R" style="display:none;" /> + " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> + " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/>
-
송수신 파일
+
송수신 파일
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
인터페이스ID *업무구분코드
+
BATCH작업메시지구분코드
BATCH작업메시지구분명
BATCH작업전문헤더크기
BATCH작업전문데이터크기
BATCH작업전문트레일러크기
파일송신사용여부
+
파일수신사용여부
+
작업처리 우선순위
연계시스템 CODE(송신)
+
연계시스템 CODE(수신)
+
APPLICATION CODE + + +
파일담당자
수신시 알림여부 +
+
당메시지 사용여부 * -
- - -
+
BATCH작업메시지구분코드 *BATCH작업메시지구분명 *jFlow Job ID
BATCH작업전문헤더크기 *BATCH작업전문데이터크기 *
BATCH작업전문트레일러크기BATCH작업주기구분
파일 송/수신 구분 -
- -
-
수신시 알림여부 -
- -
-
APPLICATION CODE *
EAI 인터페이스ID
데이터검증여부 -
- -
-
" class="btn_img" />작업처리 우선순위
처리여부 -
- -
-
중복횟수
종결여부 -
- -
-
종결횟수
파일담당자
-
프라퍼티 정보
+ +
프라퍼티 정보
-
+ \ No newline at end of file diff --git a/WebContent/jsp/bap/admin/work/systemInstMan.jsp b/WebContent/jsp/bap/admin/work/systemInstMan.jsp index 44ecd4b..19d04b8 100644 --- a/WebContent/jsp/bap/admin/work/systemInstMan.jsp +++ b/WebContent/jsp/bap/admin/work/systemInstMan.jsp @@ -13,296 +13,170 @@ - -
-
- -
-
-
"> -
- - - - " id="btn_excel" level="R"/> - " alt="" id="btn_upload" level="W" /> - " alt="" id="btn_download" level="R" /> - " alt="" id="btn_new" level="W" /> - " alt="" id="btn_search" level="R" /> -
-
-
배치 세부 기관 관리일괄 전송에서 사용하는 배치 세부 기관 코드를 관리 하는 화면입니다
- - - - - - - - - - - - -
배치 세부 기관 명배치 세부 기관 코드배치 기관명
-
-
-
-
- + +
+
+ +
+
+
+ " alt="" id="btn_new" level="W" /> + " alt="" id="btn_search" level="R" /> +
+
시스템 대외기관 관리일괄 전송에서 사용하는 대외 기관구분 코드를 관리 하는 화면입니다
+ + + + + + + + + + + + + + + + + + + + + + + +
대외기관명대외기관코드업무구분명
업무구분코드송신처리규칙코드수신처리규칙코드
+
+
+ +
+
+ - diff --git a/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp b/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp index 39ec69d..8c83647 100644 --- a/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp +++ b/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp @@ -116,7 +116,7 @@ function init(key1, key2) { getBjobBzwkDstcd(key1, key2); getBjobBzwkPrcssDstcd(key1, key2); getAdaptorGroup(key1, key2); - setSearchable(selectName); // 콤보에 searchable 설정 + //setSearchable(selectName); // 콤보에 searchable 설정 } function getBjobBzwkDstcd(key1, key2) { @@ -178,7 +178,7 @@ function getAdaptorGroup(key1, key2) { } }, error: function(e) { - alert(e.responseText); + //alert(e.responseText); } }); } @@ -224,7 +224,7 @@ function detail(key1,key2) { $("#grid")[0].addJSONData(data); }, error: function(e) { - alert(e.responseText); + //alert(e.responseText); } }); } @@ -245,7 +245,7 @@ function setRqstRspnsDstcd() { $("select[name=adptrBzwkName]").val(sysLnkgList["ADPTRBZWKNAME"]); }, error: function(e) { - alert(e.responseText); + //alert(e.responseText); } }); } diff --git a/WebContent/jsp/bap/transaction/procWorkMan.jsp b/WebContent/jsp/bap/transaction/procWorkMan.jsp index 4b6d0e0..881a85b 100644 --- a/WebContent/jsp/bap/transaction/procWorkMan.jsp +++ b/WebContent/jsp/bap/transaction/procWorkMan.jsp @@ -214,7 +214,7 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
진행작업 관리
diff --git a/WebContent/jsp/bap/transaction/transactionStatusMan.jsp b/WebContent/jsp/bap/transaction/transactionStatusMan.jsp index 54f8aca..5640bcd 100644 --- a/WebContent/jsp/bap/transaction/transactionStatusMan.jsp +++ b/WebContent/jsp/bap/transaction/transactionStatusMan.jsp @@ -12,772 +12,611 @@ - - +
- " id="btn_excel" level="R"/> - " alt="" id="btn_search" level="R" /> + " alt="" id="btn_search" level="R" />
일괄전송 현황 조회
@@ -789,8 +628,8 @@ $(document).ready(function() {
-
- +
+ 작업유형
@@ -806,8 +645,8 @@ $(document).ready(function() {
- - - + + + 대외기관명
-
@@ -839,46 +678,50 @@ $(document).ready(function() {
-
+
- +
    +
  • 비정상:지연+에러
  • +
  • 미도래
  • 큐대기
  • -
  • 진행중
  • 전송현황
  • -
  • 미완료
+
+
+
+
+
-
-
+
+
- - + + \ No newline at end of file diff --git a/WebContent/jsp/bap/transaction/transactionTraceMan.jsp b/WebContent/jsp/bap/transaction/transactionTraceMan.jsp index 6198356..6625437 100644 --- a/WebContent/jsp/bap/transaction/transactionTraceMan.jsp +++ b/WebContent/jsp/bap/transaction/transactionTraceMan.jsp @@ -13,97 +13,96 @@ - -
-
- -
-
-
- " id="btn_excel" level="R"/> - " alt="" id="btn_search" level="R" /> -
-
거래 추적
- - - - - - - - - - - - - - - - - - - - - - -
프레임웍구분 -
- -
-
업무구분명 -
- -
-
송수신구분 -
- -
-
상태 -
- -
-
파일명 - - 기관명 - - 거래기간 - - ~ - - - - -
-
-
-
-
- + +
+
+ +
+
+
+ " alt="" id="btn_search" level="R" /> +
+
거래 추적
+ + + + + + + + + + + + + + + + + + + + + + +
프레임웍구분 +
+ +
+
업무구분명 +
+ +
+
송수신구분 +
+ +
+
상태 +
+ +
+
파일명 + + 기관명 + + 거래기간 + + ~ + + + + +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/WebContent/jsp/bap/transaction/transactionWaitMan.jsp b/WebContent/jsp/bap/transaction/transactionWaitMan.jsp index 4362ebe..b95e837 100644 --- a/WebContent/jsp/bap/transaction/transactionWaitMan.jsp +++ b/WebContent/jsp/bap/transaction/transactionWaitMan.jsp @@ -144,7 +144,7 @@ $(document).ready(function() { autowidth: true, viewrecords: true, gridview: true, - multiselect: true, + /* multiselect: true, */ rowList: eval('[${rmsDefaultRowList}]'), gridComplete: function (d) { var colModel = $(this).getGridParam("colModel"); @@ -250,8 +250,8 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> - " alt="" id="btn_delete" level="W" status="DETAIL"/> + <%-- " id="btn_excel" level="R"/> + " alt="" id="btn_delete" level="W" status="DETAIL"/> --%> " alt="" id="btn_search" level="R" />
작업대기 관리
diff --git a/WebContent/jsp/common/screen/emergency.jsp b/WebContent/jsp/common/screen/emergency.jsp index 01ab044..5ac9ffa 100644 --- a/WebContent/jsp/common/screen/emergency.jsp +++ b/WebContent/jsp/common/screen/emergency.jsp @@ -86,30 +86,33 @@ $("#loginForm").submit(); } function changePwd(){ - if ($("input[name=userId]").val() == null || $("input[name=userId]").val().length == 0 ){ + if ($("input[name=resetUserId]").val() == null || $("input[name=resetUserId]").val().length == 0 ){ alert("<%= localeMessage.getString("login.checkid") %>"); - $("input[name=userId]").trigger("focus"); + $("input[name=resetUserId]").trigger("focus"); return; } - if ($("input[name=password]").val() == null || $("input[name=password]").val().trim().length == 0 ){ + if ($("input[name=resetPassword]").val() == null || $("input[name=resetPassword]").val().trim().length == 0 ){ alert("<%= localeMessage.getString("login.checkpwd1") %>"); - $("input[name=password]").trigger("focus"); + $("input[name=resetPassword]").trigger("focus"); return; } - if ($("input[name=password]").length == 0){ + if ($("input[name=changePassword]").val() == null || $("input[name=changePassword]").val().trim().length == 0 ){ alert("<%= localeMessage.getString("login.checkpwd2") %>"); + $("input[name=changePassword]").trigger("focus"); return ; } - if ($("input[name=changePassword]").length == 0){ + if ($("input[name=confirmPassword]").val() == null || $("input[name=confirmPassword]").val().trim().length == 0 ){ alert("<%= localeMessage.getString("login.checkpwd3") %>"); return ; } - if ($("input[name=confirmPassword]").val() != $("input[name=changePassword]").val()){ + if ($("input[name=confirmPassword]").val() != $("input[name=confirmPassword]").val()){ alert("<%= localeMessage.getString("login.checkpwd4") %>"); + $("input[name=confirmPassword]").trigger("focus"); return ; } - if ($("input[name=userId]").val() == $("input[name=changePassword]").val()){ + if ($("input[name=resetUserId]").val() == $("input[name=changePassword]").val()){ alert("<%= localeMessage.getString("login.checkpwd5") %>"); + $("input[name=changePassword]").trigger("focus"); return ; } @@ -121,21 +124,6 @@ --%> $("form").submit(); } - - function openPwdChgWindow() { - - <% - if(sysMode.equals("T") || sysMode.equals("D")) { - %> - windowOpen("http://ssodev.kbankwithu.com:7010", "PopupWindow", 1024, 768); - <% - } else { - %> - windowOpen("https://ssoap.kbankwithu.com/nls3/clientLogin.jsp", "PopupWindow", 1024, 768); - <% - } - %> - } $(document).ready(function() { $("input[name=userId]").keydown(function(event){ @@ -215,18 +203,18 @@

<%=resultMsg %>

+ -<%--