package com.norteksoft.wf.engine.service;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.norteksoft.product.orm.Page;
import com.norteksoft.wf.engine.dao.WorkflowTypeDao;
import com.norteksoft.wf.engine.entity.WorkflowType;
@Service
@Transactional
public class WorkflowTypeManager {
private Log log=LogFactory.getLog(WorkflowTypeManager.class);
private static String LOGMESSAGE_METHOD_OVER = " method over. ";
private WorkflowTypeDao workflowTypeDao;
@Autowired
public void setWorkflowTypeDao(WorkflowTypeDao workflowTypeDao) {
this.workflowTypeDao = workflowTypeDao;
}
/**
* 保存WorkflowType
*/
@Transactional(readOnly=false)
public void saveWorkflowType(WorkflowType basicType){
try {
workflowTypeDao.saveWorkflowType(basicType);
log.debug("excute save success.");
} catch (Exception e) {
log.debug("excute save failed.");
new RuntimeException( e);
}finally{
log.debug(LOGMESSAGE_METHOD_OVER);
}
}
/**
* 获得对应id的WorkflowType
*/
public WorkflowType getWorkflowType(Long id){
WorkflowType basicType = workflowTypeDao.get(id);
return basicType;
}
public WorkflowType getWorkflowTypeById(Long typeId,Long companyId){
return workflowTypeDao.getWorkflowTypeById(typeId, companyId);
}
/**
* 查询workflow
* 封装为Page
*/
public void getWorkflowTypePage(Page<WorkflowType> page){
workflowTypeDao.getWorkflowType(page);
}
/**
* 查询companyId公司的所有workflow
*/
public List<WorkflowType> getAllWorkflowType(){
List<WorkflowType> basicTypes = workflowTypeDao.getAllWorkflowType();
return basicTypes;
}
/**
* 查询companyId公司的所有workflow
* liudongxia
*/
public List<WorkflowType> getAllWorkflowType(Long companyId,Long systemId){
List<WorkflowType> basicTypes = workflowTypeDao.getAllWorkflowType();
return basicTypes;
}
/**
* 删除对应id的WorkflowType
*/
@Transactional(readOnly=false)
public void deleteWorkflowType(Long id){
try {
workflowTypeDao.delete(id);
log.debug("excute delete success.");
} catch (Exception e) {
log.debug("excute delete failed.");
new RuntimeException( e);
}finally{
log.debug(LOGMESSAGE_METHOD_OVER);
}
}
/**
* 删除WorkflowType
*/
@Transactional(readOnly=false)
public void deleteWorkflowType(WorkflowType basicType){
try {
workflowTypeDao.delete(basicType);
log.debug("excute delete success.");
} catch (Exception e) {
log.debug("excute delete failed.");
new RuntimeException( e);
}finally{
log.debug(LOGMESSAGE_METHOD_OVER);
}
}
public WorkflowType getWorkflowType(String typeCode) {
if(StringUtils.isEmpty(typeCode)) throw new RuntimeException("没有给定查询流程类型的查询条件:流程定义编号");
return workflowTypeDao.getWorkflowType(typeCode);
}
public List<WorkflowType> getWorkflowTypes(String typeCode) {
List<WorkflowType> types = workflowTypeDao.getWorkflowTypes(typeCode);
return types;
}
/**
* 查询companyId公司的所有workflow(flex使用)
*/
public List<WorkflowType> getAllWorkflowType(Long companyId){
List<WorkflowType> workflowTypes = workflowTypeDao.getAllWorkflowType(companyId);
return workflowTypes;
}
}