feat(REQ-3004) - 集成表单引擎测试

This commit is contained in:
wangli 2024-11-11 13:59:25 +08:00
parent 424da03bd2
commit d5ed0367d5
13 changed files with 128 additions and 48 deletions

View File

@ -2,7 +2,6 @@ package cn.axzo.workflow.common.model.request.bpmn.model;
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonModel; import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonModel;
import cn.axzo.workflow.common.model.request.form.FormJsonModel; import cn.axzo.workflow.common.model.request.form.FormJsonModel;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldsDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -12,7 +11,6 @@ import org.hibernate.validator.constraints.Length;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* 创建流程模型的入参模型 * 创建流程模型的入参模型

View File

@ -1,6 +1,6 @@
package cn.axzo.workflow.common.model.request.form; package cn.axzo.workflow.common.model.request.form;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldsDTO; import cn.axzo.workflow.common.model.request.form.definition.FormFieldDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -32,5 +32,5 @@ public class FormJsonModel implements Serializable {
@ApiModelProperty(value = "表单模型") @ApiModelProperty(value = "表单模型")
@Valid @Valid
private List<FormFieldsDTO> formFields; private List<FormFieldDTO> formFields;
} }

View File

@ -32,7 +32,7 @@ public class FormDefinitionDTO {
@ApiModelProperty(value = "表单定义的具体字段项", example = "[{'': '''}]") @ApiModelProperty(value = "表单定义的具体字段项", example = "[{'': '''}]")
@Valid @Valid
private List<FormFieldsDTO> fields; private List<FormFieldDTO> fields;
@ApiModelProperty(value = "描述") @ApiModelProperty(value = "描述")
private String description; private String description;

View File

@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -20,7 +19,7 @@ import java.util.Map;
*/ */
@ApiModel("表单定义中的字段相关属性入参模型") @ApiModel("表单定义中的字段相关属性入参模型")
@Data @Data
public class FormFieldsDTO { public class FormFieldDTO {
@ApiModelProperty(value = "表单字段类型", hidden = true) @ApiModelProperty(value = "表单字段类型", hidden = true)
@NotBlank(message = "字段类型不能为空") @NotBlank(message = "字段类型不能为空")

View File

@ -1,6 +1,6 @@
package cn.axzo.workflow.common.model.request.form.model; package cn.axzo.workflow.common.model.request.form.model;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldsDTO; import cn.axzo.workflow.common.model.request.form.definition.FormFieldDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -37,7 +37,7 @@ public class FormModelCreateDTO {
@ApiModelProperty(value = "表单模型的 Json 结构") @ApiModelProperty(value = "表单模型的 Json 结构")
@Valid @Valid
private List<FormFieldsDTO> formFields; private List<FormFieldDTO> formFields;
@ApiModelProperty(value = "租户 ID", example = "1") @ApiModelProperty(value = "租户 ID", example = "1")
private String tenantId = NO_TENANT_ID; private String tenantId = NO_TENANT_ID;

View File

@ -2,12 +2,14 @@ package cn.axzo.workflow.common.model.response.bpmn.process;
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonModel; import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonModel;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import java.util.Date; import java.util.Date;
import java.util.List;
@ApiModel("流程定义响应模型") @ApiModel("流程定义响应模型")
@Data @Data
@ -57,6 +59,11 @@ public class BpmnProcessDefinitionVO {
@ApiModelProperty(value = "状态 1:生效中(激活) 2:历史(挂起)", required = true, example = "1", notes = "参见 SuspensionState 枚举") @ApiModelProperty(value = "状态 1:生效中(激活) 2:历史(挂起)", required = true, example = "1", notes = "参见 SuspensionState 枚举")
private Integer suspensionState; private Integer suspensionState;
/**
* 表单字段集合
*/
@ApiModelProperty(value = "表单字段集合")
private List<FormFieldDTO> formFields;
/** /**
* 流程模型 JSON 数据 * 流程模型 JSON 数据
*/ */

View File

@ -1,6 +1,6 @@
package cn.axzo.workflow.common.model.response.form.definition; package cn.axzo.workflow.common.model.response.form.definition;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldsDTO; import cn.axzo.workflow.common.model.request.form.definition.FormFieldDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -16,15 +16,15 @@ import java.util.List;
@ApiModel("表单定义的响应模型") @ApiModel("表单定义的响应模型")
@Data @Data
public class FormDefinitionVO { public class FormDefinitionVO {
@ApiModelProperty(value = "模型定义 ID")
private String formDefinitionId;
@ApiModelProperty(value = "模型名称") @ApiModelProperty(value = "模型名称")
private String name; private String name;
@ApiModelProperty(value = "模型 KEY") @ApiModelProperty(value = "模型 KEY")
private String key; private String key;
@ApiModelProperty(value = "自定义分类")
private String category;
@ApiModelProperty(value = "版本") @ApiModelProperty(value = "版本")
private Integer version; private Integer version;
@ -32,6 +32,6 @@ public class FormDefinitionVO {
private String tenantId; private String tenantId;
@ApiModelProperty(value = "表单模型字段") @ApiModelProperty(value = "表单模型字段")
private List<FormFieldsDTO> fields; private List<FormFieldDTO> fields;
} }

View File

@ -15,12 +15,14 @@ import org.flowable.engine.repository.Model;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Objects; import java.util.Objects;
import static cn.axzo.workflow.common.constant.BpmnConstants.FORM_FILE_SUFFIX; import static cn.axzo.workflow.common.constant.BpmnConstants.FORM_FILE_SUFFIX;
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
/** /**
* 聚合审批模型和表单模型的操作服务 * 聚合审批模型和表单模型的操作服务
@ -51,6 +53,7 @@ public class AggregateModelServiceImpl implements AggregateModelService {
formModelDto.setKey(dto.getKey()); formModelDto.setKey(dto.getKey());
formModelDto.setName(dto.getName()); formModelDto.setName(dto.getName());
formModelDto.setFormFields(dto.getFormJsonModel().getFormFields()); formModelDto.setFormFields(dto.getFormJsonModel().getFormFields());
formModelDto.setTenantId(StringUtils.hasText(dto.getTenantId()) ? dto.getTenantId() : NO_TENANT_ID);
if (Objects.isNull(formModel)) { if (Objects.isNull(formModel)) {
formModelService.createFormModel(formModelDto); formModelService.createFormModel(formModelDto);
} else { } else {
@ -83,8 +86,10 @@ public class AggregateModelServiceImpl implements AggregateModelService {
String definitionId = bpmnProcessModelService.deployBpmModelById(processModelId, tenantId, operator); String definitionId = bpmnProcessModelService.deployBpmModelById(processModelId, tenantId, operator);
Model model = this.repositoryService.getModel(processModelId); Model model = this.repositoryService.getModel(processModelId);
Model formModel = repositoryService.createModelQuery().modelKey(model.getKey()) Model formModel = repositoryService.createModelQuery()
.modelKey(model.getKey())
.modelCategory(FORM_FILE_SUFFIX) .modelCategory(FORM_FILE_SUFFIX)
.modelTenantId(StringUtils.hasText(tenantId) ? tenantId : NO_TENANT_ID)
.singleResult(); .singleResult();
if (Objects.isNull(formModel)) { if (Objects.isNull(formModel)) {
return definitionId; return definitionId;

View File

@ -1,15 +1,18 @@
package cn.axzo.workflow.core.service.impl; package cn.axzo.workflow.core.service.impl;
import cn.axzo.workflow.common.exception.WorkflowEngineException;
import cn.axzo.workflow.common.model.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO; import cn.axzo.workflow.common.model.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessDefinitionPageDTO; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessDefinitionPageDTO;
import cn.axzo.workflow.common.model.request.form.definition.FromDefinitionSearchDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO; import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO;
import cn.axzo.workflow.common.exception.WorkflowEngineException; import cn.axzo.workflow.common.model.response.form.definition.FormDefinitionVO;
import cn.axzo.workflow.core.common.utils.BpmnJsonConverterUtil; import cn.axzo.workflow.core.common.utils.BpmnJsonConverterUtil;
import cn.axzo.workflow.core.repository.entity.ExtAxReProcDef; import cn.axzo.workflow.core.repository.entity.ExtAxReProcDef;
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService; import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
import cn.axzo.workflow.core.service.ExtAxReProcDefService; import cn.axzo.workflow.core.service.ExtAxReProcDefService;
import cn.axzo.workflow.core.service.converter.BpmnProcessDefinitionConverter; import cn.axzo.workflow.core.service.converter.BpmnProcessDefinitionConverter;
import cn.axzo.workflow.form.service.FormDefinitionService;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -37,7 +40,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.axzo.workflow.common.constant.BpmnConstants.BPMN_FILE_SUFFIX;
import static cn.axzo.workflow.common.code.BpmnModelRespCode.BPMN_BYTES_NOT_EXISTS; import static cn.axzo.workflow.common.code.BpmnModelRespCode.BPMN_BYTES_NOT_EXISTS;
import static cn.axzo.workflow.common.code.BpmnModelRespCode.MODEL_NOT_EXISTS; import static cn.axzo.workflow.common.code.BpmnModelRespCode.MODEL_NOT_EXISTS;
import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_DEPLOY_ID_NOT_EXISTS; import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_DEPLOY_ID_NOT_EXISTS;
@ -47,6 +49,7 @@ import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS
import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_KEY_NOT_MATCH; import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_KEY_NOT_MATCH;
import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_NAME_NOT_MATCH; import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_NAME_NOT_MATCH;
import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_RESULT_TOO_MANY; import static cn.axzo.workflow.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_RESULT_TOO_MANY;
import static cn.axzo.workflow.common.constant.BpmnConstants.BPMN_FILE_SUFFIX;
import static cn.axzo.workflow.core.common.utils.BpmnCollectionUtils.addIfNotNull; import static cn.axzo.workflow.core.common.utils.BpmnCollectionUtils.addIfNotNull;
import static cn.axzo.workflow.core.common.utils.BpmnCollectionUtils.convertMap; import static cn.axzo.workflow.core.common.utils.BpmnCollectionUtils.convertMap;
import static java.util.Collections.emptyList; import static java.util.Collections.emptyList;
@ -63,6 +66,8 @@ public class BpmnProcessDefinitionServiceImpl implements BpmnProcessDefinitionSe
private BpmnProcessDefinitionConverter processDefinitionConverter; private BpmnProcessDefinitionConverter processDefinitionConverter;
@Resource @Resource
private String serviceVersion; private String serviceVersion;
@Resource
private FormDefinitionService formDefinitionService;
@Override @Override
public String createProcessDefinition(Model model, byte[] bpmnBytes) { public String createProcessDefinition(Model model, byte[] bpmnBytes) {
@ -185,6 +190,14 @@ public class BpmnProcessDefinitionServiceImpl implements BpmnProcessDefinitionSe
} }
BpmnProcessDefinitionVO vo = processDefinitionConverter.toVo(processDefinition); BpmnProcessDefinitionVO vo = processDefinitionConverter.toVo(processDefinition);
vo.setJsonModel(BpmnJsonConverterUtil.convertToJson(repositoryService.getBpmnModel(id))); vo.setJsonModel(BpmnJsonConverterUtil.convertToJson(repositoryService.getBpmnModel(id)));
FromDefinitionSearchDTO formDefinitionSearch = new FromDefinitionSearchDTO();
formDefinitionSearch.setKey(processDefinition.getKey());
formDefinitionSearch.setTenantId(processDefinition.getTenantId());
FormDefinitionVO formDefinitionVO = formDefinitionService.get(formDefinitionSearch);
if (Objects.nonNull(formDefinitionVO)) {
vo.setFormFields(formDefinitionVO.getFields());
}
return vo; return vo;
} }

View File

@ -0,0 +1,30 @@
package cn.axzo.workflow.form.service.converter;
/**
* TODO
*
* @author wangli
* @since 2024-11-11 13:42
*/
import java.util.ArrayList;
import java.util.List;
public class ConversionUtils {
public static List<String> convertObjectToList(Object obj) {
if (obj instanceof List) {
List<?> list = (List<?>) obj;
List<String> stringList = new ArrayList<>();
for (Object item : list) {
if (item instanceof String) {
stringList.add((String) item);
} else {
// 处理非字符串类型的情况可以选择忽略抛出异常或进行其他处理
}
}
return stringList;
} else {
// 如果输入不是列表类型返回空列表或进行其他处理
return new ArrayList<>();
}
}
}

View File

@ -0,0 +1,34 @@
package cn.axzo.workflow.form.service.converter;
import cn.axzo.workflow.common.model.request.form.definition.FormFieldDTO;
import org.flowable.form.model.FormField;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.Arrays;
import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
/**
* TODO
*
* @author wangli
* @since 2024-11-11 11:27
*/
@Mapper(
componentModel = "spring",
nullValueCheckStrategy = ALWAYS,
imports = {Arrays.class, ConversionUtils.class}
)
public interface FormFieldConverter extends EntityConverter<FormFieldDTO, FormField> {
@Mapping(target = "id", source = "entity.id")
@Mapping(target = "name", source = "entity.name")
@Mapping(target = "type", source = "entity.type")
@Mapping(target = "value", expression = "java(ConversionUtils.convertObjectToList(entity.getValue()))")
@Mapping(target = "required", source = "entity.required")
@Mapping(target = "readOnly", source = "entity.readOnly")
@Mapping(target = "placeholder", source = "entity.placeholder")
@Mapping(target = "params", source = "entity.params")
FormFieldDTO toVo(FormField entity);
}

View File

@ -4,25 +4,29 @@ import cn.axzo.framework.jackson.utility.JSON;
import cn.axzo.workflow.common.model.request.form.definition.FromDefinitionSearchDTO; import cn.axzo.workflow.common.model.request.form.definition.FromDefinitionSearchDTO;
import cn.axzo.workflow.common.model.response.form.definition.FormDefinitionVO; import cn.axzo.workflow.common.model.response.form.definition.FormDefinitionVO;
import cn.axzo.workflow.form.service.FormDefinitionService; import cn.axzo.workflow.form.service.FormDefinitionService;
import cn.axzo.workflow.form.service.converter.FormFieldConverter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.javassist.Loader;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.common.engine.impl.util.IoUtil; import org.flowable.common.engine.impl.util.IoUtil;
import org.flowable.engine.FormService;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.form.api.FormDefinition; import org.flowable.form.api.FormDefinition;
import org.flowable.form.api.FormDefinitionQuery; import org.flowable.form.api.FormDefinitionQuery;
import org.flowable.form.api.FormInfo; import org.flowable.form.api.FormInfo;
import org.flowable.form.api.FormRepositoryService; import org.flowable.form.api.FormRepositoryService;
import org.flowable.form.model.FormField;
import org.flowable.form.model.SimpleFormModel;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import static cn.axzo.workflow.common.constant.BpmnConstants.FORM_FILE_SUFFIX; import static cn.axzo.workflow.common.constant.BpmnConstants.FORM_FILE_SUFFIX;
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
/** /**
@ -38,11 +42,7 @@ public class FormDefinitionServiceImpl implements FormDefinitionService {
@Resource @Resource
private FormRepositoryService formRepositoryService; private FormRepositoryService formRepositoryService;
@Resource @Resource
private RepositoryService repositoryService; private FormFieldConverter formFieldConverter;
@Resource
private FormService formService;
@Resource
private RuntimeService runtimeService;
@Override @Override
public FormDefinitionVO getDraft(FromDefinitionSearchDTO dto) { public FormDefinitionVO getDraft(FromDefinitionSearchDTO dto) {
@ -52,28 +52,22 @@ public class FormDefinitionServiceImpl implements FormDefinitionService {
@Override @Override
public FormDefinitionVO get(FromDefinitionSearchDTO dto) { public FormDefinitionVO get(FromDefinitionSearchDTO dto) {
FormDefinitionQuery definitionQuery = formRepositoryService.createFormDefinitionQuery() FormInfo formModel;
.formTenantId(dto.getTenantId()); try {
if (StringUtils.hasText(dto.getKey())) { formModel = formRepositoryService.getFormModelByKey(dto.getKey(), dto.getTenantId(), true);
definitionQuery.formDefinitionKey(dto.getKey()); }catch (FlowableObjectNotFoundException e){
} return null;
if (StringUtils.hasText(dto.getDeploymentId())) {
definitionQuery.deploymentId(dto.getDeploymentId());
} }
FormDefinition formDefinition; FormDefinitionVO formDefinitionVO = new FormDefinitionVO();
if (Objects.nonNull(dto.getVersion())) { formDefinitionVO.setFormDefinitionId(formModel.getId());
formDefinition = definitionQuery.formVersion(dto.getVersion()) formDefinitionVO.setName(formModel.getName());
.singleResult(); formDefinitionVO.setKey(formModel.getKey());
} else { formDefinitionVO.setVersion(formModel.getVersion());
formDefinition = definitionQuery.latestVersion() formDefinitionVO.setTenantId(dto.getTenantId());
.singleResult(); List<FormField> fields = ((SimpleFormModel) formModel.getFormModel()).getFields();
} formDefinitionVO.setFields(formFieldConverter.toVos(fields));
return formDefinitionVO;
InputStream formDefinitionResource = formRepositoryService.getFormDefinitionResource(formDefinition.getId());
byte[] bytes = IoUtil.readInputStream(formDefinitionResource, dto.getKey() + FORM_FILE_SUFFIX);
IoUtil.closeSilently(formDefinitionResource);
return JSON.parseObject(new String(bytes, StandardCharsets.UTF_8), FormDefinitionVO.class);
} }

View File

@ -13,15 +13,14 @@ import cn.azxo.framework.common.model.CommonResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.FlowElement; import org.flowable.bpmn.model.FlowElement;
import org.flowable.common.engine.impl.util.IoUtil; import org.flowable.common.engine.impl.util.IoUtil;
import org.flowable.engine.FormService;
import org.flowable.engine.HistoryService; import org.flowable.engine.HistoryService;
import org.flowable.engine.RepositoryService; import org.flowable.engine.RepositoryService;
import org.flowable.engine.RuntimeService; import org.flowable.engine.RuntimeService;
import org.flowable.engine.form.StartFormData;
import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.repository.Deployment; import org.flowable.engine.repository.Deployment;
import org.flowable.form.api.FormInfo; import org.flowable.form.api.FormInfo;
import org.flowable.form.api.FormRepositoryService; import org.flowable.form.api.FormRepositoryService;
import org.flowable.form.api.FormService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -267,7 +266,8 @@ public class TestController {
@GetMapping("form") @GetMapping("form")
public CommonResponse<FormInfo> getForm(@RequestParam String definitionId, @RequestParam(required = false) String processInstanceId) { public CommonResponse<FormInfo> getForm(@RequestParam String definitionId, @RequestParam(required = false) String processInstanceId) {
// FormInfo startFormModel = bpmnProcessInstanceService.getStartFormModel(definitionId, processInstanceId); // FormInfo startFormModel = bpmnProcessInstanceService.getStartFormModel(definitionId, processInstanceId);
StartFormData startFormData = formService.getStartFormData(definitionId); // formService.getFormInstanceModelByKey("we", null, null, null);
FormInfo we = formService.getFormModelWithVariablesByKey("we", null, null);
FormInfo formModelByKey = formRepositoryService.getFormModelByKey("we"); FormInfo formModelByKey = formRepositoryService.getFormModelByKey("we");
FormInfo startFormModel = runtimeService.getStartFormModel(definitionId, processInstanceId); FormInfo startFormModel = runtimeService.getStartFormModel(definitionId, processInstanceId);
return CommonResponse.success(null); return CommonResponse.success(null);