刘光辉
8 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package jnpf.base.service;
 
import jnpf.flowable.WorkFlowApi;
import jnpf.flowable.model.filepermission.FilePermissionReader;
import jnpf.flowable.model.filepermission.FilePermissionView;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.stereotype.Component;
 
/** 仅供新增附件权限业务使用,不改变原工作流远程调用。 */
@Component
@RequiredArgsConstructor
public class UploadFilePermissionQuery {
    private final WorkFlowApi workflow;
    private final ObjectProvider<FilePermissionReader> local;
 
    public FilePermissionView current(String taskId, String formId) {
        FilePermissionReader reader = local.getIfAvailable();
        // 聚合服务中的回调已按可信租约切换身份;再走HTTP会丢失该线程身份。
        // 只有未部署本地服务时才走远程查询,拒绝/故障不能触发降级。
        return reader == null ? workflow.filePermissions(taskId, formId) : reader.current(taskId, formId);
    }
 
    /** Internal only: formData must come from this request's server-side published-model read. */
    public FilePermissionView currentWithPublishedForm(String taskId, String formId, String formData) {
        FilePermissionReader reader = local.getIfAvailable();
        return reader == null ? workflow.filePermissions(taskId, formId) : reader.currentWithPublishedForm(taskId, formId, formData);
    }
}