package clienTest; import java.util.ArrayList; import java.util.List; import weaver.workflow.client2.WorkflowBaseInfo; import weaver.workflow.client2.WorkflowDetailTableInfo; import weaver.workflow.client2.WorkflowMainTableInfo; import weaver.workflow.client2.WorkflowRequestInfo; import weaver.workflow.client2.WorkflowRequestLog; import weaver.workflow.client2.WorkflowRequestTableField; import weaver.workflow.client2.WorkflowRequestTableRecord; import weaver.workflow.client2.WorkflowServiceHttpBindingStub; import weaver.workflow.client2.WorkflowServiceLocator;
public class Test {
/** * 创建流程 */ public void doCreateWorkflowRequest(){ try { //主表单需要写入的字段个数 WorkflowRequestTableField[] wrti = new WorkflowRequestTableField[7]; //①、必填的字段必须都要按照如下方式拼接进去 ; //②、可编辑字段不需要都编辑进去 可选择性进行拼接 可按照实际情况进行选择;具体需要传入的填写的请按照下面进行拼接 wrti[0]=new WorkflowRequestTableField(); wrti[0].setFieldName("mc");//【名称】--字段数据库名称 wrti[0].setFieldValue("精制豆磷脂");//字段值 wrti[0].setEdit(true);//是否能编辑(对应创建节点设置的字段是否可以编辑情况) wrti[0].setView(true);//是否可以查看(对应创建节点设置的字段是否可以编辑情况) wrti[1]=new WorkflowRequestTableField(); wrti[1].setFieldName("sl");//【数 量 】 --字段数据库名称 wrti[1].setFieldValue("1000.08");//字段值 wrti[1].setEdit(true);//是否能编辑 wrti[1].setView(true);//是否可以查看 wrti[2]=new WorkflowRequestTableField(); wrti[2].setFieldName("clnr");//【材料内容 】 wrti[2].setFieldValue("http://www.baidu.com/img/bd_logo1.png|http://pic4.nipic.com/20091217/3885730_124701000519_2.jpg");//字段值 wrti[2].setFieldType("http:bd_logo1.png||3885730_124701000519_2.jpg");//http:开头代表该字段为附件字段 多附件 用 | 分隔 wrti[2].setEdit(true);//是否能编辑 wrti[2].setView(true);//是否可以查看 wrti[2].setMand(true);//是否必填
wrti[3]=new WorkflowRequestTableField(); wrti[3].setFieldName("xgbm");//【接管部门】--字段数据库名称 wrti[3].setFieldValue("2,3,11");//字段值 (2、3、11对应的部门id,浏览按钮不能直接传入中文名称,只能传入具体的id ) wrti[3].setEdit(true);//是否能编辑 wrti[3].setView(true);//是否可以查看 wrti[3].setMand(true);//是否必填 wrti[4]=new WorkflowRequestTableField(); wrti[4].setFieldName("fzr");//【负责人】--字段数据库名称 wrti[4].setFieldValue("1");//字段值 (1对应的人员id 浏览按钮不能直接传入中文名称,只能传入具体的id) wrti[4].setEdit(true);//是否能编辑 wrti[4].setView(true);//是否可以查看 wrti[4].setMand(true);//是否必填 wrti[5] = new WorkflowRequestTableField(); wrti[5].setFieldName("a");// 多行文本字段 wrti[5].setFieldValue("a\nb<br>c<br>d<br>e");//字段值 wrti[5].setView(true); wrti[5].setEdit(true); wrti[6] = new WorkflowRequestTableField(); wrti[6].setFieldName("b");//多行文本字段 高级模式 wrti[6].setFieldValue("<p>A</p> <p>B</p> <p>C</p> <p>D</p> <p>E</p> <p>F</p> ");//字段值 (4对应的人员id 浏览按钮不能直接传入中文名称,只能传入具体的id) wrti[6].setView(true); wrti[6].setEdit(true); WorkflowRequestTableRecord[] wrtri = new WorkflowRequestTableRecord[1]; wrtri[0] = new WorkflowRequestTableRecord(); wrtri[0].setWorkflowRequestTableFields(wrti); WorkflowMainTableInfo wmi = new WorkflowMainTableInfo();//将主字段放入对象 wmi.setRequestRecords(wrtri); //===================主字段结束================== //明细字段开始 WorkflowDetailTableInfo detail_tableinfo[] = new WorkflowDetailTableInfo[1];//两个明细表 1:明细表1, 2:明细表2 //明细表1 start WorkflowRequestTableRecord[] detil_wrtri = new WorkflowRequestTableRecord[2];//明细行数,一行就填1 多行就填对应行数 WorkflowRequestTableField[] det_wrti = new WorkflowRequestTableField[3]; //每行明细需要写入多个字段字段 //第一行 det_wrti[0] = new WorkflowRequestTableField(); det_wrti[0].setFieldName("ylmc");//【原料名称】明细字段1 -对应数据库字段名称 det_wrti[0].setFieldValue("乙醚和乙醇");//字段值 det_wrti[0].setView(true); det_wrti[0].setEdit(true);
det_wrti[1] = new WorkflowRequestTableField(); det_wrti[1].setFieldName("ylsl");//【原料数量】明细字段2 -对应数据库字段名称 det_wrti[1].setFieldValue("9800");//字段值 det_wrti[1].setView(true); det_wrti[1].setEdit(true); det_wrti[2] = new WorkflowRequestTableField(); det_wrti[2].setFieldName("fzr");//【原料数量】明细字段2 -对应数据库字段名称 det_wrti[2].setFieldValue("4");//字段值 (4对应的人员id 浏览按钮不能直接传入中文名称,只能传入具体的id) det_wrti[2].setView(true); det_wrti[2].setEdit(true);
detil_wrtri[0] = new WorkflowRequestTableRecord(); detil_wrtri[0].setWorkflowRequestTableFields(det_wrti);//将第一行明细放入到字段对象数组中 //===第二行开始========== det_wrti = new WorkflowRequestTableField[3];//每行明细需要写入多个字段字段 det_wrti[0] = new WorkflowRequestTableField(); det_wrti[0].setFieldName("ylmc");//【原料名称】明细字段1 -对应数据库字段名称 det_wrti[0].setFieldValue("磷脂酰胆碱");//字段值 det_wrti[0].setView(true); det_wrti[0].setEdit(true); det_wrti[1] = new WorkflowRequestTableField(); det_wrti[1].setFieldName("ylsl");//【原料数量】明细字段2 -对应数据库字段名称 det_wrti[1].setFieldValue("1000");//字段值 det_wrti[1].setView(true); det_wrti[1].setEdit(true); det_wrti[2] = new WorkflowRequestTableField(); det_wrti[2].setFieldName("fzr");//【原料数量】明细字段2 -对应数据库字段名称 det_wrti[2].setFieldValue("3");//字段值 (3对应的人员id 浏览按钮不能直接传入中文名称,只能传入具体的id) det_wrti[2].setView(true); det_wrti[2].setEdit(true); detil_wrtri[1] = new WorkflowRequestTableRecord(); detil_wrtri[1].setWorkflowRequestTableFields(det_wrti);//将第二行明细放入到字段对象数组中 detail_tableinfo[0] = new WorkflowDetailTableInfo(); detail_tableinfo[0].setWorkflowRequestTableRecords(detil_wrtri);//将明细数据加入明细表1中
WorkflowBaseInfo wbi = new WorkflowBaseInfo(); wbi.setWorkflowId("110");//流程id 110 代表物料申请单的流程id(路径设置中可查看) WorkflowRequestInfo wri = new WorkflowRequestInfo();//流程基本信息 wri.setCreatorId("1");//创建人id wri.setIsNextFlow("0");//0标识停留创建节点,反之流转到后面节点 wri.setRequestName("物料申请单-管理员测试——v5");//流程请求标题(流程创建时的标题内容) wri.setWorkflowMainTableInfo(wmi);//添加主字段数据 wri.setWorkflowDetailTableInfos(detail_tableinfo);//添加明细数据 wri.setWorkflowBaseInfo(wbi); WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); String requestid = binding.doCreateWorkflowRequest(wri, 1);//创建接口调用 System.out.println("=========requestid:"+requestid); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取流程详细信息接口 */ public void getWorkflowRequest(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); int requestid =100; //请求id int userId =1;//人员id int fromrequestid=-1;//相关请求id 无则传-1即可 WorkflowRequestInfo wfrequestben = binding.getWorkflowRequest(requestid, userId, fromrequestid);//获取流程详细信息即可。里面包含流程主体信息、主表单字段信息、明细字段信息、签字意见信息 String requestname = wfrequestben.getRequestName(); System.out.println("===requestname:"+requestname); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取流程详细信息接口 */ public void deleteRequest(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); int requestid =100; //请求id 系统执行根据此参数直接删除流程 如果参数正确直接删除,如果没有这不删除 int userId =1;//人员id 此参数无用 boolean falg = binding.deleteRequest(requestid, userId);//删除流程 System.out.println("===falg:"+falg); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 提交流程 */ public void submitWorkflowRequest(){ try { //主表单需要写入的字段个数 WorkflowRequestTableField[] wrti = new WorkflowRequestTableField[2]; //①、必填的字段必须都要按照如下方式拼接进去 ; //②、可编辑字段不需要都编辑进去 可选择性进行拼接 可按照实际情况进行选择;具体需要传入的填写的请按照下面进行拼接 wrti[0]=new WorkflowRequestTableField(); wrti[0].setFieldName("mc");//【名称】--字段数据库名称 wrti[0].setFieldValue("精制豆磷脂_更改一下");//字段值 wrti[0].setEdit(true);//是否能编辑(对应创建节点设置的字段是否可以编辑情况) wrti[0].setView(true);//是否可以查看(对应创建节点设置的字段是否可以编辑情况) wrti[1]=new WorkflowRequestTableField(); wrti[1].setFieldName("sl");//【数 量 】 --字段数据库名称 wrti[1].setFieldValue("8888");//字段值 wrti[1].setEdit(true);//是否能编辑 wrti[1].setView(true);//是否可以查看 WorkflowRequestTableRecord[] wrtri = new WorkflowRequestTableRecord[1]; wrtri[0] = new WorkflowRequestTableRecord(); wrtri[0].setWorkflowRequestTableFields(wrti); WorkflowMainTableInfo wmi = new WorkflowMainTableInfo();//将主字段放入对象 wmi.setRequestRecords(wrtri); //===================主字段结束================== WorkflowBaseInfo wbi = new WorkflowBaseInfo(); wbi.setWorkflowId("110");//流程id 110 代表物料申请单的流程id(路径设置中可查看) WorkflowRequestInfo wri = new WorkflowRequestInfo();//流程基本信息 wri.setCreatorId("1");//创建人id wri.setRequestName("物料申请单-管理员测试——v5");//流程请求标题(流程创建时的标题内容) wri.setRequestId("23"); wri.setWorkflowMainTableInfo(wmi);//添加主字段数据 wri.setWorkflowBaseInfo(wbi); WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //wri 由于第二个节点没有编辑字段所以此处就不需要拼接 TableField 信息根据实际业务来处理,如果流程需要退回只需要将 submit 改为 reject String falg= binding.submitWorkflowRequest(wri, 23, 14, "submit", "我是签字意见,此处可以编辑签字意见内容!"); System.out.println("=======falg:"+falg); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取抄送 * 说明:待办接口与已办、办结、我的请求、所有流程等接口完全一致 * */ public void getCCWorkflowRequestList(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 int userId =1;//当前用户 int pageNo = 1; // 当前页数 int pageSize =10; //每页记录数 int recordCount =binding.getCCWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 //流程待办列表接口 WorkflowRequestInfo[] value = binding.getCCWorkflowRequestList(pageNo, pageSize, recordCount, userId, conditions); for(int i=0;i<value.length;i++){ WorkflowRequestInfo wfinfo = value[i]; //流程列表接口一般获取都是流程的标题 、节点、创建日期、流程类型等信息,下面举例如何获取具体的信息内容。 String requestid = wfinfo.getRequestId();//流程请求id String requestname = wfinfo.getRequestName();//流程请求标题 String createtime = wfinfo.getCreateTime();//创建日期时间 String creatorname =wfinfo.getCreatorName();//创建人名称 String workflowid = wfinfo.getWorkflowBaseInfo().getWorkflowId();//流程id(路径设置对应的流程id) String workflowname = wfinfo.getWorkflowBaseInfo().getWorkflowName();//流程名称(路径设置对应的流程名称) String currentnodeid = wfinfo.getCurrentNodeId();//当前节点 String crrrentnodename =wfinfo.getCurrentNodeName();//当前节点名称 String receivetime = wfinfo.getReceiveTime();//接受日期时间 String requestLevel =wfinfo.getRequestLevel();//紧急程度 String status = wfinfo.getStatus();//流程当前出口状态 String WorkflowTypeId = wfinfo.getWorkflowBaseInfo().getWorkflowTypeId();//流程类型id String WorkflowTypeName =wfinfo.getWorkflowBaseInfo().getWorkflowTypeName();//流程类型名称 System.out.println("请求id:"+requestid +" 流程标题:"+requestname +" 创建日期:"+createtime +" 创建人:"+creatorname +" 路径名称:"+workflowname +" 接受日期:"+receivetime); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 抄送数量 * * */ public void getCCWorkflowRequestCount(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 int userId =1;//当前用户 int recordCount =binding.getCCWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 System.out.println("记录条数:"+recordCount); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * 已办列表接口 * 说明:待办接口与已办、办结、我的请求、所有流程等接口完全一致 * */ public void getHendledWorkflowRequestList(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 int userId =1;//当前用户 int pageNo = 1; // 当前页数 int pageSize =10; //每页记录数 int recordCount =binding.getHendledWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 //流程待办列表接口 WorkflowRequestInfo[] value = binding.getHendledWorkflowRequestList(pageNo, pageSize, recordCount, userId, conditions); for(int i=0;i<value.length;i++){ WorkflowRequestInfo wfinfo = value[i]; //流程列表接口一般获取都是流程的标题 、节点、创建日期、流程类型等信息,下面举例如何获取具体的信息内容。 String requestid = wfinfo.getRequestId();//流程请求id String requestname = wfinfo.getRequestName();//流程请求标题 String createtime = wfinfo.getCreateTime();//创建日期时间 String creatorname =wfinfo.getCreatorName();//创建人名称 String workflowid = wfinfo.getWorkflowBaseInfo().getWorkflowId();//流程id(路径设置对应的流程id) String workflowname = wfinfo.getWorkflowBaseInfo().getWorkflowName();//流程名称(路径设置对应的流程名称) String currentnodeid = wfinfo.getCurrentNodeId();//当前节点 String crrrentnodename =wfinfo.getCurrentNodeName();//当前节点名称 String receivetime = wfinfo.getReceiveTime();//接受日期时间 String requestLevel =wfinfo.getRequestLevel();//紧急程度 String status = wfinfo.getStatus();//流程当前出口状态 String WorkflowTypeId = wfinfo.getWorkflowBaseInfo().getWorkflowTypeId();//流程类型id String WorkflowTypeName =wfinfo.getWorkflowBaseInfo().getWorkflowTypeName();//流程类型名称 System.out.println("请求id:"+requestid +" 流程标题:"+requestname +" 创建日期:"+createtime +" 创建人:"+creatorname +" 路径名称:"+workflowname +" 接受日期:"+receivetime); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 已办数量 * * */ public void getHendledWorkflowRequestCount(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 int userId =1;//当前用户 int recordCount =binding.getHendledWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 System.out.println("待办记录数:"+recordCount); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * 归档列表接口 * 说明:待办接口与已办、办结、我的请求、所有流程等接口完全一致 * */ public void getProcessedWorkflowRequestList(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 int userId =1;//当前用户 int pageNo = 1; // 当前页数 int pageSize =10; //每页记录数 int recordCount =binding.getProcessedWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 //流程待办列表接口 WorkflowRequestInfo[] value = binding.getProcessedWorkflowRequestList(pageNo, pageSize, recordCount, userId, conditions); for(int i=0;i<value.length;i++){ WorkflowRequestInfo wfinfo = value[i]; //流程列表接口一般获取都是流程的标题 、节点、创建日期、流程类型等信息,下面举例如何获取具体的信息内容。 String requestid = wfinfo.getRequestId();//流程请求id String requestname = wfinfo.getRequestName();//流程请求标题 String createtime = wfinfo.getCreateTime();//创建日期时间 String creatorname =wfinfo.getCreatorName();//创建人名称 String workflowid = wfinfo.getWorkflowBaseInfo().getWorkflowId();//流程id(路径设置对应的流程id) String workflowname = wfinfo.getWorkflowBaseInfo().getWorkflowName();//流程名称(路径设置对应的流程名称) String currentnodeid = wfinfo.getCurrentNodeId();//当前节点 String crrrentnodename =wfinfo.getCurrentNodeName();//当前节点名称 String receivetime = wfinfo.getReceiveTime();//接受日期时间 String requestLevel =wfinfo.getRequestLevel();//紧急程度 String status = wfinfo.getStatus();//流程当前出口状态 String WorkflowTypeId = wfinfo.getWorkflowBaseInfo().getWorkflowTypeId();//流程类型id String WorkflowTypeName =wfinfo.getWorkflowBaseInfo().getWorkflowTypeName();//流程类型名称 System.out.println("请求id:"+requestid +" 流程标题:"+requestname +" 创建日期:"+createtime +" 创建人:"+creatorname +" 路径名称:"+workflowname +" 接受日期:"+receivetime); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 归档数量 * * */ public void getProcessedWorkflowRequestCount(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 int userId =1;//当前用户 int recordCount =binding.getProcessedWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 System.out.println("待办记录数:"+recordCount); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * 我的请求 * 说明:待办接口与已办、办结、我的请求、所有流程等接口完全一致 * */ public void getMyWorkflowRequestList(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 int userId =1;//当前用户 int pageNo = 1; // 当前页数 int pageSize =10; //每页记录数 int recordCount =binding.getMyWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 //流程待办列表接口 WorkflowRequestInfo[] value = binding.getMyWorkflowRequestList(pageNo, pageSize, recordCount, userId, conditions); for(int i=0;i<value.length;i++){ WorkflowRequestInfo wfinfo = value[i]; //流程列表接口一般获取都是流程的标题 、节点、创建日期、流程类型等信息,下面举例如何获取具体的信息内容。 String requestid = wfinfo.getRequestId();//流程请求id String requestname = wfinfo.getRequestName();//流程请求标题 String createtime = wfinfo.getCreateTime();//创建日期时间 String creatorname =wfinfo.getCreatorName();//创建人名称 String workflowid = wfinfo.getWorkflowBaseInfo().getWorkflowId();//流程id(路径设置对应的流程id) String workflowname = wfinfo.getWorkflowBaseInfo().getWorkflowName();//流程名称(路径设置对应的流程名称) String currentnodeid = wfinfo.getCurrentNodeId();//当前节点 String crrrentnodename =wfinfo.getCurrentNodeName();//当前节点名称 String receivetime = wfinfo.getReceiveTime();//接受日期时间 String requestLevel =wfinfo.getRequestLevel();//紧急程度 String status = wfinfo.getStatus();//流程当前出口状态 String WorkflowTypeId = wfinfo.getWorkflowBaseInfo().getWorkflowTypeId();//流程类型id String WorkflowTypeName =wfinfo.getWorkflowBaseInfo().getWorkflowTypeName();//流程类型名称 System.out.println("请求id:"+requestid +" 流程标题:"+requestname +" 创建日期:"+createtime +" 创建人:"+creatorname +" 路径名称:"+workflowname +" 接受日期:"+receivetime); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 我的请求数量 * * */ public void getMyWorkflowRequestCount(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 int userId =1;//当前用户 int recordCount =binding.getMyWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 System.out.println("待办记录数:"+recordCount); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * 所有流程列表接口 * 说明:待办接口与已办、办结、我的请求、所有流程等接口完全一致 * */ public void getAllWorkflowRequestList(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 int userId =1;//当前用户 int pageNo = 1; // 当前页数 int pageSize =10; //每页记录数 int recordCount =binding.getAllWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 //流程待办列表接口 WorkflowRequestInfo[] value = binding.getAllWorkflowRequestList(pageNo, pageSize, recordCount, userId, conditions); for(int i=0;i<value.length;i++){ WorkflowRequestInfo wfinfo = value[i]; //流程列表接口一般获取都是流程的标题 、节点、创建日期、流程类型等信息,下面举例如何获取具体的信息内容。 String requestid = wfinfo.getRequestId();//流程请求id String requestname = wfinfo.getRequestName();//流程请求标题 String createtime = wfinfo.getCreateTime();//创建日期时间 String creatorname =wfinfo.getCreatorName();//创建人名称 String workflowid = wfinfo.getWorkflowBaseInfo().getWorkflowId();//流程id(路径设置对应的流程id) String workflowname = wfinfo.getWorkflowBaseInfo().getWorkflowName();//流程名称(路径设置对应的流程名称) String currentnodeid = wfinfo.getCurrentNodeId();//当前节点 String crrrentnodename =wfinfo.getCurrentNodeName();//当前节点名称 String receivetime = wfinfo.getReceiveTime();//接受日期时间 String requestLevel =wfinfo.getRequestLevel();//紧急程度 String status = wfinfo.getStatus();//流程当前出口状态 String WorkflowTypeId = wfinfo.getWorkflowBaseInfo().getWorkflowTypeId();//流程类型id String WorkflowTypeName =wfinfo.getWorkflowBaseInfo().getWorkflowTypeName();//流程类型名称 System.out.println("请求id:"+requestid +" 流程标题:"+requestname +" 创建日期:"+createtime +" 创建人:"+creatorname +" 路径名称:"+workflowname +" 接受日期:"+receivetime); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** *所有流程数量 * * */ public void getAllWorkflowRequestCount(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 int userId =1;//当前用户 int recordCount =binding.getAllWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 System.out.println("待办记录数:"+recordCount); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * 待办列表接口 * 说明:待办接口与已办、办结、我的请求、所有流程等接口完全一致本次不一一列出 * */ public void getToDoWorkflowRequestList(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 int userId =1;//当前用户 int pageNo = 1; // 当前页数 int pageSize =10; //每页记录数 int recordCount =binding.getToDoWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 //流程待办列表接口 WorkflowRequestInfo[] value = binding.getToDoWorkflowRequestList(pageNo, pageSize, recordCount, userId, conditions); for(int i=0;i<value.length;i++){ WorkflowRequestInfo wfinfo = value[i]; //流程列表接口一般获取都是流程的标题 、节点、创建日期、流程类型等信息,下面举例如何获取具体的信息内容。 String requestid = wfinfo.getRequestId();//流程请求id String requestname = wfinfo.getRequestName();//流程请求标题 String createtime = wfinfo.getCreateTime();//创建日期时间 String creatorname =wfinfo.getCreatorName();//创建人名称 String workflowid = wfinfo.getWorkflowBaseInfo().getWorkflowId();//流程id(路径设置对应的流程id) String workflowname = wfinfo.getWorkflowBaseInfo().getWorkflowName();//流程名称(路径设置对应的流程名称) String currentnodeid = wfinfo.getCurrentNodeId();//当前节点 String crrrentnodename =wfinfo.getCurrentNodeName();//当前节点名称 String receivetime = wfinfo.getReceiveTime();//接受日期时间 String requestLevel =wfinfo.getRequestLevel();//紧急程度 String status = wfinfo.getStatus();//流程当前出口状态 String WorkflowTypeId = wfinfo.getWorkflowBaseInfo().getWorkflowTypeId();//流程类型id String WorkflowTypeName =wfinfo.getWorkflowBaseInfo().getWorkflowTypeName();//流程类型名称 System.out.println("请求id:"+requestid +" 流程标题:"+requestname +" 创建日期:"+createtime +" 创建人:"+creatorname +" 路径名称:"+workflowname +" 接受日期:"+receivetime); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 待办数量 * * */ public void getToDoWorkflowRequestCount(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //查询条件如何传入 List<String> list =new ArrayList<String>(); list.add("t1.workflowid in(select id from workflow_base where workflowname='留言')"); list.add("t1.createdate>='2016-07-01' "); String[] conditions = list.toArray(new String[0]);//查询条件 //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 int userId =1;//当前用户 int recordCount =binding.getToDoWorkflowRequestCount(userId, conditions);// 记录总数 这个记录可以通过获取数量接口获取 System.out.println("待办记录数:"+recordCount); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取流程意见接口 */ public void getWorkflowRequestLogs(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); //说明:条件可以传入可以不传入根据实际需要来处理。上面是传入2个条件:1、查询创建日期大于2016-07-01 并且流程为 留言类型的 流程。 String workflowId = "5";//流程id String requestId= "10";//请求流程id int userid =1;//人员id int pagesize=10;//显示条数 int endId=0; WorkflowRequestLog[] logs =binding.getWorkflowRequestLogs(workflowId, requestId, userid, pagesize, endId); for(int i=0;i<logs.length;i++){ WorkflowRequestLog log =logs[i]; System.out.println("==意见id:"+log.getId()); System.out.println("==意见操作人id:"+log.getOperatorId()); System.out.println("==意见节点id:"+log.getNodeId()); //意见信息可以通过该对象获取 } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 流程转发接口 */ public void forwardWorkflowRequest(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); int requestid = 10; //请求id String recipients="1,2,3,4";//被转发人id a 转发 b 、c 、d、e 此时就传入b、c、d、e的人员id以英文逗号拼接 String remark = "请协助处理";//转发意见 int userId=1;//转发人id String clientip="127.0.0.1";//ip地址可以不填 String falg = binding.forwardWorkflowRequest(requestid, recipients, remark, userId, clientip); System.out.println("===falg:"+falg);//success failed error 3种状态 成功、失败、错误 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //更改流程状态接口,将未查看改成已查看 public void writeWorkflowReadFlag(){ try { WorkflowServiceHttpBindingStub binding = (WorkflowServiceHttpBindingStub)new WorkflowServiceLocator().getWorkflowServiceHttpPort(); String requestid ="100"; String userid="1"; binding.writeWorkflowReadFlag(requestid, userid); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { Test test =new Test(); test.doCreateWorkflowRequest(); test.submitWorkflowRequest(); test.getToDoWorkflowRequestList(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
}
|