update 优化 统一补全代码注释

This commit is contained in:
疯狂的狮子Li
2026-03-13 19:36:14 +08:00
parent 916282ba68
commit 48992b574d
201 changed files with 2554 additions and 465 deletions

View File

@@ -24,52 +24,52 @@ public interface FlowConstant {
String INITIATOR_DEPT_ID = "initiatorDeptId";
/**
* 流程分类Id转名称
* 流程分类 ID 转名称的翻译标识。
*/
String CATEGORY_ID_TO_NAME = "category_id_to_name";
/**
* 流程分类名称
* 流程分类名称缓存键。
*/
String FLOW_CATEGORY_NAME = "flow_category_name#30d";
/**
* 默认租户OA申请分类id
* 默认租户 OA 申请分类 ID。
*/
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";
/**
* 自动通过
* 自动通过变量标识。
*/
String AUTO_PASS = "autoPass";
/**
* 业务编码
* 业务编码流程变量名。
*/
String BUSINESS_CODE = "businessCode";

View File

@@ -57,8 +57,19 @@ public enum ButtonPermissionEnum implements NodeExtEnum {
*/
FILE("是否能上传附件", "file", true);
/**
* 按钮展示名称。
*/
private final String label;
/**
* 按钮权限值。
*/
private final String value;
/**
* 是否默认开启。
*/
private final boolean selected;
}

View File

@@ -12,8 +12,20 @@ import lombok.Getter;
@AllArgsConstructor
public enum CopySettingEnum implements NodeExtEnum {
;
/**
* 展示名称。
*/
private final String label;
/**
* 配置值。
*/
private final String value;
/**
* 是否默认选中。
*/
private final boolean selected;
}

View File

@@ -9,7 +9,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 消息类型枚举
* 消息类型枚举,定义流程通知支持的消息通道。
*
* @author may
*/
@@ -32,15 +32,21 @@ public enum MessageTypeEnum {
*/
SMS_MESSAGE("3", "短信");
/**
* 消息类型编码。
*/
private final String code;
/**
* 消息类型描述。
*/
private final String desc;
private static final Map<String, MessageTypeEnum> MESSAGE_TYPE_ENUM_MAP = Arrays.stream(values())
.collect(Collectors.toConcurrentMap(MessageTypeEnum::getCode, Function.identity()));
/**
* 根据消息类型 code 获取 MessageTypeEnum
* 根据消息类型编码获取枚举实例。
*
* @param code 消息类型code
* @return MessageTypeEnum

View File

@@ -1,28 +1,28 @@
package org.dromara.workflow.common.enums;
/**
* 节点扩展属性枚举
* 节点扩展属性枚举通用接口,约束扩展选项的展示名、值和默认勾选状态。
*
* @author AprilWind
*/
public interface NodeExtEnum {
/**
* 选项label
* 获取选项展示名称。
*
* @return 选项label
*/
String getLabel();
/**
* 选项值
* 获取选项值
*
* @return 选项值
*/
String getValue();
/**
* 是否默认选中
* 是否默认选中
*
* @return 是否默认选中
*/

View File

@@ -43,7 +43,14 @@ public enum TaskAssigneeEnum {
*/
SPEL("SpEL表达式", "");
/**
* 类型描述。
*/
private final String desc;
/**
* 类型编码前缀。
*/
private final String code;
/**
@@ -85,10 +92,7 @@ public enum TaskAssigneeEnum {
}
/**
* 获取所有办理人类型的描述列表
* <p>
* 获取当前枚举类所有项的描述字段列表,通常用于展示选择项。
* </p>
* 获取所有办理人类型的描述列表,通常用于前端展示选择项。
*
* @return List<String> 返回所有办理人类型的描述列表
*/
@@ -99,10 +103,8 @@ public enum TaskAssigneeEnum {
}
/**
* 获取所有办理人类型的代码列表
* <p>
* 获取当前枚举类所有项的代码字段列表,通常用于程序内部逻辑的判断。
* </p>
/**
* 获取所有办理人类型的代码列表,通常用于程序内部逻辑判断。
*
* @return List<String> 返回所有办理人类型的代码列表
*/
@@ -113,7 +115,7 @@ public enum TaskAssigneeEnum {
}
/**
* 判断当前办理人类型是否需要调用部门服务deptService
* 判断当前办理人类型是否需要调用部门服务
*
* @return 如果类型是 USER、DEPT 或 POST则返回 true否则返回 false
*/

View File

@@ -9,7 +9,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 任务操作类型枚举
* 任务操作类型枚举,定义流程任务支持的运行时操作。
*
* @author may
*/
@@ -37,14 +37,24 @@ public enum TaskOperationEnum {
*/
REDUCTION_SIGNATURE("reductionSignature", "减签");
/**
* 操作编码,供接口与前端交互使用。
*/
private final String code;
/**
* 操作描述。
*/
private final String desc;
private static final Map<String, TaskOperationEnum> CODE_MAP = Arrays.stream(values())
.collect(Collectors.toConcurrentMap(TaskOperationEnum::getCode, Function.identity()));
/**
* 根据 code 获取枚举
* 根据 code 获取枚举实例。
*
* @param code 操作编码
* @return 对应的枚举实例
*/
public static TaskOperationEnum getByCode(String code) {
return CODE_MAP.get(code);

View File

@@ -83,7 +83,7 @@ public enum TaskStatusEnum {
private final String status;
/**
* 描述
* 状态描述
*/
private final String desc;
@@ -91,9 +91,10 @@ public enum TaskStatusEnum {
.collect(Collectors.toConcurrentMap(TaskStatusEnum::getStatus, TaskStatusEnum::getDesc));
/**
* 任务业务状态
* 根据状态编码获取任务业务状态描述。
*
* @param status 状态
* @return 状态描述
*/
public static String findByStatus(String status) {
// 从缓存中直接获取描述

View File

@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 变量枚举
* 节点扩展变量枚举,占位用于后续补充可配置变量定义。
*
* @author AprilWind
*/
@@ -12,8 +12,20 @@ import lombok.Getter;
@AllArgsConstructor
public enum VariablesEnum implements NodeExtEnum {
;
/**
* 展示名称。
*/
private final String label;
/**
* 变量值。
*/
private final String value;
/**
* 是否选中。
*/
private final boolean selected;
}

View File

@@ -4,7 +4,7 @@ import org.dromara.workflow.common.ConditionalOnEnable;
import org.springframework.context.annotation.Configuration;
/**
* warmFlow配置
* WarmFlow 工作流配置入口,在工作流开关开启时注册相关组件。
*
* @author may
*/

View File

@@ -38,7 +38,10 @@ public class FlwCategoryController extends BaseController {
private final IFlwCategoryService flwCategoryService;
/**
* 查询流程分类列表
* 查询流程分类列表
*
* @param bo 查询条件
* @return 流程分类列表
*/
@SaCheckPermission("workflow:category:list")
@GetMapping("/list")
@@ -48,7 +51,10 @@ public class FlwCategoryController extends BaseController {
}
/**
* 导出流程分类列表
* 导出流程分类列表
*
* @param bo 查询条件
* @param response 响应流
*/
@SaCheckPermission("workflow:category:export")
@Log(title = "流程分类", businessType = BusinessType.EXPORT)
@@ -59,9 +65,10 @@ public class FlwCategoryController extends BaseController {
}
/**
* 获取流程分类详细信息
* 获取单个流程分类详情。
*
* @param categoryId 主键
* @return 流程分类详情
*/
@SaCheckPermission("workflow:category:query")
@GetMapping("/{categoryId}")
@@ -70,7 +77,10 @@ public class FlwCategoryController extends BaseController {
}
/**
* 新增流程分类
* 新增流程分类,并校验分类名称唯一性。
*
* @param category 分类信息
* @return 操作结果
*/
@SaCheckPermission("workflow:category:add")
@Log(title = "流程分类", businessType = BusinessType.INSERT)
@@ -84,7 +94,10 @@ public class FlwCategoryController extends BaseController {
}
/**
* 修改流程分类
* 修改流程分类,并校验名称唯一及父子关系合法性。
*
* @param category 分类信息
* @return 操作结果
*/
@SaCheckPermission("workflow:category:edit")
@Log(title = "流程分类", businessType = BusinessType.UPDATE)
@@ -101,9 +114,10 @@ public class FlwCategoryController extends BaseController {
}
/**
* 删除流程分类
* 删除流程分类,删除前校验默认分类、子节点和绑定流程定义。
*
* @param categoryId 主键
* @return 操作结果
*/
@SaCheckPermission("workflow:category:remove")
@Log(title = "流程分类", businessType = BusinessType.DELETE)
@@ -122,9 +136,10 @@ public class FlwCategoryController extends BaseController {
}
/**
* 获取流程分类树列表
* 获取流程分类树列表,用于流程定义选择分类节点。
*
* @param categoryBo 流程分类
* @return 流程分类树
*/
@GetMapping("/categoryTree")
public R<List<Tree<String>>> categoryTree(FlowCategoryBo categoryBo) {

View File

@@ -39,10 +39,11 @@ public class FlwDefinitionController extends BaseController {
private final IFlwDefinitionService flwDefinitionService;
/**
* 查询流程定义列表
* 分页查询流程定义列表
*
* @param flowDefinition 参数
* @param pageQuery 分页
* @param flowDefinition 查询条件
* @param pageQuery 分页参数
* @return 流程定义分页数据
*/
@GetMapping("/list")
public TableDataInfo<FlowDefinitionVo> list(FlowDefinition flowDefinition, PageQuery pageQuery) {
@@ -50,10 +51,11 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 查询未发布的流程定义列表
* 分页查询未发布的流程定义列表
*
* @param flowDefinition 参数
* @param pageQuery 分页
* @param flowDefinition 查询条件
* @param pageQuery 分页参数
* @return 未发布流程定义分页数据
*/
@GetMapping("/unPublishList")
public TableDataInfo<FlowDefinitionVo> unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery) {
@@ -61,9 +63,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 获取流程定义详细信息
* 获取流程定义详细信息
*
* @param id 流程定义id
* @return 流程定义详情
*/
@GetMapping(value = "/{id}")
public R<Definition> getInfo(@PathVariable Long id) {
@@ -71,9 +74,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 新增流程定义
* 新增流程定义并执行格式校验。
*
* @param flowDefinition 参数
* @param flowDefinition 流程定义信息
* @return 操作结果
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@PostMapping
@@ -84,9 +88,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 修改流程定义
* 修改流程定义
*
* @param flowDefinition 参数
* @param flowDefinition 流程定义信息
* @return 操作结果
*/
@Log(title = "流程定义", businessType = BusinessType.UPDATE)
@PutMapping
@@ -97,9 +102,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 发布流程定义
* 发布流程定义,使其进入可用状态。
*
* @param id 流程定义id
* @return 发布结果
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@PutMapping("/publish/{id}")
@@ -109,9 +115,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 取消发布流程定义
* 取消发布流程定义
*
* @param id 流程定义id
* @return 操作结果
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@PutMapping("/unPublish/{id}")
@@ -122,7 +129,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 删除流程定义
* 批量删除流程定义
*
* @param ids 流程定义ID集合
* @return 操作结果
*/
@Log(title = "流程定义", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@@ -131,9 +141,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 复制流程定义
* 复制一份流程定义,便于快速创建相似流程。
*
* @param id 流程定义id
* @return 复制结果
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@PostMapping("/copy/{id}")
@@ -144,10 +155,11 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 导入流程定义
* 通过文件导入流程定义
*
* @param file 文件
* @param category 分类
* @return 导入结果
*/
@Log(title = "流程定义", businessType = BusinessType.IMPORT)
@PostMapping("/importDef")
@@ -156,7 +168,7 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 导出流程定义
* 导出流程定义文件。
*
* @param id 流程定义id
* @param response 响应
@@ -169,9 +181,10 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 获取流程定义JSON字符串
* 获取流程定义 JSON 字符串
*
* @param id 流程定义id
* @return 流程定义 JSON
*/
@GetMapping("/xmlString/{id}")
public R<String> xmlString(@PathVariable Long id) {
@@ -179,10 +192,12 @@ public class FlwDefinitionController extends BaseController {
}
/**
* 激活/挂起流程定义
/**
* 激活或挂起流程定义。
*
* @param id 流程定义id
* @param active 激活/挂起
* @return 处理结果
*/
@RepeatSubmit()
@PutMapping("/active/{id}")

View File

@@ -40,10 +40,11 @@ public class FlwInstanceController extends BaseController {
private final IFlwInstanceService flwInstanceService;
/**
* 查询正在运行的流程实例列表
* 分页查询正在运行的流程实例
*
* @param flowInstanceBo 流程实例
* @param pageQuery 分页
* @return 正在运行的流程实例分页数据
*/
@GetMapping("/pageByRunning")
public TableDataInfo<FlowInstanceVo> selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
@@ -51,10 +52,11 @@ public class FlwInstanceController extends BaseController {
}
/**
* 查询已结束的流程实例列表
* 分页查询已结束的流程实例
*
* @param flowInstanceBo 流程实例
* @param pageQuery 分页
* @return 已结束的流程实例分页数据
*/
@GetMapping("/pageByFinish")
public TableDataInfo<FlowInstanceVo> selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
@@ -62,9 +64,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 根据业务id查询流程实例详细信息
* 根据业务 id 查询流程实例详细信息
*
* @param businessId 业务id
* @return 流程实例详情
*/
@GetMapping("/getInfo/{businessId}")
public R<FlowInstanceVo> getInfo(@PathVariable Long businessId) {
@@ -72,9 +75,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 按业务id删除流程实例
* 按业务 id 批量删除流程实例
*
* @param businessIds 业务id
* @return 操作结果
*/
@DeleteMapping("/deleteByBusinessIds/{businessIds}")
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
@@ -83,9 +87,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 按实例id删除流程实例
* 按实例 id 批量删除流程实例
*
* @param instanceIds 实例id
* @return 操作结果
*/
@DeleteMapping("/deleteByInstanceIds/{instanceIds}")
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
@@ -94,9 +99,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 按实例id删除已完成流程实例
* 按实例 id 批量删除已完成流程实例
*
* @param instanceIds 实例id
* @return 操作结果
*/
@DeleteMapping("/deleteHisByInstanceIds/{instanceIds}")
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
@@ -105,9 +111,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 撤销流程
* 撤销当前申请人发起的流程
*
* @param bo 参数
* @return 操作结果
*/
@RepeatSubmit()
@PutMapping("/cancelProcessApply")
@@ -117,10 +124,11 @@ public class FlwInstanceController extends BaseController {
}
/**
* 激活/挂起流程实例
* 激活挂起流程实例
*
* @param id 流程实例id
* @param active 激活/挂起
* @return 处理结果
*/
@RepeatSubmit()
@PutMapping("/active/{id}")
@@ -130,10 +138,11 @@ public class FlwInstanceController extends BaseController {
}
/**
* 获取当前登人发起的流程实例
* 获取当前登人发起的流程实例列表。
*
* @param flowInstanceBo 参数
* @param pageQuery 分页
* @return 当前用户发起的流程实例分页数据
*/
@GetMapping("/pageByCurrent")
public TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
@@ -141,9 +150,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 获取流程图流程记录
* 获取流程图流程记录,用于展示实例流转轨迹。
*
* @param businessId 业务id
* @return 流程图与历史节点信息
*/
@GetMapping("/flowHisTaskList/{businessId}")
public R<Map<String, Object>> flowHisTaskList(@PathVariable String businessId) {
@@ -151,9 +161,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 获取流程变量
* 获取流程变量
*
* @param instanceId 流程实例id
* @return 流程变量
*/
@GetMapping("/instanceVariable/{instanceId}")
public R<Map<String, Object>> instanceVariable(@PathVariable Long instanceId) {
@@ -161,9 +172,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 修改流程变量
* 修改流程变量
*
* @param bo 参数
* @return 操作结果
*/
@RepeatSubmit()
@PutMapping("/updateVariable")
@@ -173,9 +185,10 @@ public class FlwInstanceController extends BaseController {
}
/**
* 作废流程
* 作废流程实例。
*
* @param bo 参数
* @return 处理结果
*/
@Log(title = "流程实例管理", businessType = BusinessType.INSERT)
@RepeatSubmit()

View File

@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 流程spel表达式定义
* 流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。
*
* @author Michelle.Chung
* @date 2025-07-04
@@ -38,7 +38,11 @@ public class FlwSpelController extends BaseController {
private final IFlwSpelService flwSpelService;
/**
* 查询流程spel表达式定义列表
* 分页查询流程 SpEL 表达式定义列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 表达式分页数据
*/
@SaCheckPermission("workflow:spel:list")
@GetMapping("/list")
@@ -47,9 +51,10 @@ public class FlwSpelController extends BaseController {
}
/**
* 获取流程spel表达式定义详细信息
* 获取流程 SpEL 表达式定义详情。
*
* @param id 主键
* @return 表达式详情
*/
@SaCheckPermission("workflow:spel:query")
@GetMapping("/{id}")
@@ -58,7 +63,11 @@ public class FlwSpelController extends BaseController {
}
/**
* 新增流程spel表达式定义
/**
* 新增流程 SpEL 表达式定义。
*
* @param bo 表达式信息
* @return 操作结果
*/
@SaCheckPermission("workflow:spel:add")
@Log(title = "流程spel表达式定义", businessType = BusinessType.INSERT)
@@ -69,7 +78,10 @@ public class FlwSpelController extends BaseController {
}
/**
* 修改流程spel表达式定义
* 修改流程 SpEL 表达式定义
*
* @param bo 表达式信息
* @return 操作结果
*/
@SaCheckPermission("workflow:spel:edit")
@Log(title = "流程spel表达式定义", businessType = BusinessType.UPDATE)
@@ -80,9 +92,10 @@ public class FlwSpelController extends BaseController {
}
/**
* 删除流程spel表达式定义
* 批量删除流程 SpEL 表达式定义
*
* @param ids 主键串
* @return 操作结果
*/
@SaCheckPermission("workflow:spel:remove")
@Log(title = "流程spel表达式定义", businessType = BusinessType.DELETE)

View File

@@ -38,9 +38,10 @@ public class FlwTaskController extends BaseController {
private final IFlwTaskService flwTaskService;
/**
* 启动任务
* 启动流程任务
*
* @param startProcessBo 启动流程参数
* @return 启动结果及后续流程信息
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@@ -51,9 +52,10 @@ public class FlwTaskController extends BaseController {
}
/**
* 办理任务
* 办理当前任务节点。
*
* @param completeTaskBo 办理任务参数
* @return 操作结果
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@@ -63,10 +65,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 查询当前用户的待办任务
* 查询当前用户的待办任务
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 待办任务分页数据
*/
@GetMapping("/pageByTaskWait")
public TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -74,22 +77,24 @@ public class FlwTaskController extends BaseController {
}
/**
* 查询当前用户的已办任务
* 查询当前用户的已办任务
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 已办任务分页数据
*/
@GetMapping("/pageByTaskFinish")
public TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
return flwTaskService.pageByTaskFinish(flowTaskBo, pageQuery);
}
/**
* 查询待办任务
/**
* 查询全部待办任务。
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 待办任务分页数据
*/
@GetMapping("/pageByAllTaskWait")
public TableDataInfo<FlowTaskVo> pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -97,10 +102,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 查询已办任务
* 查询全部已办任务
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 已办任务分页数据
*/
@GetMapping("/pageByAllTaskFinish")
public TableDataInfo<FlowHisTaskVo> pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -108,10 +114,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 查询当前用户的抄送
* 查询当前用户收到的抄送任务。
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 抄送任务分页数据
*/
@GetMapping("/pageByTaskCopy")
public TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -119,9 +126,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 根据taskId查询代表任务
/**
* 根据任务 id 查询任务详情。
*
* @param taskId 任务id
* @return 任务详情
*/
@GetMapping("/getTask/{taskId}")
public R<FlowTaskVo> getTask(@PathVariable Long taskId) {
@@ -129,9 +138,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 获取下一节点信息
/**
* 获取流程下一节点信息。
*
* @param bo 参数
* @return 下一节点列表
*/
@PostMapping("/getNextNodeList")
public R<List<FlowNode>> getNextNodeList(@RequestBody FlowNextNodeBo bo) {
@@ -139,9 +150,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 终止任务
/**
* 终止流程任务。
*
* @param bo 参数
* @return 处理结果
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@@ -151,10 +164,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 任务操作
* 执行任务操作,例如委派、转办、加签或减签。
*
* @param bo 参数
* @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature
* @return 操作结果
*/
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
@RepeatSubmit
@@ -164,10 +178,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 修改任务办理人
* 批量修改任务办理人
*
* @param taskIdList 任务id
* @param userId 办理人id
* @return 操作结果
*/
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@@ -177,9 +192,10 @@ public class FlwTaskController extends BaseController {
}
/**
* 驳回审批
* 驳回审批到前置节点。
*
* @param bo 参数
* @return 操作结果
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@@ -189,10 +205,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 获取可驳回的前置节点
* 获取当前任务可驳回的前置节点
*
* @param taskId 任务id
* @param nowNodeCode 当前节点
* @return 可驳回节点列表
*/
@GetMapping("/getBackTaskNode/{taskId}/{nowNodeCode}")
public R<List<Node>> getBackTaskNode(@PathVariable Long taskId, @PathVariable String nowNodeCode) {
@@ -200,9 +217,11 @@ public class FlwTaskController extends BaseController {
}
/**
* 获取当前任务的所有办理人
/**
* 获取当前任务的所有办理人。
*
* @param taskId 任务id
* @return 办理人列表
*/
@GetMapping("/currentTaskAllUser/{taskId}")
public R<List<UserDTO>> currentTaskAllUser(@PathVariable Long taskId) {
@@ -210,7 +229,7 @@ public class FlwTaskController extends BaseController {
}
/**
* 催办任务
* 催办任务
*
* @param bo 参数
* @return 结果
@@ -220,6 +239,4 @@ public class FlwTaskController extends BaseController {
public R<Void> urgeTask(@RequestBody FlowUrgeTaskBo bo) {
return toAjax(flwTaskService.urgeTask(bo));
}
}

View File

@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 请假
* 请假示例控制器,演示业务单据与流程引擎联动的典型用法。
*
* @author may
* @date 2023-07-21
@@ -40,7 +40,11 @@ public class TestLeaveController extends BaseController {
private final ITestLeaveService testLeaveService;
/**
* 查询请假列表
* 分页查询请假列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 请假分页数据
*/
@SaCheckPermission("workflow:leave:list")
@GetMapping("/list")
@@ -49,7 +53,11 @@ public class TestLeaveController extends BaseController {
}
/**
* 导出请假列表
/**
* 导出请假列表。
*
* @param bo 查询条件
* @param response 响应流
*/
@SaCheckPermission("workflow:leave:export")
@Log(title = "请假", businessType = BusinessType.EXPORT)
@@ -60,9 +68,10 @@ public class TestLeaveController extends BaseController {
}
/**
* 获取请假详细信息
* 获取请假单详情。
*
* @param id 主键
* @return 请假详情
*/
@SaCheckPermission("workflow:leave:query")
@GetMapping("/{id}")
@@ -72,7 +81,10 @@ public class TestLeaveController extends BaseController {
}
/**
* 新增请假
* 新增请假单。
*
* @param bo 请假信息
* @return 新增后的请假单
*/
@SaCheckPermission("workflow:leave:add")
@Log(title = "请假", businessType = BusinessType.INSERT)
@@ -83,7 +95,10 @@ public class TestLeaveController extends BaseController {
}
/**
* 提交请假并提交流程
* 提交请假单并同步发起流程
*
* @param bo 请假信息
* @return 提交后的请假单
*/
@SaCheckPermission("workflow:leave:add")
@Log(title = "请假", businessType = BusinessType.INSERT)
@@ -94,7 +109,10 @@ public class TestLeaveController extends BaseController {
}
/**
* 修改请假
* 修改请假单。
*
* @param bo 请假信息
* @return 修改后的请假单
*/
@SaCheckPermission("workflow:leave:edit")
@Log(title = "请假", businessType = BusinessType.UPDATE)
@@ -105,9 +123,10 @@ public class TestLeaveController extends BaseController {
}
/**
* 删除请假
* 批量删除请假单。
*
* @param ids 主键串
* @return 操作结果
*/
@SaCheckPermission("workflow:leave:remove")
@Log(title = "请假", businessType = BusinessType.DELETE)

View File

@@ -8,7 +8,7 @@ import java.io.Serial;
import java.io.Serializable;
/**
* 撤销任务请求对象
* 撤销流程请求对象
*
* @author may
*/

View File

@@ -7,7 +7,7 @@ import java.io.Serializable;
/**
* 抄送
* 流程抄送请求对象。
*
* @author may
*/

View File

@@ -7,7 +7,7 @@ import java.io.Serializable;
import java.util.List;
/**
* 流程实例请求对象
* 流程实例查询条件对象
*
* @author may
*/

View File

@@ -8,7 +8,7 @@ import java.io.Serial;
import java.io.Serializable;
/**
* 作废请求对象
* 作废流程请求对象
*
* @author may
*/

View File

@@ -9,7 +9,7 @@ import java.util.Map;
import java.util.Objects;
/**
* 下一节点信息
* 查询下一节点信息的请求对象。
*
* @author may
*/
@@ -28,6 +28,11 @@ public class FlowNextNodeBo implements Serializable {
*/
private Map<String, Object> variables;
/**
* 获取流程变量并自动剔除空值。
*
* @return 流程变量
*/
public Map<String, Object> getVariables() {
if (variables == null) {
variables = new HashMap<>(16);

View File

@@ -6,7 +6,7 @@ import java.io.Serial;
import java.io.Serializable;
/**
* 按钮权限
* 按钮权限视图对象。
*
* @author may
* @date 2025-02-28
@@ -32,9 +32,18 @@ public class ButtonPermissionVo implements Serializable {
*/
private Boolean show;
/**
* 无参构造方法。
*/
public ButtonPermissionVo() {
}
/**
* 使用按钮编码和显示状态构造按钮权限对象。
*
* @param code 按钮编码
* @param show 是否显示
*/
public ButtonPermissionVo(String code, Boolean show) {
this.code = code;
this.show = show;

View File

@@ -8,7 +8,7 @@ import java.io.Serial;
import java.io.Serializable;
/**
* 抄送对象
* 流程抄送视图对象
*
* @author AprilWind
*/
@@ -29,6 +29,11 @@ public class FlowCopyVo implements Serializable {
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "userId")
private String nickName;
/**
* 使用用户 ID 构造抄送对象。
*
* @param userId 用户ID
*/
public FlowCopyVo(Long userId) {
this.userId = userId;
}

View File

@@ -8,13 +8,16 @@ import org.dromara.workflow.common.constant.FlowConstant;
import java.util.Date;
/**
* 流程实例视图
* 流程实例视图对象。
*
* @author may
*/
@Data
public class FlowInstanceVo {
/**
* 流程实例ID。
*/
private Long id;
/**

View File

@@ -14,7 +14,7 @@ import java.util.List;
import java.util.Map;
/**
* 任务视图
* 流程任务视图对象。
*
* @author may
*/
@@ -24,6 +24,9 @@ public class FlowTaskVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 任务ID。
*/
private Long id;
/**
@@ -207,6 +210,11 @@ public class FlowTaskVo implements Serializable {
private String businessTitle;
//业务扩展信息结束
/**
* 获取友好格式的创建时间。
*
* @return 格式化后的创建时间
*/
public String getCreateTime() {
return DateUtils.formatFriendlyTime(createTime);
}

View File

@@ -34,6 +34,8 @@ public class WorkflowPermissionHandler implements PermissionHandler {
* 办理人权限标识,比如用户,角色,部门等,用于校验是否有权限办理任务
* 后续在{@link FlowParams#getPermissionFlag} 中获取
* 返回当前用户权限集合
*
* @return 当前用户权限集合
*/
@Override
public List<String> permissions() {
@@ -51,7 +53,10 @@ public class WorkflowPermissionHandler implements PermissionHandler {
}
/**
* 转换办理人比如设计器中预设了能办理的人如果其中包含角色或者部门id等可以通过此接口进行转换成用户id
* 将预设办理人转换为实际用户 ID 列表。
*
* @param permissions 预设权限标识列表
* @return 用户 ID 列表
*/
@Override
public List<String> convertPermissions(List<String> permissions) {

View File

@@ -37,7 +37,7 @@ import java.util.Map;
import java.util.Set;
/**
* 全局任务办理监听
* 工作流全局监听器,处理任务流转中的扩展变量、消息和事件发布。
*
* @author may
*/
@@ -55,7 +55,7 @@ public class WorkflowGlobalListener implements GlobalListener {
private final UserService userService;
/**
* 创建监听器,任务创建时执行
* 任务创建回调,当前预留扩展。
*
* @param listenerVariable 监听器变量
*/
@@ -65,7 +65,7 @@ public class WorkflowGlobalListener implements GlobalListener {
}
/**
* 开始监听器,任务开始办理时执行
* 任务开始办理时解析节点扩展配置。
*
* @param listenerVariable 监听器变量
*/
@@ -98,7 +98,7 @@ public class WorkflowGlobalListener implements GlobalListener {
}
/**
* 分派监听器,动态修改代办任务信息
* 任务分派时动态调整办理权限。
*
* @param listenerVariable 监听器变量
*/
@@ -166,7 +166,7 @@ public class WorkflowGlobalListener implements GlobalListener {
}
/**
* 完成监听器,当前任务完成后执行
* 任务完成后发布流程事件并处理抄送和通知。
*
* @param listenerVariable 监听器变量
*/

View File

@@ -25,7 +25,10 @@ public class SpelRuleComponent {
private final DeptService deptService;
/**
* 通过发起人部门id获取部门负责人
* 通过发起人部门 ID 获取部门负责人
*
* @param initiatorDeptId 发起人部门 ID
* @return 部门负责人用户 ID
*/
public Long selectDeptLeaderById(Long initiatorDeptId) {
Long leaderId = deptService.selectDeptLeaderById(initiatorDeptId);

View File

@@ -39,7 +39,7 @@ public interface IFlwDefinitionService {
* 发布流程定义
*
* @param id 流程定义id
* @return 结果
* @return 是否发布成功
*/
boolean publish(Long id);
@@ -57,7 +57,7 @@ public interface IFlwDefinitionService {
*
* @param file 文件
* @param category 分类
* @return 结果
* @return 是否导入成功
*/
boolean importJson(MultipartFile file, String category);
@@ -65,7 +65,7 @@ public interface IFlwDefinitionService {
* 删除流程定义
*
* @param ids 流程定义id
* @return 结果
* @return 是否删除成功
*/
boolean removeDef(List<Long> ids);

View File

@@ -38,7 +38,7 @@ public interface IFlwInstanceService {
TableDataInfo<FlowInstanceVo> selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery);
/**
* 根据业务id查询流程实例详信息
* 根据业务 id 查询流程实例详情,返回业务侧展示所需信息
*
* @param businessId 业务id
* @return 结果
@@ -46,7 +46,7 @@ public interface IFlwInstanceService {
FlowInstanceVo queryByBusinessId(Long businessId);
/**
* 按业务id查询流程实例
* 按业务 id 查询底层流程实例实体。
*
* @param businessId 业务id
* @return 结果
@@ -54,7 +54,7 @@ public interface IFlwInstanceService {
FlowInstance selectInstByBusinessId(String businessId);
/**
* 按实例id查询流程实例
* 按实例 id 查询单个流程实例实体。
*
* @param instanceId 实例id
* @return 结果
@@ -62,7 +62,7 @@ public interface IFlwInstanceService {
FlowInstance selectInstById(Long instanceId);
/**
* 按实例id查询流程实例
* 按实例 id 集合批量查询流程实例
*
* @param instanceIds 实例id
* @return 结果
@@ -111,7 +111,7 @@ public interface IFlwInstanceService {
TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery);
/**
* 获取流程图,流程记录
* 获取流程图及历史办理记录,供前端展示流转轨迹。
*
* @param businessId 业务id
* @return 结果
@@ -127,7 +127,7 @@ public interface IFlwInstanceService {
void updateStatus(Long instanceId, String status);
/**
* 获取流程变量
* 获取指定实例当前持有的流程变量
*
* @param instanceId 实例id
* @return 结果
@@ -135,7 +135,7 @@ public interface IFlwInstanceService {
Map<String, Object> instanceVariable(Long instanceId);
/**
* 更新流程变量
* 更新流程变量,支持在运行中修正流程上下文数据。
*
* @param bo 参数
* @return 结果
@@ -143,7 +143,7 @@ public interface IFlwInstanceService {
boolean updateVariable(FlowVariableBo bo);
/**
* 设置流程变量
* 为指定流程实例设置变量集合。
*
* @param instanceId 实例id
* @param variable 流程变量
@@ -151,7 +151,7 @@ public interface IFlwInstanceService {
void setVariable(Long instanceId, Map<String, Object> variable);
/**
* 按任务id查询实例
* 按任务 id 反查所属流程实例
*
* @param taskId 任务id
* @return 结果

View File

@@ -12,7 +12,7 @@ import java.util.List;
import java.util.Map;
/**
* 流程spel表达式定义Service接口
* 流程 SpEL 表达式定义服务接口,负责表达式规则管理与动态指派解析。
*
* @author Michelle.Chung
* @date 2025-07-04
@@ -20,7 +20,7 @@ import java.util.Map;
public interface IFlwSpelService {
/**
* 查询流程spel表达式定义
* 根据主键查询流程 SpEL 表达式定义
*
* @param id 主键
* @return 流程spel表达式定义
@@ -37,7 +37,7 @@ public interface IFlwSpelService {
TableDataInfo<FlowSpelVo> queryPageList(FlowSpelBo bo, PageQuery pageQuery);
/**
* 查询符合条件的流程spel表达式定义列表
* 查询符合条件的流程 SpEL 表达式定义列表
*
* @param bo 查询条件
* @return 流程spel表达式定义列表
@@ -45,7 +45,7 @@ public interface IFlwSpelService {
List<FlowSpelVo> queryList(FlowSpelBo bo);
/**
* 新增流程spel表达式定义
* 新增流程 SpEL 表达式定义
*
* @param bo 流程spel表达式定义
* @return 是否新增成功
@@ -53,7 +53,7 @@ public interface IFlwSpelService {
Boolean insertByBo(FlowSpelBo bo);
/**
* 修改流程spel表达式定义
* 修改流程 SpEL 表达式定义
*
* @param bo 流程spel表达式定义
* @return 是否修改成功
@@ -70,7 +70,7 @@ public interface IFlwSpelService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 查询spel并返回任务指派的列表支持分页
* 按任务指派条件解析 SpEL并返回可用办理人列表。
*
* @param taskQuery 查询条件
* @return 办理人

View File

@@ -51,7 +51,7 @@ public interface IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 结果
* @return 当前用户待办任务分页结果
*/
TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery);
@@ -60,7 +60,7 @@ public interface IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 结果
* @return 当前用户已办任务分页结果
*/
TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery);
@@ -69,7 +69,7 @@ public interface IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 结果
* @return 当前租户待办任务分页结果
*/
TableDataInfo<FlowTaskVo> pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery);
@@ -78,7 +78,7 @@ public interface IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 结果
* @return 当前租户已办任务分页结果
*/
TableDataInfo<FlowHisTaskVo> pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery);
@@ -87,7 +87,7 @@ public interface IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 结果
* @return 当前用户抄送分页结果
*/
TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery);
@@ -129,7 +129,7 @@ public interface IFlwTaskService {
* 按照任务id查询任务
*
* @param taskIdList 任务id
* @return 结果
* @return 任务列表
*/
List<FlowTask> selectByIdList(List<Long> taskIdList);
@@ -137,7 +137,7 @@ public interface IFlwTaskService {
* 按照任务id查询任务
*
* @param taskId 任务id
* @return 结果
* @return 任务详情
*/
FlowTaskVo selectById(Long taskId);
@@ -145,7 +145,7 @@ public interface IFlwTaskService {
* 获取下一节点信息
*
* @param bo 参数
* @return 结果
* @return 下一节点列表
*/
List<FlowNode> getNextNodeList(FlowNextNodeBo bo);
@@ -153,7 +153,7 @@ public interface IFlwTaskService {
* 按照任务id查询任务
*
* @param taskId 任务id
* @return 结果
* @return 历史任务详情
*/
FlowHisTask selectHisTaskById(Long taskId);
@@ -161,7 +161,7 @@ public interface IFlwTaskService {
* 按照实例id查询任务
*
* @param instanceId 流程实例id
* @return 结果
* @return 任务列表
*/
List<FlowTask> selectByInstId(Long instanceId);
@@ -169,7 +169,7 @@ public interface IFlwTaskService {
* 按照实例id查询任务
*
* @param instanceIds 列表
* @return 结果
* @return 任务列表
*/
List<FlowTask> selectByInstIds(List<Long> instanceIds);
@@ -194,7 +194,7 @@ public interface IFlwTaskService {
* 获取当前任务的所有办理人
*
* @param taskIds 任务id
* @return 结果
* @return 办理人列表
*/
List<UserDTO> currentTaskAllUser(List<Long> taskIds);
@@ -211,7 +211,7 @@ public interface IFlwTaskService {
* 催办任务
*
* @param bo 参数
* @return 结果
* @return 是否催办成功
*/
boolean urgeTask(FlowUrgeTaskBo bo);
}

View File

@@ -8,7 +8,7 @@ import org.dromara.workflow.domain.vo.TestLeaveVo;
import java.util.List;
/**
* 请假Service接口
* 请假示例服务接口,定义请假单查询、维护与流程发起能力。
*
* @author may
* @date 2023-07-21
@@ -16,37 +16,59 @@ import java.util.List;
public interface ITestLeaveService {
/**
* 查询请假
* 根据主键查询请假单。
*
* @param id 主键
* @return 请假详情
*/
TestLeaveVo queryById(Long id);
/**
* 查询请假列表
* 分页查询请假列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 请假分页数据
*/
TableDataInfo<TestLeaveVo> queryPageList(TestLeaveBo bo, PageQuery pageQuery);
/**
* 查询请假列表
* 查询符合条件的请假列表
*
* @param bo 查询条件
* @return 请假列表
*/
List<TestLeaveVo> queryList(TestLeaveBo bo);
/**
* 新增请假
* 新增请假单。
*
* @param bo 请假信息
* @return 新增结果
*/
TestLeaveVo insertByBo(TestLeaveBo bo);
/**
* 提交请假并发起流程
* 提交请假并发起审批流程
*
* @param bo 请假信息
* @return 提交结果
*/
TestLeaveVo submitAndFlowStart(TestLeaveBo bo);
/**
* 修改请假
* 修改请假单。
*
* @param bo 请假信息
* @return 修改结果
*/
TestLeaveVo updateByBo(TestLeaveBo bo);
/**
* 校验并批量删除请假信息
* 校验并批量删除请假信息
*
* @param ids 主键集合
* @return 删除结果
*/
Boolean deleteWithValidByIds(List<Long> ids);
}

View File

@@ -24,6 +24,13 @@ public class CategoryNameTranslationImpl implements TranslationInterface<String>
private final IFlwCategoryService flwCategoryService;
/**
* 将流程分类 ID 翻译为分类名称。
*
* @param key 分类 ID
* @param other 额外参数
* @return 分类名称
*/
@Override
public String translation(Object key, String other) {
return flwCategoryService.selectCategoryNameById(Convert.toLong(key));

View File

@@ -161,6 +161,12 @@ public class FlwCategoryServiceImpl implements IFlwCategoryService, CategoryServ
.eq(FlowCategory::getParentId, categoryId));
}
/**
* 构建流程分类查询条件。
*
* @param bo 查询条件
* @return 查询条件包装器
*/
private LambdaQueryWrapper<FlowCategory> buildQueryWrapper(FlowCategoryBo bo) {
LambdaQueryWrapper<FlowCategory> lqw = Wrappers.lambdaQuery();
lqw.eq(FlowCategory::getDelFlag, SystemConstants.NORMAL);

View File

@@ -260,7 +260,7 @@ public class FlwChartExtServiceImpl implements ChartExtService {
* 根据流程实例ID获取历史任务列表
*
* @param instanceId 流程实例ID
* @return 历史任务列表
* @return 按更新时间倒序排列的审批历史任务列表
*/
public List<FlowHisTask> getHisTaskGroupedByNode(Long instanceId) {
LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();

View File

@@ -93,6 +93,12 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
return new TableDataInfo<>(list, page.getTotal());
}
/**
* 构造流程定义分页查询条件。
*
* @param flowDefinition 页面传入的流程定义筛选条件
* @return 叠加流程编码、名称、分类以及排序条件后的查询包装器
*/
private LambdaQueryWrapper<FlowDefinition> buildQueryWrapper(FlowDefinition flowDefinition) {
LambdaQueryWrapper<FlowDefinition> wrapper = Wrappers.lambdaQuery();
wrapper.like(StringUtils.isNotBlank(flowDefinition.getFlowCode()), FlowDefinition::getFlowCode, flowDefinition.getFlowCode());
@@ -109,6 +115,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
* 发布流程定义
*
* @param id 流程定义id
* @return 发布成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -132,7 +139,9 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
/**
* 导入流程定义
*
* @param file 文件
* @param file 流程定义 Json 文件
* @param category 导入后绑定的流程分类
* @return 导入成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -152,7 +161,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
* 导出流程定义
*
* @param id 流程定义id
* @param response 响应
* @param response HTTP 响应对象,用于输出定义 Json 内容
* @throws IOException 异常
*/
@Override
@@ -171,6 +180,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
* 删除流程定义
*
* @param ids 流程定义id
* @return 删除成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)

View File

@@ -80,6 +80,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
*
* @param flowInstanceBo 流程实例
* @param pageQuery 分页
* @return 当前符合条件的运行中流程实例分页结果
*/
@Override
public TableDataInfo<FlowInstanceVo> selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
@@ -94,6 +95,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
*
* @param flowInstanceBo 流程实例
* @param pageQuery 分页
* @return 当前符合条件的已结束流程实例分页结果
*/
@Override
public TableDataInfo<FlowInstanceVo> selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
@@ -179,6 +181,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 根据业务id查询流程实例
*
* @param businessId 业务id
* @return 对应的流程实例,不存在时返回 {@code null}
*/
@Override
public FlowInstance selectInstByBusinessId(String businessId) {
@@ -189,6 +192,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 按照实例id查询流程实例
*
* @param instanceId 实例id
* @return 实例详情,不存在时返回 {@code null}
*/
@Override
public FlowInstance selectInstById(Long instanceId) {
@@ -199,6 +203,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 按照实例id查询流程实例
*
* @param instanceIds 实例id
* @return 实例列表
*/
@Override
public List<FlowInstance> selectInstListByIdList(List<Long> instanceIds) {
@@ -209,6 +214,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 按照业务id删除流程实例
*
* @param businessIds 业务id
* @return 删除成功返回 {@code true},未找到实例时返回 {@code false}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -225,6 +231,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 按照实例id删除流程实例
*
* @param instanceIds 实例id
* @return 删除成功返回 {@code true},未找到实例时返回 {@code false}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -259,6 +266,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 按照实例id删除已完成的流程实例
*
* @param instanceIds 实例id
* @return 删除成功返回 {@code true},未找到实例时返回 {@code false}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -298,6 +306,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 撤销流程
*
* @param bo 参数
* @return 撤销成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -328,6 +337,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
*
* @param instanceBo 流程实例
* @param pageQuery 分页
* @return 当前登录人发起的流程实例分页结果
*/
@Override
public TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery) {
@@ -341,6 +351,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 获取流程图,流程记录
*
* @param businessId 业务id
* @return 包含流程记录列表和实例 id 的结果集
*/
@Override
public Map<String, Object> flowHisTaskList(String businessId) {
@@ -410,6 +421,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 获取流程变量
*
* @param instanceId 实例id
* @return 变量明细列表及原始变量字符串
*/
@Override
public Map<String, Object> instanceVariable(Long instanceId) {
@@ -428,6 +440,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 设置流程变量
*
* @param bo 参数
* @return 更新成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -465,6 +478,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 按任务id查询实例
*
* @param taskId 任务id
* @return 任务关联的流程实例,运行中任务不存在时回退查询历史任务
*/
@Override
public FlowInstance selectByTaskId(Long taskId) {
@@ -484,6 +498,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
* 作废流程
*
* @param bo 参数
* @return 作废成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)

View File

@@ -275,6 +275,9 @@ public class FlwNodeExtServiceImpl implements NodeExtService, IFlwNodeExtService
/**
* 按逗号分割字符串,但保留 #{...} 表达式和字符串常量中的逗号
*
* @param str 原始配置字符串
* @return 智能分割后的片段列表
*/
private static List<String> spelSmartSplit(String str) {
List<String> result = new ArrayList<>();
@@ -347,6 +350,14 @@ public class FlwNodeExtServiceImpl implements NodeExtService, IFlwNodeExtService
return result;
}
/**
* 判断指定位置的下一个字符是否匹配预期字符。
*
* @param str 原始字符串
* @param index 当前索引
* @param expected 期望匹配的字符
* @return 匹配成功返回 {@code true}
*/
private static boolean checkNext(String str, int index, char expected) {
return index + 1 < str.length() && str.charAt(index + 1) == expected;
}

View File

@@ -80,6 +80,12 @@ public class FlwSpelServiceImpl implements IFlwSpelService {
return baseMapper.selectVoList(lqw);
}
/**
* 组装 SpEL 表达式列表查询条件。
*
* @param bo 页面筛选参数
* @return 包含排序和筛选条件的查询包装器
*/
private LambdaQueryWrapper<FlowSpel> buildQueryWrapper(FlowSpelBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<FlowSpel> lqw = Wrappers.lambdaQuery();
@@ -125,6 +131,8 @@ public class FlwSpelServiceImpl implements IFlwSpelService {
/**
* 保存前的数据校验
*
* @param entity 待保存的 SpEL 表达式实体
*/
private void validEntityBeforeSave(FlowSpel entity){
if (StringUtils.isNotBlank(entity.getViewSpel())) {

View File

@@ -119,7 +119,11 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand
}
/**
* 根据任务办理类型查询对应的数据
* 根据办理类型查询右侧候选数据
*
* @param type 办理人类型
* @param taskQuery 查询条件
* @return 办理人数据
*/
private TaskAssigneeDTO fetchTaskAssigneeData(TaskAssigneeEnum type, TaskAssigneeBody taskQuery) {
return switch (type) {
@@ -132,7 +136,10 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand
}
/**
* 根据任务办理类型获取部门数据
* 根据办理类型获取部门数据源。
*
* @param type 办理人类型
* @return 部门列表
*/
private List<DeptDTO> fetchDeptData(TaskAssigneeEnum type) {
if (type.needsDeptService()) {
@@ -159,7 +166,10 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand
}
/**
* 构建部门树状结构
* 构建设计器左侧部门树。
*
* @param depts 部门列表
* @return 部门树构建器
*/
private TreeFunDto<DeptDTO> buildDeptTree(List<DeptDTO> depts) {
return new TreeFunDto<>(depts)
@@ -169,7 +179,11 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand
}
/**
* 构建任务办理人数据
* 构建设计器右侧办理人列表数据
*
* @param dto 办理人数据
* @param type 办理人类型
* @return 办理人列表构建器
*/
private HandlerFunDto<TaskAssigneeDTO.TaskHandler> buildHandlerData(TaskAssigneeDTO dto, TaskAssigneeEnum type) {
return new HandlerFunDto<>(dto.getList(), dto.getTotal())

View File

@@ -97,6 +97,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 启动任务
*
* @param startProcessBo 启动流程参数
* @return 启动后的流程实例标识与首个任务标识
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -171,6 +172,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
/**
* 生成业务编号,如果已有则直接返回已有值
*
* @param bizExt 流程业务扩展信息
* @return 可用于流程实例展示的业务编号
*/
private String generateBusinessCode(FlowInstanceBizExt bizExt) {
if (StringUtils.isBlank(bizExt.getBusinessCode())) {
@@ -198,6 +202,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 办理任务
*
* @param completeTaskBo 办理任务参数
* @return 办理成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -294,6 +299,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param assigneeMap 处理人
* @param variablesMap 变量
* @return 追加流程状态前缀后的处理人变量映射
*/
private Map<String, Object> setPopAssigneeMap(Map<String, Object> assigneeMap, Map<String, Object> variablesMap) {
Map<String, Object> map = new HashMap<>();
@@ -367,6 +373,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 当前登录人的待办任务分页结果
*/
@Override
public TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -380,6 +387,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 当前登录人的已办任务分页结果
*/
@Override
public TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -392,6 +400,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 全部待办任务分页结果
*/
@Override
public TableDataInfo<FlowTaskVo> pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -423,6 +432,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 全部已办任务分页结果
*/
@Override
public TableDataInfo<FlowHisTaskVo> pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -435,6 +445,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param flowTaskBo 参数
* @param pageQuery 分页
* @return 当前登录人收到的抄送分页结果
*/
@Override
public TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
@@ -442,6 +453,12 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
return TableDataInfo.build(page);
}
/**
* 解析查询条件中的分类及其子分类编码集合。
*
* @param flowTaskBo 任务筛选条件
* @return 分类 id 字符串集合,未指定分类时返回 {@code null}
*/
private List<String> categoryIds(FlowTaskBo flowTaskBo) {
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
@@ -454,6 +471,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 驳回任务
*
* @param bo 参数
* @return 驳回成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -497,6 +515,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param taskId 任务id
* @param nowNodeCode 当前节点
* @return 当前任务允许驳回的节点列表
*/
@Override
public List<Node> getBackTaskNode(Long taskId, String nowNodeCode) {
@@ -544,6 +563,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 终止任务
*
* @param bo 参数
* @return 终止成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)
@@ -569,6 +589,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 按照任务id查询任务
*
* @param taskIdList 任务id
* @return 任务列表
*/
@Override
public List<FlowTask> selectByIdList(List<Long> taskIdList) {
@@ -579,6 +600,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 按照任务id查询任务
*
* @param taskId 任务id
* @return 任务详情视图,不存在时返回 {@code null}
*/
@Override
public FlowTaskVo selectById(Long taskId) {
@@ -631,6 +653,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 获取下一节点信息
*
* @param bo 参数
* @return 当前任务在给定变量下可流转到的下一审批节点列表
*/
@Override
public List<FlowNode> getNextNodeList(FlowNextNodeBo bo) {
@@ -691,6 +714,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 按照实例id查询任务
*
* @param instanceId 流程实例id
* @return 运行中的任务列表
*/
@Override
public List<FlowTask> selectByInstId(Long instanceId) {
@@ -701,6 +725,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* 按照实例id查询任务
*
* @param instanceIds 流程实例id
* @return 运行中的任务列表
*/
@Override
public List<FlowTask> selectByInstIds(List<Long> instanceIds) {
@@ -724,6 +749,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*
* @param bo 参数
* @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature
* @return 操作成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)

View File

@@ -67,6 +67,9 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
/**
* 查询请假
*
* @param id 主键
* @return 请假详情
*/
@Override
public TestLeaveVo queryById(Long id) {
@@ -75,6 +78,10 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
/**
* 查询请假列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 请假分页列表
*/
@Override
public TableDataInfo<TestLeaveVo> queryPageList(TestLeaveBo bo, PageQuery pageQuery) {
@@ -85,6 +92,9 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
/**
* 查询请假列表
*
* @param bo 查询条件
* @return 请假列表
*/
@Override
public List<TestLeaveVo> queryList(TestLeaveBo bo) {
@@ -92,6 +102,12 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
return baseMapper.selectVoList(lqw);
}
/**
* 构造请假列表查询条件。
*
* @param bo 查询参数
* @return 包含请假类型、天数区间和排序条件的查询包装器
*/
private LambdaQueryWrapper<TestLeave> buildQueryWrapper(TestLeaveBo bo) {
LambdaQueryWrapper<TestLeave> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getLeaveType()), TestLeave::getLeaveType, bo.getLeaveType());
@@ -103,6 +119,9 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
/**
* 新增请假
*
* @param bo 请假业务对象
* @return 新增后的请假详情
*/
@Override
public TestLeaveVo insertByBo(TestLeaveBo bo) {
@@ -121,6 +140,12 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
return MapstructUtils.convert(add, TestLeaveVo.class);
}
/**
* 提交请假并同步发起审批流程。
*
* @param bo 请假业务对象
* @return 已落库并完成流程提交的请假详情
*/
@Transactional(rollbackFor = Exception.class)
@Override
public TestLeaveVo submitAndFlowStart(TestLeaveBo bo) {
@@ -154,6 +179,9 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
/**
* 修改请假
*
* @param bo 请假业务对象
* @return 更新后的请假详情
*/
@Override
public TestLeaveVo updateByBo(TestLeaveBo bo) {
@@ -164,6 +192,9 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
/**
* 批量删除请假
*
* @param ids 主键集合
* @return 删除成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)

View File

@@ -53,6 +53,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* 获取当前流程状态
*
* @param taskId 任务id
* @return 任务关联流程实例的业务状态,未查询到时返回空字符串
*/
@Override
public String getBusinessStatusByTaskId(Long taskId) {
@@ -64,6 +65,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* 获取当前流程状态
*
* @param businessId 业务id
* @return 业务单据对应的流程状态,未查询到时返回空字符串
*/
@Override
public String getBusinessStatus(String businessId) {
@@ -86,6 +88,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* 获取流程变量
*
* @param instanceId 流程实例id
* @return 实例变量信息
*/
@Override
public Map<String, Object> instanceVariable(Long instanceId) {
@@ -108,6 +111,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* 启动流程
*
* @param startProcess 参数
* @return 启动后的流程实例和首个任务信息
*/
@Override
public StartProcessReturnDTO startWorkFlow(StartProcessDTO startProcess) {
@@ -120,6 +124,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* completeTask.getVariables().put("ignore", true);
*
* @param completeTask 参数
* @return 办理成功返回 {@code true}
*/
@Override
public boolean completeTask(CompleteTaskDTO completeTask) {
@@ -131,6 +136,7 @@ public class WorkflowServiceImpl implements WorkflowService {
*
* @param taskId 任务ID
* @param message 办理意见
* @return 办理成功返回 {@code true}
*/
@Override
public boolean completeTask(Long taskId, String message) {
@@ -146,6 +152,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* 启动流程并办理第一个任务
*
* @param startProcess 参数
* @return 首节点办理成功返回 {@code true}
*/
@Override
@Transactional(rollbackFor = Exception.class)