package com.unis.base.server.domain;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.unis.base.common.vo.TyTfzyxxHisVO;
import com.unis.base.common.vo.TyTfzyxxVO;
import com.unis.base.server.dao.TyTfzyxxDao;
import com.unis.base.server.entity.TyTfzyxxDO;
import com.unis.common.utils.LsBeanUtils;
import org.springframework.stereotype.Component;

/**
 * @author huangxing
 * @version 1.0
 * @Title TyTfzyxxDomain
 * @ProjectName 持久化
 * @Description
 * @date 2019/07/22 17点26分
 */
@Component
public class TyTfzyxxDomain extends BaseDomain {

	@Autowired
	private TyTfzyxxDao tyTfzyxxMapper;

	@Autowired
	private TyTfzyxxHisDomain tyTfzyxxHisDomain;
	/**
	 *
	 * @param TyTfzyxxVO
	 * @return
	 */
	public List<TyTfzyxxVO> getTyTfzyxxList(TyTfzyxxVO tyTfzyxxVO) {
		TyTfzyxxDO tfzyxxDO = new TyTfzyxxDO();
		//进行传递参数copy
		LsBeanUtils.copyAllProperties(tyTfzyxxVO, tfzyxxDO);
		List<TyTfzyxxDO> select = tyTfzyxxMapper.select(tfzyxxDO);
		if (select==null) {
			return null;
		 }
		List<TyTfzyxxVO> tyTfzyxxVOList = new ArrayList<TyTfzyxxVO>();
		LsBeanUtils.copyCollection(select, tyTfzyxxVOList, TyTfzyxxVO.class);
		return tyTfzyxxVOList;
	}

	/**
	 *
	 * @param TyTfzyxxVO
	 * @return
	 */
	public int insert(TyTfzyxxVO tyTfzyxxVO) {
		//进行传递参数copy
		TyTfzyxxDO tyTfzyxxDO = new TyTfzyxxDO();
		LsBeanUtils.copyAllProperties(tyTfzyxxVO, tyTfzyxxDO);
		return tyTfzyxxMapper.insert(tyTfzyxxDO);
      }

	/**
	 *
	 * @param tfzyid
	 * @return
	 */
	public TyTfzyxxVO getTyTfzyxxById(String tfzyid) {
		TyTfzyxxVO tyTfzyxxVO = new TyTfzyxxVO();
		LsBeanUtils.copyAllProperties(tyTfzyxxMapper.selectByKey(tfzyid), tyTfzyxxVO);
		return tyTfzyxxVO;
	}

	/**
	 *
	 * @param TyTfzyxxVO
	 * @return
	 */
	public int update(TyTfzyxxVO tyTfzyxxVO) {
		//进行传递参数copy
		TyTfzyxxDO tyTfzyxxDO = new TyTfzyxxDO();
		LsBeanUtils.copyAllProperties(tyTfzyxxVO, tyTfzyxxDO);
		return tyTfzyxxMapper.updateByPrimaryKey(tyTfzyxxDO);
	}

	/**
	 * 通风作业信息-更改备案状态
	 * @param tyTfzyxxHisVO
	 * @return
	 */
	public Integer ventilationOperationStatus(TyTfzyxxHisVO tyTfzyxxHisVO) {
		Map<String, Object> updateMap = new HashMap<>();
		updateMap.put("tfzyid",tyTfzyxxHisVO.getTfzyid());
		updateMap.put("sfba",tyTfzyxxHisVO.getSfba());
    	int i = tyTfzyxxMapper.ventilationOperationStatus(updateMap);
		if (i == 0){
			return i;
		}

		return tyTfzyxxHisDomain.insert(tyTfzyxxHisVO);
	}

	/**
	 * @param tyTfzyxxVO
	 * @param pageSize
	 * @param pageNum
	 * @return
	 */
	public PageInfo<TyTfzyxxVO> getTyTfzyxxPage(TyTfzyxxVO tyTfzyxxVO, Integer pageNum, Integer pageSize) {
		PageInfo<TyTfzyxxVO> pageInfoVO = new PageInfo<TyTfzyxxVO>();
		PageHelper.startPage(pageNum, pageSize);
		TyTfzyxxDO tfzyxxDO = new TyTfzyxxDO();
		//进行传递参数copy
		LsBeanUtils.copyAllProperties(tyTfzyxxVO, tfzyxxDO);
		List<TyTfzyxxDO> select = tyTfzyxxMapper.select(tfzyxxDO);
		if (select==null) {
			return null;
		 }
		PageInfo<TyTfzyxxDO> tyTfzyxxVOList = new PageInfo<TyTfzyxxDO>(select);
		LsBeanUtils.copyAllProperties(tyTfzyxxVOList,pageInfoVO);
		return pageInfoVO;
	}

}
