rsbi 4 years ago
parent
commit
d7bd9e71bc

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

@@ -85,8 +85,7 @@ public class TableService extends BaseCompService {
 		//移除kpiOther
 		table.getCols().remove(table.getCols().size() - 1);
 		//设置ID
-		String id = ExtConstants.reportIdPrefix + IdCreater.create();
-		cr.setId(id);
+		cr.setId(table.getCompId());
 		cr.setOut("olapJson");
 		cr.setHasPms(true);  //包含多维分析的参数
 

+ 1 - 0
src/main/java/com/ruisitech/bi/service/portal/BoxService.java

@@ -118,6 +118,7 @@ public class BoxService extends BaseCompService {
 		str += "desc:\""+kpi.getKpi_name()+"\"}";
 		String word = TemplateManager.getInstance().createTemplate(str);
 		text.setTemplateName(word);
+		text.setId(box.getId());
 		mv.getChildren().add(text);
 		text.setParent(mv);
 	}

+ 2 - 2
src/main/java/com/ruisitech/bi/service/portal/GridService.java

@@ -68,8 +68,7 @@ public class GridService extends BaseCompService {
 		//创建corssReport
 		GridReportContext cr = json2Grid(grid);
 		//设置ID
-		String id = ExtConstants.reportIdPrefix + IdCreater.create();
-		cr.setId(id);
+		cr.setId(grid.getId());
 		
 		//创建数据sql
 		String sql = this.createSql(grid);
@@ -95,6 +94,7 @@ public class GridService extends BaseCompService {
 		GridReportContext grid = new GridReportContextImpl();
 		Integer height = gridJson.getHeight();
 		grid.setOut("lockUI");
+		grid.setId(gridJson.getId());
 		if(height != null){
 			grid.setHeight(String.valueOf(height));
 		}

+ 1 - 1
src/main/java/com/ruisitech/bi/service/portal/PortalChartService.java

@@ -77,7 +77,7 @@ public class PortalChartService extends BaseCompService {
 		ChartContext cr = this.json2Chart(chart, chart.getId(), false);
 		
 		//重新设置chartId
-		cr.setId("C"+chart.getId());
+		cr.setId(chart.getId());
 		
 		String sql = createSql(chart, 0);
 		GridDataCenterContext dc = chartService.createDataCenter(chart.getChartJson(), sql);

+ 14 - 81
src/main/java/com/ruisitech/bi/service/portal/PortalPageService.java

@@ -170,32 +170,15 @@ public class PortalPageService extends BaseCompService {
 	
 	//解析布局器
 	public void parserBody(JSONObject body, MVContext mv, Object param, boolean release) throws Exception{
-		TableContext tab = new TableContextImpl();
-		tab.setStyleClass("r_layout");
-		tab.setChildren(new ArrayList<Element>());
-		mv.getChildren().add(tab);
-		tab.setParent(mv);
 		for(int i=1; true; i++){
 			Object tmp = body.get("tr" + i);
 			if(tmp == null){
 				break;
 			}
 			JSONArray trs = (JSONArray)tmp;
-			TrContext tabTr = new TrContextImpl();
-			tabTr.setChildren(new ArrayList<Element>());
-			tab.getChildren().add(tabTr);
-			tabTr.setParent(tab);
 			for(int j=0; j<trs.size(); j++){
 				JSONObject td = trs.getJSONObject(j);
-				TdContext tabTd = new TdContextImpl();
-				tabTd.setStyleClass("layouttd");
-				tabTd.setChildren(new ArrayList<Element>());
-				tabTd.setParent(tabTr);
-				tabTr.getChildren().add(tabTd);
-				tabTd.setColspan(String.valueOf(td.getIntValue("colspan")));
-				tabTd.setRowspan(String.valueOf(td.getIntValue("rowspan")));
-				tabTd.setWidth(td.getIntValue("width") + "%");
-				
+
 				Object cldTmp = td.get("children");
 				
 				if(cldTmp != null){
@@ -204,70 +187,21 @@ public class PortalPageService extends BaseCompService {
 						JSONObject comp = children.getJSONObject(k);
 						String tp = comp.getString("type");
 						
-						//生成外层div
-						DivContext div = new DivContextImpl(); //外层div
-						div.setStyleClass("ibox");
-						div.setChildren(new ArrayList<Element>());
-						tabTd.getChildren().add(div);
-						div.setParent(tabTd);
-						
-						//判断组件是否是TD中最后一个,如果是,不要 margin-bottom 样式
-						if(k == children.size() - 1){
-							div.setStyle("margin-bottom:auto;");
-						}
-						div.setStyle((div.getStyle() == null ? "" : div.getStyle()) + "border:none;margin-bottom:10px;");  //去除div边框
-						
-						//判断是否生成title
-						String showtitle = (String)comp.get("showtitle");
-						if((showtitle != null && "false".equalsIgnoreCase(showtitle))
-								//数据框默认不生成title
-								|| tp.equals("box") ){   //不生成head
-							
-						}else{   //生成head
-							DivContext head = new DivContextImpl(); //内层head Div
-							head.setChildren(new ArrayList<Element>());
-							head.setStyleClass("ibox-title-view");
-							div.getChildren().add(head);
-							head.setParent(div);
-							
-							TextContext text = new TextContextImpl(); //head Div 的文字
-							text.setText(comp.getString("name"));
-							TextProperty ctp = new TextProperty();
-							ctp.setAlign("center");
-							ctp.setWeight("bold");
-							text.setTextProperty(ctp);
-							head.getChildren().add(text);
-							text.setParent(head);
-						}
-						
-						DivContext content = new DivContextImpl(); //内层content Div
-						content.setStyleClass("ibox-content");
-						content.setStyle("border-top:none; padding:3px;");
-						
-						//组件背景色 
-						String bgcolor = (String)comp.get("bgcolor");
-						if(bgcolor != null && bgcolor.length() > 0){
-							content.setStyle((content.getStyle() == null ? "" : content.getStyle())  + "background-color:"+bgcolor+";");
-						}
-						
-						content.setChildren(new ArrayList<Element>());
-						div.getChildren().add(content);
-						content.setParent(div);
-						
 						if(tp.equals("text")){
-							this.createText(content, comp);
+							//text 组件不用后端处理
+							//this.createText(mv, comp);
 						}else if(tp.equals("chart")){
 							PortalChartQuery chart = JSONObject.toJavaObject(comp, PortalChartQuery.class);
-							this.createChart(mv, content, chart, release);
+							this.createChart(mv, mv, chart, release);
 						}else if(tp.equals("table")){
 							PortalTableQuery table = JSONObject.toJavaObject(comp, PortalTableQuery.class);
-							this.crtTable(mv, content, table, release);
+							this.crtTable(mv, mv, table, release);
 						}else if(tp.equals("grid")){
 							GridQuery grid = JSONObject.toJavaObject(comp, GridQuery.class);
-							this.crtGrid(mv, content, grid, release);
+							this.crtGrid(mv, mv, grid, release);
 						}else if(tp.equals("box")){
 							BoxQuery ncomp = JSONObject.toJavaObject(comp, BoxQuery.class);
-							this.createBox(mv, content, ncomp);
+							this.createBox(mv, mv, ncomp);
 						}
 					}
 				}
@@ -364,13 +298,13 @@ public class PortalPageService extends BaseCompService {
 			}
 			input.setId(id);
 			input.setDesc(desc);
-			String size = (String)param.get("size");
-			if(size != null && size.length() > 0){
+			Integer size = param.getInteger("size");
+			if(size != null){
 				if("radio".equals(type)){
 					//select 框就是 radio,他的size表示像素,转换成实际size
-					input.setSize(String.valueOf(Integer.parseInt(size) * 8));
+					input.setSize(String.valueOf(size * 8));
 				}else{
-					input.setSize(size);
+					input.setSize(String.valueOf(size));
 				}
 			}
 			if(def != null && def.length() > 0){
@@ -548,7 +482,7 @@ public class PortalPageService extends BaseCompService {
 		}
 
 		ChartContext cr = chartService.json2Chart(chart, chart.getId(), false);
-		cr.setId("C" + IdCreater.create());
+		cr.setId(chart.getId());
 		//删除action (设置系列颜色事件)
 		for(int i=0; i<cr.getProperties().size(); i++){
 			ChartKeyContext p = cr.getProperties().get(i);
@@ -622,7 +556,7 @@ public class PortalPageService extends BaseCompService {
 		//创建corssReport
 		GridReportContext cr = gridSerivce.json2Grid(grid);
 		//设置ID
-		cr.setId("g_" + grid.getId());
+		cr.setId(grid.getId());
 		cr.setRefDsource(grid.getDsid());
 		
 		//创建数据sql
@@ -681,8 +615,7 @@ public class PortalPageService extends BaseCompService {
 			cols.remove(cols.size() - 1);
 		}
 	
-		String id = ExtConstants.reportIdPrefix + IdCreater.create();
-		cr.setId(id);
+		cr.setId(table.getId());
 		cr.setOut("lockUI");
 		cr.setShowData(true);
 		if(mybaseKpi != null){

+ 2 - 5
src/main/java/com/ruisitech/bi/service/portal/PortalTableService.java

@@ -67,9 +67,7 @@ public class PortalTableService  extends BaseCompService {
 	
 	/**
 	 * 生成表格SQL
-	 * @param sqlVO
-	 * @param tinfo
-	 * @param params
+	 * @param table
 	 * @param release  判断当前是否为发布状态, 0 表示不是发布,1表示发布到多维分析,2表示发布到仪表盘
 	 * @param drillLevel 是否有钻取,从0开始, 0表示不钻取,1表示钻取一层,以此类推
 	 * @return
@@ -365,8 +363,7 @@ public class PortalTableService  extends BaseCompService {
 			cols.remove(cols.size() - 1);
 		}
 		//设置ID
-		String id = ExtConstants.reportIdPrefix + IdCreater.create();
-		cr.setId(id);
+		cr.setId(table.getId());
 		cr.setOut("lockUI");
 		cr.setShowData(true);
 		

+ 3 - 0
src/main/java/com/ruisitech/bi/web/bireport/ChartController.java

@@ -1,5 +1,6 @@
 package com.ruisitech.bi.web.bireport;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rsbi.ext.engine.view.context.ExtContext;
 import com.rsbi.ext.engine.view.context.MVContext;
@@ -37,6 +38,7 @@ public class ChartController extends BaseController  {
 	@RequestMapping(value="/ChartView.action", method = RequestMethod.POST)
 	public @ResponseBody
     Object chartView(@RequestBody ChartQueryDto chartJson, HttpServletRequest req, HttpServletResponse res) throws Exception {
+		chartJson.setId("c1");
 		ExtContext.getInstance().removeMV(ChartService.deftMvId);
 		MVContext mv = chartService.json2MV(chartJson, false);
 		try {
@@ -45,6 +47,7 @@ public class ChartController extends BaseController  {
 			ser.initPreview();
 			String ret = ser.buildMV(mv, req.getServletContext());
 			JSONObject obj = JSONObject.parseObject(ret);
+			obj = obj.getJSONObject(chartJson.getId());
 			if(obj.get("result") != null && obj.getInteger("result") == 500){
 				return super.buildError(obj.getString("msg"));
 			}

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

@@ -1,5 +1,6 @@
 package com.ruisitech.bi.web.bireport;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rsbi.ext.engine.view.context.ExtContext;
 import com.rsbi.ext.engine.view.context.MVContext;
@@ -32,7 +33,7 @@ public class TableController extends BaseController {
 	@RequestMapping(value="/TableView.action", method = RequestMethod.POST)
 	public @ResponseBody
     Object tableView(@RequestBody TableQueryDto tableJson, HttpServletRequest req, HttpServletResponse res) throws Exception {
-
+		tableJson.setCompId("t1");
 		ExtContext.getInstance().removeMV(TableService.deftMvId);
 		MVContext mv = tableService.json2MV(tableJson);
 		try {
@@ -41,6 +42,7 @@ public class TableController extends BaseController {
 			ser.initPreview();
 			String ret = ser.buildMV(mv, req.getServletContext());
 			JSONObject json = JSONObject.parseObject(ret);
+			json = json.getJSONObject(tableJson.getCompId());
 			if(json.get("result") != null && json.getInteger("result") == 500){
 				return super.buildError(json.getString("msg"));
 			}

+ 6 - 9
src/main/java/com/ruisitech/bi/web/portal/BoxViewController.java

@@ -41,16 +41,13 @@ public class BoxViewController extends BaseController {
 			ser.setParams(serivce.getMvParams());
 			ser.initPreview();
 			String ret = ser.buildMV(mv, req.getServletContext());
-			Object obj = JSON.parse(ret);
-			if(obj instanceof JSONObject){
-				JSONObject json = (JSONObject)obj;
-				if (json.get("result") != null && json.getInteger("result") == 500) {
-					return super.buildError(json.getString("msg"));
-				}
-				return super.buildSucces(json);
-			}else {
-				return super.buildSucces(obj);
+			JSONObject json = JSONObject.parseObject(ret);
+			json = json.getJSONObject(box.getId());
+			if (json.get("result") != null && json.getInteger("result") == 500) {
+				return super.buildError(json.getString("msg"));
 			}
+			return super.buildSucces(json);
+
 		}catch (Exception ex){
 			logger.error("数据块展现出错", ex);
 			return super.buildError(ex.getMessage());

+ 2 - 0
src/main/java/com/ruisitech/bi/web/portal/ChartViewController.java

@@ -1,5 +1,6 @@
 package com.ruisitech.bi.web.portal;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rsbi.ext.engine.view.context.ExtContext;
 import com.rsbi.ext.engine.view.context.MVContext;
@@ -41,6 +42,7 @@ public class ChartViewController extends BaseController {
 			ser.initPreview();
 			String ret = ser.buildMV(mv, req.getServletContext());
 			JSONObject obj = JSONObject.parseObject(ret);
+			obj = obj.getJSONObject(chartJson.getId());
 			if(obj.get("result") != null && obj.getInteger("result") == 500){
 				return super.buildError(obj.getString("msg"));
 			}

+ 7 - 9
src/main/java/com/ruisitech/bi/web/portal/GridViewController.java

@@ -1,6 +1,7 @@
 package com.ruisitech.bi.web.portal;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rsbi.ext.engine.view.context.ExtContext;
 import com.rsbi.ext.engine.view.context.MVContext;
@@ -40,16 +41,13 @@ public class GridViewController extends BaseController {
 			ser.setParams(serivce.getMvParams());
 			ser.initPreview();
 			String ret = ser.buildMV(mv , req.getServletContext());
-			Object obj = JSON.parse(ret);
-			if(obj instanceof JSONObject){
-				JSONObject json = (JSONObject)obj;
-				if (json.get("result") != null && json.getInteger("result") == 500) {
-					return super.buildError(json.getString("msg"));
-				}
-				return super.buildSucces(json);
-			}else {
-				return super.buildSucces(obj);
+			JSONObject json = JSONObject.parseObject(ret);
+			json = json.getJSONObject(grid.getId());
+			if (json.get("result") != null && json.getInteger("result") == 500) {
+				return super.buildError(json.getString("msg"));
 			}
+			return super.buildSucces(json);
+
 		}catch (Exception ex){
 			logger.error("表格展现出错", ex);
 			return super.buildError(ex.getMessage());

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

@@ -12,9 +12,11 @@ import com.rsbi.ext.engine.view.emitter.text.TextEmitter;
 import com.rsbi.ext.engine.view.emitter.word.WordEmitter;
 import com.ruisitech.bi.service.portal.PortalPageService;
 import com.ruisitech.bi.service.portal.PortalService;
+import com.ruisitech.bi.util.BaseController;
 import com.ruisitech.bi.util.CompPreviewService;
 import com.ruisitech.bi.util.RSBIUtils;
 import org.apache.commons.io.IOUtils;
+import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Controller;
@@ -28,8 +30,10 @@ import java.io.InputStream;
 @Controller
 @Scope("prototype")
 @RequestMapping(value = "/portal")
-public class PortalViewController {
-	
+public class PortalViewController extends BaseController {
+
+	private static Logger logger = Logger.getLogger(PortalViewController.class);
+
 	@Autowired
 	private PortalService portalService;
 	
@@ -41,17 +45,32 @@ public class PortalViewController {
     Object view(String pageId, HttpServletRequest req, HttpServletResponse res) throws Exception {
 		String cfg = portalService.getPortalCfg(pageId);
 		if(cfg == null){
-			return "找不到报表文件。";
+			return super.buildError("找不到报表文件。");
+		}
+		try {
+			JSONObject json = (JSONObject)JSON.parse(cfg);
+			logger.info(json.toJSONString());
+			String id = json.getString("id");
+			ExtContext.getInstance().removeMV("mv_" + id);
+			MVContext mv = pageService.json2MV(json, false, false);
+			CompPreviewService ser = new CompPreviewService(req, res, req.getServletContext());
+			ser.setParams(pageService.getMvParams());
+			ser.initPreview();
+			String ret = ser.buildMV(mv, req.getServletContext());
+			Object obj = JSON.parse(ret);
+			if(obj instanceof JSONObject){
+				JSONObject rjson = (JSONObject)obj;
+				if (rjson.get("result") != null && rjson.getInteger("result") == 500) {
+					return super.buildError(rjson.getString("msg"));
+				}
+				return super.buildSucces(rjson);
+			}else {
+				return super.buildSucces(obj);
+			}
+		}catch (Exception ex){
+			logger.error("报表展现错误", ex);
+			return super.buildError(ex.getMessage());
 		}
-		JSONObject json = (JSONObject)JSON.parse(cfg);
-		String id = json.getString("id");
-		ExtContext.getInstance().removeMV("mv_" + id);
-		MVContext mv = pageService.json2MV(json, false, false);
-		CompPreviewService ser = new CompPreviewService(req, res, req.getServletContext());
-		ser.setParams(pageService.getMvParams());
-		ser.initPreview();
-		String ret = ser.buildMV(mv, req.getServletContext());
-		return ret;
 	}
 	
 	@RequestMapping(value="/export.action")

+ 7 - 9
src/main/java/com/ruisitech/bi/web/portal/TableViewController.java

@@ -1,6 +1,7 @@
 package com.ruisitech.bi.web.portal;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rsbi.ext.engine.view.context.ExtContext;
 import com.rsbi.ext.engine.view.context.MVContext;
@@ -41,16 +42,13 @@ public class TableViewController extends BaseController {
 			ser.setParams(serivce.getMvParams());
 			ser.initPreview();
 			String ret = ser.buildMV(mv , req.getServletContext());
-			Object obj = JSON.parse(ret);
-			if(obj instanceof JSONObject){
-				JSONObject json = (JSONObject)obj;
-				if (json.get("result") != null && json.getInteger("result") == 500) {
-					return super.buildError(json.getString("msg"));
-				}
-				return super.buildSucces(json);
-			}else {
-				return super.buildSucces(obj);
+			JSONObject json = JSONObject.parseObject(ret);
+			json = json.getJSONObject(table.getId());
+			if (json.get("result") != null && json.getInteger("result") == 500) {
+				return super.buildError(json.getString("msg"));
 			}
+			return super.buildSucces(json);
+
 		}catch (Exception ex){
 			logger.error("表格展现出错", ex);
 			return super.buildError(ex.getMessage());

+ 2 - 2
src/main/resources/mybatis/portalMapper.xml

@@ -15,8 +15,8 @@
     </resultMap>
 	
 	<select id="listPortal" resultMap="BaseResultMap">
-		select pageid, pagename , crtdate , updatedate  from portal_user_save 
-		where is3g = 'n'
+		select pageid, pagename , crtdate , updatedate, b.user_id, b.login_name  from portal_user_save a, sc_login_user b
+		where is3g = 'n' and a.user_id = b.user_id
 		order by crtdate desc
 	</select>