This commit is contained in:
Rinjae
2025-09-05 17:16:26 +09:00
commit c54ef1903f
4947 changed files with 817291 additions and 0 deletions
@@ -0,0 +1,66 @@
package com.eactive.eai.agent.command;
import java.io.Serializable;
import java.util.Map;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
@SuperBuilder
@Accessors(chain = true)
public abstract class Command implements Serializable {
private static final long serialVersionUID = 1L;
@Getter
@Setter
@NonNull
protected String name;
@Setter
protected Object args;
private Map<String, String> errorCode;
protected Command() {
this.name = this.getClass().getName();
}
protected Command(String name) {
this.name = name;
}
public abstract Object execute() throws CommandException;
protected String makeException(String rspErrorCode, Throwable cause) {
String[] msgArgs = new String[2];
msgArgs[0] = name;
if (cause == null) {
msgArgs[1] = args.toString();
} else {
msgArgs[1] = cause.getMessage();
}
return makeMessage(errorCode.get(rspErrorCode), msgArgs);
}
private static String makeMessage(String msg, String[] args) {
String keyword = null;
String head = null;
String tail = null;
int idx = -1;
for (int i = 0; i < args.length; i++) {
keyword = "{" + (i + 1) + "}";
idx = msg.indexOf(keyword);
if (idx == -1) {
continue;
}
head = msg.substring(0, idx);
tail = msg.substring(idx + keyword.length());
msg = head + args[i] + tail;
}
return msg;
}
}
@@ -0,0 +1,43 @@
package com.eactive.eai.agent.command;
/**
* 1. 기능 : Command Logic을 실행하다 발생될 User Define 오류를 처리하기 위한 Exception class<br>
* 2. 처리 개요 : Command Logic을 실행하다 발생될 User Define 오류를 처리하기 위한 Exception class<br>
* 3. 주의사항
*
* @author
* @version v 1.0.0
* @see 관련 기능을 참조
* @since
*
*/
public class CommandException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 1. 기능 : Default Constructor
* 2. 처리 개요 : Default Constructor
* 3. 주의사항
*
**/
public CommandException() {
super("CommandException is occured.");
}
/**
* 1. 기능 : Exception message를 초기화하는 Constructor
* 2. 처리 개요 : Exception message를 초기화하는 Constructor
* -
* 3. 주의사항
*
* @param msg Exception message
**/
public CommandException(String msg) {
super(msg);
}
}
@@ -0,0 +1,22 @@
package com.eactive.eai.agent.command;
import java.util.Map;
import com.eactive.eai.rms.common.util.CommonUtil;
import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class CommandResult {
@Getter
@NonNull
private Map<String, Object> result;
public String getMessage(boolean newLineBetweenEntries) {
return CommonUtil.getMapString(result, newLineBetweenEntries);
}
}
@@ -0,0 +1,80 @@
package com.eactive.eai.agent.command;
import java.lang.reflect.Constructor;
import com.eactive.eai.rms.onl.common.exception.EMSRuntimeException;
import com.eactive.eai.rms.onl.common.service.AgentUtilService;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@SuperBuilder
@NoArgsConstructor
public class CommonCommand extends Command {
private static final long serialVersionUID = 1L;
public static final String RELOAD_EAI_MESSAGE_COMMAND = "com.eactive.eai.agent.eaimessage.ReloadEAIMessageCommand";
public static final String RELOAD_TRANSFORM_COMMAND = "com.eactive.eai.agent.transformer.ReloadTransformCommand";
public static final String REMOVE_TRANSFORM_COMMAND = "com.eactive.eai.agent.transformer.RemoveTransformCommand";
public static final String RELOAD_TRANSFORM_LIST_COMMAND = "com.eactive.eai.agent.transformer.ReloadTransformListCommand";
public static final String RELOAD_MESSAGE_KEY_COMMAND = "com.eactive.eai.agent.messagekey.ReloadMessageKeyCommand";
public static final String REMOVE_MESSAGE_KEY_COMMAND = "com.eactive.eai.agent.messagekey.RemoveMessageKeyCommand";
public static final String RELOAD_EAI_SERVER_COMMAND = "com.eactive.eai.agent.eaiserver.ReloadEAIServerCommand";
public static final String REMOVE_EAI_SERVER_COMMAND = "com.eactive.eai.agent.eaiserver.RemoveEAIServerCommand";
public static final String RELOAD_SUB_MESSAGE_COMMAND = "com.ext.eai.agent.submessage.ReloadSubMessageCommand";
public static final String REMOVE_SUB_MESSAGE_COMMAND = "com.ext.eai.agent.submessage.RemoveSubMessageCommand";
public static final String RELOAD_CLIENT_COMMAND = "com.eactive.eai.agent.authserver.ReloadClientCommand";
public static final String RELOAD_API_SCOPE_COMMAND = "com.eactive.eai.agent.authserver.ReloadApiScopeCommand";
public static final String RELOAD_ERROR_CODE_COMMAND = "com.eactive.eai.agent.errorcode.ReloadErrorCodeCommand";
public static final String REMOVE_ERROR_CODE_COMMAND = "com.eactive.eai.agent.errorcode.RemoveErrorCodeCommand";
public CommonCommand(String name, Object args) {
this.name = name;
this.args = args;
}
public CommonCommand(String name) {
this.name = name;
}
public Object execute() throws CommandException {
if (name.indexOf(".") >= 0) {
try {
@SuppressWarnings("rawtypes")
Class cl = Class.forName(this.name);
@SuppressWarnings({ "rawtypes", "unchecked" })
Constructor constructor = cl.getConstructor();
Object obj = constructor.newInstance();
Command c = (Command) obj;
c.setArgs(args);
return c.execute();
} catch (Exception e) {
String rspErrorCode = "RECEAIMCM002";
String msg = makeException(rspErrorCode, null);
throw new CommandException(msg);
}
} else {
String rspErrorCode = "RECEAIMCM001";
String msg = makeException(rspErrorCode, null);
throw new CommandException(msg);
}
}
public CommandResult broadcast(AgentUtilService agentUtilService) throws EMSRuntimeException {
try {
return new CommandResult(agentUtilService.broadcast(this));
} catch (Exception e) {
throw new EMSRuntimeException(e);
}
}
}
@@ -0,0 +1,15 @@
package com.eactive.eai.common;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* JsonView 에서 Null 값을 변경하는 모듈
*
*/
public class CustomObjectMapper extends ObjectMapper{
private static final long serialVersionUID = 1L;
public CustomObjectMapper() {
getSerializerProvider().setNullValueSerializer(new NullToEmptyStringSerializer());
}
}
@@ -0,0 +1,20 @@
package com.eactive.eai.common;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
/**
* jsonView시에 null 을 empty("")로 바꾸는 모듈
*
*/
public class NullToEmptyStringSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException, JsonProcessingException {
jsonGenerator.writeString("");
}
}
@@ -0,0 +1,326 @@
package com.eactive.eai.common.ibatis;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.core.io.Resource;
import org.springframework.orm.ibatis.SqlMapClientFactoryBean;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.engine.impl.ExtendedSqlMapClient;
/**
* iBATIS sqlmap 클라이언트의 sqlMap 및 sqlMapConfig 파일의 변경을 감지, 실시간 적용하는 팩토리 빈.
*
* <h2>개요</h2>
* iBATIS + Spring 개발시 쿼리 매핑 파일이 변경되면 웹애플리케이션 서버를 재기동해야 적용이 됐었다. 이러한 불편을 없애기
* 위해 매핑 파일 변경을 실시간으로 감시, 적용하는 모듈을 제공한다.<br />
*
* 감시 대상 이 모듈은 iBATIS sqlmap 클라이언트의 sqlMap 및 sqlMapConfig 파일의 변경을 감지, 실시간 적용해준다.<br />
*
* <h2>제약사항</h2>
* 감시 대상 파일들은 스타트업 당시에 결정된다. 그러므로 추가된 파일들에 대해서는 감지가 되지 않고, 삭제된 파일들에 대해서는 경고
* 메시지가 나온다. 예를 들어, sqlMapConfig에 sqlMap 파일이 추가되거나 하면 해당 맵이 적용되기는 하지만, 실시간 변경 감지
* 대상으로 추가되지는 않는다.<br />
*
* <h2>요구사항</h2>
* iBATIS sqlmap 2.3.0, Java 1.4, Spring 2.5 이상 또는 iBATIS sqlmap 2.3.2 이상,<br />
* Java 1.5 이상, Spring 2.5.5 이상<br />
*
* <h2>적용 순서</h2>
* 1. Spring의 applicationContext 설정 파일 중 sqlMapClient를 얻기 위한
* SqlMapClientFactory 빈을 신규 클래스로 교체한다. <br />
* 2. 변경 감지 시간 간격 (1000분의 1초 단위)를 지정한다.<br />
* <PRE>
* &lt;bean id="sqlMapClient" class="jcf.dao.ibatis.sqlmap.RefreshableSqlMapClientFactoryBean"&gt;
* &lt;!-- &lt;bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"&gt;--&gt;
* &lt;property name="configLocation" value="classpath:jcf/inboundErrorInfoDao/ibatis/sqlmap/sqlmap-config.xml" /&gt;
* &lt;property name="dataSource" ref="dataSource" /&gt;
*
* &lt;!-- Java 1.5 or higher and iBATIS 2.3.2 or higher REQUIRED --&gt;
* &lt;property name="mappingLocations" value="jcf/inboundErrorInfoDao/\*\*\/T\*.xml" /&gt;
* &lt;!-- &lt;property name="mappingLocations" value="file:///D:/Type.xml" /&gt;--&gt;
*
* &lt;property name="checkInterval" value="1000" /&gt;
* &lt;/bean&gt;
* </PRE>
*
* 3. 라이브러리 추가 <br />
* backport-util-concurrent-3.1.jar<br />
*
* 테스트 기존의 applicationContext에 등록되어 있던 sqlMapClient에 해당하는 mappingFile들을 편집하거나,
* sqlMapConfig 파일 또는 그 파일에 등록된 mappingFile(sqlMap 파일)들을 편집하면 주어진 변경감지 시간 후 변경사항이 적용된다.<br />
* <br />
*
* @author setq
*/
public class RefreshableSqlMapClientFactoryBean extends SqlMapClientFactoryBean
implements SqlMapClientRefreshable, DisposableBean {
private static final Log logger = LogFactory
.getLog(RefreshableSqlMapClientFactoryBean.class);
private SqlMapClient proxy;
private int interval;
private Timer timer;
private TimerTask task;
private Resource[] configLocations;
private Resource[] mappingLocations;
/**
* 파일 감시 쓰레드가 실행중인지 여부.
*/
private boolean running = false;
private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
private final Lock r = rwl.readLock();
private final Lock w = rwl.writeLock();
public void setConfigLocation(Resource configLocation) {
super.setConfigLocation(configLocation);
this.configLocations = (configLocation != null ? new Resource[] { configLocation }
: null);
}
public void setConfigLocations(Resource[] configLocations) {
super.setConfigLocations(configLocations);
this.configLocations = configLocations;
}
public void setMappingLocations(Resource[] mappingLocations) {
super.setMappingLocations(mappingLocations);
this.mappingLocations = mappingLocations;
}
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(2);
public void doReload() throws Exception {
if(executor.getActiveCount() == executor.getMaximumPoolSize()){
return;
}
Runnable run = new Runnable() {
@Override
public void run() {
try {
refresh();
} catch (Exception e) {
logger.error("Error while reloading sqlMapClient", e);
}
}
};
executor.execute(run);
}
/**
* iBATIS 설정을 다시 읽어들인다.<br /> SqlMapClient 인스턴스 자체를 새로 생성하여 교체한다.
*
* @throws Exception
*/
public void refresh() throws Exception {
/*
* WRITE LOCK.
*/
w.lock();
try {
super.afterPropertiesSet();
logger.info("Refreshed SqlMapClient.");
} finally {
w.unlock();
}
}
/**
* 싱글톤 멤버로 SqlMapClient 원본 대신 프록시로 설정하도록 오버라이드.
*/
public void afterPropertiesSet() throws Exception {
super.afterPropertiesSet();
setRefreshable();
}
private void setRefreshable() {
proxy = (SqlMapClient) Proxy.newProxyInstance(SqlMapClient.class
.getClassLoader(), new Class[] { SqlMapClient.class,
ExtendedSqlMapClient.class }, new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
return method.invoke(getParentObject(), args);
}
});
task = new TimerTask() {
private Map map = new HashMap();
public void run() {
if (isModified()) {
try {
logger.info("Refreshing SqlMapClient...");
// refresh();
for (int i = 0; i < 3; i++) {
doReload();
Thread.sleep(2000);
}
}
catch (Exception e) {
logger.error("caught exception", e);
}
}
}
private boolean isModified() {
boolean retVal = false;
for (int i = 0; i < configLocations.length; i++) {
Resource configLocation = configLocations[i];
retVal |= findModifiedResource(configLocation);
}
if (mappingLocations != null) {
for (int i = 0; i < mappingLocations.length; i++) {
Resource mappingLocation = mappingLocations[i];
retVal |= findModifiedResource(mappingLocation);
}
}
return retVal;
}
private boolean findModifiedResource(Resource resource) {
boolean retVal = false;
List modifiedResources = new ArrayList();
try {
long modified = resource.lastModified();
if (map.containsKey(resource)) {
long lastModified = ((Long) map.get(resource)).longValue();
if (lastModified != modified) {
map.put(resource, new Long(modified));
modifiedResources.add(resource.getDescription());
retVal = true;
}
}
else {
map.put(resource, new Long(modified));
}
}
catch (Throwable e) {
logger.error("caught exception", e);
}
if (retVal) {
// if (logger.isInfoEnabled()) {
// logger.info("modified files : " + modifiedResources);
// }
logger.info("modified files : " + modifiedResources);
}
return retVal;
}
};
timer = new Timer(true);
resetInterval();
List mappingLocationList = extractMappingLocations(configLocations);
if (this.mappingLocations != null) {
mappingLocationList.addAll(Arrays.asList(this.mappingLocations));
}
this.mappingLocations = (Resource[]) mappingLocationList.toArray(new Resource[0]);
}
private List extractMappingLocations(Resource[] configLocations) {
List mappingLocationList = new ArrayList();
SqlMapExtractingSqlMapConfigParser configParser = new SqlMapExtractingSqlMapConfigParser();
for (int i = 0; i < configLocations.length; i++) {
try {
InputStream is = configLocations[i].getInputStream();
mappingLocationList.addAll(configParser.parse(is));
}
catch (IOException ex) {
logger.warn("Failed to parse config resource: "
+ configLocations[i], ex.getCause());
}
}
return mappingLocationList;
}
private Object getParentObject() {
/*
* READ LOCK.
*/
r.lock();
try {
return super.getObject();
} finally {
r.unlock();
}
}
@Override
public SqlMapClient getObject() {
return this.proxy;
}
public Class getObjectType() {
return (this.proxy != null ? this.proxy.getClass() : SqlMapClient.class);
}
public boolean isSingleton() {
return true;
}
public void setCheckInterval(int ms) {
interval = ms;
if (timer != null) {
resetInterval();
}
}
private void resetInterval() {
if (running) {
timer.cancel();
running = false;
}
if (interval > 0) {
timer.schedule(task, 0, interval);
running = true;
}
}
public void destroy() throws Exception {
timer.cancel();
}
}
@@ -0,0 +1,11 @@
package com.eactive.eai.common.ibatis;
public interface SqlMapClientRefreshable {
void refresh() throws Exception;
void setCheckInterval(int ms);
}
@@ -0,0 +1,85 @@
package com.eactive.eai.common.ibatis;
import java.io.InputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.w3c.dom.Node;
import com.ibatis.common.xml.Nodelet;
import com.ibatis.common.xml.NodeletParser;
import com.ibatis.common.xml.NodeletUtils;
import com.ibatis.sqlmap.client.SqlMapException;
import com.ibatis.sqlmap.engine.builder.xml.SqlMapClasspathEntityResolver;
//import com.ibatis.sqlmap.engine.builder.xml.XmlParserState;
@SuppressWarnings("unchecked")
public class SqlMapExtractingSqlMapConfigParser {
protected final NodeletParser parser = new NodeletParser();
// private XmlParserState state = new XmlParserState();
private List sqlMapList = new ArrayList();
private ResourceLoader resourceLoader = new DefaultResourceLoader();
public SqlMapExtractingSqlMapConfigParser() {
parser.setValidation(true);
parser.setEntityResolver(new SqlMapClasspathEntityResolver());
addSqlMapNodelets();
}
public List parse(Reader reader) {
try {
parser.parse(reader);
return sqlMapList;
}
catch (Exception e) {
throw new RuntimeException("Error occurred. Cause: " + e, e);
}
}
public List parse(InputStream inputStream) {
try {
parser.parse(inputStream);
return sqlMapList;
}
catch (Exception e) {
throw new RuntimeException("Error occurred. Cause: " + e, e);
}
}
protected void addSqlMapNodelets() {
parser.addNodelet("/sqlMapConfig/sqlMap", new Nodelet() {
public void process(Node node) throws Exception {
// state.getConfig().getErrorContext().setActivity(
// "loading the SQL Map resource");
Properties attributes = NodeletUtils.parseAttributes(node,
// state.getGlobalProps());
null);
String resource = attributes.getProperty("resource");
String url = attributes.getProperty("url");
if (resource != null) {
sqlMapList.add(resourceLoader.getResource(resource));
}
else if (url != null) {
sqlMapList.add(resourceLoader.getResource(url));
}
else {
throw new SqlMapException(
"The <sqlMap> element requires either a resource or a url attribute.");
}
}
});
}
}
@@ -0,0 +1,76 @@
package com.eactive.eai.common.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Map;
import org.apache.log4j.Logger;
public class HttpUtil {
protected static final Logger logger = Logger.getLogger(HttpUtil.class);
public static String httpCall(String urlStr, String httpMethod) throws Exception {
return httpCall(urlStr, httpMethod, Charset.defaultCharset().toString());
}
public static String httpCall(String urlStr, String httpMethod, String encoding) throws Exception {
logger.debug("httpCall (" +httpMethod+ ") : " + urlStr);
StringBuilder result = new StringBuilder();
try {
HttpURLConnection conn = (HttpURLConnection) new URL(urlStr).openConnection();
conn.setRequestMethod(httpMethod);
BufferedReader rd = null;
if (conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
InputStreamReader inputStreamReader = new InputStreamReader(conn.getInputStream(), encoding);
rd = new BufferedReader(inputStreamReader);
} else {
logger.error(urlStr + " / ResponseCode : " + conn.getResponseCode());
return null;
}
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
conn.disconnect();
} catch (ConnectException e) {
logger.error(urlStr + e.getMessage());
return null;
}
return result.toString();
}
public static String httpCall(String urlStr, String httpMethod, String encoding, Map<String, String> paramMap) throws Exception {
if(paramMap.size() < 0) {
return httpCall(urlStr, httpMethod, encoding);
}
StringBuilder sb = new StringBuilder();
sb.append(urlStr);
sb.append("?");
paramMap.forEach((k, v) -> {
sb.append(k);
sb.append("=");
sb.append(v);
sb.append("&");
});
return httpCall(sb.toString(), httpMethod, encoding);
}
}
@@ -0,0 +1,76 @@
package com.eactive.eai.common.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcTest {
// String driver = "org.mariadb.jdbc.Driver";
// String driver = "com.mysql.jdbc.Driver";
String driver = "com.ibm.db2.jcc.DB2Driver"; //db2
// String url = "jdbc:mariadb://localhost:4406/eai?useUnicode=true&characterEncoding=euckr";
String url = "jdbc:db2://localhost:50000/DSEADT";
String uId = "db2admin";
String uPwd = "e1001";
Connection con;
PreparedStatement pstmt;
ResultSet rs;
public JdbcTest() {
try {
Class.forName(driver);
con = DriverManager.getConnection(url, uId, uPwd);
System.out.println(con);
if( con != null ){ System.out.println("데이터 베이스 접속 성공"); }
} catch (ClassNotFoundException e) {
//e.printStackTrace();
System.out.println("드라이버 로드 실패");
}
catch (SQLException e) {
//e.printStackTrace();
System.out.println(e);
System.out.println("데이터 베이스 접속 실패");
}
}
public void insert(String id, String name){
String sql = "insert into test values(?, ?)";
try {
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, name);
pstmt.executeQuery();
} catch (SQLException e) {
//e.printStackTrace();
System.out.println("쿼리 수행 실패");
}
}
public void select(){
String sql = "select * from test";
try {
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
System.out.println("id : " + rs.getString("id"));
System.out.println("name : " + rs.getString("name"));
}
} catch (SQLException e) { System.out.println("쿼리 수행 실패"); }
finally {
try { if(rs!=null) rs.close();} catch(Exception e) {}
try { if(con!=null) con.close();} catch(Exception e) {}
}
}
public static void main(String[] args){
JdbcTest dbm = new JdbcTest();
}
}
@@ -0,0 +1,81 @@
package com.eactive.eai.common.util;
/**
* 1. 기능 : Date, Time 관련 Utility Method 정의
* 2. 처리 개요 :
*
* 3. 주의사항
*
* @author :
* @version : v 1.0.0
* @see :
* @since :
*/
public final class NullControl {
/**
* Private 생성자
* Instance를 생성하지 못함
*/
private NullControl()
{
}
/**
* 1. 기능 : Null값을 공백으로 변경
* 2. 처리 개요 :
* - ""나 Null를 입력받아 SPACE로 변환한다.
* 3. 주의사항
*
* @param "", Null
* @return String
* @exception
**/
public static String addSpace(String val)
{
if(val == null || val.equals("")){
val = " ";
}
return val;
}
/**
* 1. 기능 : 입력값을 트림하여 화이트스페이스를 없앤다.
* 2. 처리 개요 :
* - 입력받은 값을 트림하여 리턴한다.
* 3. 주의사항
*
* @param "", Null
* @return String
* @exception
**/
public static String trimSpace(String val)
{
if(val == null || val.equals("")){
val = ""; // ""나 Null을 체크하여 트림하여 에러가 발생하지 않도록 한다..
}else{
val = val.trim();
}
return val;
}
public static String trimSpace2(String val)
{
if(val == null || val.equals("")){
return ""; // ""나 Null을 체크하여 트림하여 에러가 발생하지 않도록 한다..
}
if (val.trim().length() > 0){
return val;
}
else{
return val.trim();
}
}
}
@@ -0,0 +1,89 @@
package com.eactive.eai.common.util;
import org.apache.commons.lang3.StringUtils;
/**
* 1. 기능 : EAI서버 Rule 정보를 DB로 부터 로딩해 메모리에 관리하는 Manager 클래스
* 2. 처리 개요 : DB Rule 정보에 저장된 필드 추출 Rule 정보를 메모리에 로딩 관리한다.
* 3. 주의사항
*
* @author :
* @version : v 1.0.0
* @see : 관련 기능을 참조
* @since :
* :
*/
public class SystemUtil
{
public static final String EAI_SYSTEMMODE = "eai.systemmode";
private static final String EAI_PRODUCT = "P";
private static final String EAI_STAGING = "T";
private static final String EAI_DEVELOP = "D";
//시스템 운영환경 구분코드
private static final String SYSOPEREVIRNDSTCD_PRODUCT = "P";
private static final String SYSOPEREVIRNDSTCD_STAGING = "T";
private static final String SYSOPEREVIRNDSTCD_DEVELOP = "D";
public static boolean isProdServer() {
String systemMode = System.getProperty(EAI_SYSTEMMODE);
if (EAI_PRODUCT.equals(systemMode)){
return true;
}else{
return false;
}
}
public static boolean isDevServer() {
String systemMode = System.getProperty(EAI_SYSTEMMODE);
if (EAI_DEVELOP.equals(systemMode)|| "".equals(systemMode)){
return true;
}else{
return false;
}
}
public static boolean isStagingServer() {
String systemMode = System.getProperty(EAI_SYSTEMMODE);
if (EAI_STAGING.equals(systemMode)){
return true;
}else{
return false;
}
}
public static String getSysOperEvirnDstcd(){
if (isProdServer()){
return SYSOPEREVIRNDSTCD_PRODUCT;
} else if (isStagingServer()){
return SYSOPEREVIRNDSTCD_STAGING;
} else if (isDevServer()){
return SYSOPEREVIRNDSTCD_DEVELOP;
}
return "";
}
public static String getSystemModeTitle(){
String systemModeTitle = System.getProperty("systemModeTitle", "");
if(StringUtils.isBlank(systemModeTitle)){
if (SystemUtil.isDevServer()){
systemModeTitle = "개발";
}else if(SystemUtil.isStagingServer()){
systemModeTitle = "스테이징";
// systemModeTitle = "테스트";
}else if(SystemUtil.isProdServer()){
systemModeTitle = "운영";
}
}
if(StringUtils.isNotBlank(systemModeTitle)){
systemModeTitle = "["+systemModeTitle+"] ";
}
return systemModeTitle;
}
}
@@ -0,0 +1,89 @@
package com.eactive.eai.common.util;
/**
*/
public class XmlUtil {
private static final String CDATA_START = "<![CDATA[";
private static final String CDATA_END = "]]>";
private static final String CDATA_PSEUDO_END = "]]&gt;";
private static final String CDATA_EMBEDED_END = CDATA_END + CDATA_PSEUDO_END + CDATA_START;
private static final int CDATA_END_LEN = CDATA_END.length();
/**
* This method takes a string which may contain HTML tags (ie,
* &lt;b&gt;, &lt;table&gt;, etc) and replaces any
* '<', '>' , '&' or '"'
* characters with respective predefined entity references.
*
* @param input The text to be converted.
* @return The input string with the special characters replaced.
* */
static public String escapeTags(final String input) {
// Check if the string is null, zero length or devoid of special characters
// if so, return what was sent in.
if(input == null
|| input.length() == 0
|| (input.indexOf('"') == -1 &&
input.indexOf('&') == -1 &&
input.indexOf('<') == -1 &&
input.indexOf('>') == -1)) {
return input;
}
StringBuffer buf = new StringBuffer(input.length() + 6);
char ch;
int len = input.length();
for(int i=0; i < len; i++) {
ch = input.charAt(i);
if (ch > '>') {
buf.append(ch);
} else if(ch == '<') {
buf.append("&lt;");
} else if(ch == '>') {
buf.append("&gt;");
} else if(ch == '&') {
buf.append("&amp;");
} else if(ch == '"') {
buf.append("&quot;");
} else {
buf.append(ch);
}
}
return buf.toString();
}
/**
* Ensures that embeded CDEnd strings (]]>) are handled properly
* within message, NDC and throwable tag text.
*
* @param buf StringBuffer holding the XML data to this point. The
* initial CDStart (<![CDATA[) and final CDEnd (]]>) of the CDATA
* section are the responsibility of the calling method.
* @param str The String that is inserted into an existing CDATA Section within buf.
* */
static public void appendEscapingCDATA(final StringBuffer buf,
final String str) {
if (str != null) {
int end = str.indexOf(CDATA_END);
if (end < 0) {
buf.append(str);
} else {
int start = 0;
while (end > -1) {
buf.append(str.substring(start, end));
buf.append(CDATA_EMBEDED_END);
start = end + CDATA_END_LEN;
if (start < str.length()) {
end = str.indexOf(CDATA_END, start);
} else {
return;
}
}
buf.append(str.substring(start));
}
}
}
}
@@ -0,0 +1,40 @@
package com.eactive.eai.custom;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.InitializingBean;
import com.eactive.eai.transformer.message.ISO8583MessageFactory;
/**
* 이곳에서 Custermizing 대상 class 및 변수의 초기화 작업을 수행한다.
*/
public class CustomizingAppInitializer implements InitializingBean {
final Logger logger = Logger.getLogger(CustomizingAppInitializer.class);
public static final String MESSAGE_TYPE_H2H = "H2H";
public static final String LAYOUT_TYPE_H2H = "ISO8583H2H";
public static final String ISO8583_H2H_CLASS_NAME = "com.eactive.eai.custom.transformer.message.ISO8583H2HMessage";
public static final String MESSAGE_TYPE_SVL = "SVL";
public static final String LAYOUT_TYPE_SVL = "ISO8583SVL";
public static final String ISO8583_SVL_CLASS_NAME = "com.eactive.eai.custom.transformer.message.ISO8583SilverlakeMessage";
@Override
public void afterPropertiesSet() throws Exception {
/*
* @formatter:off
* Custom ISO8583 메시지 추가시
* - ONLWeb: Custom Mesaage java 추가, 아래 맵에 추가
* - EMSWeb: Custom Mesaage java 추가, 아래 맵에 추가(로그조회시 parsing 위해)
* @formatter:on
*/
ISO8583MessageFactory.ISO8583_MESSAGE_TYPE_CLASS_MAP.put(MESSAGE_TYPE_H2H, ISO8583_H2H_CLASS_NAME);
ISO8583MessageFactory.ISO8583_MESSAGE_TYPE_CLASS_MAP.put(MESSAGE_TYPE_SVL, ISO8583_SVL_CLASS_NAME);
ISO8583MessageFactory.ISO8583_LAYOUT_TYPE_CLASS_MAP.put(LAYOUT_TYPE_H2H, ISO8583_H2H_CLASS_NAME);
ISO8583MessageFactory.ISO8583_LAYOUT_TYPE_CLASS_MAP.put(LAYOUT_TYPE_SVL, ISO8583_SVL_CLASS_NAME);
logger.info(String.format("ISO8583MessageFactory registered - %s = %s", MESSAGE_TYPE_H2H, ISO8583_H2H_CLASS_NAME));
logger.info(String.format("ISO8583MessageFactory registered - %s = %s", MESSAGE_TYPE_SVL, ISO8583_SVL_CLASS_NAME));
logger.info(String.format("ISO8583MessageFactory registered - %s = %s", LAYOUT_TYPE_H2H, ISO8583_H2H_CLASS_NAME));
logger.info(String.format("ISO8583MessageFactory registered - %s = %s", LAYOUT_TYPE_SVL, ISO8583_SVL_CLASS_NAME));
}
}
@@ -0,0 +1,162 @@
package com.eactive.eai.custom.transformer.message;
import java.util.HashMap;
import com.eactive.eai.transformer.message.ISO8583Message;
import com.solab.iso8583.IsoMessage;
import com.solab.iso8583.IsoType;
import com.solab.iso8583.MessageFactory;
import com.solab.iso8583.parse.FieldParseInfo;
/**
* <pre>
* ISO 8583 H2H(전문) 형식의 데이터를 변환하기 위한 메시지.(For KB Bukopin)
*
* [참조]
* https://en.wikipedia.org/wiki/ISO_8583
* </pre>
*/
@SuppressWarnings("serial")
public class ISO8583H2HMessage extends ISO8583Message {
private static HashMap<Integer, FieldParseInfo> fullSpecMap = null;
private static HashMap<Integer, String> fullFieldNameMap = null;
@Override
public MessageFactory<IsoMessage> createMessageFactory() {
MessageFactory<IsoMessage> mf = new MessageFactory<>();
mf.setCharacterEncoding(System.getProperty("file.encoding"));
mf.setForceStringEncoding(false);
return mf;
}
@Override
public HashMap<Integer, FieldParseInfo> getFullSpecMap(String encode) {
if (fullSpecMap != null) {
return fullSpecMap;
}
fullSpecMap = new HashMap<>();
fullSpecMap.put(2, FieldParseInfo.getInstance(IsoType.LLVAR, 19, encode));
fullSpecMap.put(3, FieldParseInfo.getInstance(IsoType.NUMERIC, 6, encode));
fullSpecMap.put(4, FieldParseInfo.getInstance(IsoType.NUMERIC, 12, encode));
fullSpecMap.put(6, FieldParseInfo.getInstance(IsoType.NUMERIC, 12, encode));
fullSpecMap.put(7, FieldParseInfo.getInstance(IsoType.DATE10, 10, encode));
fullSpecMap.put(11, FieldParseInfo.getInstance(IsoType.NUMERIC, 6, encode));
fullSpecMap.put(12, FieldParseInfo.getInstance(IsoType.TIME, 6, encode));
fullSpecMap.put(13, FieldParseInfo.getInstance(IsoType.DATE4, 4, encode));
fullSpecMap.put(14, FieldParseInfo.getInstance(IsoType.DATE_EXP, 4, encode));
fullSpecMap.put(15, FieldParseInfo.getInstance(IsoType.DATE4, 4, encode));
fullSpecMap.put(18, FieldParseInfo.getInstance(IsoType.NUMERIC, 4, encode));
fullSpecMap.put(22, FieldParseInfo.getInstance(IsoType.NUMERIC, 3, encode));
fullSpecMap.put(24, FieldParseInfo.getInstance(IsoType.NUMERIC, 3, encode));
fullSpecMap.put(25, FieldParseInfo.getInstance(IsoType.NUMERIC, 2, encode));
fullSpecMap.put(26, FieldParseInfo.getInstance(IsoType.NUMERIC, 2, encode));
fullSpecMap.put(32, FieldParseInfo.getInstance(IsoType.LLVAR, 11, encode));
fullSpecMap.put(33, FieldParseInfo.getInstance(IsoType.LLVAR, 11, encode));
fullSpecMap.put(35, FieldParseInfo.getInstance(IsoType.LLVAR, 37, encode));
fullSpecMap.put(37, FieldParseInfo.getInstance(IsoType.ALPHA, 12, encode));
fullSpecMap.put(38, FieldParseInfo.getInstance(IsoType.ALPHA, 6, encode));
fullSpecMap.put(39, FieldParseInfo.getInstance(IsoType.ALPHA, 2, encode));
fullSpecMap.put(40, FieldParseInfo.getInstance(IsoType.ALPHA, 3, encode));
fullSpecMap.put(41, FieldParseInfo.getInstance(IsoType.ALPHA, 8, encode));
fullSpecMap.put(42, FieldParseInfo.getInstance(IsoType.ALPHA, 15, encode));
fullSpecMap.put(43, FieldParseInfo.getInstance(IsoType.ALPHA, 40, encode));
fullSpecMap.put(48, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(49, FieldParseInfo.getInstance(IsoType.ALPHA, 3, encode));
// fullSpecMap.put(52, FieldParseInfo.getInstance(IsoType.BINARY, 64, encode));
fullSpecMap.put(52, FieldParseInfo.getInstance(IsoType.ALPHA, 16, encode)); // 표준X
fullSpecMap.put(54, FieldParseInfo.getInstance(IsoType.LLLVAR, 120, encode));
fullSpecMap.put(55, FieldParseInfo.getInstance(IsoType.LLLVAR, 765, encode));
fullSpecMap.put(60, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(61, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(62, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(63, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(70, FieldParseInfo.getInstance(IsoType.NUMERIC, 3, encode));
fullSpecMap.put(90, FieldParseInfo.getInstance(IsoType.NUMERIC, 42, encode));
fullSpecMap.put(98, FieldParseInfo.getInstance(IsoType.ALPHA, 25, encode));
fullSpecMap.put(102, FieldParseInfo.getInstance(IsoType.LLVAR, 28, encode));
fullSpecMap.put(103, FieldParseInfo.getInstance(IsoType.LLVAR, 28, encode));
fullSpecMap.put(120, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
// fullSpecMap.put(126, FieldParseInfo.getInstance(IsoType.LLLVAR, 999,
// encode));
fullSpecMap.put(126, FieldParseInfo.getInstance(IsoType.LLLLVAR, 9999, encode)); // 표준X
fullSpecMap.put(127, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(128, FieldParseInfo.getInstance(IsoType.BINARY, 64, encode));
return fullSpecMap;
}
public String getFieldName(int key) {
if (fullFieldNameMap == null) {
fullFieldNameMap = new HashMap<>();
fullFieldNameMap.put(1, "Bitmap, Secondary");
fullFieldNameMap.put(2, "Primary Account Number");
fullFieldNameMap.put(3, "Processing Code");
fullFieldNameMap.put(4, "Amount, Transaction");
fullFieldNameMap.put(6, "Amount, Cardholder Billing");
fullFieldNameMap.put(7, "Transmission Date and Time");
fullFieldNameMap.put(11, "System Trace Audit Number");
fullFieldNameMap.put(12, "Time, Local Transaction");
fullFieldNameMap.put(13, "Date, Local Transaction");
fullFieldNameMap.put(14, "Date, Expiration");
fullFieldNameMap.put(15, "Date, Settlement");
fullFieldNameMap.put(18, "Merchant Type");
fullFieldNameMap.put(22, "Point of Service Entry Mode");
fullFieldNameMap.put(24, "Network/Function Indentification Id");
fullFieldNameMap.put(25, "Point-Of-Service Condition Code");
fullFieldNameMap.put(26, "Point-Of-Service PIN Capture Code");
fullFieldNameMap.put(32, "Acquiring Institution Identification Code");
fullFieldNameMap.put(33, "Forwarding Institution Identification Code");
fullFieldNameMap.put(35, "Track 2 Data");
fullFieldNameMap.put(37, "Retrieval Reference Number");
fullFieldNameMap.put(38, "Authorization Identification Response");
fullFieldNameMap.put(39, "Response Code");
fullFieldNameMap.put(40, "Service Restriction Code");
fullFieldNameMap.put(41, "Card Acceptor Terminal Identification");
fullFieldNameMap.put(42, "Card Acceptor Identification");
fullFieldNameMap.put(43, "Card Acceptor Name and Location");
fullFieldNameMap.put(48, "Additional Data Private");
fullFieldNameMap.put(49, "Transaction Currency Code");
fullFieldNameMap.put(52, "Personal Identification Number");
fullFieldNameMap.put(54, "Amount, Additional");
fullFieldNameMap.put(55, "Integrated Circuit Card (ICC) System Related Data");
fullFieldNameMap.put(60, "Reserved Private F60");
fullFieldNameMap.put(61, "Reserved Private F61");
fullFieldNameMap.put(62, "Reserved Private F62");
fullFieldNameMap.put(63, "Reserved Private F63");
fullFieldNameMap.put(70, "Network Management Information Code");
fullFieldNameMap.put(90, "Original Data Element");
fullFieldNameMap.put(98, "Payee");
fullFieldNameMap.put(102, "Account Identification 1");
fullFieldNameMap.put(103, "Account Identification 2");
fullFieldNameMap.put(120, "Reserved Private F120");
fullFieldNameMap.put(126, "Reserved Private F126");
fullFieldNameMap.put(127, "Destination Institution Identification Code");
fullFieldNameMap.put(128, "Message Authentication Code Field");
}
return fullFieldNameMap.get(new Integer(key));
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(
"[ISO8583H2H message]");
sb.append("\n" + super.toString());
sb.append(
"\n");
return sb.toString();
}
}
@@ -0,0 +1,134 @@
package com.eactive.eai.custom.transformer.message;
import java.util.HashMap;
import com.eactive.eai.transformer.message.ISO8583Message;
import com.solab.iso8583.IsoMessage;
import com.solab.iso8583.IsoType;
import com.solab.iso8583.MessageFactory;
import com.solab.iso8583.parse.FieldParseInfo;
/**
* @formatter:off
* ISO 8583 Silverlake(전문) 형식의 데이터를 변환하기 위한 메시지.(For KB Bukopin)
* - Binary, EBCDIC
*
* [참조] https://en.wikipedia.org/wiki/ISO_8583
* @formatter:on
*/
@SuppressWarnings("serial")
public class ISO8583SilverlakeMessage extends ISO8583Message {
private static HashMap<Integer, FieldParseInfo> fullSpecMap = null;
private static HashMap<Integer, String> fullFieldNameMap = null;
private static String encode = "Cp1047"; // EBCDIC(1047)
public MessageFactory<IsoMessage> createMessageFactory() {
MessageFactory<IsoMessage> mf = new MessageFactory<>();
mf.setUseBinaryMessages(true);
mf.setUseBinaryBitmap(true);
mf.setVariableLengthFieldsInHex(false);
mf.setCharacterEncoding(encode);
mf.setForceStringEncoding(true);
return mf;
}
public HashMap<Integer, FieldParseInfo> getFullSpecMap(String enc) {
if (fullSpecMap != null) {
return fullSpecMap;
}
fullSpecMap = new HashMap<>();
fullSpecMap.put(2, FieldParseInfo.getInstance(IsoType.LLBCDBIN, 10, encode));
fullSpecMap.put(3, FieldParseInfo.getInstance(IsoType.BINARY, 3, encode));
fullSpecMap.put(4, FieldParseInfo.getInstance(IsoType.BINARY, 6, encode));
fullSpecMap.put(7, FieldParseInfo.getInstance(IsoType.BINARY, 5, encode));
fullSpecMap.put(11, FieldParseInfo.getInstance(IsoType.BINARY, 3, encode));
fullSpecMap.put(12, FieldParseInfo.getInstance(IsoType.BINARY, 3, encode));
fullSpecMap.put(13, FieldParseInfo.getInstance(IsoType.BINARY, 2, encode));
fullSpecMap.put(14, FieldParseInfo.getInstance(IsoType.BINARY, 2, encode));
fullSpecMap.put(18, FieldParseInfo.getInstance(IsoType.BINARY, 2, encode));
fullSpecMap.put(22, FieldParseInfo.getInstance(IsoType.BINARY, 2, encode));
fullSpecMap.put(23, FieldParseInfo.getInstance(IsoType.BINARY, 2, encode));
fullSpecMap.put(25, FieldParseInfo.getInstance(IsoType.BINARY, 1, encode));
fullSpecMap.put(35, FieldParseInfo.getInstance(IsoType.LLBCDBIN, 19, encode));
fullSpecMap.put(37, FieldParseInfo.getInstance(IsoType.ALPHA, 12, encode));
fullSpecMap.put(38, FieldParseInfo.getInstance(IsoType.ALPHA, 6, encode));
fullSpecMap.put(39, FieldParseInfo.getInstance(IsoType.ALPHA, 2, encode));
fullSpecMap.put(41, FieldParseInfo.getInstance(IsoType.ALPHA, 8, encode));
fullSpecMap.put(42, FieldParseInfo.getInstance(IsoType.ALPHA, 15, encode));
fullSpecMap.put(43, FieldParseInfo.getInstance(IsoType.ALPHA, 40, encode));
fullSpecMap.put(47, FieldParseInfo.getInstance(IsoType.LLLVAR, 256, encode));
fullSpecMap.put(48, FieldParseInfo.getInstance(IsoType.LLLVAR, 256, encode));
fullSpecMap.put(52, FieldParseInfo.getInstance(IsoType.BINARY, 8, encode));
fullSpecMap.put(54, FieldParseInfo.getInstance(IsoType.LLLVAR, 120, encode));
fullSpecMap.put(55, FieldParseInfo.getInstance(IsoType.LLLVAR, 255, encode));
fullSpecMap.put(57, FieldParseInfo.getInstance(IsoType.LLLVAR, 255, encode));
fullSpecMap.put(58, FieldParseInfo.getInstance(IsoType.LLLVAR, 255, encode));
fullSpecMap.put(60, FieldParseInfo.getInstance(IsoType.LLLVAR, 120, encode));
fullSpecMap.put(61, FieldParseInfo.getInstance(IsoType.LLLVAR, 120, encode));
fullSpecMap.put(62, FieldParseInfo.getInstance(IsoType.LLLVAR, 512, encode));
fullSpecMap.put(63, FieldParseInfo.getInstance(IsoType.LLLVAR, 512, encode));
fullSpecMap.put(120, FieldParseInfo.getInstance(IsoType.LLLVAR, 700, encode));
fullSpecMap.put(121, FieldParseInfo.getInstance(IsoType.LLLVAR, 500, encode));
fullSpecMap.put(122, FieldParseInfo.getInstance(IsoType.LLLVAR, 350, encode));
fullSpecMap.put(123, FieldParseInfo.getInstance(IsoType.LLLVAR, 999, encode));
fullSpecMap.put(124, FieldParseInfo.getInstance(IsoType.LLLVAR, 450, encode));
fullSpecMap.put(125, FieldParseInfo.getInstance(IsoType.LLLVAR, 255, encode));
return fullSpecMap;
}
public String getFieldName(int key) {
if (fullFieldNameMap == null) {
fullFieldNameMap = new HashMap<>();
fullFieldNameMap.put(1, "Secondary Bit Map");
fullFieldNameMap.put(2, "Primary Account Number");
fullFieldNameMap.put(3, "Processing code");
fullFieldNameMap.put(4, "Amount,transaction");
fullFieldNameMap.put(7, "Transmission date & time");
fullFieldNameMap.put(11, "System audit trace number");
fullFieldNameMap.put(12, "Time, local transaction");
fullFieldNameMap.put(13, "Date, local transaction");
fullFieldNameMap.put(14, "Date, expiration");
fullFieldNameMap.put(18, "Merchant type");
fullFieldNameMap.put(22, "POS entry mode");
fullFieldNameMap.put(23, "Card sequence number");
fullFieldNameMap.put(25, "POS condition code");
fullFieldNameMap.put(35, "Track 2 data");
fullFieldNameMap.put(37, "Retrieval reference number");
fullFieldNameMap.put(38, "Authorisation ID response");
fullFieldNameMap.put(39, "Response code");
fullFieldNameMap.put(41, "Terminal ID");
fullFieldNameMap.put(42, "Card acceptor ID");
fullFieldNameMap.put(43, "Card acceptor name/location");
fullFieldNameMap.put(47, "Private Use");
fullFieldNameMap.put(48, "Request header");
fullFieldNameMap.put(52, "PIN data");
fullFieldNameMap.put(54, "Private Use");
fullFieldNameMap.put(55, "ICC system related data");
fullFieldNameMap.put(57, "Private Use");
fullFieldNameMap.put(58, "Private Use");
fullFieldNameMap.put(60, "Private Use");
fullFieldNameMap.put(61, "Private Use");
fullFieldNameMap.put(62, "Private Use");
fullFieldNameMap.put(63, "Private Use");
fullFieldNameMap.put(120, "Private Use");
fullFieldNameMap.put(121, "Private Use");
fullFieldNameMap.put(122, "Response detail");
fullFieldNameMap.put(123, "Response detail");
fullFieldNameMap.put(124, "Private Use");
fullFieldNameMap.put(125, "Private Use");
}
return fullFieldNameMap.get(new Integer(key));
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("[ISO8583 Silverlake message]");
sb.append("\n" + super.toString());
sb.append("\n");
return sb.toString();
}
}
@@ -0,0 +1,76 @@
package com.eactive.eai.rms.bap.adaptor.socket;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
@Controller
public class BapConnSessionController extends BapBaseAnnotationController {
@RequestMapping(value= "/bap/adapter/socket/connStatus.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
@RequestMapping(value= "/bap/adapter/socket/connStatus.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request) throws Exception {
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.socket.SocketSessionCommand","");
Map<String, Object> resultMap = new HashMap<String, Object>();
HashMap<String, Object> returnMap = agentUtilService.broadcast(command);
Iterator<String> iter = returnMap.keySet().iterator();
String svrName = iter.next();
Object object = returnMap.get(svrName);
if ( object != null && ( object instanceof List ) ){
@SuppressWarnings("unchecked")
List<Map<String, Serializable>> list = (List<Map<String, Serializable>>)object;
resultMap.put("rows" , list);
}
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/adapter/socket/connStatus.json", params = "cmd=TRANSACTION")
public ModelAndView control(HttpServletRequest request, String startStop, String uuid) throws Exception {
String[] args = new String[4];
args[0] = startStop;
args[1] = "";
args[2] = "";
args[3] = uuid;
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.socket.SocketStartStopCommand",args);
HashMap<String, Object> resultMap = agentUtilService.broadcast(command);
Iterator<String> iter = resultMap.keySet().iterator();
String svrName = iter.next();
String message = (String)resultMap.get(svrName);
Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("result" , message);
ModelAndView modelAndView = new ModelAndView("jsonView",returnMap);
return modelAndView;
}
}
@@ -0,0 +1,53 @@
package com.eactive.eai.rms.bap.adaptor.socket;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
@Controller
public class BapInstStatusController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapInstStatusService")
private BapInstStatusService bapInstStatusService;
@RequestMapping(value= "/bap/adapter/socket/instStatus.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/adapter/socket/instStatus.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request) throws Exception {
HashMap<String, Object> map = bapInstStatusService.selectList();
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
}
@@ -0,0 +1,18 @@
package com.eactive.eai.rms.bap.adaptor.socket;
import java.util.HashMap;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapInstStatusDao")
public class BapInstStatusDao extends SqlMapClientTemplateDao {
@SuppressWarnings({ "deprecation", "unchecked" })
public List<HashMap<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return template.queryForList("BapInstStatus.findInstStatusList", param);
}
}
@@ -0,0 +1,30 @@
package com.eactive.eai.rms.bap.adaptor.socket;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapInstStatusService")
public class BapInstStatusService extends BapBaseService {
@Autowired
@Qualifier("bapInstStatusDao")
private BapInstStatusDao bapInstStatusDao;
public HashMap<String, Object> selectList() throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
List<HashMap<String, Object>> list = bapInstStatusDao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
return map;
}
}
@@ -0,0 +1,80 @@
package com.eactive.eai.rms.bap.adaptor.socket;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
@Controller
public class BapServerSocketController extends BapBaseAnnotationController {
@RequestMapping(value= "/bap/adapter/socket/serverStatus.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
@RequestMapping(value= "/bap/adapter/socket/serverStatus.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request) throws Exception {
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.socket.SocketServerCommand","");
Map<String, Object> returnMap = agentUtilService.broadcast(command);
Iterator<String> iter = returnMap.keySet().iterator();
List<Map<String, Serializable>> listAll = new ArrayList<Map<String, Serializable>>();
while ( iter.hasNext() ) {
String svrName = iter.next();
try {
@SuppressWarnings("unchecked")
List<Map<String, Serializable>> list = (List<Map<String, Serializable>>)returnMap.get(svrName);
listAll.addAll(list);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("rows" , listAll);
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/adapter/socket/serverStatus.json", params = "cmd=TRANSACTION")
public ModelAndView control(HttpServletRequest request, String startStop, String group, String adapter) throws Exception {
String[] args = new String[3];
args[0] = startStop;
args[1] = group;
args[2] = adapter;
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.socket.SocketStartStopCommand",args);
HashMap<String, Object> resultMap = agentUtilService.broadcast(command);
Iterator<String> iter = resultMap.keySet().iterator();
String svrName = iter.next();
String message = (String)resultMap.get(svrName);
Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("result" , message);
ModelAndView modelAndView = new ModelAndView("jsonView",returnMap);
return modelAndView;
}
}
@@ -0,0 +1,16 @@
package com.eactive.eai.rms.bap.common.base;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.eactive.eai.rms.common.base.BaseService;
import com.eactive.eai.rms.onl.common.service.AgentUtilService;
public class BapBaseService extends BaseService{
/** The agentUtil service. */
@Autowired
@Qualifier("bapAgentUtilService")
public AgentUtilService agentUtilService;
}
@@ -0,0 +1,263 @@
package com.eactive.eai.rms.bap.common.service;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.agent.command.Command;
import com.eactive.eai.rms.bap.manage.comm.server.BapServerService;
import com.eactive.eai.rms.onl.common.service.AgentUtilService;
/**
* 1. 기능 : 등록된 EAI Server 에 Command를 broadcast
* 2. 처리 개요 : 등록된 EAI Server 에 Command를 broadcast
* 3. 주의사항
*
* @see 관련 기능을 참조
* @since
*
*/
@Service("bapAgentUtilService")
public class BapAgentUtilServiceImpl implements AgentUtilService {
private final Logger logger = Logger.getLogger(getClass());
final static String SERVLET_URL = "/BAPWeb/WebAgent";
private static int DEFAULT_CONNECT_TIME_OUT = 300; // 0 값을 입력하면 디폴트 값이 쓰이는 듯.
/**
* eaiServerInfoService 를 대체한다.
*/
@Autowired
@Qualifier("bapServerService")
private BapServerService bapServerService;
/**
* 1. 기능 : AgentUtil 기본 생성자
* 2. 처리 개요 :
* 3. 주의사항
*
* @param
* @return
* @exception
**/
public BapAgentUtilServiceImpl() {
}
/**
* Active-Standby 형태 일때 ip , port는 같고 인스턴스및 host가 다를경우 때문에 getEaiServerIpPortForActiveStandby 를 사용
* 메모리 동기화시 한곳만 동기화 하면되고 데이터는 2개의 row가 존재함
*
* @return
* @throws Exception
*/
private HashMap<String, String> getAllSvrUrl(String instanceName) throws Exception {
HashMap<String, String> resultMap = new HashMap<String, String>();
//HashMap<String, Object> map = bapServerService.getEaiServerIpPortForActiveStandby();
List<Map<String, Object>> list = bapServerService.getEaiServerIpPort();
if (list != null) {
for (int inx = 0; inx < list.size(); inx++) {
Map<String, Object> map = list.get(inx);
if ( instanceName == null || map.get("EAISVRINSTNM").toString().equals(instanceName)) {
String svrIp = (String) map.get("EAISVRIP");
String svrPort = (String) map.get("EAISVRLSNPORT");
StringBuffer urlBuf = new StringBuffer();
urlBuf.append("http://");
urlBuf.append(svrIp + ":" + svrPort);
urlBuf.append(SERVLET_URL);
resultMap.put( (String) map.get("EAISVRINSTNM"), urlBuf.toString());
}
}
}
return resultMap;
}
public HashMap<String, Object> broadcast(String serviceKey, Command command) throws Exception {
return broadcast(command);
}
public HashMap<String, Object> broadcast(Command command) throws Exception {
return broadcast(command, null);
}
public HashMap<String, Object> broadcast(Command command, String instanceName) throws Exception {
URLConnection urlCon;
HashMap<String, String> servers = getAllSvrUrl(instanceName);
HashMap<String, Object> returnValue = new HashMap<String, Object>();
if (servers != null) {
Iterator<String> it = servers.keySet().iterator();
String svrName = "";
String url = "";
Object response = "";
while (it.hasNext()) {
svrName = it.next();
url = servers.get(svrName);
urlCon = getURLConnection(url);
if( logger.isDebugEnabled() ) {
logger.debug("메모리동기화:cmd=" + command.getClass().getSimpleName() + " ,url=" + url);
}
try {
if(urlCon != null){ //취약점소스 수정 2020.08.27
response = sendCommand(urlCon, command);
}
returnValue.put(svrName, response);
} catch (Exception e) {
logger.error("AgentUtil] broadcast Excpetion - " + url
+ e.getMessage());
returnValue.put(svrName, e.getMessage());
}
}
} else {
logger.error("AgentUtil] broadcast Error. - url is null");
}
return returnValue;
}
/**
* 1. 기능 : 해당 URLConnection으로 command 전송 처리 결과를 반환
* 2. 처리 개요 : 해당 URLConnection으로 command 전송하고 처리 결과를 반환
* 3. 주의사항
*
* @param urlCon 연결할 URLConnection
* @param command 전송할 Command
* @return String 처리된 결과
* @exception Exception
**/
private Object sendCommand(URLConnection urlCon, Command command)
throws Exception {
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
Object response = "";
// 2009.05.22 서버가 다운되어 있는 경우 응답시간이 너무 길어서 timeout 값을 지정함.
// 2009.07.09 타임아웃 값을 3000 -> 100 으로 조정함.
urlCon.setConnectTimeout(DEFAULT_CONNECT_TIME_OUT);
try {
oos = new ObjectOutputStream(urlCon.getOutputStream());
oos.writeObject(command);
oos.flush();
if( logger.isDebugEnabled() ) {
logger.debug("AgentUtil] SendCommand - "
+ urlCon.getURL().toString());
}
ois = new ObjectInputStream(urlCon.getInputStream());
response = ois.readObject();
} catch (ConnectException e) {
logger.error("AgentUtil] sendCommand ConnectException. - "
+ urlCon.getURL() + " can't Connect" + e.getMessage());
throw e;
} catch (IOException e2) {
//e2.printStackTrace();
logger.error("AgentUtil] sendCommand IOException. - "
+ urlCon.getURL() + " error=" + e2.getMessage());
throw e2;
} catch (Exception e) {
logger.error("AgentUtil] sendCommand Exception. - "
+ urlCon.getURL() + e.getMessage());
throw e;
} finally {
try {
if (oos != null) {
oos.close();
}
if (ois != null) {
ois.close();
}
} catch (IOException e) {
oos = null;
logger.error("AgentUtil] sendCommand Error. - "
+ e.getMessage());
}
}
return response;
}
/**
* 1. 기능 : 지정된 url의 URLConnection 생성
* 2. 처리 개요 : 지정된 url의 URLConnection 생성
* 3. 주의사항
*
* @param url URLConnection을 생성을 위한 url
* @return URLConnection 생성된 URLConnection
* @exception
**/
private URLConnection getURLConnection(String url) {
URL u = null;
try {
u = new URL(url);
} catch (MalformedURLException e) {
logger.error( e );
}
HttpURLConnection conn = null;
try {
conn = (HttpURLConnection) u.openConnection();
} catch (ConnectException ce) {
logger.error( ce );
} catch (IOException ie) {
logger.error( ie );
} catch (Exception e) {
logger.error( e );
}
if (conn != null) {
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
} else {
logger.error("AgentUtil] getURLConnection Error. - " + url
+ " 의 HttpURLConnection 을 생성할 수 없습니다.");
}
try {
if (conn != null) {
conn.setRequestMethod("POST");
}
} catch (ProtocolException pe) {
logger.error("AgentUtil] getURLConnection ProtocolException. - "
+ pe.getMessage());
}
if (conn != null) {
conn.setRequestProperty("Content-type", "application/octet-stream");
}
return conn;
}
}
@@ -0,0 +1,48 @@
package com.eactive.eai.rms.bap.common.service;
import java.util.HashMap;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapLogTableDao")
public class BapLogTableDao extends SqlMapClientTemplateDao {
final Logger logger = Logger.getLogger(BapLogTableDao.class);
@SuppressWarnings("deprecation")
public long [] clearLogTable(HashMap<String, String> paramMap, int keyLevel) {
long [] cnt = new long[3];
cnt[0] = 0;
cnt[1] = 0;
cnt[2] = 0;
for (int inx = 0; inx < power( 16, keyLevel); inx++) {
paramMap.put("uuid", toHex(inx,keyLevel));
cnt[0] += this.template.update("BapLogDelete.clearStage", paramMap);
cnt[1] += this.template.update("BapLogDelete.clearNoFileStage", paramMap);
cnt[2] += this.template.update("BapLogDelete.clearNoFileMaster", paramMap);
}
return cnt;
}
private int power( int x, int y ){
if ( y == 1 )
return x;
return x * power( x, y -1);
}
private String toHex( int val, int len){
StringBuffer sb = new StringBuffer();
String sval = Integer.toHexString(val);
for ( int inx = 0; inx < len - sval.length(); inx++){
sb.append('0');
}
sb.append(sval);
return sb.toString();
}
}
@@ -0,0 +1,102 @@
package com.eactive.eai.rms.bap.common.service;
import java.util.HashMap;
import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.quartz.SchedulerException;
import org.springframework.context.ApplicationContext;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
public class BapLogTableDeleteJob implements Job {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(BapLogTableDeleteJob.class);
private transient BapLogTableDeleteService bapLogTableDeleteService;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobKey jobKey = context.getJobDetail().getKey();
String data ="";
for(String key : context.getJobDetail().getJobDataMap().getKeys()){
data =data + key +"="+context.getJobDetail().getJobDataMap().getString(key) + ",";
}
logger.error("excute TestJob "+jobKey + "data ("+data+")");
ApplicationContext appContext = null;
try {
appContext = (ApplicationContext)context.getScheduler().getContext().get("applicationContext");
} catch (SchedulerException e) {
logger.error("applicationContext get module error",e);
return ;
}
bapLogTableDeleteService = (BapLogTableDeleteService)appContext.getBean("bapLogTableDeleteService");
logger.info("START BAP_EMPTY_LOG_TABLE_SCHEDULER...");
int keyLevel = 2;
int nofileStart = 7;
int nofileEnd = 3;
int stageStart = 37;
int stageEnd = 30;
try{
keyLevel = Integer.parseInt(context.getJobDetail().getJobDataMap().getString("key.level"));
}catch ( Exception e) {
logger.error("keyLevel error",e);
}
try{
nofileStart = Integer.parseInt(context.getJobDetail().getJobDataMap().getString("nofile.start"));
}catch ( Exception e) {
logger.error("nofileStart error",e);
}
try{
nofileEnd = Integer.parseInt(context.getJobDetail().getJobDataMap().getString("nofile.end"));
}catch ( Exception e) {
logger.error("nofileEnd error",e);
}
try{
stageStart = Integer.parseInt(context.getJobDetail().getJobDataMap().getString("stage.start"));
}catch ( Exception e) {
logger.error("stageStart error",e);
}
try{
stageEnd = Integer.parseInt(context.getJobDetail().getJobDataMap().getString("stage.end"));
}catch ( Exception e) {
logger.error("stageEnd error",e);
}
// DataSourceType dataType = DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.ISG);
DataSourceType dataType = DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.BAP);
DataSourceContextHolder.setDataSourceType(dataType);
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("nofileStart", DatetimeUtil.getDate(-1 * nofileStart)+"0000");
paramMap.put("nofileEnd", DatetimeUtil.getDate(-1 * nofileEnd)+"9999");
paramMap.put("stageStart", DatetimeUtil.getDate(-1 * stageStart)+"0000");
paramMap.put("stageEnd", DatetimeUtil.getDate(-1 * stageEnd)+"9999");
try{
long [] cnt = bapLogTableDeleteService.clearLogTable(paramMap, keyLevel );
logger.info("[BAP_EMPTY_LOG_TABLE_SCHEDULER]스테이지 로그 삭제 건수:" + cnt[0]);
logger.info("[BAP_EMPTY_LOG_TABLE_SCHEDULER]파일없는 스테이지 로그 삭제 건수:" + cnt[1]);
logger.info("[BAP_EMPTY_LOG_TABLE_SCHEDULER]파일없는 마스터 로그 삭제 건수:" + cnt[2]);
}catch ( Exception e){
logger.error("...BAP_EMPTY_LOG_TABLE_SCHEDULER error="+e.getMessage(),e);
}
logger.info("...BAP_EMPTY_LOG_TABLE_SCHEDULER END");
}
}
@@ -0,0 +1,24 @@
package com.eactive.eai.rms.bap.common.service;
import java.util.HashMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service("bapLogTableDeleteService")
public class BapLogTableDeleteService {
/**
* Logger for this class
*/
@Autowired
@Qualifier("bapLogTableDao")
private BapLogTableDao bapLogTableDao;
public long [] clearLogTable(HashMap<String, String> paramMap, int keyLevel) {
return bapLogTableDao.clearLogTable(paramMap, keyLevel);
}
}
@@ -0,0 +1,386 @@
package com.eactive.eai.rms.bap.loader.controller;
import java.io.File;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.Command;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.bap.loader.service.TransactionBAPService;
import com.eactive.eai.rms.common.context.MonitoringContext;
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.common.interceptor.InterceptorSkipController;
import com.eactive.eai.rms.onl.common.service.AgentUtilService;
import com.eactive.eai.rms.onl.common.util.DateUtil;
import com.eactive.eai.rms.onl.common.util.FileWriteUtil;
import com.eactive.eai.rms.onl.common.util.SimpleFileUtils;
@Controller
@RequestMapping(value = { "/loaderBAP.do", "/loaderBAP.json" })
public class LoaderBAPController implements InterceptorSkipController {
private static final Logger logger = Logger.getLogger(LoaderBAPController.class);
private static final String resultView = "common/loadResult";
@Autowired
private MonitoringContext monitoringContext;
@Autowired
@Qualifier("loaderBAPService")
private TransactionBAPService loaderBAPService;
/** The agentUtil service. */
@Autowired
@Qualifier("bapAgentUtilService")
public AgentUtilService agentUtilService;
/**
* 형상관리에서 layout을 로딩한다. *
*
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
@RequestMapping(params = { "cmd=fileinfo", "control=upload" })
public ModelAndView fileInfoLoad(HttpServletRequest request, HttpServletResponse response, String method,
String serviceType, String bzwkDstcd, String fileName) throws Exception {
long sTotalTime = System.currentTimeMillis();
boolean isJSONResult = false;
if (request.getRequestURI().endsWith("json")) {
isJSONResult = true;
}
String iomapPath = "";
if ("aio".equals(method)) {
iomapPath = monitoringContext.getStringProperty(MonitoringContext.IOMAP_UPLOAD_AIO_PATH);
} else {
iomapPath = monitoringContext.getStringProperty(MonitoringContext.IOMAP_UPLOAD_PATH);
}
String savePath = monitoringContext.getStringProperty(MonitoringContext.IOMAP_AFTER_UPLOAD_PATH);
// String subPath = serviceType + File.separator + bzwkDstcd + File.separator +
// FileWriteUtil.LAYOUT + File.separator;
String subPath = serviceType + File.separator + bzwkDstcd + File.separator;
String path = iomapPath + subPath;
// if (!DataSourceTypeManager.isOnlineForName(serviceType)){
// HashMap<String,String> result = new HashMap<String,String>();
// result.put("status", "error");
// result.put("message", "정의 되지 않은 서비스 타입입니다. 받은 서비스 타입="+ serviceType);
// if (isJSONResult){
// return new ModelAndView("jsonView", result);
// }else{
// return new ModelAndView(resultView, "result", result);
// }
// }
try {
if (serviceType != null) {
//request.getSession().setAttribute(CommonConstants.SERVICE_TYPE_KEY, serviceType);
DataSourceType dt = DataSourceTypeManager.getDataSourceType("BAP");
if (dt != null) { // 취약점소스 수정 2020.08.27
DataSourceContextHolder.setDataSourceType(dt);
loaderBAPService.insertFileInfoLoading(dt, path, fileName);
}
}
// logger.info("-----layout UpLoad Db Start-----");
long sTimeForDb = System.currentTimeMillis();
long eTimeForDb = System.currentTimeMillis();
long dbTime = eTimeForDb - sTimeForDb;
// logger.info("-----layout Upload Mem Start-----");
long sTimeForMem = System.currentTimeMillis();
HashMap result = syncResult(new CommonCommand("com.eactive.eai.agent.transformer.ReloadLayoutCommand"),
fileName);
long eTimeForMem = System.currentTimeMillis();
long memTime = eTimeForMem - sTimeForMem;
// logger.info("2:Memory Processed Time : " + (eTimeForMem-sTimeForMem));
// HashMap result = new HashMap();
// result.put("status", "success");
long eTotalTime = System.currentTimeMillis();
long totTime = eTotalTime - sTotalTime;
// logger.info(" FILENAME DB MEM TOTAL" );
logger.info("LoaderLogging Layout " + fileName + " " + dbTime + " " + memTime
+ " " + totTime);
// file move
if (!((String) result.get("status")).equals("error")) {
String today = DateUtil.getDateTime("yyyy-MM-dd");
String newPath = savePath + today + File.separator + subPath;
try {
Boolean isMoved = SimpleFileUtils.moveFile(path, newPath, fileName, fileName);
if (isMoved) {
logger.info(fileName + " is moved to " + newPath);
} else {
logger.info(fileName + " is moved NOT to " + newPath);
}
} catch (Exception e) {
logger.info("Failed to move File");
}
}
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
// return new ModelAndView(resultView, "result", result.toString());
} catch (Exception e) {
HashMap result = new HashMap();
result.put("status", "error");
result.put("message", e.getMessage());
logger.error("fileInfo Load Exception " + e.getMessage(), e);
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
}
}
private HashMap syncResult(Command command, String fileName) throws Exception {
// layout 동기화 service 에는 transaction 때문에 문제의 소지가 있음
HashMap receive = new HashMap();
HashMap result = new HashMap();
if (fileName != null) {
String[] name = fileName.split("\\.");
if (name.length > 0 && name[0] != null) {
command.setArgs(name[0]);
receive = agentUtilService.broadcast(command);
}
String status = "success";
for (Object o : receive.keySet()) {
String key = (String) o;
if (receive.get(key) == null || !"success".equals(receive.get(key))) {
status = "error";
break;
}
}
result.put("status", status);
result.put("message", receive.toString());
if (logger.isInfoEnabled()) {
logger.info(this.getClass().toString() + "] command = " + command.getClass().toString() + " fileName="
+ fileName + " status = " + status + " message = " + receive.toString());
}
}
return result;
}
/**
* 형상관리에서 파일정보를 download한다. *
*
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
@RequestMapping(params = { "cmd=fileinfo", "control=download" })
public ModelAndView fileInfoDownLoad(HttpServletRequest request, HttpServletResponse response, String serviceType,
String bzwkDstcd, String fileName) throws Exception {
String iomapPath = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DOWNLOAD_PATH);
String path = iomapPath + serviceType + File.separator + bzwkDstcd + File.separator + "fileinfo"
+ File.separator;
boolean isJSONResult = false;
if (request.getRequestURI().endsWith("json")) {
isJSONResult = true;
}
// TODO HD 에러저리 확인 적용 필요
// if (!DataSourceTypeManager.isOnlineForName(serviceType)){
// HashMap<String,String> result = new HashMap<String,String>();
// result.put("status", "error");
// result.put("message", "정의 되지 않은 서비스 타입입니다. 받은 서비스 타입="+ serviceType);
// if (isJSONResult){
// return new ModelAndView("jsonView", result);
// }else{
// return new ModelAndView(resultView, "result", result);
// }
// }
try {
if (fileName != null && serviceType != null) {
String[] temp = fileName.split("[.]");
String serviceName = temp[0];
//request.getSession().setAttribute(CommonConstants.SERVICE_TYPE_KEY, serviceType);
DataSourceType dt = DataSourceTypeManager.getDataSourceType("BAP");
if (dt != null) {
DataSourceContextHolder.setDataSourceType(dt);
loaderBAPService.fileInfoDownLoading(dt, path, serviceName);
}
}
HashMap<String, String> result = new HashMap<String, String>();
String status = "success";
result.put("status", status);
result.put("message", "");
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result.toString());
}
} catch (Exception e) {
HashMap<String, String> result = new HashMap<String, String>();
result.put("status", "error");
result.put("message", e.getMessage());
logger.error("layout DownLoad Exception " + e.getMessage(), e);
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
}
}
/**
* 형상관리에서 table을 로딩한다. *
*
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
@RequestMapping(params = { "cmd=admin", "control=upload" })
public ModelAndView adminLoad(HttpServletRequest request, HttpServletResponse response, String serviceType,
String bzwkDstcd, String fileName) throws Exception {
String iomapPath = monitoringContext.getStringProperty(MonitoringContext.IOMAP_UPLOAD_PATH);
String path = iomapPath + serviceType + File.separator + bzwkDstcd + File.separator + FileWriteUtil.ADMIN
+ File.separator;
boolean isJSONResult = false;
if (request.getRequestURI().endsWith("json")) {
isJSONResult = true;
}
if (serviceType != null && !DataSourceTypeManager.isOnlineForName("BAP")) {
HashMap<String, String> result = new HashMap<String, String>();
result.put("status", "error");
result.put("message", "정의 되지 않은 서비스 타입입니다. 받은 서비스 타입=" + serviceType);
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
}
try {
if (serviceType != null) {
//request.getSession().setAttribute(CommonConstants.SERVICE_TYPE_KEY, serviceType);
DataSourceType dt = DataSourceTypeManager.getDataSourceType("BAP");
if (dt != null) {// 취약점소스 수정 2020.08.25
DataSourceContextHolder.setDataSourceType(dt);
loaderBAPService.insertTableLoading(dt, path, fileName);
}
}
HashMap result = new HashMap();
result.put("status", "success");
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
// return new ModelAndView(resultView, "result", result.toString());
} catch (Exception e) {
HashMap result = new HashMap();
result.put("status", "error");
result.put("message", e.getMessage());
logger.error("admin Load Exception " + e.getMessage(), e);
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
}
}
/**
* 형상관리에서 table을 download한다. *
*
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
@RequestMapping(params = { "cmd=admin", "control=download" })
public ModelAndView adminDownLoad(HttpServletRequest request, HttpServletResponse response, String serviceType,
String bzwkDstcd, String fileName) throws Exception {
String iomapPath = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DOWNLOAD_PATH);
String path = iomapPath + serviceType + File.separator + bzwkDstcd + File.separator + FileWriteUtil.ADMIN
+ File.separator;
boolean isJSONResult = false;
if (request.getRequestURI().endsWith("json")) {
isJSONResult = true;
}
if (!DataSourceTypeManager.isOnlineForName("BAP")) {
HashMap<String, String> result = new HashMap<String, String>();
result.put("status", "error");
result.put("message", "정의 되지 않은 서비스 타입입니다. 받은 서비스 타입=" + serviceType);
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
}
try {
if (fileName != null && serviceType != null) {
String[] temp = fileName.split("[.]");
String tableName = temp[0];
//request.getSession().setAttribute(CommonConstants.SERVICE_TYPE_KEY, serviceType);
DataSourceType dt = DataSourceTypeManager.getDataSourceType("BAP");
if (dt != null) {
DataSourceContextHolder.setDataSourceType(dt);
loaderBAPService.tableDownLoading(dt, path, tableName);
}
}
HashMap<String, String> result = new HashMap<String, String>();
String status = "success";
result.put("status", status);
result.put("message", "");
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
// return new ModelAndView(resultView, "result", result.toString());
} catch (Exception e) {
HashMap<String, String> result = new HashMap<String, String>();
result.put("status", "error");
result.put("message", e.getMessage());
logger.error("admin DownLoad Exception " + e.getMessage(), e);
if (isJSONResult) {
return new ModelAndView("jsonView", result);
} else {
return new ModelAndView(resultView, "result", result);
}
}
}
}
@@ -0,0 +1,69 @@
package com.eactive.eai.rms.bap.loader.controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.bap.loader.service.SearchBAPService;
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.common.interceptor.InterceptorSkipController;
@Controller
public class SearchBAPController implements InterceptorSkipController {
private static final Logger logger = Logger.getLogger(SearchBAPController.class);
@Autowired
@Qualifier("searchBAPService")
private SearchBAPService searchBAPService;
/**
* 형상관리에서 자원정보를 조회한다.
* *
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
@RequestMapping(value="/searchBAP.json",params="cmd=LIST")
public ModelAndView search(HttpServletRequest request, HttpServletResponse response
, String serviceType , @RequestParam HashMap<String,Object> paramMap ) throws Exception {
// if (!DataSourceTypeManager.isOnlineForName(serviceType)){
// HashMap<String,String> result = new HashMap<String,String>();
// result.put("status", "error");
// result.put("message", "정의 되지 않은 서비스 타입입니다. 받은 서비스 타입="+ serviceType);
// return new ModelAndView("jsonView",result);
// }
//serviceType 설정
if (serviceType != null) {
DataSourceType dt = DataSourceTypeManager.getDataSourceType("BAP");
if(dt != null){
DataSourceContextHolder.setDataSourceType(dt);
}
}
HashMap map = searchBAPService.selectBAPList( request,0, 0, paramMap);
Map resultMap = new HashMap();
//resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
}
@@ -0,0 +1,31 @@
package com.eactive.eai.rms.bap.loader.dao;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
import com.eactive.eai.rms.common.vo.SchemaIdVO;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@Repository("BapInterfaceDeployDao")
public class InterfaceDeployDao extends SqlMapClientTemplateDao {
public <T extends SchemaIdVO> T selectDeploy(Map<String, Object> paramMap, Class<T> deployClass) {
return (T) template.queryForObject("BapInterfaceDeploy.select" + deployClass.getSimpleName(), paramMap);
}
public <T extends SchemaIdVO> void deleteAllDeploy(Map<String, Object> paramMap, Class<T> deployClass) {
template.delete("BapInterfaceDeploy.deleteAll" + deployClass.getSimpleName(), paramMap);
}
public <T extends SchemaIdVO> void insertDeploy(T deploy) {
if (deploy == null) {
logger.info("deploy object is null. skip progress");
return;
}
template.insert("BapInterfaceDeploy.insert" + deploy.getClass().getSimpleName(), deploy);
}
}
@@ -0,0 +1,23 @@
package com.eactive.eai.rms.bap.loader.dao;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import com.eactive.eai.rms.common.datasource.DataSourceType;
/**
* The Class LayoutDao.
* <ul>
* <li>1. Function :</li>
* <li>2. Summary :</li>
* <li>3. Notification :</li>
* </ul>
*/
public interface LoaderBAPDao {
public int load(DataSourceType dt,String table, ArrayList list) ;
public List<LinkedHashMap> selectTableData( DataSourceType dataSourceType, String tableName, String key1, String param1 ) ;
}
@@ -0,0 +1,207 @@
package com.eactive.eai.rms.bap.loader.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
import com.eactive.eai.rms.common.datasource.DataSourceType;
/**
* The Class LayoutDao.
* <ul>
* <li>1. Function :</li>
* <li>2. Summary :</li>
* <li>3. Notification :</li>
* </ul>
*/
@Repository("loaderBAPDao")
@SuppressWarnings("unchecked")
public class LoaderBAPDaoImpl extends SqlMapClientTemplateDao implements LoaderBAPDao {
public int load(DataSourceType dt,final String table, ArrayList list) {
// DataSourceContextHolder.setDataSourceType(dt);
int count = 0;
HashMap hm = (HashMap)list.get(0);
hm.put("schemaId", dt.getSchema());
this.template.update("LoaderBAP.delete"+table, hm);
for (int i=0;i<list.size();i++){
hm = (HashMap)list.get(i);
hm.put("schemaId", dt.getSchema());
count = count + this.template.update("LoaderBAP.insert"+table, hm);
}
return count;
}
// // Adapter Loading Sync
// public int adapterLoadSync(DataSourceType dt,final String table, ArrayList list) {
//// DataSourceContextHolder.setDataSourceType(dt);
// int count = 0;
// HashMap hm = (HashMap)list.get(0);
// hm.put("schemaId", dt.getSchema());
//
// if(hm.containsKey("ADPTRUSEYN") && !"0".equals(hm.get("ADPTRUSEYN")))
// hm.put("ADPTRUSEYN", "0");
//
// this.template.update("Loader.delete"+table, hm);
//
// for (int i=0;i<list.size();i++){
// hm = (HashMap)list.get(i);
// hm.put("schemaId", dt.getSchema());
// count = count + this.template.update("Loader.insert"+table, hm);
// }
// return count;
// }
// public int delete(DataSourceType dt,final String table, HashMap hm) {
//// DataSourceContextHolder.setDataSourceType(dt);
// //int count = 0;
// hm.put("schemaId", dt.getSchema());
// return this.template.update("Loader.delete"+table, hm);
// }
//
//
// public int updateNode(DataSourceType dt,String instName) {
// //int count = 0;
//// DataSourceContextHolder.setDataSourceType(dt);
//
// HashMap hm = new HashMap();
// hm.put("schemaId", dt.getSchema());
// hm.put("instName", instName);
// return this.template.update("Loader.updateNode", hm);
// }
//
// public int updateInst(DataSourceType dt,String type, String value) {
// //int count = 0;
//// DataSourceContextHolder.setDataSourceType(dt);
//
// HashMap hm = new HashMap();
// hm.put("schemaId", dt.getSchema());
// hm.put("type", type);
// hm.put("value", value);
// return this.template.update("Loader.updateInst", hm);
// }
// public List<LinkedHashMap> selectTable(DataSourceType dt,String tableName ,String key, String value) {
// //int count = 0;
//// DataSourceContextHolder.setDataSourceType(dt);
//
// HashMap hm = new HashMap();
// hm.put("schemaId", dt.getSchema());
// hm.put("tableName", tableName);
// hm.put("key", key);
// hm.put("value", value);
// return this.template.queryForList("Loader.selectTable", hm);
// }
// public int insertTable(DataSourceType dt,final String tableName, ArrayList list) {
//// DataSourceContextHolder.setDataSourceType(dt);
// int count = 0;
// HashMap hm = new HashMap();
// hm.put("schemaId", dt.getSchema());
// hm.put("tableName", tableName);
// this.template.update("Loader.deleteTable", hm);
//
// LinkedHashMap column = (LinkedHashMap)((LinkedHashMap)list.get(0)).clone();
// ArrayList columnList = new ArrayList();
// for (Object o:column.keySet()){
// String key = (String)o;
// columnList.add(key);
// }
//
// LinkedHashMap<String,Object> value = new LinkedHashMap<String,Object>();
// for (int i=0;i<list.size();i++){
// value = (LinkedHashMap)list.get(i);
//
// ArrayList valueList = new ArrayList();
// for (Object o:value.keySet()){
// String key = (String)o;
// valueList.add(value.get(key));
// }
// hm.put("schemaId", dt.getSchema());
// hm.put("tableName", tableName);
// hm.put("columnList", columnList);
// hm.put("valueList", valueList);
// count = count + this.template.update("Loader.insertTable", hm);
// }
// return count;
// }
//TODO hd 참고 후 삭제
//List<LinkedHashMap> listTR07 = inboundErrorInfoDao.selectTableData(dt,"TSEAITR07", "LoutName", fileName);
public List<LinkedHashMap> selectTableData( DataSourceType dataSourceType, String tableName, String key1, String param1 ) {
logger.error("@@@@@@@@@@@@@@@selectTableData");
final HashMap param = new HashMap();
param.put("tableName", tableName);
param.put("key1", key1);
param.put("param1", param1);
return template.queryForList("LoaderBAP.selectTableData", param);
// return new SpecifiedDataSourceExecutor<List<LinkedHashMap>>(
// dataSourceType) {
// protected List<LinkedHashMap> doExecute() throws Exception {
// return template.queryForList("Loader.selectTableData", param);
// }
// }.execute();
}
// public List<LinkedHashMap> selectTableDataLike( DataSourceType dataSourceType, String tableName, String key1, String param1 ) {
// final HashMap param = new HashMap();
//
// param.put("tableName", tableName);
// param.put("key1", key1);
// param.put("param1", param1);
//
// return template.queryForList("Loader.selectTableDataLike", param);
//
//// return new SpecifiedDataSourceExecutor<List<LinkedHashMap>>(
//// dataSourceType) {
//// protected List<LinkedHashMap> doExecute() throws Exception {
//// return template.queryForList("Loader.selectTableDataLike", param);
//// }
//// }.execute();
// }
// public List<LinkedHashMap> selectDataForTableName( DataSourceType dataSourceType, String tableName, String key1, String param1 ) {
// final HashMap param = new HashMap();
// param.put("key1", key1);
// param.put("param1", param1);
//
// return template.queryForList("Loader.selectDataFor"+tableName, param);
//
//// return new SpecifiedDataSourceExecutor<List<LinkedHashMap>>(
//// dataSourceType) {
//// protected List<LinkedHashMap> doExecute() throws Exception {
//// return template.queryForList("Loader.selectDataFor"+tableName, param);
//// }
//// }.execute();
// }
// public List<LinkedHashMap> selectTableDataForListValue( DataSourceType dataSourceType, String tableName, String key1, List<String> param1 ) {
// final HashMap param = new HashMap();
// param.put("tableName", tableName);
// param.put("key1", key1);
// param.put("param1", param1);
//
// return template.queryForList("Loader.selectTableDataForListValue", param);
//
//// return new SpecifiedDataSourceExecutor<List<LinkedHashMap>>(
//// dataSourceType) {
//// protected List<LinkedHashMap> doExecute() throws Exception {
//// return template.queryForList("Loader.selectTableDataForListValue", param);
//// }
//// }.execute();
// }
// public List<LinkedHashMap> selectSnaAdpApList( DataSourceType dataSourceType, String param1 ) {
// final HashMap param = new HashMap();
// param.put("param1", param1);
//
// return template.queryForList("Loader.selectSnaAdpApList", param);
//
//// return new SpecifiedDataSourceExecutor<List<LinkedHashMap>>(
//// dataSourceType) {
//// protected List<LinkedHashMap> doExecute() throws Exception {
//// return template.queryForList("Loader.selectSnaAdpApList", param);
//// }
//// }.execute();
// }
}
@@ -0,0 +1,26 @@
package com.eactive.eai.rms.bap.loader.dao;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
/**
* 자원 조회
* <ul>
* <li>1. Function :</li>
* <li>2. Summary :</li>
* <li>3. Notification :</li>
* </ul>
*/
@Repository("searchBAPDao")
@SuppressWarnings("unchecked")
public class SearchBAPDao extends SqlMapClientTemplateDao {
public List<LinkedHashMap> selectList(HashMap<String,Object> param) {
return this.template.queryForList("SearchBAP.selectList", param);
}
}
@@ -0,0 +1,52 @@
package com.eactive.eai.rms.bap.loader.intf;
import com.eactive.eai.rms.bap.loader.dao.InterfaceDeployDao;
import com.eactive.eai.rms.bap.loader.dao.LoaderBAPDao;
import com.eactive.eai.rms.bap.loader.dao.SearchBAPDao;
import com.eactive.eai.rms.bap.loader.intf.deploy.InterfaceDeploy;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service("BapInterfaceDeployService")
public class InterfaceDeployService {
@Autowired
@Qualifier("searchBAPDao")
SearchBAPDao searchBAPDao;
@Autowired
LoaderBAPDao loaderBAPDao;
@Autowired
@Qualifier("BapInterfaceDeployDao")
InterfaceDeployDao interfaceDeployDao;
public InterfaceDeploy selectDeploy(String intfid){
final Map<String, Object> paramMap = new HashMap<>();
paramMap.put("intfid", intfid);
InterfaceDeploy interfaceDeploy = interfaceDeployDao.selectDeploy(paramMap, InterfaceDeploy.class);
return interfaceDeploy;
}
public void saveDeploy(InterfaceDeploy interfaceDeploy) {
final Map<String, Object> paramMap = new HashMap<>();
paramMap.put("intfid", interfaceDeploy.getBjobmsgdstcd());
/** DELETE **/
interfaceDeployDao.deleteAllDeploy(paramMap, InterfaceDeploy.class);
/** INSERT **/
interfaceDeployDao.insertDeploy(interfaceDeploy);
}
}
@@ -0,0 +1,169 @@
package com.eactive.eai.rms.bap.loader.intf.deploy;
import com.eactive.eai.rms.common.vo.SchemaIdVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class InterfaceDeploy extends SchemaIdVO {
/** 잡메시지구분코드(인터페이스ID) */
private String bjobmsgdstcd;
/** 잡메시지구분명(인터페이스설명) */
private String bjobmsgdsticname;
/** 일괄타입구분코드 */
private String bjobbzwkdstcd;
/** 배치작업메시지구분코드 */
private String bjobtrandstcdname;
/** 헤더크기 */
private Integer bjobtelgmhdrsize;
/** 바디크기 */
private Integer bjobtelgmrecsize;
/** 트레일러크기 */
private Integer bjobtelgmtrailsize;
/** 파일전송여부 */
private String eaifilesenduseyn;
/** 파일수신여부 */
private String eaifilerecvuseyn;
/** 작업처리우선순위 */
private Integer msgprcssprity;
/** 내부시스템코드 */
private String syscd;
/** app코드 */
private String uapplcd;
/** 송수신파일명(사용안함) */
private String sndrcvfilename;
/** 수신파일패턴(사용안함) */
private String rcvfilepattern;
/** 송수신파일경로(사용안함) */
private String sndrcvfilepath;
/** 당메시지담당자ID(다건) */
private String thismsgchrgids;
/** 수신시알림여부 */
private String recvnotiuseyn;
/** 로그생성정보명 */
private String logcretnyn;
/** 파일송수신스케쥴 */
private String filetranssche;
/** 인터페이스사용여부 */
private String thismsguseyn;
/** 최초등록사용자 */
private String thismsgregsntid;
/** 최초등록시각 */
private String thismsgregihms;
/** 최종수정사용자 */
private String thismsgamndrid;
/** 최종수정시각 */
private String thismsgamndhms;
/** BATCH작업업무구분코드 */
private String outbizcd;
/** 파일송수신알림 */
private String filetransalam;
/** 파일송수신조건 */
private String filetranscond;
/** 대외기관 담당자 연락처 */
private String osidinstitelno;
/** 대외기관담당자명 */
private String osidinstibzwkrsempname;
/** 대외기관코드 */
private String osidinsticode;
/** 업무담당자전화번호 */
private String bzwkrsemptelno;
/** 대외기관담당자명 */
private String bzwkrsempname;
/** 전송스크립트내용 */
private String sndscriptname;
/** 원격노드명 */
private String rmtnodename;
/** 그룹회사코드 */
private String groupcocd;
/** 인터페이스ID */
private String infid;
/** 인터페이스ID(사용안함) */
private String intfid;
/** 업무구분코드level1(사용안함) */
private String bizlevel1;
/** 업무구분코드level2(사용안함) */
private String bizlevel2;
/** 시스템코드2(사용안함) */
private String syscd2;
/** 시스템연결구분코드(사용안함) */
private String syslnkgdstcd;
/** 대외기관구분코드(사용안함) */
private String osidinstidstcd;
/** 송수신구분코드(사용안함) */
private String rqstrspnsdstcd;
/** 연결ip정보(사용안함) */
private String lnkgipinfoname;
/** 연결포트정보(사용안함) */
private String lnkgportinfoname;
/** 연결ID(사용안함) */
private String lnkgid;
/** 연결패스워드(사용안함) */
private String lnkgpwd;
/** 타임아웃값(사용안함) */
private Integer toutval;
/** 상태(정상/장애)(사용안함) */
private String tcirtlnkgstuscd;
/** ??(사용안함) */
private String adptrbzwkgroupname;
/** ??(사용안함) */
private String adptrbzwkname;
/** 송수신파일경로 */
private String srcfilepath;
/** 암호화여부 */
private String encyn;
}
@@ -0,0 +1,44 @@
package com.eactive.eai.rms.bap.loader.service;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.loader.dao.SearchBAPDao;
import com.eactive.eai.rms.common.base.BaseService;
@Service("searchBAPService")
public class SearchBAPService extends BaseService {
@Autowired
@Qualifier("searchBAPDao")
private SearchBAPDao dao;
public SearchBAPService() {
super();
}
/**
* resource 조회
*/
public HashMap selectBAPList(HttpServletRequest request, int startNum,int endNum, HashMap<String,Object> paramMap) throws Exception {
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List list = dao.selectList(paramMap);
HashMap map = new HashMap();
//map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
}
@@ -0,0 +1,36 @@
package com.eactive.eai.rms.bap.loader.service;
import java.util.HashMap;
import com.eactive.eai.rms.common.datasource.DataSourceType;
public interface TransactionBAPService{
/**
* fileinfo loading
*/
public void insertFileInfoLoading(DataSourceType dt, String path,String fileName) throws Exception ;
/**
* table loading
*/
public void insertTableLoading(DataSourceType dt, String path, String fileName) throws Exception ;
/**
* file downloading
*/
public void fileInfoDownLoading(DataSourceType dt, String path,String serviceName) throws Exception ;
/**
* table downloading
*/
public void tableDownLoading(DataSourceType dt, String path, String tableName) throws Exception ;
/**
* tran block
*/
public void tranBlock(DataSourceType dt, String cmd, String type, String value) throws Exception ;
public HashMap parse(String filePath) throws Exception ;
}
@@ -0,0 +1,683 @@
package com.eactive.eai.rms.bap.loader.service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import com.eactive.eai.rms.bap.loader.intf.InterfaceDeployService;
import com.eactive.eai.rms.bap.loader.intf.deploy.InterfaceDeploy;
import com.fasterxml.jackson.databind.MapperFeature;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.loader.dao.LoaderBAPDao;
import com.eactive.eai.rms.common.base.BaseService;
import com.eactive.eai.rms.common.context.MonitoringContext;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import com.eactive.eai.rms.onl.common.util.FileWriteUtil;
@Service("loaderBAPService")
public class TransactionBAPServiceImpl extends BaseService implements TransactionBAPService {
/** The monitoring context. */
@Autowired
@Qualifier("monitoringContext")
private transient MonitoringContext monitoringContext;
@Autowired
@Qualifier("loaderBAPDao")
private LoaderBAPDao dao;
@Autowired
@Qualifier("BapInterfaceDeployService")
private InterfaceDeployService interfaceDeployService;
public TransactionBAPServiceImpl() {
super();
}
/**
* layout loading
*/
public void insertLayoutLoading(DataSourceType dt, String path, String fileName) throws Exception {
String[] tables = { "TSEAITR07", "TSEAITR08" };
HashMap map = parse(path + fileName);
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null) {
if ("TSEAITR07".equals(table)) {
// VERSION 정보 없을 경우 "00000" 로 셋팅
for (int i = 0; i < list.size(); i++) {
HashMap hm2 = (HashMap) list.get(i);
if (hm2 != null && !hm2.containsKey("VERINFO")) {
hm2.put("VERINFO", "00000");
list.set(i, hm2);
}
}
}
dao.load(dt, table, list);
}
}
}
}
/**
* fileinfo loading
*/
public void insertFileInfoLoading(DataSourceType dt, String path, String fileName) throws Exception {
String[] tables = { "TSEAIBJ01" };
HashMap map = parse(path + fileName);
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null) {
// HashMap hm = (HashMap)list.get(0);
//adapterGroupValid(dt, map, "TSEAIBJ01");
dao.load(dt, table, list);
}
}
}
}
/**
* transform loading
*/
public void insertTransformLoading(DataSourceType dt, String path, String fileName) throws Exception {
String[] tables = { "TSEAITR01", "TSEAITR02", "TSEAITR03" };
HashMap map = parse(path + fileName);
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null) {
if ("TSEAITR01".equals(table)) {
// VERSION 정보 없을 경우 "00000" 로 셋팅
for (int i = 0; i < list.size(); i++) {
HashMap hm2 = (HashMap) list.get(i);
if (hm2 != null && !hm2.containsKey("VERINFO")) {
hm2.put("VERINFO", "00000");
list.set(i, hm2);
}
}
}
dao.load(dt, table, list);
}
}
}
}
/**
* b2b loading
*/
public void insertB2BLoading(DataSourceType dt, String path, String fileName) throws Exception {
String[] tables = { "TSEAIHE03" };
HashMap map = parse(path + fileName);
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null) {
// HashMap hm = (HashMap)list.get(0);
adapterGroupValid(dt, map, "TSEAIHE03");
dao.load(dt, table, list);
}
}
}
}
/**
* adapter loading
*/
public void insertAdapterLoading(DataSourceType dt, String path, String fileName) throws Exception {
HashMap map = parse(path + fileName);
// TSEAIAD15 삭제 어댑터명 기준
// TSEAIAD14 삭제 어댑터명 기준
// TSEAIAD02 삭제
// TSEAIAD01 삭제
// TSEAIFR04 삭제
String[] tables = { "TSEAIAD15", "TSEAIAD14", "TSEAIAD02", "TSEAIAD01", "TSEAIFR04" };
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null)
dao.load(dt, table, list);
}
}
}
/**
* adapter loading
*/
public void insertAdapterLoadingAll(DataSourceType dt, String path) throws Exception {
File dir = new File(path);
for (File file : dir.listFiles()) {
if (file.isFile() && file.getName().endsWith(".txt")) {
HashMap map = parse(path + file.getName());
// TSEAIAD15 삭제 어댑터명 기준
// TSEAIAD14 삭제 어댑터명 기준
// TSEAIAD01 삭제
// TSEAIAD02 삭제
// TSEAIFR04 삭제
String[] tables = { "TSEAIAD15", "TSEAIAD14", "TSEAIAD01", "TSEAIAD02", "TSEAIFR04" };
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null)
dao.load(dt, table, list);
}
}
}
}
}
/**
* messageKey loading
*/
public void insertMessageKeyLoading(DataSourceType dt, String path, String fileName) throws Exception {
HashMap map = parse(path + fileName);
// TSEAIFR04 삭제
String[] tables = { "TSEAIFR04" };
if (map != null) {
ArrayList list = null;
for (String table : tables) {
list = (ArrayList) map.get(table);
if (list != null) {
// HashMap hm = (HashMap)list.get(0);
adapterGroupValid(dt, map, "TSEAIFR04");
dao.load(dt, table, list);
}
}
}
}
/**
* interface downloading
*/
public void interfaceDownLoading(DataSourceType dt, String path, String eaiSvcName) throws Exception {
List<LinkedHashMap> listHE01 = dao.selectTableData(dt, "TSEAIHE01", "EAISvcName", eaiSvcName);
if (listHE01 == null || listHE01.size() == 0) {
throw new Exception("interface data is empty interfaceName =[" + eaiSvcName + "]");
}
// TAS거래 > 일반거래로 복사 2020.05.06 추가
for (LinkedHashMap m : listHE01) {
if ("T".equals((String) m.get("TRANTYPE"))) {
m.put("TRANTYPE", "R");
}
}
List<LinkedHashMap> listHE02 = dao.selectTableData(dt, "TSEAIHE02", "EAISvcName", eaiSvcName);
if (listHE02 == null || listHE02.size() == 0) {
throw new Exception("interface data is empty interfaceName =[" + eaiSvcName + "]");
}
List<LinkedHashMap> listMS02 = dao.selectTableData(dt, "TSEAIMS02", "EAISvcName", eaiSvcName);
List<LinkedHashMap> listFR01 = dao.selectTableData(dt, "TSEAIFR01", "EAISvcName", eaiSvcName);
List<LinkedHashMap> listFR03 = dao.selectTableData(dt, "TSEAIFR03", "EAISvcName", eaiSvcName);
List<LinkedHashMap> listHS04 = dao.selectTableData(dt, "TSEAIHS04", "EAISvcName", eaiSvcName);
List<LinkedHashMap> listHS05 = new ArrayList<LinkedHashMap>();
if (listHS04 != null) {
for (LinkedHashMap m : listHS04) {
String bzwkSvcKeyName = (String) m.get("BZWKSVCKEYNAME");
List<LinkedHashMap> list = dao.selectTableData(dt, "TSEAIHS05", "BZWKSVCKEYNAME", bzwkSvcKeyName);
listHS05.addAll(list);
}
}
List<LinkedHashMap> listFR06 = dao.selectTableData(dt, "TSEAIFR06", "EAISvcName", eaiSvcName);
LinkedHashMap<String, List> tables = new LinkedHashMap<String, List>();
tables.put("TSEAIHE01", listHE01);
tables.put("TSEAIHE02", listHE02);
tables.put("TSEAIMS02", listMS02);
tables.put("TSEAIFR01", listFR01);
tables.put("TSEAIFR03", listFR03);
tables.put("TSEAIHS04", listHS04);
tables.put("TSEAIHS05", listHS05);
tables.put("TSEAIFR06", listFR06);
FileWriteUtil.FileWrite(path, eaiSvcName + ".txt", tables);
}
/**
* b2b downloading
*/
public void b2bDownLoading(DataSourceType dt, String path, String extnlInstiIdnfiName) throws Exception {
List<LinkedHashMap> listHE03 = dao.selectTableData(dt, "TSEAIHE03", "extnlInstiIdnfiName", extnlInstiIdnfiName);
if (listHE03 == null || listHE03.size() == 0) {
throw new Exception("b2b extractor data is empty extnlInstiIdnfiName =[" + extnlInstiIdnfiName + "]");
}
LinkedHashMap<String, List> tables = new LinkedHashMap<String, List>();
tables.put("TSEAIHE03", listHE03);
FileWriteUtil.FileWrite(path, extnlInstiIdnfiName + ".txt", tables);
}
/**
* adapter downloading
*/
public void adapterDownLoading(DataSourceType dt, String path, String adapterName) throws Exception {
List<LinkedHashMap> listAD01 = dao.selectTableData(dt, "TSEAIAD01", "AdptrBzwkGroupName", adapterName);
if (listAD01 == null || listAD01.size() == 0) {
throw new Exception("adapter data is empty adapterName =[" + adapterName + "]");
}
List<LinkedHashMap> listAD02 = dao.selectTableData(dt, "TSEAIAD02", "AdptrBzwkGroupName", adapterName);
if (listAD02 == null || listAD02.size() == 0) {
throw new Exception("adapter data is empty adapterName =[" + adapterName + "]");
}
List<LinkedHashMap> listAD14 = new ArrayList();
for (LinkedHashMap lhm : listAD02) {
List<LinkedHashMap> mlistAD14 = dao.selectTableData(dt, "TSEAIAD14", "prptyGroupName",
(String) lhm.get("PRPTYGROUPNAME"));
if (mlistAD14 == null || mlistAD14.size() == 0) {
throw new Exception("adapter propertyGroup data(TSEAIAD14) is empty prptyGroupName =["
+ lhm.get("PRPTYGROUPNAME") + "]");
}
if (mlistAD14 != null) {
for (LinkedHashMap m : mlistAD14) {
m.put("ADPTRBZWKGROUPNAME", adapterName);
}
listAD14.addAll(mlistAD14);
}
}
List<LinkedHashMap> listAD15 = new ArrayList();
for (LinkedHashMap lhm : listAD02) {
List<LinkedHashMap> mlistAD15 = dao.selectTableData(dt, "TSEAIAD15", "prptyGroupName",
(String) lhm.get("PRPTYGROUPNAME"));
if (mlistAD15 == null || mlistAD15.size() == 0) {
throw new Exception("adapter propertyGroup data(TSEAIAD15) is empty prptyGroupName =["
+ lhm.get("PRPTYGROUPNAME") + "]");
}
if (mlistAD15 != null) {
for (LinkedHashMap m : mlistAD15) {
m.put("ADPTRBZWKGROUPNAME", adapterName);
}
listAD15.addAll(mlistAD15);
}
}
List<LinkedHashMap> listFR04 = dao.selectTableData(dt, "TSEAIFR04", "AdptrBzwkGroupName", adapterName);
LinkedHashMap<String, List> tables = new LinkedHashMap<String, List>();
tables.put("TSEAIAD01", listAD01);
tables.put("TSEAIAD02", listAD02);
tables.put("TSEAIAD14", listAD14);
tables.put("TSEAIAD15", listAD15);
tables.put("TSEAIFR04", listFR04);
FileWriteUtil.FileWrite(path, adapterName + ".txt", tables);
}
/**
* adapter downloading
*/
public void adapterDownLoading(DataSourceType dt, String path, String adapterName, String prefix) throws Exception {
List<LinkedHashMap> listAD01 = dao.selectTableData(dt, "TSEAIAD01", "AdptrBzwkGroupName", adapterName);
if (listAD01 == null || listAD01.size() == 0) {
throw new Exception("adapter data is empty adapterName =[" + adapterName + "]");
}
List<LinkedHashMap> listAD02 = dao.selectTableData(dt, "TSEAIAD02", "AdptrBzwkGroupName", adapterName);
if (listAD02 == null || listAD02.size() == 0) {
throw new Exception("adapter data is empty adapterName =[" + adapterName + "]");
}
for (LinkedHashMap ad02 : listAD02) {
String instance = (String) ad02.get("EAISEVRINSTNCNAME");
if (instance != null && instance.length() > 5 && prefix != null) {
String replace = prefix + instance.substring(5);
ad02.put("EAISEVRINSTNCNAME", replace);
}
}
List<LinkedHashMap> listAD14 = new ArrayList();
for (LinkedHashMap lhm : listAD02) {
List<LinkedHashMap> mlistAD14 = dao.selectTableData(dt, "TSEAIAD14", "prptyGroupName",
(String) lhm.get("PRPTYGROUPNAME"));
if (mlistAD14 == null || mlistAD14.size() == 0) {
throw new Exception("adapter propertyGroup data(TSEAIAD14) is empty prptyGroupName =["
+ lhm.get("PRPTYGROUPNAME") + "]");
}
if (mlistAD14 != null) {
for (LinkedHashMap m : mlistAD14) {
m.put("ADPTRBZWKGROUPNAME", adapterName);
}
listAD14.addAll(mlistAD14);
}
}
List<LinkedHashMap> listAD15 = new ArrayList();
for (LinkedHashMap lhm : listAD02) {
List<LinkedHashMap> mlistAD15 = dao.selectTableData(dt, "TSEAIAD15", "prptyGroupName",
(String) lhm.get("PRPTYGROUPNAME"));
if (mlistAD15 == null || mlistAD15.size() == 0) {
throw new Exception("adapter propertyGroup data(TSEAIAD15) is empty prptyGroupName =["
+ lhm.get("PRPTYGROUPNAME") + "]");
}
if (mlistAD15 != null) {
for (LinkedHashMap m : mlistAD15) {
m.put("ADPTRBZWKGROUPNAME", adapterName);
}
listAD15.addAll(mlistAD15);
}
}
List<LinkedHashMap> listFR04 = dao.selectTableData(dt, "TSEAIFR04", "AdptrBzwkGroupName", adapterName);
LinkedHashMap<String, List> tables = new LinkedHashMap<String, List>();
tables.put("TSEAIAD01", listAD01);
tables.put("TSEAIAD02", listAD02);
tables.put("TSEAIAD14", listAD14);
tables.put("TSEAIAD15", listAD15);
tables.put("TSEAIFR04", listFR04);
FileWriteUtil.FileWrite(path, adapterName + ".txt", tables);
}
/**
* messageKey downloading
*/
public void messageKeyDownLoading(DataSourceType dt, String path, String adapterName) throws Exception {
List<LinkedHashMap> listFR04 = dao.selectTableData(dt, "TSEAIFR04", "AdptrBzwkGroupName", adapterName);
LinkedHashMap<String, List> tables = new LinkedHashMap<String, List>();
tables.put("TSEAIFR04", listFR04);
FileWriteUtil.FileWrite(path, adapterName + ".txt", tables);
}
public HashMap parse(String filePath) throws Exception {
String delimeter = ";";
HashMap map = new HashMap();
ArrayList list = null;
FileReader fr = new FileReader(filePath);
if (fr == null) {
return map;
}
BufferedReader br = null;
String lbuff = null;
String[] header = null;
try {
br = new BufferedReader(fr);
while ((lbuff = br.readLine()) != null) {
if (lbuff.indexOf(delimeter) < 0) {
list = new ArrayList();
map.put(lbuff.toUpperCase(), list);
if ((lbuff = br.readLine()) == null) {
throw new Exception("File Header parsing Error : " + filePath);
}
header = lbuff.split(delimeter);
continue;
}
if (header == null)
continue;
LinkedHashMap codes = split(header, lbuff, delimeter, header.length);
list.add(codes);
}
} catch (Exception ex) {
logger.error("parse error", ex);
} finally {
if (br != null) {
br.close();
}
}
return map;
}
private LinkedHashMap split(String[] header, String data, String deli, int size) {
LinkedHashMap array = new LinkedHashMap();
String data2 = data + " " + deli;// 마지막 에 ";;" 될경우 length 차이가 나서 보정해주는 로직
String[] s = data2.split(deli);
for (int i = 0; i < s.length - 1; i++) {
array.put(header[i], s[i]);
}
return array;
}
public HashSet<String> getFileInterfaceAdapterList(HashMap map) throws Exception {
HashSet<String> adapterList = new HashSet<String>();
String eaiSvcName = "";
String srcType = "";
String tgtType = "";
String sndRecvType = "";
ArrayList he01 = (ArrayList) map.get("TSEAIHE01");
if (he01 == null || he01.size() == 0) {
throw new Exception("EAI 메시지가 없습니다.");
}
HashMap he01row0 = (HashMap) he01.get(0);
String src = (String) he01row0.get("GSTATSYSADPTRBZWKGROUPNAME"); // 기동어댑터명
srcType = (String) he01row0.get("SVCMOTIVUSEDSTCD"); // 기동인터페이스 유형
if (StringUtils.isBlank(src)) {
throw new Exception("기동 어댑터가 없습니다.");
}
adapterList.add(src);
ArrayList he02 = (ArrayList) map.get("TSEAIHE02");
if (he02 == null || he02.size() == 0) {
throw new Exception("EAI 서비스처리정보가 없습니다.");
}
HashMap he02row0 = (HashMap) he02.get(0);
String tgt = (String) he02row0.get("PSVSYSADPTRBZWKGROUPNAME"); // 수동어댑터명
tgtType = (String) he02row0.get("PSVINTFACDSTICNAME"); // 수동인터페이스 유형
eaiSvcName = (String) he02row0.get("EAISVCNAME"); // 인터페이스명
sndRecvType = eaiSvcName.substring(eaiSvcName.length() - 2, eaiSvcName.length() - 1); // 인터페이스 송수신구분
// S-A 응답일때 빼고 수동어댑터 체크
if (srcType.equals("SYNC") && tgtType.equals("ASYN") && sndRecvType.equals("R")) {
;
} else {
if (StringUtils.isBlank(tgt)) {
throw new Exception("수동 어댑터가 없습니다.");
}
adapterList.add(tgt);
}
// A-S > HE01의 인터페이스유형 ASYN이고 HE02의 첫번째 수동인터페이스가 SYNC일 때 -> 수동인터페이스 2개
if (srcType.equals("ASYN") && tgtType.equals("SYNC")) {
if (he02.size() == 1) {
throw new Exception("기동 응답 서비스가 존재하지 않습니다.");
}
HashMap he02row1 = (HashMap) he02.get(1);
tgt = (String) he02row1.get("PSVSYSADPTRBZWKGROUPNAME");
if (StringUtils.isBlank(tgt)) {
throw new Exception("기동 응답 어댑터가 없습니다.");
}
adapterList.add(tgt);
}
return adapterList;
}
public void adptInstValid(DataSourceType dataSourceType, HashMap map) throws Exception {
boolean ret = true;
ArrayList he01 = (ArrayList) map.get("TSEAIHE01");
if (he01 == null || he01.size() == 0) {
ret = false;
throw new Exception("EAI 메시지가 없습니다.");
}
HashMap he01row0 = (HashMap) he01.get(0);
String eaiSvcName = (String) he01row0.get("EAISVCNAME");
String srcType = (String) he01row0.get("SVCMOTIVUSEDSTCD");
String srcAdpt = (String) he01row0.get("GSTATSYSADPTRBZWKGROUPNAME"); // 기동어댑터명
ArrayList he02 = (ArrayList) map.get("TSEAIHE02");
if (he02 == null || he02.size() == 0) {
throw new Exception("[EAI서비스코드 : " + eaiSvcName + "] EAI 서비스처리정보가 없습니다.");
}
HashMap he02row0 = (HashMap) he02.get(0);
String tgtAdpt = (String) he02row0.get("PSVSYSADPTRBZWKGROUPNAME"); // 수동어댑터명
String tgtType = (String) he02row0.get("PSVINTFACDSTICNAME");
String sndRecvType = eaiSvcName.substring(eaiSvcName.length() - 2, eaiSvcName.length() - 1); // 인터페이스 송수신구분
List<LinkedHashMap> ouAdptInstList = dao.selectTableData(dataSourceType, "TSEAIAD02", "ADPTRBZWKGROUPNAME",
tgtAdpt);
// outBound 어댑터 정보가 없고 그룹명만 있을 때 ____ 비교 X
if (ouAdptInstList.size() == 0) {
return;
}
// 기동어댑터와 관계없이 수동어댑터 바인딩된 인스턴스가 ALL일때 우선적으로 PASS (A_S 패턴 포함 - 처리순서1인 어댑터로 비교)
if ("ALL".equals(ouAdptInstList.get(0).get("EAISEVRINSTNCNAME"))) {
return;
}
List<LinkedHashMap> inAdptInstList = dao.selectTableData(dataSourceType, "TSEAIAD02", "ADPTRBZWKGROUPNAME",
srcAdpt);
// inBound 어댑터 정보가 없고 그룹명만 있을 때 ____ 비교 X
if (inAdptInstList.size() == 0) {
return;
}
List<LinkedHashMap> ouAdptInstList2 = new ArrayList<>();
// S_A 패턴 응답 ___ 비교 X
if (srcType.equals("SYNC") && tgtType.equals("ASYN") && sndRecvType.equals("R")) {
return;
}
// A_S 패턴
if (srcType.equals("ASYN") && tgtType.equals("SYNC")) {
if (he02.size() == 1) {
throw new Exception("[EAI서비스코드 : " + eaiSvcName + "] 기동 응답 서비스가 존재하지 않습니다.");
}
HashMap he02row1 = (HashMap) he02.get(1);
tgtAdpt = (String) he02row1.get("PSVSYSADPTRBZWKGROUPNAME");
ouAdptInstList2 = dao.selectTableData(dataSourceType, "TSEAIAD02", "ADPTRBZWKGROUPNAME", tgtAdpt);
}
/**
* 아래는 SNA 체크임 우체국에서는 안쓰임 시작
*/
/*
* //IN 어댑터 List의 ADPTRCD는 다 같음. //String adptrName =
* (String)inAdptInstList.get(0).get("ADPTRBZWKNAME"); String adptrGrpName =
* (String)inAdptInstList.get(0).get("ADPTRBZWKGROUPNAME"); //IN 어댑터가 SNA일때
* boolean flag = false; if(adptrGrpName.indexOf("SNA")>=0){
* inAdptInstList.clear(); List<LinkedHashMap> snaApList =
* inboundErrorInfoDao.selectSnaAdpApList(dataSourceType, adptrGrpName); String svcApCd =
* eaiSvcName.substring(0,3); //서비스코드 앞 3자리 for(LinkedHashMap m : snaApList){
* String apList = (String)m.get("PRPTY2VAL"); int chk =
* apList.indexOf(svcApCd); if(chk>=0){ inAdptInstList.add(m); flag = true; } }
* if(!flag){ ret = false; throw new
* Exception("[EAI서비스코드 : "+eaiSvcName+"] AP코드("+svcApCd+")가 SNA어댑터["
* +adptrGrpName+"]에 존재하지 않습니다"); } } //in out 불일치 int cnt =
* inAdptInstList.size(); String srcAdptName = ""; String tgtAdptName = "";
* for(HashMap om : ouAdptInstList){ String ouInst =
* (String)om.get("EAISEVRINSTNCNAME"); tgtAdptName =
* (String)om.get("ADPTRBZWKGROUPNAME"); if("ALL".equals(ouInst)){ cnt=0; break;
* } for(HashMap im : inAdptInstList){ String inInst
* =(String)im.get("EAISEVRINSTNCNAME"); srcAdptName =
* (String)im.get("ADPTRBZWKGROUPNAME"); if(ouInst.equals(inInst)){ cnt--;
* continue; } } } if(cnt>0){ ret = false; throw new
* Exception("[EAI서비스코드 : "+eaiSvcName+"] 기동어댑터와 수동어댑터의 인스턴스가 일치하지 않습니다 [기동 : "
* +srcAdptName+" / 수동 : "+tgtAdptName+"]"); } if(ouAdptInstList2.size()>0){
* //A-S 패턴 수동인터페이스 어댑터2 번째꺼 int cnt2 = inAdptInstList.size(); for(HashMap om :
* ouAdptInstList2){ String ouInst = (String)om.get("EAISEVRINSTNCNAME");
* tgtAdptName = (String)om.get("ADPTRBZWKGROUPNAME"); if("ALL".equals(ouInst)){
* cnt2=0; break; } for(HashMap im : inAdptInstList){ String inInst
* =(String)im.get("EAISEVRINSTNCNAME"); srcAdptName =
* (String)im.get("ADPTRBZWKGROUPNAME"); if(ouInst.equals(inInst)){ cnt2--;
* continue; } } } if(cnt2>0){ ret = false; throw new
* Exception("[EAI서비스코드 : "+eaiSvcName+"] 기동어댑터와 수동어댑터의 인스턴스가 일치하지 않습니다 [기동 : "
* +srcAdptName+" / 수동 : "+tgtAdptName+"]"); } }
*/
/**
* 아래는 SNA 체크임 우체국에서는 안쓰임 종료
*/
}
public void adapterGroupValid(DataSourceType dt, HashMap map, String table) throws Exception {
if (map != null) {
if ("TSEAIFR04".equals(table)) {
ArrayList list = (ArrayList) map.get(table);
if (list != null) {
HashMap hm = (HashMap) list.get(0);
String adapterGroupName = (String) hm.get("ADPTRBZWKGROUPNAME");
List adptList = dao.selectTableData(dt, "TSEAIAD01", "ADPTRBZWKGROUPNAME", adapterGroupName);
if (adptList.size() == 0) {
String ioDstcd = (String) hm.get("IODSTCD");
throw new Exception("메시지 키 관리 [어댑터명 : " + adapterGroupName + " / 기능구분 : " + ioDstcd
+ "] 에 대한 어댑터가 해당서버에 존재하지 않습니다.");
}
}
} else if ("TSEAIHE03".equals(table)) {
ArrayList list = (ArrayList) map.get(table);
if (list != null) {
HashMap hm = (HashMap) list.get(0);
String adapterGroupName = (String) hm.get("PSVSYSADPTRBZWKGROUPNAME");
List adptList = dao.selectTableData(dt, "TSEAIAD01", "ADPTRBZWKGROUPNAME", adapterGroupName);
if (adptList.size() == 0) {
String extnlInstiIdfiName = (String) hm.get("EXTNLINSTIIDNFINAME");
String svcPrcssNo = (String) hm.get("SVCPRCSSNO");
throw new Exception("B2B기관 정보 관리 [기관코드 : " + extnlInstiIdfiName + " / 서비스처리순서 : " + svcPrcssNo
+ "] 에 대한 수동 어댑터가 해당서버에 존재하지 않습니다. [" + adapterGroupName + "]");
}
}
}
}
}
@Override
public void fileInfoDownLoading(DataSourceType dt, String path, String fileName) throws Exception {
InterfaceDeploy interfaceDeploy = interfaceDeployService.selectDeploy(fileName);
if (interfaceDeploy == null) {
throw new Exception ("layout data is empty layoutName =["+fileName+"]") ;
}
com.eactive.eai.rms.common.converter.ElinkObjectMapper mapper = new com.eactive.eai.rms.common.converter.ElinkObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
String json = mapper.writeValueAsString(interfaceDeploy);
System.out.println(json);
FileWriteUtil.FileWrite(path , fileName+".txt", json, "UTF-8");
}
@Override
public void insertTableLoading(DataSourceType dt, String path, String fileName) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void tableDownLoading(DataSourceType dt, String path, String tableName) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void tranBlock(DataSourceType dt, String cmd, String type, String value) throws Exception {
// TODO Auto-generated method stub
}
}
@@ -0,0 +1,25 @@
package com.eactive.eai.rms.bap.loader.service;
import com.eactive.eai.rms.bap.loader.intf.InterfaceDeployService;
import com.eactive.eai.rms.bap.loader.intf.deploy.InterfaceDeploy;
import com.eactive.eai.rms.onl.loader.service.TransactionDeployJsonEmptyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service("deployJsonServiceBap")
public class TransactionDeployJsonServiceBap extends TransactionDeployJsonEmptyService {
@Autowired
@Qualifier("BapInterfaceDeployService")
private InterfaceDeployService interfaceDeployService;
@Override
public void insertInterfaceLoading(String path, String fileName) throws Exception {
String json = load(path + fileName, "UTF-8");
InterfaceDeploy interfaceDeploy = mapper.readValue(json, InterfaceDeploy.class);
interfaceDeployService.saveDeploy(interfaceDeploy);
}
}
@@ -0,0 +1,163 @@
package com.eactive.eai.rms.bap.manage.comm.adapter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class BapAdapterController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapAdapterService")
private BapAdapterService service;
@Autowired
private BapAdapterSqlService sqlService;
@RequestMapping(value= "/bap/admin/adapter/adapterMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo ,String searchAdptrBzwkGroupName, String searchAdptrBzwkGroupDesc) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if (searchAdptrBzwkGroupName != null && searchAdptrBzwkGroupDesc != null) {
map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), searchAdptrBzwkGroupName, searchAdptrBzwkGroupDesc);
}
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,String adptrBzwkGroupName) throws Exception {
HashMap<String, Object> map = service.selectDetail(adptrBzwkGroupName);
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.insert(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.UpdateAdapterGroupCommand",(String)map.get("adptrBzwkGroupName"));
agentUtilService.broadcast(command);
command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.update(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.UpdateAdapterGroupCommand",(String)map.get("adptrBzwkGroupName"));
agentUtilService.broadcast(command);
command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map ) throws Exception {
String adptrBzwkGroupName = map.get("adptrBzwkGroupName").toString();
String prptyGroupName = map.get("prptyGroupName").toString();
service.delete(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.RemoveAdapterGroupCommand", adptrBzwkGroupName);
agentUtilService.broadcast(command);
command = new CommonCommand("com.eactive.eai.agent.adapter.RemoveAdapterGroupCommand",prptyGroupName);
agentUtilService.broadcast(command);
return null;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json",params = "cmd=LIST_DELETE")
public String deleteList(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map ) throws Exception {
for (String adptrBzwkGroupName : map.get("adptrBzwkGroupNameList").toString().split(",")) {
HashMap<String, Object> adptrBzwkGroup = service.selectDetail(adptrBzwkGroupName);
HashMap<String, Object> detail = (HashMap<String, Object>)adptrBzwkGroup.get("detail");
String prptyGroupName = detail.get("PRPTYGROUPNAME").toString();
HashMap<String,Object> adptrMap = new HashMap<String,Object>();
adptrMap.put("adptrBzwkGroupName", adptrBzwkGroupName);
adptrMap.put("prptyGroupName", prptyGroupName);
service.delete(adptrMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adapter.RemoveAdapterGroupCommand", adptrBzwkGroupName);
agentUtilService.broadcast(command);
command = new CommonCommand("com.eactive.eai.agent.adapter.RemoveAdapterGroupCommand",prptyGroupName);
agentUtilService.broadcast(command);
}
return null;
}
@RequestMapping(value= "/bap/admin/adapter/adapterMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
// ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInsertSqlForBapAdptr(map));
String sql = sqlService.bapAdapterSql(map);
Map<String, String> resultMap = new HashMap<>();
resultMap.put("sql", sql);
ModelAndView modelAndView = new ModelAndView("jsonView", resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/adapter/adapterMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,62 @@
package com.eactive.eai.rms.bap.manage.comm.adapter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapAdapterDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapAdapterDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapAdapter.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapAdapter.selectList", param);
}
public HashMap<String, Object> adapterGroupDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapAdapter.adapterGroupDetail", param);
}
public HashMap<String, Object> adapterDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapAdapter.adapterDetail", param);
}
public List<Map<String, Object>> propertyList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapAdapter.propertyList", param);
}
public void insertAdapterGroup(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapAdapter.insertAdapterGroup", paramMap);
}
public void insertAdapter(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapAdapter.insertAdapter", paramMap);
}
public void insertProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapAdapter.insertProperty", paramMap);
}
public void updateAdapterGroup(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapAdapter.updateAdapterGroup", paramMap);
}
public void updateAdapter(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapAdapter.updateAdapter", paramMap);
}
public void deleteAdapterGroup(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapAdapter.deleteAdapterGroup", paramMap);
}
public void deleteAdapter(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapAdapter.deleteAdapter", paramMap);
}
}
@@ -0,0 +1,253 @@
package com.eactive.eai.rms.bap.manage.comm.adapter;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapAdapterPropertyDao;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapAdapterService")
public class BapAdapterService extends BapBaseService {
@Autowired
@Qualifier("bapAdapterDao")
private BapAdapterDao dao;
@Autowired
@Qualifier("bapAdapterPropertyDao")
private BapAdapterPropertyDao adptrPropDao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, String searchAdptrBzwkGroupName, String searchAdptrBzwkGroupDesc) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
//검색 조건
logger.debug("searchAdptrBzwkGroupName===>" + searchAdptrBzwkGroupName + "<====");
logger.debug("searchAdptrBzwkGroupDesc===>" + searchAdptrBzwkGroupDesc + "<====");
paramMap.put("searchAdptrBzwkGroupName", searchAdptrBzwkGroupName.toUpperCase());
paramMap.put("searchAdptrBzwkGroupDesc", searchAdptrBzwkGroupDesc.toUpperCase());
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String adptrBzwkGroupName) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("adptrBzwkGroupName", adptrBzwkGroupName);
HashMap<String, Object> detailGroup = dao.adapterGroupDetail(paramMap);
HashMap<String, Object> detail = dao.adapterDetail(paramMap);
List<Map<String, Object>> list = dao.propertyList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
detail.putAll(detailGroup);
map.put("detail" , detail);
map.put("rows" , list);
return map;
}
public void insert(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.insertAdapterGroup(paramMap);
dao.insertAdapter(paramMap);
adptrPropDao.delete(paramMap);
adptrPropDao.deleteProperty(paramMap);
if ( list.length > 0 ) adptrPropDao.insert(paramMap);
for(HashMap<String, Object> map : list){
String prptyName = (String)map.get("PRPTYNAME");
String prpty2Val = (String)map.get("PRPTY2VAL");
if ( !prptyName.equals("") && !prpty2Val.equals("")){
HashMap<String, Object> data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName",prptyName);
data.put("prpty2Val",prpty2Val);
adptrPropDao.insertProperty(data);
}
}
}
public void update(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.updateAdapterGroup(paramMap);
dao.updateAdapter(paramMap);
adptrPropDao.deleteProperty(paramMap);
if ( list.length > 0 ) adptrPropDao.update(paramMap);
for(HashMap<String, Object> map : list){
String prptyName = (String)map.get("PRPTYNAME");
String prpty2Val = (String)map.get("PRPTY2VAL");
if ( !prptyName.equals("") && !prpty2Val.equals("")){
HashMap<String, Object> data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName",prptyName);
data.put("prpty2Val",prpty2Val);
adptrPropDao.insertProperty(data);
}
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.deleteAdapterGroup(paramMap);
dao.deleteAdapter(paramMap);
adptrPropDao.delete(paramMap);
adptrPropDao.deleteProperty(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInsertSqlForBapAdptr(HashMap<String, Object> adptrGroup) throws Exception {
StringBuffer adptrGroupInsertSql = new StringBuffer();
for (String adptrBzwkGroupName : adptrGroup.get("adptrBzwkGroupNameList").toString().split(",")) {
HashMap<String, Object> adptrBzwkGroup = selectDetail(adptrBzwkGroupName);
HashMap<String, Object> detail = (HashMap<String, Object>)adptrBzwkGroup.get("detail");
List<Map<String, Object>> propList = (List<Map<String, Object>>)adptrBzwkGroup.get("rows");
// ADAPTER GROUP into BA01
List<String> columnArr = new ArrayList<String>();
String[] columnList = {"ADPTRBZWKGROUPNAME","ADPTRCD","ADPTRUSEYN","ADPTRBZWKGROUPDESC"};
columnArr = Arrays.asList(columnList);
adptrGroupInsertSql.append("INSERT INTO EAIPKG.TSEAIBA01 (");
// 필드명 입력
for (String column : columnArr) {
adptrGroupInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+",");
}
adptrGroupInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnArr) {
if (column.equals(columnArr.get(columnArr.size()-1))) {
adptrGroupInsertSql.append("'"+(detail.containsKey(column) ? detail.get(column) : "")+"');\n");
} else {
adptrGroupInsertSql.append("'"+(detail.containsKey(column) ? detail.get(column) : "")+"',");
}
}
// ADAPTER into BA02
List<String> columnAdptrArr = new ArrayList<String>();
String[] columnAdptrList = {"ADPTRBZWKGROUPNAME","ADPTRBZWKNAME","LSTNERCLSNAME","PRPTYGROUPNAME","ADPTRDESC"};
columnAdptrArr = Arrays.asList(columnAdptrList);
adptrGroupInsertSql.append("INSERT INTO EAIPKG.TSEAIBA02 (");
// 필드명 입력
for (String column : columnAdptrArr) {
adptrGroupInsertSql.append((column.equals(columnAdptrArr.get(columnAdptrArr.size()-1))) ? column : column+",");
}
adptrGroupInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnAdptrArr) {
if (column.equals(columnAdptrArr.get(columnAdptrArr.size()-1))) {
adptrGroupInsertSql.append("'"+(detail.containsKey(column) ? detail.get(column) : "")+"');\n");
} else {
adptrGroupInsertSql.append("'"+(detail.containsKey(column) ? detail.get(column) : "")+"',");
}
}
// ADAPTER PROP GROUP into BA03
List<String> columnPropGrpArr = new ArrayList<String>();
String[] columnPropGrpList = {"PRPTYGROUPNAME","PRPTYGROUPDESC"};
columnPropGrpArr = Arrays.asList(columnPropGrpList);
adptrGroupInsertSql.append("INSERT INTO EAIPKG.TSEAIBA03 (");
// 필드명 입력
for (String column : columnPropGrpArr) {
adptrGroupInsertSql.append((column.equals(columnPropGrpArr.get(columnPropGrpArr.size()-1))) ? column : column+",");
}
adptrGroupInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnPropGrpArr) {
if (column.equals(columnPropGrpArr.get(columnPropGrpArr.size()-1))) {
adptrGroupInsertSql.append("'"+(detail.containsKey(column) ? detail.get(column) : "")+"');\n");
} else {
adptrGroupInsertSql.append("'"+(detail.containsKey(column) ? detail.get(column) : "")+"',");
}
}
// ADAPTER PROP LIST into BA04
for (Map<String, Object> prop : propList) {
List<String> columnPropArr = new ArrayList<String>();
String[] columnPropList = {"PRPTYGROUPNAME","PRPTYNAME","PRPTY2VAL"};
columnPropArr = Arrays.asList(columnPropList);
adptrGroupInsertSql.append("INSERT INTO EAIPKG.TSEAIBA04 (");
// 필드명 입력
for (String column : columnPropArr) {
adptrGroupInsertSql.append((column.equals(columnPropArr.get(columnPropArr.size()-1))) ? column : column+",");
}
adptrGroupInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnPropArr) {
if (column.equals("PRPTYGROUPNAME")) {
adptrGroupInsertSql.append("'"+detail.get("PRPTYGROUPNAME")+"',");
} else if (column.equals(columnPropArr.get(columnPropArr.size()-1))) {
adptrGroupInsertSql.append("'"+(prop.containsKey(column) ? prop.get(column) : "")+"');\n");
} else {
adptrGroupInsertSql.append("'"+(prop.containsKey(column) ? prop.get(column) : "")+"',");
}
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (adptrGroup.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+adptrGroup.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = adptrGroupInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(adptrGroupInsertSql.toString(), "BAP_"+adptrGroup.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,41 @@
package com.eactive.eai.rms.bap.manage.comm.adapter;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.onl.common.sql.ExtractSqlService;
@Service
public class BapAdapterSqlService extends ExtractSqlService {
public String bapAdapterSql(Map<String, Object> paramMap) throws Exception {
DataSourceContextHolder.setDataSourceType(
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.BAP));
StringBuilder sqlBuilder = new StringBuilder();
String bapAdapterName = (String) paramMap.get("adptrBzwkGroupName");
List<Map<String, Object>> ba01_queryResult = select("TSEAIBA01", "ADPTRBZWKGROUPNAME", bapAdapterName);
sqlBuilder.append(makeSql("TSEAIBA01", "ADPTRBZWKGROUPNAME", bapAdapterName, ba01_queryResult));
List<Map<String, Object>> ba02_queryResult = select("TSEAIBA02", "ADPTRBZWKGROUPNAME", bapAdapterName);
sqlBuilder.append(makeSql("TSEAIBA02", "ADPTRBZWKGROUPNAME", bapAdapterName, ba02_queryResult));
String[] keysForBA03 = extractKeys(ba02_queryResult, "PRPTYGROUPNAME");
List<Map<String, Object>> ba03_queryResult = select("TSEAIBA03", "PRPTYGROUPNAME", keysForBA03);
sqlBuilder.append(makeSql("TSEAIBA03", "PRPTYGROUPNAME", keysForBA03, ba03_queryResult));
String[] keysForBA04 = extractKeys(ba03_queryResult, "PRPTYGROUPNAME");
List<Map<String, Object>> ba04_queryResult = select("TSEAIBA04", "PRPTYGROUPNAME", keysForBA04);
sqlBuilder.append(makeSql("TSEAIBA04", "PRPTYGROUPNAME", keysForBA04, ba04_queryResult));
return sqlBuilder.toString();
}
}
@@ -0,0 +1,105 @@
package com.eactive.eai.rms.bap.manage.comm.code;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapCodeController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapCodeService")
private BapCodeService bapCodeService;
@RequestMapping(value= "/bap/admin/common/codeMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/codeMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo ,String searchMsg, String searchDesc) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if (searchMsg != null && searchDesc != null) {
map = bapCodeService.selectList( pageVo.getStartNum(), pageVo.getEndNum(), searchMsg, searchDesc);
}
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/codeMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String msg) throws Exception {
HashMap<String, Object> map = bapCodeService.selectDetail(msg);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/codeMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap) throws Exception {
bapCodeService.insert(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.code.UpdateCodeMessageCommand",(String)paramMap.get("msg"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/codeMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
bapCodeService.update(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.code.UpdateCodeMessageCommand",(String)paramMap.get("msg"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/codeMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
bapCodeService.delete(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.code.RemoveCodeMessageCommand",(String)paramMap.get("msg"));
agentUtilService.broadcast(command);
return null;
}
}
@@ -0,0 +1,38 @@
package com.eactive.eai.rms.bap.manage.comm.code;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapCodeDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapCodeDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapCode.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapCode.selectList", param);
}
public HashMap<String, Object> selectDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapCode.selectDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapCode.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapCode.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapCode.delete", paramMap);
}
}
@@ -0,0 +1,61 @@
package com.eactive.eai.rms.bap.manage.comm.code;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapCodeService")
public class BapCodeService extends BapBaseService {
@Autowired
@Qualifier("bapCodeDao")
private BapCodeDao bapCodeDao;
public HashMap<String, Object> selectList(int startNum,int endNum, String searchMsg, String searchDesc) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
//검색 조건
paramMap.put("searchMsg", searchMsg.toUpperCase());
paramMap.put("searchDesc", searchDesc.toUpperCase());
// 전체 목록수 얻기
int totalCount = bapCodeDao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = bapCodeDao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String msg) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("msg", msg);
return bapCodeDao.selectDetail( paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception {
bapCodeDao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
bapCodeDao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
bapCodeDao.delete(paramMap);
}
}
@@ -0,0 +1,130 @@
package com.eactive.eai.rms.bap.manage.comm.code;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.bat.manage.comm.code.BatCodeService;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class ComErrMessageManController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapCodeService")
private BapCodeService bapCodeService;
@Autowired
@Qualifier("batCodeService")
private BatCodeService batCodeService;
@RequestMapping(value= "/bap/admin/common/comErrMessageMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/comErrMessageMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo ,String searchMsg, String searchDesc, String searchSvrDstcd) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if(searchMsg != null && searchDesc != null && searchSvrDstcd != null && "BAT".equals(searchSvrDstcd)){
map = batCodeService.selectList( pageVo.getStartNum(), pageVo.getEndNum(), searchMsg, searchDesc);
}else if (searchMsg != null && searchDesc != null){
map = bapCodeService.selectList( pageVo.getStartNum(), pageVo.getEndNum(), searchMsg, searchDesc);
}
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comErrMessageMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String msg, String searchSvrDstcd) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
map = batCodeService.selectDetail(msg);
}else{
map = bapCodeService.selectDetail(msg);
}
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comErrMessageMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap, String searchSvrDstcd) throws Exception {
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
paramMap.put("msgId", paramMap.get("msg"));
batCodeService.insert(paramMap);
}else{
bapCodeService.insert(paramMap);
}
CommonCommand command = new CommonCommand("com.eactive.eai.agent.code.UpdateCodeMessageCommand",(String)paramMap.get("msg"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/comErrMessageMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap , String searchSvrDstcd) throws Exception {
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
paramMap.put("msgId", paramMap.get("msg"));
batCodeService.update(paramMap);
}else{
bapCodeService.update(paramMap);
}
CommonCommand command = new CommonCommand("com.eactive.eai.agent.code.UpdateCodeMessageCommand",(String)paramMap.get("msg"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/comErrMessageMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap , String searchSvrDstcd) throws Exception {
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
paramMap.put("msgId", paramMap.get("msg"));
batCodeService.delete(paramMap);
}else{
bapCodeService.delete(paramMap);
}
CommonCommand command = new CommonCommand("com.eactive.eai.agent.code.RemoveCodeMessageCommand",(String)paramMap.get("msg"));
agentUtilService.broadcast(command);
return null;
}
}
@@ -0,0 +1,98 @@
package com.eactive.eai.rms.bap.manage.comm.lifecycle;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapLifecycleController extends BapBaseAnnotationController {
@Autowired
@Qualifier("BapLifecycleService")
private BapLifecycleService service;
@RequestMapping(value= "/bap/admin/common/lifecycleMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/lifecycleMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo ) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum());
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/lifecycleMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
map = service.selectDetail(map);
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/lifecycleMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map ) throws Exception {
service.insert(map);
return null;
}
@RequestMapping(value= "/bap/admin/common/lifecycleMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map ) throws Exception {
service.update(map);
return null;
}
@RequestMapping(value= "/bap/admin/common/lifecycleMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map ) throws Exception {
service.delete(map);
return null;
}
}
@@ -0,0 +1,39 @@
package com.eactive.eai.rms.bap.manage.comm.lifecycle;
import java.util.HashMap;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("BapLifecycleDao")
@SuppressWarnings("deprecation")
public class BapLifecycleDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapLifecycle.selectListCount", param);
}
@SuppressWarnings("unchecked")
public List<HashMap<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return template.queryForList("BapLifecycle.selectList", param);
}
@SuppressWarnings("unchecked")
public HashMap<String, Object> selectDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapLifecycle.selectDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapLifecycle.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapLifecycle.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapLifecycle.delete", paramMap);
}
}
@@ -0,0 +1,56 @@
package com.eactive.eai.rms.bap.manage.comm.lifecycle;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("BapLifecycleService")
public class BapLifecycleService extends BapBaseService {
@Autowired
@Qualifier("BapLifecycleDao")
private BapLifecycleDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum ) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<HashMap<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(HashMap<String,Object>paraMap) throws Exception {
return dao.selectDetail( paraMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
}
@@ -0,0 +1,120 @@
package com.eactive.eai.rms.bap.manage.comm.lifecycle;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.bat.manage.comm.lifecycle.BatLifecycleService;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class ComLifecycleController extends BapBaseAnnotationController {
@Autowired
@Qualifier("BapLifecycleService")
private BapLifecycleService bapService;
@Autowired
@Qualifier("BatLifecycleService")
private BatLifecycleService batService;
@RequestMapping(value= "/bap/admin/common/comLifecycleMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/comLifecycleMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , String searchSvrDstcd) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
map = batService.selectList( pageVo.getStartNum(), pageVo.getEndNum());
}else{
map = bapService.selectList( pageVo.getStartNum(), pageVo.getEndNum());
}
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comLifecycleMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> paramMap, String searchSvrDstcd) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
map = batService.selectDetail(paramMap);
}else{
map = bapService.selectDetail(paramMap);
}
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comLifecycleMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map , String searchSvrDstcd) throws Exception {
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
batService.insert(map);
}else{
bapService.insert(map);
}
return null;
}
@RequestMapping(value= "/bap/admin/common/comLifecycleMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map , String searchSvrDstcd) throws Exception {
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
batService.update(map);
}else{
bapService.update(map);
}
return null;
}
@RequestMapping(value= "/bap/admin/common/comLifecycleMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map , String searchSvrDstcd) throws Exception {
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
batService.delete(map);
}else{
bapService.delete(map);
}
return null;
}
}
@@ -0,0 +1,115 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class BapAdapterPropertyController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapAdapterPropertyService")
private BapAdapterPropertyService service;
@RequestMapping(value= "/bap/admin/common/adapterPropertyMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/adapterPropertyMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String,Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(),paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/adapterPropertyMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,String prptyGroupName) throws Exception {
HashMap<String, Object> map = service.selectDetail(prptyGroupName);
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/adapterPropertyMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.insert(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adptproperty.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/adapterPropertyMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.update(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.adptproperty.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/adapterPropertyMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, String prptyGroupName ) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("prptyGroupName", prptyGroupName);
service.delete(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.RemovePropertyCommand",prptyGroupName);
agentUtilService.broadcast(command);
return null;
}
}
@@ -0,0 +1,50 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapAdapterPropertyDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapAdapterPropertyDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapAdapterProperty.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapAdapterProperty.selectList", param);
}
public HashMap<String, Object> propertyGroupDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapAdapterProperty.propertyGroupDetail", param);
}
public List<Map<String, Object>> propertyDetail(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapAdapterProperty.propertyDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapAdapterProperty.insert", paramMap);
}
public void insertProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapAdapterProperty.insertProperty", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapAdapterProperty.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapAdapterProperty.delete", paramMap);
}
public void deleteProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapAdapterProperty.deleteProperty", paramMap);
}
}
@@ -0,0 +1,87 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapAdapterPropertyService")
public class BapAdapterPropertyService extends BapBaseService {
@Autowired
@Qualifier("bapAdapterPropertyDao")
private BapAdapterPropertyDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String,Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String prptyGroupName) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("prptyGroupName", prptyGroupName);
HashMap<String, Object> detail = dao.propertyGroupDetail(paramMap);
List<Map<String, Object>> list = dao.propertyDetail(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("detail", detail);
map.put("rows", list);
return map;
}
public void insert(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.insert(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName", StringEscapeUtils.unescapeHtml(map.get("PRPTYNAME").toString()));
data.put("prpty2Val", StringEscapeUtils.unescapeHtml(map.get("PRPTY2VAL").toString()));
dao.insertProperty(data);
}
}
public void update(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.update(paramMap);
dao.deleteProperty(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName", StringEscapeUtils.unescapeHtml(map.get("PRPTYNAME").toString()));
data.put("prpty2Val", StringEscapeUtils.unescapeHtml(map.get("PRPTY2VAL").toString()));
dao.insertProperty(data);
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
dao.deleteProperty(paramMap);
}
}
@@ -0,0 +1,132 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class BapPropertyController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapPropertyService")
private BapPropertyService service;
@RequestMapping(value= "/bap/admin/common/propertyMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/propertyMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String,Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/propertyMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,String prptyGroupName) throws Exception {
HashMap<String, Object> map = service.selectDetail(prptyGroupName);
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/propertyMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.insert(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/propertyMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.update(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/propertyMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, String prptyGroupName ) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("prptyGroupName", prptyGroupName);
service.delete(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.RemovePropertyCommand",prptyGroupName);
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/propertyMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map) throws Exception {
HashMap<String, Object> propDetail = service.selectDetail(map.get("prptyGroupName").toString());
propDetail.putAll(map);
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInsertSqlForProperty(propDetail));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/propertyMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,54 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapPropertyDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapPropertyDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapProperty.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapProperty.selectList", param);
}
public HashMap<String, Object> propertyGroupDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapProperty.propertyGroupDetail", param);
}
public List<Map<String, Object>> propertyDetail(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapProperty.propertyDetail", param);
}
public HashMap<String, Object> getProperties(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapProperty.getProperties", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapProperty.insert", paramMap);
}
public void insertProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapProperty.insertProperty", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapProperty.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapProperty.delete", paramMap);
}
public void deleteProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapProperty.deleteProperty", paramMap);
}
}
@@ -0,0 +1,180 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapPropertyService")
public class BapPropertyService extends BapBaseService {
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String prptyGroupName) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("prptyGroupName", prptyGroupName);
HashMap<String, Object> detail = dao.propertyGroupDetail(paramMap);
List<Map<String, Object>> list = dao.propertyDetail(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("detail", detail);
map.put("rows", list);
return map;
}
public void insert(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.insert(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName", StringEscapeUtils.unescapeHtml(map.get("PRPTYNAME").toString()));
data.put("prpty2Val", StringEscapeUtils.unescapeHtml(map.get("PRPTY2VAL").toString()));
dao.insertProperty(data);
}
}
public void update(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.update(paramMap);
dao.deleteProperty(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName", StringEscapeUtils.unescapeHtml(map.get("PRPTYNAME").toString()));
data.put("prpty2Val", StringEscapeUtils.unescapeHtml(map.get("PRPTY2VAL").toString()));
dao.insertProperty(data);
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
dao.deleteProperty(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInsertSqlForProperty(HashMap<String, Object> propDetail) throws Exception {
StringBuffer propInsertSql = new StringBuffer();
HashMap<String, Object> detail = (HashMap<String, Object>)propDetail.get("detail");
List<Map<String, Object>> propList = (List<Map<String, Object>>)propDetail.get("rows");
// Property Group (TSEAIBP01)
List<String> columnGroupArr = new ArrayList<String>();
String[] columnGroupList = {"PRPTYGROUPNAME","PRPTYGROUPDESC"};
columnGroupArr = Arrays.asList(columnGroupList);
propInsertSql.append("INSERT INTO EAIPKG.TSEAIBP01 (");
// 필드명 입력
for (String column : columnGroupArr) {
propInsertSql.append((column.equals(columnGroupArr.get(columnGroupArr.size()-1))) ? column : column+",");
}
propInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnGroupArr) {
if (column.equals(columnGroupArr.get(columnGroupArr.size()-1))) {
propInsertSql.append("'"+(detail.get(column) != null ? detail.get(column) : "")+"');\n");
} else {
propInsertSql.append("'"+(detail.get(column) != null ? detail.get(column) : "")+"',");
}
}
// Property Detail (TSEAIBP02)
List<String> columnPropArr = new ArrayList<String>();
String[] columnPropList = {"PRPTYGROUPNAME","PRPTYNAME","PRPTY2VAL"};
columnPropArr = Arrays.asList(columnPropList);
for (Map<String, Object> prop : propList) {
propInsertSql.append("INSERT INTO EAIPKG.TSEAIBP02 (");
// 필드명 입력
for (String column : columnPropArr) {
propInsertSql.append((column.equals(columnPropArr.get(columnPropArr.size()-1))) ? column : column+",");
}
propInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnPropArr) {
if (column.equals("PRPTYGROUPNAME")) {
propInsertSql.append("'"+detail.get("PRPTYGROUPNAME")+"',");
} else if (column.equals(columnPropArr.get(columnPropArr.size()-1))) {
propInsertSql.append("'"+(prop.get(column) != null ? prop.get(column) : "")+"');\n");
} else {
propInsertSql.append("'"+(prop.get(column) != null ? prop.get(column) : "")+"',");
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (propDetail.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+propDetail.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = propInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(propInsertSql.toString(), "BAP_"+propDetail.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = dao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,115 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class BapTelePropertyController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapTelePropertyService")
private BapTelePropertyService service;
@RequestMapping(value= "/bap/admin/common/telePropertyMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/telePropertyMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String,Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/telePropertyMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,String prptyGroupName) throws Exception {
HashMap<String, Object> map = service.selectDetail(prptyGroupName);
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/telePropertyMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.insert(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/telePropertyMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData ) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
service.update(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/telePropertyMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, String prptyGroupName ) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("prptyGroupName", prptyGroupName);
service.delete(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.RemovePropertyCommand",prptyGroupName);
agentUtilService.broadcast(command);
return null;
}
}
@@ -0,0 +1,52 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapTelePropertyDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapTelePropertyDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapTeleProperty.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapTeleProperty.selectList", param);
}
public List<Map<String, Object>> selectPropertyGroupList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapTeleProperty.selectPropertyGroupList", param);
}
public HashMap<String, Object> propertyGroupDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapTeleProperty.propertyGroupDetail", param);
}
public List<Map<String, Object>> propertyDetail(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapTeleProperty.propertyDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapTeleProperty.insert", paramMap);
}
public void insertProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapTeleProperty.insertProperty", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapTeleProperty.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapTeleProperty.delete", paramMap);
}
public void deleteProperty(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapTeleProperty.deleteProperty", paramMap);
}
}
@@ -0,0 +1,93 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapTelePropertyService")
public class BapTelePropertyService extends BapBaseService {
@Autowired
@Qualifier("bapTelePropertyDao")
private BapTelePropertyDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String,Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String prptyGroupName) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("prptyGroupName", prptyGroupName);
HashMap<String, Object> detail = dao.propertyGroupDetail(paramMap);
List<Map<String, Object>> list = dao.propertyDetail(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("detail", detail);
map.put("rows", list);
return map;
}
public List<Map<String, Object>> selectPropertyGroupList(String key1, String key2) throws Exception {
// 프라퍼티 조회 -> key1{key2}
HashMap paramMap = new HashMap();
paramMap.put("key1", key1);
paramMap.put("key2", key2);
return dao.selectPropertyGroupList(paramMap);
}
public void insert(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.insert(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName", StringEscapeUtils.unescapeHtml(map.get("PRPTYNAME").toString()));
data.put("prpty2Val", StringEscapeUtils.unescapeHtml(map.get("PRPTY2VAL").toString()));
dao.insertProperty(data);
}
}
public void update(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.update(paramMap);
dao.deleteProperty(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("prptyName",StringEscapeUtils.unescapeHtml(map.get("PRPTYNAME").toString()));
data.put("prpty2Val",StringEscapeUtils.unescapeHtml(map.get("PRPTY2VAL").toString()));
dao.insertProperty(data);
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
dao.deleteProperty(paramMap);
}
}
@@ -0,0 +1,170 @@
package com.eactive.eai.rms.bap.manage.comm.property;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.bat.manage.comm.property.BatPropertyService;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class ComPropertyController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapPropertyService")
private BapPropertyService bapService;
@Autowired
@Qualifier("batPropertyService")
private BatPropertyService batService;
@RequestMapping(value= "/bap/admin/common/comPropertyMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/comPropertyMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String,Object> paramMap, String searchSvrDstcd) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
paramMap.put("searchPrptyGroupId", paramMap.get("searchPrptyGroupName"));
paramMap.put("searchPrptyGroupName", paramMap.get("searchPrptyGroupDesc"));
map = batService.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
}else{
map = bapService.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
}
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comPropertyMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,String prptyGroupName, String searchSvrDstcd) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
map = batService.selectDetail(prptyGroupName);
}else{
map = bapService.selectDetail(prptyGroupName);
}
ModelAndView modelAndView = new ModelAndView("jsonView",map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comPropertyMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData , String searchSvrDstcd) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
batService.insert(map,list);
}else{
bapService.insert(map,list);
}
CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/comPropertyMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map, String gridData , String searchSvrDstcd) throws Exception {
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
batService.update(map,list);
}else{
bapService.update(map,list);
}
CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/comPropertyMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, String prptyGroupName , String searchSvrDstcd) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
if(null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)){
paramMap.put("prptyGroupId", prptyGroupName);
batService.delete(paramMap);
}else{
paramMap.put("prptyGroupName", prptyGroupName);
bapService.delete(paramMap);
}
CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.RemovePropertyCommand",prptyGroupName);
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/comPropertyMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map) throws Exception {
HashMap<String, Object> propDetail = new HashMap<String,Object>();
String searchSvrDstcd = map.get("searchSvrDstcd").toString();
ModelAndView modelAndView = null;
if (null!=searchSvrDstcd && "BAT".equals(searchSvrDstcd)) {
propDetail = batService.selectDetail(map.get("prptyGroupId").toString());
propDetail.putAll(map);
modelAndView = new ModelAndView("jsonView",batService.mkInsertSqlForProperty(propDetail));
} else {
propDetail = bapService.selectDetail(map.get("prptyGroupName").toString());
propDetail.putAll(map);
modelAndView = new ModelAndView("jsonView",bapService.mkInsertSqlForProperty(propDetail));
}
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/comPropertyMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,113 @@
package com.eactive.eai.rms.bap.manage.comm.server;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.combo.ComboService;
import com.eactive.eai.rms.common.combo.IbatisComboService;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapServerController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapServerService")
private BapServerService service;
@Autowired
private IbatisComboService ibatisComboService;
@RequestMapping(value= "/bap/admin/common/serverMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/serverMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo ) throws Exception {
HashMap<String, Object> map = service.selectList(pageVo.getStartNum(), pageVo.getEndNum());
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/serverMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String eaiSevrInstncName) throws Exception {
HashMap<String, Object> map = service.selectDetail(eaiSevrInstncName);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/serverMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map) throws Exception {
service.insert(map);
return null;
}
@RequestMapping(value= "/bap/admin/common/serverMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
service.update(paramMap);
return null;
}
@RequestMapping(value= "/bap/admin/common/serverMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
service.delete(paramMap);
return null;
}
@RequestMapping(value= "/bap/admin/common/serverMan.json",params = "cmd=LIST_INIT_COMBO")
public ModelAndView initCombo( HttpServletRequest request,
HttpServletResponse response,String eaiSvcName) throws Exception {
List<Map<String, Object>> listServer = ibatisComboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'YN' ");
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("serverRows" , listServer);
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
}
@@ -0,0 +1,49 @@
package com.eactive.eai.rms.bap.manage.comm.server;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapServerDao")
@SuppressWarnings({ "deprecation", "unchecked" })
public class BapServerDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapServer.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return template.queryForList("BapServer.selectList", param);
}
public HashMap<String, Object> selectDetail(HashMap<String, String> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapServer.selectDetail", param);
}
public List<Map<String, Object>> getEaiServerIpPort(HashMap<String, String> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapServer.getEaiServerIpPort", param);
}
public HashMap<String, Object> getEaiServerIpPortForActiveStandby(HashMap<String, String> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapServer.getEaiServerIpPortForActiveStandby", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapServer.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapServer.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapServer.delete", paramMap);
}
public void deleteNotMatchedBP03(Map<String, Object> paramMap) {
template.queryForObject("BapServer.deleteNotMatchedBP03", paramMap);
}
public void upsertServerListBP03(Map<String, Object> paramMap) {
template.queryForObject("BapServer.upsertServerListBP03", paramMap);
}
}
@@ -0,0 +1,75 @@
package com.eactive.eai.rms.bap.manage.comm.server;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapServerService")
public class BapServerService extends BapBaseService {
@Autowired
@Qualifier("bapServerDao")
private BapServerDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList( paramMap );
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String eaiSevrInstncName) throws Exception {
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("EAISevrInstncName", eaiSevrInstncName);
return dao.selectDetail( paramMap );
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
public List<Map<String, Object>> getEaiServerIpPort() throws Exception {
HashMap<String, String> paramMap = new HashMap<String, String>();
return dao.getEaiServerIpPort( paramMap );
}
public HashMap<String, Object> getEaiServerIpPortForActiveStandby() throws Exception {
HashMap<String, String> paramMap = new HashMap<String, String>();
return dao.getEaiServerIpPortForActiveStandby( paramMap );
}
public void transactionMergeBapServerList(List<Map<String, String>> serverList) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("serverList", serverList);
dao.deleteNotMatchedBP03(paramMap);
dao.upsertServerListBP03(paramMap);
}
}
@@ -0,0 +1,110 @@
package com.eactive.eai.rms.bap.manage.comm.sysinfo;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.login.SessionManager;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapSysinfoController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapSysinfoService")
private BapSysinfoService service;
@RequestMapping(value= "/bap/admin/common/sysinfoMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/common/sysinfoMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo ,@RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/sysinfoMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String sysCd) throws Exception {
HashMap<String, Object> map = service.selectDetail(sysCd);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/common/sysinfoMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap) throws Exception {
String userid = SessionManager.getUserId(request);
paramMap.put("userid", userid );
service.insert(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.sysinfo.UpdateSysinfoCommand",(String)paramMap.get("sysCd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/sysinfoMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
String userid = SessionManager.getUserId(request);
paramMap.put("userid", userid );
service.update(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.sysinfo.UpdateSysinfoCommand",(String)paramMap.get("sysCd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/common/sysinfoMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
service.delete(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.sysinfo.RemoveSysinfoCommand",(String)paramMap.get("sysCd"));
agentUtilService.broadcast(command);
return null;
}
}
@@ -0,0 +1,38 @@
package com.eactive.eai.rms.bap.manage.comm.sysinfo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapSysinfoDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapSysinfoDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapSysinfo.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapSysinfo.selectList", param);
}
public HashMap<String, Object> selectDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapSysinfo.selectDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapSysinfo.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapSysinfo.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapSysinfo.delete", paramMap);
}
}
@@ -0,0 +1,66 @@
package com.eactive.eai.rms.bap.manage.comm.sysinfo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.common.seed.Seed;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapSysinfoService")
public class BapSysinfoService extends BapBaseService {
@Autowired
@Qualifier("bapSysinfoDao")
private BapSysinfoDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String sysCd) throws Exception {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sysCd", sysCd);
HashMap<String, Object> map = dao.selectDetail( paramMap);
String password = (String)map.get("USERPASSWORD");
map.put("USERPASSWORD", Seed.decrypt(password));
return map;
}
public void update(HashMap<String, Object> paramMap) throws Exception {
String password = (String)paramMap.get("userPassword");
paramMap.put("userPassword", Seed.encrypt(password));
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
String password = (String)paramMap.get("userPassword");
paramMap.put("userPassword", Seed.encrypt(password));
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
}
@@ -0,0 +1,19 @@
package com.eactive.eai.rms.bap.manage.jspforselectlist;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("jspForSelectListFileDao")
@SuppressWarnings({"unchecked","deprecation"})
public class JspForSelectListFileDao extends SqlMapClientTemplateDao {
public List<Map<String,Object>> selectLogList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("JspForSelectListFile.selectLogListFile", param);
}
}
@@ -0,0 +1,52 @@
package com.eactive.eai.rms.bap.manage.jspforselectlist;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.common.context.MonitoringContext;
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
@Service("jspForSelectListFileService")
public class JspForSelectListFileService extends BapBaseService {
@Autowired
@Qualifier("monitoringContext")
private MonitoringContext monitoringContext;
@Autowired
@Qualifier("jspForSelectListFileDao")
private JspForSelectListFileDao dao;
public List<Map<String, Object>> selectLogListFile(String date) throws Exception {
String use = monitoringContext.getStringProperty(MonitoringContext.RMS_JSP_SELECT_USE);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
if("Y".equals(use)){
DataSourceType dataSourceType = DataSourceTypeManager.getDataSourceType("BAP");
DataSourceContextHolder.setDataSourceType(dataSourceType);
String schemaId = "";
if(dataSourceType != null && (dataSourceType.getSchema() != null)){ //취약점소스 수정 2020.08.25
schemaId = dataSourceType.getSchema();
}
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("schemaId",schemaId);
paramMap.put("date", date);
return dao.selectLogList(paramMap);
}else{
Map<String, Object> map = new HashMap<String, Object>();
map.put("errMsg", "현재 설정값='사용안함'으로 사용할 수 없습니다.");
list.add(map);
}
return list;
}
}
@@ -0,0 +1,159 @@
package com.eactive.eai.rms.bap.manage.message.classinfo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapClassInfoController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapClassInfoService")
private BapClassInfoService service;
@RequestMapping(value= "/bap/admin/message/classInfoMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/message/classInfoMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classInfoMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String key) throws Exception {
// key = TelgmClsName
HashMap<String, Object> map = service.selectDetail(key);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classInfoMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map ) throws Exception {
// 클래스명 공백 제거
map.replace("telgmClsName",map.get("telgmClsName").toString().trim());
service.insert(map);
return null;
}
@RequestMapping(value= "/bap/admin/message/classInfoMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
service.update(paramMap);
/* List<Map<String, Object>> list = service.getMsgGroupDstcd(paramMap);
if(list != null && list.size() > 1) {
for (int i = 0; i < list.size(); i++) {
Map<String, Object> hm = list.get(i);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",hm.get("MSGGROUPDSTCD"));
agentUtilService.broadcast(command);
}
}*/
return null;
}
@RequestMapping(value= "/bap/admin/message/classInfoMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
service.delete(paramMap);
//List<Map<String, Object>> list = service.getMsgGroupDstcd(paramMap);
/* if(list != null && list.size() > 1) {
for (int i = 0; i < list.size(); i++) {
Map<String, Object> hm = list.get(i);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",hm.get("MSGGROUPDSTCD"));
agentUtilService.broadcast(command);
}
}*/
return null;
}
@RequestMapping(value= "/bap/admin/message/classInfoMan.json",params = "cmd=LIST_DELETE")
public String deleteList(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
for (String telgmClsName : paramMap.get("telgmClsNameList").toString().split(",")) {
HashMap<String, Object> paramDetail = new HashMap<String,Object>();
paramDetail.put("telgmClsName", telgmClsName);
service.delete(paramDetail);
}
return null;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/classInfoMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
List<Map<String, Object>> telgmClsList = new ArrayList<Map<String, Object>>();
for (String searchTelgmClsName : map.get("searchTelgmClsNameList").toString().split(",")) {
HashMap<String, Object> telgmCls = service.selectDetail(searchTelgmClsName);
telgmClsList.add((Map<String, Object>)telgmCls.get("list"));
}
HashMap<String,Object> telgmClsInfo = new HashMap<String,Object>();
telgmClsInfo.put("list", telgmClsList);
telgmClsInfo.put("fileName", map.get("fileName"));
telgmClsInfo.put("svrType", map.get("svrType"));
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForClassInfo(telgmClsInfo));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classInfoMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,53 @@
package com.eactive.eai.rms.bap.manage.message.classinfo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapClassInfoDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapClassInfoDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
int totalcnt = (Integer)template.queryForObject("ClassInfo.count", param);
return totalcnt;
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("ClassInfo.list", param);
}
public HashMap<String, Object> selectDetail(String key) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
// key = TelgmClsName
param.put("telgmClsName", key);
return (HashMap<String, Object>)template.queryForObject("ClassInfo.detail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("ClassInfo.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("ClassInfo.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("ClassInfo.delete", paramMap);
}
public List<Map<String, Object>> getMsgGroupDstcd(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("ClassInfo.getMsgGroupDstcd", param);
}
}
@@ -0,0 +1,141 @@
package com.eactive.eai.rms.bap.manage.message.classinfo;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapClassInfoService")
public class BapClassInfoService extends BapBaseService {
@Autowired
@Qualifier("bapClassInfoDao")
private BapClassInfoDao dao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public int selectTotalCount(HashMap<String, Object> paramMap) throws Exception {
return dao.selectListCount(paramMap); // 전체 목록수 얻기
}
public HashMap<String, Object> selectDetail(String key) throws Exception {
HashMap<String, Object> list;
// key = TelgmClsName
list = dao.selectDetail(key);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
return map;
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
public List<Map<String, Object>> getMsgGroupDstcd(HashMap<String, Object> paramMap) throws Exception {
return dao.getMsgGroupDstcd(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInserSqlForClassInfo(HashMap<String, Object> classInfo) throws Exception {
StringBuffer classInfoInsertSql = new StringBuffer();
List<Map<String, Object>> classInfoList = (List<Map<String, Object>>)classInfo.get("list");
// CLASS INFO LIST into BR03
for (Map<String,Object> step : classInfoList) {
List<String> columnArr = new ArrayList<String>();
String[] columnList = {"TELGMCLSNAME","TELGMCLSDESC"};
columnArr = Arrays.asList(columnList);
classInfoInsertSql.append("INSERT INTO EAIPKG.TSEAIBR01 (");
// 필드명 입력
for (String column : columnArr) {
classInfoInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+",");
}
classInfoInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnArr) {
if (column.equals(columnArr.get(columnArr.size()-1))) {
classInfoInsertSql.append("'"+(step.containsKey(column) ? step.get(column) : "")+"');\n");
} else {
classInfoInsertSql.append("'"+(step.containsKey(column) ? step.get(column) : "")+"',");
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (classInfo.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+classInfo.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = classInfoInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(classInfoInsertSql.toString(), "BAP_"+classInfo.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,158 @@
package com.eactive.eai.rms.bap.manage.message.classmap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapClassMapController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapClassMapService")
private BapClassMapService service;
@RequestMapping(value= "/bap/admin/message/classMapMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/message/classMapMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String key) throws Exception {
// key = telgmClsID
HashMap<String, Object> map = service.selectDetail(key);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=LIST_DETAIL_COMBO")
public ModelAndView selectDetailCombo(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> paramMap) throws Exception {
// key = TelgmClsName
HashMap<String, Object> map = service.selectDetailCombo(paramMap);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map ) throws Exception {
// 전문클래스ID 공백 제거
map.replace("telgmClsID",map.get("telgmClsID").toString().trim());
service.insert(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.telegraminfo.UpdateTelegramInfoCommand", map.get("telgmClsID"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.update(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.telegraminfo.UpdateTelegramInfoCommand", map.get("telgmClsID"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.delete(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.telegraminfo.RemoveTelegramInfoCommand", map.get("telgmClsID"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=LIST_DELETE")
public String deleteList(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
for (String telgmClsId : paramMap.get("telgmClsIdList").toString().split(",")) {
HashMap<String, Object> paramDetail = new HashMap<String,Object>();
paramDetail.put("telgmClsID", telgmClsId);
service.delete(paramDetail);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.telegraminfo.RemoveTelegramInfoCommand", telgmClsId);
agentUtilService.broadcast(command);
}
return null;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/classMapMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
List<Map<String, Object>> telgmClsIdList = new ArrayList<Map<String, Object>>();
for (String searchTelgmClsId : map.get("searchTelgmClsIdList").toString().split(",")) {
HashMap<String, Object> telgmClsMap = service.selectDetail(searchTelgmClsId);
telgmClsIdList.add((Map<String, Object>)telgmClsMap.get("list"));
}
HashMap<String,Object> telgmClassMap = new HashMap<String,Object>();
telgmClassMap.put("list", telgmClsIdList);
telgmClassMap.put("fileName", map.get("fileName"));
telgmClassMap.put("svrType", map.get("svrType"));
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForClassMap(telgmClassMap));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/classMapMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,57 @@
package com.eactive.eai.rms.bap.manage.message.classmap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapClassMapDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapClassMapDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
int totalcnt = (Integer)template.queryForObject("ClassMap.count", param);
return totalcnt;
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("ClassMap.list", param);
}
public HashMap<String, Object> selectDetail(String key) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
// key = telgmClsID
param.put("telgmClsID", key);
return (HashMap<String, Object>)template.queryForObject("ClassMap.detail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("ClassMap.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("ClassMap.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("ClassMap.delete", paramMap);
}
public List<Map<String, Object>> getMsgMetaDstcd(HashMap<String,Object> map) throws Exception {
return (List<Map<String, Object>>)template.queryForList("ClassMap.getMsgMetaDstcd",map);
}
public List<Map<String, Object>> getTelgmClsName(HashMap<String,Object> map) throws Exception {
return (List<Map<String, Object>>)template.queryForList("ClassMap.getTelgmClsName",map);
}
}
@@ -0,0 +1,148 @@
package com.eactive.eai.rms.bap.manage.message.classmap;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapClassMapService")
public class BapClassMapService extends BapBaseService {
@Autowired
@Qualifier("bapClassMapDao")
private BapClassMapDao dao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public int selectTotalCount(HashMap<String, Object> paramMap) throws Exception {
return dao.selectListCount(paramMap); // 전체 목록수 얻기
}
public HashMap<String, Object> selectDetail(String key) throws Exception {
HashMap<String, Object> list;
// key = telgmClsID
list = dao.selectDetail(key);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetailCombo(HashMap<String,Object> paramMap) throws Exception {
List<Map<String, Object>> msgMetaDstList = dao.getMsgMetaDstcd(paramMap);
List<Map<String, Object>> clsNameList = dao.getTelgmClsName(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("msgMetaDstList", msgMetaDstList);
map.put("clsNameList", clsNameList);
return map;
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInserSqlForClassMap(HashMap<String, Object> classMapInfo) throws Exception {
StringBuffer classMapInsertSql = new StringBuffer();
List<Map<String, Object>> classMapList = (List<Map<String, Object>>)classMapInfo.get("list");
// FLOW STEP LIST into BR03
for (Map<String,Object> step : classMapList) {
List<String> columnArr = new ArrayList<String>();
String[] columnList = {"TELGMCLSID","TELGMCLSNAME","MSGMETADSTCD"};
columnArr = Arrays.asList(columnList);
classMapInsertSql.append("INSERT INTO EAIPKG.TSEAIBR05 (");
// 필드명 입력
for (String column : columnArr) {
classMapInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+",");
}
classMapInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnArr) {
if (column.equals(columnArr.get(columnArr.size()-1))) {
classMapInsertSql.append("'"+(step.containsKey(column) ? step.get(column) : "")+"');\n");
} else {
classMapInsertSql.append("'"+(step.containsKey(column) ? step.get(column) : "")+"',");
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (classMapInfo.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+classMapInfo.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = classMapInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(classMapInsertSql.toString(), "BAP_"+classMapInfo.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,186 @@
package com.eactive.eai.rms.bap.manage.message.flowrule;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class BapFlowRuleController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapFlowRuleService")
private BapFlowRuleService service;
@RequestMapping(value= "/bap/admin/message/flowRuleMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String key) throws Exception {
HashMap<String, Object> map = service.selectDetail(key);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map,String gridData ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
map.put("userid", userid );
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = (HashMap<String, Object>[])gson.fromJson(gridData, HashMap[].class);
service.insert(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.phaseinfo.UpdatePhaseInfoCommand", map.get("bjobBzwkPrcssDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map, String gridData ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
map.put("userid", userid );
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = (HashMap<String, Object>[])gson.fromJson(gridData, HashMap[].class);
service.update(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.phaseinfo.UpdatePhaseInfoCommand", map.get("bjobBzwkPrcssDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.delete(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.phaseinfo.RemovePhaseInfoCommand", map.get("bjobBzwkPrcssDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json",params = "cmd=LIST_POP_COMBO")
public ModelAndView selectDetailCombo(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectPopCombo(paramMap);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json", params = "cmd=LIST_SESSION")
public String putInSession(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HttpSession session = request.getSession();
String searchbjobBzwkPrcssDstcd = (String)paramMap.get("searchbjobBzwkPrcssDstcd");
if (searchbjobBzwkPrcssDstcd != null) {
session.setAttribute("searchbjobBzwkPrcssDstcd", searchbjobBzwkPrcssDstcd);
}
return null;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/flowRuleMan.excel",params = "cmd=LIST_GRID_TO_EXCEL")
public ModelAndView listGridToExcel(HttpServletRequest request, HttpServletResponse response, String gridData, String header, String headerTitle, String fileName, String merge) throws Exception {
HashMap<String,Object> resultMap = new HashMap<String,Object>();
Gson gson = new Gson();
HashMap<String, Object>[] list = gson.fromJson(gridData, HashMap[].class);
String[] headers = gson.fromJson(header, String[].class);
String[] headerTitles = gson.fromJson(headerTitle, String[].class);
HashMap<String, Object>[] lmerge = null;
if (merge !=null){
lmerge = gson.fromJson(merge, HashMap[].class);
}
resultMap.put("headers", headers);
resultMap.put("headerTitles", headerTitles);
resultMap.put("datas", list);
resultMap.put("fileName", fileName);
resultMap.put("merge", lmerge);
ModelAndView modelAndView = new ModelAndView("excelView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
String key = map.get("bjobBzwkPrcssDstcd").toString();
HashMap<String,Object> flowStageInfo = service.selectDetail(key);
flowStageInfo.putAll(map);
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForFlowRule(flowStageInfo));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowRuleMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,67 @@
package com.eactive.eai.rms.bap.manage.message.flowrule;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapFlowRuleDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapFlowRuleDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
int totalcnt = (Integer)template.queryForObject("FlowRule.count", param);
return totalcnt;
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("FlowRule.list", param);
}
public HashMap<String, Object> selectDetail(String key) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
// key = bjobBzwkPrcssDstcd
param.put("bjobBzwkPrcssDstcd", key);
return (HashMap<String, Object>)template.queryForObject("FlowRule.detail", param);
}
public List<Map<String, Object>> msgList(String key) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
// key = bjobBzwkPrcssDstcd
param.put("bjobBzwkPrcssDstcd", key);
return (List<Map<String, Object>>)template.queryForList("FlowRule.stageList" , param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("FlowRule.insert_br04", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("FlowRule.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("FlowRule.delete_br04", paramMap);
}
public void insertList(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("FlowRule.insert_br02", paramMap);
}
public void deleteList(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("FlowRule.delete_br02", paramMap);
}
public List<Map<String, Object>> getBjobStgeDstcd(HashMap<String,Object> map) throws Exception {
return (List<Map<String, Object>>)template.queryForList("FlowRule.getBjobStgeDstcd",map);
}
}
@@ -0,0 +1,211 @@
package com.eactive.eai.rms.bap.manage.message.flowrule;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapFlowRuleService")
public class BapFlowRuleService extends BapBaseService {
@Autowired
@Qualifier("bapFlowRuleDao")
private BapFlowRuleDao dao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String key) throws Exception {
// key = bjobBzwkPrcssDstcd
HashMap<String, Object> detail = dao.selectDetail(key);
List<Map<String, Object>> list = dao.msgList(key);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("detail", detail);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectPopCombo(HashMap<String,Object> paramMap) throws Exception {
List<Map<String, Object>> stgeDstcdList = dao.getBjobStgeDstcd(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("stgeDstcdList", stgeDstcdList);
return map;
}
public void update(HashMap<String, Object> paramMap, HashMap<String, Object>[] list )throws Exception {
dao.update(paramMap);
dao.deleteList(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("bjobBzwkPrcssDstcd",map.get("BJOBBZWKPRCSSDSTCD"));
data.put("bjobStgeSerno",map.get("BJOBSTGESERNO"));
data.put("bjobStgeDstcd",map.get("BJOBSTGEDSTCD"));
data.put("nextStgeDstcdName",map.get("NEXTSTGEDSTCDNAME"));
data.put("bjobStgePtrnName",map.get("BJOBSTGEPTRNNAME"));
data.put("telgmPtrnDstcd",map.get("TELGMPTRNDSTCD"));
data.put("telgmDtalsOperCd",map.get("TELGMDTALSOPERCD"));
data.put("bjobCmnTelgmTranCd",map.get("BJOBCMNTELGMTRANCD"));
data.put("toutVal",map.get("TOUTVAL"));
data.put("bjobIterNotms",map.get("BJOBITERNOTMS"));
data.put("telgmClsID",map.get("TELGMCLSID"));
data.put("cndnItemDcsnCtnt",map.get("CNDNITEMDCSNCTNT"));
data.put("cndnTelgmPtrnCd",map.get("CNDNTELGMPTRNCD"));
data.put("cndnTelgmMgtCd",map.get("CNDNTELGMMGTCD"));
data.put("cndnTranClsfiCd",map.get("CNDNTRANCLSFICD"));
data.put("cndnRspnsCd",map.get("CNDNRSPNSCD"));
data.put("bjobStgeFlxblCndnDesc",map.get("BJOBSTGEFLXBLCNDNDESC"));
data.put("tranPrcssPrity",map.get("TRANPRCSSPRITY"));
dao.insertList(data);
}
}
public void insert(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.insert(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.put("bjobBzwkPrcssDstcd",map.get("BJOBBZWKPRCSSDSTCD"));
data.put("bjobStgeSerno",map.get("BJOBSTGESERNO"));
data.put("bjobStgeDstcd",map.get("BJOBSTGEDSTCD"));
data.put("nextStgeDstcdName",map.get("NEXTSTGEDSTCDNAME"));
data.put("bjobStgePtrnName",map.get("BJOBSTGEPTRNNAME"));
data.put("telgmPtrnDstcd",map.get("TELGMPTRNDSTCD"));
data.put("telgmDtalsOperCd",map.get("TELGMDTALSOPERCD"));
data.put("bjobCmnTelgmTranCd",map.get("BJOBCMNTELGMTRANCD"));
data.put("toutVal",map.get("TOUTVAL"));
data.put("bjobIterNotms",map.get("BJOBITERNOTMS"));
data.put("telgmClsID",map.get("TELGMCLSID"));
data.put("cndnItemDcsnCtnt",map.get("CNDNITEMDCSNCTNT"));
data.put("cndnTelgmPtrnCd",map.get("CNDNTELGMPTRNCD"));
data.put("cndnTelgmMgtCd",map.get("CNDNTELGMMGTCD"));
data.put("cndnTranClsfiCd",map.get("CNDNTRANCLSFICD"));
data.put("cndnRspnsCd",map.get("CNDNRSPNSCD"));
data.put("bjobStgeFlxblCndnDesc",map.get("BJOBSTGEFLXBLCNDNDESC"));
data.put("tranPrcssPrity",map.get("TRANPRCSSPRITY"));
dao.insertList(data);
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
dao.deleteList(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInserSqlForFlowRule(HashMap<String, Object> stageInfo) throws Exception {
HashMap<String,Object> detail = (HashMap<String,Object>)stageInfo.get("detail");
List<HashMap<String,Object>> stageList = (List<HashMap<String,Object>>)stageInfo.get("list");
// FLOW RULE into BR04
StringBuffer flowRuleInsertSql = new StringBuffer();
flowRuleInsertSql.append("INSERT INTO EAIPKG.TSEAIBR04 (BJOBBZWKPRCSSDSTCD,FLOWRULEPTRNDESC) VALUES (");
flowRuleInsertSql.append("'"+(detail.containsKey("BJOBBZWKPRCSSDSTCD") ? detail.get("BJOBBZWKPRCSSDSTCD") : "")+"',");
flowRuleInsertSql.append("'"+(detail.containsKey("FLOWRULEPTRNDESC") ? detail.get("FLOWRULEPTRNDESC") : "")+"');\n");
// FLOW RULE STAGE LIST into BR02
for (HashMap<String,Object> stage : stageList) {
List<String> columnArr = new ArrayList<String>();
String[] columnList = {"BJOBBZWKPRCSSDSTCD","BJOBSTGESERNO","BJOBSTGEDSTCD","BJOBSTGEPTRNNAME","BJOBSTGEFLXBLCNDNDESC",
"TELGMPTRNDSTCD","TELGMDTALSOPERCD","BJOBCMNTELGMTRANCD","TOUTVAL","BJOBITERNOTMS","CNDNITEMDCSNCTNT",
"TRANPRCSSPRITY","TELGMCLSID","CNDNTELGMPTRNCD","CNDNTELGMMGTCD","CNDNTRANCLSFICD","CNDNRSPNSCD","NEXTSTGEDSTCDNAME"};
columnArr = Arrays.asList(columnList);
flowRuleInsertSql.append("INSERT INTO EAIPKG.TSEAIBR02 (");
// 필드명 입력
for (String column : columnArr) {
flowRuleInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+",");
}
flowRuleInsertSql.append(") VALUES (");
// 필드값 입력
String[] columnInt = {"TOUTVAL","BJOBITERNOTMS","TRANPRCSSPRITY"}; // Integer 컬럼 구분
for (String column : columnArr) {
if (column.equals(columnArr.get(columnArr.size()-1))) {
if (Arrays.asList(columnInt).contains(column)) {
flowRuleInsertSql.append((stage.containsKey(column) ? stage.get(column) : 0)+");\n");
} else {
flowRuleInsertSql.append("'"+(stage.containsKey(column) ? stage.get(column) : "")+"');\n");
}
} else {
if (Arrays.asList(columnInt).contains(column)) {
flowRuleInsertSql.append((stage.containsKey(column) ? stage.get(column) : 0)+",");
} else {
flowRuleInsertSql.append("'"+(stage.containsKey(column) ? stage.get(column) : "")+"',");
}
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (stageInfo.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+stageInfo.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = flowRuleInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(flowRuleInsertSql.toString(), "BAP_"+stageInfo.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,163 @@
package com.eactive.eai.rms.bap.manage.message.flowstep;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapFlowStepController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapFlowStepService")
private BapFlowStepService service;
@RequestMapping(value= "/bap/admin/message/flowStepMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/message/flowStepMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
// key = telgmClsID
HashMap<String, Object> map = service.selectDetail(paramMap);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=LIST_DETAIL_COMBO")
public ModelAndView selectDetailCombo(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> paramMap) throws Exception {
// key = TelgmClsName
HashMap<String, Object> map = service.selectDetailCombo(paramMap);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map ) throws Exception {
service.insert(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.nodeinfo.UpdateNodeInfoCommand", map.get("bjobBzwkPrcssDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.update(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.nodeinfo.UpdateNodeInfoCommand", map.get("bjobBzwkPrcssDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.delete(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.nodeinfo.RemoveNodeInfoCommand", map.get("bjobBzwkPrcssDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=LIST_DELETE")
public String deleteList(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
String[] bjobBzwkPrcssDstcdList = map.get("bjobBzwkPrcssDstcdList").toString().split(",");
String[] bjobStgeDstcdList = map.get("bjobStgeDstcdList").toString().split(",");
for (int i=0; i<bjobBzwkPrcssDstcdList.length; i++) {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("bjobBzwkPrcssDstcd", bjobBzwkPrcssDstcdList[i]);
paramMap.put("bjobStgeDstcd", bjobStgeDstcdList[i]);
service.delete(paramMap);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.telegraminfo.RemoveTelegramInfoCommand", bjobBzwkPrcssDstcdList[i]);
agentUtilService.broadcast(command);
}
return null;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/flowStepMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
List<Map<String, Object>> flowStepInfoList = new ArrayList<Map<String, Object>>();
String[] searchBjobBzwkPrcssDstcdList = map.get("searchBjobBzwkPrcssDstcdList").toString().split(",");
String[] searchBjobStgeDstcdList = map.get("searchBjobStgeDstcdList").toString().split(",");
for (int i=0; i<searchBjobBzwkPrcssDstcdList.length; i++) {
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("key", searchBjobBzwkPrcssDstcdList[i]);
paramMap.put("key2", searchBjobStgeDstcdList[i]);
HashMap<String, Object> flowStepMap = service.selectDetail(paramMap);
flowStepInfoList.add((Map<String, Object>)flowStepMap.get("list"));
}
HashMap<String,Object> flowStepInfo = new HashMap<String,Object>();
flowStepInfo.put("list", flowStepInfoList);
flowStepInfo.put("fileName", map.get("fileName"));
flowStepInfo.put("svrType", map.get("svrType"));
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForFlowSteps(flowStepInfo));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/flowStepMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,54 @@
package com.eactive.eai.rms.bap.manage.message.flowstep;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapFlowStepDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapFlowStepDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
int totalcnt = (Integer)template.queryForObject("FlowStep.count", param);
return totalcnt;
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("FlowStep.list", param);
}
public HashMap<String, Object> selectDetail(HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
// paramMap {key = bjobBzwkPrcssDstcd, key2 = bjobStgeDstcd }
param.put("bjobBzwkPrcssDstcd", paramMap.get("key"));
param.put("bjobStgeDstcd", paramMap.get("key2"));
return (HashMap<String, Object>)template.queryForObject("FlowStep.detail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("FlowStep.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("FlowStep.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("FlowStep.delete", paramMap);
}
public List<Map<String, Object>> getTelgmClsID(HashMap<String,Object> map) throws Exception {
return (List<Map<String, Object>>)template.queryForList("FlowStep.getTelgmClsID",map);
}
}
@@ -0,0 +1,156 @@
package com.eactive.eai.rms.bap.manage.message.flowstep;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapFlowStepService")
public class BapFlowStepService extends BapBaseService {
@Autowired
@Qualifier("bapFlowStepDao")
private BapFlowStepDao dao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public int selectTotalCount(HashMap<String, Object> paramMap) throws Exception {
return dao.selectListCount(paramMap); // 전체 목록수 얻기
}
public HashMap<String, Object> selectDetail(HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> list;
// paramMap {key = bjobBzwkPrcssDstcd, key2 = bjobStgeDstcd }
list = dao.selectDetail(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetailCombo(HashMap<String,Object> paramMap) throws Exception {
List<Map<String, Object>> clsIDList = dao.getTelgmClsID(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("clsIDList", clsIDList);
return map;
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInserSqlForFlowSteps(HashMap<String, Object> flowStepInfo) throws Exception {
StringBuffer flowStepInsertSql = new StringBuffer();
List<Map<String, Object>> flowStepList = (List<Map<String, Object>>)flowStepInfo.get("list");
// FLOW STEP LIST into BR03
for (Map<String,Object> step : flowStepList) {
List<String> columnArr = new ArrayList<String>();
String[] columnList = {"BJOBBZWKPRCSSDSTCD","BJOBSTGEDSTCD","BJOBSTGEPTRNNAME","BJOBFLOWCMPONAME","TELGMCLSID","UNITTELGMLEN","BJOBNODEDESC"};
columnArr = Arrays.asList(columnList);
flowStepInsertSql.append("INSERT INTO EAIPKG.TSEAIBR03 (");
// 필드명 입력
for (String column : columnArr) {
flowStepInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+",");
}
flowStepInsertSql.append(") VALUES (");
// 필드값 입력
String[] columnInt = {"UNITTELGMLEN"}; // Integer 컬럼 구분
for (String column : columnArr) {
if (column.equals(columnArr.get(columnArr.size()-1))) {
if (Arrays.asList(columnInt).contains(column)) {
flowStepInsertSql.append((step.containsKey(column) ? step.get(column) : 0)+");\n");
} else {
flowStepInsertSql.append("'"+(step.containsKey(column) ? step.get(column) : "")+"');\n");
}
} else {
if (Arrays.asList(columnInt).contains(column)) {
flowStepInsertSql.append((step.containsKey(column) ? step.get(column) : 0)+",");
} else {
flowStepInsertSql.append("'"+(step.containsKey(column) ? step.get(column) : "")+"',");
}
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (flowStepInfo.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+flowStepInfo.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = flowStepInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(flowStepInsertSql.toString(), "BAP_"+flowStepInfo.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,209 @@
package com.eactive.eai.rms.bap.manage.message.messageMeta;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.google.gson.Gson;
@Controller
public class BapMessageMetaController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapMessageMetaService")
private BapMessageMetaService service;
@RequestMapping(value= "/bap/admin/message/messageMetaMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String msgMetaDstcd) throws Exception {
HashMap<String, Object> map = service.selectDetail(msgMetaDstcd);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map,String gridData ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
map.put("userid", userid );
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = (HashMap<String, Object>[])gson.fromJson(gridData, HashMap[].class);
service.insert(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",map.get("msgMetaDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map, String gridData ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
map.put("userid", userid );
Gson gson = new Gson();
@SuppressWarnings("unchecked")
HashMap<String, Object>[] list = (HashMap<String, Object>[])gson.fromJson(gridData, HashMap[].class);
service.update(map,list);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",map.get("msgMetaDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.delete(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.RemoveTelegramCommand",map.get("msgMetaDstcd"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=LIST_DELETE")
public String deleteList(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
for (String msgMetaDstcd : paramMap.get("msgMetaDstcdList").toString().split(",")) {
HashMap<String, Object> paramDetail = new HashMap<String,Object>();
paramDetail.put("msgMetaDstcd", msgMetaDstcd);
service.delete(paramDetail);
}
return null;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=CLONE")
public ModelAndView clone(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
String msgMetaDstcd = map.get("msgMetaDstcd").toString();
HashMap<String, Object> detailMap = service.selectDetail(msgMetaDstcd);
HashMap<String, Object> detail = (HashMap<String, Object>)detailMap.get("detail");
List<Map<String, Object>> list = (List<Map<String, Object>>)detailMap.get("list");
// detail insert 데이터키 치환 (insert_bm03)
String newMsgMetaDstcd = map.get("newMsgMetaDstcd").toString();
detail.put("msgMetaDstcd", newMsgMetaDstcd);
detail.put("msgDesc" , map.get("newMsgDesc") != null ? map.get("newMsgDesc") : detail.get("MSGDESC"));
detail.put("thisMsgUseYn", detail.get("THISMSGUSEYN"));
String searchMsgMetaDstcd = map.get("searchMsgMetaDstcd").toString();
String cloneMsgMetaDstcd = map.get("cloneMsgMetaDstcd").toString();
// gridList insert 데이터키 치환 (insert_bm02)
HashMap<String, Object>[] gridList = list.toArray(new HashMap[list.size()]);
for (int i=0; i<list.size(); i++) {
Map<String, Object> listMap = (Map<String, Object>)list.get(i);
gridList[i].put("msgMetaDstcd" , ((String)listMap.get("MSGMETADSTCD")).replace(searchMsgMetaDstcd,cloneMsgMetaDstcd));
gridList[i].put("thisMsgUseYn" , listMap.get("THISMSGCLMNUSEYN"));
// 메시지항목명을 치환하면 메시지항목 테이블(BM01)에 항목이 없으므로 메타 Item 리스트에 보이지 않음 --> 치환 안함으로 변경
// gridList[i].replace("MSGITEMDSTICNAME" , ((String)listMap.get("MSGITEMDSTICNAME")).replace(searchMsgMetaDstcd,cloneMsgMetaDstcd));
gridList[i].replace("MSGITEMDSTICNAME" , listMap.get("MSGITEMDSTICNAME"));
gridList[i].replace("MSGCLMNSEQ" , listMap.get("MSGCLMNSEQ"));
}
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
detail.put("userid", userid );
service.insert(detail,gridList);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",map.get("newMsgMetaDstcd"));
agentUtilService.broadcast(command);
HashMap<String, Object> result = new HashMap<String, Object>();
result.put("detail",detail);
result.put("list",gridList);
ModelAndView modelAndView = new ModelAndView("jsonView", result);
return modelAndView;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
List<Map<String, Object>> msgMetaList = new ArrayList<Map<String, Object>>();
for (String searchMsgMetaDstcd : map.get("searchMsgMetaDstcdList").toString().split(",")) {
HashMap<String, Object> msgMeta = service.selectDetail(searchMsgMetaDstcd);
msgMetaList.add((Map<String, Object>)msgMeta.get("detail"));
}
HashMap<String,Object> messageMeta = new HashMap<String,Object>();
messageMeta.put("list", msgMetaList);
messageMeta.put("userid",com.eactive.eai.rms.common.login.SessionManager.getUserId(request));
messageMeta.put("fileName", map.get("fileName"));
messageMeta.put("svrType", map.get("svrType"));
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForMsgMeta(messageMeta));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/messageMetaMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,64 @@
package com.eactive.eai.rms.bap.manage.message.messageMeta;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapMessageMetaDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapMessageMetaDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
int totalcnt = (Integer)template.queryForObject("MessageMeta.count", param);
return totalcnt;
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("MessageMeta.list", param);
}
public HashMap<String, Object> selectDetail(String msgMetaDstcd) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
param.put("msgMetaDstcd", msgMetaDstcd);
return (HashMap<String, Object>)template.queryForObject("MessageMeta.detail", param);
}
public List<Map<String, Object>> msgList(String msgMetaDstcd) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
param.put("msgMetaDstcd", msgMetaDstcd);
return (List<Map<String, Object>>)template.queryForList("MessageMeta.msgList" , param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("MessageMeta.insert_bm03", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("MessageMeta.update_bm03", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("MessageMeta.delete_bm03", paramMap);
}
public void insertList(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("MessageMeta.insert_bm02", paramMap);
}
public void deleteList(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("MessageMeta.delete_bm02", paramMap);
}
}
@@ -0,0 +1,255 @@
package com.eactive.eai.rms.bap.manage.message.messageMeta;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapMessageMetaService")
public class BapMessageMetaService extends BapBaseService {
@Autowired
@Qualifier("bapMessageMetaDao")
private BapMessageMetaDao dao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public int selectTotalCount(HashMap<String, Object> paramMap) throws Exception {
return dao.selectListCount(paramMap); // 전체 목록수 얻기
}
public HashMap<String, Object> selectDetail(String msgMetaDstcd) throws Exception {
HashMap<String, Object> detail = dao.selectDetail(msgMetaDstcd);
List<Map<String, Object>> list = dao.msgList(msgMetaDstcd);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("detail", detail);
map.put("list", list);
return map;
}
public void update(HashMap<String, Object> paramMap, HashMap<String, Object>[] list )throws Exception {
dao.update(paramMap);
dao.deleteList(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("msgClmnSeq",map.get("MSGCLMNSEQ"));
data.put("msgItemDsticName",map.get("MSGITEMDSTICNAME"));
dao.insertList(data);
}
}
public void insert(HashMap<String, Object> paramMap, HashMap<String, Object>[] list) throws Exception {
dao.insert(paramMap);
HashMap<String, Object> data ;
for(HashMap<String, Object> map : list){
data = new HashMap<String, Object>();
data.putAll(paramMap);
data.put("msgClmnSeq",map.get("MSGCLMNSEQ"));
data.put("msgItemDsticName",map.get("MSGITEMDSTICNAME"));
dao.insertList(data);
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
dao.deleteList(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInserSqlForMsgMeta(HashMap<String, Object> msgMetaMap) throws Exception {
StringBuffer msgMetaInsertSql = new StringBuffer();
String[] columnUserId = {"THISMSGREGSNTID","THISMSGAMNDRID","THISMSGCLMNREGSNTID","THISMSGCLMNAMNDRID"}; // userID 입력컬럼 구분
String[] columnDateTime = {"THISMSGREGIHMS","THISMSGAMNDHMS","THISMSGCLMNREGIHMS","THISMSGCLMNAMNDHMS"}; // DateTime 입력컬럼 구분
List<Map<String, Object>> msgMetaList = (List<Map<String, Object>>)msgMetaMap.get("list");
String userid = msgMetaMap.containsKey("userid") ? msgMetaMap.get("userid").toString() : "";
for (Map<String,Object> meta : msgMetaList) {
// MESSAGE META LIST into BM03
List<String> columnArr = new ArrayList<String>();
String[] columnList = {"MSGMETADSTCD","MSGDESC","THISMSGUSEYN","THISMSGREGSNTID","THISMSGREGIHMS","THISMSGAMNDRID","THISMSGAMNDHMS"};
columnArr = Arrays.asList(columnList);
msgMetaInsertSql.append("INSERT INTO EAIPKG.TSEAIBM03 (");
// 필드명 입력
for (String column : columnArr) {
msgMetaInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+",");
}
msgMetaInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnArr) {
if (column.equals(columnArr.get(columnArr.size()-1))) {
if (Arrays.asList(columnUserId).contains(column)) {
msgMetaInsertSql.append("'"+userid+"');\n");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'));\n");
} else {
msgMetaInsertSql.append("'"+(meta.containsKey(column) ? meta.get(column) : "")+"');\n");
}
} else {
if (Arrays.asList(columnUserId).contains(column)) {
msgMetaInsertSql.append("'"+userid+"',");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),");
} else {
msgMetaInsertSql.append("'"+(meta.containsKey(column) ? meta.get(column) : "")+"',");
}
}
}
HashMap<String, Object> metaMap = selectDetail(meta.get("MSGMETADSTCD").toString());
List<Map<String, Object>> metaItemList = (List<Map<String, Object>>)metaMap.get("list");
// MESSAGE META LIST into BM02
for (Map<String, Object> metaItem : metaItemList) {
List<String> columnItemArr = new ArrayList<String>();
String[] columnItemList = {"MSGMETADSTCD","MSGCLMNSEQ","MSGITEMDSTICNAME","THISMSGCLMNUSEYN","THISMSGREGSNTID","THISMSGREGIHMS","THISMSGAMNDRID","THISMSGAMNDHMS"};
columnItemArr = Arrays.asList(columnItemList);
msgMetaInsertSql.append("INSERT INTO EAIPKG.TSEAIBM02 (MSGGROUPDSTCD,");
// 필드명 입력
for (String columnItem : columnItemArr) {
if (columnItem.equals("MSGMETADSTCD")) continue;
msgMetaInsertSql.append((columnItem.equals(columnItemArr.get(columnItemArr.size()-1))) ? columnItem : columnItem+",");
}
msgMetaInsertSql.append(") VALUES (");
// 필드값 입력
for (String column : columnItemArr) {
if (column.equals(columnItemArr.get(columnItemArr.size()-1))) {
if (Arrays.asList(columnUserId).contains(column)) {
msgMetaInsertSql.append("'"+userid+"');\n");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'));\n");
} else {
msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"');\n");
}
} else {
if (Arrays.asList(columnUserId).contains(column)) {
msgMetaInsertSql.append("'"+userid+"',");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),");
} else {
msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"',");
}
}
}
}
// MESSAGE META LIST into BM01
for (Map<String, Object> metaItem : metaItemList) {
List<String> columnClmArr = new ArrayList<String>();
String[] columnClmList = {"MSGITEMDSTICNAME","THISMSGCLMNUSEYN","MSGCLMNNAME","MSGCLMNATTRIPTRNCD","MSGCLMNVAL","THISMSGCLMNREGSNTID","THISMSGCLMNREGIHMS","THISMSGCLMNAMNDRID","THISMSGCLMNAMNDHMS"};
columnClmArr = Arrays.asList(columnClmList);
msgMetaInsertSql.append("MERGE INTO EAIPKG.TSEAIBM01 r USING (VALUES(");
// 필드값 입력
for (String column : columnClmArr) {
if (column.equals(columnClmArr.get(columnClmArr.size()-1))) {
if (Arrays.asList(columnUserId).contains(column)) {
msgMetaInsertSql.append("'"+userid+"')) ");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'))) ");
} else {
msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"')) ");
}
} else {
if (Arrays.asList(columnUserId).contains(column)) {
msgMetaInsertSql.append("'"+userid+"',");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),");
} else {
msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"',");
}
}
}
// 필드명 입력
msgMetaInsertSql.append("AS s(");
for (String columnClm : columnClmArr) {
msgMetaInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? columnClm+")\n" : columnClm+",");
}
msgMetaInsertSql.append("ON r.MSGITEMDSTICNAME = s.MSGITEMDSTICNAME WHEN NOT MATCHED THEN\n");
msgMetaInsertSql.append("INSERT (");
for (String columnClm : columnClmArr) {
msgMetaInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? "r."+columnClm : "r."+columnClm+",");
}
msgMetaInsertSql.append(") VALUES (");
for (String columnClm : columnClmArr) {
msgMetaInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? "s."+columnClm+");\n" : "s."+columnClm+",");
}
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (msgMetaMap.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+msgMetaMap.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = msgMetaInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(msgMetaInsertSql.toString(), "BAP_"+msgMetaMap.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,176 @@
package com.eactive.eai.rms.bap.manage.message.messageitem;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapMessageItemController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapMessageItemService")
private BapMessageItemService service;
@RequestMapping(value= "/bap/admin/message/messageItemMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/message/messageItemMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String MsgItemDsticName) throws Exception {
HashMap<String, Object> map = service.selectDetail(MsgItemDsticName);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
map.put("userid", userid );
service.insert(map);
return null;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
paramMap.put("userid", userid );
service.update(paramMap);
List<Map<String, Object>> list = service.getMsgGroupDstcd(paramMap);
if(list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Map<String, Object> hm = list.get(i);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",hm.get("MSGGROUPDSTCD"));
agentUtilService.broadcast(command);
}
}
return null;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
service.delete(paramMap);
List<Map<String, Object>> list = service.getMsgGroupDstcd(paramMap);
if(list != null && list.size() > 1) {
for (int i = 0; i < list.size(); i++) {
Map<String, Object> hm = list.get(i);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",hm.get("MSGGROUPDSTCD"));
agentUtilService.broadcast(command);
}
}
return null;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=LIST_DELETE")
public String deleteList(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> paramMap ) throws Exception {
for (String msgItemDsticName : paramMap.get("msgItemDsticNameList").toString().split(",")) {
HashMap<String, Object> paramDetail = new HashMap<String,Object>();
paramDetail.put("msgItemDsticName", msgItemDsticName);
service.delete(paramDetail);
}
return null;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=CLONE")
public ModelAndView clone(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map ) throws Exception {
String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request);
map.put("userid", userid );
service.insert(map);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@SuppressWarnings("unchecked")
@RequestMapping(value= "/bap/admin/message/messageItemMan.json",params = "cmd=LIST_DOWNLOAD_SQL")
public ModelAndView downloadSql(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
List<Map<String, Object>> msgItemList = new ArrayList<Map<String, Object>>();
for (String msgItemDsticName : map.get("msgItemDsticNameList").toString().split(",")) {
HashMap<String, Object> msgItem = service.selectDetail(msgItemDsticName);
msgItemList.add((Map<String, Object>)msgItem.get("list"));
}
HashMap<String,Object> messageItem = new HashMap<String,Object>();
messageItem.put("list", msgItemList);
messageItem.put("userid",com.eactive.eai.rms.common.login.SessionManager.getUserId(request));
messageItem.put("fileName", map.get("fileName"));
messageItem.put("svrType", map.get("svrType"));
ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForMsgItem(messageItem));
return modelAndView;
}
@RequestMapping(value= "/bap/admin/message/messageItemMan.view",params = "cmd=LIST_FILE_DOWNLOAD")
public String fileDownload(HttpServletRequest request) throws Exception {
return "/bap/admin/common/filedownload";
}
}
@@ -0,0 +1,57 @@
package com.eactive.eai.rms.bap.manage.message.messageitem;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapMessageItemDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapMessageItemDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
int totalcnt = (Integer)template.queryForObject("MessageItem.selectListCount", param);
return totalcnt;
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("MessageItem.selectList", param);
}
public HashMap<String, Object> selectDetail(String MsgItemDsticName) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
param.put("MsgItemDsticName", MsgItemDsticName);
return (HashMap<String, Object>)template.queryForObject("MessageItem.selectDetail", param);
}
public HashMap<String, Object> selectAutoCd() throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
return (HashMap<String, Object>)template.queryForObject("MessageItem.selectAutoCd", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("MessageItem.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("MessageItem.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("MessageItem.delete", paramMap);
}
public List<Map<String, Object>> getMsgGroupDstcd(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("MessageItem.getMsgGroupDstcd", param);
}
}
@@ -0,0 +1,161 @@
package com.eactive.eai.rms.bap.manage.message.messageitem;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao;
import com.eactive.eai.rms.common.util.SqlUtil;
@Service("bapMessageItemService")
public class BapMessageItemService extends BapBaseService {
@Autowired
@Qualifier("bapMessageItemDao")
private BapMessageItemDao dao;
@Autowired
@Qualifier("bapPropertyDao")
private BapPropertyDao propDao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String MsgItemDsticName) throws Exception {
HashMap<String, Object> list;
list = dao.selectDetail(MsgItemDsticName);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
return map;
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
public List<Map<String, Object>> getMsgGroupDstcd(HashMap<String, Object> paramMap) throws Exception {
return dao.getMsgGroupDstcd(paramMap);
}
@SuppressWarnings("unchecked")
public HashMap<String,String> mkInserSqlForMsgItem(HashMap<String, Object> msgItemMap) throws Exception {
StringBuffer msgItemInsertSql = new StringBuffer();
String[] columnUserId = {"THISMSGREGSNTID","THISMSGAMNDRID","THISMSGCLMNREGSNTID","THISMSGCLMNAMNDRID"}; // userID 입력컬럼 구분
String[] columnDateTime = {"THISMSGREGIHMS","THISMSGAMNDHMS","THISMSGCLMNREGIHMS","THISMSGCLMNAMNDHMS"}; // DateTime 입력컬럼 구분
List<Map<String, Object>> msgItemList = (List<Map<String, Object>>)msgItemMap.get("list");
String userid = msgItemMap.containsKey("userid") ? msgItemMap.get("userid").toString() : "";
// MESSAGE ITEM LIST into BM01
for (Map<String, Object> msgItem : msgItemList) {
List<String> columnClmArr = new ArrayList<String>();
String[] columnClmList = {"MSGITEMDSTICNAME","THISMSGCLMNUSEYN","MSGCLMNNAME","MSGCLMNATTRIPTRNCD","MSGCLMNVAL","THISMSGCLMNREGSNTID","THISMSGCLMNREGIHMS","THISMSGCLMNAMNDRID","THISMSGCLMNAMNDHMS"};
columnClmArr = Arrays.asList(columnClmList);
msgItemInsertSql.append("MERGE INTO EAIPKG.TSEAIBM01 r USING (VALUES(");
// 필드값 입력
for (String column : columnClmArr) {
if (column.equals(columnClmArr.get(columnClmArr.size()-1))) {
if (Arrays.asList(columnUserId).contains(column)) {
msgItemInsertSql.append("'"+userid+"')) ");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgItemInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'))) ");
} else {
msgItemInsertSql.append("'"+(msgItem.containsKey(column) ? msgItem.get(column) : "")+"')) ");
}
} else {
if (Arrays.asList(columnUserId).contains(column)) {
msgItemInsertSql.append("'"+userid+"',");
} else if (Arrays.asList(columnDateTime).contains(column)) {
msgItemInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),");
} else {
msgItemInsertSql.append("'"+(msgItem.containsKey(column) ? msgItem.get(column) : "")+"',");
}
}
}
// 필드명 입력
msgItemInsertSql.append("AS s(");
for (String columnClm : columnClmArr) {
msgItemInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? columnClm+")\n" : columnClm+",");
}
msgItemInsertSql.append("ON r.MSGITEMDSTICNAME = s.MSGITEMDSTICNAME WHEN NOT MATCHED THEN\n");
msgItemInsertSql.append("INSERT (");
for (String columnClm : columnClmArr) {
msgItemInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? "r."+columnClm : "r."+columnClm+",");
}
msgItemInsertSql.append(") VALUES (");
for (String columnClm : columnClmArr) {
msgItemInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? "s."+columnClm+");\n" : "s."+columnClm+",");
}
}
HashMap<String,String> retMap = new HashMap<String,String>();
if (msgItemMap.get("fileName") != null) {
OutputStream output = null;
try {
String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH");
String sqlDownloadFile = sqlDownloadPath+msgItemMap.get("fileName");
output = new FileOutputStream(sqlDownloadFile);
if (sqlDownloadPath != null) {
byte[] bt = msgItemInsertSql.toString().getBytes();
output.write(bt);
output.close();
}
retMap.put("path", sqlDownloadPath);
} catch (Exception e) {
logger.error( e.getMessage(), e);
} finally {
if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);}
}
} else {
retMap = SqlUtil.executeSql(msgItemInsertSql.toString(), "BAP_"+msgItemMap.get("svrType").toString().toUpperCase());
}
return retMap;
}
private String getProperties(String propGroup, String propName) throws Exception {
HashMap<String,Object> params = new HashMap<String,Object>();
params.put("prptyGroupName", propGroup);
params.put("prptyName", propName);
HashMap<String, Object> props = propDao.getProperties(params);
return props.get("PRPTY2VAL").toString();
}
}
@@ -0,0 +1,156 @@
package com.eactive.eai.rms.bap.manage.mmi;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class EIMSBAPParser implements MMIBAPParserKey {
public static HashMap<String,Object> parseInfo(String data) throws Exception {
HashMap<String,Object> result = new HashMap<String,Object>();
HashMap<String,Object> param = new HashMap<String,Object>();
InputStream is = null;
try {
is = StringToStream(data);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(is);
Element inter = doc.getRootElement();
result.putAll(getAttr(doc.getRootElement()));
result.putAll(getAttr(inter.getChild(COMMON_INFO)));
result.putAll(getAttr(inter.getChild(SVC_INFO)));
result.putAll(getAttr(inter.getChild(EAI_SVC_INFO)));
result.putAll(getAttr(inter.getChild(OSID_INFO)));
result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID);
// TSEAIBJ01 데이터 처리
String intfType = result.get(MMIBAPParserKey.INTERFACE_TYPE).toString();
String eaiAfterShellPath = result.get(MMIBAPParserKey.EAI_AFTER_SHELL_PATH).toString();
String eaiAfterShellName = result.get(MMIBAPParserKey.EAI_AFTER_SHELL_NAME).toString();
param.put( MMIBAPParserKey.MMI_INTF_ID, result.get(MMIBAPParserKey.MMI_INTF_ID));
param.put( MMIBAPParserKey.INTF_ID, result.get(MMIBAPParserKey.INTF_ID));
param.put( MMIBAPParserKey.VERSION, result.get(MMIBAPParserKey.VERSION));
param.put( MMIBAPParserKey.OSID_INSTI_SYS_ID, result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID));
param.put( MMIBAPParserKey.DEPLOY_ID, result.get(MMIBAPParserKey.DEPLOY_ID));
param.put( MMIBAPParserKey.EAI_FILE_NAME, result.get(MMIBAPParserKey.EAI_FILE_NAME));
param.put( MMIBAPParserKey.OSID_INSTI_SYS_ID, result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID));
param.put( MMIBAPSyncField.bjobMsgDsticName.name(), result.get(MMIBAPParserKey.EAI_FILE_KOR_NAME));
param.put( MMIBAPSyncField.bjobTranDstcdName.name(), result.get(MMIBAPParserKey.EAI_FILE_NAME));
param.put( MMIBAPSyncField.bjobTelgmHdrSize.name(), result.get(MMIBAPParserKey.HEADER_LEN));
param.put( MMIBAPSyncField.bjobTelgmRecSize.name(), result.get(MMIBAPParserKey.RECORD_LEN));
param.put( MMIBAPSyncField.bjobTelgmTrailSize.name(), result.get(MMIBAPParserKey.TRAILER_LEN));
param.put( MMIBAPSyncField.eaiFileSendUseYn.name(), intfType.equals("S") ? "1" : "" );
param.put( MMIBAPSyncField.eaiFileRecvUseYn.name(), intfType.equals("R") ? "1" : "" );
param.put( MMIBAPSyncField.msgPrcssPrity.name(), "999");
param.put( MMIBAPSyncField.thisMsgUseYn.name(), "1");
param.put( MMIBAPSyncField.uapplCd.name(), result.get(MMIBAPParserKey.APP_CD));
param.put( MMIBAPSyncField.userid.name(), result.get(MMIBAPParserKey.MOD_ID));
param.put( MMIBAPSyncField.sndRcvFileName.name(), result.get(MMIBAPParserKey.SVC_FILE_NAME));
param.put( MMIBAPSyncField.thisMsgChrgIDs.name(), result.get(MMIBAPParserKey.MOD_ID));
param.put( MMIBAPSyncField.groupCoCd.name(), "B");
param.put( MMIBAPSyncField.rmtNodeName.name(), result.get(MMIBAPParserKey.SYS_ID));
param.put( MMIBAPSyncField.sndScriptName.name(), eaiAfterShellPath+File.separator+eaiAfterShellName);
// param.put( MMIBAPSyncField.logCretnYn.name(), "1");
param.put( MMIBAPSyncField.bzwkRsEmpName.name(), result.get(MMIBAPParserKey.USER_NAME));
param.put( MMIBAPSyncField.bzwkRsEmpTelno.name(), result.get(MMIBAPParserKey.USER_TELNO));
param.put( MMIBAPSyncField.osidInstiCode.name(), result.get(MMIBAPParserKey.OSID_INSTI_CD));
param.put( MMIBAPSyncField.osidInstiBzwkRsEmpName.name(), result.get(MMIBAPParserKey.OSID_INSTI_USER_NAME));
param.put( MMIBAPSyncField.osidInstiTelno.name(), result.get(MMIBAPParserKey.OSID_INSTI_TELNO));
param.put( MMIBAPSyncField.fileTransCond.name(), result.get(MMIBAPParserKey.FILE_TRAN_SCHDR_CNDT));
param.put( MMIBAPSyncField.fileTransSche.name(), result.get(MMIBAPParserKey.FILE_TRAN_SCHDR_TIME));
param.put( MMIBAPSyncField.fileTransAlam.name(), result.get(MMIBAPParserKey.NOSIGNAL_ALRAM_TIME));
// // TSEAIBS01 데이터 처리
// String fileTranSchdrTime = result.get(MMIBAPParserKey.FILE_TRAN_SCHDR_TIME).toString();
// String reTralTime = fileTranSchdrTime.substring(9,11);
//
param.put( MMIBAPSyncField.bjobPtrnDstcd.name(), intfType.equals("S") ? "RS" : "RR" );
// param.put( MMIBAPSyncField.bjobTranDstcdName.name(), result.get(MMIBAPParserKey.EAI_FILE_NAME));
//// param.put( MMIBAPSyncField.osidInstiDstcd.name(), result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID).toString().substring(0,4));
param.put( MMIBAPSyncField.sndrcvStartHMS.name(), "0000"); // 0000
param.put( MMIBAPSyncField.sndrcvEndHMS.name(), "2359"); // 2359
param.put( MMIBAPSyncField.msgSndrID.name(), result.get(MMIBAPParserKey.DEPLOY_ID));
param.put( MMIBAPSyncField.rqstRecvReTralCnt.name(), 0);
param.put( MMIBAPSyncField.rqstRecvReTralUseYn.name(), "0");
param.put( MMIBAPSyncField.rqstRecvReTralIntvalTtm.name(),"0");
param.put( MMIBAPSyncField.holdyPrcssDstcd.name(), "1");
param.put( MMIBAPSyncField.startDlayNoday.name(), 0);
param.put( MMIBAPSyncField.endDlayNoday.name(), 0);
param.put( MMIBAPSyncField.thisMsgUseYn.name(), "1");
param.put( MMIBAPSyncField.rpttYn.name(), "0");
param.put( MMIBAPSyncField.userid.name(), result.get(MMIBAPParserKey.MOD_ID));
}catch(Exception e){
throw new Exception("info parsing error "+e.getMessage(),e);
}finally{
if (is != null){try{is.close();}catch(Exception e ){}}
}
return param;
}
public static HashMap<String,String> getAttr(Element doc){
if (doc == null) return new HashMap<String,String>();
HashMap<String,String> map = new HashMap<String,String>();
for(Object obj : doc.getAttributes()){
if (obj instanceof Attribute){
Attribute attr = (Attribute)obj;
map.put(attr.getName(), attr.getValue());
}
}
return map;
}
public static InputStream StringToStream(String s){
ByteArrayInputStream buffer = new ByteArrayInputStream(s.getBytes());
return buffer;
}
public static HashMap<String,Object> parseDelete(String data) throws Exception{
HashMap<String,Object> result = new HashMap<String,Object>();
HashMap<String,Object> param = new HashMap<String,Object>();
InputStream is = null;
try {
is = StringToStream(data);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(is);
Element delete = doc.getRootElement();
result.putAll(getAttr(doc.getRootElement()));
result.putAll(getAttr(delete.getChild(COMMON_INFO)));
result.putAll(getAttr(delete.getChild(SVC_INFO)));
result.putAll(getAttr(delete.getChild(EAI_SVC_INFO)));
result.putAll(getAttr(delete.getChild(OSID_INFO)));
// TSEAIBJ01 delete key 데이터 처리
param.put( MMIBAPParserKey.MMI_INTF_ID, result.get(MMIBAPParserKey.MMI_INTF_ID));
param.put( MMIBAPParserKey.INTF_ID, result.get(MMIBAPParserKey.INTF_ID));
param.put( MMIBAPParserKey.VERSION, result.get(MMIBAPParserKey.VERSION));
param.put( MMIBAPSyncField.bjobBzwkDstcd.name(), result.get(MMIBAPParserKey.SYS_ID).toString().substring(0, 5));
param.put( MMIBAPSyncField.bjobMsgDsticName.name(), result.get(MMIBAPParserKey.EAI_FILE_KOR_NAME));
// TSEAIBS01 delete key 데이터 처리
param.put( MMIBAPSyncField.osidInstiDstcd.name(), result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID).toString().substring(0,4));
}catch(Exception e){
//e.printStackTrace();
throw e;
}finally{
if (is != null){try{is.close();}catch(Exception e ){}}
}
return param;
}
}
@@ -0,0 +1,82 @@
package com.eactive.eai.rms.bap.manage.mmi;
public enum EIMSBAPSyncField {
bjobMsgDstcd ("String", 15, "BATCH작업메시지구분코드내용", true),
bjobMsgDsticName ("String", 400, "BATCH작업메시지구분명", true),
bjobBzwkDstcd ("String", 8, "BATCH작업업무구분코드내용", true),
bjobTranDstcdName ("String", 20, "BATCH작업거래구분명", true),
bjobTelgmHdrSize ("Integer", 0, "BATCH작업전문헤더크기값", true),
bjobTelgmRecSize ("Integer", 0, "BATCH작업전문레코드크기수", true),
bjobTelgmTrailSize ("Integer", 0, "BATCH작업전문트레일러크기값", true),
eaiFileSendUseYn ("String", 1, "EAI파일송신사용여부", true),
eaiFileRecvUseYn ("String", 1, "EAI파일수신사용여부", true),
msgPrcssPrity ("Integer", 0, "메시지처리우선순위값", true),
sysCd ("String", 3, "송신시스템", true),
uapplCd ("String", 3, "어플리케이션코드내용", true),
sndRcvFileName ("String", 100, "송수신파일명", true),
rcvFilePattern ("String", 100, "송수신파일명", true),
sndrcvfilepath ("String", 200, "송수신파일경로", true),
thisMsgChrgIDs ("String", 100, "당메시지담당자ID명", true),
recvnotiuseyn ("String", 1, "수신알림사용여부", true),
logCretnYn ("String", 1, "로그생성정보명", true),
fileTransSche ("String", 50, "파일송수신스케줄", true),
thisMsgUseYn ("String", 1, "당메시지사용여부", true),
thisMsgRegsntID ("String", 40, "당메시지등록자ID", true),
thisMsgAmndrID ("String", 40, "당메시지수정자ID", true),
rmtNodeName ("String", 20, "원격노드명", false),
sndScriptName ("String", 100, "전송스크립트내용", false),
userid ("String", 40, "사용자ID", false),
groupCoCd ("String", 1, "그룹사구분코드내용", false),
bzwkRsEmpName ("String", 60, "업무담당자", false),
bzwkRsEmpTelno ("String", 50, "업무담당자전화번호", false),
osidInstiCode ("String", 20, "대외기관코드", false),
osidInstiBzwkRsEmpName ("String", 60, "대외기관담당자", false),
osidInstiTelno ("String", 50, "대외기관담당자전화번호", false),
fileTransCond ("String", 10, "파일송수신조건", false),
fileTransAlam ("String", 10, "파일송수신알람", false);
// bjobMsgScheId ("String", 30, "BATCH작업메시지일정ID명", false),
// osidInstiDstcd ("String", 4, "대외기관구분코드내용", false),
// bjobPtrnDstcd ("String", 2, "BATCH작업유형구분코드내용", false),
// sndrcvStartHMS ("String", 17, "송수신시작시각", false),
// sndrcvEndHMS ("String", 17, "송수신종료시각", false),
// msgSndrID ("String", 40, "메시지송신자ID명", false),
// rqstRecvReTralCnt ("Integer", 0, "요구수신재시도수", false),
// rqstRecvReTralUseYn ("String", 1, "요구수신재시도사용여부", false),
// rqstRecvReTralIntvalTtm ("Integer", 0, "요구수신재시도간격시간", false),
// holdyPrcssDstcd ("String", 1, "휴일처리구분코드내용", false),
// startDlayNoday ("Integer", 0, "시작지연일수", false),
// endDlayNoday ("Integer", 0, "종료지연일수", false),
// rpttYn ("String", 1, "반복여부", false);
private String fieldType; // field 유형
private int fieldLength; // field 길이
private String fieldDesc; // field 설명
private boolean fieldUseYn; // field 사용여부
EIMSBAPSyncField(String fieldType, int fieldLength, String fieldDesc, boolean fieldUseYn) {
this.fieldType = fieldType;
this.fieldLength = fieldLength;
this.fieldDesc = fieldDesc;
this.fieldUseYn = fieldUseYn;
}
public String getFieldType() {
return fieldType;
}
public int getFieldLength() {
return fieldLength;
}
public String getFieldDesc() {
return fieldDesc;
}
public Boolean getFieldUseYn() {
return fieldUseYn;
}
}
@@ -0,0 +1,238 @@
package com.eactive.eai.rms.bap.manage.mmi;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class MMIBAPParser implements MMIBAPParserKey {
// public static HashMap<String,Object> parseInfo(String data) throws Exception {
// HashMap<String,Object> result = new HashMap<String,Object>();
// HashMap<String,Object> param = new HashMap<String,Object>();
// InputStream is = null;
// try {
// is = StringToStream(data);
// SAXBuilder builder = new SAXBuilder();
// Document doc = builder.build(is);
//
// Element inter = doc.getRootElement();
//
// result.putAll(getAttr(doc.getRootElement()));
// result.putAll(getAttr(inter.getChild(COMMON_INFO)));
// result.putAll(getAttr(inter.getChild(SVC_INFO)));
// result.putAll(getAttr(inter.getChild(EAI_SVC_INFO)));
// result.putAll(getAttr(inter.getChild(OSID_INFO)));
//
// result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID);
// // TSEAIBJ01 데이터 처리
// String intfType = result.get(MMIBAPParserKey.INTERFACE_TYPE).toString();
// String eaiAfterShellPath = result.get(MMIBAPParserKey.EAI_AFTER_SHELL_PATH).toString();
// String eaiAfterShellName = result.get(MMIBAPParserKey.EAI_AFTER_SHELL_NAME).toString();
//
// param.put( MMIBAPParserKey.MMI_INTF_ID, result.get(MMIBAPParserKey.MMI_INTF_ID));
// param.put( MMIBAPParserKey.INTF_ID, result.get(MMIBAPParserKey.INTF_ID));
// param.put( MMIBAPParserKey.VERSION, result.get(MMIBAPParserKey.VERSION));
// param.put( MMIBAPParserKey.OSID_INSTI_SYS_ID, result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID));
// param.put( MMIBAPParserKey.DEPLOY_ID, result.get(MMIBAPParserKey.DEPLOY_ID));
// param.put( MMIBAPParserKey.EAI_FILE_NAME, result.get(MMIBAPParserKey.EAI_FILE_NAME));
// param.put( MMIBAPParserKey.OSID_INSTI_SYS_ID, result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID));
//
// param.put( MMIBAPSyncField.bjobMsgDsticName.name(), result.get(MMIBAPParserKey.EAI_FILE_KOR_NAME));
// param.put( MMIBAPSyncField.bjobTranDstcdName.name(), result.get(MMIBAPParserKey.EAI_FILE_NAME));
// param.put( MMIBAPSyncField.bjobTelgmHdrSize.name(), result.get(MMIBAPParserKey.HEADER_LEN));
// param.put( MMIBAPSyncField.bjobTelgmRecSize.name(), result.get(MMIBAPParserKey.RECORD_LEN));
// param.put( MMIBAPSyncField.bjobTelgmTrailSize.name(), result.get(MMIBAPParserKey.TRAILER_LEN));
// param.put( MMIBAPSyncField.eaiFileSendUseYn.name(), intfType.equals("S") ? "1" : "" );
// param.put( MMIBAPSyncField.eaiFileRecvUseYn.name(), intfType.equals("R") ? "1" : "" );
// param.put( MMIBAPSyncField.msgPrcssPrity.name(), "999");
// param.put( MMIBAPSyncField.thisMsgUseYn.name(), "1");
// param.put( MMIBAPSyncField.uapplCd.name(), result.get(MMIBAPParserKey.APP_CD));
// param.put( MMIBAPSyncField.userid.name(), result.get(MMIBAPParserKey.MOD_ID));
// param.put( MMIBAPSyncField.sndRcvFileName.name(), result.get(MMIBAPParserKey.SVC_FILE_NAME));
// param.put( MMIBAPSyncField.thisMsgChrgIDs.name(), result.get(MMIBAPParserKey.MOD_ID));
// param.put( MMIBAPSyncField.groupCoCd.name(), "B");
// param.put( MMIBAPSyncField.rmtNodeName.name(), result.get(MMIBAPParserKey.SYS_ID));
// param.put( MMIBAPSyncField.sndScriptName.name(), eaiAfterShellPath+File.separator+eaiAfterShellName);
//// param.put( MMIBAPSyncField.logCretnYn.name(), "1");
// param.put( MMIBAPSyncField.bzwkRsEmpName.name(), result.get(MMIBAPParserKey.USER_NAME));
// param.put( MMIBAPSyncField.bzwkRsEmpTelno.name(), result.get(MMIBAPParserKey.USER_TELNO));
// param.put( MMIBAPSyncField.osidInstiCode.name(), result.get(MMIBAPParserKey.OSID_INSTI_CD));
// param.put( MMIBAPSyncField.osidInstiBzwkRsEmpName.name(), result.get(MMIBAPParserKey.OSID_INSTI_USER_NAME));
// param.put( MMIBAPSyncField.osidInstiTelno.name(), result.get(MMIBAPParserKey.OSID_INSTI_TELNO));
// param.put( MMIBAPSyncField.fileTransCond.name(), result.get(MMIBAPParserKey.FILE_TRAN_SCHDR_CNDT));
// param.put( MMIBAPSyncField.fileTransSche.name(), result.get(MMIBAPParserKey.FILE_TRAN_SCHDR_TIME));
// param.put( MMIBAPSyncField.fileTransAlam.name(), result.get(MMIBAPParserKey.NOSIGNAL_ALRAM_TIME));
//
//
//
//// // TSEAIBS01 데이터 처리
//// String fileTranSchdrTime = result.get(MMIBAPParserKey.FILE_TRAN_SCHDR_TIME).toString();
//// String reTralTime = fileTranSchdrTime.substring(9,11);
////
//// param.put( MMIBAPSyncField.bjobPtrnDstcd.name(), intfType.equals("S") ? "RS" : "RR" );
//// param.put( MMIBAPSyncField.bjobTranDstcdName.name(), result.get(MMIBAPParserKey.EAI_FILE_NAME));
////// param.put( MMIBAPSyncField.osidInstiDstcd.name(), result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID).toString().substring(0,4));
//// param.put( MMIBAPSyncField.sndrcvStartHMS.name(), "0000"); // 0000
//// param.put( MMIBAPSyncField.sndrcvEndHMS.name(), "2359"); // 2359
//// param.put( MMIBAPSyncField.msgSndrID.name(), result.get(MMIBAPParserKey.DEPLOY_ID));
//// param.put( MMIBAPSyncField.rqstRecvReTralCnt.name(), 0);
//// param.put( MMIBAPSyncField.rqstRecvReTralUseYn.name(), "0");
//// param.put( MMIBAPSyncField.rqstRecvReTralIntvalTtm.name(),"0");
//// param.put( MMIBAPSyncField.holdyPrcssDstcd.name(), "1");
//// param.put( MMIBAPSyncField.startDlayNoday.name(), 0);
//// param.put( MMIBAPSyncField.endDlayNoday.name(), 0);
//// param.put( MMIBAPSyncField.thisMsgUseYn.name(), "1");
//// param.put( MMIBAPSyncField.rpttYn.name(), "0");
//// param.put( MMIBAPSyncField.userid.name(), result.get(MMIBAPParserKey.MOD_ID));
//
// }catch(Exception e){
// throw new Exception("info parsing error "+e.getMessage(),e);
// }finally{
// if (is != null){try{is.close();}catch(Exception e ){}}
// }
// return param;
//
// }
public static HashMap<String,Object> parseInfoNew(String data) throws Exception {
HashMap<String,Object> result = new HashMap<String,Object>();
HashMap<String,Object> param = new HashMap<String,Object>();
InputStream is = null;
try {
is = StringToStream(data);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(is);
Element inter = doc.getRootElement();
result.putAll(getAttr(doc.getRootElement()));
result.putAll(getAttr(inter.getChild(HEADER)));
// TSEAIBJ01 데이터 처리
String intfType = result.get(MMIBAPParserKey.SNDST).toString();
String eaiAfterShellPath = result.get(MMIBAPParserKey.SRCFILEPATH).toString();
String eaiAfterShellName = "";
if("R".equals(intfType)) {
eaiAfterShellName = result.get(MMIBAPParserKey.SRCFILENM).toString();
}
if("S".equals(intfType)) {
eaiAfterShellName = result.get(MMIBAPParserKey.TGTFILENM).toString();
}
//** 파일송수신 관련 파람
param.put( MMIBAPSyncField.bjobMsgDstcd.name(), result.get(MMIBAPParserKey.INTFID));
param.put( MMIBAPSyncField.bjobMsgDsticName.name(), result.get(MMIBAPParserKey.INFTNAME));
param.put( MMIBAPSyncField.bjobBzwkDstcd.name(), result.get(MMIBAPParserKey.OUTBIZCD));
param.put( MMIBAPSyncField.bjobTranDstcdName.name(), result.get(MMIBAPParserKey.FILECODE));
param.put( MMIBAPSyncField.bjobTelgmHdrSize.name(), result.get(MMIBAPParserKey.RECSIZE));
param.put( MMIBAPSyncField.bjobTelgmRecSize.name(), result.get(MMIBAPParserKey.RECSIZE));
param.put( MMIBAPSyncField.bjobTelgmTrailSize.name(), result.get(MMIBAPParserKey.RECSIZE));
param.put( MMIBAPSyncField.eaiFileSendUseYn.name(), intfType.equals("S") ? "1" : "0" );
param.put( MMIBAPSyncField.eaiFileRecvUseYn.name(), intfType.equals("R") ? "1" : "0" );
param.put( MMIBAPSyncField.msgPrcssPrity.name(), "999");
param.put( MMIBAPSyncField.sysCd.name(), result.get(MMIBAPParserKey.SRCBZSYSTEMCD ));
param.put( MMIBAPSyncField.uapplCd.name(), result.get(MMIBAPParserKey.APPCD ));
param.put( MMIBAPSyncField.sndRcvFileName.name(), eaiAfterShellPath+File.separator+eaiAfterShellName);
param.put( MMIBAPSyncField.rcvFilePattern.name(), " ");
param.put( MMIBAPSyncField.sndrcvfilepath.name(), result.get(MMIBAPParserKey.SRCFILEPATH));
param.put( MMIBAPSyncField.thisMsgChrgIDs.name(), result.get(MMIBAPParserKey.AUTHORID));
param.put( MMIBAPSyncField.recvnotiuseYn.name(), "1");
param.put( MMIBAPSyncField.logCretnYn.name(), "1");
param.put( MMIBAPSyncField.fileTransSche.name(), result.get(MMIBAPParserKey.TRNSMSNCYCLE));
param.put( MMIBAPSyncField.thisMsgUseYn.name(), "1");
param.put( MMIBAPSyncField.thisMsgRegsntID.name(), result.get(MMIBAPParserKey.AUTHORID));
param.put( MMIBAPSyncField.thisMsgAmndrID.name(), result.get(MMIBAPParserKey.AUTHORID));
//** 스케쥴 관련 파람
param.put( MMIBAPSyncField.bjobPtrnDstcd.name(), intfType.equals("S") ? "RS" : "RR" );
param.put( MMIBAPSyncField.sndrcvStartHMS.name(), "0000"); // 0000
param.put( MMIBAPSyncField.sndrcvEndHMS.name(), "2359"); // 2359
param.put( MMIBAPSyncField.msgSndrID.name(), result.get(MMIBAPParserKey.AUTHORID));
param.put( MMIBAPSyncField.rqstRecvReTralCnt.name(), 0);
param.put( MMIBAPSyncField.rqstRecvReTralUseYn.name(), "0");
param.put( MMIBAPSyncField.rqstRecvReTralIntvalTtm.name(),"0");
param.put( MMIBAPSyncField.holdyPrcssDstcd.name(), "1");
param.put( MMIBAPSyncField.startDlayNoday.name(), 0);
param.put( MMIBAPSyncField.endDlayNoday.name(), 0);
param.put( MMIBAPSyncField.rpttYn.name(), "0");
param.put( MMIBAPSyncField.userid.name(), result.get(MMIBAPParserKey.AUTHORID));
// param.put( MMIBAPSyncField.osidInstiDstcd.name(), result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID).toString().substring(0,4));
param.put( MMIBAPSyncField.osidInstiDstcd.name(), "POST"); //** 고정으로 셋팅
}catch(Exception e){
throw new Exception("New info parsing error "+e.getMessage(),e);
}finally{
if (is != null){try{is.close();}catch(Exception e ){}}
}
return param;
}
public static HashMap<String,String> getAttr(Element doc){
if (doc == null) return new HashMap<String,String>();
HashMap<String,String> map = new HashMap<String,String>();
for(Object obj : doc.getAttributes()){
if (obj instanceof Attribute){
Attribute attr = (Attribute)obj;
map.put(attr.getName(), attr.getValue());
}
}
return map;
}
public static InputStream StringToStream(String s){
ByteArrayInputStream buffer =null;
try {
buffer = new ByteArrayInputStream(s.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return buffer;
}
public static HashMap<String,Object> parseDelete(String data) throws Exception{
HashMap<String,Object> result = new HashMap<String,Object>();
HashMap<String,Object> param = new HashMap<String,Object>();
InputStream is = null;
try {
is = StringToStream(data);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(is);
Element delete = doc.getRootElement();
result.putAll(getAttr(doc.getRootElement()));
result.putAll(getAttr(delete.getChild(COMMON_INFO)));
result.putAll(getAttr(delete.getChild(SVC_INFO)));
result.putAll(getAttr(delete.getChild(EAI_SVC_INFO)));
result.putAll(getAttr(delete.getChild(OSID_INFO)));
// TSEAIBJ01 delete key 데이터 처리
param.put( MMIBAPParserKey.MMI_INTF_ID, result.get(MMIBAPParserKey.MMI_INTF_ID));
param.put( MMIBAPParserKey.INTF_ID, result.get(MMIBAPParserKey.INTF_ID));
param.put( MMIBAPParserKey.VERSION, result.get(MMIBAPParserKey.VERSION));
// param.put( MMIBAPSyncField.bjobBzwkDstcd.name(), result.get(MMIBAPParserKey.SYS_ID).toString().substring(0, 5));
param.put( MMIBAPSyncField.bjobBzwkDstcd.name(), result.get(MMIBAPParserKey.SYS_ID).toString().substring(0, 5));
param.put( MMIBAPSyncField.bjobMsgDsticName.name(), result.get(MMIBAPParserKey.OUTBIZCD));
// TSEAIBS01 delete key 데이터 처리
param.put( MMIBAPSyncField.osidInstiDstcd.name(), result.get(MMIBAPParserKey.OSID_INSTI_SYS_ID).toString().substring(0,4));
}catch(Exception e){
//e.printStackTrace();
throw e;
}finally{
if (is != null){try{is.close();}catch(Exception e ){}}
}
return param;
}
}
@@ -0,0 +1,114 @@
package com.eactive.eai.rms.bap.manage.mmi;
public interface MMIBAPParserKey {
//interface 헤더
public static String INTF_ID = "id";
public static String MMI_INTF_ID = "mmi_if_id";
public static String NAME = "name";
public static String INFRA_CODE = "infracode";
public static String INFRA_NAME = "infraname";
public static String INTF_DESC = "interface_desc";
public static String VERSION = "ver";
public static String DEPLOY_ID = "deploy_id";
//공통정보
public static String COMMON_INFO = "commoninfo";
public static String APP_CD = "app_cd";
public static String BZWK_DSTCD = "bzwk_dstcd";
public static String INTERFACE_TYPE = "interface_type";
public static String USER_NAME = "user_name";
public static String USER_TELNO = "user_telno";
public static String OSID_INSTI_NAME = "osid_insti_name";
public static String OSID_INSTI_CD = "osid_insti_cd";
public static String OSID_INSTI_USER_NAME = "osid_insti_user_name";
public static String OSID_INSTI_TELNO = "osid_insti_telno";
//내부환경정보
public static String SVC_INFO = "svcinfo";
public static String SYS_ID = "sys_id";
public static String SVC_PATH = "svc_path";
public static String SVC_FILE_NAME = "svc_file_name";
public static String SVC_AFTER_SHELL_PATH = "svc_after_shell_path";
public static String SVC_AFTER_SHELL_NAME = "svc_after_shell_name";
public static String MOD_ID = "mod_id";
public static String MOD_DT = "mod_dt";
public static String MOD_TYPE = "mod_type";
//EAI환경정보
public static String EAI_SVC_INFO = "eaisvcinfo";
public static String EAI_FILE_NAME = "eai_file_name";
public static String EAI_FILE_KOR_NAME = "eai_file_kor_name";
public static String HEADER_LEN = "header_len";
public static String RECORD_LEN = "record_len";
public static String TRAILER_LEN = "trailer_len";
public static String EAI_AFTER_SHELL_PATH = "eai_after_shell_path";
public static String EAI_AFTER_SHELL_NAME = "eai_after_shell_name";
public static String FILE_TRAN_SCHDR_CNDT = "file_tran_schdr_cndt";
public static String FILE_TRAN_SCHDR_TIME = "file_tran_schdr_time";
public static String NOSIGNAL_ALRAM_TIME = "nosignal_alram_time";
//대외기관 환경정보
public static String OSID_INFO = "osidinfo";
public static String OSID_INSTI_SYS_ID = "osid_insti_sys_id";
public static String OSID_INSTI_SAVE_PATH = "osid_insti_save_path";
public static String OSID_INSTI_FILE_NAME = "osid_insti_file_name";
public static String OSID_INSTI_AFTER_SHELL_PATH = "osid_insti_after_shell_path";
public static String OSID_INSTI_AFTER_SHELL_NAME = "osid_insti_after_shell_name";
public static String INSTI_ID = "insti_id";
public static String DESC = "desc";
//** 일괄 파일송수신 레이아웃 매핑
// public static String INTFID = "bjobMsgDstcd"; /* BATCH작업메시지구분코드 */
// public static String INFTNAME = "bjobMsgDsticName"; /* BATCH작업메시지구분명 */
// public static String OUTBIZCD = "bjobBzwkDstcd"; /* BATCH작업업무구분코드 */
// public static String FILECODE = "bjobTranDstcdName"; /* BATCH작업거래구분코드명 */
// public static String bjobTelgmHdrSize = "bjobTelgmRecSize"; /* BATCH작업전문헤더크기 */
// public static String RECSIZE = "bjobTelgmRecSize"; /* BATCH작업전문레코드크기수 */
// public static String bjobTelgmTrailSize = "bjobTelgmRecSize"; /* BATCH작업전문트레일러크기 */
// public static String SNDSTSYN = "eAIFileSendUseYn"; /* EAI파일송신사용여부 */
// public static String SNDSTRYN = "eAIFileRecvUseYn"; /* EAI파일수신사용여부 */
// public static String msgprcssprity = "999"; /* 메시지처리우선순위 */
// public static String SRCBZSYSTEMCD = "sysCd"; /* 송신시스템 */
// public static String APPCD = "uapplCd"; /* 어플리케이션코드 */
// public static String SRCFILENM = "sndrcvFileName"; /* 송수신파일명(송신파일명) */
// public static String TGTFILENM = "sndrcvFileName"; /* 송수신파일명(수신파일명) */
// public static String rcvfilepattern = ""; /* 수신파일패턴(은행업무에쓰임 _YYYYMMD, _YYYYMMDD_001) */
// public static String SRCFILEPATH = "sndrcvfilepath"; /* 송수신파일경로 */
// public static String AUTHORID3 = "thisMsgChrgIDs"; /* 당메시지담당자ID */
// public static String recvnotiuseyn = "1"; /* 수신알림사용여부 */
// public static String logCretnYn = "1"; /* 로그생성여부 */
// public static String TRNSMSNCYCLE = "FILETRANSSCHE"; /* 전송주기 */
// public static String thisMsgUseYn = "1"; /* 당메시지사용여부 */
// public static String AUTHORID1 = "thisMsgRegsntID"; /* 당메시지등록자ID */
// public static String AUTHORID2 = "thisMsgAmndrID"; /* 당메시지수정자ID */
//** 수신 파람 (EIMS 전문 레이아웃)
public static String HEADER = "Header"; /* 헤더 */
// public static String INTFID = "intfId"; /* BATCH작업메시지구분코드 */
public static String INTFID = "infId"; /* BATCH작업메시지구분코드 */
public static String INFTNAME = "inftName"; /* BATCH작업메시지구분명 */
public static String OUTBIZCD = "outBizCd"; /* BATCH작업업무구분코드 */
public static String FILECODE = "fileCode"; /* BATCH작업거래구분코드명 */
public static String RECSIZE = "recSize"; /* BATCH작업전문레코드크기수 */
public static String SNDST = "snDst"; /* EAI파일송신사용여부 */
public static String SRCBZSYSTEMCD = "srcBzSystemCd"; /* 송신시스템 */
public static String APPCD = "appCd"; /* 어플리케이션코드 */
public static String SRCFILENM = "srcFileNm"; /* 송수신파일명(송신파일명) */
public static String TGTFILENM = "tgtFileNm"; /* 송수신파일명(수신파일명) */
public static String SRCFILEPATH = "srcFilePath"; /* 송수신파일경로 */
public static String TRNSMSNCYCLE = "trnsmsnCycle"; /* 전송주기 */
public static String AUTHORID = "authorId"; /* 당메시지등록자ID */
public static String INFDSTCD = "infDstCd"; /* 인터페이스 구분 */
// public static String INFTDESC = "inftDesc"; /* 인터페이스 설명 */
public static String INFTDESC = "infDesc"; /* 인터페이스 설명 */
public static String RUNTYPE = "runType"; /* 기동유형 */
public static String OSIDINSTICD = "osidInstiCd"; /* 대외기관코드 */
public static String ETCDESC = "etcDesc"; /* 대외기관코드 */
public static String THISMSGCHRGIDS = "thisMsgChrgIDs"; /* 당메시지담당자ID */
public static String SYSCD = "sysCd"; /* 송신시스템 */
public static String BJOBMSGDSTCD = "bjobMsgDstcd"; /* 인터페이스ID */
}
@@ -0,0 +1,692 @@
package com.eactive.eai.rms.bap.manage.mmi;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.View;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.common.util.NullControl;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.common.util.SystemUtil;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.context.MonitoringContext;
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
import com.eactive.eai.rms.common.datasource.DataSourceType;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.common.interceptor.InterceptorSkipController;
import com.eactive.eai.rms.common.logging.UserAccessLogger;
import com.eactive.eai.rms.common.mmilog.MMILogDao;
import com.eactive.eai.rms.onl.common.util.DateUtil;
@Controller
public class MMIBAPSyncController extends BapBaseAnnotationController implements InterceptorSkipController {
private static final Logger logger = Logger.getLogger(MMIBAPSyncController.class);
@Autowired
@Qualifier("mmiBapSyncService")
private MMIBAPSyncService service;
@Autowired
private MonitoringContext monitoringContext;
@Autowired
@Qualifier("mmiLogDao")
private MMILogDao mmiLogDao;
@RequestMapping(value= "/mmiBapSync.file",params = "cmd=delete", method=RequestMethod.POST)
public View messageDelete(HttpServletRequest request, HttpServletResponse response) throws Exception {
String encoding = request.getHeader("encoding");
if (encoding != null) {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
}
HashMap<String,Object> map = new HashMap<String,Object>();
ServletInputStream sis = null;
StringBuilder sb = new StringBuilder();
StringBuilder frame = new StringBuilder();
try {
sis = request.getInputStream();
String data = streamToString(sis,encoding);
logger.info("### received XML : "+data);
map = MMIBAPParser.parseDelete(data);
service.delete(map);
//일괄 인터페이스 동기화
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.dirInfo.RefreshAllJobCommand");
if (!validate(agentUtilService.broadcast(command))) throw new Exception("일괄 인터페이스 동기화 오류");
sb.append(resultInterface(map.get(MMIBAPParserKey.MMI_INTF_ID).toString(), map.get(MMIBAPParserKey.VERSION).toString(), "SUCCESS", ""));
} catch(Exception e){
logger.error("MMIBAPSyncController error="+e.getMessage(),e);
sb.append(resultInterfaceDelete(map.get(MMIBAPParserKey.MMI_INTF_ID).toString(), map.get(MMIBAPParserKey.INTF_ID).toString(), "FAIL",e.getMessage()));
}
frame.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
frame.append("<Deploy>");
frame.append(sb.toString());
frame.append("</Deploy>");
ServletOutputStream sos = null;
try {
sos = response.getOutputStream();
sos.write(frame.toString().getBytes());
} catch( Exception e ) {
//취약점소스 수정 2020.08.24
logger.error(" error", e);
} finally {
if( sos != null ) sos.close();
}
return null;
}
/**
* 통합인터페이스 시스템(EIMS)에서 일괄전송 파일송수신 전문 레이아웃에 대한 INSERT, UPDATE 요청
* *
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
// @RequestMapping(value= "/eimsbapcall.file", method=RequestMethod.POST)
public View fileSndRevMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {
UserAccessLogger.log(request, "메시지", "L", "cmd=Message");
HashMap<String,Object> map = new HashMap<String,Object>();
HashMap<String,Object> info = new HashMap<String,Object>();
StringBuilder sb = new StringBuilder();
StringBuilder frame = new StringBuilder();
String userId = "";
String sysId = "";
String fileName = "";
String sndst = "";
String serverType = monitoringContext.getStringProperty(MonitoringContext.MMI_SYNC_BAP_SERVERTYPE, "BAP");
DataSourceContextHolder.setDataSourceType(DataSourceTypeManager.getDataSourceType(serverType));
logger.debug("parseMessage content-Type="+request.getContentType());
logger.debug("parseMessage content-Values="+request.getParameterMap().values());
HashMap<String,Object> mmiLogMap = new HashMap<String,Object>();
StringBuffer buffer = new StringBuffer();
try{
if (!SystemUtil.isDevServer()){
throw new Exception("only support dev server ");
}
// for (String key : request.getParameterMap().keySet()){
// String [] datas= request.getParameterValues(key);
// StringBuffer resultS = new StringBuffer();
// for(String data : datas){
// resultS.append(data);
// }
// buffer.append(resultS.toString()).append("\n");
// map.put(key, resultS);
// }
// logger.info("### New received XML : "+map);
//
// if (key.startsWith("INTERFACE")){
// buffer.append(resultS.toString()).append("\n");
// }
for (String key : request.getParameterMap().keySet()){
String [] datas= request.getParameterValues(key);
StringBuffer resultS = new StringBuffer();
for(String data : datas){
resultS.append(data);
}
if (key.startsWith("INTERFACE")){
buffer.append(resultS.toString()).append("\n");
}
logger.info("New receive Data "+key+"="+resultS.toString());
if(key.startsWith("INTERFACE")) {
map.put(key, resultS.toString());
}
}
for(String key : map.keySet()){
if (key.startsWith("INTERFACE") ){
info = MMIBAPParser.parseInfoNew(map.get(key).toString());
}
}
if (info == null){
throw new Exception("인터페이스 정보가 존재하지 않습니다.");
}
logger.info("[ORG0]New map-->" + map);
logger.info("[ORG0]New info-->" + info);
for(String key : info.keySet()){
logger.info("[ORG]New info-->" + (key == null ? " " : key) + ":" + (key == null ? " " : info.get(key)));
}
userId = (String)info.get(MMIBAPParserKey.THISMSGCHRGIDS); //당메시지담당자ID
sysId = info.get(MMIBAPParserKey.SYSCD).toString(); //송신시스템
//*********************************************************
//** 임시 우케국 시스템코드 동기화 후 아래 거 풀어줘야 함 2021.07.20 장권진
//*********************************************************
// List<Map<String, Object>> sysMapList = service.selectSysGbCd(sysId);
// if ( sysMapList == null || sysMapList.size() != 1 )
// throw new Exception("대외 시스템ID를 특정할 수 없습니다.");
// validate data type & size
String checkresult = service.checkFieldLength(info);
if (checkresult != null) throw new Exception(checkresult);
// Map<String, Object> sysMap = sysMapList.get(0);
for(String key : info.keySet()){
logger.info("New info-->" + (key == null ? " " : key) + ":" + (key == null ? " " : info.get(key)));
}
// for(String key : sysMap.keySet()){
// logger.info("New sysMap-->" + (key == null ? " " : key) + ":" + (key == null ? " " : sysMap.get(key)));
// }
// String eaiFileRecvUseYn = (String)info.get(MMIBAPSyncField.eaiFileRecvUseYn.name());
// if ( eaiFileRecvUseYn.equals("1") ){
// String rmtNodeName = service.getNdmNodeBySysId(info.get(MMIBAPSyncField.rmtNodeName.name()).toString());
// //System.out.println("info.get(MMIBAPSyncField.rmtNodeName.name()).toString()-->" + info.get(MMIBAPSyncField.rmtNodeName.name()).toString());
// //System.out.println("rmtNodeName-->" + rmtNodeName);
// info.put(MMIBAPSyncField.rmtNodeName.name(), rmtNodeName );
// }else{
// info.put(MMIBAPSyncField.rmtNodeName.name(), "" );
// }
//** BjobBzwkDstcd, OsidInstiDstcd
// info.put(MMIBAPSyncField.bjobBzwkDstcd.name(), sysMap.get("BJOBBZWKDSTCD"));
// info.put(MMIBAPSyncField.osidInstiDstcd.name(), sysMap.get("OSIDINSTIDSTCD")); //**대외기관구분코드 (사용안함)
// service.merge(info);
logger.info("New sysId-->" + sysId );
//*********************************************************
//** 일괄 동기화 작업 보류함 --- 확인 후 조치 해야 함 2021.07.20 장권진
//** IFBPKG.TSEAIBA07 테이블에 아무정보 없음 (참고사항)
//*********************************************************
// logger.info("New sysId2-->" + sysId.substring(4, 5) );
// if ( sysId.substring(4, 5).equals("E")){
//일괄 인터페이스 동기화
// CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.dirInfo.RefreshAllJobCommand");
// if (!validate(agentUtilService.broadcast(command))) throw new Exception("일괄 인터페이스 동기화 오류");
// logger.info("New 일괄 인터페이스 동기화-->" + sysId);
// }else{
// logger.info("New 일괄 인터페이스 동기화 안함 -->" + sysId);
// }
sb.append(resultInterface(info.get(MMIBAPParserKey.BJOBMSGDSTCD).toString(), "V0.1", "SUCCESS", "일괄전송 배포 성공하였습니다."));
} catch(Exception e){
logger.error("MMIBAPSyncController error="+e.getMessage(),e);
sb.append(resultInterfaceDelete(info.get(MMIBAPParserKey.BJOBMSGDSTCD).toString(), "V0.1", "FAIL",e.getMessage()));
} finally {
//
}
frame.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
frame.append("<Deploy>");
frame.append(sb.toString());
frame.append("</Deploy>");
//MMI Log data
String schemaId = "";
DataSourceType dt = DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.MONITORING);
if(dt != null){//취약점소스 수정 2020.08.25
DataSourceContextHolder.setDataSourceType(dt);
schemaId =DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.MONITORING).getSchema();
}else{
logger.error("DataSourceType is null");
return null;
}
mmiLogMap.put("schemaId" , schemaId);
mmiLogMap.put("msgDpstHMS" , DateUtil.getDateTimeMilliSecound());
mmiLogMap.put("eaiSvcName" , NullControl.addSpace(sysId + "_" + fileName));
mmiLogMap.put("eaiSevrDstcd" , "0");
mmiLogMap.put("cnvsnName" , " " );
mmiLogMap.put("loutName" , " " );
mmiLogMap.put("reqDstcd" , NullControl.addSpace(buffer.toString()));
mmiLogMap.put("resDstcd" , NullControl.addSpace(frame.toString()));
mmiLogMap.put("interfaceId" , NullControl.addSpace(info.get(MMIBAPParserKey.BJOBMSGDSTCD).toString() ));
mmiLogMap.put("deployId" , NullControl.addSpace(userId));
try{
mmiLogDao.insert(mmiLogMap);
}catch(Exception e){
logger.error("db insert error : " + mmiLogMap.toString(),e);
}
ServletOutputStream sos = null;
try {
sos = response.getOutputStream();
sos.write(frame.toString().getBytes());
} catch( Exception e ) {
//취약점소스 수정 2020.08.24
logger.error(" error", e);
} finally {
if( sos != null ) sos.close();
}
return null;
}
private boolean validate(HashMap<String,Object> map ){
for(String key : map.keySet()){
Object o = map.get(key);
if (o instanceof String){
if("sucess".equals((String)o)){
;
}else{
return false;
}
}else{
return false;
}
}
return true;
}
private String resultInterface(String mmiIfId, String ver, String returnCode, String returnMessage){
return "<Result> mmi_if_id=\""+mmiIfId+"\" ver=\""+ver+"\" return_code=\""+returnCode+"\" return_message=\""+returnMessage+"\" />";
}
private String resultInterfaceDelete(String mmiIfId, String id, String returnCode, String returnMessage){
return "<Interface mmi_if_id=\""+mmiIfId+"\" id=\""+id+"\" return_code=\""+returnCode+"\" return_message=\""+returnMessage+"\" />";
}
private static String streamToString(InputStream is,String encoding) throws UnsupportedEncodingException{
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int r;
byte[] data = new byte[1024];
try {
while((r = is.read(data)) != -1){
buffer.write(data,0,r);
}
buffer.flush();
} catch (IOException e) {
//e.printStackTrace();
return "";
}
String s = new String(buffer.toByteArray(),encoding);
return s;
}
/**
* 통합인터페이스 시스템(EIMS)에서 일괄전송 파일송수신 인터페이스에 대해 BJ10 테이블에 저장
* *
* @param request
* @param response
* @param schema
* @return
* @throws Exception
*/
@RequestMapping(value= "/eimsbapcall.file", method=RequestMethod.POST)
public View deployBapInterface(HttpServletRequest request, HttpServletResponse response) throws Exception {
UserAccessLogger.log(request, "메시지", "L", "cmd=Message");
String intfId = "";
String serverType = monitoringContext.getStringProperty(MonitoringContext.MMI_SYNC_BAP_SERVERTYPE, "BAP");
DataSourceContextHolder.setDataSourceType(DataSourceTypeManager.getDataSourceType(serverType));
logger.debug("parseMessage content-Type="+request.getContentType());
logger.debug("parseMessage content-Values="+request.getParameterMap().values());
String resultBody = "";
try {
if (!SystemUtil.isDevServer()) {
logger.error("개발서버가 아니여서 배포처리 안함.");
resultBody = resultInterface("False", "배포 요청을 받은 환경이 개발서버가 아님.");
} else {
StringBuffer rcvXml = new StringBuffer();
for (String key : request.getParameterMap().keySet()) {
if (key.startsWith("INTERFACE")) {
String[] datas = request.getParameterValues(key);
for (String data : datas) {
rcvXml.append(data);
}
}
}
//ORG Start
BapDeploy bapDeploy = parseDeployXml(rcvXml.toString());
//ORG End
//HD추가 Start
// String tmpRcvXml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><Interface><Header appCd=\"ADA\" authorId=\"admin\" etcDesc=\"aaa\" fileCode=\"SSSS0011\" infDesc=\"bbb\" infDstCd=\"OUT\" infId=\"XAIBFEP90010035\" inftName=\"cccc\" osidInstiCd=\"01001\" outBizCd=\"03031BQ1\" recSize=\"100\" runType=\"E\" snDst=\"S\" srcBzSystemCd=\"AIB\" srcFileNm=\"*.*\" srcFilePath=\"/test2/file/\" tgtFileNm=\"aaa.txt\" trnsmsnCycle=\"ddd\"/></Interface>";
// BapDeploy bapDeploy = parseDeployXml(tmpRcvXml);
//HD추가 End
bapDeploy.setSchemaId(DataSourceContextHolder.getDataSourceType().getSchema());
bapDeploy.setCreateYmd(DateUtil.getDateTime());
intfId = bapDeploy.getInfId();
// validate data type & size
service.saveBapDeploy(bapDeploy); //EIMS 전달데이타 저장
service.mergeData(bapDeploy);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.dirInfo.RefreshAllJobCommand");
if (!validate(agentUtilService.broadcast(command))) throw new Exception("일괄 인터페이스 동기화 오류");
resultBody = resultInterface("True", "일괄전송 배포 성공하였습니다.");
}
} catch (Exception e) {
logger.error("배포 처리 실패=" + e.getMessage(), e);
resultBody = resultInterface("False", e.getMessage());
}
StringBuilder frame = new StringBuilder();
frame.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
frame.append("<Results sysInfId=\""+intfId+"\" ver=\"1.0\">");
frame.append(resultBody.toString());
frame.append("</Results>");
logger.debug("result XML="+frame.toString());
ServletOutputStream sos = null;
try {
sos = response.getOutputStream();
sos.write(frame.toString().getBytes("UTF-8"));
} catch( Exception e ) {
logger.error("배포 응답 송신 실패", e);
} finally {
if( sos != null ) sos.close();
}
return null;
}
private String resultInterface(String returnCode, String returnMessage){
return "<Result>"+returnCode+"</Result><ResultMessage>"+returnMessage+"</ResultMessage>";
}
public static class BapDeploy {
String appCd = "";
String authorId = "";
String etcDesc = "";
String fileCode = "";
String infDesc = "";
String infDstCd = "";
String infId = "";
String inftName = "";
String osidInstiCd = "";
String outBizCd = "";
String recSize = "";
String runType = "";
String snDst = "";
String srcBzSystemCd = "";
String srcFileNm = "";
String srcFilePath = "";
String tgtFileNm = "";
String trnsmsnCycle = "";
String createBy = "";
String createYmd = "";
String schemaId = "";
String bzwkDstCd = "";
String bjobMsgDstcd = "";
String fileSendUseYN = "";
String fileRecvUseYN = "";
String encYN ="N";
public String getEncYN() {
return encYN;
}
public void setEncYN(String encYN) {
this.encYN = encYN;
}
public String getAppCd() {
return appCd;
}
public void setAppCd(String appCd) {
this.appCd = appCd;
}
public String getAuthorId() {
return authorId;
}
public void setAuthorId(String authorId) {
this.authorId = authorId;
}
public String getEtcDesc() {
return etcDesc;
}
public void setEtcDesc(String etcDesc) {
this.etcDesc = etcDesc;
}
public String getFileCode() {
return fileCode;
}
public void setFileCode(String fileCode) {
this.fileCode = fileCode;
}
public String getInfDesc() {
return infDesc;
}
public void setInfDesc(String infDesc) {
this.infDesc = infDesc;
}
public String getInfDstCd() {
return infDstCd;
}
public void setInfDstCd(String infDstCd) {
this.infDstCd = infDstCd;
}
public String getInfId() {
return infId;
}
public void setInfId(String infId) {
this.infId = infId;
}
public String getInftName() {
return inftName;
}
public void setInftName(String inftName) {
this.inftName = inftName;
}
public String getOsidInstiCd() {
return osidInstiCd;
}
public void setOsidInstiCd(String osidInstiCd) {
this.osidInstiCd = osidInstiCd;
}
public String getOutBizCd() {
return outBizCd;
}
public void setOutBizCd(String outBizCd) {
this.outBizCd = outBizCd;
}
public String getRecSize() {
return recSize;
}
public void setRecSize(String recSize) {
this.recSize = recSize;
}
public String getRunType() {
return runType;
}
public void setRunType(String runType) {
this.runType = runType;
}
public String getSnDst() {
return snDst;
}
public void setSnDst(String snDst) {
this.snDst = snDst;
}
public String getSrcBzSystemCd() {
return srcBzSystemCd;
}
public void setSrcBzSystemCd(String srcBzSystemCd) {
this.srcBzSystemCd = srcBzSystemCd;
}
public String getSrcFileNm() {
return srcFileNm;
}
public void setSrcFileNm(String srcFileNm) {
this.srcFileNm = srcFileNm;
}
public String getSrcFilePath() {
return srcFilePath;
}
public void setSrcFilePath(String srcFilePath) {
this.srcFilePath = srcFilePath;
}
public String getTgtFileNm() {
return tgtFileNm;
}
public void setTgtFileNm(String tgtFileNm) {
this.tgtFileNm = tgtFileNm;
}
public String getTrnsmsnCycle() {
return trnsmsnCycle;
}
public void setTrnsmsnCycle(String trnsmsnCycle) {
this.trnsmsnCycle = trnsmsnCycle;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getCreateYmd() {
return createYmd;
}
public void setCreateYmd(String createYmd) {
this.createYmd = createYmd;
}
public String getSchemaId() {
return schemaId;
}
public void setSchemaId(String schemaId) {
this.schemaId = schemaId;
}
public String getBjobMsgDstcd() {
return bjobMsgDstcd;
}
public void setBjobMsgDstcd(String bjobMsgDstcd) {
this.bjobMsgDstcd = bjobMsgDstcd;
}
public String getBzwkDstCd() {
return bzwkDstCd;
}
public void setBzwkDstCd(String bzwkDstCd) {
this.bzwkDstCd = bzwkDstCd;
}
public String getFileSendUseYN() {
return fileSendUseYN;
}
public void setFileSendUseYN(String fileSendUseYN) {
this.fileSendUseYN = fileSendUseYN;
}
public String getFileRecvUseYN() {
return fileRecvUseYN;
}
public void setfileRecvUseYN(String fileRecvUseYN) {
this.fileRecvUseYN = fileRecvUseYN;
}
@Override
public String toString() {
return "BapDeploy [appCd=" + appCd + ", authorId=" + authorId + ", encYn=" + encYN + ", etcDesc=" + etcDesc + ", fileCode="
+ fileCode + ", infDesc=" + infDesc + ", infDstCd=" + infDstCd + ", infId=" + infId + ", inftName="
+ inftName + ", osidInstiCd=" + osidInstiCd + ", outBizCd=" + outBizCd + ", recSize=" + recSize
+ ", runType=" + runType + ", snDst=" + snDst + ", srcBzSystemCd=" + srcBzSystemCd + ", srcFileNm="
+ srcFileNm + ", srcFilePath=" + srcFilePath + ", tgtFileNm=" + tgtFileNm + ", trnsmsnCycle="
+ trnsmsnCycle + ", createBy=" + createBy + ", createYmd=" + createYmd + ", schemaId=" + schemaId
+ ", bzwkDstCd=" + bzwkDstCd + ", bjobMsgDstcd=" + bjobMsgDstcd + ", fileSendUseYN=" + fileSendUseYN
+ ", fileRecvUseYN=" + fileRecvUseYN + "]";
}
}
public static BapDeploy parseDeployXml(String data) throws Exception {
BapDeploy bapDeploy = new BapDeploy();
HashMap<String, String> result = new HashMap<>();
InputStream is = null;
try {
is = new ByteArrayInputStream(data.getBytes("UTF-8"));
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(is);
Element inter = doc.getRootElement();
result.putAll(getAttr(doc.getRootElement()));
result.putAll(getAttr(inter.getChild("Header")));
bapDeploy.setAppCd(result.get("appCd"));
bapDeploy.setAuthorId(result.get("authorId"));
bapDeploy.setEncYN(StringUtil.nvlTrim(result.get("encYn"), "N"));
bapDeploy.setEtcDesc(result.get("etcDesc"));
bapDeploy.setFileCode(result.get("fileCode"));
bapDeploy.setInfDesc(result.get("infDesc"));
bapDeploy.setInfDstCd(result.get("infDstCd"));
bapDeploy.setInfId(result.get("infId"));
bapDeploy.setInftName(result.get("inftName"));
bapDeploy.setOsidInstiCd(result.get("osidInstiCd"));
bapDeploy.setOutBizCd(result.get("outBizCd"));
bapDeploy.setRecSize(result.get("recSize"));
bapDeploy.setRunType(result.get("runType"));
bapDeploy.setSnDst(result.get("snDst"));
bapDeploy.setSrcBzSystemCd(result.get("srcBzSystemCd"));
bapDeploy.setSrcFileNm(result.get("srcFileNm"));
bapDeploy.setSrcFilePath(result.get("srcFilePath"));
bapDeploy.setTgtFileNm(result.get("tgtFileNm"));
bapDeploy.setTrnsmsnCycle(result.get("trnsmsnCycle"));
} catch (Exception e) {
throw new Exception("배포 요청 XML parsing error " + e.getMessage(), e);
} finally {
if (is != null) {
try {
is.close();
} catch (Exception e) {
}
}
}
return bapDeploy;
}
public static HashMap<String,String> getAttr(Element doc){
if (doc == null) return new HashMap<String,String>();
HashMap<String,String> map = new HashMap<String,String>();
for(Object obj : doc.getAttributes()){
if (obj instanceof Attribute){
Attribute attr = (Attribute)obj;
map.put(attr.getName(), attr.getValue());
}
}
return map;
}
}
@@ -0,0 +1,81 @@
package com.eactive.eai.rms.bap.manage.mmi;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.bap.manage.mmi.MMIBAPSyncController.BapDeploy;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("mmiBapSyncDao")
@SuppressWarnings({"deprecation"})
public class MMIBAPSyncDao extends SqlMapClientTemplateDao {
public void insertBJ01(BapDeploy bapDeploy) throws Exception{
this.template.insert("mmiBapSync.insertBJ01", bapDeploy);
}
public String generatePKBJ01(BapDeploy bapDeploy ) throws Exception{
return (String)this.template.queryForObject("mmiBapSync.generatePKBJ01", bapDeploy);
}
public int selectCountBJ01(BapDeploy bapDeploy) throws Exception{
return (Integer)this.template.queryForObject("mmiBapSync.selectCountBJ01", bapDeploy);
}
public String selectBzwkDstCd(BapDeploy bapDeploy) throws Exception{
return (String)this.template.queryForObject("mmiBapSync.selectBzwkDstCd", bapDeploy);
}
@SuppressWarnings("unchecked")
public List<Map<String, Object>> selectSysGbCd(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("mmiBapSync.selectSysGbCd", param);
}
public String getNdmNodeBySysId(HashMap<String, Object> paramMap ) throws Exception{
return (String)this.template.queryForObject("mmiBapSync.selectNdmNodeBySysId", paramMap);
}
public String selectPKBJ01(BapDeploy bapDeploy ) throws Exception{
return (String)this.template.queryForObject("mmiBapSync.selectPKBJ01", bapDeploy);
}
public void updateBJ01(BapDeploy bapDeploy) throws Exception{
this.template.update("mmiBapSync.updateBJ01", bapDeploy);
}
public void insertBS01(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("mmiBapSync.insertBS01", paramMap);
}
public String generatePKBS01(HashMap<String, Object> paramMap ) throws Exception{
return (String)this.template.queryForObject("mmiBapSync.generatePKBS01", paramMap);
}
public int selectCountBS01(HashMap<String, Object> paramMap ) throws Exception{
return (Integer)this.template.queryForObject("mmiBapSync.selectCountBS01", paramMap);
}
public String selectPKBS01(HashMap<String, Object> paramMap ) throws Exception{
return (String)this.template.queryForObject("mmiBapSync.selectPKBS01", paramMap);
}
public void updateBS01(HashMap<String, Object> paramMap) throws Exception{
this.template.update("mmiBapSync.updateBS01", paramMap);
}
public void deleteBJ01(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("mmiBapSync.deleteBJ01", paramMap);
}
public void deleteBS01(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("mmiBapSync.deleteBS01", paramMap);
}
// added by cskim
public void insertBapDeploy(BapDeploy bapDeploy) throws Exception {
this.template.insert("mmiBapSync.insertBapDeploy", bapDeploy);
}
}
@@ -0,0 +1,83 @@
package com.eactive.eai.rms.bap.manage.mmi;
public enum MMIBAPSyncField {
bjobMsgDstcd ("String", 15, "BATCH작업메시지구분코드내용", true),
bjobMsgDsticName ("String", 400, "BATCH작업메시지구분명", true),
bjobBzwkDstcd ("String", 8, "BATCH작업업무구분코드내용", true),
bjobTranDstcdName ("String", 20, "BATCH작업거래구분명", true),
bjobTelgmHdrSize ("Integer", 0, "BATCH작업전문헤더크기값", true),
bjobTelgmRecSize ("Integer", 0, "BATCH작업전문레코드크기수", true),
bjobTelgmTrailSize ("Integer", 0, "BATCH작업전문트레일러크기값", true),
eaiFileSendUseYn ("String", 1, "EAI파일송신사용여부", true),
eaiFileRecvUseYn ("String", 1, "EAI파일수신사용여부", true),
msgPrcssPrity ("Integer", 0, "메시지처리우선순위값", true),
sysCd ("String", 3, "송신시스템", true),
uapplCd ("String", 3, "어플리케이션코드내용", true),
sndRcvFileName ("String", 100, "송수신파일명", true),
rcvFilePattern ("String", 100, "송수신파일명", true),
sndrcvfilepath ("String", 200, "송수신파일경로", true),
thisMsgChrgIDs ("String", 100, "당메시지담당자ID명", true),
recvnotiuseYn ("String", 1, "수신알림사용여부", true),
logCretnYn ("String", 1, "로그생성정보명", true),
fileTransSche ("String", 50, "파일송수신스케줄", true),
thisMsgUseYn ("String", 1, "당메시지사용여부", true),
thisMsgRegsntID ("String", 40, "당메시지등록자ID", true),
thisMsgAmndrID ("String", 40, "당메시지수정자ID", true),
rmtNodeName ("String", 20, "원격노드명", false),
sndScriptName ("String", 100, "전송스크립트내용", false),
userid ("String", 40, "사용자ID", false),
groupCoCd ("String", 1, "그룹사구분코드내용", false),
bzwkRsEmpName ("String", 60, "업무담당자", false),
bzwkRsEmpTelno ("String", 50, "업무담당자전화번호", false),
osidInstiCode ("String", 20, "대외기관코드", false),
osidInstiBzwkRsEmpName ("String", 60, "대외기관담당자", false),
osidInstiTelno ("String", 50, "대외기관담당자전화번호", false),
fileTransCond ("String", 10, "파일송수신조건", false),
fileTransAlam ("String", 10, "파일송수신알람", false),
bjobMsgScheId ("String", 30, "BATCH작업메시지일정ID명", false),
osidInstiDstcd ("String", 4, "대외기관구분코드내용", false),
bjobPtrnDstcd ("String", 2, "BATCH작업유형구분코드내용", false),
sndrcvStartHMS ("String", 17, "송수신시작시각", false),
sndrcvEndHMS ("String", 17, "송수신종료시각", false),
msgSndrID ("String", 40, "메시지송신자ID명", false),
rqstRecvReTralCnt ("Integer", 0, "요구수신재시도수", false),
rqstRecvReTralUseYn ("String", 1, "요구수신재시도사용여부", false),
rqstRecvReTralIntvalTtm ("Integer", 0, "요구수신재시도간격시간", false),
holdyPrcssDstcd ("String", 1, "휴일처리구분코드내용", false),
startDlayNoday ("Integer", 0, "시작지연일수", false),
endDlayNoday ("Integer", 0, "종료지연일수", false),
rpttYn ("String", 1, "반복여부", false);
private String fieldType; // field 유형
private int fieldLength; // field 길이
private String fieldDesc; // field 설명
private boolean fieldUseYn; // field 사용여부
MMIBAPSyncField(String fieldType, int fieldLength, String fieldDesc, boolean fieldUseYn) {
this.fieldType = fieldType;
this.fieldLength = fieldLength;
this.fieldDesc = fieldDesc;
this.fieldUseYn = fieldUseYn;
}
public String getFieldType() {
return fieldType;
}
public int getFieldLength() {
return fieldLength;
}
public String getFieldDesc() {
return fieldDesc;
}
public Boolean getFieldUseYn() {
return fieldUseYn;
}
}
@@ -0,0 +1,139 @@
package com.eactive.eai.rms.bap.manage.mmi;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.rms.bap.manage.mmi.MMIBAPSyncController.BapDeploy;
import com.eactive.eai.rms.common.base.BaseService;
@Service("mmiBapSyncService")
public class MMIBAPSyncService extends BaseService {
@Autowired
@Qualifier("mmiBapSyncDao")
private MMIBAPSyncDao dao;
private static final Logger logger = Logger.getLogger(MMIBAPSyncService.class);
//일괄전송 BJ01 및 본 테이블 반영
public void mergeData(BapDeploy bapDeploy) throws Exception {
String bj01pkgen = "";
//TODO hd 스케줄러 등록 고려
String bs01pkgen = "";
logger.info( "BF BJ01 I/U" + bapDeploy);
// TSEAIBJ01 데이터 처리
int selCountBJ01 = dao.selectCountBJ01(bapDeploy);
//일괄전송 고유 업무 코드 구하기.
String bzwkDstCd = "";
try {
bzwkDstCd = dao.selectBzwkDstCd(bapDeploy);
} catch(Exception e) {
e.printStackTrace();
}
logger.info("bzwkDstCd : "+ bzwkDstCd);
bapDeploy.setBzwkDstCd(bzwkDstCd);
String sndst = bapDeploy.getSnDst();
String fileSendUseYN = "0";
String fileRecvUseYN = "0";
if(sndst.equals("S")) { //송신
fileSendUseYN = "1";
} else if(sndst.equals("R")) { // 수신
fileRecvUseYN = "1";
} else if(sndst.equals("A")) { // 송수신
fileSendUseYN = "1";
fileRecvUseYN = "1";
} else { // 잘못된 코드
throw new Exception("잘못된 코드입니다");
}
bapDeploy.setFileSendUseYN(fileSendUseYN);
bapDeploy.setfileRecvUseYN(fileRecvUseYN);
logger.info(">>>>>>>>>>>bapDeploy : "+ bapDeploy.toString());
if (selCountBJ01 == 0) {
logger.info("bapDeploy : "+ bapDeploy.toString());
bj01pkgen = dao.generatePKBJ01(bapDeploy);
logger.info("bj01pkgen : "+ bj01pkgen);
bapDeploy.setBjobMsgDstcd(bj01pkgen);
dao.insertBJ01(bapDeploy);
logger.info("insert BAP interface into TSEAIBJ01 : "+ bapDeploy);
} else {
bj01pkgen = dao.selectPKBJ01(bapDeploy);
logger.info("else bj01pkgen : "+ bj01pkgen);
bapDeploy.setBjobMsgDstcd(bj01pkgen);
dao.updateBJ01(bapDeploy);
logger.info("update BAP interface of TSEAIBJ01 : "+ bapDeploy);
}
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
//int selCountBJ01 = dao.selectCountBJ01(paramMap);
// if (selCountBJ01 > 0) {
// //paramMap.put( MMIBAPSyncField.bjobMsgDstcd.name(), dao.selectPKBJ01(paramMap));
// dao.deleteBJ01(paramMap);
// logger.info("delete BAP interface in TSEAIBJ01 : "+ paramMap);
// } else {
// logger.error("Fail BAP interface to delete in TSEAIBJ01 : "+ paramMap);
// return;
// }
int selCountBS01 = dao.selectCountBS01(paramMap);
if (selCountBS01 > 0) {
paramMap.put( MMIBAPSyncField.bjobMsgScheId.name(), dao.selectPKBS01(paramMap));
dao.deleteBS01(paramMap);
logger.info("delete BAP interface in TSEAIBS01 : "+ paramMap);
} else {
logger.error("Fail BAP interface to delete in TSEAIBS01 : "+ paramMap);
return;
}
}
public String checkFieldLength(HashMap<String,Object> paramap) throws Exception
{
String result = null;
for (MMIBAPSyncField field : MMIBAPSyncField.values())
{
if (!field.getFieldType().toUpperCase().equals("STRING") || !field.getFieldUseYn()) continue;
if (paramap.get(field.name()) == null) {
result = "column validation fail - [" + field.name() + "] column is not exist";
break;
}
if (paramap.get(field.name()).toString().length() > field.getFieldLength()) {
result = "column validation fail - [" + field.name() + "] column length can't over than "+field.getFieldLength();
break;
}
}
return result;
}
public List<Map<String, Object>> selectSysGbCd( String sysGbName ) throws Exception{
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put( "sysGbName", sysGbName);
logger.info("sysGbName --->" + sysGbName);
return dao.selectSysGbCd(paramMap);
}
public String getNdmNodeBySysId( String systemId ) throws Exception{
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put( "systemId", systemId);
logger.info("systemId=--->" + systemId);
return dao.getNdmNodeBySysId(paramMap);
}
public void saveBapDeploy(BapDeploy bapDeploy) throws Exception {
logger.info("saveBapDeploy=--->" + bapDeploy);
dao.insertBapDeploy(bapDeploy);
}
}
@@ -0,0 +1,107 @@
package com.eactive.eai.rms.bap.manage.schedule.businessDay;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.combo.ComboService;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
import com.eactive.eai.rms.onl.common.util.DateUtil;
@Controller
public class BapBusinessDayController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapBusinessDayService")
private BapBusinessDayService service;
@RequestMapping(value= "/bap/admin/schedule/businessDayMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/schedule/businessDayMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo , @RequestParam HashMap<String, Object> paramMap) throws Exception {
String likeBaseDT = (String)paramMap.get("likeBaseDT");
if("%%".equals(likeBaseDT)) { // 기준일자 검색어가 없을 때는 당월 데이터 list
paramMap.put("likeBaseDT", "%"+DateUtil.getDate().substring(0, 6)+"%");
}
HashMap<String, Object> map = service.selectList( pageVo.getStartNum(), pageVo.getEndNum(), paramMap);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/schedule/businessDayMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response, String bJobMsgScheId) throws Exception {
HashMap<String, Object> map = service.selectDetail(bJobMsgScheId);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/schedule/businessDayMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map) throws Exception {
service.insert(map);
return null;
}
@RequestMapping(value= "/bap/admin/schedule/businessDayMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.update(map);
return null;
}
@RequestMapping(value= "/bap/admin/schedule/businessDayMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String, Object> map ) throws Exception {
service.delete(map);
return null;
}
}
@@ -0,0 +1,41 @@
package com.eactive.eai.rms.bap.manage.schedule.businessDay;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("BapBusinessDayDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapBusinessDayDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapBusinessDay.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapBusinessDay.selectList", param);
}
public HashMap<String, Object> selectDetail(String bJobMsgScheId) throws Exception {
HashMap<String, Object> param = new HashMap<String, Object>();
param.put("bJobMsgScheId", bJobMsgScheId);
return (HashMap<String, Object>)template.queryForObject("BapBusinessDay.selectDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapBusinessDay.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapBusinessDay.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapBusinessDay.delete", paramMap);
}
}
@@ -0,0 +1,56 @@
package com.eactive.eai.rms.bap.manage.schedule.businessDay;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.eactive.eai.adapter.wca.jdbc.JDBCException;
import com.eactive.eai.rms.bap.common.base.BapBaseService;
@Service("bapBusinessDayService")
public class BapBusinessDayService extends BapBaseService {
@Autowired
@Qualifier("BapBusinessDayDao")
private BapBusinessDayDao dao;
public HashMap<String, Object> selectList(int startNum,int endNum, HashMap<String, Object> paramMap) throws Exception {
// 전체 목록수 얻기
int totalCount = dao.selectListCount(paramMap);
paramMap.put("startNum" , startNum);// 시작 record
paramMap.put("endNum" , endNum);// 끝 record
List<Map<String, Object>> list = dao.selectList(paramMap);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("totalCount", totalCount);
map.put("list", list);
return map;
}
public HashMap<String, Object> selectDetail(String bJobMsgScheId) throws Exception {
return dao.selectDetail( bJobMsgScheId );
}
public void insert(HashMap<String, Object> paramMap) throws Exception {
dao.insert(paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception {
dao.update(paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception {
dao.delete(paramMap);
}
}
@@ -0,0 +1,110 @@
package com.eactive.eai.rms.bap.manage.schedule.cron;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.BapBaseAnnotationController;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.vo.JsonPageVo;
@Controller
public class BapCronController extends BapBaseAnnotationController {
@Autowired
@Qualifier("bapCronService")
private BapCronService service;
@RequestMapping(value= "/bap/admin/cron/cronMan.view")
public String viewList(HttpServletRequest request, @RequestParam(value = "cmd", required = false ) String cmd ) throws Exception {
if (cmd == null || "LIST".equals(cmd.toUpperCase())){
cmd = "";
}else {
cmd = CamelCaseUtil.converCamelCase(cmd);
}
String path = request.getServletPath();
return path.split("[.]")[0]+cmd;
}
/**
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(value= "/bap/admin/cron/cronMan.json", params = "cmd=LIST")
public ModelAndView selectList(HttpServletRequest request,
JsonPageVo pageVo, String searchSchedId) throws Exception {
HashMap<String, Object> map = service.selectList(pageVo.getStartNum(), pageVo.getEndNum(), searchSchedId);
pageVo.setTotalCount((Integer)map.get("totalCount"));
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("total" , pageVo.getTotal()); //전체 페이지수
resultMap.put("page" , pageVo.getPage()); //현재 페이지수
resultMap.put("records", pageVo.getTotalCount());//전체 레코드건수
resultMap.put("rows" , map.get("list"));
ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/cron/cronMan.json",params = "cmd=DETAIL")
public ModelAndView selectDetail(HttpServletRequest request,
HttpServletResponse response,String schedId) throws Exception {
HashMap<String, Object> map = service.selectDetail(schedId);
ModelAndView modelAndView = new ModelAndView("jsonView", map);
return modelAndView;
}
@RequestMapping(value= "/bap/admin/cron/cronMan.json",params = "cmd=INSERT")
public String insert(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
service.insert(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.cron.UpdateCronCommand",(String)map.get("schedId"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/cron/cronMan.json",params = "cmd=UPDATE")
public String update(HttpServletRequest request,
HttpServletResponse response,@RequestParam HashMap<String,Object> map) throws Exception {
service.update(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.cron.UpdateCronCommand",(String)map.get("schedId"));
agentUtilService.broadcast(command);
return null;
}
@RequestMapping(value= "/bap/admin/cron/cronMan.json",params = "cmd=DELETE")
public String delete(HttpServletRequest request,
HttpServletResponse response, @RequestParam HashMap<String,Object> map ) throws Exception {
service.delete(map);
CommonCommand command = new CommonCommand("com.eactive.eai.agent.cron.RemoveCronCommand",(String)map.get("schedId"));
agentUtilService.broadcast(command);
return null;
}
}
@@ -0,0 +1,40 @@
package com.eactive.eai.rms.bap.manage.schedule.cron;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
@Repository("bapCronDao")
@SuppressWarnings({"deprecation","unchecked"})
public class BapCronDao extends SqlMapClientTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("BapCron.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("BapCron.selectList", param);
}
public HashMap<String, Object> selectDetail(HashMap<String, Object> param) throws Exception {
return (HashMap<String, Object>)template.queryForObject("BapCron.selectDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("BapCron.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("BapCron.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("BapCron.delete", paramMap);
}
}

Some files were not shown because too many files have changed in this diff Show More