⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 documentaction.java

📁 这是一个jbpm的高级应用,是一个oa工作流的系统,里面用到了spring,hibernate技术等.实为学习jbpm的好资料!
💻 JAVA
字号:
package com.bjsxt.oa.web.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.bjsxt.oa.managers.DocumentManager;
import com.bjsxt.oa.managers.WorkflowManager;
import com.bjsxt.oa.model.ApproveInfo;
import com.bjsxt.oa.model.Document;
import com.bjsxt.oa.web.forms.DocumentActionForm;

public class DocumentAction extends BaseAction {

	private DocumentManager documentManager;
	private WorkflowManager workflowManager;
	
	//转向首页,我的公文列表
	@Override
	protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setAttribute("pm", documentManager.searchMyDocuments(currentUser(request).getId()));
		
		return mapping.findForward("index");
	}
	
	//下载公文附件
	public ActionForward download(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		int documentId = ((DocumentActionForm)form).getId();
		response.reset();
		response.setContentType("application/x-download;charset=GBK");
		response.setHeader("Content-Disposition","attachment;filename=temp.doc");
		
		response.getOutputStream().write(documentManager.findDocument(documentId).getAttachment());
		
		response.getOutputStream().flush();
		response.getOutputStream().close();

		return null;
	}
	
	//查看公文审批历史
	public ActionForward approveHistory(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		DocumentActionForm daf = (DocumentActionForm)form;
		request.setAttribute("historys", documentManager.searchApproveHistory(daf.getId()));
		
		//转向audit_history.jsp
		return mapping.findForward("approve_history");
	}
	
	//已审核的公文列表
	public ActionForward processedDocuments(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setAttribute("pm", documentManager.searchProcessedDocuments(currentUser(request).getId()));
		
		//转向processed_documents.jsp
		return mapping.findForward("processed_document");
	}
	
	//待审核公文列表
	public ActionForward processingDocuments(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setAttribute("documents", documentManager.searchProcessingDocuments(currentUser(request).getId()));
		
		//转向processing_documents.jsp
		return mapping.findForward("processing_document");
	}	
	
	//添加公文之前,先选择流程
	public ActionForward selectFlow(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		request.setAttribute("flows", workflowManager.searchAllProcessDefinition());
		
		return mapping.findForward("select_flow");
	}

	//根据某个流程的信息打开添加公文的界面
	public ActionForward addInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		DocumentActionForm daf = (DocumentActionForm)form;
		
		//TODO 根据流程,获取模板的信息
		String flow = daf.getWorkflow(); //流程名称!
		
		return mapping.findForward("add_input");
	}
	
	//添加公文操作
	public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		DocumentActionForm daf = (DocumentActionForm)form;
		Document document = new Document();
		BeanUtils.copyProperties(document, daf);
		
		//上传的附件
		if(daf.getAttachment() != null){
			document.setAttachment(daf.getAttachment().getFileData());
		}
		
		documentManager.addDocument(document,currentUser(request).getId());
		
		return mapping.findForward("pub_add_success");
	}
	
	//删除公文操作
	public ActionForward del(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

		DocumentActionForm daf = (DocumentActionForm)form;
		
		documentManager.delDocument(daf.getId());
		
		return mapping.findForward("pub_del_success");
	}
	
	//打开审批界面
	public ActionForward approveInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		DocumentActionForm daf = (DocumentActionForm)form;
		int documentId = daf.getId();
		int approverId = currentUser(request).getId();
		ApproveInfo info = documentManager.findApproveInfo(documentId, approverId);
		
		request.setAttribute("info", info);
		
		return mapping.findForward("approve_input");
	}
	
	//执行审批操作
	public ActionForward approve(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

		DocumentActionForm daf = (DocumentActionForm)form;
		int documentId = daf.getId();
		int approverId = currentUser(request).getId();
		String approveInfo = daf.getApproveInfo();
		
		documentManager.addOrUpdateApproveInfo(documentId, approverId, approveInfo);
		
		return mapping.findForward("pub_update_success");
	}
	
	//打开提交界面,即选择下一步流向!
	public ActionForward submitInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

		DocumentActionForm daf = (DocumentActionForm)form;
		
		request.setAttribute("steps", workflowManager.searchNextSteps(daf.getId()));
		
		return mapping.findForward("select_transition");
	}
	
	//执行提交操作!
	public ActionForward submit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		DocumentActionForm daf = (DocumentActionForm)form;
		int documentId = daf.getId();
		int userId = currentUser(request).getId();
		String transitionName = daf.getTransitionName();
		documentManager.submitToWorkflow(documentId, userId, transitionName);
		
		return mapping.findForward("pub_update_success");
	}

	public void setDocumentManager(DocumentManager documentManager) {
		this.documentManager = documentManager;
	}

	public void setWorkflowManager(WorkflowManager workflowManager) {
		this.workflowManager = workflowManager;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -