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.DYpxxHisVO;
import com.unis.base.common.vo.DYpxxQueryHisVO;
import com.unis.base.server.dao.DYpxxHisDao;
import com.unis.base.server.entity.DYpxxHisDO;
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月22日 下午2:38:23
 * @description 
 */
@Getter
@Setter
@ToString
@Component
public class DYpxxHisDomain extends BaseDomain{
	@Autowired
	private DYpxxHisDao tYpxxHisDao;

	/**
	 * @param dYpxxQueryHisVO
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public PageInfo<DYpxxHisVO> getDYpxxHisListByQuery(DYpxxQueryHisVO dYpxxQueryHisVO, Integer pageNum,
			Integer pageSize) {
		PageInfo<DYpxxHisVO> pageInfoVO = new PageInfo<DYpxxHisVO>();
		PageHelper.startPage(pageNum, pageSize);
		List<DYpxxHisDO> dYpxxHisDOs =  tYpxxHisDao.findPageList(dYpxxQueryHisVO);
		PageInfo<DYpxxHisDO> PageInfoDO = new PageInfo<DYpxxHisDO>(dYpxxHisDOs);
		LsBeanUtils.copyAllProperties(PageInfoDO,pageInfoVO);
		return pageInfoVO;
	}

	/**
	 * @param lsId
	 * @return
	 */
	public DYpxxHisVO getDYpxxHisInfoByLsId(String lsId) {
		DYpxxHisDO dYpxxHisDO = tYpxxHisDao.selectByPrimaryKey(lsId);
		if (dYpxxHisDO==null) {
			return null;
		}
		
		DYpxxHisVO dYpxxHisVO=new DYpxxHisVO();
		LsBeanUtils.copyAllProperties(dYpxxHisDO,dYpxxHisVO);
		return dYpxxHisVO;
	}

	/**
	 * @param dYpxxHisVO
	 * @return
	 */
	public int insert(DYpxxHisVO dYpxxHisVO) {
		String sfba = dYpxxHisVO.getSfba().toString();
		if (FilingStatusConstant.FILING.getValue().equals(sfba)
				|| FilingStatusConstant.REJECTED.getValue().equals(sfba)) {
            //驳回的审批意见必填
			if (FilingStatusConstant.REJECTED.getValue().equals(sfba)) {
				if (StringUtils.isEmpty(dYpxxHisVO.getSpyj())) 
					return -2;
			     }
				DYpxxHisDO dYpxxHisDO=new DYpxxHisDO();
				LsBeanUtils.copyAllProperties(dYpxxHisVO,dYpxxHisDO);
				int insertState=0;
				dYpxxHisDO.setId(this.getMaxCodeById(tYpxxHisDao.getMaxCodeById("YJ" + DateUtil.getDate()),  "YJ" + DateUtil.getDate(), 4));
			    insertState= tYpxxHisDao.insert(dYpxxHisDO);
				return insertState;
		}else {
			return -1;
		}
	}
}
