Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / patroler / manager / PgMaintainManager.java
xiaowei on 9 Apr 2018 4 KB 修改施工功能
package com.casic.PgInterface.patroler.manager;

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.patroler.domain.PgMaintain;
import com.casic.PgInterface.patroler.dto.PgMaintainDto;
import com.casic.PgInterface.patroler.dto.PgPatrolMaintainInfoDto;
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;

/**
 * Created by yxw on 2018/3/28.
 */
@Service
public class PgMaintainManager extends HibernateEntityDao<PgMaintain>{

    public List<PgMaintainDto> getPgMaintainList() {
        Criteria criteria=createCriteria(PgMaintain.class);
        criteria.add(Restrictions.eq("active", 1));
        criteria.addOrder(Order.desc("id"));

        List<PgMaintain> pgMaintainList=criteria.list();
        List<PgMaintainDto> pgMaintainDtoList=new ArrayList<PgMaintainDto>();
        for(PgMaintain pgMaintain:pgMaintainList)
        {
            pgMaintainDtoList.add(new PgMaintainDto(pgMaintain));
        }
        return pgMaintainDtoList;
    }

    public List<PgMaintainDto> getPgMaintainByMaintainerOrTime(String mainTainer,String startTime,String endTime) {
        try {
            Criteria criteria = createCriteria(PgMaintain.class);
            if (StringUtils.isNotBlank(mainTainer)) {
                criteria.add(Restrictions.eq("mainTainer", mainTainer));
            }
            if (StringUtils.isNotBlank(startTime)) {
                criteria.add(Restrictions.ge("beginTime", DateUtils.sdf_day.parse(startTime)));
            }
            if (StringUtils.isNotBlank(endTime)) {
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(DateUtils.sdf_day.parse(endTime));
                calendar.add(Calendar.DATE, 1);
                criteria.add(Restrictions.le("beginTime", calendar.getTime()));
            }

            criteria.add(Restrictions.eq("active", 1));
            criteria.addOrder(Order.desc("id"));

            List<PgMaintain> pgMaintainList=criteria.list();
            List<PgMaintainDto> pgMaintainDtoList=new ArrayList<PgMaintainDto>();
            for(PgMaintain pgMaintain : pgMaintainList)
            {
                pgMaintainDtoList.add(new PgMaintainDto(pgMaintain));
            }

            return pgMaintainDtoList;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    //yyyy-mm-dd
    public List<PgPatrolMaintainInfoDto> getMaintainByTime(String startTime,String endTime,String statisticType) {

        String sql="";
        String dateType="";
        List<PgPatrolMaintainInfoDto> pgPatrolMaintainInfoDtoList=new ArrayList<PgPatrolMaintainInfoDto>();

        int type=Integer.valueOf(statisticType);
        switch(type) {
            case 0://年
                dateType = "yyyy";
                break;
            case 1://月
                dateType = "yyyy-mm";
                break;
            case 2://周
                dateType = "iw";
                break;
            case 3://日
                dateType="yyyy-mm-dd";
                break;
            default:
                break;
        }
        sql="select count(*), to_char(t.BEGINTIME, '"+dateType+"') from PG_MAINTAIN t where t.BEGINTIME >= " +
                "to_date('"+startTime+"', 'yyyy-mm-dd') and t.BEGINTIME <= to_date('"+endTime+"', 'yyyy-mm-dd') group " +
                "by to_char(t.BEGINTIME, '"+dateType+"')";

        List<Object[]> objects = this.getSession().createSQLQuery(sql).list();
        for(int i=0;i<objects.size();i++) {
            PgPatrolMaintainInfoDto pgPatrolMaintainInfoDto=new PgPatrolMaintainInfoDto();
            pgPatrolMaintainInfoDto.setNum(objects.get(i)[0].toString());
            pgPatrolMaintainInfoDto.setDate(objects.get(i)[1].toString());

            pgPatrolMaintainInfoDtoList.add(pgPatrolMaintainInfoDto);
        }
        return pgPatrolMaintainInfoDtoList;
    }


}