功能:
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 审批意见 -->