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);
|
}
|
}
|