package org.fireflow.engine.modules.persistence.nutz; import java.util.List; import org.apache.commons.lang.StringUtils; import org.fireflow.engine.entity.runtime.WorkItem; import org.fireflow.engine.entity.runtime.WorkItemProperty; import org.fireflow.engine.entity.runtime.impl.LocalWorkItemImpl; import org.fireflow.engine.entity.runtime.impl.WorkItemHistory; import org.fireflow.engine.modules.persistence.WorkItemPersister; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; public class WorkItemPersisterNutzImpl extends AbsPersisterNutzImpl implements WorkItemPersister { public void deleteAllWorkItems() { dao().clear(LocalWorkItemImpl.class); } public void deleteWorkItemsInInitializedState(String activityInstanceId, String parentWorkItemId) { Sql sql = null; if (StringUtils.isEmpty(parentWorkItemId)){ sql = Sqls.create("DELETE FROM T_FF_RT_WORKITEM where ACTIVITY_INSTANCE_ID=@actInstId AND STATE=@state"); sql.params().set("actInstId", activityInstanceId); sql.params().set("state", 0); }else{ sql = Sqls.create("DELETE FROM T_FF_RT_WORKITEM where ACTIVITY_INSTANCE_ID=@actInstId AND PARENT_WORKITEM_ID=@pWorkItemId AND STATE=@state"); sql.params().set("actInstId", activityInstanceId); sql.params().set("pWorkItemId",parentWorkItemId); sql.params().set("state", 0); } dao().execute(sql); } public List<WorkItem> findWorkItemsForActivityInstance( String activityInstanceId) { List l = dao().query(LocalWorkItemImpl.class, Cnd.where(WorkItemProperty.ACTIVITY_INSTANCE_ID.getPropertyName(),"=",activityInstanceId)); return (List<WorkItem>)l; } public List<WorkItem> findWorkItemsForActivityInstance( String activityInstanceId, String parentWorkItemId) { List l = dao().query(LocalWorkItemImpl.class, Cnd.where(WorkItemProperty.ACTIVITY_INSTANCE_ID.getPropertyName(),"=",activityInstanceId) .and(WorkItemProperty.PARENT_WORKITEM_ID.getPropertyName(), "=", parentWorkItemId)); return (List<WorkItem>)l; } @Override public Class getEntityClass4Runtime(Class interfaceClz) { return LocalWorkItemImpl.class; } @Override public Class getEntityClass4History(Class interfaceClz) { return WorkItemHistory.class; } }