⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskqrydao.java

📁 公司自己开发的工作流引擎
💻 JAVA
字号:
package cn.com.iaspec.workflow.extbusiness.task.dao;

import cn.com.iaspec.workflow.client.web.formbean.TaskQryFormbean;
import java.util.List;
import cn.com.iaspec.workflow.db.WorkflowDBConnectionManager;
import java.sql.*;
import java.util.ArrayList;
import cn.com.iaspec.workflow.extbusiness.task.vo.NeedExecuteTask;
import org.apache.log4j.Logger;
import cn.com.iaspec.workflow.extbusiness.pagemanage.vo.PageInfo;
import cn.com.iaspec.workflow.extbusiness.pagemanage.business.PageSqlBuilder;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: IASPEC Technologies</p>
 *
 * @author leigm
 * @version 1.0
 */

public class TaskQryDAO{
  private static transient Logger logger = Logger.getLogger(TaskQryDAO.class);

  /**
   * 根据查询条件组装WHERE语句
   * @param taskForm TaskQryFormbean
   * @return String
   */
  private String getWhereStr(TaskQryFormbean taskForm){
    StringBuffer whereBuffer = new StringBuffer("");

    if(taskForm.getSenderName() != null && !"".equals(taskForm.getSenderName())){
      whereBuffer.append(" and wf_from_user_name = '")
          .append(taskForm.getSenderName()).append("'");
    }
    if(taskForm.getTaskName() != null && !"".equals(taskForm.getTaskName())){
      whereBuffer.append(" and wf_workitem_name = '").
          append(taskForm.getTaskName()).append("'");
    }
    if(taskForm.getTitle() != null && !"".equals(taskForm.getTitle())){
      whereBuffer.append(" and wf_project_title = '")
          .append(taskForm.getTitle()).append("'");
    }

    return whereBuffer.toString();
  }

  /**
   * 根据查询条件和当前用户资料,获取当前用户的待办任务
   * @param PageInfo pageVars
   * @return PageInfo
   * @throws Exception
   */
  public PageInfo getNeedExecuteTask(PageInfo pageVars)throws Exception{
    TaskQryFormbean taskForm = (TaskQryFormbean)pageVars.getQueryObj();

    Connection conn = null;
    PreparedStatement ptmt = null;
    ResultSet rs = null;
    List taskList = new ArrayList();
    List qryValues = new ArrayList();
    NeedExecuteTask task = null;

    try{
      String userId = taskForm.getUserInfo().getUserId();

      qryValues.add(userId);
      qryValues.add(userId);
      qryValues.add(userId);
      qryValues.add(userId);

      String whereStr = this.getWhereStr(taskForm);
      String fullQrySql = "select * from view_wf_tasklist where (wki_state in(1,2,4) and " +
          "(wki_user=?  and wki_state='1' and wka_applyman is null) " +
          "or ((atd_tamid =1 and wki_user=?  and wki_state='4' and wka_applyman is null) " +
          "or (atd_tamid =2 and wki_user=?  and wki_state='4' and wka_applyman=wki_user)) " +
          "or (wka_applyman=? and wki_state='2')) " + whereStr;
      String sql = PageSqlBuilder.getInstance().buildSql(fullQrySql,pageVars,qryValues);

      conn = WorkflowDBConnectionManager.getInstance().getConnection();
      ptmt = conn.prepareStatement(sql);

      logger.debug("\n###########\n\t sql = " + sql + "\n and userId = " + userId);

      for(int i=0;i<qryValues.size();i++){
        ptmt.setObject(i+1,qryValues.get(i));
      }
      rs = ptmt.executeQuery();
      while(rs.next()){
        task = new NeedExecuteTask();

        task.setTaskId(rs.getString("wf_workitem_id"));
        task.setTaskName(rs.getString("wf_workitem_name"));
        task.setCreatedTime(rs.getDate("wf_create_date"));
        task.setFinishTime(rs.getDate("wf_checkin_date"));
        task.setFromUsrName(rs.getString("wf_from_user_name"));
        task.setProjectId(rs.getString("wf_project_id"));
        task.setProjectTitle(rs.getString("wf_project_title"));
        task.setBusinessId(rs.getString("wf_business_id"));
        task.setProcessInstId(rs.getString("wf_process_instance_id"));
        task.setUrl(rs.getString("wf_workitem_url"));

        taskList.add(task);
      }
    }catch(Exception e){
      logger.error("数据库读写错误,获取当前用户的待办任务失败!");
      e.printStackTrace();
      throw e;
    }finally{
      WorkflowDBConnectionManager.getInstance().close(rs);
      WorkflowDBConnectionManager.getInstance().close(ptmt,false);
      WorkflowDBConnectionManager.getInstance().close(conn);
    }

    pageVars.setResultObj(taskList);
    return pageVars;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -