mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-29 22:56:40 +08:00
添加模型编辑key重复校验,添加租户查询,删除忽略token注解
This commit is contained in:
parent
60cd549337
commit
9fd84a7076
@ -1,6 +1,5 @@
|
|||||||
package org.dromara.workflow.controller;
|
package org.dromara.workflow.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -48,7 +47,6 @@ public class ActModelController extends BaseController {
|
|||||||
* "{\"id\":\"admin\",\"firstName\":\"Test\",\"lastName\":\"Administrator\",\"email\":\"admin@flowable.org\",\"fullName\":\"Test Administrator\",\"groups\":[],\"privileges\":[\"access-idm\",\"access-rest-api\",\"access-task\",\"access-modeler\",\"access-admin\"]}";
|
* "{\"id\":\"admin\",\"firstName\":\"Test\",\"lastName\":\"Administrator\",\"email\":\"admin@flowable.org\",\"fullName\":\"Test Administrator\",\"groups\":[],\"privileges\":[\"access-idm\",\"access-rest-api\",\"access-task\",\"access-modeler\",\"access-admin\"]}";
|
||||||
*/
|
*/
|
||||||
@GetMapping("/rest/account")
|
@GetMapping("/rest/account")
|
||||||
@SaIgnore
|
|
||||||
public String getAccount() {
|
public String getAccount() {
|
||||||
|
|
||||||
AccountVo accountVo = new AccountVo();
|
AccountVo accountVo = new AccountVo();
|
||||||
@ -76,7 +74,6 @@ public class ActModelController extends BaseController {
|
|||||||
* @param modelId 模型id
|
* @param modelId 模型id
|
||||||
*/
|
*/
|
||||||
@GetMapping("/rest/models/{modelId}/editor/json")
|
@GetMapping("/rest/models/{modelId}/editor/json")
|
||||||
@SaIgnore
|
|
||||||
public ObjectNode getModelInfo(@PathVariable String modelId) {
|
public ObjectNode getModelInfo(@PathVariable String modelId) {
|
||||||
return iActModelService.getModelInfo(modelId);
|
return iActModelService.getModelInfo(modelId);
|
||||||
}
|
}
|
||||||
@ -88,7 +85,6 @@ public class ActModelController extends BaseController {
|
|||||||
* @param modelId 模型id
|
* @param modelId 模型id
|
||||||
* @param values 模型数据
|
* @param values 模型数据
|
||||||
*/
|
*/
|
||||||
@SaIgnore
|
|
||||||
@Log(title = "模型管理", businessType = BusinessType.UPDATE)
|
@Log(title = "模型管理", businessType = BusinessType.UPDATE)
|
||||||
@PostMapping(value = "/rest/models/{modelId}/editor/json")
|
@PostMapping(value = "/rest/models/{modelId}/editor/json")
|
||||||
public R<Void> editModel(@PathVariable String modelId, @RequestParam MultiValueMap<String, String> values) {
|
public R<Void> editModel(@PathVariable String modelId, @RequestParam MultiValueMap<String, String> values) {
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.dromara.workflow.controller;
|
package org.dromara.workflow.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -26,7 +25,6 @@ import java.nio.charset.StandardCharsets;
|
|||||||
@RequestMapping("/workflow/model")
|
@RequestMapping("/workflow/model")
|
||||||
public class StencilsetRestResource {
|
public class StencilsetRestResource {
|
||||||
|
|
||||||
@SaIgnore
|
|
||||||
@GetMapping(value="/rest/stencil-sets/editor")
|
@GetMapping(value="/rest/stencil-sets/editor")
|
||||||
public String getStencilset() {
|
public String getStencilset() {
|
||||||
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilset.json");
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilset.json");
|
||||||
|
@ -2,6 +2,7 @@ package org.dromara.workflow.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
@ -33,6 +34,7 @@ import java.io.ByteArrayInputStream;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static org.flowable.editor.constants.ModelDataJsonConstants.*;
|
import static org.flowable.editor.constants.ModelDataJsonConstants.*;
|
||||||
|
|
||||||
@ -56,6 +58,7 @@ public class ActModelServiceImpl implements IActModelService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo<Model> getByPage(ModelBo modelBo) {
|
public TableDataInfo<Model> getByPage(ModelBo modelBo) {
|
||||||
ModelQuery query = repositoryService.createModelQuery();
|
ModelQuery query = repositoryService.createModelQuery();
|
||||||
|
query.modelTenantId(LoginHelper.getTenantId());
|
||||||
if (StringUtils.isNotEmpty(modelBo.getName())) {
|
if (StringUtils.isNotEmpty(modelBo.getName())) {
|
||||||
query.modelNameLike("%" + modelBo.getName() + "%");
|
query.modelNameLike("%" + modelBo.getName() + "%");
|
||||||
}
|
}
|
||||||
@ -96,7 +99,7 @@ public class ActModelServiceImpl implements IActModelService {
|
|||||||
String key = modelBo.getKey();
|
String key = modelBo.getKey();
|
||||||
String name = modelBo.getName();
|
String name = modelBo.getName();
|
||||||
String description = modelBo.getDescription();
|
String description = modelBo.getDescription();
|
||||||
Model checkModel = repositoryService.createModelQuery().modelKey(key).singleResult();
|
Model checkModel = repositoryService.createModelQuery().modelKey(key).modelTenantId(LoginHelper.getTenantId()).singleResult();
|
||||||
if (ObjectUtil.isNotNull(checkModel)) {
|
if (ObjectUtil.isNotNull(checkModel)) {
|
||||||
throw new ServiceException("模型key已存在!");
|
throw new ServiceException("模型key已存在!");
|
||||||
}
|
}
|
||||||
@ -144,8 +147,7 @@ public class ActModelServiceImpl implements IActModelService {
|
|||||||
@Override
|
@Override
|
||||||
public ObjectNode getModelInfo(String modelId) {
|
public ObjectNode getModelInfo(String modelId) {
|
||||||
ObjectNode modelNode = null;
|
ObjectNode modelNode = null;
|
||||||
|
Model model = repositoryService.createModelQuery().modelId(modelId).modelTenantId(LoginHelper.getTenantId()).singleResult();
|
||||||
Model model = repositoryService.getModel(modelId);
|
|
||||||
ObjectMapper objectMapper = JsonUtils.getObjectMapper();
|
ObjectMapper objectMapper = JsonUtils.getObjectMapper();
|
||||||
if (model != null) {
|
if (model != null) {
|
||||||
try {
|
try {
|
||||||
@ -190,25 +192,30 @@ public class ActModelServiceImpl implements IActModelService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean editModel(String modelId, MultiValueMap<String, String> values) {
|
public boolean editModel(String modelId, MultiValueMap<String, String> values) {
|
||||||
try {
|
try {
|
||||||
|
Model model = repositoryService.createModelQuery().modelId(modelId).modelTenantId(LoginHelper.getTenantId()).singleResult();
|
||||||
Model model = repositoryService.getModel(modelId);
|
|
||||||
ObjectMapper objectMapper = JsonUtils.getObjectMapper();
|
ObjectMapper objectMapper = JsonUtils.getObjectMapper();
|
||||||
ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
|
ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
|
||||||
|
|
||||||
modelJson.put(MODEL_NAME, values.getFirst("name"));
|
modelJson.put(MODEL_NAME, values.getFirst("name"));
|
||||||
modelJson.put(MODEL_DESCRIPTION, values.getFirst("description"));
|
modelJson.put(MODEL_DESCRIPTION, values.getFirst("description"));
|
||||||
|
modelJson.put(MODEL_REVISION, model.getVersion() + 1);
|
||||||
model.setMetaInfo(modelJson.toString());
|
model.setMetaInfo(modelJson.toString());
|
||||||
model.setName(values.getFirst("name"));
|
model.setName(values.getFirst("name"));
|
||||||
// 每次保存把版本更新+1
|
// 每次保存把版本更新+1
|
||||||
model.setVersion(model.getVersion() + 1);
|
model.setVersion(model.getVersion() + 1);
|
||||||
// 获取唯一标识key
|
// 获取唯一标识key
|
||||||
String key = objectMapper.readTree(values.getFirst("json_xml")).get("properties").get("process_id").textValue();
|
String key = values.getFirst("key");
|
||||||
|
List<Model> list = repositoryService.createModelQuery().modelKey(key).modelTenantId(LoginHelper.getTenantId()).list();
|
||||||
|
List<Model> modelList = list.stream().filter(e -> !e.getId().equals(model.getId())).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isNotEmpty(modelList)) {
|
||||||
|
throw new ServiceException("模型key已存在!");
|
||||||
|
}
|
||||||
model.setKey(key);
|
model.setKey(key);
|
||||||
|
|
||||||
|
|
||||||
repositoryService.saveModel(model);
|
repositoryService.saveModel(model);
|
||||||
byte[] xmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(Objects.requireNonNull(values.getFirst("json_xml")).getBytes(StandardCharsets.UTF_8));
|
byte[] xmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(Objects.requireNonNull(values.getFirst("json_xml")).getBytes(StandardCharsets.UTF_8));
|
||||||
|
if (ArrayUtil.isEmpty(xmlBytes)) {
|
||||||
|
throw new ServiceException("模型不能为空!");
|
||||||
|
}
|
||||||
repositoryService.addModelEditorSource(model.getId(), xmlBytes);
|
repositoryService.addModelEditorSource(model.getId(), xmlBytes);
|
||||||
|
|
||||||
/*InputStream svgStream = new ByteArrayInputStream(values.getFirst("svg_xml").getBytes(StandardCharsets.UTF_8));
|
/*InputStream svgStream = new ByteArrayInputStream(values.getFirst("svg_xml").getBytes(StandardCharsets.UTF_8));
|
||||||
|
Loading…
Reference in New Issue
Block a user