简易流程流转实现

该博客主要介绍了如何实现简易的流程流转功能和消息发送功能。在'实现'部分,作者可能详细讲解了相关DAO层的实现以及页面展示的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能:

1 .流程流转

2  消息发送

实现

dao

package com.megait.kt.dao;

import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.megait.kt.model.KtShenheyijian;

/**
 * 审核意见
 * @author 俞
 *
 */
public class ShenheyijianDao extends HibernateDaoSupport  {
	/**
	 * Logger for this class
	 */
	private static final Logger log = Logger.getLogger(ShenheyijianDao.class);
	public void save(KtShenheyijian suggest) {
		log.debug("saving Gwy10Suggest instance");
		try {
			getHibernateTemplate().save(suggest);
			log.debug("save successful");
		} catch (RuntimeException re) {
			log.error("save failed", re);
			throw re;
		}
	}

	public void delete(KtShenheyijian persistentInstance) {
		log.debug("deleting Gwy10Suggest instance");
		try {
			getHibernateTemplate().delete(persistentInstance);
			log.debug("delete successful");
		} catch (RuntimeException re) {
			log.error("delete failed", re);
			throw re;
		}
	}
	
	public KtShenheyijian findById(String id) {
		String hql="from  KtShenheyijian suggest where suggest.id=?";
		List list= getHibernateTemplate().find(hql,id);
		if(list!=null&&list.size()>0){
			return (KtShenheyijian)list.get(0);
		}
		else
		{
			return null;
		}
	}
	/**
	 * 通过 申请id 返回建议列表
	 * @param appid
	 * @return
	 */
	public List<KtShenheyijian> findListByAppId(String ktid) {
		String hql="from  KtShenheyijian suggest where suggest.glid=?  order by suggest.inputTime";
		List list= getHibernateTemplate().find(hql,ktid);
		return list;
	}
	
}

service

package com.megait.kt.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;

import com.megait.kt.dao.ShenheyijianDao;
import com.megait.kt.model.KtShenheyijian;
import com.megait.kt.util.DateCenter;
import com.megait.kt.webmodel.KtShenheyijianWeb;
/**
 * 课题service
 * @author 俞
 *
 */
public class ShenheyijianManager {
	private static final Logger log = Logger.getLogger(ShenheyijianManager.class);
	ShenheyijianDao shenheyijianDao;
	public ShenheyijianDao getShenheyijianDao() {
		return shenheyijianDao;
	}
	public void setShenheyijianDao(ShenheyijianDao shenheyijianDao) {
		this.shenheyijianDao = shenheyijianDao;
	}

	/**
	 * 保存新的申请
	 */
	public void saveGwy10Suggest(String appid,String content,String username ,String stype){		
		KtShenheyijian suggest = new KtShenheyijian();
		suggest.setGlid(appid);
		suggest.setOpinion(content);
		suggest.setInputTime(new Date());
		suggest.setInputUser(username);
		suggest.setPoint(stype);
		shenheyijianDao.save(suggest);		
	}	
	
	/**
	 * 返回申请的 审批意见
	 */
	public List<KtShenheyijian> findListByAppId(String appid){
		return shenheyijianDao.findListByAppId(appid);
	}
	
	/**
	 * 返回申请的 审批意见 (和课题中的审核状态对映)
	 */
	public List<KtShenheyijianWeb> turnToModel(List<KtShenheyijian> list){
		List outList = new ArrayList();
		for(KtShenheyijian suggest:list){
			KtShenheyijianWeb _view = new KtShenheyijianWeb();
			_view.setGlid(suggest.getGlid());
			// _view.setOpinion(suggest.getUsername());
			_view.setInputTime(DateCenter.getDateStr(suggest.getInputTime()));
			_view.setInputUser(suggest.getInputUser());
			String str = "位置";  // 1-未提交 2-科管未审核 3-科管已审核 4-领导已审核
			if(suggest.getPoint().equals("1")){
				str = "课题组审核";
			}else if(suggest.getPoint().equals("2")){
				str = "科管审核";
			}else if(suggest.getPoint().equals("3")){
				str = "领导审核";
			}
			_view.setPoint(str);
			_view.setOpinion(suggest.getOpinion());
			outList.add(_view);
		}
		return outList;
	}
	
	

}



package com.megait.kt.service;

import org.apache.log4j.Logger;

import com.megait.kt.dao.KtDao;
import com.megait.kt.model.KtKeti;
/**
 * 课题service
 * @author 俞
 *
 */
public class KtFlowManager {
	private static final Logger log = Logger.getLogger(KtFlowManager.class);
	KtDao ktDao;
	public KtDao getKtDao() {
		return ktDao;
	}
	public void setKtDao(KtDao ktDao) {
		this.ktDao = ktDao;
	}
	/**
	 *  流程流转 提交给一下级
	 */		
	public KtKeti submitNext(String ktid){
		KtKeti keti = ktDao.findByKetiId(ktid);
		String state = keti.getShzt();//(1-未提交 2-科管未审核 3-科管已审核 4-领导已审核)
		String targetState = "-1";
		if(state.equals("1") ) { 			// 未提交 --> 科管
			targetState = "2";
		}else if(state.equals("2") ){ 	  //科管	-->领导
			targetState = "3";
		}else if(state.equals("3") ){ 	  //领导	-->审核通过
			targetState = "4";
		}else{
			log.error("提交错误,值异常  targetState:'"+ targetState+"'") ;
			throw new RuntimeException("提交错误,值异常  targetState:'"+ targetState+"'");
		}
		keti.setShzt(targetState);
		if("4".equals(targetState)){
			keti.setKtzt("1");
		}
		ktDao.save(keti);
		return keti;
	}
	/**
	 * 退回  目前只有院领导 退回给科研管理部门
	 *(流程状态 -2退回 -1 未提交;0 待处长审核/处长申请;1 待分管领导审核;2待主要领导审核;9 审核通过;))
	 */
	public void submitBack(String ktid){
		KtKeti keti = ktDao.findByKetiId(ktid);
		// String state = keti.getShzt();//(1-未提交 2-科管未审核 3-科管已审核 4-领导已审核)
		String targetState = "2"; 
		keti.setShzt(targetState);
		ktDao.save(keti);
	}

}

controller

/**
	 * 提交审核单
	 * @param request
	 * @param response
	 */
	public ModelAndView navlx_lxd_ck_submit(HttpServletRequest request,HttpServletResponse response){
		String ktid = StringFilter.getRequestParameter(request, "ktid");
		String suggestContent = StringFilter.getRequestParameter(request, "suggestContent");
		String isback = StringFilter.getRequestParameter(request, "isback");
		User user = (User)request.getSession().getAttribute("user");
		String username = user.getUsername().getValue();
		
		KtKeti keti = ktManager.findByKetiId(ktid);
		shenheyijianManager.saveGwy10Suggest(ktid, suggestContent, username, keti.getShzt());
		
		if(isback.equals("1")){
			ktFlowManager.submitBack(ktid); //退回
		}else{
			ktFlowManager.submitNext(ktid);	//下一步
		}
		Map<String, Object> map = new HashMap<String, Object>();	
		return new ModelAndView("redirect:/kt/navlx_index.do?pageItem=0",map);
	}

页面

<table cellpadding="0" cellspacing="0" border="1" bordercolor="#999999" style='width:710px'>
              <tr style="text-align:center; background-color:f4edd3">
                <td colspan="7"><b>审批意见</b></td>
              </tr>
              <tr style="text-align:center">
                <td width="150"><b>类型</b></td>
                <td width="100"><b>用户</b></td>
                <td width="100"><b>日期</b></td>
                <td width="500"><b>审批意见</b></td>
              
              </tr>
              <c:forEach items="${suggestList}" var="suggest">
                <tr style="text-align:center;height:100px">
                	<td >${suggest.point}</td> 
	                <td>${suggest.inputUser}</td>
	                <td>${suggest.inputTime}</td> 
	                <td>${suggest.opinion}</td> 
                </tr>
               </c:forEach>
            <form name="submitSuggest" action="${ctx}/kt/navlx_lxd_ck_submit.do" method="post">
            		<input id='ktid' name='ktid' type="hidden" value="${web.id}"/>
            		<input type='hidden' name='isback' id='isback' value='0'/>
            		<c:if test="${isAllowSubmit==true}">
					<tr style="text-align:center">
						<td>审批意见:</td>
	                	<td colspan='3'>
	                		 <textarea name='suggestContent'  style="width:100%;height:80px;text-align:left"'>请填写意见</textarea>
	                	</td> 
	                </tr>
	                
                	</c:if>
			</form>
</table><!-- end 审批意见 -->	



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值