除了创建接口相关的类,还需要配置文件weaver_session_filter.properties
package com.api.formmode.web;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import org.junit.Test;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.workflow.webservices.*;
import java.io.*;
import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.*;
// 自定义action,无侵入开发
@Path("/formmode/message")
public class MessageAction {
public MessageAction() {
}
@POST
@Path("/message")
@Produces({"application/json"})
public String message(@Context HttpServletRequest request, @Context HttpServletResponse response) {
HashMap var3 = new HashMap();
BaseBean baseBean = new BaseBean();
baseBean.writeLog("开始执行接口MessageAction:" );
//数据源获取
RecordSet rs = new RecordSet();
BufferedReader bufferedReader;
String respString = "";
String reqString = "";
String inputStr = "";
try {
//1:接受入参,以下接受两种入参的方式二选一
// bufferedReader = request.getReader();
bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
StringBuilder requestStrBuilder = new StringBuilder();
while ((inputStr = bufferedReader.readLine()) != null) {
requestStrBuilder.append(inputStr);
}
reqString = requestStrBuilder.toString();
baseBean.writeLog("入参数据为:" + reqString);
String ryname = JSON.parseObject(reqString).getString("ryname");
String message = JSON.parseObject(reqString).getString("message");
String type = JSON.parseObject(reqString).getString("type");
baseBean.writeLog("获取的参数为:"+ryname+"----------"+message+"-----------"+type);
//2:逻辑处理
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String time = sdf1.format(date);
String ids = "";
//通用的查询条件语句
StringBuffer pz_dt1all = new StringBuffer();
//根据人员姓名获取id
String[] allnames = ryname.split(",");
for (int i = 0; i < allnames.length; i++) {
if (i == allnames.length - 1) {
pz_dt1all.append("'"+allnames[i]+"'" + ")");
} else {
pz_dt1all.append("'"+allnames[i]+"'" + ",");
}
}
String sql = "select id,lastname from hrmresource where lastname in( ";
sql = sql+pz_dt1all.toString();
baseBean.writeLog("查询人员id的sql:"+sql);
rs.execute(sql);
while (rs.next()){
ids =ids+rs.getString("id")+",";
}
ids = ids.substring(0,ids.length()-1);
baseBean.writeLog("获取的人员id:"+ids);
Map<String,String> map = new HashMap<>();
map.put("ryname",ids);
map.put("message",message);
map.put("time",time);
this.doCreateWorkflowRequest(map,baseBean);
//3:返回数据
respString = "200";
var3.put("status","0");
var3.put("httpCode",respString);
var3.put("message","创建流程成功");
} catch (Exception e) {
baseBean.writeLog("捕获MessageAction的post异常e:" + e);
}
baseBean.writeLog("结束执行接口MessageAction:" );
return JSONObject.toJSONString(var3);
}
/**
* 执行创建流程
*
*/
@Test
public void doCreateWorkflowRequest(Map<String,String> map,BaseBean baseBean) throws Exception {
WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo();//工作流程请求信息
Integer userid = 1;//用户ID
// workflowRequestInfo.setRequestId(String.valueOf(1918557));//流程请求ID-创建流程时自动产生
workflowRequestInfo.setCanView(true);//显示
workflowRequestInfo.setCanEdit(true);//可编辑
workflowRequestInfo.setRequestName("mes信息展示-系统管理员-"+map.get("time"));//请求标题
workflowRequestInfo.setRequestLevel("0");//请求重要级别
workflowRequestInfo.setCreatorId(userid.toString());
WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();//工作流信息
workflowBaseInfo.setWorkflowId("96");//流程ID
workflowBaseInfo.setWorkflowName("mes信息展示");//流程名称
workflowBaseInfo.setWorkflowTypeId("8");//流程类型id
// workflowBaseInfo.setWorkflowTypeName("任务变更申请流程-陆勇");//流程类型名称
workflowRequestInfo.setWorkflowBaseInfo(workflowBaseInfo);//工作流信息
/****************main table start*************/
WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo();//主表
WorkflowRequestTableRecord[] workflowRequestTableRecord = new WorkflowRequestTableRecord[1];//主表字段只有一条记录
WorkflowRequestTableField[] WorkflowRequestTableField = new WorkflowRequestTableField[2];//主的2个字段
WorkflowRequestTableField[0] = new WorkflowRequestTableField();
WorkflowRequestTableField[0].setFieldName("btxr");//被提醒人
WorkflowRequestTableField[0].setFieldValue(map.get("ryname"));
WorkflowRequestTableField[0].setView(true);//字段是否可见
WorkflowRequestTableField[0].setEdit(true);//字段是否可编辑
WorkflowRequestTableField[1] = new WorkflowRequestTableField();
WorkflowRequestTableField[1].setFieldName("nr");//内容
WorkflowRequestTableField[1].setFieldValue(map.get("message"));
WorkflowRequestTableField[1].setView(true);
WorkflowRequestTableField[1].setEdit(true);
workflowRequestTableRecord[0] = new WorkflowRequestTableRecord();
workflowRequestTableRecord[0].setWorkflowRequestTableFields(WorkflowRequestTableField);
workflowMainTableInfo.setRequestRecords(workflowRequestTableRecord);
workflowRequestInfo.setWorkflowMainTableInfo(workflowMainTableInfo);
/****************main table end*************/
WorkflowServiceImpl workflowService = new WorkflowServiceImpl();
String response = workflowService.doCreateWorkflowRequest(workflowRequestInfo, userid);
baseBean.writeLog("创建的流程requestid:" + response);
}
}