SpringMVC流程图(Activity)Java代码

model层(实体类entity)

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

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 mapValues = new HashMap();
		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 map = new HashMap();
		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

	 
		
		 
			/peopleHoliday/peopleHolidayList.jsp 
		
			/peopleHoliday/peopleHolidayInsert.jsp
		
			/peopleHoliday/peopleHolidayView.jsp
		
			/peopleHoliday/peopleHolidayAuditList.jsp 
		
 			/peopleHoliday/peopleHolidayAudit.jsp 
		
			/peopleHoliday/peopleHolidayAuditHisList.jsp 
		  
		

View层(视图层)

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

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>



<%@include file="../head.jsp"%>






	
	
	
	


auditRecord.jsp(流程跟踪页面)

	<%@ page pageEncoding="utf-8"%>
	<%@ taglib uri="/struts-tags" prefix="s"%>
	
	
	
	休假流程跟踪
	
	
	<%@include file="../head.jsp"%>
	
	
	
	
	
	
	
		

holidayAudit.jsp(流程审批页面)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>



休假审批
<%@include file="../head.jsp"%>






	
申请人 ${peopleHolidayMode.username}
申请部门 ${peopleHolidayMode.deptname} 剩余假期天数 ${ peopleHolidayMode.holday_left}
职务 ${peopleHolidayMode.dutyName} 警衔 ${peopleHolidayMode.militaryRankName}
补或二次休假 婚姻状况 已婚 未婚
假期种类 探亲 事假 休假(地点) ${peopleHolidayMode.address}
开始时间 ${peopleHolidayMode.beg_time} 结束时间 ${peopleHolidayMode.end_time}
通信地址 ${peopleHolidayMode.place} 联系电话 ${peopleHolidayMode.phone}
休假事由 ${peopleHolidayMode.holiday_reason}
审批意见

你可能感兴趣的:(Java)