李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
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
package com.chinaztt.mes.common.oa;
 
import javax.xml.ws.Holder;
import java.util.*;
 
/**
 * @author ZTT
 */
public class OAService {
    /**
     * 创建OA流程主表
     * @param fields
     * @return
     */
    public OAWorkflowTable createOAMainWorkflowTable(Map<String, String> fields) {
        //------------------主表列赋值---------------------------
        List<OAWorkflowRequestTableField> oaWorkflowRequestTableField = new ArrayList<OAWorkflowRequestTableField>();
 
        for (Map.Entry<String, String> field : fields.entrySet()) {
            oaWorkflowRequestTableField.add(createOAWorkflowRequestTableField(field.getKey(), field.getValue()));
        }
 
        //创建主表列
        ArrayOfOAWorkflowRequestTableField wrti = new ArrayOfOAWorkflowRequestTableField();
        wrti.oaWorkflowRequestTableField = oaWorkflowRequestTableField;
 
        // 将主表列填充到主表行里
        OAWorkflowRequestTableRecord oaWorkflowRequestTableRecord = new OAWorkflowRequestTableRecord();
        oaWorkflowRequestTableRecord.setWorkflowRequestTableFields(wrti);
 
        //创建主表行
        ArrayOfOAWorkflowRequestTableRecord wrtri = new ArrayOfOAWorkflowRequestTableRecord();
        wrtri.getOAWorkflowRequestTableRecord().add(oaWorkflowRequestTableRecord);
 
        //创建主表
        OAWorkflowTable wmi = new OAWorkflowTable();
        //将主表行填充到主表里
        wmi.setWorkflowRequestTableRecords(wrtri);
 
        return wmi;
    }
 
    /**
     * 创建OA明细表流程
     * @param fields
     * @return
     */
    public ArrayOfOAWorkflowTable createOADetailWorkflowTable(List<Map<String, String>>  fields) {
        //------------------明细表赋值---------------------------
        //创建1张明细表
        ArrayOfOAWorkflowTable owdts = new ArrayOfOAWorkflowTable();
        //将明细列填充到明细行中
        //明细属性
        ArrayOfOAWorkflowRequestTableRecord owrtr = new ArrayOfOAWorkflowRequestTableRecord();
        for ( int i = 0 ; i <fields.size ()  ; i++ ) {
            List<OAWorkflowRequestTableField> owrtf_ = new ArrayList<OAWorkflowRequestTableField>();
 
        for (Map.Entry<String, String> field : fields.get ( i ).entrySet()) {
            owrtf_.add(createOAWorkflowRequestTableField(field.getKey(), field.getValue()));
        }
            ArrayOfOAWorkflowRequestTableField owrti = new ArrayOfOAWorkflowRequestTableField();
            owrti.oaWorkflowRequestTableField = owrtf_;
            OAWorkflowRequestTableRecord owrtis = new OAWorkflowRequestTableRecord();
            owrtis.setWorkflowRequestTableFields(owrti);
            owrtr.getOAWorkflowRequestTableRecord().add(owrtis);
        }
 
 
 
        // 将明细行填充到明细表里
        OAWorkflowTable owrtrs = new OAWorkflowTable();
        owrtrs.setWorkflowRequestTableRecords(owrtr);
        owdts.getOAWorkflowTable().add(owrtrs);
 
        return owdts;
    }
 
    /**
     * 创建OA流程表格属性
     * @param fieldName
     * @param fieldValue
     * @param view
     * @param edit
     * @return
     */
    public OAWorkflowRequestTableField createOAWorkflowRequestTableField(String fieldName, String fieldValue, String view, String edit) {
        // 创建属性
        OAWorkflowRequestTableField oaWorkflowRequestTableField = new OAWorkflowRequestTableField();
 
        // 对属性进行设置
        oaWorkflowRequestTableField.setFieldName(fieldName);
        oaWorkflowRequestTableField.setFieldValue(fieldValue);
        oaWorkflowRequestTableField.setView(view);
        oaWorkflowRequestTableField.setEdit(edit);
 
        return oaWorkflowRequestTableField;
    }
 
    /**
     * 创建OA流程表格属性
     * @param fieldName
     * @param fieldValue
     * @return
     */
    public OAWorkflowRequestTableField createOAWorkflowRequestTableField(String fieldName, String fieldValue) {
        // 创建属性
        OAWorkflowRequestTableField oaWorkflowRequestTableField = new OAWorkflowRequestTableField();
 
        // 对属性进行设置
        oaWorkflowRequestTableField.setFieldName(fieldName);
        oaWorkflowRequestTableField.setFieldValue(fieldValue);
        oaWorkflowRequestTableField.setView("true");
        oaWorkflowRequestTableField.setEdit("true");
 
        return oaWorkflowRequestTableField;
    }
 
    /**
     * 发送OA流程
     * @param wri
     * @return
     */
    public OAResult sendWorkFlow(OAWorkflowRequestInfo wri) {
        Holder<String> errorCode = new Holder<String>();
        Holder<String> errorMsg = new Holder<String>();
        Holder<String> addWorkflowResult = new Holder<String>();
 
        OAWorkFlowRequest owfr = new OAWorkFlowRequest();
        // 调用OA流程新增方法,发起OA流程
        owfr.getOAWorkFlowRequestSoap().addWorkflow("5DEDD10D2E434A139A05953BDB66CC68", wri, errorCode, errorMsg, addWorkflowResult);
 
        // 流程发送结果
        OAResult oaResult = new OAResult();
        oaResult.setErrorCode(errorCode.value);
        oaResult.setErrorMsg(errorMsg.value);
        oaResult.setAddWorkflowResult(addWorkflowResult.value);
 
        return oaResult;
    }
}