Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / devTable / manager / PgDeviceManager.java
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;
    }

}