package com.casic.PgInterface.devTable.manager; import com.casic.PgInterface.core.hibernate.HibernateEntityDao; import com.casic.PgInterface.devTable.domain.PgDevice; import com.casic.PgInterface.devTable.dto.PgDeviceDto; import com.casic.PgInterface.devTable.dto.PgDeviceTypeStatisticDto; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * Created by yxw on 2017/10/30. */ @Service public class PgDeviceManager extends HibernateEntityDao<PgDevice> { //获取当前设备列表 public List<PgDeviceDto> getAllDevice() { Criteria criteria = createCriteria(PgDevice.class); criteria.add(Restrictions.eq("active", 1)); criteria.addOrder(Order.desc("id")); List<PgDevice> pgDeviceList = criteria.list(); /* String sql = "select * from PG_DEVICE where active = 1 order by id desc"; List<PgDeviceDto> pgDeviceDtoList = this.getSession().createSQLQuery(sql).list(); */ List<PgDeviceDto> pgDeviceDtoList = new ArrayList<PgDeviceDto>(); for (PgDevice pgDevice : pgDeviceList) { pgDeviceDtoList.add(new PgDeviceDto(pgDevice)); } return pgDeviceDtoList; } //根据名字获取当前设备 public PgDevice getDeviceByAssetCode(String assetCode) { Criteria criteria=createCriteria(PgDevice.class); criteria.add(Restrictions.eq("assetCode",assetCode)); List<PgDevice> pgDeviceList=criteria.list(); if(pgDeviceList.size()==0) return null; else return pgDeviceList.get(0); } //根据类型获取设备列表 public List<PgDeviceDto> getDeviceByDevTypee(String devType) { Criteria criteria=createCriteria(PgDevice.class); criteria.add(Restrictions.eq("devType",devType)); List<PgDevice> pgDeviceList=criteria.list(); List<PgDeviceDto> pgDeviceDtoList = new ArrayList<PgDeviceDto>(); for (PgDevice pgDevice : pgDeviceList) { pgDeviceDtoList.add(new PgDeviceDto(pgDevice)); } return pgDeviceDtoList; } //根据设备编号获取当前设备的信息 public PgDevice getDeviceBydevCode(String devCode) { Criteria criteria=createCriteria(PgDevice.class); criteria.add(Restrictions.eq("devCode",devCode)); List<PgDevice> pgDeviceList=criteria.list(); if(pgDeviceList.size()==0) return null; else return pgDeviceList.get(0); } //根据设备类型统计设备资产 public List<PgDeviceTypeStatisticDto> getDeviceStatisticByDevType(){ String hql="select device.devType,count(*) from PG_DEVICE device group by device.devType"; List<PgDeviceTypeStatisticDto> pgDeviceTypeStatisticDtoList=this.getSession().createSQLQuery(hql).list(); return pgDeviceTypeStatisticDtoList; } //根据分区获取设备列表 public List<PgDeviceDto> getPgDeviceDtoListByPartition(String partition) { Criteria criteria=createCriteria(PgDevice.class); criteria.add(Restrictions.eq("partition",partition)); List<PgDevice> pgDeviceList=criteria.list(); List<PgDeviceDto> pgDeviceDtoList = new ArrayList<PgDeviceDto>(); for (PgDevice pgDevice : pgDeviceList) { pgDeviceDtoList.add(new PgDeviceDto(pgDevice)); } return pgDeviceDtoList; } }