package com.unis.base.server.domain;


import com.unis.base.common.vo.SampleQueryVO;
import com.unis.base.common.vo.SampleVO;
import com.unis.base.server.dao.TyYpxxbDao;
import com.unis.base.server.entity.TyYpxxbDO;
import com.unis.common.utils.DateUtil;
import com.unis.common.utils.LsBeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

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

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

	@Autowired
	private TyYpxxbDao tyYpxxbDao;

	/**
	 * 获取样品列表
	 * @param sampleVO
	 * @return
	 */
	public List<SampleVO> getSampleList(SampleQueryVO sampleVO) {
		return tyYpxxbDao.getSampleList(sampleVO);
	}

	/**
	 * 新增样品信息
	 * @param sampleVO
	 * @return
	 */
	public SampleVO insert(SampleVO sampleVO) {
		//进行传递参数copy
		TyYpxxbDO tyYpxxbDO = new TyYpxxbDO();
		//样品id    YP2019+00001
		String ypid = getMaxCodeById(tyYpxxbDao.getMaxCodeById(),"YP"+DateUtil.getYearString().toString(),5);
		sampleVO.setYpid(ypid);
		sampleVO.setStatus(1);
		sampleVO.setCreateDate(new Date());
		LsBeanUtils.copyAllProperties(sampleVO, tyYpxxbDO);
		tyYpxxbDao.insert(tyYpxxbDO);
		return sampleVO;
	}

	/**
	 * 根据样品ID获取样品信息
	 * @param ypid
	 * @return
	 */
	public SampleVO getSampleInfoByypid(String ypid) {
		TyYpxxbDO tyYpxxbDO = tyYpxxbDao.getSampleInfo(ypid);
		if(tyYpxxbDO == null) {
			return null;
		}
		SampleVO sampleVO = new SampleVO();
		LsBeanUtils.copyAllProperties(tyYpxxbDO, sampleVO);
		return sampleVO;
	}

	/**
	 * 更新样品信息
	 * @param sampleVO
	 * @return
	 */
	public int update(SampleVO sampleVO) {
		TyYpxxbDO tyYpxxbDO = tyYpxxbDao.getSampleInfo(sampleVO.getYpid());
		if (tyYpxxbDO == null) {
			return 0;
		}
		//进行传递参数copy
		LsBeanUtils.copyAllProperties(sampleVO, tyYpxxbDO);
		return tyYpxxbDao.update(tyYpxxbDO);
	}



	/**
	 * 用样品单编号获取样品信息
	 * @param ypdbh
	 * @return
	 */
	public SampleVO getSampleInfoByypdid(String ypdbh) {

		TyYpxxbDO tyYpxxbDO = tyYpxxbDao.getSampleInfoByypdid(ypdbh);

		if(tyYpxxbDO!=null){

			SampleVO vo = new SampleVO();

			LsBeanUtils.copyAllProperties(tyYpxxbDO, vo);

			return vo;
		}
		return null;
	}



	/**
	 * 批量新增样品信息
	 * @param sampleVO
	 * @return
	 */
	public int batchInserts(List<SampleVO> sampleVO) {
		int i=0;
		for(int t=0;t<sampleVO.size();t++) {
			//进行传递参数copy
			TyYpxxbDO tyYpxxbDO = new TyYpxxbDO();
			//样品id    YP2019+00001
			String ypid = getMaxCodeById(tyYpxxbDao.getMaxCodeById(),"YP"+DateUtil.getYearString().toString(),5);
			sampleVO.get(t).setYpid(ypid);
			sampleVO.get(t).setStatus(1);
			sampleVO.get(t).setCreateDate(new Date());
			LsBeanUtils.copyAllProperties(sampleVO.get(t), tyYpxxbDO);
			i=tyYpxxbDao.insertSelective(tyYpxxbDO);
		}

		return i;



	}

}
