Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / devTable / manager / PgDeviceManager.java
xiaowei on 28 Jun 2018 4 KB 增加新旧资产转换接口
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;
    }

    public List<PgDeviceDto> getDeviceByOldDAssetCodeCode(String assetCode)
    {
        String[] stringList=assetCode.split("\\.");

        String hql="select * from PG_DEVICE device where device.assetCode like '%"+stringList[1]+"%' and device.assetCode like '%"+stringList[2]+"'";

        List<Object[]> pgDevices=(List<Object[]>)this.getSession().createSQLQuery(hql).list();

        List<PgDeviceDto> pgDeviceDtoList = new ArrayList<PgDeviceDto>();

        for (int i = 0; i<pgDevices.size();i++)
        {
            Object[] objects = pgDevices.get(i);
            PgDeviceDto dto = new PgDeviceDto(null);
            dto.setId(objects[0].toString());
            dto.setActive(objects[1].toString());
            dto.setAssetCode(objects[3].toString());
            dto.setAssetName(objects[4].toString());
            dto.setDevCode(objects[5].toString());
            dto.setDevType(objects[6].toString());
            dto.setIp(objects[7].toString());
            dto.setIsOpen(objects[8].toString());
            dto.setPartition(objects[11].toString());
            dto.setPipeGallery(objects[12].toString());
            dto.setPosition(objects[13].toString());
            dto.setRoad(objects[14].toString());

            pgDeviceDtoList.add(dto);
        }
        return pgDeviceDtoList;
    }

}