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; } }