Merge branch 'feature/REQ-5965' into dev
This commit is contained in:
commit
20bf9e4d7b
@ -104,50 +104,51 @@ public class FirstCopyTemplateFileTaskEvent_105_Listener extends AbstractBpmnEve
|
||||
RuntimeService runtimeService = processEngineConfiguration.getRuntimeService();
|
||||
List<CustomDocDTO> customDocs = runtimeService.getVariable(processInstanceId, SIGN_BIZ_CUSTOM_DOCS, List.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(docs) && CollectionUtils.isEmpty(customDocs)) {
|
||||
if (CollectionUtils.isEmpty(docs)) {
|
||||
processSign.setDocTemplate(Collections.emptyList());
|
||||
processSign.setFileArchive(Collections.emptyList());
|
||||
} else {
|
||||
// 复制基础模板
|
||||
List<SignFileDTO> docTemplates = copyTempTemplate(docs);
|
||||
|
||||
List<SignFileDTO> customDocTemplates = new ArrayList<>();
|
||||
for (CustomDocDTO customDoc : customDocs) {
|
||||
customDocTemplates.add(SignFileDTO.builder()
|
||||
.id(customDoc.getId())
|
||||
.fileName(customDoc.getFileName())
|
||||
.templateName(customDoc.getFileName())
|
||||
.fileTag(customDoc.getFileTag())
|
||||
.fileCode(customDoc.getFileCode())
|
||||
.fileKey(customDoc.getFileKey())
|
||||
.fileType(customDoc.getFileType())
|
||||
.build());
|
||||
}
|
||||
List<String> basedFileTagOrder = runtimeService.getVariable(processInstanceId, SIGN_BIZ_BASED_FILE_TAG_ORDER, List.class);
|
||||
if (Objects.nonNull(basedFileTagOrder)) {
|
||||
docTemplates.addAll(customDocTemplates);
|
||||
// 基于 fileTag 排序
|
||||
Map<String, Integer> fileTagOrderMap = IntStream.range(0, basedFileTagOrder.size())
|
||||
.boxed()
|
||||
.collect(Collectors.toMap(basedFileTagOrder::get, i -> i, (a, b) -> a));
|
||||
|
||||
docTemplates.sort(Comparator.comparing(d -> fileTagOrderMap.getOrDefault(d.getFileTag(), Integer.MAX_VALUE)));
|
||||
docTemplates = docTemplates.stream().sorted(Comparator.comparingInt(d -> fileTagOrderMap.getOrDefault(d.getFileTag(), Integer.MAX_VALUE)))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
// 基于前插还是后插排序
|
||||
String customAddType = runtimeService.getVariable(processInstanceId, SIGN_BIZ_CUSTOM_DOC_ADD_ORDER_TYPE, String.class);
|
||||
if (Objects.equals("last", customAddType)) {
|
||||
docTemplates.addAll(customDocTemplates);
|
||||
} else {
|
||||
docTemplates.addAll(0, customDocTemplates);
|
||||
}
|
||||
}
|
||||
processSign.setDocTemplate(docTemplates);
|
||||
|
||||
List<SignFileDTO> archives = replaceTemplateVariable(docTemplates, processEngineConfiguration, processInstanceId);
|
||||
processSign.setFileArchive(archives);
|
||||
}
|
||||
if (CollectionUtils.isEmpty(customDocs)) {
|
||||
processSign.setFileArchive(Collections.emptyList());
|
||||
}
|
||||
// 复制基础模板
|
||||
List<SignFileDTO> docTemplates = copyTempTemplate(docs);
|
||||
|
||||
List<SignFileDTO> customDocTemplates = new ArrayList<>();
|
||||
for (CustomDocDTO customDoc : customDocs) {
|
||||
customDocTemplates.add(SignFileDTO.builder()
|
||||
.id(customDoc.getId())
|
||||
.fileName(customDoc.getFileName())
|
||||
.templateName(customDoc.getFileName())
|
||||
.fileTag(customDoc.getFileTag())
|
||||
.fileCode(customDoc.getFileCode())
|
||||
.fileKey(customDoc.getFileKey())
|
||||
.fileType(customDoc.getFileType())
|
||||
.build());
|
||||
}
|
||||
List<String> basedFileTagOrder = runtimeService.getVariable(processInstanceId, SIGN_BIZ_BASED_FILE_TAG_ORDER, List.class);
|
||||
if (Objects.nonNull(basedFileTagOrder)) {
|
||||
docTemplates.addAll(customDocTemplates);
|
||||
// 基于 fileTag 排序
|
||||
Map<String, Integer> fileTagOrderMap = IntStream.range(0, basedFileTagOrder.size())
|
||||
.boxed()
|
||||
.collect(Collectors.toMap(basedFileTagOrder::get, i -> i, (a, b) -> a));
|
||||
|
||||
docTemplates.sort(Comparator.comparing(d -> fileTagOrderMap.getOrDefault(d.getFileTag(), Integer.MAX_VALUE)));
|
||||
docTemplates = docTemplates.stream().sorted(Comparator.comparingInt(d -> fileTagOrderMap.getOrDefault(d.getFileTag(), Integer.MAX_VALUE)))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
// 基于前插还是后插排序
|
||||
String customAddType = runtimeService.getVariable(processInstanceId, SIGN_BIZ_CUSTOM_DOC_ADD_ORDER_TYPE, String.class);
|
||||
if (Objects.equals("last", customAddType)) {
|
||||
docTemplates.addAll(customDocTemplates);
|
||||
} else {
|
||||
docTemplates.addAll(0, customDocTemplates);
|
||||
}
|
||||
}
|
||||
processSign.setDocTemplate(docTemplates);
|
||||
|
||||
List<SignFileDTO> archives = replaceTemplateVariable(docTemplates, processEngineConfiguration, processInstanceId);
|
||||
processSign.setFileArchive(archives);
|
||||
// 没有可用的文档,但仍然记录库表
|
||||
extAxProcessSignService.save(processSign);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user