package com.sobey.cmop.mvc.service.department;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.sobey.cmop.mvc.comm.BaseSevcie;
import com.sobey.cmop.mvc.dao.DepartmentDao;
import com.sobey.cmop.mvc.entity.Department;
import com.sobey.framework.utils.DynamicSpecifications;
import com.sobey.framework.utils.SearchFilter;
/**
* 部门Department相关的管理类.
*
* @author liukai
*
*/
@Service
@Transactional(readOnly = true)
public class DepartmentService extends BaseSevcie {
@Resource
private DepartmentDao departmentDao;
/**
* 部门Department的分页查询.
*
* @param searchParams
* 页面传递过来的参数
* @param pageNumber
* @param pageSize
* @return
*/
public Page<Department> getDepartmentPageable(Map<String, Object> searchParams, int pageNumber, int pageSize) {
PageRequest pageRequest = buildPageRequest(pageNumber, pageSize);
Map<String, SearchFilter> filters = SearchFilter.parse(searchParams);
Specification<Department> spec = DynamicSpecifications.bySearchFilter(filters.values(), Department.class);
return departmentDao.findAll(spec, pageRequest);
}
public Department getDepartment(Integer id) {
return departmentDao.findOne(id);
}
/**
* 新增,更新部门 Department
*
* @param department
* @return
*/
@Transactional(readOnly = false)
public Department saveOrUpdateDepartment(Department department) {
return departmentDao.save(department);
}
@Transactional(readOnly = false)
public void deleteDepartment(Integer id) {
departmentDao.delete(id);
}
/**
* 根据部门名获得部门信息
*
* @param name
* @return
*/
public Department findDepartmentByName(String name) {
return departmentDao.findByName(name);
}
/**
* 获得所有的部门信息
*
* @return
*/
public List<Department> getDepartmentList() {
return (List<Department>) departmentDao.findAll();
}
}