Преглед на файлове

切换频率放到看板实例里

sunyj преди 8 години
родител
ревизия
e9766f29f3

+ 2 - 21
kanban-console/src/main/java/com/uas/kanban/model/Kanban.java

@@ -16,11 +16,6 @@ public class Kanban extends BaseEntity {
 
 	private static final long serialVersionUID = 1L;
 
-	/**
-	 * 默认切换频率为 10 s
-	 */
-	public static final double DEFAULT_SWITCH_FREQUENCY = 10;
-
 	/**
 	 * 用户 code
 	 */
@@ -45,11 +40,6 @@ public class Kanban extends BaseEntity {
 	@FieldProperty(nullable = false)
 	private Display display;
 
-	/**
-	 * 切换频率(秒)
-	 */
-	private Double switchFrequency;
-
 	/**
 	 * 看板图标样式
 	 */
@@ -94,14 +84,6 @@ public class Kanban extends BaseEntity {
 		this.display = display;
 	}
 
-	public Double getSwitchFrequency() {
-		return switchFrequency;
-	}
-
-	public void setSwitchFrequency(Double switchFrequency) {
-		this.switchFrequency = switchFrequency;
-	}
-
 	public String getIconCls() {
 		return iconCls;
 	}
@@ -113,9 +95,8 @@ public class Kanban extends BaseEntity {
 	@Override
 	public String toString() {
 		return "Kanban [userCode=" + userCode + ", name=" + name + ", templateCodes=" + templateCodes + ", display="
-				+ display + ", switchFrequency=" + switchFrequency + ", iconCls=" + iconCls + ", id=" + id
-				+ ", createTime=" + createTime + ", lastModified=" + lastModified + ", version=" + version + ", code="
-				+ code + "]";
+				+ display + ", iconCls=" + iconCls + ", id=" + id + ", createTime=" + createTime + ", lastModified="
+				+ lastModified + ", version=" + version + ", code=" + code + "]";
 	}
 
 	/**

+ 22 - 4
kanban-console/src/main/java/com/uas/kanban/model/KanbanInstance.java

@@ -18,6 +18,11 @@ public class KanbanInstance extends BaseEntity {
 
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 默认切换频率为 10 s
+	 */
+	public static final double DEFAULT_SWITCH_FREQUENCY = 10;
+
 	/**
 	 * 默认刷新频率为 5 s
 	 */
@@ -29,6 +34,11 @@ public class KanbanInstance extends BaseEntity {
 	@FieldProperty(nullable = false)
 	private String kanbanCode;
 
+	/**
+	 * 切换频率(秒)(看板的展示方式为 {@link Display.AutoSwitch} 时,才生效)
+	 */
+	private Double switchFrequency;
+
 	/**
 	 * 刷新频率(秒)
 	 */
@@ -66,6 +76,14 @@ public class KanbanInstance extends BaseEntity {
 		this.kanbanCode = kanbanCode;
 	}
 
+	public Double getSwitchFrequency() {
+		return switchFrequency;
+	}
+
+	public void setSwitchFrequency(Double switchFrequency) {
+		this.switchFrequency = switchFrequency;
+	}
+
 	public Double getRefreshFrequency() {
 		return refreshFrequency;
 	}
@@ -92,10 +110,10 @@ public class KanbanInstance extends BaseEntity {
 
 	@Override
 	public String toString() {
-		return "KanbanInstance [kanbanCode=" + kanbanCode + ", refreshFrequency=" + refreshFrequency
-				+ ", globalParameters=" + globalParameters + ", parameters=" + parameters + ", id=" + id
-				+ ", createTime=" + createTime + ", lastModified=" + lastModified + ", version=" + version + ", code="
-				+ code + "]";
+		return "KanbanInstance [kanbanCode=" + kanbanCode + ", switchFrequency=" + switchFrequency
+				+ ", refreshFrequency=" + refreshFrequency + ", globalParameters=" + globalParameters + ", parameters="
+				+ parameters + ", id=" + id + ", createTime=" + createTime + ", lastModified=" + lastModified
+				+ ", version=" + version + ", code=" + code + "]";
 	}
 
 }

+ 30 - 2
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanInstanceServiceImpl.java

@@ -72,6 +72,7 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 		// TODO 一个资源点只能为某个看板维护一个看板实例
 		KanbanInstance kanbanInstance = kanbanInstanceDao.parse(json);
 		checkParameters(kanbanInstance);
+		initSwitchFrequence(kanbanInstance);
 		return kanbanInstanceDao.save(kanbanInstance);
 	}
 
@@ -284,7 +285,10 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 	 * @throws IllegalArgumentException
 	 *             看板不存在时报错
 	 */
-	private Kanban checkKanban(@NotEmpty("kanbanCode") String kanbanCode) throws IllegalArgumentException {
+	private Kanban checkKanban(String kanbanCode) throws IllegalArgumentException {
+		if (StringUtils.isEmpty(kanbanCode)) {
+			throw new IllegalArgumentException("未指定看板 code");
+		}
 		Kanban kanban = kanbanDao.findOne(kanbanCode);
 		if (kanban == null) {
 			throw new IllegalArgumentException("看板不存在:" + kanbanCode);
@@ -292,6 +296,29 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 		return kanban;
 	}
 
+	/**
+	 * 初始化切换频率
+	 * 
+	 * @param KanbanInstance
+	 *            看板实例
+	 */
+	private void initSwitchFrequence(@NotEmpty("KanbanInstance") KanbanInstance kanbanInstance)
+			throws IllegalArgumentException {
+		Kanban kanban = checkKanban(kanbanInstance.getKanbanCode());
+		switch (kanban.getDisplay()) {
+		case AutoSwitch:
+			if (kanbanInstance.getSwitchFrequency() == null) {
+				kanbanInstance.setSwitchFrequency(KanbanInstance.DEFAULT_SWITCH_FREQUENCY);
+			}
+			break;
+		case SplitScreen:
+			if (kanbanInstance.getSwitchFrequency() != null) {
+				kanbanInstance.setSwitchFrequency(null);
+			}
+			break;
+		}
+	}
+
 	/**
 	 * 检查公共参数是否存在
 	 * 
@@ -365,9 +392,9 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 		Map<String, Object> result = new HashMap<>();
 		Map<String, Object> instance = new HashMap<>();
 		instance.put("display", kanban.getDisplay());
-		instance.put("switchFrequency", kanban.getSwitchFrequency());
 		instance.put("globalParameters", globalParameters);
 		instance.put("templateCodes", kanban.getTemplateCodes());
+		instance.put("switchFrequency", kanbanInstance.getSwitchFrequency());
 		instance.put("refreshFrequency", kanbanInstance.getRefreshFrequency());
 		result.put("instance", instance);
 		List<JSONObject> data = new ArrayList<>();
@@ -400,6 +427,7 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 		if (kanbanInstance == null) {
 			kanbanInstance = new KanbanInstance();
 			kanbanInstance.setKanbanCode(kanbanCode);
+			initSwitchFrequence(kanbanInstance);
 			kanbanInstance.setRefreshFrequency(KanbanInstance.DEFAULT_REFRESH_FREQUENCY);
 			// 生成相应的看板实例参数
 			generateParameters(kanbanInstance);

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

@@ -45,7 +45,6 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 		if (kanban.getDisplay() == null) {
 			kanban.setDisplay(Display.AutoSwitch);
 		}
-		checkDisplay(kanban);
 		return kanbanDao.save(kanban);
 	}
 
@@ -58,7 +57,6 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 	public int update(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
 		Kanban kanban = kanbanDao.parse(json);
 		checkTemplates(kanban.getTemplateCodes());
-		checkDisplay(kanban);
 		kanban.setUserCode(SystemSession.checkUser().getCode());
 		return kanbanDao.update(kanban);
 	}
@@ -118,30 +116,4 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 		}
 	}
 
-	/**
-	 * 检查展示方式
-	 * 
-	 * @param kanban
-	 *            看板
-	 * @throws IllegalArgumentException
-	 *             展示方式为自动切换时,未指定切换频率
-	 */
-	private void checkDisplay(@NotEmpty("kanban") Kanban kanban) throws IllegalArgumentException {
-		Display display = kanban.getDisplay();
-		if (display != null) {
-			switch (display) {
-			case AutoSwitch:
-				if (kanban.getSwitchFrequency() == null) {
-					kanban.setSwitchFrequency(Kanban.DEFAULT_SWITCH_FREQUENCY);
-				}
-				break;
-			case SplitScreen:
-				if (kanban.getSwitchFrequency() != null) {
-					throw new IllegalArgumentException("展示方式为“分屏展示”时,不可指定切换频率");
-				}
-				break;
-			}
-		}
-	}
-
 }

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

@@ -75,8 +75,8 @@
 			</ol>
 			<strong><li class="title">看版</li></strong>
 			<ol>
-				<li><a target="_blank">kanban/save?json={"name": "name","templateCodes":["500DE5D931C"],"display":"AutoSwitch","switchFrequency":5000, "iconCls":"grid-shortcut"}</a></li>
-				<li><a target="_blank">kanban/savePart?json={"name": "name","templateCodes":["500DE5D931C"],"display":"AutoSwitch","switchFrequency":5000, "iconCls":"grid-shortcut"}</a></li>
+				<li><a target="_blank">kanban/save?json={"name": "name","templateCodes":["500DE5D931C"],"display":"AutoSwitch", "iconCls":"grid-shortcut"}</a></li>
+				<li><a target="_blank">kanban/savePart?json={"name": "name","templateCodes":["500DE5D931C"],"display":"AutoSwitch", "iconCls":"grid-shortcut"}</a></li>
 				<!-- "templateCodes":"4ED1EA76E16" 或 "templateCodes":["4ED1EA76E16"]-->
 				<li><a target="_blank">kanban/update?json={"code":"506C9FB0311","name": "name","templateCodes":["4FF1AD1C411","4FF1F024412"],"display":"SplitScreen", "iconCls":"grid-shortcut"}</a></li>
 				<li><a target="_blank">kanban/updatePart?json={"code":"506C9FB0311","name": "name","templateCodes":["4FF1AD1C411","4FF1F024412"],"display":"SplitScreen", "iconCls":"grid-shortcut"}</a></li>
@@ -87,9 +87,9 @@
 			</ol>
 			<strong><li class="title">看版实例</li></strong>
 			<ol>
-				<li><a target="_blank">kanbanInstance/save?json={"globalParameters":[{"code":"5061DFD0811","type":"String","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数1","optionalValues":["值1","值2"],"value":"值2"},{"code":"5061E8A3812","type":"Number","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数2","optionalValues":[12,32],"value":12.0}],"kanbanCode":"50C01D61F19","parameters":{"4FF1F024412":[{"code":"50C00E19815","name":"pq_av","type":"Number","value":2},{"code":"50C010D1716","name":"ma_ad","type":"Date","value":2},{"code":"50C012E1817","name":"afd_ad","type":"String","value":2}],"4FF1AD1C411":[{"code":"50BFED83B13","name":"PU_NAME","type":"String","value":2},{"code":"50C00990C14","name":"as_type","type":"Number","value":2}]},"refreshFrequency":5000}</a></li>
+				<li><a target="_blank">kanbanInstance/save?json={"globalParameters":[{"code":"5061DFD0811","type":"String","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数1","optionalValues":["值1","值2"],"value":"值2"},{"code":"5061E8A3812","type":"Number","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数2","optionalValues":[12,32],"value":12.0}],"kanbanCode":"50C01D61F19","parameters":{"4FF1F024412":[{"code":"50C00E19815","name":"pq_av","type":"Number","value":2},{"code":"50C010D1716","name":"ma_ad","type":"Date","value":2},{"code":"50C012E1817","name":"afd_ad","type":"String","value":2}],"4FF1AD1C411":[{"code":"50BFED83B13","name":"PU_NAME","type":"String","value":2},{"code":"50C00990C14","name":"as_type","type":"Number","value":2}]},"switchFrequency":5000,"refreshFrequency":5000}</a></li>
 				<li><a target="_blank">kanbanInstance/savePart?json={"globalParameters":[{"code":"5061DFD0811","type":"String","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数1","optionalValues":["值1","值2"],"value":"值2"},{"code":"5061E8A3812","type":"Number","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数2","optionalValues":[12,32],"value":12.0}],"kanbanCode":"50C01D61F19","parameters":{"4FF1F024412":[{"code":"50C00E19815","name":"pq_av","type":"Number","value":2},{"code":"50C010D1716","name":"ma_ad","type":"Date","value":2},{"code":"50C012E1817","name":"afd_ad","type":"String","value":2}],"4FF1AD1C411":[{"code":"50BFED83B13","name":"PU_NAME","type":"String","value":2},{"code":"50C00990C14","name":"as_type","type":"Number","value":2}]},"refreshFrequency":5000}</a></li>
-				<li><a target="_blank">kanbanInstance/update?json={"code":"50C2C15A411","globalParameters":[{"code":"5061DFD0811","type":"String","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数1","optionalValues":["值1","值2"],"value":"值2"},{"code":"5061E8A3812","type":"Number","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数2","optionalValues":[12,32],"value":12.0}],"kanbanCode":"50C01D61F19","parameters":{"4FF1F024412":[{"code":"50C00E19815","name":"pq_av","type":"Number","value":2},{"code":"50C010D1716","name":"ma_ad","type":"Date","value":2},{"code":"50C012E1817","name":"afd_ad","type":"String","value":2}],"4FF1AD1C411":[{"code":"50BFED83B13","name":"PU_NAME","type":"String","value":2},{"code":"50C00990C14","name":"as_type","type":"Number","value":2}]},"refreshFrequency":5000}</a></li>
+				<li><a target="_blank">kanbanInstance/update?json={"code":"50C2C15A411","globalParameters":[{"code":"5061DFD0811","type":"String","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数1","optionalValues":["值1","值2"],"value":"值2"},{"code":"5061E8A3812","type":"Number","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数2","optionalValues":[12,32],"value":12.0}],"kanbanCode":"50C01D61F19","parameters":{"4FF1F024412":[{"code":"50C00E19815","name":"pq_av","type":"Number","value":2},{"code":"50C010D1716","name":"ma_ad","type":"Date","value":2},{"code":"50C012E1817","name":"afd_ad","type":"String","value":2}],"4FF1AD1C411":[{"code":"50BFED83B13","name":"PU_NAME","type":"String","value":2},{"code":"50C00990C14","name":"as_type","type":"Number","value":2}]},"switchFrequency":5000,"refreshFrequency":5000}</a></li>
 				<li><a target="_blank">kanbanInstance/updatePart?json={"code":"50C2C15A411","globalParameters":[{"code":"5061DFD0811","type":"String","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数1","optionalValues":["值1","值2"],"value":"值2"},{"code":"5061E8A3812","type":"Number","defaultOptionalValueIndex":1,"inputMode":"Radio","name":"公共参数2","optionalValues":[12,32],"value":12.0}],"kanbanCode":"50C01D61F19","parameters":{"4FF1F024412":[{"code":"50C00E19815","name":"pq_av","type":"Number","value":2},{"code":"50C010D1716","name":"ma_ad","type":"Date","value":2},{"code":"50C012E1817","name":"afd_ad","type":"String","value":2}],"4FF1AD1C411":[{"code":"50BFED83B13","name":"PU_NAME","type":"String","value":2},{"code":"50C00990C14","name":"as_type","type":"Number","value":2}]},"refreshFrequency":5000}</a></li>
 				<li><a target="_blank">kanbanInstance/delete/4EC2735D343</a></li>
 				<li><a target="_blank">kanbanInstance/get/all</a></li>