From 340049ec6c2c1d830f5331e2cbb02204ee1572b1 Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期五, 26 五月 2023 18:09:36 +0800 Subject: [PATCH] 菜单bug --- src/main/java/com/product/server/report/service/DataListReportService.java | 370 ++++++++++++++++++++++++---------------------------- 1 files changed, 172 insertions(+), 198 deletions(-) diff --git a/src/main/java/com/product/server/report/service/DataListReportService.java b/src/main/java/com/product/server/report/service/DataListReportService.java index ef59fc0..e8f226b 100644 --- a/src/main/java/com/product/server/report/service/DataListReportService.java +++ b/src/main/java/com/product/server/report/service/DataListReportService.java @@ -1,5 +1,8 @@ package com.product.server.report.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; @@ -18,6 +21,7 @@ import com.product.core.service.support.AbstractBaseService; import com.product.core.service.support.QueryFilterService; import com.product.core.spring.context.SpringMVCContextHolder; +import com.product.module.data.service.SystemDataExportService; import com.product.server.report.config.CmnConst; import com.product.server.report.config.ReportCode; import com.product.server.report.entity.ReportColumn; @@ -27,6 +31,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.ParseException; @@ -34,6 +41,7 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * Copyright 漏 6c @@ -54,6 +62,107 @@ private QueryFilterService queryFilterService; @Autowired private RouterService routerService; + @Resource + private SystemDataExportService exportService; + + public void outReportExcel(HttpServletResponse response, FieldSetEntity fse) throws BaseException, IOException { + ReportEntity reportEntity = getReportEntity(fse); + List<List<ReportColumn>> reportHeader = reportEntity.getReportHeader(); + + List<List<String>> headerTemp = processingMergeData(reportHeader); + List<List<String>> header = headerTemp.get(0).stream().map(item -> new ArrayList<String>()).collect(Collectors.toList()); + int size = headerTemp.get(0).size(); + for (int i = 0; i < size; i++) { + for (int k = 0; k < headerTemp.size(); k++) { + header.get(i).add(headerTemp.get(k).get(i)); + } + } + + List<List<ReportColumn>> reportData = reportEntity.getReportData(); + if (!CollectionUtil.isEmpty(reportEntity.getReportTail())) { + reportData.addAll(reportEntity.getReportTail()); + } + + List<List<String>> data = processingMergeData(reportData); + exportService.writeExcel(header, data, "娴嬭瘯", response); + } + + + private static List<List<String>> processingMergeData(List<List<ReportColumn>> data) { + if (CollectionUtil.isEmpty(data)) { + return null; + } + List<List<String>> resultData = data.stream().map(item -> new ArrayList<String>()).collect(Collectors.toList()); + for (int i = 0; i < data.size(); i++) { + List<ReportColumn> columns = data.get(i); + for (ReportColumn column : columns) { + //璺ㄨ + int rowspan = column.getRowspan() < 1 ? 1 : column.getRowspan(); + //璺ㄥ垪 + int colspan = column.getColspan() < 1 ? 1 : column.getColspan(); + List<String> currentCell = new ArrayList<>(); + for (int k = 0; k < colspan; k++) { + currentCell.add(column.getContent(true)); + } + for (int j = 0; j < rowspan; j++) { + resultData.get(j + i).addAll(currentCell); + } + System.out.println(resultData); + } + } + return resultData; + } + + public static void main(String[] args) { + List<List<ReportColumn>> data = new ArrayList<>(); + List<ReportColumn> columns = new ArrayList<>(); + ReportColumn column = new ReportColumn(); + column.setRowspan(2); + column.setColspan(4); + column.setContent("璺ㄨ鏁帮細2锛岃法鍒楁暟锛�4"); + columns.add(column); + data.add(columns); + columns = new ArrayList<>(); + data.add(columns); + for (int i = 0; i < 3; i++) { + column = new ReportColumn(); + column.setContent("璺ㄨ鏁帮細1锛岃法鍒楁暟锛�1,涓嬫爣:" + i); + columns.add(column); + } + processingMergeData(data); + } + + + /** + * @param target + * @param content + * @param colspan + * @param rowspan + * @param currentColspan + * @param currentRowsSpan + */ + private void rowspanAndColspan(String[][] target, String content, int colspan, int rowspan, int currentColspan, int currentRowsSpan) { + int k = currentColspan; + int i = currentRowsSpan; + if (colspan > 1) { + for (int j = 1; j < colspan; j++) { + int index = j + k; + while (target[i][index] != null) { + index++; + } + target[i][index] = content; + } + } + if (rowspan > 1) { + for (int j = 1; j < rowspan; j++) { + int index = i + k; + while (target[index][k] != null) { + index++; + } + target[index][k] = content; + } + } + } /** * 鍔犺浇鎵�鏈夌紦瀛� @@ -134,11 +243,9 @@ if (preX != x || preY != y) { fieldConfigObj = new JSONObject(); areaList.add(fieldConfigObj); - } else if (areaList.size() > 0) { - fieldConfigObj = areaList.get(areaList.size() - 1); } else { - continue; - } + fieldConfigObj = areaList.get(areaList.size() - 1); + } fieldConfigObj.put(attrFse.getString(CmnConst.ATTR_NAME), attrFse.getString(CmnConst.ATTR_VALUE)); fieldConfigObj.put(CmnConst.ATTR_X, x); fieldConfigObj.put(CmnConst.ATTR_Y, y); @@ -253,6 +360,7 @@ } } + /** * 鑾峰彇鎶ヨ〃 * @@ -262,6 +370,7 @@ ReportEntity report = null; String reportConfigUUID = fse.getUUID(); if (!StringUtils.isEmpty(fse.getString("~report_config_uuid~"))) { + //瀛愭姤琛ㄤ細浼犲叆姝ey浣滀负鎶ヨ〃鐨剈uid 瑙勯伩鍙傛暟涓湁uuid鐨刱ey reportConfigUUID = fse.getString("~report_config_uuid~"); } DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{reportConfigUUID}); @@ -387,15 +496,15 @@ if (CmnConst.REPORT_TYPE_COMMON.equals(reportType)) { report = commonReportService.getReportEntity(recordDte, totalName, reportConfigMap); - //TODO report.setFilterInfo(outerMap); } else if (CmnConst.REPORT_TYPE_GROUP.equals(reportType)) { // 鐗规畩澶勭悊棰濆鏌ヨ鍐呭 recordDte.addFieldSetEntity(getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, reportConfigMap)); + report = groupReportService.getReportEntity(recordDte, totalName, reportConfigMap); // resultObj.putAll(groupReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle)); } - //TODO - + report.setReportConfigUid(reportConfigFse.getUUID()); + report.setReportName(reportConfigFse.getString(CmnConst.REPORT_NAME)); // report.setFilterInfo(outerMap); if (CmnConst.FALSE.equals(resultObj.getString(CmnConst.RETURN_ATTR_RESULT))) { resultObj.put(CmnConst.RETURN_ATTR_RESULT, true); @@ -405,7 +514,7 @@ SQLEntity sqlEntity = recordDte.getSqle(); if ("1".equals(reportConfigFse.getString(CmnConst.IS_PAGE)) && sqlEntity != null) { report.setPage(true); - report.setTotalPage(sqlEntity.getTotalpage()); + report.setTotalCount(sqlEntity.getTotalCount()); report.setPageSize(StringUtils.isEmpty(reportConfigFse.getString(CmnConst.PAGE_SIZE)) ? 0 : reportConfigFse.getInteger(CmnConst.PAGE_SIZE)); report.setPageIndex(curPage); // resultObj.put(CmnConst.IS_PAGE, 1); @@ -421,172 +530,13 @@ report.setSystemFieldMeta(getSearchInfo(reportSourceFse.getUUID())); report.setReportType(reportConfigFse.getString("type_uuid")); // resultObj.put("systemFieldMeta", ); - resultObj.put("report_type", reportConfigFse.getString("type_uuid")); +// resultObj.put("report_type", reportConfigFse.getString("type_uuid")); // System.out.println(resultObj.getString("html")); return report; } - /** - * 鑾峰彇鎶ヨ〃 - * - * @return - */ - public JSONObject getReport(FieldSetEntity fse) { - String reportConfigUUID = fse.getUUID(); - DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{reportConfigUUID}); - if (BaseUtil.dataTableIsEmpty(reportConfigDte)) { - throw new BaseException(ReportCode.GET_CACHE_FIAL.getValue(), ReportCode.GET_CACHE_FIAL.getText() + ":" + CmnConst.CACHE_REPORT_CONFIG); - } - FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0); - if (!"1".equals(reportConfigFse.getString(CmnConst.IS_VALID))) { - throw new BaseException(ReportCode.INVALID_REPORT.getValue(), ReportCode.INVALID_REPORT.getText()); - } - DataTableEntity reportTypeDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_TYPE, new String[]{reportConfigFse.getString(CmnConst.TYPE_UUID)}); - if (BaseUtil.dataTableIsEmpty(reportTypeDte)) { - throw new BaseException(ReportCode.GET_CACHE_FIAL.getValue(), ReportCode.GET_CACHE_FIAL.getText() + ":" + CmnConst.CACHE_REPORT_TYPE); - } - FieldSetEntity reportTypeFse = reportTypeDte.getFieldSetEntity(0); - - StringBuilder sort = new StringBuilder(128); - // 鑾峰彇鎶ヨ〃缂撳瓨淇℃伅 - Map<Integer, List<JSONObject>> reportConfigMap = getReportConfig(reportConfigUUID, sort); - // 鏍规嵁鍏蜂綋鐨刦unction_uuid鍜宐utton_uuid鑾峰彇瀵瑰簲鐨勮矾鐢憋紝鎷煎噾url - String url; - JSONObject valueObj; - for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) { - if (entry.getValue() != null) { - for (JSONObject tempValueObj : entry.getValue()) { - if (entry.getValue() != null) { - for (Map.Entry<String, Object> innerEntry : tempValueObj.entrySet()) { - if (innerEntry.getValue() instanceof JSONObject) { - valueObj = (JSONObject) innerEntry.getValue(); - if (!StringUtils.isEmpty(valueObj.getString(CmnConst.SUB_REPORT))) { - url = valueObj.getString(CmnConst.SUB_REPORT); - if (!StringUtils.isEmpty(valueObj.getString(CmnConst.ATTR_URL_PARAM))) { - url += "?" + valueObj.getString(CmnConst.ATTR_URL_PARAM); - } - valueObj.put(CmnConst.ATTR_URL, url); - valueObj.put("~isSubReport~", true); - } else { - if (!StringUtils.isEmpty(valueObj.getString(CmnConst.FUNCTION_UUID)) && !StringUtils.isEmpty(valueObj.getString(CmnConst.BUTTON_UUID))) { - url = routerService.functionSkipByButtonUuid(valueObj.getString(CmnConst.FUNCTION_UUID), valueObj.getString(CmnConst.BUTTON_UUID)); - if (StringUtils.isEmpty(url)) { - valueObj.remove(CmnConst.ATTR_URL); - } else { - if (!StringUtils.isEmpty(valueObj.getString(CmnConst.ATTR_URL_PARAM))) { - url += "?" + valueObj.getString(CmnConst.ATTR_URL_PARAM); - } - valueObj.put(CmnConst.ATTR_URL, url); - } - } else { - valueObj.remove(CmnConst.ATTR_URL); - } - } - } - } - } - } - } - } - // 鑾峰彇鎶ヨ〃绫诲瀷 - String reportType = reportTypeFse.getString(CmnConst.TYPE_NAME); - // 鑾峰彇鏁版嵁婧� - DataTableEntity reportSourceDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_CONFIG, new String[]{reportConfigFse.getString(CmnConst.DATASOURCE_UUID)}); - if (BaseUtil.dataTableIsEmpty(reportSourceDte)) { - throw new BaseException(ReportCode.GET_REPORT_DATASOURCE_FIAL.getValue(), ReportCode.GET_REPORT_DATASOURCE_FIAL.getText()); - } - FieldSetEntity reportSourceFse = reportSourceDte.getFieldSetEntity(0); - int curPage = fse.getInteger(CmnConst.CPAGE) == null ? 1 : fse.getInteger(CmnConst.CPAGE); - - JSONObject resultObj = new JSONObject(); - // 棣栨鍔犺浇锛岄粯璁ゆ坊鍔犳潯浠� - if (fse.getBoolean(CmnConst.FIRST_LOAD)) { - DataTableEntity allFilterDte = getDefaultSearchFilter(reportSourceFse.getUUID()); - Map<String, DataTableEntity> subMap = Maps.newHashMap(); - if (!DataTableEntity.isEmpty(allFilterDte)) { - subMap.put("systemFieldMeta", allFilterDte); - } - DataTableEntity defaultFilterDte = new DataTableEntity(); - - FieldSetEntity tempFse; - Map<String, Map<String, String>> outerMap = Maps.newHashMap(); - Map<String, String> innerMap; - for (int i = 0; i < allFilterDte.getRows(); i++) { - tempFse = allFilterDte.getFieldSetEntity(i); - if (StringUtils.isEmpty(tempFse.getString(CmnConst.LOGICAL_VALUE))) { - continue; - } - defaultFilterDte.addFieldSetEntity(tempFse); - innerMap = Maps.newHashMap(); - innerMap.put(CmnConst.LOGICAL_OPERATOR, tempFse.getString(CmnConst.LOGICAL_OPERATOR)); - innerMap.put(CmnConst.LOGICAL_VALUE, tempFse.getString(CmnConst.LOGICAL_VALUE)); - innerMap.put(CmnConst.FIELD_TYPE, tempFse.getString(CmnConst.FIELD_TYPE)); - outerMap.put(tempFse.getString(CmnConst.FIELD_NAME), innerMap); - } - resultObj.put("filterInfo", outerMap); - - if (!DataTableEntity.isEmpty(defaultFilterDte)) { - subMap.put("systemSeniorQueryString", defaultFilterDte); - } - fse.setSubData(subMap); - } - - DataTableEntity recordDte = getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, null); - // 鏄惁娣诲姞鎬诲悎璁� - boolean totalStatisticsFlag = "1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.LAST_TOTAL)); - String totalName = totalStatisticsFlag ? (StringUtils.isEmpty(reportConfigFse.getString(CmnConst.TOTAL_NAME)) ? "鎬昏" : reportConfigFse.getString(CmnConst.TOTAL_NAME)) : ""; - -// JSONObject checkObj = checkRecordDte(recordDte); -// if (CmnConst.FALSE.equals(checkObj.getString(CmnConst.RETURN_ATTR_RESULT))) { -// return checkObj; -// } - - StringBuilder tableStyle = new StringBuilder(32); - String widthType = reportConfigFse.getString(CmnConst.REPORT_WIDTH_TYPE); - String width = reportConfigFse.getString(CmnConst.REPORT_WIDTH_VALUE); - if (!StringUtils.isEmpty(width)) { - if ("1".equals(widthType)) { - tableStyle.append(" style=\"width:").append(width).append("%\""); - } else if ("0".equals(widthType)) { - tableStyle.append(" style=\"width:").append(width).append("px\""); - } - } - - if (CmnConst.REPORT_TYPE_COMMON.equals(reportType)) { - resultObj.putAll(commonReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle)); - } else if (CmnConst.REPORT_TYPE_GROUP.equals(reportType)) { - // 鐗规畩澶勭悊棰濆鏌ヨ鍐呭 - recordDte.addFieldSetEntity(getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, reportConfigMap)); - resultObj.putAll(groupReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle)); - } - - if (CmnConst.FALSE.equals(resultObj.getString(CmnConst.RETURN_ATTR_RESULT))) { - resultObj.put(CmnConst.RETURN_ATTR_RESULT, true); - resultObj.put(CmnConst.RETURN_ATTR_MESSAGE, "鑾峰彇鎶ヨ〃澶辫触锛�"); - } else { - // 鍒嗛〉鍙傛暟 - SQLEntity sqlEntity = recordDte.getSqle(); - if ("1".equals(reportConfigFse.getString(CmnConst.IS_PAGE)) && sqlEntity != null) { - resultObj.put(CmnConst.IS_PAGE, 1); - resultObj.put(CmnConst.CPAGE, curPage); - resultObj.put("totalCount", sqlEntity.getTotalCount()); - resultObj.put("totalpage", sqlEntity.getTotalpage()); - resultObj.put("pagesize", StringUtils.isEmpty(reportConfigFse.getString(CmnConst.PAGE_SIZE)) ? 0 : reportConfigFse.getInteger(CmnConst.PAGE_SIZE)); - } else { - resultObj.put(CmnConst.IS_PAGE, 0); - } - } - if (!DataTableEntity.isEmpty(recordDte)) { - resultObj.put("current_page_count", recordDte.getRows()); - } - resultObj.put("systemFieldMeta", getSearchInfo(reportSourceFse.getUUID())); - resultObj.put("report_type", reportConfigFse.getString("type_uuid")); -// System.out.println(resultObj.getString("html")); - - return resultObj; - } /** * 鑾峰彇鎶ヨ〃缂撳瓨淇℃伅 @@ -628,7 +578,9 @@ * @param reportConfigFse * @return */ - private DataTableEntity getRecordDte(StringBuilder sort, int curPage, FieldSetEntity reportSourceFse, FieldSetEntity fse, FieldSetEntity reportConfigFse, Map<Integer, List<JSONObject>> reportConfigMap) { + private DataTableEntity getRecordDte(StringBuilder sort, int curPage, FieldSetEntity + reportSourceFse, FieldSetEntity fse, FieldSetEntity + reportConfigFse, Map<Integer, List<JSONObject>> reportConfigMap) { boolean spTimeFlag = reportConfigMap != null; String sql; String sqlText = reportSourceFse.getString(CmnConst.SQL_TEXT); @@ -766,7 +718,8 @@ * @param sort * @return */ - private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity reportConfigFse, int curPage, String selectedFields, Map<String, List<String>> queryFilterMap) { + private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity + reportConfigFse, int curPage, String selectedFields, Map<String, List<String>> queryFilterMap) { queryFilterMap = queryFilterMap == null ? queryFilterService.getQueryFilterMore(fse) : queryFilterMap; selectedFields = StringUtils.isEmpty(selectedFields) ? "*" : selectedFields; // 鏇挎崲sql涓殑绯荤粺鍙傛暟 @@ -841,7 +794,8 @@ return sql.toString(); } - private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity reportConfigFse, int curPage) { + private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity + reportConfigFse, int curPage) { return replaceSqlContent(sqlText, fse, sort, reportConfigFse, curPage, null, null); } @@ -854,7 +808,8 @@ * @param queryFilterMap * @return */ - private String spReplaceSqlContent(String suitContent, String regexp, int num, Map<String, List<String>> queryFilterMap, Map<String, List<String>> residueQueryFilterMap) { + private String spReplaceSqlContent(String suitContent, String regexp, int num, Map< + String, List<String>> queryFilterMap, Map<String, List<String>> residueQueryFilterMap) { List<String> innerSuitList = getSuitContent(suitContent, regexp); String curField; String filter; @@ -933,7 +888,9 @@ * @param queryFilterMap * @param curFieldName */ - private void spDealFilterForLastYear(Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String curFieldName) { + private void spDealFilterForLastYear + (Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String + curFieldName) { List<String> paramList = tempQueryFilterMap.get(curFieldName); for (int i = 0; i < paramList.size(); i++) { paramList.set(i, paramList.get(i).replace("str_to_date(", "date_add(str_to_date(") @@ -954,7 +911,9 @@ * @param queryFilterMap * @param curFieldName */ - private void spDealFilterForPrePeriod(Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String curFieldName) { + private void spDealFilterForPrePeriod + (Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String + curFieldName) { List<String> paramList = tempQueryFilterMap.get(curFieldName); String[] timeArr = paramList.get(0).split("~"); try { @@ -987,7 +946,8 @@ * @param dataList * @return */ - private Set<String> getFieldAndSpTimeStatisticsTypeSet(Set<String> baseFieldSet, Map<String, Map<String, JSONObject>> spTimeStatisticsFieldMap, List<JSONObject> dataList) { + private Set<String> getFieldAndSpTimeStatisticsTypeSet + (Set<String> baseFieldSet, Map<String, Map<String, JSONObject>> spTimeStatisticsFieldMap, List<JSONObject> dataList) { Set<String> spTimeStatisticsTypeSet = Sets.newHashSet(); JSONObject curFieldObj; String fieldName; @@ -1133,7 +1093,8 @@ * @param locationType 浣嶇疆绫诲瀷锛宧ead-澶撮儴锛宼ail-灏鹃儴 * @return */ - public StringBuilder getTitleHtml(List<JSONObject> list, int totalColCount, Map<String, Set<String>> headAndTailTitleDataMap, String locationType) { + public StringBuilder getTitleHtml(List<JSONObject> list, int totalColCount, Map< + String, Set<String>> headAndTailTitleDataMap, String locationType) { StringBuilder html = new StringBuilder(1024); int colspan; int preRow = 0; @@ -1201,16 +1162,17 @@ * @param locationType 浣嶇疆绫诲瀷锛宧ead-澶撮儴锛宼ail-灏鹃儴 * @return */ - public List<List<ReportColumn>> getTitle(List<JSONObject> list, int totalColCount, Map<String, Set<String>> headAndTailTitleDataMap, String locationType) { + public List<List<ReportColumn>> getTitle(List<JSONObject> list, int totalColCount, Map< + String, Set<String>> headAndTailTitleDataMap, String locationType) { List<List<ReportColumn>> row = new ArrayList<>(); - StringBuilder html = new StringBuilder(1024); +// StringBuilder html = new StringBuilder(1024); int colspan; int preRow = 0; int preCol = 0; int curRow; int curCol; String value; - String style; +// String style; List<ReportColumn> reportColumns = new ArrayList<>(); for (JSONObject singleObj : list) { @@ -1220,22 +1182,26 @@ colspan = colspan < 0 ? totalColCount : Math.max(1, colspan); value = replaceFormDataAndSysData(singleObj.getString(CmnConst.ATTR_SHOW_NAME), headAndTailTitleDataMap, singleObj); value = value == null ? "" : value; - if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) { - style = " class=\"" + CmnConst.CLASS_TR_REPORT_TITLE + "\""; - } else { - if ("head".equals(locationType)) { - style = " class=\"" + CmnConst.CLASS_TR_HEAD + "\""; - } else { - style = " class=\"" + CmnConst.CLASS_TR_TAIL + "\""; - } - } +// if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) { +// style = " class=\"" + CmnConst.CLASS_TR_REPORT_TITLE + "\""; +// } else { +// if ("head".equals(locationType)) { +// style = " class=\"" + CmnConst.CLASS_TR_HEAD + "\""; +// } else { +// style = " class=\"" + CmnConst.CLASS_TR_TAIL + "\""; +// } +// } if (preRow < curRow) { - if (preRow != 0) { - row.add(getAimNumTdPlaceholderColumn(totalColCount - preCol, 1)); + if(!reportColumns.isEmpty()){ + row.add(reportColumns); + reportColumns=new ArrayList<>(); } - if (preRow == 0 && preCol == 0 && preCol < curCol - 1) { - row.add(getAimNumTdPlaceholderColumn(curCol - preCol - 1, 1)); - } +// if (preRow != 0) { +// row.add(getAimNumTdPlaceholderColumn(totalColCount - preCol, 1)); +// } +// if (preRow == 0 && preCol == 0 && preCol < curCol - 1) { +// row.add(getAimNumTdPlaceholderColumn(curCol - preCol - 1, 1)); +// } preCol = curCol; } if (preCol < curCol - 1) { @@ -1255,7 +1221,7 @@ } } row.add(reportColumns); - reportColumns.addAll(getAimNumTdPlaceholderColumn(totalColCount - preCol, 1)); +// reportColumns.addAll(getAimNumTdPlaceholderColumn(totalColCount - preCol, 1)); // row.add(); return row; } @@ -1295,7 +1261,8 @@ * @param lastStageFlag 鏄惁鏈骇锛堟暟鎹尯鍒嗙粍瀛楁鏈骇鍜屽垎缁勮〃澶村尯瀛楁閮芥槸鏈骇鎵嶄负鏈骇锛� * @return */ - public JSONObject getStatisticsValueObj(JSONObject valueJsonObject, JSONObject dataAreaFieldConfigObj, String actualValue, String type, boolean lastStageFlag) { + public JSONObject getStatisticsValueObj(JSONObject valueJsonObject, JSONObject dataAreaFieldConfigObj, String + actualValue, String type, boolean lastStageFlag) { if (valueJsonObject == null) { valueJsonObject = new JSONObject(); } @@ -1356,7 +1323,8 @@ * @param set * @param recordFse */ - public void getHeadAndTailTitleDataMap(Map<String, Set<String>> headAndTailTitleDataMap, Set<String> set, FieldSetEntity recordFse) { + public void getHeadAndTailTitleDataMap + (Map<String, Set<String>> headAndTailTitleDataMap, Set<String> set, FieldSetEntity recordFse) { for (String fieldName : set) { headAndTailTitleDataMap.computeIfAbsent(fieldName, k -> Sets.newLinkedHashSet()).add(recordFse.getString(fieldName)); } @@ -1498,6 +1466,10 @@ return dealedValueSb.toString(); } + public int dealColumnWidth(JSONObject dataAreaFieldConfigObj) { + return NumberUtil.isNumber(dataAreaFieldConfigObj.getString(CmnConst.ATTR_WIDTH)) ? NumberUtil.parseInt(dataAreaFieldConfigObj.getString(CmnConst.ATTR_WIDTH)) : 0; + } + /** * 鑾峰彇td鐨勫睘鎬� * @@ -1577,7 +1549,8 @@ * @param singleObj * @return */ - public String replaceFormDataAndSysData(String str, Map<String, Set<String>> headAndTailTitleDataMap, JSONObject singleObj) { + public String replaceFormDataAndSysData(String + str, Map<String, Set<String>> headAndTailTitleDataMap, JSONObject singleObj) { if (StringUtils.isEmpty(str)) { return ""; } @@ -1825,7 +1798,8 @@ * @param type 绫诲瀷锛�1-鑾峰彇鐩爣灞炴�э紝鍏朵粬-鎺掗櫎鐩爣灞炴�� * @return */ - public JSONObject extendJSONObject(JSONObject aimObj, JSONObject sourceObj, Collection<String> aimAttr, int type) { + public JSONObject extendJSONObject(JSONObject aimObj, JSONObject sourceObj, Collection<String> aimAttr, + int type) { if (aimObj == null) { aimObj = new JSONObject(); } -- Gitblit v1.9.2