系统工作流管理:
概述:系统采用JBPM4.3作为工作流引擎
所有流程的处理都从我的代办任务页面进入。
表单审批页面的审核按钮为动态生成:
在你Action中跳转到审核页面中你会这么写:
this.transitions = this.tasksManager.getTransitionsByTaskId(taskId);
页面中为:
<s:iterator value="transitions" status="stat">
<button onclick="javascript:ck('<s:property value="name"/>')" class="sexybutton sexysimple sexyblue" id="accept">转至[<s:property value="destination.name"/>]
button>
s:iterator>
具体请参看:web----hr----TravelyApplyAction中auditForward方法以及audit方法
<button onclick="javascript:showDialog();return false; " class="sexybutton"><span><span><span class="flow">查看流程图span>span>span>button>
可以在审核按钮旁边放上这个链接,并加入
Javascript方法:
function showDialog(){
window.open ('${ctx}/workflow/processDefinition!showFlowImage.action?taskId=${task.id}', 'newwindow', 'height=650, width=650, top=10, left=200, toolbar=no, menubar=no,resizable=yes,location=no, status=no');
}
供审核人查看流程图以及流程处理过程中的信息。
系统提供三种消息提醒方式,分别为:站内信提醒,email提醒和手机短信提醒。
三个类分别为:MessageInRemind.java,EmailRemind.java,PhoneMessageRemind.java.
都实现接口:IRemindType.java 在填写流程表单页面,可以加入:
在Action 中加入:
private Map
并加入get方法:
<div id="tixing" style="text-align:left">
任务提醒方式:
<s:checkboxlist name="remindTypes" list="redmindTypeMap" listKey="value" listValue="key" value="remindTypes" theme="simple" />
div>
其后的处理请参看TravelApplyAction中的audit方法。
主要是在asiignment中写入:
String reminds =(String)execution.getVariable("remindTypes");
Class
IRemindType rt =remind.newInstance();
rt.remind("系统提醒您…..",u);
系统提供基于PDF的打印功能:基于 iText
在需要打印的地方加入:
<a href="${ctx}/common/print!print.action?id=${id}&type=com.hjc.entity.hr.WorkSummary&template=worksummary.tpl" title="打印"><img src="${ctx }/images/icons/printer.png" alt="打印 "/>a>
其中type为要打印的实体类型,id为实体ID值,template为打印模版(freemarker)。
然后在reportTpl文件夹下创建模版:
使用freemarker创建模版,支持CSS,注意:在文件过多时候打印时候不能自动换行,需要加入:
将以上代码作为文字的父容器。
系统提供定时调度的功能:基于spring squartz
你只需要在spring的配置文件中(applicationContext-job.xml)中参考已有配置,参考quartz的表达式文档,使用合适的表达式即可。
页面结构:
所有的查询页面有相同的结构:
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/common/header.jsp" %>
<script type="text/javascript" src="${ctx }/js/ext/UserSettingWindow.js">script>
<script type="text/javascript" src="${ctx }/js/ext/extMessage.js">script>
<body style="margin-left:4px">
<div id="Navgtion">