메시지 메타 insert bm02 쿼리 수정 및 controller, service 수정
This commit is contained in:
+1
-86
@@ -1,8 +1,6 @@
|
||||
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;
|
||||
@@ -122,88 +120,5 @@ public class BapMessageMetaController extends BapBaseAnnotationController {
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-177
@@ -1,9 +1,5 @@
|
||||
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;
|
||||
@@ -13,8 +9,6 @@ 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 {
|
||||
@@ -23,17 +17,13 @@ public class BapMessageMetaService extends BapBaseService {
|
||||
@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
|
||||
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>();
|
||||
@@ -44,11 +34,6 @@ public class BapMessageMetaService extends BapBaseService {
|
||||
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);
|
||||
@@ -94,162 +79,4 @@ public class BapMessageMetaService extends BapBaseService {
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
ThisMsgRegsntID,
|
||||
ThisMsgRegiHMS,
|
||||
ThisMsgAmndrID,
|
||||
ThisMsgAmndHMS )
|
||||
<!-- MsgMetaDstcd ) -->
|
||||
ThisMsgAmndHMS,
|
||||
MSGMETADSTCD )
|
||||
VALUES (
|
||||
#msgMetaDstcd# ,
|
||||
#msgClmnSeq# ,
|
||||
@@ -88,10 +88,10 @@
|
||||
#userid# ,
|
||||
TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),
|
||||
#userid# ,
|
||||
TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF3')
|
||||
<!-- #msgMetaDstcd# -->
|
||||
TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),
|
||||
#msgMetaDstcd#
|
||||
)
|
||||
|
||||
</statement>
|
||||
|
||||
|
||||
</sqlMap>
|
||||
Reference in New Issue
Block a user