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.PgMaintainDocDto; 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<PgMaintainDocDto> getPgMaintainList() { String sql = "SELECT B.ID,B.MAINTAINER,A.LIST_NAME, B.DESCRIBE, B.BEGINTIME,B.TIMELIMT,A.FILE_NAME " + "FROM PG_MAINTAINDOC A LEFT JOIN PG_MAINTAIN B ON B.ID = A.PGMAINTAIN_ID " + "WHERE B.ACTIVE = 1 ORDER BY B.ID ASC"; List<PgMaintainDocDto> pgMaintainDocDtoList = new ArrayList<PgMaintainDocDto>(); List<Object[]> objects = this.getSession().createSQLQuery(sql).list(); for (int i = 0; i < objects.size() ; i++) { PgMaintainDocDto pgMaintainDocDto = new PgMaintainDocDto(); pgMaintainDocDto.setId(String.valueOf(objects.get(i)[0])); pgMaintainDocDto.setMainTainer(String.valueOf(objects.get(i)[1])); pgMaintainDocDto.setList_name(String.valueOf(objects.get(i)[2])); pgMaintainDocDto.setDescribe(String.valueOf(objects.get(i)[3])); pgMaintainDocDto.setBeginTime(String.valueOf(objects.get(i)[4])); pgMaintainDocDto.setTimeLimt(String.valueOf(objects.get(i)[5])); pgMaintainDocDto.setFile_name(String.valueOf(objects.get(i)[6])); pgMaintainDocDtoList.add(pgMaintainDocDto); } return pgMaintainDocDtoList; } 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; } }