Merge branch 'feature/REQ-5965' into dev
This commit is contained in:
commit
51d5ea99b8
@ -3,6 +3,9 @@ package cn.axzo.workflow.server.controller.web.manage;
|
||||
import cn.axzo.maokai.api.client.OrganizationalNodeUserQueryApi;
|
||||
import cn.axzo.maokai.api.vo.request.OrgNodeUserBriefInfoListReq;
|
||||
import cn.axzo.maokai.api.vo.response.OrgNodeUserBriefInfoResp;
|
||||
import cn.axzo.oss.http.api.ServerFileServiceApi;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadRequest;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadResponse;
|
||||
import cn.axzo.workflow.client.feign.manage.PrintAdminApi;
|
||||
import cn.axzo.workflow.common.constant.VariableConstants;
|
||||
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
|
||||
@ -44,6 +47,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
|
||||
import org.flowable.common.engine.impl.interceptor.CommandExecutor;
|
||||
import org.flowable.engine.TaskService;
|
||||
@ -162,6 +166,8 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
private ExtAxProcessLogService processLogService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private ServerFileServiceApi serverFileServiceApi;
|
||||
|
||||
/**
|
||||
* 查询指定流程实例是否能使用打印
|
||||
@ -526,6 +532,7 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
.collect(Collectors.groupingBy(Attachment::getTaskId));
|
||||
ExtAxProcessLog query = new ExtAxProcessLog();
|
||||
query.setProcessInstanceId(dto.getProcessInstanceId());
|
||||
// TODO 这里可能需要结合节点隐藏来过滤
|
||||
processLogService.genericQuery(query).stream()
|
||||
.sorted(Comparator.comparing(ExtAxProcessLog::getEndTime, Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.collect(Collectors.toList())
|
||||
@ -540,9 +547,32 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
.operationTime(DateUtil.format(log.getEndTime(), "yyyy.MM.dd HH:mm:ss"))
|
||||
.build());
|
||||
});
|
||||
parseSignatureUrl(logItems);
|
||||
vo.setLogItems(logItems);
|
||||
|
||||
return success(vo);
|
||||
}
|
||||
|
||||
|
||||
private void parseSignatureUrl(List<ProcessLogItemDTO> logItems) {
|
||||
List<String> signUrls = logItems.stream()
|
||||
.map(ProcessLogItemDTO::getSignatureUrl)
|
||||
.filter(StringUtils::hasText)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(signUrls)) {
|
||||
Map<String, String> ossUrlMap = ListUtils.emptyIfNull(getSignPrivateUrl(signUrls)).stream()
|
||||
.collect(Collectors.toMap(ApiSignUrlDownloadResponse::getFileKey, ApiSignUrlDownloadResponse::getSignUrl, (s, t) -> s));
|
||||
logItems.stream()
|
||||
.filter(i -> StringUtils.hasText(i.getSignatureUrl()))
|
||||
.forEach(i -> i.setSignatureUrl(ossUrlMap.getOrDefault(i.getSignatureUrl(), null)));
|
||||
}
|
||||
}
|
||||
|
||||
private List<ApiSignUrlDownloadResponse> getSignPrivateUrl(List<String> signUrls) {
|
||||
ApiSignUrlDownloadRequest request = new ApiSignUrlDownloadRequest();
|
||||
request.setFileKeys(signUrls);
|
||||
return RpcExternalUtil.rpcProcessor(() -> serverFileServiceApi.signUrlFetchDownload(request), "批量获取手写签私有访问地址", request);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user