chore(project): rebranded project as 恭学教育 (GongXue Education)
Some checks failed
Deploy to Runner / deploy (push) Failing after 6m7s

- Updated pom.xml project name, description, and URL to 恭学教育.
- Changed LICENSE copyright holder to 恭学教育 (GongXue Education).
- Rebranded README.md with new project title and tagline.
- Replaced @author 芋道源码 with @author 恭学教育 across all Java source files.
- Updated Swagger metadata with 恭学教育 API title and admin@gongxue.com.
- Added Gitea Actions CI pipeline for automated build and deployment.
This commit is contained in:
2026-07-27 15:12:32 +08:00
parent fd54f07889
commit 7426579863
2342 changed files with 2839 additions and 2710 deletions

View File

@@ -7,7 +7,7 @@ import org.springframework.context.ApplicationEvent;
/**
* 流程实例的状态(结果)发生变化的 Event
*
* @author 芋道源码
* @author 恭学教育
*/
@SuppressWarnings("ALL")
@Data

View File

@@ -6,7 +6,7 @@ import org.springframework.context.ApplicationListener;
/**
* {@link BpmProcessInstanceStatusEvent} 的监听器
*
* @author 芋道源码
* @author 恭学教育
*/
public abstract class BpmProcessInstanceStatusEventListener
implements ApplicationListener<BpmProcessInstanceStatusEvent> {

View File

@@ -6,7 +6,7 @@ import jakarta.validation.Valid;
/**
* 流程实例 Api 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmProcessInstanceApi {

View File

@@ -10,7 +10,7 @@ import org.springframework.validation.annotation.Validated;
/**
* Flowable 流程实例 Api 实现类
*
* @author 芋道源码
* @author 恭学教育
* @author jason
*/
@Service

View File

@@ -9,7 +9,7 @@ import java.util.Map;
/**
* 流程实例的创建 Request DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class BpmProcessInstanceCreateReqDTO {

View File

@@ -9,7 +9,7 @@ public class UserSimpleBaseVO {
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
private String nickname;
@Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png")
private String avatar;

View File

@@ -65,7 +65,7 @@ public class BpmModelController {
@GetMapping("/list")
@Operation(summary = "获得模型分页")
@Parameter(name = "name", description = "模型名称", example = "芋艿")
@Parameter(name = "name", description = "模型名称", example = "管理员")
public CommonResult<List<BpmModelRespVO>> getModelList(@RequestParam(value = "name", required = false) String name) {
List<Model> list = modelService.getModelList(name);
if (CollUtil.isEmpty(list)) {
@@ -137,7 +137,7 @@ public class BpmModelController {
@Parameters({
@Parameter(name = "file", description = "流程模型 JSON 文件", required = true),
@Parameter(name = "key", description = "流程标识,替换导入文件中的标识", example = "process_yudao"),
@Parameter(name = "name", description = "流程名称,替换导入文件中的名称", example = "芋道")
@Parameter(name = "name", description = "流程名称,替换导入文件中的名称", example = "恭学")
})
@PreAuthorize("@ss.hasPermission('bpm:model:import')")
public CommonResult<String> importModel(@RequestParam("file") MultipartFile file,

View File

@@ -10,7 +10,7 @@ import lombok.ToString;
@Data
public class BpmFormPageReqVO extends PageParam {
@Schema(description = "表单名称", example = "芋道")
@Schema(description = "表单名称", example = "恭学")
private String name;
}

View File

@@ -14,7 +14,7 @@ public class BpmFormRespVO {
@Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
@NotNull(message = "表单名称不能为空")
private String name;

View File

@@ -12,7 +12,7 @@ public class BpmFormSaveReqVO {
@Schema(description = "表单编号", example = "1024")
private Long id;
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
@NotNull(message = "表单名称不能为空")
private String name;

View File

@@ -17,7 +17,7 @@ public class BpmUserGroupPageReqVO extends PageParam {
@Schema(description = "编号", example = "1024")
private Long id;
@Schema(description = "组名", example = "芋道")
@Schema(description = "组名", example = "恭学")
private String name;
@Schema(description = "状态", example = "1")

View File

@@ -13,10 +13,10 @@ public class BpmUserGroupRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
@Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学教育")
private String description;
@Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")

View File

@@ -12,11 +12,11 @@ public class BpmUserGroupSaveReqVO {
@Schema(description = "编号", example = "1024")
private Long id;
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
@NotNull(message = "组名不能为空")
private String name;
@Schema(description = "描述", example = "芋道源码")
@Schema(description = "描述", example = "恭学教育")
private String description;
@Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")

View File

@@ -23,7 +23,7 @@ import java.util.List;
* {@link cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO}
* 是一致的
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class BpmModelMetaInfoVO {

View File

@@ -20,7 +20,7 @@ public class BpmModelRespVO extends BpmModelMetaInfoVO {
@Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao")
private String key;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "流程图标", example = "https://www.iocoder.cn/yudao.jpg")

View File

@@ -17,7 +17,7 @@ public class BpmModelSaveReqVO extends BpmModelMetaInfoVO {
@NotEmpty(message = "流程标识不能为空")
private String key;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
@NotEmpty(message = "流程名称不能为空")
private String name;

View File

@@ -35,7 +35,7 @@ public class BpmSimpleModelNodeVO {
@Schema(description = "模型节点名称", example = "领导审批")
private String name;
@Schema(description = "节点展示内容", example = "指定成员: 芋道源码")
@Schema(description = "节点展示内容", example = "指定成员: 恭学教育")
private String showText;
@Schema(description = "子节点")

View File

@@ -17,7 +17,7 @@ public class BpmProcessDefinitionRespVO extends BpmModelMetaInfoVO {
@Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer version;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "youdao")

View File

@@ -24,7 +24,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
* OA 请假申请 Controller用于演示自己存储数据接入工作流的例子
*
* @author jason
* @author 芋道源码
* @author 恭学教育
*/
@Tag(name = "管理后台 - OA 请假申请")
@RestController

View File

@@ -29,7 +29,7 @@ public class BpmOALeaveCreateReqVO {
@Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer type;
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码")
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读恭学教育")
private String reason;
@Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}")

View File

@@ -21,7 +21,7 @@ public class BpmOALeavePageReqVO extends PageParam {
@Schema(description = "请假类型,参见 bpm_oa_type", example = "1")
private Integer type;
@Schema(description = "原因,模糊匹配", example = "阅读芋道源码")
@Schema(description = "原因,模糊匹配", example = "阅读恭学教育")
private String reason;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)

View File

@@ -15,7 +15,7 @@ public class BpmOALeaveRespVO {
@Schema(description = "请假类型,参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer type;
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码")
@Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读恭学教育")
private String reason;
@Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED)

View File

@@ -24,7 +24,7 @@ public class BpmApprovalDetailReqVO {
@Schema(description = "流程实例的编号", example = "1024")
private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID
// TODO @芋艿:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。
// TODO @管理员:如果未来 BPMN 增加流程图,它没有发起人节点,会有问题。
@Schema(description = "流程活动编号", example = "StartUserNode")
private String activityId; // 用于获取表单权限。1发起流程时传“发起人节点” activityId 可获取发起人的表单权限2从抄送列表界面进来时传抄送的 activityId 可获取抄送人的表单权限;

View File

@@ -13,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
@Data
public class BpmProcessInstanceCopyPageReqVO extends PageParam {
@Schema(description = "流程名称", example = "芋道")
@Schema(description = "流程名称", example = "恭学")
private String processInstanceName;
@Schema(description = "创建时间")

View File

@@ -15,7 +15,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
@Data
public class BpmProcessInstancePageReqVO extends PageParam {
@Schema(description = "流程名称", example = "芋道")
@Schema(description = "流程名称", example = "恭学")
private String name;
@Schema(description = "流程定义的标识", example = "2048")

View File

@@ -18,7 +18,7 @@ public class BpmProcessInstanceRespVO {
@Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id;
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "流程摘要")
@@ -71,7 +71,7 @@ public class BpmProcessInstanceRespVO {
@Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id;
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048")

View File

@@ -28,7 +28,7 @@ public class BpmProcessPrintDataRespVO {
@Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id;
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "签名 URL", example = "https://www.iocoder.cn/sign.png")

View File

@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
@Data
public class BpmTaskPageReqVO extends PageParam {
@Schema(description = "流程任务名", example = "芋道")
@Schema(description = "流程任务名", example = "恭学")
private String name;
@Schema(description = "流程分类", example = "1")

View File

@@ -17,7 +17,7 @@ public class BpmTaskRespVO {
@Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id;
@Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -101,7 +101,7 @@ public class BpmTaskRespVO {
@Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id;
@Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
@Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
private String name;
@Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED)

View File

@@ -50,7 +50,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* 流程实例 Convert
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmProcessInstanceConvert {

View File

@@ -35,7 +35,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAnd
/**
* Bpm 任务 Convert
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmTaskConvert {

View File

@@ -12,7 +12,7 @@ import lombok.NoArgsConstructor;
/**
* BPM 流程分类 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("bpm_category")
@KeySequence("bpm_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -17,7 +17,7 @@ import java.util.List;
* BPM 工作流的表单定义
* 用于工作流的申请表单,需要动态配置的场景
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "bpm_form", autoResultMap = true)
@KeySequence("bpm_form_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -25,7 +25,7 @@ import java.util.List;
* BPM 流程定义的拓信息
* 主要解决 Flowable {@link org.flowable.engine.repository.ProcessDefinition} 不支持拓展字段,所以新建该表
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "bpm_process_definition_info", autoResultMap = true)
@KeySequence("bpm_process_definition_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -9,7 +9,7 @@ import lombok.*;
/**
* BPM 流程表达式 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("bpm_process_expression")
@KeySequence("bpm_process_expression_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -15,7 +15,7 @@ import lombok.NoArgsConstructor;
*
* 目的:本质上它是流程监听器的模版,用于 BPMN 在设计时,直接选择这些模版
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "bpm_process_listener")
@KeySequence("bpm_process_listener_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -17,7 +17,7 @@ import java.util.Set;
/**
* BPM 用户组
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "bpm_user_group", autoResultMap = true)
@KeySequence("bpm_user_group_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -18,7 +18,7 @@ import java.time.LocalDateTime;
* {@link #day} 请假天数,目前先简单做。一般是分成请假上午和下午,可以是 1 整天,可以是 0.5 半天
*
* @author jason
* @author 芋道源码
* @author 恭学教育
*/
@TableName("bpm_oa_leave")
@KeySequence("bpm_oa_leave_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* BPM 流程分类 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmCategoryMapper extends BaseMapperX<BpmCategoryDO> {

View File

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* BPM 流程表达式 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmProcessExpressionMapper extends BaseMapperX<BpmProcessExpressionDO> {

View File

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* BPM 流程监听器 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmProcessListenerMapper extends BaseMapperX<BpmProcessListenerDO> {

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* 用户组 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmUserGroupMapper extends BaseMapperX<BpmUserGroupDO> {

View File

@@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Mapper;
* 请假申请 Mapper
*
* @author jason
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface BpmOALeaveMapper extends BaseMapperX<BpmOALeaveDO> {

View File

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.bpm.dal.redis;
/**
* BPM Redis Key 枚举类
*
* @author 芋道源码
* @author 恭学教育
*/
public interface RedisKeyConstants {

View File

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.bpm.enums;
/**
* BPM 字典类型的枚举类
*
* @author 芋道源码
* @author 恭学教育
*/
public interface DictTypeConstants {

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* BPM 模型的表单类型的枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* BPM 模型的类型的枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* BPM 流程监听器的类型
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* BPM 流程监听器的值类型
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* 用户任务的审批类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* BPM 用户任务的审批人为空时,处理类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* BPM 用户任务的审批人与发起人相同时,处理类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* Bpm 消息的枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@AllArgsConstructor
@Getter

View File

@@ -11,7 +11,7 @@ import java.util.Arrays;
/**
* 流程实例 ProcessInstance 的状态
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -7,7 +7,7 @@ import lombok.Getter;
/**
* 流程实例/任务的的处理原因枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -14,7 +14,7 @@ import org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFacto
* 自定义的 ActivityBehaviorFactory 实现类,目的如下:
* 1. 自定义 {@link #createUserTaskActivityBehavior(UserTask)}:实现自定义的流程任务的 assignee 负责人的分配
*
* @author 芋道源码
* @author 恭学教育
*/
@Setter
public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {

View File

@@ -23,7 +23,7 @@ import java.util.Set;
*
* 本质上,实现和 {@link BpmParallelMultiInstanceBehavior} 一样,只是继承的类不一样
*
* @author 芋道源码
* @author 恭学教育
*/
@Setter
public class BpmSequentialMultiInstanceBehavior extends SequentialMultiInstanceBehavior {

View File

@@ -26,7 +26,7 @@ import java.util.Set;
* 第一步,基于分配规则,计算出分配任务的【单个】候选人。如果找不到,则直接报业务异常,不继续执行后续的流程;
* 第二步,随机选择一个候选人,则选择作为 assignee 负责人。
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class BpmUserTaskActivityBehavior extends UserTaskActivityBehavior {

View File

@@ -30,7 +30,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.MODEL_DEPLOY_
/**
* {@link BpmTaskCandidateStrategy} 的调用者,用于调用对应的策略,实现任务的候选人的计算
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class BpmTaskCandidateInvoker {

View File

@@ -12,7 +12,7 @@ import java.util.Set;
* <p>
* 例如说:分配审批人
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmTaskCandidateStrategy {

View File

@@ -21,7 +21,7 @@ import static java.util.Collections.emptySet;
* 分配给发起人的 Leader 审批的 Expression 流程表达式
* 目前 Leader 的定义是,发起人所在部门的 Leader
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@Deprecated // 仅仅是表达式的示例,建议使用 BpmTaskCandidateStartUserDeptLeaderStrategy 替代

View File

@@ -13,7 +13,7 @@ import java.util.Set;
/**
* 分配给发起人审批的 Expression 流程表达式
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@Deprecated // 仅仅是表达式的示例,建议使用 BpmTaskCandidateStartUserStrategy 替代

View File

@@ -21,7 +21,7 @@ import java.util.Map;
/**
* 发起人自选 {@link BpmTaskCandidateUserStrategy} 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
public class BpmTaskCandidateStartUserSelectStrategy extends AbstractBpmTaskCandidateDeptLeaderStrategy {

View File

@@ -19,7 +19,7 @@ import java.util.Set;
/**
* 流程表达式 {@link BpmTaskCandidateStrategy} 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@Slf4j

View File

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
* @deprecated 已无调用方
* @author jason
*/
@Deprecated // TODO @芋艿:兼容老版本,预计 27 年删除;
@Deprecated // TODO @管理员:兼容老版本,预计 27 年删除;
@Component
public class VariableConvertByTypeExpressionFunction extends AbstractFlowableVariableExpressionFunction {

View File

@@ -12,7 +12,7 @@ import java.util.Arrays;
*
* 例如说:分配给指定人审批
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelTypeEnum;
/**
* BPMN XML 常量信息
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmnModelConstants {

View File

@@ -5,7 +5,7 @@ import org.flowable.engine.runtime.ProcessInstance;
/**
* BPM Variable 通用常量
*
* @author 芋道源码
* @author 恭学教育
*/
public class BpmnVariableConstants {

View File

@@ -10,7 +10,7 @@ import jakarta.validation.Valid;
/**
* {@link BpmProcessInstanceStatusEvent} 的生产者
*
* @author 芋道源码
* @author 恭学教育
*/
@AllArgsConstructor
@Validated

View File

@@ -7,7 +7,7 @@ import org.flowable.engine.delegate.JavaDelegate;
/**
* 类型为 class 的 ExecutionListener 监听器示例
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class DemoDelegateClassExecutionListener implements JavaDelegate {

View File

@@ -7,7 +7,7 @@ import org.flowable.task.service.delegate.DelegateTask;
/**
* 类型为 class 的 TaskListener 监听器示例
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class DemoDelegateClassTaskListener implements TaskListener {

View File

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
/**
* 类型为 delegateExpression 的 TaskListener 监听器示例
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@Slf4j

View File

@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
/**
* 类型为 expression 的 TaskListener 监听器示例
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
@Component

View File

@@ -31,7 +31,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_INSTA
/**
* 工作流发起 HTTP 请求工具类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class BpmHttpRequestUtils {

View File

@@ -38,7 +38,7 @@ import static org.flowable.bpmn.constants.BpmnXMLConstants.FLOWABLE_EXTENSIONS_P
* 3. BPMN 复杂遍历相关的方法
* 4. BPMN 流程预测相关的方法
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class BpmnModelUtils {
@@ -123,7 +123,7 @@ public class BpmnModelUtils {
public static Integer parseCandidateStrategy(FlowElement userTask) {
Integer candidateStrategy = NumberUtils.parseInt(userTask.getAttributeValue(
BpmnModelConstants.NAMESPACE, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY));
// TODO @芋艿 尝试从 ExtensionElement 取. 后续相关扩展是否都可以 存 extensionElement。 如表单权限。 按钮权限
// TODO @管理员 尝试从 ExtensionElement 取. 后续相关扩展是否都可以 存 extensionElement。 如表单权限。 按钮权限
if (candidateStrategy == null) {
ExtensionElement element = CollUtil.getFirst(userTask.getExtensionElements().get(BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY));
candidateStrategy = element != null ? NumberUtils.parseInt(element.getElementText()) : null;

View File

@@ -40,7 +40,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* Flowable 相关的工具方法
*
* @author 芋道源码
* @author 恭学教育
*/
public class FlowableUtils {

View File

@@ -208,7 +208,7 @@ public class SimpleModelUtils {
BpmSimpleModelNodeTypeEnum nodeType = BpmSimpleModelNodeTypeEnum.valueOf(node.getType());
BpmSimpleModelNodeVO childNode = node.getChildNode();
List<BpmSimpleModelNodeVO> conditionNodes = node.getConditionNodes();
// TODO @芋艿 路由分支没有conditionNodes 这里注释会影响吗?@jason一起帮忙瞅瞅
// TODO @管理员 路由分支没有conditionNodes 这里注释会影响吗?@jason一起帮忙瞅瞅
// Assert.notEmpty(conditionNodes, "分支节点的条件节点不能为空");
// 分支终点节点 ID
String branchEndNodeId = null;
@@ -277,8 +277,8 @@ public class SimpleModelUtils {
String conditionExpression) {
Assert.notEmpty(sourceId, "sourceId 不能为空");
Assert.notEmpty(targetId, "targetId 不能为空");
// TODO @jason如果 sequenceFlowId 不存在的时候,是不是要生成一个默认的 sequenceFlowId @芋艿 貌似不需要,Flowable 会默认生成TODO @jason建议还是搞一个主要是后续好排查问题。
// TODO @jason如果 name 不存在的时候,是不是要生成一个默认的 name @芋艿 不需要生成默认的吧? 这个会在流程图展示的, 一般用户填写的。不好生成默认的吧TODO @jason建议还是搞一个主要是后续好排查问题。
// TODO @jason如果 sequenceFlowId 不存在的时候,是不是要生成一个默认的 sequenceFlowId @管理员 貌似不需要,Flowable 会默认生成TODO @jason建议还是搞一个主要是后续好排查问题。
// TODO @jason如果 name 不存在的时候,是不是要生成一个默认的 name @管理员 不需要生成默认的吧? 这个会在流程图展示的, 一般用户填写的。不好生成默认的吧TODO @jason建议还是搞一个主要是后续好排查问题。
SequenceFlow sequenceFlow = new SequenceFlow(sourceId, targetId);
if (StrUtil.isNotEmpty(sequenceFlowId)) {
sequenceFlow.setId(sequenceFlowId);
@@ -341,7 +341,7 @@ public class SimpleModelUtils {
EndEvent endEvent = new EndEvent();
endEvent.setId(node.getId());
endEvent.setName(node.getName());
// TODO @芋艿 + jason要不要加一个终止定义
// TODO @管理员 + jason要不要加一个终止定义
return endEvent;
}
@@ -369,7 +369,7 @@ public class SimpleModelUtils {
// 添加操作按钮配置属性元素
addButtonsSetting(node.getButtonsSetting(), userTask);
// 使用自动通过策略
// TODO @芋艿 复用了SKIP 是否需要新加一个策略TODO @芋艿:【回复】是不是应该类似飞书,搞个草稿状态。待定;还有一种策略,不标记自动通过,而是首次发起后,第一个节点,自动通过;
// TODO @管理员 复用了SKIP 是否需要新加一个策略TODO @管理员:【回复】是不是应该类似飞书,搞个草稿状态。待定;还有一种策略,不标记自动通过,而是首次发起后,第一个节点,自动通过;
addAssignStartUserHandlerType(BpmUserTaskAssignStartUserHandlerTypeEnum.SKIP.getType(), userTask);
return userTask;
}

View File

@@ -1,6 +1,6 @@
/**
* 属于 bpm 模块的 framework 封装
*
* @author 芋道源码
* @author 恭学教育
*/
package cn.iocoder.yudao.module.bpm.framework;

View File

@@ -11,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
/**
* bpm 模块的 web 组件的 Configuration
*
* @author 芋道源码
* @author 恭学教育
*/
@Configuration(proxyBeanMethods = false)
public class BpmWebConfiguration {

View File

@@ -10,7 +10,7 @@ import java.util.List;
/**
* 流程评论 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmCommentService {

View File

@@ -17,7 +17,7 @@ import java.util.List;
/**
* 流程评论 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
public class BpmCommentServiceImpl implements BpmCommentService {

View File

@@ -15,7 +15,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* BPM 流程分类 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmCategoryService {

View File

@@ -25,7 +25,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
/**
* BPM 流程分类 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -94,7 +94,7 @@ public class BpmFormServiceImpl implements BpmFormService {
* @param fields field 数组
*/
private void validateFields(List<String> fields) {
if (true) { // TODO 芋艿:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验
if (true) { // TODO 管理员:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验
return;
}
Map<String, String> fieldMap = new HashMap<>(); // key 是 vModelvalue 是 label

View File

@@ -51,7 +51,7 @@ import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModel
* 流程模型实现:主要进行 Flowable {@link Model} 的维护
*
* @author yunlongn
* @author 芋道源码
* @author 恭学教育
* @author jason
*/
@Service

View File

@@ -22,7 +22,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
*
* @author yunlong.li
* @author ZJQ
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmProcessDefinitionService {

View File

@@ -39,7 +39,7 @@ import static java.util.Collections.emptyList;
*
* @author yunlongn
* @author ZJQ
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* BPM 流程表达式 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmProcessExpressionService {

View File

@@ -18,7 +18,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
/**
* BPM 流程表达式 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* BPM 流程监听器 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmProcessListenerService {

View File

@@ -21,7 +21,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
/**
* BPM 流程监听器 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* 用户组 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmUserGroupService {

View File

@@ -24,7 +24,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NO
/**
* 用户组 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -7,7 +7,7 @@ import lombok.Data;
* Bpm 表单的 Field 表单项 Response DTO
* 字段的定义,可见 https://github.com/JakHuang/form-generator/issues/46 文档
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class BpmFormFieldRespDTO {

View File

@@ -9,9 +9,9 @@ import jakarta.validation.Valid;
/**
* BPM 消息 Service 接口
*
* TODO 芋艿:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么;
* TODO 管理员:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么;
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmMessageService {

View File

@@ -19,7 +19,7 @@ import java.util.Map;
/**
* BPM 消息 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -12,7 +12,7 @@ import jakarta.validation.Valid;
* 请假申请 Service 接口
*
* @author jason
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmOALeaveService {

View File

@@ -25,7 +25,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_LEAVE_NOT_
* OA 请假申请 Service 实现类
*
* @author jason
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -11,7 +11,7 @@ import jakarta.annotation.Resource;
/**
* OA 请假单的结果的监听器实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
public class BpmOALeaveStatusListener extends BpmProcessInstanceStatusEventListener {

View File

@@ -17,7 +17,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* 流程实例 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface BpmProcessInstanceService {

Some files were not shown because too many files have changed in this diff Show More