flow_dispose_do.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:4k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html; charset=utf-8" %>
  2. <%@ page import="cn.js.fan.module.cms.*"%>
  3. <%@ page import="cn.js.fan.util.*"%>
  4. <%@ page import="cn.js.fan.web.*"%>
  5. <%@ page import="com.redmoon.oa.flow.*"%>
  6. <link href="common.css" rel="stylesheet" type="text/css">
  7. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  8. <%
  9. String priv = "read";
  10. if (!privilege.isUserPrivValid(request,priv))
  11. {
  12. out.print(SkinUtil.makeErrMsg(request, SkinUtil.LoadString(request, "pvg_invalid")));
  13. return;
  14. }
  15. String myop = ParamUtil.get(request, "myop");
  16. if (myop.equals("setFinishAndNotDelive")) {
  17. long myActionId = ParamUtil.getLong(request, "myActionId");
  18. long actionId = ParamUtil.getLong(request, "actionId");
  19. WorkflowActionDb wa = new WorkflowActionDb();
  20. wa = wa.getWorkflowActionDb((int)actionId);
  21. wa.setStatus(wa.STATE_FINISHED);
  22. wa.save();
  23. MyActionDb mad = new MyActionDb();
  24. mad = mad.getMyActionDb(myActionId);
  25.     mad.setCheckDate(new java.util.Date());
  26.     mad.setChecked(true);
  27.     mad.save();
  28.     WorkflowDb wfd = new WorkflowDb();
  29.     wfd = wfd.getWorkflowDb(wa.getFlowId());
  30.     // 检查流程中的节点是否都已完成
  31.     if (wfd.checkStatusFinished()) {
  32.      wfd.changeStatus(wfd.STATUS_FINISHED, wa);
  33.     }
  34. out.print(StrUtil.Alert_Redirect("操作成功!", "flow_list_doingorreturn.jsp"));
  35. return;
  36. }
  37. WorkflowMgr wfm = new WorkflowMgr();
  38. wfm.doUpload(application, request);
  39. String op = wfm.getFieldValue("op");
  40. String strFlowId = wfm.getFieldValue("flowId");
  41. int flowId = Integer.parseInt(strFlowId);
  42. String strActionId = wfm.getFieldValue("actionId");
  43. int actionId = Integer.parseInt(strActionId);
  44. String strMyActionId = wfm.getFieldValue("myActionId");
  45. long myActionId = Long.parseLong(strMyActionId);
  46. WorkflowDb wf = wfm.getWorkflowDb(flowId);
  47. String myname = privilege.getUser( request );
  48. WorkflowActionDb wa = new WorkflowActionDb();
  49. wa = wa.getWorkflowActionDb(actionId);
  50. if (!wa.isLoaded()) {
  51. out.print(SkinUtil.makeErrMsg(request, "没有正在办理的节点!"));
  52. return;
  53. }
  54. if (op.equals("return"))
  55. {
  56. try {
  57. boolean re = wfm.ReturnAction(request, wf, wa, myActionId);
  58. if (re)
  59. out.print(StrUtil.Alert_Redirect("打回成功!", "flow_list_doingorreturn.jsp"));
  60. else {
  61. out.print(StrUtil.Alert_Redirect("操作失败!", "flow_dispose.jsp?myActionId=" + myActionId));
  62. }
  63. }
  64. catch (ErrMsgException e) {
  65. out.print(StrUtil.Alert_Redirect(e.getMessage(), "flow_dispose.jsp?myActionId=" + myActionId));
  66. }
  67. }
  68. if (op.equals("finish"))
  69. {
  70. try {
  71. boolean re = wfm.FinishAction(request, wf, wa, myActionId);
  72. if (re) {
  73. // 如果后继节点中有一个节点是由本人继续处理,且已处于激活状态,则继续处理这个节点
  74. MyActionDb mad = wa.getNextActionDoingWillBeCheckedByUserSelf();
  75. if (mad!=null) {
  76. out.print(StrUtil.Alert_Redirect("操作成功!请点击确定,继续处理下一节点!", "flow_dispose.jsp?myActionId=" + mad.getId()));
  77. }
  78. else {
  79. out.print(StrUtil.Alert_Redirect("操作成功!", "flow_list_doingorreturn.jsp"));
  80. }
  81. return;
  82. }
  83. else {
  84. out.print(StrUtil.Alert_Redirect("操作失败!", "flow_dispose.jsp?myActionId=" + myActionId));
  85. }
  86. }
  87. catch (ErrMsgException e) {
  88. out.print(StrUtil.Alert_Redirect(e.getMessage(), "flow_dispose.jsp?myActionId=" + myActionId));
  89. }
  90. }
  91. // 自动存档前先保存数据,然后获取flow_displose.jsp中iframe中的report表单数据在 办理完毕 时存档
  92. if (op.equals("saveformvalue") || op.equals("XorCondNodeCommit") || op.equals("AutoSaveArchiveNodeCommit")) {
  93. boolean re = false;
  94. try {
  95. re = wfm.saveFormValue(request, wf, wa);
  96. }
  97. catch (ErrMsgException e) {
  98. out.print(StrUtil.Alert_Back(e.getMessage()));
  99. }
  100. // afterXorCondNodeCommit通知flow_dispose.jsp页面,已保存完毕,匹配条件后,自动重定向
  101. if (re) {
  102. if (op.equals("saveformvalue"))
  103. out.print(StrUtil.Alert_Redirect("保存成功!", "flow_dispose.jsp?myActionId=" + myActionId));
  104. else if (op.equals("XorCondNodeCommit")) {
  105. response.sendRedirect("flow_dispose.jsp?action=afterXorCondNodeCommit&myActionId=" + myActionId);
  106. return;
  107. }
  108. else if (op.equals("AutoSaveArchiveNodeCommit")) {
  109. System.out.print("flow_displose_do.jsp back");
  110. response.sendRedirect("flow_dispose.jsp?action=afterAutoSaveArchiveNodeCommit&myActionId=" + myActionId);
  111. return;
  112. }
  113. }
  114. }
  115. %>