SpringMVC流程图(Activity)Java代码

model层(实体类entity)

在需要做流程的实体类加入workflow_id(工作流id)approve_opinion(审批意见)字段
SpringMVC流程图(Activity)Java代码

Controller层(控制层)

	//流程必要参数Spring注入
	private String formKey;
	private long formValue;
	private MyTask myTask;
	@Autowired
	private ActivitiService activitiService;
	
	/**
	 * 跳转到申请列表
	 * @return
	 */
	public String forwordList() {
		return "forwordList";
	}

	/**
	 * 跳转申请详情页面
	 * @return
	 */
	public String forwordView() {
		peopleHolidayMode = peopleHolidayService.selectCadreModebyId(peopleHolidayMode.getId());
		return "forwordView";
	}

	/**
	 * 跳转到审批历史列表
	 * @return
	 */
	public String forwordAuditHisList() {
		return "forwordAuditHisList";
	}

	/**
	 * 跳转到审批页面
	 * @return
	 */
	public String forwordAudit() {
		SysUser sysUser = (SysUser) ActionContext.getContext().getSession().get("sysUser");
		isHandWritting = handWrittingService.isHandWritting(sysUser.getPeopleId());//判断是否需要手写板签字
		peopleList = cadreInfoService.findCadreInfos(sysUser.getDeptId());
		peopleHoliday = peopleHolidayService.selectPeopleHolidaybyId(peopleHolidayMode.getId());
		peopleHolidayMode = peopleHolidayService.selectCadreModebyId(peopleHolidayMode.getId());
		myTask = activitiService.findTaskIdByBusinessKey(peopleHoliday.getSplcname(), String.valueOf(peopleHolidayMode.getId()));
		id = Long.parseLong(myTask.getExecutionId());
		return "forwordAudit";
	}

/**
 * 获取流程申请列表信息
 * @return
 */
public String ajaxList() {
	SysUser sysUser = (SysUser) ActionContext.getContext().getSession().get("sysUser");
	StringBuffer sql = new StringBuffer("select *,case when marital_status=0 then '未婚' else '已婚' end as m,case when type=0 then '事假' else '探亲' end as t,case when ensure=0 then '否' else '是' end as e,case when is_witharmy=0 then '否' else '是' end as i from view_holiday WHERE 1=1 ");
	if (flag == true)
		sql.append(" and holiday_flag=0");
	else
		sql.append(" and holiday_flag=1");
	json = customQueryService.getCustomQueryData("(" + sql.toString() + ") t", sysUser.getDeptId());
	return AJAX;
}

	/**
	 * 启动流程
	 * @return
	 * @throws Exception
	 */
	public String ajaxStartFlow() throws Exception {
		currentYear = Calendar.getInstance().get(Calendar.YEAR);
		peopleHoliday = peopleHolidayService.selectPeopleHolidaybyId(peopleHoliday.getId());
		peopleHolidayMode = peopleHolidayService.selectPeopleHolidayModebyId(peopleHoliday.getId());
		SysUser sysUser = (SysUser) StrutsUtils.getObjectFromSession("sysUser");
		// 依据单位类型区分流程启动时的走向
		Map<String, Object> mapValues = new HashMap<String, Object>();
		mapValues.put("realName", sysUser.getUserName());
		// if(peopleHolidayMode.getDepttype()==0){
		// mapValues.put("lx", "200");//100机关*;200基层*
		// }else{
		// mapValues.put("lx", "100");//100机关*;200基层*
		// }
		// 依据单位类型区分流启动时的走向
		// 启动流程
		String processId = activitiService.startProcess(peopleHoliday.getSplcname(), peopleHoliday.getId() + "", sysUser, mapValues);
			// 流程启动并发送短消息
			// activitiService.startTask(,processId,name);
			// 提交流程,返回的状态值
			String act_status = activitiService.findStatusByProcessInstanceId(processId);
			// 流程ID
			peopleHoliday.setWorkflow_id(Long.parseLong(processId));
			// 流程状态
			peopleHoliday.setApprove_status(act_status);
			peopleHolidayService.updatePeopleHoliday(peopleHoliday);
			// 发送审批消息
			PeopleMessage ps = new PeopleMessage();
			ps.setMessage_title("*休假流程");
			ps.setSend_type(5);
			ps.setMessage_content("您有一条*休假申请待处理");
			ps.setMessage_name("处理");
			ps.setMessage_url("holiday/holiday!forwordAuditList?flag=false");
			ps.setSend_user(sysUser.getUserId());
			ps.setSend_username(sysUser.getUserName());
			ps.setRead_status(0);
			ps.setSound_name("default.mp3");
			ps.setMessage_date(DateUtils.getNowDate());
			activitiService.sendMessageToAuditor(processId, ps, sysUser.getDeptId());
		saveLog("提交*休假申请:"+cadreInfoService.getById(peopleHoliday.getUser_id()).getName());
		json = JSONObjectTool.getJson(AjaxBeanData.success());
		return AJAX;
	}

	/**
	 * *休假审批
	 * @return
	 */
	public String ajaxAudit() throws Exception {
		currentYear = Calendar.getInstance().get(Calendar.YEAR);
		SysUser sysUser = (SysUser) StrutsUtils.getObjectFromSession("sysUser");
		// 审批流程
		peopleHoliday = peopleHolidayService.selectPeopleHolidaybyId(peopleHolidayMode.getId());
		Map<String, Object> map = new HashMap<String, Object>();
		map.put(formKey, formValue);
		myTask = activitiService.findTaskIdByBusinessKey(peopleHoliday.getSplcname(), String.valueOf(peopleHoliday.getId()));
		activitiService.complteTask(myTask.getId(), String.valueOf(peopleHoliday.getWorkflow_id()), StrutsUtils.getString("approve_opinion"), map, sysUser);

		// 判断流程是否结束
		String act_status = activitiService.findStatusByProcessInstanceId(String.valueOf(peopleHoliday.getWorkflow_id()));
		// 流程状态
		peopleHoliday.setApprove_status(act_status);
		/*peopleHoliday.setApprove_opinion(StrutsUtils.getString("approve_opinion"));*/
		if (formValue == 1&&act_status.startsWith("0")) {
			peopleHoliday.setClear_status(1);
		}
		saveLog("审批*休假申请:"+cadreInfoService.getById(peopleHoliday.getUser_id()).getName());
		peopleHolidayService.updatePeopleHoliday(peopleHoliday);
		// 发送审批消息
		AuditMessage ms = new AuditMessage();
		ms.setMessageTitle("*休假流程");
		ms.setSendType(5);
		ms.setAuditMessageContent("您有一条*休假申请待处理"); // 发给审批人的内容
		ms.setApplayMessageContent("您的*休假申请被处理了,请查看");// 发给申请人的内容
		ms.setAuditMessageeName("处理");
		ms.setApplayMessageeName("查看");
		ms.setAuditMessageUrl("holiday/holiday!forwordAuditList?flag=false"); // 发给审批人的链接
		ms.setApplayMessageUrl("holiday/holiday!forwordList?flag=false");// 发给申请人的链接
		ms.setSendUser(sysUser.getUserId());
		activitiService.sendMessageAfterAudited(myTask.getProcessInstanceId(), ms, sysUser.getDeptId());
		json = JSONObjectTool.getJson(AjaxBeanData.success());
		return AJAX;
	}

	/**
	 * 显示工作流
	 * @return
	 */
	public String forwordWorkFlowShow() throws Exception {
		// 根据业务ID与流程定义的key获取Task
		peopleHoliday = peopleHolidayService.selectPeopleHolidaybyId(id);
		try {
		myTask = activitiService.findTaskIdByBusinessKey(peopleHoliday.getSplcname(), String.valueOf(id));
		} catch (Exception e) {
			myTask = null;
		}
		if (null == myTask) {
			myTask = new MyTask();
			myTask.setParentTaskId(String.valueOf(peopleHoliday.getWorkflow_id()));
			id = Long.parseLong(myTask.getParentTaskId());
		} else {
			id = Long.parseLong(myTask.getExecutionId());
		}
		return "forwordWorkFlowShow";
	}

	/**
	 * 显示工作流程,已审批结束
	 * 
	 * @return
	 */
	public String forwordWorkFlowShow2() throws Exception {
		// 根据业务ID与流程定义的key获取Task
		peopleHoliday = peopleHolidayService.selectPeopleHolidaybyId(id);
		id = peopleHoliday.getWorkflow_id();
		processName = peopleHoliday.getSplcname();
		title = "*休假程跟踪";
		return "forwordWorkFlowShow2";
	}



public String getFormKey() {
	return formKey;
}

public void setFormKey(String formKey) {
	this.formKey = formKey;
}

public long getFormValue() {
	return formValue;
}

public void setFormValue(long formValue) {
	this.formValue = formValue;
}

public MyTask getMyTask() {
	return myTask;
}

public void setMyTask(MyTask myTask) {
	this.myTask = myTask;
}

struts-system.xml

	 <package name="/holiday" extends="workCenter-default">
		<action name="holiday" class="com.linksaint.web.peopleHoliday.action.PeopleHolidayAction">
		 <!-- 流程列表页面-->
			<result name="forwordList">/peopleHoliday/peopleHolidayList.jsp</result> 
		<!-- 流程申请页面-->
			<result name="forwordInsert">/peopleHoliday/peopleHolidayInsert.jsp</result>
		<!-- 流程申请详情页面-->
			<result name="forwordView">/peopleHoliday/peopleHolidayView.jsp</result>
		<!-- 流程审批列表页面-->
			<result name="forwordAuditList">/peopleHoliday/peopleHolidayAuditList.jsp</result> 
		<!-- 流程审批页面-->
 			<result name="forwordAudit">/peopleHoliday/peopleHolidayAudit.jsp</result> 
		<!-- 审批历史列表页面-->
			<result name="forwordAuditHisList">/peopleHoliday/peopleHolidayAuditHisList.jsp</result> 
		 </action> 
	</package>	

View层(视图层)

peopleHolidayList.jsp(流程申请列表【启动流程】页面)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@include file="../head.jsp"%>

<script type="text/javascript">
//	var title = '<input type="button" class="button btn60" onclick="add()" value="新增" > &nbsp;&nbsp;';
//	title += '<input type="button" class="button btn60" onclick="modify()" value="修改" > &nbsp;&nbsp;';
//	title += '<input type="button" class="button btn60" onclick="del()" value="删除" > &nbsp;&nbsp;';
//	title += '<input type="button" class="button btn60" onclick="StartFlow()" value="提交" > &nbsp;&nbsp;';
//	title += '<input type="button" class="button btn100" onclick="Aduit()" value="跳过当前流程" > &nbsp;&nbsp;';
//	title += '<input type="button" class="button btn60" onclick="printView()" value="打印" > &nbsp;&nbsp;';
	var title='';
	function view(id) {
		$.eiui.window({
			url : "holiday!forwordView?peopleHolidayMode.id=" + id + '&_rnd=' + Math.random(10000000),
			width : 750,
			height : 540,
			refresh : refPage
		});
	};

authButton.printView=function() {
	var id = util.eiui.getBox(false);
	if (!!id) {
		$.eiui.window({
			url : "holiday!forwordPrint?peopleHolidayMode.id=" + id + '&_rnd='+ Math.random(10000000),
			width : 850,
			height : 600
		});
	}
}
authButton.add=function() {
	$.eiui.window({
		url : "holiday!forwordInsert?flag=${flag}&_rnd=" + Math.random(10000000),
		width : 800,
		height : 510,
		refresh : refPage
	});
}

authButton.modify=function() {
	var id = util.eiui.getBox(true);
	if (id.length > 1) {
		alert("只能选择一个");
		return;
	}
	$.ajax({
		url : "holiday!ajaxCheckStatus?peopleHoliday.id=" + id[0] + "&_rnd=" + Math.random(10000000),
		dataType : "json",
		success : function(data) {
			if (data.data.split(',')[1] == '草稿' || data.data == '') {
				!!id && $.eiui.window({
					url : "holiday!forwordUpdate?peopleHoliday.id=" + id[0],
					width : 800,
					height : 510,
					refresh : refPage
				});

			} else {
				alert("已进入流程,不可以修改!");
			}
		}
	});

}

authButton.del=function() {
	var id = util.eiui.getBox(false);
	if (!!id) {
		var item = util.eiui.getItem(id, "ID");
		if (item.APPROVE_STATUS.split(',')[1] == '草稿') {

			if (id && confirm($.eiui.error.getErrorMsg("确定要删除选择的数据吗?", "confirm"))) {
				$.post('holiday!ajaxDelete?ids=' + id + '&_rnd=' + Math.random(10000000), {}, function(data) {
					funcGetList();
					var result = data.result;
					if (result != 'success') {
						alert(data.resume);
					}
				}, 'json');
			}
		} else {
			alert("已进入流程不可以删除!")
		}
	}

}
//启动流程
	authButton.sub=function() {
		var id = util.eiui.getBox(true);
		if (id.length > 1) {
			alert("只能选择一个");
			return;
		}

	if (id && confirm($.eiui.error.getErrorMsg("确定要提交?", "confirm"))) {
		$.ajax({
			url : "holiday!ajaxCheckStatus?peopleHoliday.id=" + id[0] + "&_rnd=" + Math.random(10000000),
			dataType : "json",
			success : function(data) {
				if (data.data.split(',')[1] == '草稿' || data.data == '') {
					var item = util.eiui.getItem(id, "ID");
					$.ajax({
						url : 'holiday!ajaxGetWXJ?peopleId=' + item.USER_ID,
						async : false,
						type : 'post',
						dataType : 'json',
						success : function(data) {
							var result = data.result;
							if (result != 'success') {
								alert(data.resume);
							} else {
								$.ajax({
									url : "holiday!ajaxStartFlow?peopleHoliday.id=" + id[0] + "&_rnd=" + Math.random(10000000),
									dataType : "json",
									success : function(data) {
										funcGetList();
									}
								});
							}
						}
					});

				} else {
					alert("该申请不是草稿状态,无法提交!");
					return;
				}
			}
		});
	}

}

authButton.Aduit=function() {
	var id = util.eiui.getBox(true);
	if (id.length > 1) {
		alert("只能选择一个");
		return;
	}
	if (!!id) {
		var item = util.eiui.getItem(id, "ID");
		var audit_status = item.APPROVE_STATUS;
		if (audit_status.split(',')[0] == 0) {
			alert("草稿或审批通过状态不能做此操作!")
		} else {
			$.eiui.window({
				url : "holiday!forwordAudit?peopleHolidayMode.id=" + id + '&_rnd=' + Math.random(10000000),
				width : 1000,
				height : 500,
				refresh : refPage
			});
		}
	}

}

function refPage() {
	funcGetList();
}

$(function() {
	$.eiui.title("*休假申请");
	funcGetList();
});

function funcGetList() {
	title = authButton.init({
		authUrl : 'holiday/holiday!forwordList?flag=false'//必填
	});
	var deptId = $('#deptId').val();
	$.eiui.dataGrid({
		id : 'holiday',
		url : 'holiday!ajaxList?flag=${flag}',
		data : {
			'deptId' : deptId,
			'startTime' : $('#startTime').val(),
			'endTime' : $('#endTime').val()
		},
		pageFunc : funcGetList,
		primaryKey : 'ID',
		selectLineType : "checkbox",
		searchCustom : {
			 statAnalysis:{
				open : false,
				fields:[]
			}, 
			customSubmitFunction : function(){
				funcGetList();
			},
			customResultFields : "",
			customFields : [
				{
					text:'申请人',
					value:'USERNAME'
				},{
					text:'申请部门',
					value:'DEPTNAME'
				},{
						text:'申请时间',
						value:'BEG_TIME',
						control:'date-area'
					}
			],
			exportExcel:{
				open:true
			}
		},
		'title' : title,
		fields : {
			DEPTNAME : {
				label : '申请部门'
			},
			USER_ID : {
				label : '人员Id',
				attributes : {
					style : 'display:none'
				}
			},
			USERNAME : {
				label : '申请人',
				format : function(val, data) {
					return "<a href='###' onclick='view(" + data['ID'] + ")'>" + val + "</a>";
				}
			},
			BEG_TIME : {
				label : '开始时间'
			},
			END_TIME : {
				label : '结束时间'
			},
			ACTUAL_BEG_TIME : {
				label : '实际离队时间'
			},
			ACTUAL_END_TIME : {
				label : '实际归队时间'
			},
			WORKFLOW_TYPE: {
				label : '流程类型',
				attributes:{
					style : 'display:none'
				}
			},
			APPROVE_STATUS : {
				label : '审批状态',
				attributes:{
					style : 'display:none'
				}
			},
			APPROVESTATUS : {
				label : '审批状态',
				format : function(val, data) {
					var aa=data.APPROVE_STATUS;
					if(data.WORKFLOW_TYPE<3){
					if(val=='草稿'){
						return val;
					}else if(aa.split(',')[0]==0){
						return '<a href="#" onclick=forwordWorkFlowShow2('+data.ID+')>'+val+'</a>';
					}else{
					    return '<a href="#" onclick=forwordWorkFlowShow('+data.ID+')>'+val+'</a>';
					}
					}else{
						return '<span>'+val+'</span>';
					}
				}
			},
// 				CLEAR_STATUS : {
//				label : '销假状态',
//				format : function(val, data) {
//					if(val=='0') return '<span style="color: black;" >----</span>';
//					if(val=='1') return '<span style="color: red;" >未销假</span>';
//					if(val=='2') return '<span style="color: blue;" >已销假</span>';
//				}
//			},
		CLEARSTATUS : {
			label : '销假状态',
			format : function(val, data) {
				if(val=='----') return '<span style="color: black;" >----</span>';
				if(val=='未销假') return '<span style="color: red;" >未销假</span>';
				if(val=='已销假') return '<span style="color: blue;" >已销假</span>';
			}
		},
		holday_left : {
			label : '剩余假期天数',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		dutyName : {
			label : '职务',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		joinArmy_time : {
			label : '入伍时间',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		e : {
			label : '补或二次休假',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		m : {
			label : '婚姻状况',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		t : {
			label : '假期种类',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		i : {
			label : '是否随军',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		address : {
			label : '休假地点',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		phone : {
			label : '联系电话',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		place : {
			label : '通信地址',
			attributes:{
				style : 'display:none;',
				show : true
			}
		},
		HOLIDAY_REASON : {
			label : '休假理由',
			attributes:{
				style : 'display:none;',
				show : true
			}
		}

			}
		}, function(data) {
			util.eiui.save(data)
		});
	}

	function forwordWorkFlowShow(id) {
		$.eiui.window({
			url : "holiday!forwordWorkFlowShow?id=" + id,
			size : 'full',
			refresh : refPage
		});
	}
	
	function forwordWorkFlowShow2(id){		
		 $.eiui.window({
			 	type:'default',
				url : "holiday!forwordWorkFlowShow2?id=" + id,
				size:'full'
			});			
	}
</script>
<style>
</style>
</head>

<body>
	<input type="hidden" id="deptId" value="${deptId }">
	<input type="hidden" id="startTime" value="${startTime }">
	<input type="hidden" id="endTime" value="${endTime }">
	<span style="color: red;"></span>
</body>
</html>

auditRecord.jsp(流程跟踪页面)

	<%@ page pageEncoding="utf-8"%>
	<%@ taglib uri="/struts-tags" prefix="s"%>
	<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<html>
	<head>
	<TITLE>休假流程跟踪</TITLE>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<style>
	@import "../images/style.css";
	@import "../js/qtip/jquery.qtip.css";
	</style>
	<%@include file="../head.jsp"%>
	<script type="text/javascript" src="../activiti/activitiHistory.js"></script>
	<script src="../activiti/jquery.outerhtml.js"></script>
	<script src="../activiti/workflow.js"></script>
	<script>
		$(document).ready(function() {
			$.eiui.title("休假流程跟踪");
			AH.init('zblc','${id}');
			var opt = {
					pid: '${id}'
			}
			if('${myTask.id} != null'){
				graphTrace(opt);
			}
		});
	</script>
	
	</head>
	<body>
		<div id="workflowTraceDialog" style="border: 1px solid;position: relative;margin:10px;">
			<div id='processImageBorder' ></div>
			<s:if test="myTask.id != null">
				<img />
			</s:if>
		</div>
		<div id="zblc"></div>
		<div id="imgDiv" style="float: right;height: 120px;"></div>
	</body>
	</html>

holidayAudit.jsp(流程审批页面)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>休假审批</title>
<%@include file="../head.jsp"%>
<script type="text/javascript" src="../activiti/activitiHistory.js"></script>
<script>
	var span = $('<span></span>');

	$(function() {
		$.eiui.title("*休假审批");
		var param = util.param();
		initMyTask();
		$("#user_id").val("${peopleHolidayMode.user_id}");
		AH.init('auditRecord','${id}');
		if('${isHandWritting}'==1){
			$("#aa").show();
			obj = document.getElementById("HWPenSign");//汉王手写板
			obj.HWSetBkColor(0xE0F8E0);
			obj.HWSetCtlFrame(2, 0x000000);
			obj.HWSetPenWidth(2);
			obj.HWSetPenMode(1);
			Button1_onclick();
		}
	})
	function Button1_onclick() {
		res = obj.HWInitialize();
	}

	function Button2_onclick() {
		 var stream;
		 stream = obj.HWFinalize();
	}
	
	function Button3_onclick() {
		 obj.HWClearPenSign();
	}

	function getdept() {
		var combotree_value = $('.easyui-combotree').combotree('getText');
		var s = span.clone().text(combotree_value);
		$('#carUseId').after(s);
		$('#parDiv').css('display', 'none');
	}

		function ShowPeople(id) {
		$.eiui.window({
			url : "../cadreInfo/cadreInfo!forwordCenterView?cadreInfo.id=" + id+'&_rnd=' + Math.random(10000000),
			width : 850,
			height : 600,
			refresh : refPage
		});
	};
	function initMyTask() {
		if ('${myTask}' == null || '${myTask}' == '') {
			alert('流程审批已完成');
			window.close();
		} else {
			flowButtons();
		}
	}

	function flowButtons() {
		var url = '../activiti/activitimanager!ajaxFormByTask?_rnd='
				+ Math.random(10000000);
		$.ajax({
					url : url,
					type : 'POST',
					dataType : 'json',
					data : {
						taskId : '${myTask.id}'
					},
					success : function(data) {
						if (data.items.length > 0) {
							var key = data.items[0].id;
							var val = data.items[0].values;
							$.each(
											val,
											function(i, n) {
												$(".buttonDiv")
														.append(
																'<input type="button" class="button btn60 submit" id='
																		+ key
																		+ ' value='
																		+ n.name
																		+ ' onclick="save(\''
																		+ key
																		+ '\','
																		+ n.value
																		+ ')"/>')
														.append(
																'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
											});
							$(".buttonDiv")
									.append(
											'<input type=button onclick="window.close();" class="button btn60 reset" value="取消">');
						}
					}
				});
	}

	function save(formKey, formValue) {
		if ('${isHandWritting}' == 1) {
			try {
				if(obj.HWIsNeedSave()!=0){
					$('#stream').html('data:image/jpg;base64,' + obj.HWGetBase64Stream(2));
					$("#cc").html('data:image/jpg;base64,' + obj.HWGetBase64Stream(2));
				}
			} catch (e) {
				var text2=$('#bb').html();
				$("#cc").html(text2);
			}
			
		}else{
			var text2=$('#bb').html();
			$("#cc").html(text2);
		}
		var url = 'holiday!ajaxAudit?_rnd=' + Math.random(10000000);
		$.eiui.loading.load("正在处理,请耐心等待");
		$.ajax({
			url : url,
			type : 'POST',
			data : $("#form").serialize() + "&formKey=" + formKey
					+ "&formValue=" + formValue,
			success : function(data) {
				window.returnValue = "refresh";
				window.close();
			}
		});
	}
</script>

<style>
table.dataTable td input {
	width: 200px;
}

table.dataTable2 th {
	text-align: center;
}

table.dataTable2 td {
	text-align: center;
}
</style>
</head>
<body>
	<form name="form" id="form">
		<div class="dataTableBody">
			<input type="hidden" name="peopleHolidayMode.id" value="${peopleHolidayMode.id}">
			<table class="dataTable" width=100% cellSpacing=0 cellPadding=0>
				<tr>
					<th >申请人</th>
					<td colspan="3"><a href="#" style="color: blue;" onclick="ShowPeople('${peopleHolidayMode.user_id}')">${peopleHolidayMode.username}</a></td>
				</tr>
				<tr>
					<th>申请部门</th>
					<td>${peopleHolidayMode.deptname}</td>
					<th >剩余假期天数</th>
					<td >${ peopleHolidayMode.holday_left}</td>
				</tr>
				<tr>
					<th>职务</th>
					<td>${peopleHolidayMode.dutyName}</td>
					<th >警衔</th>
					<td >${peopleHolidayMode.militaryRankName}</td>
				</tr>
				<tr>
					<th>补或二次休假</th>
					<td><s:if test='peopleHolidayMode.ensure==1'>是</s:if> <s:else>否</s:else></td>
					<th>婚姻状况</th>
					<td><s:if test='peopleHolidayMode.marital_status==1'>已婚</s:if> <s:else>未婚</s:else>
					</td>
				</tr>
				<tr>
					<th width="12%">假期种类</th>
					<td width="28%"><s:if test='peopleHolidayMode.type==1'>探亲</s:if> <s:else>事假</s:else></td>
					<th width="11%">休假(地点)</th>
					<td width="29%">${peopleHolidayMode.address}</td>
				</tr>
				<tr>
					<th width="12%">开始时间</th>
					<td width="28%">${peopleHolidayMode.beg_time}</td>
					<th width="11%">结束时间</th>
					<td width="29%">${peopleHolidayMode.end_time}</td>
				</tr>
				<tr>
					<th width="12%">通信地址</th>
					<td width="28%">${peopleHolidayMode.place}</td>
					<th width="11%">联系电话</th>
					<td width="29%">${peopleHolidayMode.phone}</td>
				</tr>
				<tr>
					<th>休假事由</th>
					<td colspan="3">${peopleHolidayMode.holiday_reason}</td>
				</tr>
	<tr id="aa" style="display: none;">
					<th>审批意见</th>
					<td colspan="3">
							<object id="HWPenSign" name="HWPenSign" classid="clsid:E8F5278C-0C72-4561-8F7E-CCBC3E48C2E3"
								width="320" height="120"></object>
							<div style="float: left; margin-left: 165px; margin-top: -120px;">
								<br />
								<input id="button1" type="button" value="初始化设备" onclick="return Button1_onclick()"
									style="width: 80px;" />
								<br /> <br />
								<input id="button2" type="button" value="关闭设备" onclick="return Button2_onclick()"
									style="width: 80px;" />
								<br /> <br />
								<input id="Button3" type="button" value="重新签名" onclick="return Button3_onclick()"
									style="width: 80px;" />
							</div>

							<textarea  style="display: none;" id="stream"></textarea>
						</td>
				</tr>
					<tr>
					<th>审批意见</th>
					<td colspan="3">
						<textarea  id="bb"></textarea>
						<textarea  style="display: none;" name="approve_opinion" id="cc"></textarea>
					</td>
				</tr>
			</table>
		</div>
	</form>

	<div id="auditRecord" style="height: 20%; margin: 0 6px;"></div>
	<div id="imgDiv" style="float: right;height: 120px;"></div>
	<DIV class=buttonDiv></DIV>


</body>
</html>