Compare commits

...

2 Commits

5 changed files with 31 additions and 14 deletions

View File

@ -58,4 +58,11 @@ public class CustomDocDTO implements Serializable {
@NotNull(message = "业务自定义文件的类型不能为空")
private FileTypeEnum fileType;
/**
* 文件是否需要变量替换默认不替换
* <p>
* 不建议无脑设置为 true否则可能会影响性能
*/
private Boolean needReplaceVariables = false;
}

View File

@ -57,4 +57,9 @@ public class SignFileDTO implements Serializable {
* 替换变量后的文件 fileKey
*/
private String fileKey;
/**
* 是否需要替换变量
*/
private Boolean needReplaceVariables;
}

View File

@ -63,6 +63,7 @@ public class OperationFileArchiveActivityEvent_101_Listener extends AbstractBpmn
List<VariableObjectDTO> wpsReplaceVariables = wpsUtil.getWpsReplaceVariables(processEngineConfiguration, execution.getProcessInstanceId());
processSign.getFileArchive().stream().filter(i -> Objects.equals(i.getFileType(), FileTypeEnum.WORD)
|| Objects.equals(i.getFileType(), FileTypeEnum.EXCEL))
.filter(i -> Boolean.TRUE.equals(i.getNeedReplaceVariables()))
.forEach(docBaseVO -> {
String newFileKey = wpsUtil.wpsFileVariableReplace(wpsReplaceVariables, null, docBaseVO.getFileKey(), docBaseVO.getTemplateName() + docBaseVO.getFileType().getSuffix());
docBaseVO.setFileKey(newFileKey);

View File

@ -81,6 +81,7 @@ public class FileArchiveProcessEventListener extends AbstractBpmnEventListener<P
List<VariableObjectDTO> wpsReplaceVariables = wpsUtil.getWpsReplaceVariables(processEngineConfiguration, instance.getId());
processSign.getFileArchive().stream().filter(i -> Objects.equals(i.getFileType(), FileTypeEnum.WORD)
|| Objects.equals(i.getFileType(), FileTypeEnum.EXCEL))
.filter(i -> Boolean.TRUE.equals(i.getNeedReplaceVariables()))
.forEach(docBaseVO -> {
String newFileKey = wpsUtil.wpsFileVariableReplace(wpsReplaceVariables, null, docBaseVO.getFileKey(), docBaseVO.getTemplateName() + docBaseVO.getFileType().getSuffix());
docBaseVO.setFileKey(newFileKey);

View File

@ -125,6 +125,7 @@ public class FirstCopyTemplateFileTaskEvent_105_Listener extends AbstractBpmnEve
.fileCode(customDoc.getFileCode())
.fileKey(customDoc.getFileKey())
.fileType(customDoc.getFileType())
.needReplaceVariables(Boolean.TRUE.equals(customDoc.getNeedReplaceVariables()))
.build());
}
List<String> basedFileTagOrder = runtimeService.getVariable(processInstanceId, SIGN_BIZ_BASED_FILE_TAG_ORDER, List.class);
@ -158,20 +159,21 @@ public class FirstCopyTemplateFileTaskEvent_105_Listener extends AbstractBpmnEve
private List<SignFileDTO> replaceTemplateVariable(List<SignFileDTO> docTemplates, ProcessEngineConfigurationImpl processEngineConfiguration, String processInstanceId) {
List<SignFileDTO> archives = new ArrayList<>();
List<VariableObjectDTO> wpsReplaceVariables = wpsUtil.getWpsReplaceVariables(processEngineConfiguration, processInstanceId);
docTemplates.forEach(template -> {
SignFileDTO signFileDTO = new SignFileDTO();
signFileDTO.setId(template.getId());
signFileDTO.setFileName(template.getFileName());
signFileDTO.setTemplateName(template.getTemplateName());
signFileDTO.setFileTag(template.getFileTag());
signFileDTO.setFileType(template.getFileType());
signFileDTO.setFileCode(template.getFileCode());
if (Objects.equals(template.getFileType(), FileTypeEnum.WORD) || Objects.equals(template.getFileType(), FileTypeEnum.EXCEL)) {
String fileKey = wpsUtil.wpsFileVariableReplace(wpsReplaceVariables, template.getFileCode(), template.getFileKey(), template.getTemplateName() + template.getFileType().getSuffix());
signFileDTO.setFileKey(fileKey);
}
archives.add(signFileDTO);
});
docTemplates.stream().filter(i -> Boolean.TRUE.equals(i.getNeedReplaceVariables()))
.forEach(template -> {
SignFileDTO signFileDTO = new SignFileDTO();
signFileDTO.setId(template.getId());
signFileDTO.setFileName(template.getFileName());
signFileDTO.setTemplateName(template.getTemplateName());
signFileDTO.setFileTag(template.getFileTag());
signFileDTO.setFileType(template.getFileType());
signFileDTO.setFileCode(template.getFileCode());
if (Objects.equals(template.getFileType(), FileTypeEnum.WORD) || Objects.equals(template.getFileType(), FileTypeEnum.EXCEL)) {
String fileKey = wpsUtil.wpsFileVariableReplace(wpsReplaceVariables, template.getFileCode(), template.getFileKey(), template.getTemplateName() + template.getFileType().getSuffix());
signFileDTO.setFileKey(fileKey);
}
archives.add(signFileDTO);
});
return archives;
}
@ -202,6 +204,7 @@ public class FirstCopyTemplateFileTaskEvent_105_Listener extends AbstractBpmnEve
default:
break;
}
signFileDTO.setNeedReplaceVariables(true);
files.add(signFileDTO);
});
return files;