EqpOnlineRateDaoImpl.java 6.35 KB
package com.zteits.park.dao.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xiaoleilu.hutool.date.DateUtil;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.park.dto.eqponlinerate.EqpOnlineRateStatisticTotalDTO;
import com.zteits.clouds.api.dto.park.param.eqponlinerate.EqpOnlineRateReq;
import com.zteits.park.dao.EqpOnlineRateDao;
import com.zteits.park.domain.*;
import com.zteits.park.mapper.EqpOnlineRateStatisticDayMapper;
import com.zteits.park.mapper.EqpOnlineRateStatisticMonthMapper;
import com.zteits.park.mapper.EqpOnlineRateStatisticWeekMapper;
import com.zteits.park.mapper.smapper.EqpOnlineRateStatisticSMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 * Copyright: Copyright (c) 2018  zteits
 *
 * @Description:
 * @version: v1.0.0
 * @author: xiejianpeng
 * @date: 2018/5/17 20
 * Modification History:
 * Date             Author          Version            Description
 * ---------------------------------------------------------*
 * 2018/5/17      xiejianpeng         v1.0.0               创建
 */
@Component
public class EqpOnlineRateDaoImpl implements EqpOnlineRateDao {


    @Autowired
    private EqpOnlineRateStatisticDayMapper eqpOnlineRateStatisticDayMapper;

    @Autowired
    private EqpOnlineRateStatisticMonthMapper eqpOnlineRateStatisticMonthMapper;

    @Autowired
    private EqpOnlineRateStatisticWeekMapper eqpOnlineRateStatisticWeekMapper;

    @Autowired
    private EqpOnlineRateStatisticSMapper eqpOnlineRateStatisticSMapper;



    @Override
    public Integer deleteEqpOnlineRateForDay(String plNo, Date startDate) {
        startDate = DateUtil.beginOfDay(startDate);
        EqpOnlineRateStatisticDayExample example = new EqpOnlineRateStatisticDayExample();
        example.createCriteria().andPlNoEqualTo(plNo).andStaticDateEqualTo(startDate);
        return eqpOnlineRateStatisticDayMapper.deleteByExample(example);
    }

    @Override
    public Integer saveEqpOnlineRateForDay(EqpOnlineRateStatisticDay eqpOnlineRateStatisticDay) {
        return eqpOnlineRateStatisticDayMapper.insertSelective(eqpOnlineRateStatisticDay);
    }

    @Override
    public Integer saveEqpOnlineRateForMonth(EqpOnlineRateStatisticMonth eqpOnlineRateStatistic) {
        return eqpOnlineRateStatisticMonthMapper.insertSelective(eqpOnlineRateStatistic);
    }

    @Override
    public Integer saveEqpOnlineRateForWeek(EqpOnlineRateStatisticWeek eqpOnlineRateStatistic) {
        return eqpOnlineRateStatisticWeekMapper.insertSelective(eqpOnlineRateStatistic);
    }

    @Override
    public Integer deleteEqpOnlineRateForWeek(String plNo, Date startDate) {
        startDate = DateUtil.beginOfDay(startDate);
        EqpOnlineRateStatisticWeekExample example = new EqpOnlineRateStatisticWeekExample();
        example.createCriteria().andPlNoEqualTo(plNo).andStaticDateEqualTo(startDate);
        return eqpOnlineRateStatisticWeekMapper.deleteByExample(example);    }

    @Override
    public Integer deleteEqpOnlineRateForMonth(String plNo, Date startDate) {
        startDate = DateUtil.beginOfDay(startDate);
        EqpOnlineRateStatisticMonthExample example = new EqpOnlineRateStatisticMonthExample();
        example.createCriteria().andPlNoEqualTo(plNo).andStaticDateEqualTo(startDate);
        return eqpOnlineRateStatisticMonthMapper.deleteByExample(example);    }

    @Override
    public PageInfo<EqpOnlineRateStatisticDay> queryEqpOnlineRateForkDay(EqpOnlineRateReq request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(),request.getBaseRequest().getPageSize());
        EqpOnlineRateStatisticDayExample example = new EqpOnlineRateStatisticDayExample();
        example.createCriteria().andStaticDateBetween(request.getBeginTime(), request.getEndTime())
                .andPlTypeEqualTo(1)
                .andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andPlNoIn(request.getPlNos());
        example.setOrderByClause("convert(pl_name USING gbk) asc");
        List<EqpOnlineRateStatisticDay> list = eqpOnlineRateStatisticDayMapper.selectByExample(example);
        return new PageInfo<>(list);
    }

    @Override
    public PageInfo<EqpOnlineRateStatisticWeek> queryEqpOnlineRateForkWeek(EqpOnlineRateReq request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(),request.getBaseRequest().getPageSize());
        EqpOnlineRateStatisticWeekExample example = new EqpOnlineRateStatisticWeekExample();
        example.createCriteria().andStaticDateBetween(request.getBeginTime(), request.getEndTime())
                .andPlTypeEqualTo(1)
                .andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andPlNoIn(request.getPlNos());
        example.setOrderByClause("convert(pl_name USING gbk) asc");
        List<EqpOnlineRateStatisticWeek> list = eqpOnlineRateStatisticWeekMapper.selectByExample(example);
        return new PageInfo<>(list);
    }

    @Override
    public PageInfo<EqpOnlineRateStatisticMonth> queryEqpOnlineRateForkMonth(EqpOnlineRateReq request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(),request.getBaseRequest().getPageSize());
        EqpOnlineRateStatisticMonthExample example = new EqpOnlineRateStatisticMonthExample();
        example.createCriteria().andStaticDateBetween(request.getBeginTime(), request.getEndTime())
                .andPlTypeEqualTo(1)
                .andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andPlNoIn(request.getPlNos());
        example.setOrderByClause("convert(pl_name USING gbk) asc");
        List<EqpOnlineRateStatisticMonth> list=eqpOnlineRateStatisticMonthMapper.selectByExample(example);
        return new PageInfo<>(list);
    }

    @Override
    public EqpOnlineRateStatisticTotalDTO queryEqpOnlineRateTotalForDay(EqpOnlineRateReq request) {
        return eqpOnlineRateStatisticSMapper.queryEqpOnlineRateTotalForDay(request);
    }

    @Override
    public EqpOnlineRateStatisticTotalDTO queryEqpOnlineRateTotalForMonth(EqpOnlineRateReq request) {
        return eqpOnlineRateStatisticSMapper.queryEqpOnlineRateTotalForMonth(request);
    }

    @Override
    public EqpOnlineRateStatisticTotalDTO queryEqpOnlineRateTotalForWeek(EqpOnlineRateReq request) {
        return eqpOnlineRateStatisticSMapper.queryEqpOnlineRateTotalForWeek(request);
    }

}