WorkflowNextOperator.jsp
8.49 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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="org.json.JSONObject"%>
<%@ page import="org.json.JSONArray"%>
<%@ page import="weaver.workflow.request.ComparatorUtilBean"%>
<jsp:useBean id="ResourceComInfo" class="weaver.hrm.resource.ResourceComInfo" scope="page"/>
<jsp:useBean id="CustomerInfoComInfo" class="weaver.crm.Maint.CustomerInfoComInfo" scope="page" />
<jsp:useBean id="RecordSet" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="requestNodeFlow" class="weaver.workflow.request.RequestNodeFlow" scope="page" />
<jsp:useBean id="WFNodeMainManager" class="weaver.workflow.workflow.WFNodeMainManager" scope="page" />
<%
JSONArray internorTable = new JSONArray();
int requestid = Util.getIntValue(request.getParameter("requestid"),0);
int nodeid = Util.getIntValue(request.getParameter("nodeid"),0);
String nodetype= Util.null2String(request.getParameter("nodetype"));
String isremark=Util.null2String(request.getParameter("isremark"));
int intervenorright=Util.getIntValue(request.getParameter("intervenorright"),0);
// 操作的用户信息
int userid=Util.getIntValue(request.getParameter("userid"),0); //当前用户id
String logintype = Util.null2String(request.getParameter("usertype")); //当前用户类型 1: 类别用户 2:外部用户
int workflowid=Util.getIntValue(request.getParameter("workflowid"),0); //工作流id
String billtablename = "";
int operatorsize = 0;
int formid=Util.getIntValue(request.getParameter("formid"),0);
int isbill=Util.getIntValue(request.getParameter("isbill"),0);
int billid=Util.getIntValue(request.getParameter("billid"),0);
int creater = Util.getIntValue(request.getParameter("creater"),0);
int creatertype =Util.getIntValue(request.getParameter("creatertype"),0);
int usertype = (logintype).equals("1") ? 0 : 1;
boolean hasnextnodeoperator = false;
Hashtable operatorsht = new Hashtable();
String intervenoruserids="";
String intervenoruseridsType="";
String intervenorusernames="";
String messagerurl = "";
if(isremark.equals("5")||intervenorright>0){
if (isbill == 1) {
RecordSet.executeSql("select tablename from workflow_bill where id = " + formid); // 查询工作流单据表的信息
if (RecordSet.next())
billtablename = RecordSet.getString("tablename"); // 获得单据的主表
}
WFNodeMainManager.setWfid(workflowid);
WFNodeMainManager.selectWfNode();
while(WFNodeMainManager.next()){
int tmpid = WFNodeMainManager.getNodeid();
String tmpname = WFNodeMainManager.getNodename();
String tmptype = WFNodeMainManager.getNodetype();
String isintervenor="1"; //是否干预
intervenoruserids="";
intervenoruseridsType="";
intervenorusernames="";
//查询节点操作者
if(tmptype.equals("3")) continue ;
requestNodeFlow.setRequestid(requestid);
requestNodeFlow.setNodeid(tmpid);
requestNodeFlow.setNodetype(tmptype);
requestNodeFlow.setWorkflowid(workflowid);
requestNodeFlow.setUserid(userid);
requestNodeFlow.setUsertype(usertype);
requestNodeFlow.setCreaterid(creater);
requestNodeFlow.setCreatertype(creatertype);
requestNodeFlow.setIsbill(isbill);
requestNodeFlow.setBillid(billid);
requestNodeFlow.setBilltablename(billtablename);
requestNodeFlow.setRecordSet(RecordSet);
requestNodeFlow.setRecordSet(RecordSet);
requestNodeFlow.setIsreject(1);
requestNodeFlow.setRejectToNodeid(nodeid);
//requestNodeFlow.setIsintervenor(isintervenor);
//requestNodeFlow.getNextNodesIntervenor();
requestNodeFlow.getNextNodes();
ArrayList nextnodeids = requestNodeFlow.getNextnodeids();
ArrayList nextuserids = requestNodeFlow.getOperatorshts();
//System.out.println(" tmpid="+tmpid+" tmpname="+tmpname+" nextnodeids.size() = "+nextnodeids.size()+"");
for(int index = 0 ; index <nextnodeids.size(); index++){
operatorsht = new Hashtable();
intervenorusernames="";
operatorsht = (Hashtable)nextuserids.get(index);
int nextnodeid = Util.getIntValue((String)nextnodeids.get(index));
operatorsize = operatorsht.size();
//System.out.println(" nextnodeid = "+nextnodeid+" selectnodeid = "+nodeid+" tmpid = "+tmpid);
if(nodeid==nextnodeid){
if(operatorsize > 0){
TreeMap map = new TreeMap(new ComparatorUtilBean());
Enumeration tempKeys = operatorsht.keys();
try{
while (tempKeys.hasMoreElements()) {
String tempKey = (String) tempKeys.nextElement();
ArrayList tempoperators = (ArrayList) operatorsht.get(tempKey);
map.put(tempKey,tempoperators);
}
}catch(Exception e){}
Iterator iterator = map.keySet().iterator();
Map<String,String> opertorMap = new HashMap<String,String>();
while(iterator.hasNext()) {
String operatorgroup = (String) iterator.next();
ArrayList operators = (ArrayList) operatorsht.get(operatorgroup);
for (int i = 0; i < operators.size(); i++) {
String operatorandtype = (String) operators.get(i);
String[] operatorandtypes = Util.TokenizerString2(operatorandtype, "_");
String opertor = operatorandtypes[0];
String opertortype = operatorandtypes[1];
String opertorsigntype = operatorandtypes[3];
//去除重复操作者
if(opertorMap.containsKey(opertor)){
continue;
}else{
opertorMap.put(opertor,"");
}
String img_path=ResourceComInfo.getMessagerUrls(opertor);
if(opertorsigntype.equals("-3")||opertorsigntype.equals("-4")) continue;
intervenoruserids+=opertor+",";
intervenoruseridsType +=opertortype+",";
messagerurl +=img_path+",";
if("0".equals(opertortype)){
intervenorusernames += ResourceComInfo.getResourcename(opertor)+",";
}else{
intervenorusernames += CustomerInfoComInfo.getCustomerInfoname(opertor)+",";
}
//System.out.println("tempid="+tmpid+"/"+tmpname+" selectnodeid = "+nodeid+" nextnodeid = "+nextnodeid+" intervenorusernames = "+intervenorusernames);
}
}
}
hasnextnodeoperator = true ;
break ;
}
}
if(hasnextnodeoperator) break ;
}
}
if(intervenoruserids.length()>1){
intervenoruserids=intervenoruserids.substring(0,intervenoruserids.length()-1);
intervenoruseridsType=intervenoruseridsType.substring(0,intervenoruseridsType.length()-1);
intervenorusernames=intervenorusernames.substring(0,intervenorusernames.length()-1);
messagerurl=messagerurl.substring(0,messagerurl.length()-1);
}
if(intervenoruserids.length()>1){
String [] intervenoruseridsl = Util.TokenizerString2(intervenoruserids, ",");
String [] intervenoruseridsTypel = Util.TokenizerString2(intervenoruseridsType, ",");
String [] intervenorusernamesl = Util.TokenizerString2(intervenorusernames, ",");
String [] messagerurll = Util.TokenizerString2(messagerurl, ",");
for(int i=0;i<intervenoruseridsl.length;i++){
JSONObject jsonObject=new JSONObject();
String sql = "select id,lastname,messagerurl,sex from hrmresource where id in ("+intervenoruseridsl[i]+")";
//System.out.println("创建新节点sql"+sql);
RecordSet.executeSql(sql);
while(RecordSet.next()){
//String messagerurl1 = Util.null2String(RecordSet.getString(3));
String sex = Util.null2String(RecordSet.getString(4));
if("".equals(messagerurll[i])){
if("0".equals(sex)){
messagerurll[i] = "/messager/images/icon_m_wev8.jpg";
}else{
messagerurll[i] = "/messager/images/icon_w_wev8.jpg";
}
}
}
jsonObject.put("id",intervenoruseridsl[i]);
jsonObject.put("intervenoruseridsType",intervenoruseridsTypel[i]);
jsonObject.put("operatname",intervenorusernamesl[i]);
jsonObject.put("messagerurl",messagerurll[i]);
internorTable.put(jsonObject);
}
}
//jsonObject.put("internorTable", internorTable);
//String[] intervenoruserid = intervenoruserids.split(",");
//jsonObject.put("id",intervenoruserids);
//jsonObject.put("intervenoruseridsType",intervenoruseridsType);
//jsonObject.put("operatname",intervenorusernames);
//jsonObject.put("messagerurl",messagerurl);
out.println(internorTable.toString());
//System.out.println(" intervenorusernames = "+intervenorusernames);
%>