完善流程部署

This commit is contained in:
wanggeng888 2021-07-13 11:44:18 +08:00
parent 1d585f0ead
commit 3a9b060914
6 changed files with 64 additions and 12 deletions

View File

@ -3,11 +3,13 @@ package com.cm.inspection.controller.apis.activiti;
import com.cm.common.annotation.CheckRequestBodyAnnotation;
import com.cm.common.base.AbstractController;
import com.cm.common.constants.ISystemConstant;
import com.cm.common.exception.ParamsException;
import com.cm.common.pojo.ListPage;
import com.cm.common.result.ErrorResult;
import com.cm.common.result.SuccessResult;
import com.cm.common.result.SuccessResultData;
import com.cm.common.result.SuccessResultList;
import com.cm.common.utils.RegexUtil;
import com.cm.inspection.pojo.vos.activiti.ActivitiVO;
import com.cm.inspection.service.activiti.IActivitiService;
import io.swagger.annotations.*;
@ -42,6 +44,9 @@ public class ActivitiController extends AbstractController {
@PostMapping("create")
@CheckRequestBodyAnnotation
public SuccessResultData create(@RequestBody ActivitiVO activitiVO) throws UnsupportedEncodingException {
if(!RegexUtil.isChinese(activitiVO.getModelKey())) {
throw new ParamsException("模型Key不能有中文");
}
return new SuccessResultData<>(activitiService.create(activitiVO));
}

View File

@ -2,7 +2,6 @@ package com.cm.inspection.pojo.vos.activiti;
import com.cm.common.annotation.CheckEmptyAnnotation;
import com.cm.common.annotation.CheckNumberAnnotation;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -40,7 +39,7 @@ public class ActivitiVO {
}
public String getModelKey() {
return modelKey == null ? "" : modelKey.trim();
return modelKey == null ? "" : modelKey.trim().replaceAll("\\s", "");
}
public void setModelKey(String modelKey) {

View File

@ -3,15 +3,12 @@ package com.cm.inspection.service.activiti.impl;
import com.alibaba.fastjson.JSONObject;
import com.cm.common.base.AbstractService;
import com.cm.common.constants.ISystemConstant;
import com.cm.common.exception.RemoveException;
import com.cm.common.exception.SearchException;
import com.cm.common.pojo.ListPage;
import com.cm.common.result.SuccessResultList;
import com.cm.inspection.pojo.vos.activiti.ActivitiVO;
import com.cm.inspection.service.activiti.IActivitiService;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
@ -28,7 +25,6 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
/**
* When you feel like quitting. Think about why you started
@ -52,6 +48,10 @@ public class ActivitiServiceImpl extends AbstractService implements IActivitiSer
@Override
public String create(ActivitiVO activitiVO) throws UnsupportedEncodingException {
long count = repositoryService.createModelQuery().modelName(activitiVO.getModelName()).modelKey(activitiVO.getModelKey()).modelVersion(activitiVO.getModelVersion()).count();
if (count >= 1) {
throw new SearchException("模型已经存在");
}
Model model = repositoryService.newModel();
model.setName(activitiVO.getModelName());
model.setKey(activitiVO.getModelKey());

View File

@ -26,8 +26,8 @@
"TOOLBAR.ACTION.COPY" : "复制 (在流程中选择一个或多个节点)",
"TOOLBAR.ACTION.PASTE" : "粘贴",
"TOOLBAR.ACTION.DELETE" : "删除选择的元素",
"TOOLBAR.ACTION.UNDO" : "一步",
"TOOLBAR.ACTION.REDO" : "一步",
"TOOLBAR.ACTION.UNDO" : "一步",
"TOOLBAR.ACTION.REDO" : "一步",
"TOOLBAR.ACTION.ZOOMIN" : "放大",
"TOOLBAR.ACTION.ZOOMOUT" : "缩小",
"TOOLBAR.ACTION.ZOOMACTUAL" : "复原",

View File

@ -98,10 +98,22 @@
return rowData;
}
},
{field:'deploymentStatus', width:80, title: '状态', align:'center',
templet: function(row) {
if(!row.deploymentId) {
return '<span class="layui-badge layui-bg-gray">未部署</span>';
} else {
return '<span class="layui-badge layui-bg-green">已部署</span>';
}
}
},
{field: 'option', width: 80, title: '操作', align:'center',
templet: function(row) {
var rowData = row[this.field];
return '<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="operationEvent">部署</button>';
if(!row.deploymentId) {
return '<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="publishEvent">部署</button>';
} else {
return '<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="revokePublishEvent">撤销</button>';
}
}
},
]],
@ -171,7 +183,7 @@
url: top.restAjax.path('route/activiti/save.html', []),
title: '新增流程图',
width: '400px',
height: '300px',
height: '350px',
onClose: function() {
reloadTable();
}
@ -202,6 +214,42 @@
}
}
});
table.on('tool(dataTable)', function(obj) {
var data = obj.data;
var layEvent = obj.event;
if(layEvent === 'publishEvent') {
top.dialog.confirm('确定 部署 流程?', function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/activiti/publish/{modelId}', [data.id]), {}, null, function(code, data) {
top.dialog.msg('操作成功');
reloadTable();
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
} else if(layEvent === 'revokePublishEvent') {
top.dialog.confirm('确定 撤销 部署流程?', function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/activiti/revoke-publish/{modelId}', [data.id]), {}, null, function(code, data) {
top.dialog.msg('操作成功');
reloadTable();
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
}
});
});
</script>
</body>

View File

@ -21,7 +21,7 @@
<input type="text" id="modelName" name="modelName" class="layui-input" value="" placeholder="请输入模型名称" lay-verify="required">
</div>
</div>
<div class="layui-form-item" pane>
<div class="layui-form-item">
<label class="layui-form-label">模型Key</label>
<div class="layui-input-block">
<input type="text" id="modelKey" name="modelKey" class="layui-input" value="" placeholder="请输入模型Key" lay-verify="required">