流程任务feign接口添加

This commit is contained in:
qianshijiang
2025-09-23 15:11:09 +08:00
parent ba12f6458e
commit a15451ed91
4 changed files with 85 additions and 0 deletions

View File

@@ -2,6 +2,8 @@ package com.zt.plat.module.bpm.api.task;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmTaskApproveReqDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRejectReqDTO;
import com.zt.plat.module.bpm.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -9,6 +11,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -24,4 +27,13 @@ public interface BpmProcessInstanceApi {
CommonResult<String> createProcessInstance(@RequestParam("userId") Long userId,
@Valid @RequestBody BpmProcessInstanceCreateReqDTO reqDTO);
@PutMapping(PREFIX + "/approveTask")
@Operation(summary = "通过任务")
CommonResult<Boolean> approveTask(@Valid @RequestBody BpmTaskApproveReqDTO reqVO);
@PutMapping(PREFIX + "/rejectTask")
@Operation(summary = "不通过任务")
CommonResult<Boolean> rejectTask(@Valid @RequestBody BpmTaskRejectReqDTO reqVO);
}

View File

@@ -0,0 +1,33 @@
package com.zt.plat.module.bpm.api.task.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Schema(description = "RPC 服务 - 通过流程任务的 Request DTO")
@Data
public class BpmTaskApproveReqDTO {
@Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotEmpty(message = "任务编号不能为空")
private String id;
@Schema(description = "审批意见", example = "不错不错!")
private String reason;
@Schema(description = "签名", example = "https://www.iocoder.cn/sign.png")
private String signPicUrl;
@Schema(description = "变量实例(动态表单)", requiredMode = Schema.RequiredMode.REQUIRED)
private Map<String, Object> variables;
@Schema(description = "下一个节点审批人", example = "{nodeId:[1, 2]}")
private Map<String, List<Long>> nextAssignees; // 为什么是 Map而不是 List 呢?因为下一个节点可能是多个,例如说并行网关的情况
// 新增任务变量实例,业务表单
@Schema(description = "任务变量实例,业务表单", example = "{'formField1': 'value1', 'formField2': 'value2'}")
private Map<String, String> taskVariables;
}

View File

@@ -0,0 +1,18 @@
package com.zt.plat.module.bpm.api.task.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
@Schema(description = "RPC 服务 - 不通过流程任务的 Request DTO")
@Data
public class BpmTaskRejectReqDTO {
@Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotEmpty(message = "任务编号不能为空")
private String id;
@Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "不错不错!")
private String reason;
}

View File

@@ -1,14 +1,21 @@
package com.zt.plat.module.bpm.api.task;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmTaskApproveReqDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRejectReqDTO;
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRejectReqVO;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
import com.zt.plat.module.bpm.service.task.BpmTaskService;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import static com.zt.plat.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
/**
* Flowable 流程实例 Api 实现类
@@ -23,9 +30,24 @@ public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi {
@Resource
private BpmProcessInstanceService processInstanceService;
@Resource
private BpmTaskService taskService;
@Override
public CommonResult<String> createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO reqDTO) {
return success(processInstanceService.createProcessInstance(userId, reqDTO));
}
@Override
public CommonResult<Boolean> approveTask(BpmTaskApproveReqDTO reqVO) {
taskService.approveTask(getLoginUserId(), BeanUtils.toBean(reqVO, BpmTaskApproveReqVO.class));
return success(true);
}
@Override
public CommonResult<Boolean> rejectTask(BpmTaskRejectReqDTO reqVO) {
taskService.rejectTask(getLoginUserId(), BeanUtils.toBean(reqVO, BpmTaskRejectReqVO.class));
return success(true);
}
}