完善流程部署

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.annotation.CheckRequestBodyAnnotation;
import com.cm.common.base.AbstractController; import com.cm.common.base.AbstractController;
import com.cm.common.constants.ISystemConstant; import com.cm.common.constants.ISystemConstant;
import com.cm.common.exception.ParamsException;
import com.cm.common.pojo.ListPage; import com.cm.common.pojo.ListPage;
import com.cm.common.result.ErrorResult; import com.cm.common.result.ErrorResult;
import com.cm.common.result.SuccessResult; import com.cm.common.result.SuccessResult;
import com.cm.common.result.SuccessResultData; import com.cm.common.result.SuccessResultData;
import com.cm.common.result.SuccessResultList; import com.cm.common.result.SuccessResultList;
import com.cm.common.utils.RegexUtil;
import com.cm.inspection.pojo.vos.activiti.ActivitiVO; import com.cm.inspection.pojo.vos.activiti.ActivitiVO;
import com.cm.inspection.service.activiti.IActivitiService; import com.cm.inspection.service.activiti.IActivitiService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@ -42,6 +44,9 @@ public class ActivitiController extends AbstractController {
@PostMapping("create") @PostMapping("create")
@CheckRequestBodyAnnotation @CheckRequestBodyAnnotation
public SuccessResultData create(@RequestBody ActivitiVO activitiVO) throws UnsupportedEncodingException { public SuccessResultData create(@RequestBody ActivitiVO activitiVO) throws UnsupportedEncodingException {
if(!RegexUtil.isChinese(activitiVO.getModelKey())) {
throw new ParamsException("模型Key不能有中文");
}
return new SuccessResultData<>(activitiService.create(activitiVO)); 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.CheckEmptyAnnotation;
import com.cm.common.annotation.CheckNumberAnnotation; import com.cm.common.annotation.CheckNumberAnnotation;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -40,7 +39,7 @@ public class ActivitiVO {
} }
public String getModelKey() { public String getModelKey() {
return modelKey == null ? "" : modelKey.trim(); return modelKey == null ? "" : modelKey.trim().replaceAll("\\s", "");
} }
public void setModelKey(String modelKey) { 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.alibaba.fastjson.JSONObject;
import com.cm.common.base.AbstractService; import com.cm.common.base.AbstractService;
import com.cm.common.constants.ISystemConstant; import com.cm.common.constants.ISystemConstant;
import com.cm.common.exception.RemoveException;
import com.cm.common.exception.SearchException; import com.cm.common.exception.SearchException;
import com.cm.common.pojo.ListPage;
import com.cm.common.result.SuccessResultList; import com.cm.common.result.SuccessResultList;
import com.cm.inspection.pojo.vos.activiti.ActivitiVO; import com.cm.inspection.pojo.vos.activiti.ActivitiVO;
import com.cm.inspection.service.activiti.IActivitiService; import com.cm.inspection.service.activiti.IActivitiService;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.BpmnModel;
import org.activiti.editor.constants.ModelDataJsonConstants; import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.activiti.editor.language.json.converter.BpmnJsonConverter;
@ -28,7 +25,6 @@ import org.springframework.stereotype.Service;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* When you feel like quitting. Think about why you started * When you feel like quitting. Think about why you started
@ -52,6 +48,10 @@ public class ActivitiServiceImpl extends AbstractService implements IActivitiSer
@Override @Override
public String create(ActivitiVO activitiVO) throws UnsupportedEncodingException { 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 model = repositoryService.newModel();
model.setName(activitiVO.getModelName()); model.setName(activitiVO.getModelName());
model.setKey(activitiVO.getModelKey()); model.setKey(activitiVO.getModelKey());

View File

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

View File

@ -98,10 +98,22 @@
return rowData; 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', {field: 'option', width: 80, title: '操作', align:'center',
templet: function(row) { templet: function(row) {
var rowData = row[this.field]; if(!row.deploymentId) {
return '<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="operationEvent">部署</button>'; 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', []), url: top.restAjax.path('route/activiti/save.html', []),
title: '新增流程图', title: '新增流程图',
width: '400px', width: '400px',
height: '300px', height: '350px',
onClose: function() { onClose: function() {
reloadTable(); 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> </script>
</body> </body>

View File

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