Bläddra i källkod

仿钉钉流程设计 - 获取表单字段权限接口修改

jason 8 månader sedan
förälder
incheckning
b6c78ad04f

+ 4 - 4
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java

@@ -158,11 +158,11 @@ public class BpmProcessInstanceController {
     }
 
     @GetMapping("/get-form-fields-permission")
-    @Operation(summary = "获得流程实例表单字段权限")
+    @Operation(summary = "获得表单字段权限")
     @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
-    public CommonResult<Map<String, String>> getProcessInstanceFormFieldsPermission(
-            @Valid BpmProcessInstanceFormFieldsPermissionReqVO reqVO) {
-        return success(processInstanceService.getProcessInstanceFormFieldsPermission(reqVO));
+    public CommonResult<Map<String, String>> getFormFieldsPermission(
+            @Valid BpmFormFieldsPermissionReqVO reqVO) {
+        return success(processInstanceService.getFormFieldsPermission(reqVO));
     }
 
     @GetMapping("/get-approval-detail")

+ 10 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailReqVO.java

@@ -1,6 +1,9 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance;
 
+import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.AssertTrue;
 import lombok.Data;
 
 @Schema(description = "管理后台 - 审批详情 Request VO")
@@ -12,4 +15,11 @@ public class BpmApprovalDetailReqVO {
 
     @Schema(description = "流程实例的编号", example = "1024")
     private String processInstanceId;
+
+    @AssertTrue(message = "流程定义的编号和流程实例的编号不能同时为空")
+    @JsonIgnore
+    public boolean isValidProcessParam() {
+        return StrUtil.isNotEmpty(processDefinitionId) || StrUtil.isNotEmpty(processInstanceId);
+    }
+
 }

+ 40 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmFormFieldsPermissionReqVO.java

@@ -0,0 +1,40 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance;
+
+import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.AssertTrue;
+import lombok.Data;
+
+/**
+ * @author jason
+ */
+@Schema(description = "管理后台 - 表单字段权限 Request VO")
+@Data
+public class BpmFormFieldsPermissionReqVO {
+
+    @Schema(description = "流程定义的编号", example = "1024")
+    private String processDefinitionId;
+
+    @Schema(description = "流程实例的编号", example = "1024")
+    private String processInstanceId;
+
+    @Schema(description = "流程活动编号",  example = "StartUserNode")
+    private String activityId; // 对应 BPMN XML 节点 Id
+
+    @Schema(description = "流程任务编号", example = "95f2f08b-621b-11ef-bf39-00ff4722db8b")
+    private String taskId; // UserTask 对应的Id
+
+    @AssertTrue(message = "流程定义的编号和流程实例的编号不能同时为空")
+    @JsonIgnore
+    public boolean isValidProcessParam() {
+        return StrUtil.isNotEmpty(processDefinitionId) || StrUtil.isNotEmpty(processInstanceId);
+    }
+
+    @AssertTrue(message = "流程活动编号和流程任务编号编号不能同时为空")
+    @JsonIgnore
+    public boolean isValidActivityParam() {
+        return StrUtil.isNotEmpty(activityId) || StrUtil.isNotEmpty(taskId);
+    }
+
+}

+ 0 - 23
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceFormFieldsPermissionReqVO.java

@@ -1,23 +0,0 @@
-package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotEmpty;
-import lombok.Data;
-
-/**
- * @author jason
- */
-@Schema(description = "管理后台 - 流程实例表单字段权限 Request VO")
-@Data
-public class BpmProcessInstanceFormFieldsPermissionReqVO {
-
-    @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
-    @NotEmpty(message = "流程实例的编号不能为空")
-    private String id;
-
-    @Schema(description = "流程活动编号",  example = "StartUserNode")
-    private String activityId; // 对应 BPMN XML 节点 Id
-
-    @Schema(description = "流程任务的编号", example = "95f2f08b-621b-11ef-bf39-00ff4722db8b")
-    private String taskId; // UserTask 对应的Id
-}

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

@@ -5,7 +5,6 @@ import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.BpmTaskCand
 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import jakarta.annotation.Resource;
-import org.flowable.engine.delegate.DelegateExecution;
 import org.springframework.stereotype.Component;
 
 import java.util.Set;

+ 3 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java

@@ -85,12 +85,12 @@ public interface BpmProcessInstanceService {
                                                                @Valid BpmProcessInstancePageReqVO pageReqVO);
 
     /**
-     * 获得流程实例表单字段权限
+     * 获得表单字段权限
      *
      * @param reqVO 请求消息
      * @return 表单字段权限
      */
-    Map<String, String> getProcessInstanceFormFieldsPermission(@Valid BpmProcessInstanceFormFieldsPermissionReqVO reqVO);
+    Map<String, String> getFormFieldsPermission(@Valid BpmFormFieldsPermissionReqVO reqVO);
 
     // TODO @芋艿:重点在 review 下
     /**
@@ -102,7 +102,7 @@ public interface BpmProcessInstanceService {
      * @param reqVO 请求信息
      * @return 流程实例的进度
      */
-    BpmApprovalDetailRespVO getApprovalDetail(Long loginUserId, BpmApprovalDetailReqVO reqVO);
+    BpmApprovalDetailRespVO getApprovalDetail(Long loginUserId, @Valid BpmApprovalDetailReqVO reqVO);
 
     // ========== Update 写入相关方法 ==========
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java


Vissa filer visades inte eftersom för många filer har ändrats