Explorar o código

模版增加globalParameterCodes字段

sunyj %!s(int64=8) %!d(string=hai) anos
pai
achega
b5aeb931c6

+ 16 - 2
kanban-console/src/main/java/com/uas/kanban/model/Template.java

@@ -41,6 +41,11 @@ public class Template extends BaseEntity {
 	@Embedded
 	@Embedded
 	private List<TemplateParameter> parameters;
 	private List<TemplateParameter> parameters;
 
 
+	/**
+	 * 公共参数的 code
+	 */
+	private List<String> globalParameterCodes;
+
 	public String getName() {
 	public String getName() {
 		return name;
 		return name;
 	}
 	}
@@ -73,11 +78,20 @@ public class Template extends BaseEntity {
 		this.parameters = parameters;
 		this.parameters = parameters;
 	}
 	}
 
 
+	public List<String> getGlobalParameterCodes() {
+		return globalParameterCodes;
+	}
+
+	public void setGlobalParameterCodes(List<String> globalParameterCodes) {
+		this.globalParameterCodes = globalParameterCodes;
+	}
+
 	@Override
 	@Override
 	public String toString() {
 	public String toString() {
 		return "Template [name=" + name + ", content=" + content + ", dataSourceCode=" + dataSourceCode
 		return "Template [name=" + name + ", content=" + content + ", dataSourceCode=" + dataSourceCode
-				+ ", parameters=" + parameters + ", id=" + id + ", code=" + code + ", createTime=" + createTime
-				+ ", lastModified=" + lastModified + ", version=" + version + "]";
+				+ ", parameters=" + parameters + ", globalParameterCodes=" + globalParameterCodes + ", id=" + id
+				+ ", createTime=" + createTime + ", lastModified=" + lastModified + ", version=" + version + ", code="
+				+ code + "]";
 	}
 	}
 
 
 }
 }

+ 26 - 0
kanban-console/src/main/java/com/uas/kanban/service/impl/TemplateServiceImpl.java

@@ -12,9 +12,11 @@ import org.springframework.stereotype.Service;
 import com.uas.kanban.annotation.NotEmpty;
 import com.uas.kanban.annotation.NotEmpty;
 import com.uas.kanban.base.BaseService;
 import com.uas.kanban.base.BaseService;
 import com.uas.kanban.dao.DataSourceDao;
 import com.uas.kanban.dao.DataSourceDao;
+import com.uas.kanban.dao.GlobalParameterDao;
 import com.uas.kanban.dao.TemplateDao;
 import com.uas.kanban.dao.TemplateDao;
 import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.DataSource;
 import com.uas.kanban.model.DataSource;
+import com.uas.kanban.model.GlobalParameter;
 import com.uas.kanban.model.Template;
 import com.uas.kanban.model.Template;
 import com.uas.kanban.model.TemplateParameter;
 import com.uas.kanban.model.TemplateParameter;
 import com.uas.kanban.service.TemplateService;
 import com.uas.kanban.service.TemplateService;
@@ -36,10 +38,14 @@ public class TemplateServiceImpl extends BaseService<Template> implements Templa
 	@Autowired
 	@Autowired
 	private DataSourceDao dataSourceDao;
 	private DataSourceDao dataSourceDao;
 
 
+	@Autowired
+	private GlobalParameterDao globalParameterDao;
+
 	@Override
 	@Override
 	public Template save(@NotEmpty("json") String json) {
 	public Template save(@NotEmpty("json") String json) {
 		Template template = templateDao.parse(json);
 		Template template = templateDao.parse(json);
 		checkDataSource(template.getDataSourceCode());
 		checkDataSource(template.getDataSourceCode());
+		checkGlobalParameters(template.getGlobalParameterCodes());
 		// 保存时,不允许指定参数的 code
 		// 保存时,不允许指定参数的 code
 		List<TemplateParameter> parameters = template.getParameters();
 		List<TemplateParameter> parameters = template.getParameters();
 		if (!CollectionUtils.isEmpty(parameters)) {
 		if (!CollectionUtils.isEmpty(parameters)) {
@@ -58,6 +64,7 @@ public class TemplateServiceImpl extends BaseService<Template> implements Templa
 			throw new IllegalArgumentException("没有指定code:" + template);
 			throw new IllegalArgumentException("没有指定code:" + template);
 		}
 		}
 		checkDataSource(template.getDataSourceCode());
 		checkDataSource(template.getDataSourceCode());
+		checkGlobalParameters(template.getGlobalParameterCodes());
 		List<TemplateParameter> parameters = template.getParameters();
 		List<TemplateParameter> parameters = template.getParameters();
 		if (!CollectionUtils.isEmpty(parameters)) {
 		if (!CollectionUtils.isEmpty(parameters)) {
 			throw new OperationException("请单独更新模版参数");
 			throw new OperationException("请单独更新模版参数");
@@ -84,6 +91,25 @@ public class TemplateServiceImpl extends BaseService<Template> implements Templa
 		}
 		}
 	}
 	}
 
 
+	/**
+	 * 检查公共参数是否存在
+	 * 
+	 * @param globalParameterCodes
+	 *            公共参数的 code
+	 * @throws IllegalArgumentException
+	 *             公共参数不存在
+	 */
+	private void checkGlobalParameters(List<String> globalParameterCodes) throws IllegalArgumentException {
+		if (!CollectionUtils.isEmpty(globalParameterCodes)) {
+			for (String globalParameterCode : globalParameterCodes) {
+				GlobalParameter globalParameter = globalParameterDao.findOne(globalParameterCode);
+				if (globalParameter == null) {
+					throw new IllegalArgumentException("公共参数不存在:" + globalParameterCode);
+				}
+			}
+		}
+	}
+
 	@Override
 	@Override
 	public int addParameter(@NotEmpty("code") String code, @NotEmpty("parameter") TemplateParameter parameter) {
 	public int addParameter(@NotEmpty("code") String code, @NotEmpty("parameter") TemplateParameter parameter) {
 		parameter.init();
 		parameter.init();

+ 2 - 2
kanban-console/src/main/webapp/WEB-INF/views/console.html

@@ -42,8 +42,8 @@
 			</ol>
 			</ol>
 			<strong><li class="title">模版</li></strong>
 			<strong><li class="title">模版</li></strong>
 			<ol>
 			<ol>
-				<li><a target="_blank">template/save?json={"name": "name","content": "&lt;content&gt;&lt;/content&gt;","dataSourceCode":"4EC3C69D011","parameters":[{"name":"PU_NAME","type":"String","mandatory":true},{"name":"PU_DATE","type":"Date","mandatory":true}]}</a></li>
-				<li><a target="_blank">template/update?json={"code":"4EC2735D343","name": "name","content": "&lt;content&gt;&lt;/content&gt;","dataSourceCode":"4EC3C69D011"}</a></li>
+				<li><a target="_blank">template/save?json={"name": "name","content": "&lt;content&gt;&lt;/content&gt;","dataSourceCode":"4EC3C69D011","parameters":[{"name":"PU_NAME","type":"String","mandatory":true},{"name":"PU_DATE","type":"Date","mandatory":true}], "globalParameterCodes": ["5061DFD0811", "5061E8A3812"]}</a></li>
+				<li><a target="_blank">template/update?json={"code":"4EC2735D343","name": "name","content": "&lt;content&gt;&lt;/content&gt;","dataSourceCode":"4EC3C69D011", "globalParameterCodes": ["5061DFD0811", "5061E8A3812"]}</a></li>
 				<li><a target="_blank">template/delete/all</a></li>
 				<li><a target="_blank">template/delete/all</a></li>
 				<li><a target="_blank">template/delete/4EC2735D343</a></li>
 				<li><a target="_blank">template/delete/4EC2735D343</a></li>
 				<li><a target="_blank">template/get/all</a></li>
 				<li><a target="_blank">template/get/all</a></li>