Browse Source

解析title

sunyj 8 years ago
parent
commit
4e3465b2f4

+ 7 - 3
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanInstanceServiceImpl.java

@@ -87,9 +87,9 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 		checkParameters(kanbanInstance);
 		return kanbanInstanceDao.update(kanbanInstance);
 	}
-	
+
 	@Override
-	public int updatePart(@NotEmpty("json")String json) throws IllegalArgumentException, OperationException {
+	public int updatePart(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
 		return update(json);
 	}
 
@@ -338,17 +338,21 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 			}
 		}
 		String content = template.getContent();
+		String title = template.getTitle();
 		if (StringUtils.isEmpty(content)) {
 			throw new IllegalStateException("模版内容为空:" + templateCode);
 		}
 		// 替换参数
 		List<GlobalParameter> globalParameters = kanbanInstance.getGlobalParameters();
 		content = templateParser.replaceParameters(content, globalParameters);
+		if (!StringUtils.isEmpty(title)) {
+			title = templateParser.replaceParameters(title, globalParameters);
+		}
 		// 解析模版
 		String templateContent = null;
 		try {
 			NewbieJdbc jdbc = dataSourceManager.getJdbc(template.getDataSourceCode());
-			templateContent = templateParser.parseXml(content, jdbc);
+			templateContent = templateParser.parseXml(content, title, jdbc);
 		} catch (DocumentException e) {
 			throw new IllegalStateException("xml 解析出错", e);
 		} catch (TransformerException e) {

+ 2 - 0
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanServiceImpl.java

@@ -12,6 +12,7 @@ import com.uas.kanban.dao.TemplateDao;
 import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.Kanban;
 import com.uas.kanban.model.Kanban.Display;
+import com.uas.kanban.support.SystemSession;
 import com.uas.kanban.model.Template;
 import com.uas.kanban.util.CollectionUtils;
 
@@ -48,6 +49,7 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 		Kanban kanban = kanbanDao.parse(json);
 		checkTemplates(kanban.getTemplateCodes());
 		checkDisplay(kanban);
+		kanban.setResourcePointCode(SystemSession.checkResourcePoint().getCode());
 		return kanbanDao.update(kanban);
 	}
 

+ 35 - 6
kanban-console/src/main/java/com/uas/kanban/support/TemplateParser.java

@@ -82,6 +82,8 @@ public class TemplateParser {
 	 * 
 	 * @param content
 	 *            模版内容
+	 * @param title
+	 *            标题
 	 * @param jdbc
 	 *            NewbieJdbc对象
 	 * @return 解析后的 json 数据
@@ -89,14 +91,15 @@ public class TemplateParser {
 	 * @throws IOException
 	 * @throws TransformerException
 	 */
-	public String parseXml(@NotEmpty("content") String content, @NotEmpty("jdbc") NewbieJdbc jdbc)
+	public String parseXml(@NotEmpty("content") String content, String title, @NotEmpty("jdbc") NewbieJdbc jdbc)
 			throws DocumentException, TransformerException, IOException {
 		content = processSql(content);
 		content = processForm(content, jdbc);
 		content = processGrid(content, jdbc);
 		content = processBarAndLine(content, jdbc);
 		content = processPie(content, jdbc);
-		return toJson(content);
+		content = finalProcess(content, title);
+		return TranslateHelper.xmlToJson(content);
 	}
 
 	/**
@@ -384,18 +387,44 @@ public class TemplateParser {
 	}
 
 	/**
-	 * 将模版内容转换为 json
+	 * 对模版内容的最终处理,包括映射、添加title等
 	 * 
 	 * @param content
 	 *            模版内容
-	 * @return 转换后的 json
+	 * @param title
+	 *            标题
+	 * @return 处理后的模版内容
 	 * @throws IOException
 	 * @throws TransformerException
+	 * @throws DocumentException
 	 */
-	private String toJson(@NotEmpty("content") String content) throws TransformerException, IOException {
+	private String finalProcess(@NotEmpty("content") String content, String title)
+			throws TransformerException, IOException, DocumentException {
 		InputStream mapRuleStream = FileHelper.readStream("map-rule.xsl");
 		content = TranslateHelper.map(content, mapRuleStream);
-		return TranslateHelper.xmlToJson(content);
+		if (!StringUtils.isEmpty(title)) {
+			content = addTitle(content, title);
+		}
+		return content;
 	}
 
+	/**
+	 * 为模版添加 title
+	 * 
+	 * @param content
+	 *            模版内容
+	 * @param title
+	 *            标题
+	 * @return 处理后的模版内容
+	 * @throws DocumentException
+	 */
+	private String addTitle(@NotEmpty("content") String content, @NotEmpty("title") String title)
+			throws DocumentException {
+		Document document = getDocument(content);
+		Element rootElement = document.getRootElement();
+		Element titleElement = new DefaultElement("title");
+		titleElement.setText(title);
+		rootElement.add(titleElement);
+		return document.asXML();
+	}
 }