update - 调整模型,增加描述字段,以支持模型的备注
This commit is contained in:
parent
b898679f8d
commit
a57b14595e
@ -28,8 +28,6 @@ public interface BpmConstants {
|
||||
String START_EVENT_ID = "startEventNode";
|
||||
String END_EVENT_ID = "endEventNode";
|
||||
String BPM_MODEL_CATEGORY = "bpm_model_category";
|
||||
String MODEL_META_INFO_PROCESS = "MODEL_PROCESS";
|
||||
String MODEL_META_INFO_FORM = "MODEL_FORM";
|
||||
String BPM_ALLOW_SKIP_USER_TASK = "_INTERNAL_SKIP_USER_TASK";
|
||||
/**
|
||||
* 用于国内审批节点填写审批建议
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package cn.axzo.workflow.common.constant;
|
||||
|
||||
/**
|
||||
* 模型的 MetaInfo 所使用的常量
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/9/26 14:30
|
||||
*/
|
||||
public interface MetaInfoConstants {
|
||||
|
||||
String MODEL_TYPE = "modelType";
|
||||
String MODEL_TYPE_PROCESS = "MODEL_PROCESS";
|
||||
String MODEL_TYPE_FORM = "MODEL_FORM";
|
||||
|
||||
|
||||
String MODEL_DESCRIPTION = "modelDescription";
|
||||
}
|
||||
@ -36,6 +36,12 @@ public class BpmnModelCreateDTO {
|
||||
@ApiModelProperty(value = "自定义分类", notes = "由业务自定义", example = "1")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@ApiModelProperty(value = "描述", notes = "存放与底层模型中 meta_info 中")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 流程的Json 结构
|
||||
*/
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.framework.jackson.utility.JSON;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelUpdateDTO;
|
||||
@ -26,10 +27,12 @@ import org.springframework.util.StringUtils;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmConstants.MODEL_META_INFO_PROCESS;
|
||||
import static cn.axzo.workflow.common.constant.MetaInfoConstants.*;
|
||||
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.*;
|
||||
import static cn.axzo.workflow.core.service.impl.FormModelServiceImpl.countSql;
|
||||
import static cn.axzo.workflow.core.service.impl.FormModelServiceImpl.sqlConnectors;
|
||||
@ -77,8 +80,8 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
}
|
||||
|
||||
baseQuerySql.append(sqlConnectors(baseQuerySql))
|
||||
.append(" META_INFO_ = #{metaInfo}");
|
||||
query.parameter("metaInfo", MODEL_META_INFO_PROCESS);
|
||||
.append(" META_INFO_ like #{metaInfo}");
|
||||
query.parameter("metaInfo", "%" + MODEL_TYPE_PROCESS + "%");
|
||||
NativeModelQuery dataSqlQuery = query.sql(baseQuerySql.append(" order by LAST_UPDATE_TIME_ desc").toString());
|
||||
List<Model> models = dataSqlQuery
|
||||
.listPage((dto.getPageNo() - 1) * dto.getPageSize(), dto.getPageSize());
|
||||
@ -99,9 +102,13 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
throw new WorkflowEngineException(MODEL_KEY_EXISTS, dto.getKey());
|
||||
}
|
||||
|
||||
Map<String, String> metaInfoMap = new HashMap<>();
|
||||
metaInfoMap.put(MODEL_TYPE, MODEL_TYPE_PROCESS);
|
||||
metaInfoMap.put(MODEL_DESCRIPTION, dto.getDescription());
|
||||
|
||||
Model model = repositoryService.newModel();
|
||||
model.setName(dto.getName());
|
||||
model.setMetaInfo(MODEL_META_INFO_PROCESS);
|
||||
model.setMetaInfo(JSON.toJSONString(metaInfoMap));
|
||||
model.setCategory(dto.getCategory());
|
||||
model.setKey(dto.getKey());
|
||||
model.setTenantId(dto.getTenantId());
|
||||
@ -138,7 +145,7 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
@Override
|
||||
public BpmnModelDetailVO getById(String processModelId, @Nullable String tenantId) {
|
||||
Model model = repositoryService.getModel(processModelId);
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
if (Objects.isNull(model) || !model.getMetaInfo().contains(MODEL_TYPE_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, processModelId);
|
||||
}
|
||||
if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
@ -153,7 +160,7 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
@Override
|
||||
public BpmnModelDetailVO getByKey(String processModelKey, @Nullable String tenantId) {
|
||||
Model model = repositoryService.createModelQuery().modelKey(processModelKey).singleResult();
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
if (Objects.isNull(model) || !model.getMetaInfo().contains(MODEL_TYPE_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_KEY_NOT_EXISTS, processModelKey);
|
||||
}
|
||||
if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
@ -174,8 +181,12 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
if (ObjectUtils.isEmpty(originModel)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, dto.getProcessModelId());
|
||||
}
|
||||
|
||||
Map<String, String> metaInfoMap = JSON.parseMap(originModel.getMetaInfo(), String.class, String.class);
|
||||
metaInfoMap.put(MODEL_DESCRIPTION, dto.getDescription());
|
||||
|
||||
originModel.setName(dto.getName());
|
||||
originModel.setMetaInfo(MODEL_META_INFO_PROCESS);
|
||||
originModel.setMetaInfo(JSON.toJSONString(metaInfoMap));
|
||||
originModel.setCategory(dto.getCategory());
|
||||
originModel.setKey(dto.getKey());
|
||||
originModel.setTenantId(dto.getTenantId());
|
||||
@ -237,7 +248,7 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
public void deleteBpmModelById(String processModelId, @Nullable String tenantId) {
|
||||
// 校验流程模型存在
|
||||
Model model = repositoryService.getModel(processModelId);
|
||||
if (Objects.isNull(model) || !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
if (Objects.isNull(model) || !model.getMetaInfo().contains(MODEL_TYPE_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, processModelId);
|
||||
}
|
||||
if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
@ -254,7 +265,7 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
modelQuery.modelTenantId(tenantId);
|
||||
}
|
||||
Model model = modelQuery.singleResult();
|
||||
if (Objects.isNull(model) || !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
if (Objects.isNull(model) || !model.getMetaInfo().contains(MODEL_TYPE_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_NOT_EXISTS);
|
||||
}
|
||||
repositoryService.deleteModel(model.getId());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user