SpringMVC流程图(Activity)Java代码

model层(实体类entity)

在需要做流程的实体类加入workflow_id(工作流id)approve_opinion(审批意见)字段
在这里插入图片描述

Controller层(控制层)

	//流程必要参数Spring注入private String formKey;private long formValue;private MyTask myTask;@Autowiredprivate 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");elsesql.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);// 流程IDpeopleHoliday.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获取TaskpeopleHoliday = 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获取TaskpeopleHoliday = 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}
审批意见




审批意见


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部