FlowFormAction.java
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:5k
源码类别:

OA系统

开发平台:

Java

  1. package com.bjsxt.oa.web.actions;
  2. import java.util.Iterator;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.apache.struts.action.ActionForm;
  7. import org.apache.struts.action.ActionForward;
  8. import org.apache.struts.action.ActionMapping;
  9. import com.bjsxt.oa.managers.FormManager;
  10. import com.bjsxt.oa.managers.WorkflowManager;
  11. import com.bjsxt.oa.model.FieldItem;
  12. import com.bjsxt.oa.model.FlowForm;
  13. import com.bjsxt.oa.model.FormField;
  14. import com.bjsxt.oa.model.Workflow;
  15. import com.bjsxt.oa.web.forms.FlowFormActionForm;
  16. public class FlowFormAction extends BaseAction {
  17. private FormManager formManager;
  18. private WorkflowManager workflowManager;
  19. //主界面,针对流程打开,在这个界面上,显示流程表单的信息
  20. @Override
  21. protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  22. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  23. int workflowId = ffaf.getWorkflowId();
  24. Workflow workflow = workflowManager.findWorkflow(workflowId);
  25. FlowForm flowForm = formManager.findForm(workflowId);
  26. request.setAttribute("flowForm", flowForm);
  27. request.setAttribute("workflow", workflow);
  28. return mapping.findForward("index");
  29. }
  30. //添加流程表单
  31. public ActionForward addForm(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  32. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  33. FlowForm flowform = new FlowForm();
  34. flowform.setTemplate(ffaf.getTemplate());
  35. flowform.setId(ffaf.getId());
  36. formManager.addForm(flowform, ffaf.getWorkflowId());
  37. ActionForward forward = new ActionForward();
  38. forward.setPath("/flowform.do?workflowId="+ffaf.getWorkflowId());
  39. forward.setRedirect(true);
  40. return forward;
  41. }
  42. //打开界面,输入表单域,在这个界面上,需要选择表单域的类型和输入形式
  43. public ActionForward formFieldInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  44. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  45. request.setAttribute("fieldtypes", formManager.searchFieldTypes());
  46. request.setAttribute("fieldinputs", formManager.searchFieldInputs());
  47. return mapping.findForward("formfield_input");
  48. }
  49. //添加表单域
  50. public ActionForward addFormField(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  51. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  52. FormField field = new FormField();
  53. field.setId(ffaf.getId());
  54. field.setFieldLabel(ffaf.getFieldLabel());
  55. field.setFieldName(ffaf.getFieldName());
  56. formManager.addField(field, ffaf.getFormId(), ffaf.getFieldTypeId(), ffaf.getFieldInputId());
  57. return mapping.findForward("pub_add_success");
  58. }
  59. //删除表单域
  60. public ActionForward delField(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  61. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  62. formManager.delField(ffaf.getId());
  63. return mapping.findForward("pub_del_success");
  64. }
  65. //给某个表单域添加条目(输入界面),列出已有的条目
  66. public ActionForward addItemInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  67. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  68. //首先根据ID的值,加载表单域
  69. FormField field = formManager.findFormField(ffaf.getId());
  70. request.setAttribute("field", field);
  71. return mapping.findForward("item_input");
  72. }
  73. //添加条目
  74. public ActionForward addItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  75. FlowFormActionForm ffaf = (FlowFormActionForm)form;
  76. List items = ffaf.getItems();
  77. for (Iterator iter = items.iterator(); iter.hasNext();) {
  78. FieldItem item = (FieldItem) iter.next();
  79. //如果没有输入任何值,则忽略不处理
  80. if(item == null || item.getValue() == null || item.getValue().trim().equals("")){
  81. iter.remove();
  82. }
  83. }
  84. formManager.updateFieldItems(ffaf.getId(), ffaf.getItems());
  85. return mapping.findForward("pub_add_success");
  86. }
  87. public void setFormManager(FormManager formManager) {
  88. this.formManager = formManager;
  89. }
  90. public void setWorkflowManager(WorkflowManager workflowManager) {
  91. this.workflowManager = workflowManager;
  92. }
  93. }