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