EqpLogDaoImpl.java 4.41 KB
package com.zteits.park.dao.impl;

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

import com.clouds.common.utils.DateUtil;
import com.zteits.clouds.api.apibase.constants.EqpReportEventTypeEnum;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.clouds.param.BerthTurnOverQueryRequest;
import com.zteits.clouds.api.dto.clouds.param.EqpLogQueryRequest;
import com.zteits.clouds.api.dto.park.dto.ParkOccupancyRateDTO;
import com.zteits.clouds.api.dto.park.dto.TpPEqpLogDTO;
import com.zteits.park.dao.EqpLogDao;
import com.zteits.park.domain.BerthTurnOverCountDO;
import com.zteits.park.domain.TpPEqpLog;
import com.zteits.park.domain.TpPEqpLogSplitTable;
import com.zteits.park.mapper.smapper.TpPEqpLogSMapper;

@Component
public class EqpLogDaoImpl implements EqpLogDao {
	private static final Logger logger = LoggerFactory.getLogger(EqpLogDaoImpl.class);
	
//	@Autowired
//	private TpPEqpLogMapper tpPEqpLogMapper;
	
	@Autowired
	private TpPEqpLogSMapper tpPEqpLogSMapper;
	
	@Override
	public Boolean insertEqpLog(TpPEqpLog tdPEqpLog) {
		if(tdPEqpLog.getCreateTime()==null){
			tdPEqpLog.setCreateTime(new Date());
		}
		if(tdPEqpLog.getDataState()==null){
			tdPEqpLog.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
		}
		if(tdPEqpLog.getModifyTime()==null){
			tdPEqpLog.setModifyTime(new Date());
		}
		
		TpPEqpLogSplitTable tdPEqpLogs =new TpPEqpLogSplitTable();
		BeanUtils.copyProperties(tdPEqpLog, tdPEqpLogs);
		return tpPEqpLogSMapper.insertSelective(tdPEqpLogs ) > 0;
	}

	@Override
	public List<BerthTurnOverCountDO> queryBerthTurnOverByHour(BerthTurnOverQueryRequest request) {
		return tpPEqpLogSMapper.queryBerthTurnOverByHour(request);
	}

	@Override
	public List<ParkOccupancyRateDTO> queryParkOccupancyRate(String tableName, List<String> plNos) {
		return tpPEqpLogSMapper.queryParkOccupancyRate(tableName, plNos);
	}

	@Override
	public PageInfo<TpPEqpLogDTO> queryParkEqpForPageByPlNo(EqpLogQueryRequest request) {
		//设置分页信息
		//set page information
		PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
		//query park eqp for list
		List<TpPEqpLogDTO> list = tpPEqpLogSMapper.queryParkEqpForPageByPlNo(request);
		return (list != null && list.size() >0) ? new PageInfo<TpPEqpLogDTO>(list) : new PageInfo<TpPEqpLogDTO>(new ArrayList<TpPEqpLogDTO>());
	}
	@Override
	public List<BerthTurnOverCountDO> queryBerthTurnOverByDay(BerthTurnOverQueryRequest request) {
		return tpPEqpLogSMapper.queryBerthTurnOverByDay(request);
	}
	
	@Override
	public PageInfo<BerthTurnOverCountDO> queryBerthTurnOverDetail(BerthTurnOverQueryRequest request) {
		if (request.getBaseRequest() == null) {
			throw new BizException(ErrorType.PARAMM_NULL, "分页参数为空");
		}
		// 1.设置分页信息
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<BerthTurnOverCountDO> list = tpPEqpLogSMapper.queryBerthTurnOverDetail(request);
        return new PageInfo<BerthTurnOverCountDO>(list);
	}
	@Override
	public PageInfo<BerthTurnOverCountDO> queryBerthTurnOverDetailForHour(BerthTurnOverQueryRequest request) {
		if (request.getBaseRequest() == null) {
			throw new BizException(ErrorType.PARAMM_NULL, "分页参数为空");
		}
		// 1.设置分页信息
		PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
		List<BerthTurnOverCountDO> list = tpPEqpLogSMapper.queryBerthTurnOverDetailForHour(request);
		return new PageInfo<BerthTurnOverCountDO>(list);
	}

	@Override
	public Boolean insertHeartBeatData(List<String> eqpNos, String eqpIsOnline, EqpReportEventTypeEnum eventTypeEnum) {
        String yyyyMM = DateUtil.getDateString(DateUtil.YYYYMM);
        String tableName = "tp_p_eqp_log"+yyyyMM;
        try{
        	tpPEqpLogSMapper.insertHeartBeatData(tableName,eqpNos,eqpIsOnline,eventTypeEnum.value());
        }catch(Exception e){
        	logger.error("记录设备心跳日志异常",e);
        }
		return true;
	}

}