ScriptController.java
6.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package com.hotent.runtime.controller;
import com.hotent.base.annotation.ApiGroup;
import com.hotent.base.constants.ApiGroupConsts;
import com.hotent.base.controller.BaseController;
import com.hotent.base.groovy.GroovyScriptEngine;
import com.hotent.base.id.IdGenerator;
import com.hotent.base.model.CommonResult;
import com.hotent.base.query.PageList;
import com.hotent.base.query.QueryFilter;
import com.hotent.base.util.BeanUtils;
import com.hotent.base.util.JsonUtil;
import com.hotent.base.util.StringUtil;
import com.hotent.runtime.manager.ScriptManager;
import com.hotent.runtime.model.Script;
import com.hotent.runtime.model.TreeEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* <pre>
* 描述:sys_script管理
* 构建组:eip平台-bpmx-platform
* 作者:helh
* 邮箱:helh@jee-soft.cn
* 日期:2014-05-08 14:47:34
* 版权:广州宏天软件有限公司版权所有
* </pre>
*/
@RestController
@RequestMapping("/runtime/script/v1/")
@Api(tags="脚本管理")
@ApiGroup(group= {ApiGroupConsts.GROUP_BPM})
public class ScriptController extends BaseController<ScriptManager,Script>{
@Resource
private ScriptManager scriptManager;
@Resource
private IdGenerator idGenerator;
@Resource
GroovyScriptEngine groovyScriptEngine;
@RequestMapping(value = "list", method = RequestMethod.POST, produces = {"application/json; charset=utf-8"})
@ApiOperation(value = "系统脚本列表(分页条件查询)数据", httpMethod = "POST", notes = "系统脚本列表(分页条件查询)数据")
public PageList<Script> listJson(@ApiParam(required = true, name = "queryFilter", value = "查询参数对象") @RequestBody QueryFilter queryFilter) throws Exception{
return scriptManager.query(queryFilter);
}
@RequestMapping(value = "getCategoryList", method = RequestMethod.GET, produces = {"application/json; charset=utf-8"})
@ApiOperation(value = "获取所有脚本的分类", httpMethod = "GET", notes = "获取所有脚本的分类")
public List<String> getCategoryList() throws Exception{
return scriptManager.getDistinctCategory();
}
@GetMapping("/getAllScript")
@ApiOperation(value = "获取到所有的常用脚本",httpMethod = "GET", notes = "获取到所有的常用脚本")
public List<Script> getAllScript(){
return scriptManager.getAll();
}
@RequestMapping(value = "get", method = RequestMethod.GET, produces = {"application/json; charset=utf-8"})
@ApiOperation(value = "获取脚本明细", httpMethod = "GET", notes = "获取脚本明细")
public Script get(@ApiParam(required = true, name = "id", value = "脚本id") @RequestParam String id) throws Exception{
Script script = null;
if(StringUtil.isNotEmpty(id)){
script = scriptManager.get(id);
}
return script;
}
@RequestMapping(value="save", method=RequestMethod.POST, produces={"application/json; charset=utf-8" })
@ApiOperation(value = "保存常用脚本", httpMethod = "POST", notes = "保存常用脚本")
public CommonResult<String> save(@ApiParam(required = true, name = "script", value = "脚本信息")@RequestBody Script script) throws Exception{
String resultMsg = null;
String id = script.getId();
try {
if(StringUtil.isEmpty(id)){
script.setId(idGenerator.getSuid());
script.setUpdateTime(LocalDateTime.now());
scriptManager.create(script);
resultMsg = "添加系统脚本成功";
}else{
scriptManager.update(script);
resultMsg = "更新系统脚本成功";
}
return new CommonResult<String>( true, resultMsg);
} catch (Exception e) {
return new CommonResult<String>( false, resultMsg+","+e.getMessage());
}
}
@RequestMapping(value="remove",method=RequestMethod.DELETE, produces = { "application/json; charset=utf-8" })
@ApiOperation(value = "批量删除系统脚本", httpMethod = "DELETE", notes = "批量删除系统脚本")
public CommonResult<String> remove(@ApiParam(name="ids",value="流程的测试用例设置id,多个用“,”号分隔", required = true) @RequestParam String ids) throws Exception{
try {
String[] aryIds = null;
if(!StringUtil.isEmpty(ids)){
aryIds = ids.split(",");
}
scriptManager.removeByIds(aryIds);
return new CommonResult<String>( true, "删除系统脚本成功");
} catch (Exception e) {
return new CommonResult<String>( false, "删除系统脚本失败");
}
}
@RequestMapping(value="executeScript", method=RequestMethod.POST, produces={"application/json; charset=utf-8" })
@ApiOperation(value = "执行脚本", httpMethod = "POST", notes = "执行脚本")
public CommonResult<String> executeScript(@ApiParam(name="script",value="脚本内容", required = true) @RequestBody String script) throws Exception{
try {
Object obj= groovyScriptEngine.executeObject(script,new HashMap<String, Object>());
String value = "";
if (BeanUtils.isNotEmpty(obj)) {
value = JsonUtil.toJsonNode(obj).toString();
if(obj instanceof String){
value = JsonUtil.toJsonNode(obj).textValue();
}
}
return new CommonResult<String>(true,"执行成功!",value);
} catch (Exception e) {
return new CommonResult<String>(false,"执行失败,请检查脚本!");
}
}
@RequestMapping(value="executeScriptByList", method=RequestMethod.POST, produces={"application/json; charset=utf-8" })
@ApiOperation(value = "执行多个脚本通过map返回", httpMethod = "POST", notes = "执行多个脚本通过map返回")
public CommonResult<List<Map<String,String>>> executeScriptByList(@ApiParam(name="list",value="脚本内容", required = true) @RequestBody List<String> list) throws Exception{
return scriptManager.executeScriptByList(list);
}
@RequestMapping("getScriptTreeData")
@ResponseBody
public List<TreeEntity> getScriptTreeData(HttpServletRequest request, HttpServletResponse response) throws Exception {
return scriptManager.getScriptTreeData();
}
@RequestMapping(value="getByScript", method=RequestMethod.POST, produces={"application/json; charset=utf-8" })
@ApiOperation(value = "通过脚本获取详细信息", httpMethod = "POST", notes = "执行脚本")
public Script getByScript(@ApiParam(name="script",value="脚本内容", required = true) @RequestBody String script) throws Exception{
return baseService.getByScript(script);
}
}