Browse Source

更改流程规则调整

zjc 8 months ago
parent
commit
cca0d3dffd
17 changed files with 480 additions and 7 deletions
  1. 1 1
      pom.xml
  2. 2 0
      yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
  3. 9 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmUserGroupController.java
  4. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java
  5. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSaveReqVO.java
  6. 108 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskAssignRuleController.java
  7. 37 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/BpmTaskAssignRulePageReqVO.java
  8. 44 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/BpmTaskAssignRuleRespVO.java
  9. 35 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/BpmTaskAssignRuleSaveReqVO.java
  10. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java
  11. 51 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskAssignRuleDO.java
  12. 31 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskAssignRuleMapper.java
  13. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/strategy/BpmTaskCandidateGroupStrategy.java
  14. 65 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskAssignRuleService.java
  15. 79 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskAssignRuleServiceImpl.java
  16. 12 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/task/BpmTaskAssignRuleMapper.xml
  17. 2 2
      yudao-server/pom.xml

+ 1 - 1
pom.xml

@@ -18,7 +18,7 @@
         <module>yudao-module-member</module>
         <module>yudao-module-bpm</module>
         <module>yudao-module-report</module>
-        <module>yudao-module-mp</module>
+        <!--<module>yudao-module-mp</module>-->
         <module>yudao-module-pay</module>
         <module>yudao-module-mall</module>
         <module>yudao-module-crm</module>

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java

@@ -74,5 +74,7 @@ public interface ErrorCodeConstants {
 
     // ========== BPM 流程表达式 1-009-014-000 ==========
     ErrorCode PROCESS_EXPRESSION_NOT_EXISTS = new ErrorCode(1_009_014_000, "流程表达式不存在");
+    // ========== BPM 流程规则 1_009_015_000 ==========
+    ErrorCode TASK_ASSIGN_RULE_NOT_EXISTS = new ErrorCode(1_009_015_000, "Bpm 任务规则不存在");
 
 }

+ 9 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmUserGroupController.java

@@ -4,9 +4,11 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupSaveReqVO;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO;
 import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -80,4 +82,11 @@ public class BpmUserGroupController {
         return success(convertList(list, group -> new BpmUserGroupRespVO().setId(group.getId()).setName(group.getName())));
     }
 
+    @GetMapping("/list-all-simple")
+    @Operation(summary = "获取用户组精简信息列表", description = "只包含被开启的用户组")
+    public CommonResult<List<BpmUserGroupRespVO>> getUserGroupSimpleListAll() {
+        List<BpmUserGroupDO> list = userGroupService.getUserGroupListByStatus(CommonStatusEnum.ENABLE.getStatus());
+        return success(convertList(list, group -> new BpmUserGroupRespVO().setId(group.getId()).setName(group.getName())));
+    }
+
 }

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java

@@ -20,7 +20,7 @@ public class BpmUserGroupRespVO {
     private String description;
 
     @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")
-    private Set<Long> userIds;
+    private Set<Long> memberUserIds;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Integer status;

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSaveReqVO.java

@@ -22,7 +22,7 @@ public class BpmUserGroupSaveReqVO {
 
     @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")
     @NotNull(message = "成员编号数组不能为空")
-    private Set<Long> userIds;
+    private Set<Long> memberUserIds;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     @NotNull(message = "状态不能为空")

+ 108 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskAssignRuleController.java

@@ -0,0 +1,108 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.task;
+
+import cn.iocoder.yudao.module.bpm.convert.definition.BpmProcessDefinitionConvert;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
+import org.flowable.engine.repository.ProcessDefinition;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
+
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.*;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskAssignRuleDO;
+import cn.iocoder.yudao.module.bpm.service.task.BpmTaskAssignRuleService;
+
+@Tag(name = "管理后台 - Bpm 任务规则")
+@RestController
+@RequestMapping("/bpm/task-assign-rule")
+@Validated
+public class BpmTaskAssignRuleController {
+
+    @Resource
+    private BpmTaskAssignRuleService taskAssignRuleService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建Bpm 任务规则")
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:create')")
+    public CommonResult<Long> createTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleSaveReqVO createReqVO) {
+        return success(taskAssignRuleService.createTaskAssignRule(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新Bpm 任务规则")
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:update')")
+    public CommonResult<Boolean> updateTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleSaveReqVO updateReqVO) {
+        taskAssignRuleService.updateTaskAssignRule(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除Bpm 任务规则")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:delete')")
+    public CommonResult<Boolean> deleteTaskAssignRule(@RequestParam("id") Long id) {
+        taskAssignRuleService.deleteTaskAssignRule(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得Bpm 任务规则")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:query')")
+    public CommonResult<BpmTaskAssignRuleRespVO> getTaskAssignRule(@RequestParam("id") Long id) {
+        BpmTaskAssignRuleDO taskAssignRule = taskAssignRuleService.getTaskAssignRule(id);
+        return success(BeanUtils.toBean(taskAssignRule, BpmTaskAssignRuleRespVO.class));
+    }
+
+    @GetMapping("/list")
+    @Operation(summary = "获得Bpm 任务规则")
+    @Parameter(name = "modelId", description = "流程模型的编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:query')")
+    public CommonResult<List<BpmTaskAssignRuleDO>> getTaskAssignRule(@RequestParam("modelId") String modelId) {
+        List<BpmTaskAssignRuleDO> taskAssignRule = taskAssignRuleService.getTaskAssignRuleModelId(modelId);
+        return success(taskAssignRule);
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得Bpm 任务规则分页")
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:query')")
+    public CommonResult<PageResult<BpmTaskAssignRuleRespVO>> getTaskAssignRulePage(@Valid BpmTaskAssignRulePageReqVO pageReqVO) {
+        PageResult<BpmTaskAssignRuleDO> pageResult = taskAssignRuleService.getTaskAssignRulePage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, BpmTaskAssignRuleRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出Bpm 任务规则 Excel")
+    @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportTaskAssignRuleExcel(@Valid BpmTaskAssignRulePageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<BpmTaskAssignRuleDO> list = taskAssignRuleService.getTaskAssignRulePage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "Bpm 任务规则.xls", "数据", BpmTaskAssignRuleRespVO.class,
+                        BeanUtils.toBean(list, BpmTaskAssignRuleRespVO.class));
+    }
+
+}

+ 37 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/BpmTaskAssignRulePageReqVO.java

@@ -0,0 +1,37 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.task.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - Bpm 任务规则分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class BpmTaskAssignRulePageReqVO extends PageParam {
+
+    @Schema(description = "流程模型的编号", example = "1174")
+    private String modelId;
+
+    @Schema(description = "流程定义的编号", example = "23738")
+    private String processDefinitionId;
+
+    @Schema(description = "流程任务定义的key")
+    private String taskDefinitionKey;
+
+    @Schema(description = "规则类型", example = "1")
+    private Integer type;
+
+    @Schema(description = "规则值,JSON 数组")
+    private String options;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 44 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/BpmTaskAssignRuleRespVO.java

@@ -0,0 +1,44 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.task.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - Bpm 任务规则 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class BpmTaskAssignRuleRespVO {
+
+    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17826")
+    @ExcelProperty("编号")
+    private Long id;
+
+    @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1174")
+    @ExcelProperty("流程模型的编号")
+    private String modelId;
+
+    @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23738")
+    @ExcelProperty("流程定义的编号")
+    private String processDefinitionId;
+
+    @Schema(description = "流程任务定义的key", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("流程任务定义的key")
+    private String taskDefinitionKey;
+
+    @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty("规则类型")
+    private Integer type;
+
+    @Schema(description = "规则值,JSON 数组", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("规则值,JSON 数组")
+    private String options;
+
+    @Schema(description = "创建时间")
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 35 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/BpmTaskAssignRuleSaveReqVO.java

@@ -0,0 +1,35 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.task.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - Bpm 任务规则新增/修改 Request VO")
+@Data
+public class BpmTaskAssignRuleSaveReqVO {
+
+    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17826")
+    private Long id;
+
+    @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1174")
+    @NotEmpty(message = "流程模型的编号不能为空")
+    private String modelId;
+
+    @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23738")
+    @NotEmpty(message = "流程定义的编号不能为空")
+    private String processDefinitionId;
+
+    @Schema(description = "流程任务定义的key", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "流程任务定义的key不能为空")
+    private String taskDefinitionKey;
+
+    @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "规则类型不能为空")
+    private Integer type;
+
+    @Schema(description = "规则值,JSON 数组", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "规则值,JSON 数组不能为空")
+    private String options;
+
+}

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java

@@ -45,6 +45,6 @@ public class BpmUserGroupDO extends BaseDO {
      * 成员用户编号数组
      */
     @TableField(typeHandler = JsonLongSetTypeHandler.class)
-    private Set<Long> userIds;
+    private Set<Long> memberUserIds;
 
 }

+ 51 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskAssignRuleDO.java

@@ -0,0 +1,51 @@
+package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * Bpm 任务规则 DO
+ *
+ * @author 芋道源码
+ */
+@TableName("bpm_task_assign_rule")
+@KeySequence("bpm_task_assign_rule_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BpmTaskAssignRuleDO extends BaseDO {
+
+    /**
+     * 编号
+     */
+    @TableId
+    private Long id;
+    /**
+     * 流程模型的编号
+     */
+    private String modelId;
+    /**
+     * 流程定义的编号
+     */
+    private String processDefinitionId;
+    /**
+     * 流程任务定义的key
+     */
+    private String taskDefinitionKey;
+    /**
+     * 规则类型
+     */
+    private Integer type;
+    /**
+     * 规则值,JSON 数组
+     */
+    private String options;
+
+}

+ 31 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskAssignRuleMapper.java

@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.module.bpm.dal.mysql.task;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskAssignRuleDO;
+import org.apache.ibatis.annotations.Mapper;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.*;
+
+/**
+ * Bpm 任务规则 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface BpmTaskAssignRuleMapper extends BaseMapperX<BpmTaskAssignRuleDO> {
+
+    default PageResult<BpmTaskAssignRuleDO> selectPage(BpmTaskAssignRulePageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<BpmTaskAssignRuleDO>()
+                .eqIfPresent(BpmTaskAssignRuleDO::getModelId, reqVO.getModelId())
+                .eqIfPresent(BpmTaskAssignRuleDO::getProcessDefinitionId, reqVO.getProcessDefinitionId())
+                .eqIfPresent(BpmTaskAssignRuleDO::getTaskDefinitionKey, reqVO.getTaskDefinitionKey())
+                .eqIfPresent(BpmTaskAssignRuleDO::getType, reqVO.getType())
+                .eqIfPresent(BpmTaskAssignRuleDO::getOptions, reqVO.getOptions())
+                .betweenIfPresent(BpmTaskAssignRuleDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(BpmTaskAssignRuleDO::getId));
+    }
+
+}

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/strategy/BpmTaskCandidateGroupStrategy.java

@@ -41,7 +41,7 @@ public class BpmTaskCandidateGroupStrategy implements BpmTaskCandidateStrategy {
     public Set<Long> calculateUsers(DelegateExecution execution, String param) {
         Set<Long> groupIds = StrUtils.splitToLongSet(param);
         List<BpmUserGroupDO> groups = userGroupService.getUserGroupList(groupIds);
-        return convertSetByFlatMap(groups, BpmUserGroupDO::getUserIds, Collection::stream);
+        return convertSetByFlatMap(groups, BpmUserGroupDO::getMemberUserIds, Collection::stream);
     }
 
 }

+ 65 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskAssignRuleService.java

@@ -0,0 +1,65 @@
+package cn.iocoder.yudao.module.bpm.service.task;
+
+import java.util.*;
+import javax.validation.*;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.*;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskAssignRuleDO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * Bpm 任务规则 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface BpmTaskAssignRuleService {
+
+    /**
+     * 创建Bpm 任务规则
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createTaskAssignRule(@Valid BpmTaskAssignRuleSaveReqVO createReqVO);
+
+    /**
+     * 更新Bpm 任务规则
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateTaskAssignRule(@Valid BpmTaskAssignRuleSaveReqVO updateReqVO);
+
+    /**
+     * 删除Bpm 任务规则
+     *
+     * @param id 编号
+     */
+    void deleteTaskAssignRule(Long id);
+
+    /**
+     * 获得Bpm 任务规则
+     *
+     * @param id 编号
+     * @return Bpm 任务规则
+     */
+    BpmTaskAssignRuleDO getTaskAssignRule(Long id);
+
+
+    /**
+     * 获得Bpm 任务规则
+     *
+     * @param id 编号
+     * @return Bpm 任务规则
+     */
+    List<BpmTaskAssignRuleDO> getTaskAssignRuleModelId(String id);
+
+
+    /**
+     * 获得Bpm 任务规则分页
+     *
+     * @param pageReqVO 分页查询
+     * @return Bpm 任务规则分页
+     */
+    PageResult<BpmTaskAssignRuleDO> getTaskAssignRulePage(BpmTaskAssignRulePageReqVO pageReqVO);
+
+}

+ 79 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskAssignRuleServiceImpl.java

@@ -0,0 +1,79 @@
+package cn.iocoder.yudao.module.bpm.service.task;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.*;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskAssignRuleDO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskAssignRuleMapper;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
+
+/**
+ * Bpm 任务规则 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
+
+    @Resource
+    private BpmTaskAssignRuleMapper taskAssignRuleMapper;
+
+    @Override
+    public Long createTaskAssignRule(BpmTaskAssignRuleSaveReqVO createReqVO) {
+        // 插入
+        BpmTaskAssignRuleDO taskAssignRule = BeanUtils.toBean(createReqVO, BpmTaskAssignRuleDO.class);
+        taskAssignRuleMapper.insert(taskAssignRule);
+        // 返回
+        return taskAssignRule.getId();
+    }
+
+    @Override
+    public void updateTaskAssignRule(BpmTaskAssignRuleSaveReqVO updateReqVO) {
+        // 校验存在
+        validateTaskAssignRuleExists(updateReqVO.getId());
+        // 更新
+        BpmTaskAssignRuleDO updateObj = BeanUtils.toBean(updateReqVO, BpmTaskAssignRuleDO.class);
+        taskAssignRuleMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteTaskAssignRule(Long id) {
+        // 校验存在
+        validateTaskAssignRuleExists(id);
+        // 删除
+        taskAssignRuleMapper.deleteById(id);
+    }
+
+    private void validateTaskAssignRuleExists(Long id) {
+        if (taskAssignRuleMapper.selectById(id) == null) {
+            throw exception(TASK_ASSIGN_RULE_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public BpmTaskAssignRuleDO getTaskAssignRule(Long id) {
+        return taskAssignRuleMapper.selectById(id);
+    }
+
+    @Override
+    public List<BpmTaskAssignRuleDO> getTaskAssignRuleModelId(String modelId) {
+        return taskAssignRuleMapper.selectList(BpmTaskAssignRuleDO::getModelId, modelId);
+    }
+
+    @Override
+    public PageResult<BpmTaskAssignRuleDO> getTaskAssignRulePage(BpmTaskAssignRulePageReqVO pageReqVO) {
+        return taskAssignRuleMapper.selectPage(pageReqVO);
+    }
+
+}

+ 12 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/task/BpmTaskAssignRuleMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskAssignRuleMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 2 - 2
yudao-server/pom.xml

@@ -59,11 +59,11 @@
         </dependency>
 
         <!-- 微信公众号模块。默认注释,保证编译速度 -->
-        <dependency>
+        <!--<dependency>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-module-mp-biz</artifactId>
             <version>${revision}</version>
-        </dependency>
+        </dependency>-->
 
         <!-- 商城相关模块。默认注释,保证编译速度-->
         <dependency>