zhourui 5 лет назад
Родитель
Сommit
f13efc3103

+ 22 - 11
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/control/ActionGetWorkOrWorkCompleted.java

@@ -111,15 +111,24 @@ class ActionGetWorkOrWorkCompleted extends BaseAction {
 		wo.setAllowReset(PropertyTools.getOrElse(activity, Manual.allowReset_FIELDNAME, Boolean.class, false)
 				&& wo.getAllowSave());
 		// 是否可以调度
-		wo.setAllowReroute(PropertyTools.getOrElse(activity, Manual.allowReroute_FIELDNAME, Boolean.class, false)
+		wo.setAllowReroute(PropertyTools.getOrElse(activity, Activity.allowReroute_FIELDNAME, Boolean.class, false)
 				&& this.canManageApplicationOrProcess(business, effectivePerson, work.getApplication(),
 						work.getProcess()));
 		// 是否可以删除
 		wo.setAllowDelete(PropertyTools.getOrElse(activity, Manual.allowDeleteWork_FIELDNAME, Boolean.class, false)
 				&& wo.getAllowSave());
 		// 是否可以挂起待办,暂停待办计时
-		wo.setAllowPause(PropertyTools.getOrElse(activity, Manual.allowPause_FIELDNAME, Boolean.class, false)
-				&& wo.getAllowPause());
+
+		if (PropertyTools.getOrElse(activity, Manual.allowPause_FIELDNAME, Boolean.class, false)
+				&& wo.getAllowPause()) {
+			// 如果已经处于挂起状态,那么允许恢复
+			if (this.hasPauseTaskWithWork(business, effectivePerson, work.getId())) {
+				wo.setAllowResume(true);
+			} else {
+				wo.setAllowPause(true);
+			}
+		}
+
 		// 是否可以增加会签分支
 		if (BooleanUtils.isTrue(PropertyTools.getOrElse(activity, Manual.allowAddSplit_FIELDNAME, Boolean.class, false))
 				&& BooleanUtils.isTrue(work.getSplitting())) {
@@ -179,14 +188,6 @@ class ActionGetWorkOrWorkCompleted extends BaseAction {
 			}
 			return false;
 		});
-//		Boolean o = this.hasTaskCompletedWithActivityToken.get(activityToken);
-//		if (null == o) {
-//			o = business.entityManagerContainer().countEqualAndEqual(TaskCompleted.class,
-//					TaskCompleted.person_FIELDNAME, effectivePerson.getDistinguishedName(),
-//					TaskCompleted.activityToken_FIELDNAME, activityToken) > 0;
-//			this.hasTaskCompletedWithActivityToken.put(activityToken, o);
-//		}
-//		return o;
 	}
 
 	private boolean hasTaskWithWork(Business business, EffectivePerson effectivePerson, String work) throws Exception {
@@ -197,6 +198,16 @@ class ActionGetWorkOrWorkCompleted extends BaseAction {
 		return this.hasTaskWithWork;
 	}
 
+	private boolean hasPauseTaskWithWork(Business business, EffectivePerson effectivePerson, String work)
+			throws Exception {
+		if (null == this.hasTaskWithWork) {
+			this.hasTaskWithWork = business.entityManagerContainer().countEqualAndEqualAndEqual(Task.class,
+					Task.person_FIELDNAME, effectivePerson.getDistinguishedName(), Task.work_FIELDNAME, work,
+					Task.pause_FIELDNAME, true) > 0;
+		}
+		return this.hasTaskWithWork;
+	}
+
 	private boolean hasTaskCompletedWithJob(Business business, EffectivePerson effectivePerson, String job)
 			throws Exception {
 		if (null == this.hasTaskCompletedWithJob) {

+ 18 - 8
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/control/BaseAction.java

@@ -30,14 +30,6 @@ abstract class BaseAction extends StandardJaxrsAction {
 		// 是否可以重置处理人
 		private Boolean allowReset = false;
 
-		public Boolean getAllowPause() {
-			return allowPause;
-		}
-
-		public void setAllowPause(Boolean allowPause) {
-			this.allowPause = allowPause;
-		}
-
 		// 是否可以调度
 		private Boolean allowReroute = false;
 		// 是否可以删除
@@ -52,11 +44,21 @@ abstract class BaseAction extends StandardJaxrsAction {
 		private Boolean allowPress = false;
 		// 是否可以待办挂起(暂停待办计时)
 		private Boolean allowPause = false;
+		// 是否可以取消待办挂起(恢复待办计时)
+		private Boolean allowResume = false;
 
 		public Boolean getAllowSave() {
 			return allowSave;
 		}
 
+		public Boolean getAllowPause() {
+			return allowPause;
+		}
+
+		public void setAllowPause(Boolean allowPause) {
+			this.allowPause = allowPause;
+		}
+
 		public void setAllowSave(Boolean allowSave) {
 			this.allowSave = allowSave;
 		}
@@ -141,6 +143,14 @@ abstract class BaseAction extends StandardJaxrsAction {
 			this.allowPress = allowPress;
 		}
 
+		public Boolean getAllowResume() {
+			return allowResume;
+		}
+
+		public void setAllowResume(Boolean allowResume) {
+			this.allowResume = allowResume;
+		}
+
 	}
 
 	protected CompletableFuture<Boolean> checkControlFuture(EffectivePerson effectivePerson, String flag) {