Commit 727faac8d829daab32e8955a39bf0689274023e8
1 parent
6d44bf0d
BPM:增加流程表达式的管理
Showing
11 changed files
with
365 additions
and
3 deletions
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
| @@ -72,4 +72,7 @@ public interface ErrorCodeConstants { | @@ -72,4 +72,7 @@ public interface ErrorCodeConstants { | ||
| 72 | ErrorCode PROCESS_LISTENER_CLASS_IMPLEMENTS_ERROR = new ErrorCode(1_009_013_002, "流程监听器类({})没有实现接口({})"); | 72 | ErrorCode PROCESS_LISTENER_CLASS_IMPLEMENTS_ERROR = new ErrorCode(1_009_013_002, "流程监听器类({})没有实现接口({})"); |
| 73 | ErrorCode PROCESS_LISTENER_EXPRESSION_INVALID = new ErrorCode(1_009_013_003, "流程监听器表达式({})不合法"); | 73 | ErrorCode PROCESS_LISTENER_EXPRESSION_INVALID = new ErrorCode(1_009_013_003, "流程监听器表达式({})不合法"); |
| 74 | 74 | ||
| 75 | + // ========== BPM 流程表达式 1-009-014-000 ========== | ||
| 76 | + ErrorCode PROCESS_EXPRESSION_NOT_EXISTS = new ErrorCode(1_009_014_000, "流程表达式不存在"); | ||
| 77 | + | ||
| 75 | } | 78 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessExpressionController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 6 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionRespVO; | ||
| 8 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionSaveReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessExpressionDO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessExpressionService; | ||
| 11 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 14 | +import jakarta.annotation.Resource; | ||
| 15 | +import jakarta.validation.Valid; | ||
| 16 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 17 | +import org.springframework.validation.annotation.Validated; | ||
| 18 | +import org.springframework.web.bind.annotation.*; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Tag(name = "管理后台 - BPM 流程表达式") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/bpm/process-expression") | ||
| 25 | +@Validated | ||
| 26 | +public class BpmProcessExpressionController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private BpmProcessExpressionService processExpressionService; | ||
| 30 | + | ||
| 31 | + @PostMapping("/create") | ||
| 32 | + @Operation(summary = "创建流程表达式") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:create')") | ||
| 34 | + public CommonResult<Long> createProcessExpression(@Valid @RequestBody BpmProcessExpressionSaveReqVO createReqVO) { | ||
| 35 | + return success(processExpressionService.createProcessExpression(createReqVO)); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @PutMapping("/update") | ||
| 39 | + @Operation(summary = "更新流程表达式") | ||
| 40 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:update')") | ||
| 41 | + public CommonResult<Boolean> updateProcessExpression(@Valid @RequestBody BpmProcessExpressionSaveReqVO updateReqVO) { | ||
| 42 | + processExpressionService.updateProcessExpression(updateReqVO); | ||
| 43 | + return success(true); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @DeleteMapping("/delete") | ||
| 47 | + @Operation(summary = "删除流程表达式") | ||
| 48 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 49 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:delete')") | ||
| 50 | + public CommonResult<Boolean> deleteProcessExpression(@RequestParam("id") Long id) { | ||
| 51 | + processExpressionService.deleteProcessExpression(id); | ||
| 52 | + return success(true); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @GetMapping("/get") | ||
| 56 | + @Operation(summary = "获得流程表达式") | ||
| 57 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 58 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:query')") | ||
| 59 | + public CommonResult<BpmProcessExpressionRespVO> getProcessExpression(@RequestParam("id") Long id) { | ||
| 60 | + BpmProcessExpressionDO processExpression = processExpressionService.getProcessExpression(id); | ||
| 61 | + return success(BeanUtils.toBean(processExpression, BpmProcessExpressionRespVO.class)); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + @GetMapping("/page") | ||
| 65 | + @Operation(summary = "获得流程表达式分页") | ||
| 66 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:query')") | ||
| 67 | + public CommonResult<PageResult<BpmProcessExpressionRespVO>> getProcessExpressionPage( | ||
| 68 | + @Valid BpmProcessExpressionPageReqVO pageReqVO) { | ||
| 69 | + PageResult<BpmProcessExpressionDO> pageResult = processExpressionService.getProcessExpressionPage(pageReqVO); | ||
| 70 | + return success(BeanUtils.toBean(pageResult, BpmProcessExpressionRespVO.class)); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | +} | ||
| 0 | \ No newline at end of file | 74 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/expression/BpmProcessExpressionPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 5 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 6 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.EqualsAndHashCode; | ||
| 9 | +import lombok.ToString; | ||
| 10 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 11 | + | ||
| 12 | +import java.time.LocalDateTime; | ||
| 13 | + | ||
| 14 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 15 | + | ||
| 16 | +@Schema(description = "管理后台 - BPM 流程表达式分页 Request VO") | ||
| 17 | +@Data | ||
| 18 | +@EqualsAndHashCode(callSuper = true) | ||
| 19 | +@ToString(callSuper = true) | ||
| 20 | +public class BpmProcessExpressionPageReqVO extends PageParam { | ||
| 21 | + | ||
| 22 | + @Schema(description = "表达式名字", example = "李四") | ||
| 23 | + private String name; | ||
| 24 | + | ||
| 25 | + @Schema(description = "表达式状态", example = "1") | ||
| 26 | + @InEnum(CommonStatusEnum.class) | ||
| 27 | + private Integer status; | ||
| 28 | + | ||
| 29 | + @Schema(description = "创建时间") | ||
| 30 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 31 | + private LocalDateTime[] createTime; | ||
| 32 | + | ||
| 33 | +} | ||
| 0 | \ No newline at end of file | 34 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/expression/BpmProcessExpressionRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression; | ||
| 2 | + | ||
| 3 | +import com.alibaba.excel.annotation.ExcelProperty; | ||
| 4 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | + | ||
| 9 | +@Schema(description = "管理后台 - BPM 流程表达式 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class BpmProcessExpressionRespVO { | ||
| 12 | + | ||
| 13 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3870") | ||
| 14 | + @ExcelProperty("编号") | ||
| 15 | + private Long id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "表达式名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 18 | + @ExcelProperty("表达式名字") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 21 | + @Schema(description = "表达式状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 22 | + private Integer status; | ||
| 23 | + | ||
| 24 | + @Schema(description = "表达式", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 25 | + private String expression; | ||
| 26 | + | ||
| 27 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 28 | + private LocalDateTime createTime; | ||
| 29 | + | ||
| 30 | +} | ||
| 0 | \ No newline at end of file | 31 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/expression/BpmProcessExpressionSaveReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import jakarta.validation.constraints.NotEmpty; | ||
| 5 | +import jakarta.validation.constraints.NotNull; | ||
| 6 | +import lombok.Data; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - BPM 流程表达式新增/修改 Request VO") | ||
| 9 | +@Data | ||
| 10 | +public class BpmProcessExpressionSaveReqVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3870") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "表达式名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 16 | + @NotEmpty(message = "表达式名字不能为空") | ||
| 17 | + private String name; | ||
| 18 | + | ||
| 19 | + @Schema(description = "表达式状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 20 | + @NotNull(message = "表达式状态不能为空") | ||
| 21 | + private Integer status; | ||
| 22 | + | ||
| 23 | + @Schema(description = "表达式", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 24 | + @NotEmpty(message = "表达式不能为空") | ||
| 25 | + private String expression; | ||
| 26 | + | ||
| 27 | +} | ||
| 0 | \ No newline at end of file | 28 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import java.time.LocalDateTime; | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.*; | ||
| 8 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * BPM 流程表达式 DO | ||
| 12 | + * | ||
| 13 | + * @author 芋道源码 | ||
| 14 | + */ | ||
| 15 | +@TableName("bpm_process_expression") | ||
| 16 | +@KeySequence("bpm_process_expression_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||
| 17 | +@Data | ||
| 18 | +@EqualsAndHashCode(callSuper = true) | ||
| 19 | +@ToString(callSuper = true) | ||
| 20 | +@Builder | ||
| 21 | +@NoArgsConstructor | ||
| 22 | +@AllArgsConstructor | ||
| 23 | +public class BpmProcessExpressionDO extends BaseDO { | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 编号 | ||
| 27 | + */ | ||
| 28 | + @TableId | ||
| 29 | + private Long id; | ||
| 30 | + /** | ||
| 31 | + * 表达式名字 | ||
| 32 | + */ | ||
| 33 | + private String name; | ||
| 34 | + /** | ||
| 35 | + * 表达式状态 | ||
| 36 | + * | ||
| 37 | + * 枚举 {@link TODO common_status 对应的类} | ||
| 38 | + */ | ||
| 39 | + private Integer status; | ||
| 40 | + /** | ||
| 41 | + * 表达式 | ||
| 42 | + */ | ||
| 43 | + private String expression; | ||
| 44 | + | ||
| 45 | +} | ||
| 0 | \ No newline at end of file | 46 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessExpressionMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.dal.mysql.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 6 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessExpressionDO; | ||
| 8 | +import org.apache.ibatis.annotations.Mapper; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * BPM 流程表达式 Mapper | ||
| 12 | + * | ||
| 13 | + * @author 芋道源码 | ||
| 14 | + */ | ||
| 15 | +@Mapper | ||
| 16 | +public interface BpmProcessExpressionMapper extends BaseMapperX<BpmProcessExpressionDO> { | ||
| 17 | + | ||
| 18 | + default PageResult<BpmProcessExpressionDO> selectPage(BpmProcessExpressionPageReqVO reqVO) { | ||
| 19 | + return selectPage(reqVO, new LambdaQueryWrapperX<BpmProcessExpressionDO>() | ||
| 20 | + .likeIfPresent(BpmProcessExpressionDO::getName, reqVO.getName()) | ||
| 21 | + .eqIfPresent(BpmProcessExpressionDO::getStatus, reqVO.getStatus()) | ||
| 22 | + .betweenIfPresent(BpmProcessExpressionDO::getCreateTime, reqVO.getCreateTime()) | ||
| 23 | + .orderByDesc(BpmProcessExpressionDO::getId)); | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | +} | ||
| 0 | \ No newline at end of file | 27 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAssignLeaderExpression.java
| @@ -34,7 +34,7 @@ public class BpmTaskAssignLeaderExpression { | @@ -34,7 +34,7 @@ public class BpmTaskAssignLeaderExpression { | ||
| 34 | @Resource | 34 | @Resource |
| 35 | private BpmProcessInstanceService processInstanceService; | 35 | private BpmProcessInstanceService processInstanceService; |
| 36 | 36 | ||
| 37 | - protected Set<Long> calculateUsers(DelegateExecution execution, int level) { | 37 | + public Set<Long> calculateUsers(DelegateExecution execution, int level) { |
| 38 | Assert.isTrue(level > 0, "level 必须大于 0"); | 38 | Assert.isTrue(level > 0, "level 必须大于 0"); |
| 39 | // 获得发起人 | 39 | // 获得发起人 |
| 40 | ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId()); | 40 | ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId()); |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/expression/BpmTaskAssignStartUserExpression.java
| @@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.util.collection.SetUtils; | @@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.util.collection.SetUtils; | ||
| 4 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; | 4 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| 5 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; | 5 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; |
| 6 | import jakarta.annotation.Resource; | 6 | import jakarta.annotation.Resource; |
| 7 | -import org.flowable.engine.delegate.DelegateExecution; | ||
| 8 | import org.flowable.engine.runtime.ProcessInstance; | 7 | import org.flowable.engine.runtime.ProcessInstance; |
| 9 | import org.springframework.stereotype.Component; | 8 | import org.springframework.stereotype.Component; |
| 10 | 9 | ||
| @@ -21,7 +20,7 @@ public class BpmTaskAssignStartUserExpression { | @@ -21,7 +20,7 @@ public class BpmTaskAssignStartUserExpression { | ||
| 21 | @Resource | 20 | @Resource |
| 22 | private BpmProcessInstanceService processInstanceService; | 21 | private BpmProcessInstanceService processInstanceService; |
| 23 | 22 | ||
| 24 | - public Set<Long> calculateUsers(DelegateExecution execution) { | 23 | + public Set<Long> calculateUsers(org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl execution) { |
| 25 | ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId()); | 24 | ProcessInstance processInstance = processInstanceService.getProcessInstance(execution.getProcessInstanceId()); |
| 26 | Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId()); | 25 | Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId()); |
| 27 | return SetUtils.asSet(startUserId); | 26 | return SetUtils.asSet(startUserId); |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessExpressionService.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.service.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionPageReqVO; | ||
| 4 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionSaveReqVO; | ||
| 5 | +import jakarta.validation.*; | ||
| 6 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessExpressionDO; | ||
| 7 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * BPM 流程表达式 Service 接口 | ||
| 11 | + * | ||
| 12 | + * @author 芋道源码 | ||
| 13 | + */ | ||
| 14 | +public interface BpmProcessExpressionService { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 创建流程表达式 | ||
| 18 | + * | ||
| 19 | + * @param createReqVO 创建信息 | ||
| 20 | + * @return 编号 | ||
| 21 | + */ | ||
| 22 | + Long createProcessExpression(@Valid BpmProcessExpressionSaveReqVO createReqVO); | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * 更新流程表达式 | ||
| 26 | + * | ||
| 27 | + * @param updateReqVO 更新信息 | ||
| 28 | + */ | ||
| 29 | + void updateProcessExpression(@Valid BpmProcessExpressionSaveReqVO updateReqVO); | ||
| 30 | + | ||
| 31 | + /** | ||
| 32 | + * 删除流程表达式 | ||
| 33 | + * | ||
| 34 | + * @param id 编号 | ||
| 35 | + */ | ||
| 36 | + void deleteProcessExpression(Long id); | ||
| 37 | + | ||
| 38 | + /** | ||
| 39 | + * 获得流程表达式 | ||
| 40 | + * | ||
| 41 | + * @param id 编号 | ||
| 42 | + * @return 流程表达式 | ||
| 43 | + */ | ||
| 44 | + BpmProcessExpressionDO getProcessExpression(Long id); | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 获得流程表达式分页 | ||
| 48 | + * | ||
| 49 | + * @param pageReqVO 分页查询 | ||
| 50 | + * @return 流程表达式分页 | ||
| 51 | + */ | ||
| 52 | + PageResult<BpmProcessExpressionDO> getProcessExpressionPage(BpmProcessExpressionPageReqVO pageReqVO); | ||
| 53 | + | ||
| 54 | +} | ||
| 0 | \ No newline at end of file | 55 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessExpressionServiceImpl.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.service.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionPageReqVO; | ||
| 4 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionSaveReqVO; | ||
| 5 | +import org.springframework.stereotype.Service; | ||
| 6 | +import jakarta.annotation.Resource; | ||
| 7 | +import org.springframework.validation.annotation.Validated; | ||
| 8 | + | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessExpressionDO; | ||
| 10 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 11 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 12 | + | ||
| 13 | +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessExpressionMapper; | ||
| 14 | + | ||
| 15 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 16 | +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; | ||
| 17 | + | ||
| 18 | +/** | ||
| 19 | + * BPM 流程表达式 Service 实现类 | ||
| 20 | + * | ||
| 21 | + * @author 芋道源码 | ||
| 22 | + */ | ||
| 23 | +@Service | ||
| 24 | +@Validated | ||
| 25 | +public class BpmProcessExpressionServiceImpl implements BpmProcessExpressionService { | ||
| 26 | + | ||
| 27 | + @Resource | ||
| 28 | + private BpmProcessExpressionMapper processExpressionMapper; | ||
| 29 | + | ||
| 30 | + @Override | ||
| 31 | + public Long createProcessExpression(BpmProcessExpressionSaveReqVO createReqVO) { | ||
| 32 | + // 插入 | ||
| 33 | + BpmProcessExpressionDO processExpression = BeanUtils.toBean(createReqVO, BpmProcessExpressionDO.class); | ||
| 34 | + processExpressionMapper.insert(processExpression); | ||
| 35 | + // 返回 | ||
| 36 | + return processExpression.getId(); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + @Override | ||
| 40 | + public void updateProcessExpression(BpmProcessExpressionSaveReqVO updateReqVO) { | ||
| 41 | + // 校验存在 | ||
| 42 | + validateProcessExpressionExists(updateReqVO.getId()); | ||
| 43 | + // 更新 | ||
| 44 | + BpmProcessExpressionDO updateObj = BeanUtils.toBean(updateReqVO, BpmProcessExpressionDO.class); | ||
| 45 | + processExpressionMapper.updateById(updateObj); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @Override | ||
| 49 | + public void deleteProcessExpression(Long id) { | ||
| 50 | + // 校验存在 | ||
| 51 | + validateProcessExpressionExists(id); | ||
| 52 | + // 删除 | ||
| 53 | + processExpressionMapper.deleteById(id); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + private void validateProcessExpressionExists(Long id) { | ||
| 57 | + if (processExpressionMapper.selectById(id) == null) { | ||
| 58 | + throw exception(PROCESS_EXPRESSION_NOT_EXISTS); | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + public BpmProcessExpressionDO getProcessExpression(Long id) { | ||
| 64 | + return processExpressionMapper.selectById(id); | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + @Override | ||
| 68 | + public PageResult<BpmProcessExpressionDO> getProcessExpressionPage(BpmProcessExpressionPageReqVO pageReqVO) { | ||
| 69 | + return processExpressionMapper.selectPage(pageReqVO); | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | +} | ||
| 0 | \ No newline at end of file | 73 | \ No newline at end of file |