package com.unis.base.server.domain;

import java.util.Date;
import java.util.List;
import java.util.UUID;

import com.unis.base.server.dao.TzSlqyDao;
import com.unis.base.server.entity.TzSlqyDO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import com.unis.base.common.vo.DRyxxsjyVO;
import com.unis.base.server.dao.DRyxxsjyDao;
import com.unis.base.server.entity.DRyxxsjyDO;
import com.unis.common.utils.LsBeanUtils;
import org.springframework.stereotype.Component;

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

	@Autowired
	private DRyxxsjyDao dRyxxsjyDao;

    @Autowired
    private TzSlqyDao tzSlqyMapper;

	/**
	 * 根据参数获取人员信息
	 * @param dRyxxsjyVO
	 * @return
	 */
	public List<DRyxxsjyVO> getDRyxxsjyList(DRyxxsjyVO dRyxxsjyVO) {
		DRyxxsjyDO dRyxxsjyDO = new DRyxxsjyDO();
		LsBeanUtils.copyAllProperties(dRyxxsjyVO,dRyxxsjyDO);
		return dRyxxsjyDao.getDRyxxsjyList(dRyxxsjyDO);
	}

	/**
	 * 根据人员编号获取人员信息
	 * @param cfbh
	 * @return
	 */
	public DRyxxsjyDO getDRyxxsjyInfo(String rybh) {
		return dRyxxsjyDao.getDRyxxsjyInfo( rybh);
	}

	/**
	 * 根据人员编号获取人员信息-任何状态
	 * @param rybh
	 * @return
	 */
	public DRyxxsjyDO getPersonnelInfo(String rybh) {
		return dRyxxsjyDao.getPersonnelInfo(rybh);
	}

	/**
	 * 根据人员编号更新人员信息
	 * @param dRyxxsjyVO
	 * @return
	 */
	public int update(DRyxxsjyVO dRyxxsjyVO) {
		DRyxxsjyDO dRyxxsjyDO = new DRyxxsjyDO();
		LsBeanUtils.copyAllProperties(dRyxxsjyVO,dRyxxsjyDO);
        String tyshxydm = dRyxxsjyVO.getTyshxydm();
        TzSlqyDO tzSlqyDO = tzSlqyMapper.getCompanyBytyshxydm(tyshxydm);
        dRyxxsjyDO.setXzqhdm(tzSlqyDO.getTxcity());
        Date ryhqsj = dRyxxsjyDO.getRyhqsj();
        dRyxxsjyDO.setRyhqsj(ryhqsj);
        return dRyxxsjyDao.update(dRyxxsjyDO);
	}

	/**
	 * 新增人员信息
	 * @param dAjxxsjyVO
	 * @return
	 */
	public int insert(DRyxxsjyVO dAjxxsjyVO) {
		//进行库点信息copy
		DRyxxsjyDO dRyxxsjyDO = new DRyxxsjyDO();

        String qymc = dAjxxsjyVO.getQymc();
        TzSlqyDO tzSlqyDO = tzSlqyMapper.getCompanyByqymc(qymc);
		String tyshxydm = "";
		String txcity= "";
		String kddm = "";
		if (tzSlqyDO !=null){
			tyshxydm = tzSlqyDO.getTyshxydm();
			txcity = tzSlqyDO.getTxcity();
			kddm = tzSlqyDO.getTyshxydm();
		}


        //根据统一社会信用代码生成库点id（库点id规则：统一社会信用代码+001）
		String rybh = "";
		if (StringUtils.isEmpty(kddm)){
			if (StringUtils.isNotBlank(tyshxydm)){
				kddm = tyshxydm +"001";
				rybh = getMaxCodeById(dRyxxsjyDao.getMaxById(kddm), kddm, 3);
			} else {
				rybh = UUID.randomUUID().toString().replaceAll("-", "");
			}

		} else {
			rybh = getMaxCodeById(dRyxxsjyDao.getMaxById(kddm), kddm, 3);
		}
		dAjxxsjyVO.setRybh(rybh);
		LsBeanUtils.copyAllProperties(dAjxxsjyVO,dRyxxsjyDO);
        dRyxxsjyDO.setXzqhdm(txcity);
		dRyxxsjyDO.setKddm(kddm);
		dRyxxsjyDO.setQyzt(1);
		return dRyxxsjyDao.insert(dRyxxsjyDO);
	}

	/**
	 * 根据库点代码删除人员列表
	 * @param kddm
	 * @return
	 */
	public int deleteList(String kddm) {
		return dRyxxsjyDao.deleteList(kddm);
	}

	/**
	 * 根据库点代码获取人员列表
	 * @param kddm
	 * @return
	 */
    public List<DRyxxsjyVO> getPersonnelListByKddm(String kddm) {
    	return dRyxxsjyDao.getPersonnelListByKddm(kddm);
    }

	/**
	 * 备案主表状态
	 * @param dRyxxsjyVO
	 * @return
	 */
	public int updateFiling(DRyxxsjyVO dRyxxsjyVO) {
		return dRyxxsjyDao.updateFiling(dRyxxsjyVO);
	}

	/**
	 * 更改启用状态
	 * @param dRyxxsjyVO
	 * @return
	 */
	public int updateEnabled(DRyxxsjyVO dRyxxsjyVO) {
		return dRyxxsjyDao.updateEnabled(dRyxxsjyVO);
	}

	public List<DRyxxsjyVO> personnelZHListByKddm(String kddm) {
		return dRyxxsjyDao.personnelZHListByKddm(kddm);
	}

    public int remove(DRyxxsjyVO dRyxxsjyVO) {
        DRyxxsjyDO dRyxxsjyDO = new DRyxxsjyDO();
        LsBeanUtils.copyAllProperties(dRyxxsjyVO,dRyxxsjyDO);
        return dRyxxsjyDao.update(dRyxxsjyDO);
    }
}
