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 fields) { //------------------主表列赋值--------------------------- List oaWorkflowRequestTableField = new ArrayList(); for (Map.Entry 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> fields) { //------------------明细表赋值--------------------------- //创建1张明细表 ArrayOfOAWorkflowTable owdts = new ArrayOfOAWorkflowTable(); //将明细列填充到明细行中 //明细属性 ArrayOfOAWorkflowRequestTableRecord owrtr = new ArrayOfOAWorkflowRequestTableRecord(); for ( int i = 0 ; i owrtf_ = new ArrayList(); for (Map.Entry 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 errorCode = new Holder(); Holder errorMsg = new Holder(); Holder addWorkflowResult = new Holder(); 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; } }