一个用数据库实现的工作流(8)
2008-02-23 09:55:08来源:互联网 阅读 ()
if (list != null && list.size() > 0) {
return (String[]) list.toArray(new String[list.size()]);
}
return null;
}
public WorkflowNode[] getWorkflowNodeByStatus(int status) {
List list = this.getJdbcTemplate().query(
"select b.flow_id,a.work_id,a.comment,a.status,"
"a.sequence,a.name,a.description,a.start_date,a.end_date,a.audit_man from workflow_flow a"
",workflow_work b where a.id=b.flow_id and b.status=? order by a.start_date desc",
new Object[] {new Integer(status)}, new int[] {Types.INTEGER},
new RowMapper() {
public Object mapRow(ResultSet rs, int _int) throws SQLException {
WorkflowNode wfNode = new WorkflowNode();
wfNode.setId(rs.getString("flow_id"));
wfNode.setWorkId(rs.getString("work_id"));
wfNode.setComment(rs.getString("comment"));
wfNode.setStatus(rs.getInt("status"));
wfNode.setSequence(rs.getInt("sequence"));
wfNode.setName(rs.getString("name"));
wfNode.setDescription(rs.getString("description"));
wfNode.setStartDate(rs.getTimestamp("start_date"));
wfNode.setEndDate(rs.getTimestamp("end_date"));
wfNode.setAuditMan(rs.getString("audit_man"));
return wfNode;
}
});
if (list != null && list.size() > 0) {
return (WorkflowNode[]) list.toArray(new WorkflowNode[list.size()]);
}
return null;
}
public WorkflowNode[] getAllRunningWorkflowNode() {
return this.getWorkflowNodeByStatus(Workflow.WORKFLOW_STATUS_RUNNING,
WorkflowNode.
WORKFLOW_NODE_STATUS_RUNNING);
}
public Workflow getWorkflowByDocId(String doc_id) {
Object obj = this.getJdbcTemplate().query("select id,doc_id,status,"
"flow_id,start_date,end_date,comment from workflow_work where doc_id=?",
new Object[] {doc_id},
new int[] {Types.VARCHAR},
new ResultSetExtractor() {
public Object extractData(ResultSet rs) throws SQLException,
DataAccessException {
if (rs.next()) {
Workflow wf = new Workflow();
wf.setId(rs.getString("id"));
wf.setDocId(rs.getString("doc_id"));
wf.setStatus(rs.getInt("status"));
wf.setComment(rs.getString("comment"));
wf.setStartDate(rs.getTimestamp("start_date"));
wf.setEndDate(rs.getTimestamp("end_date"));
wf.setFlowId(rs.getString("flow_id"));
return wf;
}
return null;
}
});
if (obj != null) {
return (Workflow) obj;
}
return null;
}
/**
*
* @param flow_id String
* @param wfNode WorkflowNode
*/
public void updateWorkflowNode(String flow_id, WorkflowNode wfNode) {
this.getJdbcTemplate().update(
"update workflow_flow set work_id=?,comment=?,status=?,"
"sequence=?,name=?,description=?,start_date=?,end_date=?,audit_man=? where id=?",
new Object[] {wfNode.getWorkId(), wfNode.getComment(),
new Integer(wfNode.getStatus()), new Integer(wfNode.getSequence()),
wfNode.getName(), wfNode.getDescription(), wfNode.getStartDate(),
wfNode.getEndDate(), wfNode.getAuditMan(), flow_id},
new int[] {Types.VARCHAR, Types.VARCHAR,
Types.INTEGER, Types.INTEGER, Types.VARCHAR, Types.VARCHAR,
Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR, Types.VARCHAR});
}
/**
* 得到应该运行的下一个结点
*
* @param workflow_id String
* @param currentSeq int
* @return WorkflowNode
*/
public WorkflowNode getAfterShouldRunningWorkflowNode(String workflow_id,
int currentSeq) {
Object obj = this.getJdbcTemplate().query(
"select id,work_id,comment,status,"
"sequence,name,description,start_date,end_date,audit_man from workflow_flow where "
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:[学习小记]Java的反射机制
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
