一个用数据库实现的工作流(9)

2008-02-23 09:55:08来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


"work_id=? and sequence=(select min(sequence) from workflow_flow where work_id=? and sequence>?)",
new Object[] {workflow_id, workflow_id, new Integer(currentSeq)},
new int[] {Types.VARCHAR,
Types.VARCHAR, Types.INTEGER},
new ResultSetExtractor() {
public Object extractData(ResultSet rs) throws SQLException,
DataAccessException {
if (rs.next()) {
WorkflowNode wfNode = new WorkflowNode();
wfNode.setId(rs.getString("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;

}
return null;
}
});
if (obj != null) {
return (WorkflowNode) obj;
}
return null;
}

/**
* 在一个结点被拒绝的情况下,得到应该返回的上一个结点
*
* @param workflow_id String
* @param currentSeq int
* @return WorkflowNode
*/
public WorkflowNode getBeforeShouldRunningWorkflowNode(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 "
"work_id=? and sequence=(select max(sequence) from workflow_flow where work_id=? and sequence<?)",
new Object[] {workflow_id, workflow_id, new Integer(currentSeq)},
new int[] {Types.VARCHAR,
Types.VARCHAR, Types.INTEGER},
new ResultSetExtractor() {
public Object extractData(ResultSet rs) throws SQLException,
DataAccessException {
if (rs.next()) {
WorkflowNode wfNode = new WorkflowNode();
wfNode.setId(rs.getString("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;

}
return null;
}
});
if (obj != null) {
return (WorkflowNode) obj;
}
return null;
}

public WorkflowNode[] getWorkflowNodeByStatus(int work_status,
int node_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=? and a.status=? order by a.start_date desc",
new Object[] {new Integer(work_status), new Integer(node_status)},
new int[] {Types.INTEGER, 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"));

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[学习小记]Java的反射机制

下一篇:我的J2ME编程联系(1)——List