feat(REQ-3982) - 解决表单解析的问题

This commit is contained in:
wangli 2025-04-25 11:28:33 +08:00
parent 2b42cee012
commit cd2a1b10b7
2 changed files with 27 additions and 20 deletions

View File

@ -35,4 +35,7 @@ public class StartFormSearchDTO {
*/
@ApiModelProperty(value = "是否显示原始的默认值", hidden = true, notes = "如果为 true 则将默认值中的 ${} 变量不进行替换")
private Boolean showOriginDefaultValue = false;
@ApiModelProperty(value = "是否抛出内部异常")
private Boolean throwException = true;
}

View File

@ -38,6 +38,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -94,29 +95,32 @@ public class FormCoreServiceImpl implements FormCoreService {
FormInfo formModel;
try {
formModel = formRepositoryService.getFormModelByKey(dto.getKey(), dto.getTenantId(), true);
BpmnProcessDefinitionVO definitionVO = bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(dto.getKey(), dto.getTenantId());
CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor();
BpmnModel bpmnModel = commandExecutor.execute(new GetBpmnModelCmd(definitionVO.getId()));
BpmnMetaParserHelper.getFormFieldPermissionConf(bpmnModel.getFlowElement(NODE_STARTER.getType()))
.ifPresent(permission -> {
if (formModel.getFormModel() instanceof SimpleFormModel) {
SimpleFormModel simpleFormModel = (SimpleFormModel) formModel.getFormModel();
FormHelper.populateFormModel(simpleFormModel, permission, new HashMap<>(), dto.getShowOriginDefaultValue());
}
});
FormDefinitionVO formDefinitionVO = new FormDefinitionVO();
formDefinitionVO.setFormDefinitionId(formModel.getId());
formDefinitionVO.setName(formModel.getName());
formDefinitionVO.setKey(formModel.getKey());
formDefinitionVO.setVersion(formModel.getVersion());
formDefinitionVO.setTenantId(dto.getTenantId());
List<FormField> fields = ((SimpleFormModel) formModel.getFormModel()).getFields();
formDefinitionVO.setFields(formFieldConverter.toVos(fields));
return formDefinitionVO;
} catch (FlowableObjectNotFoundException e) {
log.warn("can't found form model");
throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS);
if (Objects.equals(Boolean.TRUE, dto.getThrowException())) {
throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS);
}
}
BpmnProcessDefinitionVO definitionVO = bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(dto.getKey(), dto.getTenantId());
CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor();
BpmnModel bpmnModel = commandExecutor.execute(new GetBpmnModelCmd(definitionVO.getId()));
BpmnMetaParserHelper.getFormFieldPermissionConf(bpmnModel.getFlowElement(NODE_STARTER.getType()))
.ifPresent(permission -> {
if (formModel.getFormModel() instanceof SimpleFormModel) {
SimpleFormModel simpleFormModel = (SimpleFormModel) formModel.getFormModel();
FormHelper.populateFormModel(simpleFormModel, permission, new HashMap<>(), dto.getShowOriginDefaultValue());
}
});
FormDefinitionVO formDefinitionVO = new FormDefinitionVO();
formDefinitionVO.setFormDefinitionId(formModel.getId());
formDefinitionVO.setName(formModel.getName());
formDefinitionVO.setKey(formModel.getKey());
formDefinitionVO.setVersion(formModel.getVersion());
formDefinitionVO.setTenantId(dto.getTenantId());
List<FormField> fields = ((SimpleFormModel) formModel.getFormModel()).getFields();
formDefinitionVO.setFields(formFieldConverter.toVos(fields));
return formDefinitionVO;
return null;
}
@Override