| @@ -1,21 +1,32 @@ | |||||
| package com.iformall.print.data; | package com.iformall.print.data; | ||||
| import java.io.ByteArrayInputStream; | |||||
| import java.io.IOException; | |||||
| import java.io.StringReader; | |||||
| import java.util.ArrayList; | |||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import java.util.List; | import java.util.List; | ||||
| import javax.xml.parsers.DocumentBuilderFactory; | |||||
| import javax.xml.parsers.ParserConfigurationException; | |||||
| import javax.xml.xpath.XPath; | |||||
| import javax.xml.xpath.XPathFactory; | |||||
| import org.jsoup.Jsoup; | import org.jsoup.Jsoup; | ||||
| import org.jsoup.nodes.Document; | import org.jsoup.nodes.Document; | ||||
| import org.jsoup.nodes.Element; | import org.jsoup.nodes.Element; | ||||
| import org.jsoup.nodes.Node; | import org.jsoup.nodes.Node; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | ||||
| import com.iformall.domain.po.WxFinanceReceive; | |||||
| @Service | @Service | ||||
| public class PrintCustomedTableDataHandler{ | public class PrintCustomedTableDataHandler{ | ||||
| public String getTableContent(String componentContent,JSONArray datas,JSONObject entity){ | |||||
| public String getTableContent(String componentContent,JSONArray datas,JSONObject entity) { | |||||
| if (null != entity) { | if (null != entity) { | ||||
| for (Iterator<String> it = entity.keySet().iterator(); it.hasNext();) { | for (Iterator<String> it = entity.keySet().iterator(); it.hasNext();) { | ||||
| String fieldName = it.next(); | String fieldName = it.next(); | ||||
| @@ -39,52 +50,89 @@ public class PrintCustomedTableDataHandler{ | |||||
| StringBuffer sb = new StringBuffer(); | StringBuffer sb = new StringBuffer(); | ||||
| for (int i = 0 ; i < datas.size(); i ++) { | for (int i = 0 ; i < datas.size(); i ++) { | ||||
| JSONObject o = datas.getJSONObject(i); | JSONObject o = datas.getJSONObject(i); | ||||
| Element tr = titleTr.parent().appendElement("tr"); | |||||
| sb.append("<tr "); | sb.append("<tr "); | ||||
| if (StringUtils.isNotBlank(trclass)) { | if (StringUtils.isNotBlank(trclass)) { | ||||
| sb.append(" class = \"").append(trclass).append("\" "); | sb.append(" class = \"").append(trclass).append("\" "); | ||||
| tr.attr("class", trclass); | |||||
| } | } | ||||
| if (StringUtils.isNotBlank(trstyle)) { | if (StringUtils.isNotBlank(trstyle)) { | ||||
| sb.append(" style = \"").append(trstyle).append("\" "); | sb.append(" style = \"").append(trstyle).append("\" "); | ||||
| tr.attr("style", trstyle); | |||||
| } | } | ||||
| sb.append(">"); | sb.append(">"); | ||||
| for (int j = 0 ; j < titleTds.size() ; j ++) { | for (int j = 0 ; j < titleTds.size() ; j ++) { | ||||
| Node td = titleTds.get(j); | |||||
| String tdclass = titleTr.attr("class"); | |||||
| String tdstyle = titleTr.attr("style"); | |||||
| String tdcolspan = titleTr.attr("colspan"); | |||||
| Node td = titleTds.get(j); | |||||
| Element tre = tr.appendElement("td"); | |||||
| String tdclass = td.attr("class"); | |||||
| String tdstyle = td.attr("style"); | |||||
| String tdcolspan = td.attr("colspan"); | |||||
| sb.append("<td "); | sb.append("<td "); | ||||
| if (StringUtils.isNotBlank(tdclass)) { | if (StringUtils.isNotBlank(tdclass)) { | ||||
| sb.append(" class = \"").append(tdclass).append("\" "); | sb.append(" class = \"").append(tdclass).append("\" "); | ||||
| tre.attr("class", tdclass); | |||||
| } | } | ||||
| if (StringUtils.isNotBlank(tdstyle)) { | if (StringUtils.isNotBlank(tdstyle)) { | ||||
| sb.append(" style = \"").append(tdstyle).append("\" "); | sb.append(" style = \"").append(tdstyle).append("\" "); | ||||
| tre.attr("style", tdstyle); | |||||
| } | } | ||||
| if (StringUtils.isNotBlank(tdcolspan)) { | if (StringUtils.isNotBlank(tdcolspan)) { | ||||
| sb.append(" colspan = \"").append(tdcolspan).append("\" "); | sb.append(" colspan = \"").append(tdcolspan).append("\" "); | ||||
| tre.attr("colspan", tdcolspan); | |||||
| } | } | ||||
| sb.append(">"); | sb.append(">"); | ||||
| //取什么属性 | //取什么属性 | ||||
| String fieldName = td.attr("fieldName"); | String fieldName = td.attr("fieldName"); | ||||
| if (StringUtils.isNotBlank(fieldName)) { | if (StringUtils.isNotBlank(fieldName)) { | ||||
| StringBuffer tdcontent = new StringBuffer(); | |||||
| if (fieldName.contains(",")) { | if (fieldName.contains(",")) { | ||||
| String sep = td.attr("sep"); | String sep = td.attr("sep"); | ||||
| String[] fs = fieldName.split(","); | String[] fs = fieldName.split(","); | ||||
| if (null != fs) { | if (null != fs) { | ||||
| for (int k = 0 ; k<fs.length; k++) { | for (int k = 0 ; k<fs.length; k++) { | ||||
| sb.append(o.get(fs[k])).append(sep); | |||||
| Object v = o.get(fs[k]); | |||||
| if (k == fs.length-1) { | |||||
| sep = ""; | |||||
| } | |||||
| if (null != v) { | |||||
| tdcontent.append(v).append(sep); | |||||
| }else { | |||||
| tdcontent.append("").append(sep); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| }else { | }else { | ||||
| sb.append(o.get(fieldName)); | |||||
| Object v = o.get(fieldName); | |||||
| if (null != v) { | |||||
| tdcontent.append(v); | |||||
| }else { | |||||
| tdcontent.append(""); | |||||
| } | |||||
| } | } | ||||
| tre.appendText(tdcontent.toString()); | |||||
| } | } | ||||
| sb.append("</td>"); | sb.append("</td>"); | ||||
| } | } | ||||
| sb.append("</tr>"); | sb.append("</tr>"); | ||||
| } | } | ||||
| titleTr.parent().appendText(sb.toString()); | |||||
| return doc.html(); | |||||
| return doc.head().html() + doc.body().html(); | |||||
| } | |||||
| public static void main(String[] args) { | |||||
| PrintCustomedTableDataHandler p = new PrintCustomedTableDataHandler(); | |||||
| String s = "<style>table,td,th{border:1px solid #000;border-collapse:collapse}table{width:515px;font-size:10px;text-align:center}tr{height:30px}.one{width:10%}.two{width:16%}.three{width:32.5%}.four{width:10%}.five{width:10%}.six{width:10%}.seven{width:10%}</style><table id=\"fmbraidhtmltable\"><tr id=\"titletr\"><td class=\"one\" fieldName=\"shopNumber\">房间名称</td><td class=\"two\" fieldName=\"feesName\">费用科目</td><td class=\"three\" fieldName=\"starttime,endtime\" sep=\"~\">费用区间</td><td class=\"four\" fieldName=\"receivePay\">应收金额</td><td class=\"five\" fieldName=\"setOff\">冲抵金额</td><td class=\"six\" fieldName=\"youhui\">优惠金额</td><td class=\"seven\" fieldName=\"pay\">实收金额</td></tr></table>"; | |||||
| List<WxFinanceReceive> rlist = new ArrayList<WxFinanceReceive>(); | |||||
| WxFinanceReceive r1 = new WxFinanceReceive(); | |||||
| r1.setFeesName("adssasd"); | |||||
| WxFinanceReceive r2 = new WxFinanceReceive(); | |||||
| r2.setFeesName("11111"); | |||||
| rlist.add(r1); | |||||
| rlist.add(r2); | |||||
| String sss = p.getTableListContent(s, JSON.parseArray(JSON.toJSONString(rlist))); | |||||
| System.out.println(sss); | |||||
| } | } | ||||
| } | } | ||||