feat(RDMP-3845) - 调整公共打印模板返回单选、复选框的数据

This commit is contained in:
wangli 2025-11-20 13:57:17 +08:00
parent 4833b4b85e
commit 530a8f6206

View File

@ -1,15 +1,19 @@
package cn.axzo.workflow.form.service.converter;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldDTO;
import cn.axzo.workflow.common.model.request.form.definition.OptionDTO;
import cn.axzo.workflow.common.model.response.form.instance.FormInstanceVO;
import cn.axzo.workflow.common.model.response.form.model.FormModelVO;
import org.flowable.form.api.FormInstanceInfo;
import org.flowable.form.api.FormModel;
import org.flowable.form.model.FormContainer;
import org.flowable.form.model.FormField;
import org.flowable.form.model.Option;
import org.flowable.form.model.OptionFormField;
import org.flowable.form.model.SimpleFormModel;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
@ -64,6 +68,10 @@ public interface FormInstanceConverter extends EntityConverter<FormInstanceVO, F
formFieldDTO.setValue(ConversionUtils.convertObject(formField.getValue()));
formFieldDTO.setPlaceholder(formField.getPlaceholder());
formFieldDTO.setParams(formField.getParams());
if (formField instanceof OptionFormField) {
OptionFormField optionFormField = (OptionFormField) formField;
formFieldDTO.setOptions(optionsToOptionDTOs(optionFormField.getOptions()));
}
if (formField instanceof FormContainer) {
FormContainer formContainer = (FormContainer) formField;
formFieldDTO.setFieldType(formContainer.getClass().getSimpleName());
@ -72,6 +80,19 @@ public interface FormInstanceConverter extends EntityConverter<FormInstanceVO, F
return formFieldDTO;
}
default List<OptionDTO> optionsToOptionDTOs(List<Option> options) {
if (CollectionUtils.isEmpty(options)) {
return null;
}
return options.stream()
.map(option -> {
OptionDTO optionDTO = new OptionDTO();
optionDTO.setId(option.getId());
optionDTO.setName(option.getName());
return optionDTO;
})
.collect(Collectors.toList());
}
// 辅助方法用于处理List<FormContainer>到List<FormFieldDTO>的转换调用上面自定义的转换方法
default List<FormFieldDTO> formContainersToFormFieldDTOs(List<FormField> formContainers) {