泛微OA 无侵入二次开发api接口,创建流程

本篇文章介绍泛微OA 无侵入二次开发api接口,创建流程

JAVA参考代码如下

除了创建接口相关的类,还需要配置文件weaver_session_filter.properties,开放接口白名单,不开发就要使用单点登录获取token

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
161
162
163
164
165
166
167
168
169
170
171
172
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);
}



}






泛微OA 无侵入二次开发api接口,创建流程
https://bgmh.work/2024/02/01/泛微OA-无侵入二次开发api接口-创建流程/
作者
OuHuanHua
发布于
2024年2月1日
许可协议