Java tutorial
package com.skt.adcas.lte.action; import com.google.gson.Gson; import com.google.gson.internal.StringMap; import com.google.gson.reflect.TypeToken; import com.skt.adcas.lte.db.SqlSessionManager; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.SqlSession; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.WorkbookUtil; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.Type; import java.util.*; public class DownLinkByQMSStatsAction extends ActionSupport4lte { private static final long serialVersionUID = 1L; /* */ public List<HashMap> getRows() { return rows; } public List<HashMap> getSTATS() { return STATS; } public String getMsg() { return msg; } public String getStatus() { return status; } public Boolean getError() { return error; } public String getDownloadurl() { return downloadurl; } private List<HashMap> rows = null; private List<HashMap> STATS = null; private String msg = null; private String status = null; private Boolean error = false; private HashMap<String, Object> param = new HashMap<String, Object>(); private String downloadurl = ""; private HashMap adminCriticalValues; public HashMap getAdminCriticalValues() { return (HashMap) request.getSession().getAttribute("ADMIN_CRITICAL_VALUES"); } /* ??*/ public void setSEARCHTYPE(String SEARCHTYPE) { this.SEARCHTYPE = SEARCHTYPE; } public String getSEARCHTYPE() { return SEARCHTYPE; } public void setBONBU_CD(String BONBU_CD) { this.BONBU_CD = BONBU_CD; } public void setOPER_TEAM_CD(String OPER_TEAM_CD) { this.OPER_TEAM_CD = OPER_TEAM_CD; } public void setCITY(String CITY) { this.CITY = CITY; } public void setMME_GRP_ID(String MME_GRP_ID) { this.MME_GRP_ID = MME_GRP_ID; } public void setNE_ID(String NE_ID) { this.NE_ID = NE_ID; } public void setFROMYMD(String FROMYMD) { this.FROMYMD = FROMYMD; } public void setTOYMD(String TOYMD) { this.TOYMD = TOYMD; } public void setFREQ_KIND(String FREQ_KIND) { this.FREQ_KIND = FREQ_KIND; } public void setVIEWTYPE(String VIEWTYPE) { this.VIEWTYPE = VIEWTYPE; } public void setSUBLIST(String SUBLIST) { this.SUBLIST = SUBLIST; } public void setJSONDATA(String JSONDATA) { this.JSONDATA = JSONDATA; } public void setJSONDATA2(String JSONDATA2) { this.JSONDATA2 = JSONDATA2; } private String SEARCHTYPE = ""; private String BONBU_CD = ""; private String OPER_TEAM_CD = ""; private String CITY = ""; private String MME_GRP_ID = ""; private String NE_ID = ""; private String FROMYMD = ""; private String TOYMD = ""; private String FREQ_KIND = ""; private String VIEWTYPE = ""; //For Graph private String SUBLIST = ""; //For Excel private String JSONDATA = ""; private String JSONDATA2 = ""; private void parseParam() throws Exception { String USER_ID = (String) request.getSession().getAttribute("USER_ID");//"qcas"; //to do session . if (!isLocalHost()) { if (isNull(USER_ID).equals("")) { throw new Exception("? ?"); } } param.put("SEARCHTYPE", SEARCHTYPE); param.put("BONBU_CD", BONBU_CD); param.put("OPER_TEAM_CD", OPER_TEAM_CD); param.put("CITY", CITY); param.put("MME_GRP_ID", MME_GRP_ID); param.put("NE_ID", NE_ID); param.put("FROMYMD", FROMYMD.replace("-", "").replace(".", "").replace("/", "")); param.put("TOYMD", TOYMD.replace("-", "").replace(".", "").replace("/", "")); param.put("FREQ_KIND", FREQ_KIND); param.put("VIEWTYPE", VIEWTYPE); param.put("USER_ID", USER_ID); this.log.debug("######################" + SUBLIST); if (!SUBLIST.equals("")) { ArrayList<String> subList = new ArrayList<String>(); String temp01[] = SUBLIST.split("\\|"); for (int i = 0; i < temp01.length; i++) { this.log.debug("######################" + temp01[i]); subList.add(temp01[i]); } if (subList.size() > 0) param.put("SUBLIST", subList); } this.log.debug("###################### ? "); this.log.debug(param.toString()); } public String selectCellTrafficStats() { this.log.debug("selectCellTrafficStats Start"); SqlSession session = null; try { parseParam(); this.log.debug("###################### "); session = SqlSessionManager.getSqlSession().openSession(); //this.param.put("BTS_NM_CMS",BTS_NM_CMS); this.log.debug( "###################### ?? =" + "DownLinkByQMSStats.selectCellTrafficStats"); this.rows = session.selectList("DownLinkByQMSStats.selectCellTrafficStats", param); this.log.debug("###################### "); if (this.rows.size() > 0) { this.msg = "?."; } else { this.msg = " ."; } this.status = "SUCCESS"; } catch (Exception e) { this.msg = "? ?. ?? ?.\n\n" + e.getMessage(); this.status = "ERROR"; this.error = true; if (session != null) { session.rollback(); } e.printStackTrace(); } finally { if (session != null) { session.close(); } } this.log.debug("selectCellTrafficStats End"); return SUCCESS; } private static void createCell(Workbook wb, Row row, short column, String value, short halign) { Cell cell = row.createCell(column); cell.setCellValue(value); CellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(halign); cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); cell.setCellStyle(cellStyle); } private static void createCell(Workbook wb, Row row, short column, double value, short halign) { Cell cell = row.createCell(column); cell.setCellValue(value); CellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(halign); cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); cell.setCellStyle(cellStyle); } private String parseKey(StringMap jrow, String Key, String None) { return jrow.containsKey(Key) ? jrow.get(Key).toString() : None; } //Double public void setCellDoubleIfExistValue(Cell cell, StringMap map, String str) { if (map.containsKey(str)) cell.setCellValue(Double.parseDouble(map.get(str).toString())); } public String selectCellTrafficStatsCQIExcelDownload() { this.log.debug("selectCellTrafficStatsCQIExcelDownload Start"); SqlSession session = null; FileOutputStream fileOut = null; try { //parseParam(); Type type = new TypeToken<Map<String, Object>>() { }.getType(); Gson gson = new Gson(); Map<String, Object> map = gson.fromJson(this.JSONDATA, type); log.debug("json data : " + this.JSONDATA); String searchType = this.SEARCHTYPE; log.debug("SEARCHTYPE : " + searchType); Workbook wb = new HSSFWorkbook(); //PDFsheet String sheetName = "CQI PDF"; String safeName = WorkbookUtil.createSafeSheetName(sheetName); Sheet PDFsheet = wb.createSheet(safeName); createCellTrafficStatsCQIExcelSheet(PDFsheet, "PDF", searchType, map); //CDFsheet sheetName = "CQI CDF"; safeName = WorkbookUtil.createSafeSheetName(sheetName); Sheet CDFsheet = wb.createSheet(safeName); createCellTrafficStatsCQIExcelSheet(CDFsheet, "CDF", searchType, map); String writeFolderPath = (String) super.properties.get("TEMP_FOLDER_PATH"); String tempFolder = "/" + UUID.randomUUID().toString(); String xlsFileName = "/DownLinkStatsCQI(PDF_CDF)(QMS).xls"; if (!(new File(writeFolderPath + tempFolder)).mkdir()) { throw new Exception("? ?? ."); } String xlsFileFullPath = writeFolderPath + tempFolder + xlsFileName; fileOut = new FileOutputStream(xlsFileFullPath); wb.write(fileOut); this.msg = "? ? ?"; this.status = "SUCCESS"; this.downloadurl = "download" + tempFolder + xlsFileName; } catch (Exception e) { this.msg = e.getMessage(); this.status = "ERROR"; this.error = true; if (session != null) { session.rollback(); } e.printStackTrace(); } finally { try { if (fileOut != null) fileOut.close(); } catch (IOException e) { e.printStackTrace(); } if (session != null) { session.close(); } } this.log.debug("selectCellTrafficStatsCQIExcelDownload End"); return SUCCESS; } public void createCellTrafficStatsCQIExcelSheet(Sheet sheet, String type, String searchType, Map<String, Object> map) throws Exception { this.log.debug("createCellTrafficStatsCQIExcelSheet Start"); //header ? Row hrow0 = sheet.createRow((short) 0); hrow0.setHeightInPoints(20); int a = 0; hrow0.createCell(a++).setCellValue(""); if (searchType.equalsIgnoreCase("BONBU")) { hrow0.createCell(a++).setCellValue(""); } else if (searchType.equalsIgnoreCase("TEAM")) { hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(""); } else if (searchType.equalsIgnoreCase("PART")) { hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(""); } else if (searchType.equalsIgnoreCase("CITY")) { hrow0.createCell(a++).setCellValue("?//"); } else if (searchType.equalsIgnoreCase("UNI")) { hrow0.createCell(a++).setCellValue("?//"); hrow0.createCell(a++).setCellValue("//"); } else if (searchType.equalsIgnoreCase("EMS")) { hrow0.createCell(a++).setCellValue("MME GROUP"); hrow0.createCell(a++).setCellValue("EMS"); } hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(type + "#00"); hrow0.createCell(a++).setCellValue(type + "#01"); hrow0.createCell(a++).setCellValue(type + "#02"); hrow0.createCell(a++).setCellValue(type + "#03"); hrow0.createCell(a++).setCellValue(type + "#04"); hrow0.createCell(a++).setCellValue(type + "#05"); hrow0.createCell(a++).setCellValue(type + "#06"); hrow0.createCell(a++).setCellValue(type + "#07"); hrow0.createCell(a++).setCellValue(type + "#08"); hrow0.createCell(a++).setCellValue(type + "#09"); hrow0.createCell(a++).setCellValue(type + "#10"); hrow0.createCell(a++).setCellValue(type + "#11"); hrow0.createCell(a++).setCellValue(type + "#12"); hrow0.createCell(a++).setCellValue(type + "#13"); hrow0.createCell(a++).setCellValue(type + "#14"); hrow0.createCell(a++).setCellValue(type + "#15"); ArrayList list01 = (ArrayList) map.get("rows"); Iterator iterator = (Iterator) list01.iterator(); short i = 1; while (iterator.hasNext()) { StringMap jrow = (StringMap) iterator.next(); // Row row = sheet.createRow((short) i); row.setHeightInPoints(20); int b = 0; row.createCell(b++).setCellValue((String) jrow.get("YMD")); if (searchType.equalsIgnoreCase("BONBU") || searchType.equalsIgnoreCase("CITY")) { row.createCell(b++).setCellValue((String) jrow.get("TITLE01")); } else if (searchType.equalsIgnoreCase("TEAM") || searchType.equalsIgnoreCase("UNI") || searchType.equalsIgnoreCase("EMS")) { row.createCell(b++).setCellValue((String) jrow.get("TITLE01")); row.createCell(b++).setCellValue((String) jrow.get("TITLE02")); } else if (searchType.equalsIgnoreCase("PART")) { row.createCell(b++).setCellValue((String) jrow.get("TITLE01")); row.createCell(b++).setCellValue((String) jrow.get("TITLE02")); row.createCell(b++).setCellValue((String) jrow.get("TITLE03")); } row.createCell(b++).setCellValue((String) jrow.get("FREQ_KIND")); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_00"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_01"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_02"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_03"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_04"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_05"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_06"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_07"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_08"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_09"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_10"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_11"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_12"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_13"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_14"); setCellDoubleIfExistValue(row.createCell(b++), jrow, "CQI_" + type + "_15"); i++; } this.log.debug("selectCellTrafficStatsCQIExcelDownload End"); } public String selectCellTrafficStatsExcelDownload() { this.log.debug("selectCellTrafficStatsExcelDownload Start"); SqlSession session = null; FileOutputStream fileOut = null; try { //parseParam(); Type type = new TypeToken<Map<String, Object>>() { }.getType(); Gson gson = new Gson(); Map<String, Object> map = gson.fromJson(this.JSONDATA, type); log.debug("json data : " + this.JSONDATA); String searchType = this.SEARCHTYPE; Workbook wb = new HSSFWorkbook(); //CreationHelper createHelper = wb.getCreationHelper(); String sheetName = "data"; String safeName = WorkbookUtil.createSafeSheetName(sheetName); //sheet Sheet sheet = wb.createSheet(safeName); // CellStyle cellStyle = wb.createCellStyle(); // cellStyle.setAlignment(CellStyle.ALIGN_CENTER); // cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); createCellTrafficStatsExcelSheet(sheet, searchType, map); log.debug("selectCellTrafficStatsExcelDownload : file start"); String writeFolderPath = (String) super.properties.get("TEMP_FOLDER_PATH"); String tempFolder = "/" + UUID.randomUUID().toString(); String xlsFileName = "/DownLinkStatsData(QMS).xls"; if (!(new File(writeFolderPath + tempFolder)).mkdir()) { throw new Exception("? ?? ."); } String xlsFileFullPath = writeFolderPath + tempFolder + xlsFileName; fileOut = new FileOutputStream(xlsFileFullPath); wb.write(fileOut); log.debug("selectCellTrafficStatsExcelDownload : file end"); this.msg = "? ? ?"; this.status = "SUCCESS"; this.downloadurl = "download" + tempFolder + xlsFileName; } catch (Exception e) { this.msg = e.getMessage(); this.status = "ERROR"; this.error = true; if (session != null) { session.rollback(); } e.printStackTrace(); } finally { try { if (fileOut != null) fileOut.close(); } catch (IOException e) { e.printStackTrace(); } if (session != null) { session.close(); } } this.log.debug("selectCellTrafficStatsExcelDownload End"); return SUCCESS; } public void createCellTrafficStatsExcelSheet(Sheet sheet, String searchType, Map<String, Object> map) throws Exception { this.log.debug("createCellTrafficStatsExcelSheet Start"); //header ? log.debug("createCellTrafficStatsExcelSheet : hrow start"); Row hrow0 = sheet.createRow((short) 0); hrow0.setHeightInPoints(20); int a = 0; hrow0.createCell(a++).setCellValue(""); if (searchType.equalsIgnoreCase("BONBU")) { hrow0.createCell(a++).setCellValue(""); } else if (searchType.equalsIgnoreCase("TEAM")) { hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(""); } else if (searchType.equalsIgnoreCase("PART")) { hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(""); hrow0.createCell(a++).setCellValue(""); } else if (searchType.equalsIgnoreCase("CITY")) { hrow0.createCell(a++).setCellValue("?//"); } else if (searchType.equalsIgnoreCase("UNI")) { hrow0.createCell(a++).setCellValue("?//"); hrow0.createCell(a++).setCellValue("//"); } else if (searchType.equalsIgnoreCase("EMS")) { hrow0.createCell(a++).setCellValue("MME GROUP"); hrow0.createCell(a++).setCellValue("EMS"); } hrow0.createCell(a++).setCellValue(""); // "FREQ_KIND" hrow0.createCell(a++).setCellValue("DL Throughput(Mbps)"); // "DL_TPUT" hrow0.createCell(a++).setCellValue("UL Throughput(Mbps)"); // "UL_TPUT" hrow0.createCell(a++).setCellValue("CQI ?"); // "CQI_AVERAGE" hrow0.createCell(a++).setCellValue("RI2 "); // "RI_RANK_INDEX hrow0.createCell(a++).setCellValue("MCS ?"); // "MCS_AVERAGE" hrow0.createCell(a++).setCellValue("RSRP ?"); // "RSRP_AVERAGE hrow0.createCell(a++).setCellValue("RSSI ?"); // "RSSI_AVERAGE" hrow0.createCell(a++).setCellValue("SINR ?"); // "SINR_AVERAGE" hrow0.createCell(a++).setCellValue("RSRQ ?"); // "RSRQ_AVERAGE" hrow0.createCell(a++).setCellValue("PUCCH Tx ?"); // "TXPW_PUCCH" hrow0.createCell(a++).setCellValue("CQI0 "); // "CQI0_RATE" hrow0.createCell(a++).setCellValue("DL PRB "); // "DL_PRB_RATE" hrow0.createCell(a++).setCellValue("RSSI"); // "RSSI0_PUCCH" hrow0.createCell(a++).setCellValue("RSSI"); // "RSSI1_PUCCH" hrow0.createCell(a++).setCellValue("RSSI"); // "RSSI0_PUSCH" hrow0.createCell(a++).setCellValue("RSSI"); // "RSSI1_PUSCH" hrow0.createCell(a++).setCellValue("License "); // "LICENSE_FAIL" // hrow0.createCell(a++).setCellValue(""); // "" // hrow0.createCell(a++).setCellValue(""); // "" Row hrow1 = sheet.createRow((short) 1); hrow1.setHeightInPoints(20); int b = 0; hrow1.createCell(b++).setCellValue(""); if (searchType.equalsIgnoreCase("BONBU")) { hrow1.createCell(b++).setCellValue(""); } else if (searchType.equalsIgnoreCase("TEAM")) { hrow1.createCell(b++).setCellValue(""); hrow1.createCell(b++).setCellValue(""); } else if (searchType.equalsIgnoreCase("PART")) { hrow1.createCell(b++).setCellValue(""); hrow1.createCell(b++).setCellValue(""); hrow1.createCell(b++).setCellValue(""); } else if (searchType.equalsIgnoreCase("CITY")) { hrow1.createCell(b++).setCellValue(""); } else if (searchType.equalsIgnoreCase("UNI")) { hrow1.createCell(b++).setCellValue(""); hrow1.createCell(b++).setCellValue(""); } else if (searchType.equalsIgnoreCase("EMS")) { hrow1.createCell(b++).setCellValue(""); hrow1.createCell(b++).setCellValue(""); } hrow1.createCell(b++).setCellValue(""); // "FREQ_KIND" hrow1.createCell(b++).setCellValue(""); // "DL_TPUT" hrow1.createCell(b++).setCellValue(""); // "UL_TPUT" hrow1.createCell(b++).setCellValue(""); // "CQI_AVERAGE" hrow1.createCell(b++).setCellValue(""); // "RI_RANK_INDEX hrow1.createCell(b++).setCellValue(""); // "MCS_AVERAGE" hrow1.createCell(b++).setCellValue(""); // "RSRP_AVERAGE hrow1.createCell(b++).setCellValue(""); // "RSSI_AVERAGE" hrow1.createCell(b++).setCellValue(""); // "SINR_AVERAGE" hrow1.createCell(b++).setCellValue(""); // "RSRQ_AVERAGE" hrow1.createCell(b++).setCellValue(""); // "TXPW_PUCCH" hrow1.createCell(b++).setCellValue(""); // "CQI0_RATE" hrow1.createCell(b++).setCellValue(""); // "DL_PRB_RATE" hrow1.createCell(b++).setCellValue("Total(PUCCH)"); // "RSSI0_PUCCH" hrow1.createCell(b++).setCellValue("Total(PUCCH)"); // "RSSI1_PUCCH" hrow1.createCell(b++).setCellValue("Total(PUSCH)"); // "RSSI0_PUSCH" hrow1.createCell(b++).setCellValue("Total(PUSCH)"); // "RSSI1_PUSCH" hrow1.createCell(b++).setCellValue(""); // "LICENSE_FAIL" // hrow1.createCell(b++).setCellValue(""); // "-" // hrow1.createCell(b++).setCellValue(""); // "-" Row hrow2 = sheet.createRow((short) 2); hrow2.setHeightInPoints(20); int c = 0; hrow2.createCell(c++).setCellValue(""); if (searchType.equalsIgnoreCase("BONBU")) { hrow2.createCell(c++).setCellValue(""); } else if (searchType.equalsIgnoreCase("TEAM")) { hrow2.createCell(c++).setCellValue(""); hrow2.createCell(c++).setCellValue(""); } else if (searchType.equalsIgnoreCase("PART")) { hrow2.createCell(c++).setCellValue(""); hrow2.createCell(c++).setCellValue(""); hrow2.createCell(c++).setCellValue(""); } else if (searchType.equalsIgnoreCase("CITY")) { hrow2.createCell(c++).setCellValue(""); } else if (searchType.equalsIgnoreCase("UNI")) { hrow2.createCell(c++).setCellValue(""); hrow2.createCell(c++).setCellValue(""); } else if (searchType.equalsIgnoreCase("EMS")) { hrow2.createCell(c++).setCellValue(""); hrow2.createCell(c++).setCellValue(""); } hrow2.createCell(c++).setCellValue(""); // "FREQ_KIND" hrow2.createCell(c++).setCellValue(""); // "DL_TPUT" hrow2.createCell(c++).setCellValue(""); // "UL_TPUT" hrow2.createCell(c++).setCellValue(""); // "CQI_AVERAGE" hrow2.createCell(c++).setCellValue(""); // "RI_RANK_INDEX hrow2.createCell(c++).setCellValue(""); // "MCS_AVERAGE" hrow2.createCell(c++).setCellValue(""); // "RSRP_AVERAGE hrow2.createCell(c++).setCellValue(""); // "RSSI_AVERAGE" hrow2.createCell(c++).setCellValue(""); // "SINR_AVERAGE" hrow2.createCell(c++).setCellValue(""); // "RSRQ_AVERAGE" hrow2.createCell(c++).setCellValue(""); // "TXPW_PUCCH" hrow2.createCell(c++).setCellValue(""); // "CQI0_RATE" hrow2.createCell(c++).setCellValue(""); // "DL_PRB_RATE" hrow2.createCell(c++).setCellValue(""); // "RSSI0_PUCCH" hrow2.createCell(c++).setCellValue(""); // "RSSI1_PUCCH" hrow2.createCell(c++).setCellValue(""); // "RSSI0_PUSCH" hrow2.createCell(c++).setCellValue(""); // "RSSI1_PUSCH" hrow2.createCell(c++).setCellValue(""); // "LICENSE_FAIL" // hrow2.createCell(c++).setCellValue(""); // "-" // hrow2.createCell(c++).setCellValue(""); // "-" int d = 0; sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "" if (searchType.equalsIgnoreCase("BONBU") || searchType.equalsIgnoreCase("CITY")) { sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); } else if (searchType.equalsIgnoreCase("TEAM") || searchType.equalsIgnoreCase("UNI") || searchType.equalsIgnoreCase("EMS")) { sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); } else if (searchType.equalsIgnoreCase("PART")) { sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); } sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "FREQ_KIND" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "DL_TPUT" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "UL_TPUT" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "CQI_AVERAGE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "RI_RANK_INDEX sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "MCS_AVERAGE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "RSRP_AVERAGE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "RSSI_AVERAGE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "SINR_AVERAGE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "RSRQ_AVERAGE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "TXPW_PUCCH" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "CQI0_RATE" sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "DL_PRB_RATE" sheet.addMergedRegion(new CellRangeAddress(0, 0, d, d + 3)); // "RSSI" sheet.addMergedRegion(new CellRangeAddress(1, 1, d, d + 1)); // "Total(PUCCH)" sheet.addMergedRegion(new CellRangeAddress(1, 1, d + 2, d + 3)); // "Total(PUSCH)" d += 4; sheet.addMergedRegion(new CellRangeAddress(0, 2, d, d++)); // "LICENSE_FAIL" // sheet.addMergedRegion(new CellRangeAddress(0,0,d,d+1)); // "" // sheet.addMergedRegion(new CellRangeAddress(1,2,d,d)); // "-" // sheet.addMergedRegion(new CellRangeAddress(1,2,d+1,d+1)); // "-" log.debug("createCellTrafficStatsExcelSheet : hrow end"); log.debug("createCellTrafficStatsExcelSheet : row start"); ArrayList list01 = (ArrayList) map.get("rows"); Iterator iterator = (Iterator) list01.iterator(); short i = 3; while (iterator.hasNext()) { StringMap jrow = (StringMap) iterator.next(); // Row row = sheet.createRow((short) i); row.setHeightInPoints(20); int e = 0; row.createCell(e++).setCellValue((String) jrow.get("YMD")); if (searchType.equalsIgnoreCase("BONBU") || searchType.equalsIgnoreCase("CITY")) { row.createCell(e++).setCellValue((String) jrow.get("TITLE01")); } else if (searchType.equalsIgnoreCase("TEAM") || searchType.equalsIgnoreCase("UNI") || searchType.equalsIgnoreCase("EMS")) { row.createCell(e++).setCellValue((String) jrow.get("TITLE01")); row.createCell(e++).setCellValue((String) jrow.get("TITLE02")); } else if (searchType.equalsIgnoreCase("PART")) { row.createCell(e++).setCellValue((String) jrow.get("TITLE01")); row.createCell(e++).setCellValue((String) jrow.get("TITLE02")); row.createCell(e++).setCellValue((String) jrow.get("TITLE03")); } row.createCell(e++).setCellValue((String) jrow.get("FREQ_KIND")); setCellDoubleIfExistValue(row.createCell(e++), jrow, "DL_TPUT"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "UL_TPUT"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "CQI_AVERAGE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RANK_INDEX"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "MCS_AVERAGE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSRP_AVERAGE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSSI_AVERAGE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "SINR_AVERAGE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSRQ_AVERAGE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "TXPW_PUCCH"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "CQI0_RATE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "DL_PRB_RATE"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSSI0_PUCCH"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSSI1_PUCCH"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSSI0_PUSCH"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "RSSI1_PUSCH"); setCellDoubleIfExistValue(row.createCell(e++), jrow, "LICENSE_FAIL"); // row.createCell(e++).setCellValue("n/a"); // row.createCell(e++).setCellValue("n/a"); i++; } log.debug("createCellTrafficStatsExcelSheet : row end"); this.log.debug("createCellTrafficStatsExcelSheet End"); } public String selectCellTrafficStatsHistogramExcelDownload() { this.log.debug("selectCellTrafficStatsHistogramExcelDownload Start"); SqlSession session = null; FileOutputStream fileOut = null; try { //parseParam(); Type type = new TypeToken<Map<String, Object>>() { }.getType(); Gson gson = new Gson(); Map<String, Object> map = gson.fromJson(this.JSONDATA, type); log.debug("json data : " + this.JSONDATA); Workbook wb = new HSSFWorkbook(); //CreationHelper createHelper = wb.getCreationHelper(); String sheetName = this.FROMYMD + "~" + this.TOYMD; String safeName = WorkbookUtil.createSafeSheetName(sheetName); //sheet Sheet sheet = wb.createSheet(safeName); //header ? Row hrow0 = sheet.createRow((short) 0); hrow0.setHeightInPoints(20); hrow0.createCell(0).setCellValue("MBPS"); hrow0.createCell(1).setCellValue("COUNT"); hrow0.createCell(2).setCellValue("??"); hrow0.createCell(3).setCellValue("CDF"); StringMap categoryVal = (StringMap) map.get("categoryVal"); StringMap rVal = (StringMap) map.get("rVal"); StringMap rate = (StringMap) map.get("rate"); StringMap cdf = (StringMap) map.get("cdf"); short i = 1; for (int j = 0; j < 10; j++) { // Row row = sheet.createRow((short) i); row.setHeightInPoints(20); row.createCell(0).setCellValue(Double.parseDouble(categoryVal.get(String.valueOf(j)).toString())); row.createCell(1).setCellValue(Double.parseDouble(rVal.get(String.valueOf(j)).toString())); row.createCell(2).setCellValue(Double.parseDouble(rate.get(String.valueOf(j)).toString())); row.createCell(3).setCellValue(Double.parseDouble(cdf.get(String.valueOf(j)).toString())); i++; } log.debug("selectCellTrafficStatsHistogramExcelDownload : file start"); String writeFolderPath = (String) super.properties.get("TEMP_FOLDER_PATH"); String tempFolder = "/" + UUID.randomUUID().toString(); String xlsFileName = "/DownLinkStatsHistogram(QMS).xls"; if (!(new File(writeFolderPath + tempFolder)).mkdir()) { throw new Exception("? ?? ."); } String xlsFileFullPath = writeFolderPath + tempFolder + xlsFileName; fileOut = new FileOutputStream(xlsFileFullPath); wb.write(fileOut); log.debug("selectCellTrafficStatsHistogramExcelDownload : file end"); this.msg = "? ? ?"; this.status = "SUCCESS"; this.downloadurl = "download" + tempFolder + xlsFileName; } catch (Exception e) { this.msg = e.getMessage(); this.status = "ERROR"; this.error = true; if (session != null) { session.rollback(); } e.printStackTrace(); } finally { try { if (fileOut != null) fileOut.close(); } catch (IOException e) { e.printStackTrace(); } if (session != null) { session.close(); } } this.log.debug("selectCellTrafficStatsHistogramExcelDownload End"); return SUCCESS; } }