package com.finstone.app.common.controller; import com.fins.html.utils.FileUtils; import com.fins.html.web.WebViewController; import com.finstone.app.common.support.ExcelWriter; import java.io.File; import java.io.FileInputStream; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.dom4j.Document; import org.dom4j.Element; import org.json.JSONArray; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.ClassUtils; import org.springframework.web.bind.annotation.RequestMapping; @Controller("gridExportController") public class ExportController { @Autowired WebViewController webViewController; public void render(HttpServletResponse response, String text, String contentType) { try { response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0L); response.setContentType(contentType); response.getWriter().write(text); response.getWriter().close(); } catch (Exception var5) { ; } } @RequestMapping({"/tt_grid_export"}) public void exportGrid(HttpServletRequest request, HttpServletResponse response) { String isPrint = request.getParameter("isPrint") == null?"0":request.getParameter("isPrint"); try { HashMap e = new HashMap(); Map var28 = this.webViewController.ajax_data(request, e); String pagepath = request.getParameter("gridpath"); String gridid = request.getParameter("gridid"); int len; int j; String _value; int var32; int var38; if(isPrint.equals("1")) { Map cols = FileUtils.getPageGridColMap(pagepath, gridid); String[] jsonArray = request.getParameter("cols").split(","); len = jsonArray.length; int ew = 0; boolean r = false; StringBuffer list = new StringBuffer(""); list.append("\n
"); for(j = 0; j < len; ++j) { HashMap tempmap = (HashMap)cols.get(jsonArray[j]); String i = tempmap.get("width") == null?"80":tempmap.get("width").toString(); i = i.trim().toLowerCase().replace("px", ""); try { var32 = Integer.parseInt(i); } catch (Exception var26) { var32 = 80; } ew += var32; list.append(""); } list.append(""); boolean var35 = true; if(Integer.valueOf(var28.get("code").toString()).intValue() >= 0) { List var36 = (List)var28.get("data"); if(var36 != null) { for(var38 = 0; var38 < var36.size(); ++var38) { list.append(""); Map jsonObj = (Map)var36.get(var38); for(int field = 0; field < len; ++field) { Map type = (Map)cols.get(jsonArray[field]); _value = type.get("field").toString(); String e1 = type.get("numberFormat") == null?"":type.get("numberFormat").toString(); String _value1 = jsonObj.get(_value) == null?"":jsonObj.get(_value).toString(); if(!e1.equals("")) { if(_value1.equals("")) { list.append(""); } else { try { list.append(""); } catch (Exception var25) { list.append(""); } } } else { list.append(""); } } list.append(""); } } } else { list.append(""); } list.append("
" + tempmap.get("header").toString() + "
" + Double.valueOf(0.0D) + "" + Double.valueOf(_value1) + "" + Double.valueOf(0.0D) + "" + _value1 + "
" + (var28.get("msg") == null?"":var28.get("msg").toString()) + "
"); this.render(response, list.toString().replaceAll("###twidth", String.valueOf(ew)), "text/html;charset=UTF-8"); } else { String var29 = request.getParameter("cols"); var29 = var29.replace(""", "\""); JSONArray var30 = new JSONArray(var29); len = var30.length(); ExcelWriter var31 = new ExcelWriter(); var31.createRow(0); for(var32 = 0; var32 < len; ++var32) { JSONObject var33 = (JSONObject)var30.get(var32); var31.setCell(var32, var33.get("header").toString()); } var32 = 1; List var34 = (List)var28.get("data"); for(j = 0; j < var34.size(); ++j) { var31.createRow(var32++); Map var37 = (Map)var34.get(j); for(var38 = 0; var38 < len; ++var38) { JSONObject var39 = (JSONObject)var30.get(var38); String var40 = var39.get("field").toString(); String var41 = var39.get("numberFormat") == null?"":var39.get("numberFormat").toString(); _value = var37.get(var40) == null?"":var37.get(var40).toString(); if(!var41.equals("")) { if(_value.equals("")) { var31.setCell(var38, Double.valueOf(0.0D).doubleValue()); } else { try { var31.setCell(var38, Double.valueOf(_value).doubleValue()); } catch (Exception var24) { var31.setCell(var38, Double.valueOf(0.0D).doubleValue()); } } } else { var31.setCell(var38, _value); } } } var31.export(response, "data"); } } catch (Exception var27) { if(isPrint.equals("1")) { StringBuffer html = new StringBuffer(""); html.append("\n
打印数据异常:" + var27.getMessage() + "
"); this.render(response, html.toString(), "text/html;charset=UTF-8"); } else { var27.printStackTrace(); } } } public static String readPrintlicense() { String classf = ClassUtils.getDefaultClassLoader().getResource("").getPath(); File cf = new File(classf.replace("%20", " ")); FileInputStream fin = null; String filename = cf.getParentFile().getPath() + "/config/print.license"; String var5; try { fin = new FileInputStream(new File(filename.replace("%20", " "))); byte[] e1 = new byte[fin.available()]; fin.read(e1); var5 = new String(e1); return var5; } catch (Exception var15) { var15.printStackTrace(); var5 = ""; } finally { try { if(fin != null) { fin.close(); } } catch (Exception var14) { ; } } return var5; } private Map doPageGrid(Document doc_view, String gridid, HttpServletRequest request) { return this.doElement(doc_view.getRootElement().element("widget"), gridid, request); } private Map doElement(Element e, String gridid, HttpServletRequest request) { if(e.attributeValue("type").equals("datagrid")) { if(e.attributeValue("id").equals(gridid)) { return null; } } else { List widgets = e.elements("widget"); Iterator i$ = widgets.iterator(); while(i$.hasNext()) { Element widget = (Element)i$.next(); this.doElement(widget, gridid, request); } } return null; } }