首页 > 代码库 > F2BPM 开发Api与RESTfull应用服务Api 层次关系及示例
F2BPM 开发Api与RESTfull应用服务Api 层次关系及示例
目前越来越多的企业架构解决方案更加趋向于基于http协议“微服务”访问跨系统调用,而不使用统传的WebService调用,即通过RESTfull方式进行交互,更加轻量整合调用更加方便。本文档中所有F2BPM开发接口API都可以发布成RESTfull对外应用服务接口
RESTfull参数方式:
authorJson:主要是接口身份的认证相关参数,校验访问者的来源合法性
parmJson:请求业务数据的参数,比如分页参数,查询参数等
所有RESTfull都统一只有这两个Json参数
API开发接口与RestFull API服务发布代码示例
SmartFormRESTfullApi 在线表单的RestFull API服务
package com.f2bpm.controller.restfullapi;import java.util.List;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONObject;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import com.f2bpm.base.core.entity.AuthorEntity;import com.f2bpm.base.core.entity.MyInteger;import com.f2bpm.base.core.entity.PageParams;import com.f2bpm.base.core.enums.ExtensionValidateType;import com.f2bpm.base.core.utils.AppUtil;import com.f2bpm.base.core.utils.ExtensionValidate;import com.f2bpm.base.core.utils.FileDownUtil;import com.f2bpm.base.core.utils.FileUtil;import com.f2bpm.base.core.utils.JsonHelper;import com.f2bpm.base.core.utils.string.StringUtil;import com.f2bpm.base.core.utils.time.DateUtil;import com.f2bpm.system.admin.impl.model.Users;import com.f2bpm.system.security.utils.LogUtil;import com.f2bpm.system.security.web.WebHelper;import com.f2bpm.workflow.engine.api.entity.WorkflowInstanceContext;import com.f2bpm.workflow.engine.api.model.TaskInstance;import com.f2bpm.workflow.engine.api.model.TaskInstanceInfo;import com.f2bpm.workflow.engine.api.model.WorkflowForm;import com.f2bpm.workflow.engine.api.wapi.IWorkflowWAPIService;import com.f2bpm.workflow.engine.helper.WfWebHelper;import com.f2bpm.workflow.org.api.imodel.IUser;import com.f2bpm.workflow.org.api.iservice.IUserService;import com.f2bpm.workflow.smartForm.api.entity.BusObjectData;/* * 在线表单RestFull API服务接口 */@Controller@RequestMapping("/restfullapi/smartForm/")public class SmartFormRESTfullApi { @Resource IUserService userService; public IWorkflowWAPIService WorkflowAPI = (IWorkflowWAPIService) AppUtil.getBean("WorkflowAPI"); /** * 获取在线表单数据 * * @param parmJson * @param authorJson * @param response */ @RequestMapping(value = "getOnlineFormData", method = RequestMethod.POST) public void getOnlineFormData(String parmJson, String authorJson, HttpServletResponse response) { String jsonResult = ""; try { JSONObject jsonJSONObject = JSONObject.fromObject(parmJson); AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class); String loginAccount = authorEntity.getLoginAccount(); // 流程实例ID String wiid = JsonHelper.getString(jsonJSONObject, "wiid"); // 表单业务键 String businessKey = JsonHelper.getString(jsonJSONObject, "businessKey"); List<BusObjectData> data =http://www.mamicode.com/ WorkflowAPI.getSmartFormApiManager().getBusObjectListData(wiid, businessKey); jsonResult = JsonHelper.objectToJSON(data); } catch (Exception ex) { jsonResult = JsonHelper.outResult(false, ex.toString()); } JsonHelper.write(response, jsonResult); } /** * 获取表单应用定义 * * @param parmJson * @param authorJson * @param response */ @RequestMapping(value = "getWorkflowForm", method = RequestMethod.POST) public void getWorkflowForm(String parmJson, String authorJson, HttpServletResponse response) { String jsonResult = ""; try { JSONObject jsonJSONObject = JSONObject.fromObject(parmJson); AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class); String loginAccount = authorEntity.getLoginAccount(); String wid = JsonHelper.getString(jsonJSONObject, "wid"); String appId = JsonHelper.getString(jsonJSONObject, "appId"); WorkflowForm form = null; if (StringUtil.isEmpty(wid)) { // 启动时 form = WorkflowAPI.getProcessDefManager().getWorkflowInfo(appId).getWorkflowFormRunned(); } else { // 运行时 form = WorkflowAPI.getProcessDefManager().getWorkflowInfo(wid, appId).getWorkflowFormRunned(); } jsonResult = JsonHelper.objectToJSON(form); } catch (Exception ex) { jsonResult = JsonHelper.outResult(false, ex.toString()); } JsonHelper.write(response, jsonResult); } /** * 获取表单手机端Html模板 * * @param parmJson wid:启动时可为空 * @param authorJson * @param response */ @RequestMapping(value = "getWorkflowFormMobileHtml", method = RequestMethod.POST) public void getWorkflowFormMobileHtml(String parmJson, String authorJson, HttpServletResponse response) { String jsonResult = ""; try { JSONObject jsonJSONObject = JSONObject.fromObject(parmJson); AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class); String loginAccount = authorEntity.getLoginAccount(); String wid = JsonHelper.getString(jsonJSONObject, "wid");//启用时可为空 String appId = JsonHelper.getString(jsonJSONObject, "appId"); String html= null; if (StringUtil.isEmpty(wid)) { // 启动时 html = WorkflowAPI.getProcessDefManager().getWorkflowInfo(appId).getWorkflowFormRunned().getMobileTemplateContent(); } else { // 运行时 html = WorkflowAPI.getProcessDefManager().getWorkflowInfo(wid, appId).getWorkflowFormRunned().getMobileTemplateContent(); } jsonResult = html; } catch (Exception ex) { jsonResult = JsonHelper.outResult(false, ex.toString()); } JsonHelper.write(response, jsonResult); }}
WorkflowBusinessRESTfullApi 流程运行相关的服务接口
1 package com.f2bpm.controller.restfullapi; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.io.OutputStream; 8 import java.util.List; 9 10 import javax.annotation.Resource; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 14 import net.sf.json.JSONObject; 15 16 import org.springframework.stereotype.Controller; 17 import org.springframework.web.bind.annotation.RequestMapping; 18 import org.springframework.web.bind.annotation.RequestMethod; 19 import org.springframework.web.bind.annotation.ResponseBody; 20 import org.springframework.web.multipart.MultipartFile; 21 import org.springframework.web.multipart.MultipartHttpServletRequest; 22 23 import com.f2bpm.base.core.entity.AuthorEntity; 24 import com.f2bpm.base.core.entity.MyInteger; 25 import com.f2bpm.base.core.entity.PageParams; 26 import com.f2bpm.base.core.enums.ExtensionValidateType; 27 import com.f2bpm.base.core.utils.AppUtil; 28 import com.f2bpm.base.core.utils.ExtensionValidate; 29 import com.f2bpm.base.core.utils.FileDownUtil; 30 import com.f2bpm.base.core.utils.FileUtil; 31 import com.f2bpm.base.core.utils.JsonHelper; 32 import com.f2bpm.base.core.utils.string.StringUtil; 33 import com.f2bpm.base.core.utils.time.DateUtil; 34 import com.f2bpm.system.admin.impl.model.Users; 35 import com.f2bpm.system.security.utils.LogUtil; 36 import com.f2bpm.system.security.web.WebHelper; 37 import com.f2bpm.workflow.engine.api.entity.WorkflowInstanceContext; 38 import com.f2bpm.workflow.engine.api.model.ActivityInfo; 39 import com.f2bpm.workflow.engine.api.model.TaskInstance; 40 import com.f2bpm.workflow.engine.api.model.TaskInstanceInfo; 41 import com.f2bpm.workflow.engine.api.wapi.IWorkflowWAPIService; 42 import com.f2bpm.workflow.engine.helper.WfWebHelper; 43 import com.f2bpm.workflow.org.api.imodel.IUser; 44 import com.f2bpm.workflow.org.api.iservice.IUserService; 45 /* 46 * 流程运行相关 RestFull API服务接口 47 */ 48 @Controller 49 @RequestMapping("/restfullapi/workflowBusiness/") 50 public class WorkflowBusinessRESTfullApi { 51 @Resource 52 IUserService userService; 53 54 public IWorkflowWAPIService WorkflowAPI = (IWorkflowWAPIService) AppUtil.getBean("WorkflowAPI"); 55 56 /** 57 * 查找任务实例 58 * @param id 59 * @param request 60 * @param response 61 * @return 62 * @throws IOException 63 */ 64 @ResponseBody 65 @RequestMapping(value = "http://www.mamicode.com/getTask", method = RequestMethod.GET) 66 public TaskInstance getTask(String id, HttpServletRequest request, HttpServletResponse response) throws IOException { 67 TaskInstance task = new TaskInstance(); 68 id = "031d2404-94d1-4566-8ade-21126b620904"; 69 task = WorkflowAPI.getWorkTaskManager().getTaskInstanceByTaskId(id); 70 return task; 71 } 72 73 /** 74 * 获取待办列表 75 * @param authorJson 76 * @param parmJson 77 * @param request 78 * @param response 79 * @throws Exception 80 */ 81 @RequestMapping(value = "http://www.mamicode.com/getTodoList", method = RequestMethod.GET) 82 public void getTodoList(String authorJson, String parmJson, HttpServletRequest request, HttpServletResponse response) throws Exception { 83 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson); 84 PageParams pageParams = JsonHelper.jsonToObject(parmJson, PageParams.class); 85 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class); 86 String loginAccount = authorEntity.getLoginAccount(); 87 MyInteger recordCount = new MyInteger(0); 88 MyInteger pageCount = new MyInteger(0); 89 String whereStr = JsonHelper.getString(jsonJSONObject, "whereStr"); 90 IUser user = userService.getUserByAccount(loginAccount); 91 List<TaskInstanceInfo> list = WorkflowAPI.getWorkTaskManager().getTodoList(user.getUserId(), whereStr.toString(), pageParams.getOrderBy(), pageParams.getPageIndex(), pageParams.getPageSize(), pageCount, recordCount, true); 92 String jsonString = JsonHelper.listToJSON(list); 93 String jsonResult = JsonHelper.convertToEasyUIJsonResult(jsonString, pageParams.getPageSize(), pageParams.getPageIndex(), recordCount.getValue(), pageCount.getValue()); 94 JsonHelper.write(response, jsonResult); 95 } 96 97 /** 98 * 已办列表 99 * @param authorJson100 * @param parmJson101 * @param request102 * @param response103 * @throws Exception104 */105 @RequestMapping(value = "http://www.mamicode.com/getDoneList", method = RequestMethod.POST)106 public void getDoneList(String authorJson, String parmJson, HttpServletRequest request, HttpServletResponse response) throws Exception {107 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);108 PageParams pageParams = JsonHelper.jsonToObject(parmJson, PageParams.class);109 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);110 String loginAccount = authorEntity.getLoginAccount();111 MyInteger recordCount = new MyInteger(0);112 MyInteger pageCount = new MyInteger(0);113 String whereStr = JsonHelper.getString(jsonJSONObject, "whereStr");114 int isHistory = JsonHelper.getInt(jsonJSONObject, "isHistory");115 IUser user = userService.getUserByAccount(loginAccount);116 List<TaskInstanceInfo> list = null;117 if (isHistory == 1) {118 // 归档中的列表119 list = WorkflowAPI.getHistoryDataManager().getHistoryDoneList(user.getUserId(), whereStr.toString(), pageParams.getOrderBy(), pageParams.getPageIndex(), pageParams.getPageSize(), pageCount, recordCount, true);120 } else {121 // 进行中的已办122 list = WorkflowAPI.getWorkTaskManager().getDoneList(user.getUserId(), whereStr.toString(), pageParams.getOrderBy(), pageParams.getPageIndex(), pageParams.getPageSize(), pageCount, recordCount, true);123 }124 125 String jsonString = JsonHelper.listToJSON(list);126 String jsonResult = JsonHelper.convertToEasyUIJsonResult(jsonString, pageParams.getPageSize(), pageParams.getPageIndex(), recordCount.getValue(), pageCount.getValue());127 JsonHelper.write(response, jsonResult);128 }129 130 /**131 * 响应发起流程132 * @param authorJson133 * @param parmJson134 * @param request135 * @param response136 * @throws IOException137 */138 @RequestMapping(value = "http://www.mamicode.com/startWorkflow", method = RequestMethod.POST)139 public void startWorkflow(String authorJson, String parmJson, HttpServletRequest request, HttpServletResponse response) throws IOException {140 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);141 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);142 String loginAccount = authorEntity.getLoginAccount();143 // IUser user = userService.getUserByAccount(loginAccount);144 String appId = JsonHelper.getString(jsonJSONObject, "appId");145 String wiid = JsonHelper.getString(jsonJSONObject, "wiid");146 String businessKey = JsonHelper.getString(jsonJSONObject, "businessKey");147 String title = JsonHelper.getString(jsonJSONObject, "title");148 String opinion = JsonHelper.getString(jsonJSONObject, "opinion");149 String jsonFormData = http://www.mamicode.com/JsonHelper.getString(jsonJSONObject,"jsonFormData");150 StringBuilder message = new StringBuilder();151 boolean success = WorkflowAPI.getWorkflowEnactmentManager().startWorkflow(appId, wiid, businessKey, title, opinion, loginAccount, null, message, jsonFormData, null, 0, 0);152 String jsonResult = JsonHelper.outResult(success, message.toString());153 JsonHelper.write(response, jsonResult);154 }155 156 /**157 * 驳回流程158 * @param parmJson159 * @param authorJson160 * @param response161 */162 @RequestMapping(value = "http://www.mamicode.com/rejectFlow", method = RequestMethod.POST)163 public void rejectFlow(String parmJson, String authorJson, HttpServletResponse response) {164 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);165 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);166 String loginAccount = authorEntity.getLoginAccount();167 String taskId = JsonHelper.getString(jsonJSONObject, "taskId");168 String opinion = JsonHelper.getString(jsonJSONObject, "opinion");169 StringBuilder message = new StringBuilder();170 boolean success = WorkflowAPI.getWorkflowEnactmentManager().rejectWorkflow(taskId, loginAccount, opinion, true, null, message);171 String jsonResult = JsonHelper.outResult(success, message.toString());172 JsonHelper.write(response, jsonResult);173 }174 175 /**176 * 作废流程实例177 * 178 * @param parmJson179 * @param authorJson180 * @param response181 */182 @RequestMapping(value = "http://www.mamicode.com/invalidFlow", method = RequestMethod.POST)183 public void invalidFlow(String parmJson, String authorJson, HttpServletResponse response) {184 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);185 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);186 String loginAccount = authorEntity.getLoginAccount();187 String taskId = JsonHelper.getString(jsonJSONObject, "taskId");188 String opinion = JsonHelper.getString(jsonJSONObject, "opinion");189 TaskInstance taskInstance = WorkflowAPI.getWorkTaskManager().getTaskInstanceByTaskId(taskId);190 String wiid = taskInstance.getWorkflowInstanceId();191 StringBuilder message = new StringBuilder();192 IUser user = WorkflowAPI.getOrgEngineManager().getUserService().getUserByAccount(loginAccount);193 boolean success = WorkflowAPI.getWorkflowEnactmentManager().invalidWorkflowInstance(wiid, opinion, user);194 String jsonResult = JsonHelper.outResult(success, message.toString());195 JsonHelper.write(response, jsonResult);196 }197 198 199 200 /**201 * 审批执行代办任务202 * @param authorJson203 * @param parmJson204 * @param response205 */206 @RequestMapping(value = "http://www.mamicode.com/approvalTask", method = RequestMethod.POST)207 public void approvalTask(String authorJson, String parmJson, HttpServletResponse response) {208 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);209 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);210 String loginAccount = authorEntity.getLoginAccount();211 String taskId = JsonHelper.getString(jsonJSONObject, "taskId");212 String opinion = JsonHelper.getString(jsonJSONObject, "opinion");213 StringBuilder message = new StringBuilder();214 boolean success = WorkflowAPI.getWorkflowEnactmentManager().sendWorkflowByTaskId(taskId, loginAccount, opinion, message);215 String jsonResult = JsonHelper.outResult(success, message.toString());216 JsonHelper.write(response, jsonResult);217 }218 219 /**220 * 获取任务指定节点的供选择人(计算出节点参与者)221 * @param authorJson222 * @param parmJson223 * @param response224 */225 @RequestMapping(value = "http://www.mamicode.com/getActivityUsers", method = RequestMethod.POST)226 public void getActivityUsers(String authorJson, String parmJson, HttpServletResponse response) {227 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);228 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);229 String loginAccount = authorEntity.getLoginAccount();230 String taskId = JsonHelper.getString(jsonJSONObject, "taskId");231 String activityId = JsonHelper.getString(jsonJSONObject, "activityId");232 StringBuilder message = new StringBuilder();233 WorkflowInstanceContext wfContext=WorkflowAPI.getWorkflowEnactmentManager().getWorkflowInstanceContextOnTodo(taskId, loginAccount);234 TaskInstance task = WorkflowAPI.getWorkTaskManager().getTaskInstanceByTaskId(taskId);235 ActivityInfo activityInfo=WorkflowAPI.getProcessDefManager().getActivityInfo(task.getWorkflowId(), activityId);236 List<IUser> list= WorkflowAPI.getWorkflowEnactmentManager().getListActorUserResultByActivityInfo(wfContext,activityInfo);237 String jsonResult =JsonHelper.objectToJSON(list);238 JsonHelper.write(response, jsonResult);239 }240 241 /**242 * 上传在线表单附件 上传在线表单附件, 返回字段值单个附件值,表单附件的字段值格式:243 * [{filePathName:"/attachments/workflow/files/20170714215409547.txt"244 * ,fileName:"TestClient.txt"}]245 * 246 * @param request247 * @param response248 */249 @RequestMapping("uploadFile")250 public void uploadFile(HttpServletRequest request, HttpServletResponse response) {251 String jsonResult = "";252 MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;253 MultipartFile fileUpload = mRequest.getFile("FileUpload");254 if (!fileUpload.isEmpty()) {255 256 try {257 String uploadType = WfWebHelper.query("UploadType", "");258 259 String path = FileDownUtil.getWorkflowFilePath();260 String uploadFileName = fileUpload.getOriginalFilename();261 String fileExtension = uploadFileName.substring(uploadFileName.lastIndexOf("."));262 263 if (!StringUtil.isNullOrWhiteSpace(uploadType)) {264 path = path + uploadType + "/";265 if (!FileUtil.isExistDirectory(path)) {266 FileUtil.createFolder(path);267 }268 }269 270 if (!ExtensionValidate.validateExtension(fileExtension, ExtensionValidateType.FileExtension)) {271 jsonResult = JsonHelper.outResult(false, fileExtension + ",文件类型不允许上传!");272 JsonHelper.write(response, jsonResult);273 return;274 }275 uploadFileName = DateUtil.getCurrentDateTime("yyyyMMddHHmmssSSS") + fileExtension;276 String filePathName = path + uploadFileName;277 if (FileUtil.isExistFile(filePathName)) {278 FileUtil.deleteFile(filePathName);279 }280 File filePath = new File(filePathName);// 上传地址281 fileUpload.transferTo(filePath);282 283 int index = filePathName.indexOf("attachments");284 String downfielNamePath = filePathName.substring(index);285 jsonResult = JsonHelper.outResult(true, "{filePathName:\"/" + downfielNamePath + "\",fileName:\"" + fileUpload.getOriginalFilename() + "\"}");286 287 } catch (RuntimeException | IOException ex) {288 jsonResult = JsonHelper.outResult(false, "上传失败");289 LogUtil.writeLog(ex.toString());290 }291 } else {292 jsonResult = JsonHelper.outResult(false, "请选择要上传的文件");293 }294 JsonHelper.write(response, jsonResult);295 }296 297 /**298 * 附件下载299 * @param authorJson300 * @param parmJson301 * @param request302 * @param response303 */304 @RequestMapping("downloadFile")305 public void downloadFile(String authorJson, String parmJson, HttpServletRequest request, HttpServletResponse response) {306 try {307 JSONObject jsonJSONObject = JSONObject.fromObject(parmJson);308 AuthorEntity authorEntity = JsonHelper.jsonToObject(authorJson, AuthorEntity.class);309 // String fileName = JsonHelper.getString(jsonJSONObject,310 // "fileName");311 String filePath = JsonHelper.getString(jsonJSONObject, "filePath");312 String path = AppUtil.getWebRootPath() + filePath;313 String fileName = new String(path.getBytes("iso8859-1"), "UTF-8");314 File file = new File(fileName);315 if (!file.exists()) {316 response.setStatus(404);317 String jsonResult = JsonHelper.outResult(false, "404 file not found!");318 JsonHelper.write(response, jsonResult);319 return;320 }321 // response.setCharacterEncoding("utf-8");322 // response.setContentType("multipart/form-data");323 // response.setHeader("Content-Disposition", "attachment;fileName="324 // + fileName);325 InputStream inputStream = new FileInputStream(file);326 OutputStream os = response.getOutputStream();327 byte[] b = new byte[1024];328 int length;329 while ((length = inputStream.read(b)) > 0) {330 os.write(b, 0, length);331 }332 inputStream.close();333 } catch (Exception ex) {334 LogUtil.writeLog(ex.toString());335 response.setStatus(500);336 ex.printStackTrace();337 String jsonResult = JsonHelper.outResult(false, "500 err "+ex.getMessage());338 JsonHelper.write(response, jsonResult);339 }340 }341 }
客户端调用示例
1 package com.f2bpm.restfullapi; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 import org.apache.http.client.HttpClient; 7 import org.apache.http.client.methods.HttpPost; 8 import org.apache.http.impl.client.DefaultHttpClient; 9 10 import com.f2bpm.base.core.utils.Guid; 11 import com.f2bpm.base.core.utils.HttpClientUtil; 12 import com.f2bpm.base.core.utils.string.StringUtil; 13 14 public class WorkflowBusinessTestClient { 15 16 String webApiUrl = "http://localhost:8081/f2bpm/restfullapi"; 17 18 /** 19 * get请求 get只适合参数相对简单的请求,如果参数过长或参数字符复杂,则使用Post 来传参请求 20 * 这里仅是一个get示例,不建议使用get统一使用Post来做 不建议使用get统一使用Post来做 不建议使用get统一使用Post来做 21 * 不建议使用get统一使用Post来做 22 */ 23 public void getTask() { 24 String url = webApiUrl + "/workflowBusiness/getTask?"; 25 String queryString="id=123"; 26 String param = HttpClientUtil.urlEncode(queryString.toString()); // 特殊字符进行转义 27 url = url + param; 28 String jsonRes = HttpClientUtil.get(url); 29 System.out.println(jsonRes); 30 } 31 32 33 // public void getTodoList() { 34 // String urlString = webApiUrl + "/workflowBusiness/getTodoList/?"; 35 // StringBuilder queryString = new StringBuilder(); 36 // queryString.append(StringUtil.format("authorJson={loginAccount:\"{0}\"}", "admin")); 37 // queryString.append(StringUtil.format("&parmJson={pageIndex:{0},pageSize:{1},sort:\"{2}\",order:\"{3}\"}", 1, 2, "CreatedTime", "desc")); 38 // String param = HttpClientUtil.urlEncode(queryString.toString()); // 特殊字符进行转义 39 // urlString = urlString + param; 40 // String jsonRes = HttpClientUtil.get(urlString); 41 // System.out.println(jsonRes); 42 // } 43 44 /** 45 * 获取待办列表 46 */ 47 public void getTodoList() { 48 String url= webApiUrl + "/workflowBusiness/getTodoList/"; 49 Map<String, String> params = new HashMap<String, String>(); 50 StringBuilder queryString = new StringBuilder(); 51 params.put("authorJson", StringUtil.format("{loginAccount:\"{0}\"}", "admin")); 52 params.put("parmJson", StringUtil.format("{pageIndex:{0},pageSize:{1},sort:\"{2}\",order:\"{3}\",whereStr:\"{4}\",}", 1, 2, "CreatedTime", "desc", "")); 53 String jsonRes = HttpClientUtil.post(url, params); 54 System.out.println(jsonRes); 55 } 56 /** 57 * 获取已办列表 58 */ 59 public void getDoneList() { 60 String urlString = webApiUrl + "/workflowBusiness/getDoneList/"; 61 Map<String, String> params = new HashMap<String, String>(); 62 StringBuilder queryString = new StringBuilder(); 63 params.put("authorJson", StringUtil.format("{loginAccount:\"{0}\"}", "admin")); 64 // isHistory:0 进行中的已办,isHistory:1流程已结束并归档的已办 65 params.put("parmJson", StringUtil.format("{isHistory:0,pageIndex:{0},pageSize:{1},sort:\"{2}\",order:\"{3}\",whereStr:\"{4}\",}", 1, 2, "CreatedTime", "desc", "")); 66 String jsonRes = HttpClientUtil.post(urlString, params); 67 System.out.println(jsonRes); 68 } 69 70 /** 71 * 发起流程 72 */ 73 public void startWorkflow() { 74 String urlString = webApiUrl + "/workflowBusiness/startWorkflow/"; 75 Map<String, String> params = new HashMap<String, String>(); 76 String onlineFormData = http://www.mamicode.com/StringUtil.format("[{\"mainTable\":\"csb\",\"data\":[{\"name\":\"csb.nl\",\"value\":\"22\"},{\"name\":\"csb.MyId\",\"value\":\"\"},{\"name\":\"csb.zz\",\"value\":\"RestFull测试\"},{\"name\":\"csb.xm\",\"value\":\"RestFull姓名\"}],\"subTables\":[]}]"); 77 params.put("authorJson", StringUtil.format("{loginAccount:\"{0}\"}", "admin")); 78 params.put("parmJson", StringUtil.format("{appId:\"{0}\",wiid:\"{1}\",businessKey:\"{2}\",title:\"{3}\",opinion:\"{4}\",jsonFormData:{5}}", "ZX", Guid.getGuid(), Guid.getGuid(), "应用端RestFull请求测试", "同意", onlineFormData)); 79 // String param = HttpClientUtil.urlEncode(queryString.toString()); 80 // //特殊字符进行转义 81 String jsonRes = HttpClientUtil.post(urlString, params); 82 System.out.println(jsonRes); 83 } 84 85 /** 86 * 驳回到提单 87 */ 88 public void rejectFlow() { 89 String urlString = webApiUrl + "/workflowBusiness/rejectFlow/"; 90 Map<String, String> params = new HashMap<String, String>(); 91 params.put("authorJson", StringUtil.format("{loginAccount:\"{0}\"}", "admin")); 92 params.put("parmJson", StringUtil.format("{taskId:\"{0}\",opinion:\"{1}\"}", "d212c718-b6ea-481e-b7cc-1f44a9d47fd0", "驳回")); 93 String jsonRes = HttpClientUtil.post(urlString, params); 94 System.out.println(jsonRes); 95 } 96 97 /** 98 * 作废工单 99 */100 public void invalidFlow() {101 String urlString = webApiUrl + "/workflowBusiness/invalidFlow/";102 Map<String, String> params = new HashMap<String, String>();103 params.put("authorJson", StringUtil.format("{loginAccount:\"{0}\"}", "admin"));104 params.put("parmJson", StringUtil.format("{taskId:\"{0}\",opinion:\"{1}\"}", "eac4e893-822c-46ec-9ba6-a1c028a1cef3", "作废"));105 String jsonRes = HttpClientUtil.post(urlString, params);106 System.out.println(jsonRes);107 }108 109 /**110 * 审批执行代办任务111 */112 public void approvalTask() {113 String urlString = webApiUrl + "/workflowBusiness/approvalTask/";114 Map<String, String> params = new HashMap<String, String>();115 params.put("authorJson", StringUtil.format("{loginAccount:\"{0}\"}", "admin"));116 params.put("parmJson", StringUtil.format("{taskId:\"{0}\",opinion:\"{1}\"}", "5f267057-ddd4-470a-bca4-a797caac3e09", "原则同意"));117 String jsonRes = HttpClientUtil.post(urlString, params);118 System.out.println(jsonRes);119 }120 121 122 /**123 *上传在线表单附件,返回字段值单个附件值124 /表单附件的字段值格式:125 /#[{"value":"/attachments/workflow/files/20170714215204767.txt","text":"TestClient.txt"}]#126 */127 public void uploadFormFile() {128 String urlString = webApiUrl + "/workflowBusiness/uploadFile/?loginAccount=admin";129 String filepath = "C:\\Users\\Administrator\\Desktop\\TestClient.txt";130 String jsonRes = HttpClientUtil.postFile(urlString, filepath);131 System.out.println(jsonRes);132 }133 /**134 * 下载表单附件135 */136 public void downLoadFile() {137 String urlString = webApiUrl + "/workflowBusiness/downloadFile/";138 //保存到本地的地址139 String filepath = "C:\\Users\\Administrator\\Desktop\\TestClient.txt";140 141 Map<String, String> params = new HashMap<String, String>();142 params.put("authorJson", StringUtil.format("{login Account:\"{0}\"}", "admin"));143 params.put("parmJson", StringUtil.format("{filePath:\"{0}\"}", "/attachments/workflow/files/20170714215204767.txt"));144 String jsonRes = HttpClientUtil.downLoadFile(urlString,filepath, params);145 System.out.println(jsonRes);146 147 }148 149 public static void main(String[] args) {150 WorkflowBusinessTestClient client = new WorkflowBusinessTestClient();151 client.downLoadFile();152 System.out.print("结束");153 }154 155 }
F2BPM 开发Api与RESTfull应用服务Api 层次关系及示例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。