package com.unis.base.server.domain;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.unis.base.common.constant.FilingStatusConstant;
import com.unis.base.common.vo.TyTfzyxxHisQueryVO;
import com.unis.base.common.vo.TyTfzyxxHisVO;
import com.unis.base.server.dao.TyTfzyxxHisDao;
import com.unis.base.server.entity.TyTfzyxxHisDO;
import com.unis.common.utils.DateUtil;
import com.unis.common.utils.LsBeanUtils;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @author 张琪
 * @date 2019年9月16日 下午3:07:46
 * @description 通风作业Domain
 */
@Getter
@Setter
@ToString
@Component
public class TyTfzyxxHisDomain extends BaseDomain{
	@Autowired
	private TyTfzyxxHisDao tyTfzyxxHisDao;
	/**
	 * 分页查询列表
	 * @param tyTfzyxxHisQueryVO
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public PageInfo<TyTfzyxxHisVO> getTfzyxxHisListByQuery(TyTfzyxxHisQueryVO tyTfzyxxHisQueryVO, Integer pageNum,Integer pageSize) {
		PageInfo<TyTfzyxxHisVO> pageInfoVO = new PageInfo<TyTfzyxxHisVO>();
		PageHelper.startPage(pageNum, pageSize);
		List<TyTfzyxxHisDO> tJcrwDOs =  tyTfzyxxHisDao.findPageList(tyTfzyxxHisQueryVO);
		PageInfo<TyTfzyxxHisDO> PageInfoDO = new PageInfo<TyTfzyxxHisDO>(tJcrwDOs);
		LsBeanUtils.copyAllProperties(PageInfoDO,pageInfoVO);
		return pageInfoVO;
	}

	/**
	 * 根据主键ID获取通风作业历史信息
	 * @param lsId
	 * @return
	 */
	public TyTfzyxxHisVO getAerationHisInfoByLsId(String lsId) {
		TyTfzyxxHisDO tyTfzyxxHisDO = tyTfzyxxHisDao.selectByPrimaryKey(lsId);
		if (tyTfzyxxHisDO==null) {
			return null;
		}

		TyTfzyxxHisVO tyTfzyxxHisVO=new TyTfzyxxHisVO();
		LsBeanUtils.copyAllProperties(tyTfzyxxHisDO,tyTfzyxxHisVO);
		return tyTfzyxxHisVO;
	}

	/**
	 * 新增通风作业历史记录
	 * @param tyTfzyxxHisVO
	 * @return
	 */
	public int insert(TyTfzyxxHisVO tyTfzyxxHisVO) {
		String sfba = tyTfzyxxHisVO.getSfba().toString();
		if (FilingStatusConstant.FILING.getValue().equals(sfba)
				|| FilingStatusConstant.REJECTED.getValue().equals(sfba)) {
            //驳回的审批意见必填
			if (FilingStatusConstant.REJECTED.getValue().equals(sfba)) {
				if (StringUtils.isEmpty(tyTfzyxxHisVO.getSpyj()))
					return -2;
			     }
				TyTfzyxxHisDO tyTfzyxxHisDO=new TyTfzyxxHisDO();
				LsBeanUtils.copyAllProperties(tyTfzyxxHisVO,tyTfzyxxHisDO);
				int insertState=0;
				tyTfzyxxHisDO.setId(this.getMaxCodeById(tyTfzyxxHisDao.getMaxCodeById("TF" + DateUtil.getDate()),  "TF" + DateUtil.getDate(), 4));
			    insertState= tyTfzyxxHisDao.insert(tyTfzyxxHisDO);
				return insertState;
		}else {
			return -1;
		}
	}

}
