rsbi 4 years ago
parent
commit
991ffd451d

+ 8 - 6
src/main/java/com/ruisitech/bi/service/bireport/BaseCompService.java

@@ -2,6 +2,7 @@ package com.ruisitech.bi.service.bireport;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.ruisi.ext.engine.util.P;
 import com.ruisi.ext.engine.view.context.ExtContext;
 import com.ruisi.ext.engine.view.context.MVContext;
 import com.ruisi.ext.engine.view.context.dsource.DataSourceContext;
@@ -17,6 +18,7 @@ import com.ruisitech.bi.entity.portal.PortalChartQuery;
 import com.ruisitech.bi.entity.portal.PortalParamDto;
 import com.ruisitech.bi.entity.portal.PortalTableQuery;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -45,11 +47,11 @@ public abstract class BaseCompService {
 		dsource.putProperty("id", ds.getDsid());
 		String use = dsource.getUse();
 		dsource.putProperty("usetype", use);
-		if(use == null || "jdbc".equalsIgnoreCase(use.toString())){
+		if(use == null || "jdbc".equalsIgnoreCase(use)){
 			String linktype = ds.getLinkType();
 			dsource.putProperty("linktype", linktype);
 			dsource.putProperty("linkname", ds.getLinkName());
-			dsource.putProperty("linkpwd", ds.getLinkPwd());
+			dsource.putProperty("linkpwd", P.encode(ds.getLinkPwd()));
 			dsource.putProperty("linkurl", ds.getLinkUrl());
 		}else{
 			dsource.putProperty("jndiname", ds.getJndiName());
@@ -98,7 +100,7 @@ public abstract class BaseCompService {
 		}
 	}
 	
-	public String resetVals(String inputval, String type, String dateFormat, int jstype){
+	public String resetVals(String inputval, String type, String dateFormat, int jstype) throws ParseException {
 		if(jstype == 0){
 			return inputval;
 		}
@@ -140,7 +142,7 @@ public abstract class BaseCompService {
 	/**
 	 * 根据指标计算的值筛选,从新设置时间字段的数据区间,主要针对日、月份的数据区间控制
 	 */
-	public String[] resetBetween(String start, String end, String type, String dateFormat, int jstype){
+	public String[] resetBetween(String start, String end, String type, String dateFormat, int jstype) throws ParseException {
 		if(jstype == 0){ //无计算
 			return new String[]{start, end};
 		}
@@ -208,7 +210,7 @@ public abstract class BaseCompService {
 				target.setValue(defvalue);
 				target.setType("hidden");
 				mvParams.put(target.getId(), target);
-				ExtContext.getInstance().putServiceParam(mv.getMvid(), target.getId(), target);
+				mv.getMvParams().put(target.getId(), target);
 				
 				
 				mv.getChildren().add(target);
@@ -220,7 +222,7 @@ public abstract class BaseCompService {
 	/**
 	 * nodetype 表示筛选的类型,分为维度筛选和指标筛选两类,维度筛选和指标筛选对应的SQL位置不一样,维度放where 后, 指标放 having 后
 	 * @param params
-	 * @param nodetype
+	 * @param tableAlias
 	 * @return
 	 */
 	public String dealCubeParams(List<CompParamDto> params, Map<String, String> tableAlias){

+ 3 - 3
src/main/java/com/ruisitech/bi/service/bireport/TableService.java

@@ -87,10 +87,9 @@ public class TableService extends BaseCompService {
 		//设置ID
 		String id = ExtConstants.reportIdPrefix + IdCreater.create();
 		cr.setId(id);
-		cr.setOut("olap");
+		cr.setOut("olapJson");
 		cr.setShowData(true);
-		//cr.setExportName(title);
-	
+
 		mv.getChildren().add(cr);
 		cr.setParent(mv);
 		
@@ -527,6 +526,7 @@ public class TableService extends BaseCompService {
 	public GridDataCenterContext createDataCenter(String sql, TableQueryDto dto) throws IOException{
 		GridDataCenterContext ctx = new GridDataCenterContextImpl();
 		GridSetConfContext conf = new GridSetConfContext();
+		conf.setUseCache(false);
 		ctx.setConf(conf);
 		ctx.setId("DC-" + IdCreater.create());
 		String name = TemplateManager.getInstance().createTemplate(sql);

+ 4 - 4
src/main/java/com/ruisitech/bi/util/CompPreviewService.java

@@ -1,13 +1,11 @@
 package com.ruisitech.bi.util;
 
-import com.ruisi.bi.engine.cross.CrossFieldLoader;
-import com.ruisi.bi.engine.view.emitter.ContextEmitter;
-import com.ruisi.bi.engine.view.emitter.html.HTMLEmitter;
 import com.ruisi.ext.engine.ConstantsEngine;
 import com.ruisi.ext.engine.ExtConfigConstants;
 import com.ruisi.ext.engine.ExtConstants;
 import com.ruisi.ext.engine.control.InputOption;
 import com.ruisi.ext.engine.control.InputOptionFactory;
+import com.ruisi.ext.engine.cross.CrossFieldLoader;
 import com.ruisi.ext.engine.dao.DaoHelper;
 import com.ruisi.ext.engine.init.ExtEnvirContext;
 import com.ruisi.ext.engine.init.ExtEnvirContextImpl;
@@ -20,6 +18,8 @@ import com.ruisi.ext.engine.view.context.Element;
 import com.ruisi.ext.engine.view.context.ExtContext;
 import com.ruisi.ext.engine.view.context.MVContext;
 import com.ruisi.ext.engine.view.context.form.InputField;
+import com.ruisi.ext.engine.view.emitter.ContextEmitter;
+import com.ruisi.ext.engine.view.emitter.json.JSON2Emitter;
 import com.ruisi.ext.engine.view.exception.ExtRuntimeException;
 import com.ruisi.ext.engine.wrapper.ExtRequest;
 import com.ruisi.ext.engine.wrapper.ExtRequestImpl;
@@ -115,7 +115,7 @@ public class CompPreviewService {
 	}
 	
 	public String buildMV(Element mv, ServletContext sctx) throws Exception{
-		ContextEmitter emitter = new HTMLEmitter();
+		ContextEmitter emitter = new JSON2Emitter();
 		return buildMV(mv, emitter, sctx);
 	}
 	

+ 6 - 0
src/main/java/com/ruisitech/bi/util/RSBIUtils.java

@@ -76,6 +76,9 @@ public final class RSBIUtils {
 	}
 	
 	public static String dealStringParam(List<String> vals){
+		if(vals == null){
+			return null;
+		}
 		StringBuffer sb = new StringBuffer();
 		for(int i=0; i<vals.size(); i++){
 			String v = vals.get(i);
@@ -87,6 +90,9 @@ public final class RSBIUtils {
 		return sb.toString();
 	}
 	public static String dealIntegerParam(List<String> vals){
+		if(vals == null){
+			return null;
+		}
 		StringBuffer sb = new StringBuffer();
 		for(int i=0; i<vals.size(); i++){
 			String v = vals.get(i);

+ 1 - 1
src/main/java/com/ruisitech/bi/web/bireport/DimController.java

@@ -29,7 +29,7 @@ public class DimController extends BaseController {
 	@RequestMapping(value="/queryDims.action")
 	public @ResponseBody
     Object queryDims(Integer cubeId){
-		return service.listDims(cubeId);
+		return super.buildSucces(service.listDims(cubeId));
 	}
 	
 	@RequestMapping(value="/paramFilter.action")

+ 3 - 22
src/main/java/com/ruisitech/bi/web/bireport/ReportDesignController.java

@@ -2,10 +2,10 @@ package com.ruisitech.bi.web.bireport;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.ruisi.bi.engine.view.emitter.ContextEmitter;
-import com.ruisi.bi.engine.view.emitter.excel.ExcelEmitter;
 import com.ruisi.ext.engine.view.context.ExtContext;
 import com.ruisi.ext.engine.view.context.MVContext;
+import com.ruisi.ext.engine.view.emitter.ContextEmitter;
+import com.ruisi.ext.engine.view.emitter.excel.ExcelEmitter;
 import com.ruisi.ext.engine.view.emitter.pdf.PdfEmitter;
 import com.ruisi.ext.engine.view.emitter.text.TextEmitter;
 import com.ruisi.ext.engine.view.emitter.word.WordEmitter;
@@ -43,26 +43,7 @@ public class ReportDesignController extends BaseController {
 	@Autowired
 	private ReportService reportService;
 	
-	@RequestMapping(value="/ReportDesign.action")
-	public String index(Integer pageId, Integer selectDs, ModelMap model){
-		if(pageId != null){
-			OlapInfo olap = service.getOlap(pageId);
-			if(olap != null){
-				model.addAttribute("pageInfo", olap.getPageInfo());
-				model.addAttribute("pageName", olap.getPageName());
-			}
-		}else if(selectDs == null){
-			model.addAttribute("selectDs", cubeService.getMaxCubeId() - 1);
-		}
-		return "bireport/ReportDesign";
-	}
-	
-	@RequestMapping(value="/insertChart.action")
-	public String insertChart(String tp, ModelMap model){
-		model.addAttribute("tp", tp);
-		return "bireport/Panel-insertChart";
-	}
-	
+
 	@RequestMapping(value="/ReportExport.action", method = RequestMethod.POST)
 	public @ResponseBody
     Object export(String type, String json, String picinfo, HttpServletRequest req, HttpServletResponse res) throws Exception{

+ 1 - 1
src/main/java/com/ruisitech/bi/web/bireport/TableController.java

@@ -36,6 +36,6 @@ public class TableController extends BaseController {
 		ser.setParams(tableService.getMvParams());
 		ser.initPreview();
 		String ret = ser.buildMV(mv, req.getServletContext());
-		return ret;
+		return super.buildSucces(ret);
 	}
 }

+ 4 - 4
src/main/java/com/ruisitech/bi/web/portal/PortalViewController.java

@@ -2,11 +2,11 @@ package com.ruisitech.bi.web.portal;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.ruisi.bi.engine.view.emitter.ContextEmitter;
-import com.ruisi.bi.engine.view.emitter.excel.ExcelEmitter;
 import com.ruisi.ext.engine.ExtConstants;
 import com.ruisi.ext.engine.view.context.ExtContext;
 import com.ruisi.ext.engine.view.context.MVContext;
+import com.ruisi.ext.engine.view.emitter.ContextEmitter;
+import com.ruisi.ext.engine.view.emitter.excel.ExcelEmitter;
 import com.ruisi.ext.engine.view.emitter.pdf.PdfEmitter;
 import com.ruisi.ext.engine.view.emitter.text.TextEmitter;
 import com.ruisi.ext.engine.view.emitter.word.WordEmitter;
@@ -65,7 +65,7 @@ public class PortalViewController {
 		MVContext mv = ExtContext.getInstance().getMVContext(mvId);
 		
 		CompPreviewService ser = new CompPreviewService(req, res, req.getServletContext());
-		ser.setParams(ExtContext.getInstance().getParams(mvId));
+		ser.setParams(mv.getMvParams());
 		ser.initPreview();
 		
 		String fileName = "file.";
@@ -132,7 +132,7 @@ public class PortalViewController {
 		MVContext mv = ExtContext.getInstance().getMVContext(mvId);
 		
 		CompPreviewService ser =  new CompPreviewService(req, res, req.getServletContext());
-		ser.setParams(ExtContext.getInstance().getParams(mvId));
+		ser.setParams(mv.getMvParams());
 		ser.initPreview();
 		String ret = ser.buildMV(mv, req.getServletContext());
 		req.setAttribute("str", ret);

+ 1 - 1
src/main/java/com/ruisitech/ext/service/MyCrossFieldLoader.java

@@ -1,6 +1,6 @@
 package com.ruisitech.ext.service;
 
-import com.ruisi.bi.engine.cross.CrossFieldLoader;
+import com.ruisi.ext.engine.cross.CrossFieldLoader;
 import com.ruisi.ext.engine.view.context.cross.CrossField;
 import com.ruisi.ext.engine.wrapper.ExtRequest;
 

+ 0 - 57
src/main/java/com/ruisitech/ext/service/UserDefinedOlapWriter.java

@@ -1,57 +0,0 @@
-package com.ruisitech.ext.service;
-
-import com.ruisi.bi.engine.cross.OlapWriterInterface;
-import com.ruisi.ext.engine.view.context.cross.CrossReportContext;
-import com.ruisi.ext.engine.wrapper.ExtRequest;
-import com.ruisi.ext.engine.wrapper.ExtWriter;
-import com.ruisitech.bi.entity.bireport.DimDto;
-import com.ruisitech.bi.entity.bireport.TableQueryDto;
-
-import java.util.List;
-
-public class UserDefinedOlapWriter implements OlapWriterInterface {
-	
-	private TableQueryDto table;
-	
-	@Override
-	public void wirteRowDims(ExtRequest request, ExtWriter out, CrossReportContext report) {
-		table = (TableQueryDto)request.getAttribute("table");
-		
-		out.print("<div class='rowDimsList'>");
-		out.print("<table class=\"grid5\" cellpadding=\"0\" cellspacing=\"0\">");
-		out.print("<tr>");
-		List<DimDto> rows = table.getRows();
-		for(int i=0; i<rows.size(); i++){
-			DimDto row  = rows.get(i);
-			Integer id = row.getId();
-			String name = row.getDimdesc();
-			out.print("<th>");
-			out.print("<span>"+name+" <a href=javascript:; onclick='setRdimInfo(this, \""+id+"\", \""+ name +"\")' class='dimoptbtn set'> &nbsp; </a></span>");
-			out.print("</th>");
-		}
-		out.print("</tr>");
-		out.print("</table>");
-		out.println("</div>");
-	}
-
-	@Override
-	public void writeColDims(ExtRequest request, ExtWriter out, CrossReportContext report) {
-		table = (TableQueryDto)request.getAttribute("table");
-
-		out.print("<div class='colDimsList'>");
-		List<DimDto> cols = table.getCols();
-		if(cols.size() <= 0){
-			out.print(" <div style=\"margin:3px;color:#999999;font-size:13px;\">列标签区域</div> ");
-		}else{
-			for(int i=0; i<cols.size(); i++){
-				DimDto col  = cols.get(i);
-				Integer id = col.getId();
-				String name = col.getDimdesc();
-				out.print("<span>"+name+" <a href=javascript:; onclick='setCdimInfo(this, \""+id+"\", \""+name+"\")' class='dimoptbtn set'> &nbsp; </a></span>");
-			}
-		}
-		
-		out.println("</div>");
-	}
-
-}