Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / maintenance / manager / PgAssetPlanManager.java
T440 on 10 Sep 2019 2 KB 修改巡检内容
package com.casic.PgInterface.maintenance.manager;

import com.casic.PgInterface.core.hibernate.HibernateEntityDao;
import com.casic.PgInterface.core.util.StringUtils;
import com.casic.PgInterface.maintenance.domain.PgAssetPlan;
import com.casic.PgInterface.maintenance.dto.PgAssetPlanStatic;
import com.casic.PgInterface.maintenance.dto.PgAssetPlanDto;
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;

@Service
public class PgAssetPlanManager extends HibernateEntityDao<PgAssetPlan> {

    public List<PgAssetPlanDto> getPgAssetPlanDtoList(String inSpectionPlace){
        Criteria criteria=createCriteria(PgAssetPlan.class);

        if(StringUtils.isNotBlank(inSpectionPlace))
            criteria.add(Restrictions.like("INSPECTION_PRACE","%"+inSpectionPlace+"%"));
        criteria.addOrder(Order.desc("id"));

        List<PgAssetPlan> pgAssetPlanList=criteria.list();

        List<PgAssetPlanDto> pgAssetPlanDtoList=PgAssetPlanDto.ConvertToPgAssetDtoList(pgAssetPlanList);

        if(pgAssetPlanDtoList==null||pgAssetPlanDtoList.size()==0)
            return null;
        else
            return pgAssetPlanDtoList;
    }

    public List<PgAssetPlanStatic> getPgAssetPlanStaticLisByTime(
            String startTime, String endTime, String staticType) {

        String sql="";
        String dateType="";
        List<PgAssetPlanStatic> pgAssetPlanStaticList=new ArrayList<>();
        int type=Integer.valueOf(staticType);

        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(to_date(t.CREATEDATE,'yyyy-MM-dd'), '"+dateType+"') from PG_ASSET_INSPECTION_PLAN t where 1=1";

        if(startTime!=null)
            sql+=" and t.CREATEDATE >= to_date('"+startTime+"', 'yyyy-mm-dd')";
        if(endTime!=null)
            sql+=" and t.CREATEDATE <= to_date('"+endTime+"', 'yyyy-mm-dd')";

        sql+=" group by to_char(to_date(t.CREATEDATE,'yyyy-MM-dd'), '"+dateType+"')";

        List<Object[]> objects = this.getSession().createSQLQuery(sql).list();
        for(int i=0;i<objects.size();i++)
        {
            PgAssetPlanStatic pgAssetPlanStatic=new PgAssetPlanStatic();
            pgAssetPlanStatic.setNum(objects.get(i)[0].toString());
            pgAssetPlanStatic.setCreateDate(objects.get(i)[1].toString());
            pgAssetPlanStaticList.add(pgAssetPlanStatic);
        }
        return pgAssetPlanStaticList;
    }

}