feat(REQ-3004) - 修复一些特殊配置引起的异常
This commit is contained in:
parent
cfce9d7cd8
commit
e483d76a3a
@ -156,7 +156,7 @@ public class GetFormInstanceAndPermissionCmd implements Command<FormInstanceInfo
|
||||
// 假设通过分享功能,分享了审批,那么被分享人不应该看到表单
|
||||
ExtAxProcessLog starterLog = logs.stream().filter(e -> Objects.equals(NODE_STARTER.getType(), e.getActivityId()))
|
||||
.findFirst().orElse(new ExtAxProcessLog());
|
||||
starterLog.getFormFieldPermissionConf().forEach(perm -> {
|
||||
ListUtils.emptyIfNull(starterLog.getFormFieldPermissionConf()).forEach(perm -> {
|
||||
// 防预编程, 强制设置为 hidden
|
||||
perm.setRequired(false);
|
||||
perm.setEditable(false);
|
||||
@ -237,10 +237,8 @@ public class GetFormInstanceAndPermissionCmd implements Command<FormInstanceInfo
|
||||
FormRepositoryService formRepositoryService = formEngineConfiguration.getFormRepositoryService();
|
||||
FormDefinition formDefinition = formRepositoryService.createFormDefinitionQuery().deploymentId(relation.getFormDeploymentId()).singleResult();
|
||||
|
||||
FormService formService = formEngineConfiguration.getFormService();
|
||||
// 获取表单定义+字段内容
|
||||
return commandContext.getCommandExecutor().execute(new CustomGetFormInstanceModelCmd(null, null, formDefinition.getId(), taskId, processInstanceId, instance.getTenantId() ,null, false ));
|
||||
// return formService.getFormInstanceModelById(formDefinition.getId(), taskId, processInstanceId, null, instance.getTenantId(), false);
|
||||
}
|
||||
|
||||
private void preCheckParam() {
|
||||
|
||||
@ -99,13 +99,15 @@ public class AggregateModelServiceImpl implements AggregateModelService {
|
||||
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(definitionId).singleResult();
|
||||
String formDeploymentId = formModelService.deployFormModelById(formModel.getId(), tenantId, processDefinition.getDeploymentId());
|
||||
|
||||
// 保存关联关系
|
||||
BpmnFormRelationCreateDTO relation = new BpmnFormRelationCreateDTO();
|
||||
relation.setKey(model.getKey());
|
||||
relation.setBpmnDefinitionId(definitionId);
|
||||
relation.setFormDeploymentId(formDeploymentId);
|
||||
relation.setTenantId(tenantId);
|
||||
formRelationService.insert(relation);
|
||||
if (StringUtils.hasText(formDeploymentId)) {
|
||||
// 保存关联关系
|
||||
BpmnFormRelationCreateDTO relation = new BpmnFormRelationCreateDTO();
|
||||
relation.setKey(model.getKey());
|
||||
relation.setBpmnDefinitionId(definitionId);
|
||||
relation.setFormDeploymentId(formDeploymentId);
|
||||
relation.setTenantId(tenantId);
|
||||
formRelationService.insert(relation);
|
||||
}
|
||||
|
||||
return definitionId;
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import cn.axzo.workflow.common.model.response.form.model.FormModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.FormModelService;
|
||||
import cn.axzo.workflow.form.service.converter.FormModelConverter;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.ManagementService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.repository.Model;
|
||||
@ -44,6 +45,7 @@ import static cn.axzo.workflow.common.util.BpmnNativeQueryUtil.sqlConnectors;
|
||||
* @author wangli
|
||||
* @since 2023/7/25 10:13
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class FormModelServiceImpl implements FormModelService {
|
||||
|
||||
@ -215,9 +217,21 @@ public class FormModelServiceImpl implements FormModelService {
|
||||
if (Objects.nonNull(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS);
|
||||
}
|
||||
byte[] modelEditorSource = repositoryService.getModelEditorSource(model.getId());
|
||||
String modelStr;
|
||||
if (StringUtils.hasText(modelStr = new String(modelEditorSource))) {
|
||||
try {
|
||||
FormDefinitionDTO formDefinitionDTO = JSON.parseObject(modelStr, FormDefinitionDTO.class);
|
||||
if (Objects.isNull(formDefinitionDTO) || CollectionUtils.isEmpty(formDefinitionDTO.getFields())) {
|
||||
return null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("form model parse error: {}", e.getMessage(), e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
FormDeployment deploy = formRepositoryService.createDeployment()
|
||||
.addFormDefinition(model.getKey() + FORM_FILE_SUFFIX,
|
||||
new String(repositoryService.getModelEditorSource(model.getId())))
|
||||
.addFormDefinition(model.getKey() + FORM_FILE_SUFFIX, modelStr)
|
||||
.name(model.getName())
|
||||
.category(model.getKey())
|
||||
.tenantId(model.getTenantId())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user