Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / devData / manager / PgTempHumManager.java
xiaowei on 16 Jul 2018 3 KB 修改数据获取不一致问题
package com.casic.PgInterface.devData.manager;

/**
 * Created by yxw on 2017/11/28.
 */

import com.casic.PgInterface.core.hibernate.HibernateEntityDao;
import com.casic.PgInterface.core.util.DateUtils;
import com.casic.PgInterface.core.util.StringUtils;
import com.casic.PgInterface.devData.domain.PgTempHum;
import com.casic.PgInterface.devData.dto.PgTempHumDto;
import com.casic.PgInterface.devTable.domain.PgDevice;
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.Calendar;
import java.util.List;

@Service
public class PgTempHumManager extends HibernateEntityDao<PgTempHum> {

    //获取设备时间段内所有的监测数据
    public List<PgTempHumDto> getAllTempHumData(PgDevice pgDevice,String startDate,String endDate) {

        List<PgTempHumDto> pgTempHumDtoList=new ArrayList<PgTempHumDto>();

        try {
            Criteria criteria = createCriteria(PgTempHum.class);
            criteria.addOrder(Order.desc("id"));
            criteria.add(Restrictions.eq("pgDeviceId", pgDevice));

            if (StringUtils.isNotBlank(startDate)) {
                criteria.add(Restrictions.ge("upTime", DateUtils.sdf4.parse(startDate)));
            }
            if(StringUtils.isNotBlank(endDate)){
                Calendar calendar=Calendar.getInstance();
                calendar.setTime(DateUtils.sdf4.parse(endDate));
                calendar.add(Calendar.DATE,1);
                criteria.add(Restrictions.le("upTime",calendar.getTime()));
            }

            List<PgTempHum> pgTempHumList=criteria.list();

            for (PgTempHum pgTempHum : pgTempHumList) {
                pgTempHumDtoList.add(new PgTempHumDto(pgTempHum));
            }
        }
        catch(Exception ex)
        {
            return null;
        }

        return pgTempHumDtoList;
    }

    //获取设备最新数据
    public PgTempHumDto getNewestTempHumData(PgDevice pgDevice) {

        try {
            String sql="select id,TEMP,HUM,LOGTIME,LOGTIME from PG_TEMPHUM where PGDEVICEID = '"+pgDevice.getId()+"' AND  rownum < 2 order by UPTIME";

            List<Object[]> pgTempHumList=(List<Object[]>)this.getSession().createSQLQuery(sql).list();
            if(pgTempHumList.size()==0) return null;

            Object[] objects = pgTempHumList.get(0);
            PgTempHumDto pgTempHumDto=new PgTempHumDto(null);
            pgTempHumDto.setId(objects[0].toString());
            pgTempHumDto.setValueTemp(objects[1].toString());
            pgTempHumDto.setValueHum(objects[2].toString());
            pgTempHumDto.setLogTime(objects[3].toString());
            pgTempHumDto.setUpTime(objects[4].toString());
            pgTempHumDto.setDevCode(pgDevice.getDevCode());
            pgTempHumDto.setDevName(pgDevice.getAssetName());
            //获取devName和devCode
            return pgTempHumDto;
        }
        catch(Exception ex)
        {
            return null;
        }
    }

}