()
+ .select(SysPost::getPostId, SysPost::getPostName)
+ .in(SysPost::getPostId, postIds)
+ ).stream()
+ .collect(Collectors.toMap(SysPost::getPostId, SysPost::getPostName));
+ }
+
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
index 5d24b350..e844398e 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
@@ -7,6 +7,21 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * 自定义条件注解,用于基于配置启用或禁用特定功能
+ *
+ * 该注解只会在配置文件中 `warm-flow.enabled=true` 时,标注了此注解的类或方法才会被 Spring 容器加载
+ *
+ * 示例配置:
+ *
+ * warm-flow:
+ * enabled: true # 设置为 true 时,启用工作流功能
+ *
+ *
+ * 使用此注解时,可以动态控制工作流功能是否启用,而不需要修改代码逻辑
+ *
+ * @author Lion Li
+ */
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@ConditionalOnProperty(value = "warm-flow.enabled", havingValue = "true")
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java
index 1b10eb8e..aaa640bf 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java
@@ -13,21 +13,11 @@ public interface FlowConstant {
*/
String INITIATOR = "initiator";
- /**
- * 流程实例id
- */
- String PROCESS_INSTANCE_ID = "processInstanceId";
-
/**
* 业务id
*/
String BUSINESS_ID = "businessId";
- /**
- * 任务id
- */
- String TASK_ID = "taskId";
-
/**
* 委托
*/
@@ -63,4 +53,29 @@ public interface FlowConstant {
*/
Long FLOW_CATEGORY_ID = 100L;
+ /**
+ * 是否为申请人提交常量
+ */
+ String SUBMIT = "submit";
+
+ /**
+ * 抄送常量
+ */
+ String FLOW_COPY_LIST = "flowCopyList";
+
+ /**
+ * 消息类型常量
+ */
+ String MESSAGE_TYPE = "messageType";
+
+ /**
+ * 消息通知常量
+ */
+ String MESSAGE_NOTICE = "messageNotice";
+
+ /**
+ * 任务状态
+ */
+ String WF_TASK_STATUS = "wf_task_status";
+
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
new file mode 100644
index 00000000..598cd05c
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
@@ -0,0 +1,65 @@
+package org.dromara.workflow.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 按钮权限枚举
+ *
+ * @author AprilWind
+ */
+@Getter
+@AllArgsConstructor
+public enum ButtonPermissionEnum implements NodeExtEnum {
+
+ /**
+ * 是否弹窗选人
+ */
+ POP("是否弹窗选人", "pop", false),
+
+ /**
+ * 是否能委托
+ */
+ TRUST("是否能委托", "trust", false),
+
+ /**
+ * 是否能转办
+ */
+ TRANSFER("是否能转办", "transfer", false),
+
+ /**
+ * 是否能抄送
+ */
+ COPY("是否能抄送", "copy", false),
+
+ /**
+ * 是否显示退回
+ */
+ BACK("是否显示退回", "back", true),
+
+ /**
+ * 是否能加签
+ */
+ ADD_SIGN("是否能加签", "addSign", false),
+
+ /**
+ * 是否能减签
+ */
+ SUB_SIGN("是否能减签", "subSign", false),
+
+ /**
+ * 是否能终止
+ */
+ TERMINATION("是否能终止", "termination", true),
+
+ /**
+ * 是否能上传附件
+ */
+ FILE("是否能上传附件", "file", true);
+
+ private final String label;
+ private final String value;
+ private final boolean selected;
+
+}
+
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
new file mode 100644
index 00000000..9926a8eb
--- /dev/null
+++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
@@ -0,0 +1,32 @@
+package org.dromara.workflow.common.enums;
+
+/**
+ * 节点扩展属性枚举
+ *
+ * @author AprilWind
+ */
+public interface NodeExtEnum {
+
+ /**
+ * 选项label
+ *
+ * @return 选项label
+ */
+ String getLabel();
+
+ /**
+ * 选项值
+ *
+ * @return 选项值
+ */
+ String getValue();
+
+ /**
+ * 是否默认选中
+ *
+ * @return 是否默认选中
+ */
+ boolean isSelected();
+
+}
+
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
index 37d414fc..3018b084 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
@@ -14,6 +14,7 @@ import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.web.core.BaseController;
import org.dromara.workflow.common.ConditionalOnEnable;
+import org.dromara.workflow.common.constant.FlowConstant;
import org.dromara.workflow.domain.bo.FlowCategoryBo;
import org.dromara.workflow.domain.vo.FlowCategoryVo;
import org.dromara.workflow.service.IFlwCategoryService;
@@ -110,6 +111,9 @@ public class FlwCategoryController extends BaseController {
@Log(title = "流程分类", businessType = BusinessType.DELETE)
@DeleteMapping("/{categoryId}")
public R remove(@PathVariable Long categoryId) {
+ if (FlowConstant.FLOW_CATEGORY_ID.equals(categoryId)) {
+ return R.warn("默认流程分类,不允许删除");
+ }
if (flwCategoryService.hasChildByCategoryId(categoryId)) {
return R.warn("存在下级流程分类,不允许删除");
}
diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
index ae99c16f..e7ea5e4c 100644
--- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
+++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
@@ -127,9 +127,9 @@ public class FlwInstanceController extends BaseController {
*
* @param businessId 业务id
*/
- @GetMapping("/flowImage/{businessId}")
- public R