package com.unis.base.server.service.impl;

import java.util.List;

import javax.annotation.Resource;

import com.unis.base.common.vo.DSbxxsjyClassifyVO;
import com.unis.base.common.vo.DSbxxsjyQueryVO;
import com.unis.base.common.vo.EquipmentRecordsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.github.pagehelper.PageHelper;
import com.unis.base.common.vo.DSbxxsjyVO;
import com.unis.base.server.domain.DSbxxsjyDomain;
import com.unis.base.server.domain.DKdxxsjyDomain;
import com.unis.base.server.entity.DSbxxsjyDO;
import com.unis.base.server.entity.DKdxxsjyDO;
import com.unis.base.server.service.DSbxxsjyService;

/**
 * @author huangxing
 * @version 1.0
 * @Title DYgxxsjyServiceImpl
 * @ProjectName 设备信息服务实现层
 * @Description
 * @date 2019/07/22 17点26分
 */

@Service
@Transactional
public class DSbxxsjyServiceImpl implements DSbxxsjyService {

	@Resource
	private DSbxxsjyDomain dSbxxsjyDomain;

	@Autowired
	private DKdxxsjyDomain dKdxxsjyDomain;

	/**
	 * 获取设备信息列表
	 * @param tzSlqyVO
	 * @return
	 */
	@Override
	public List<DSbxxsjyVO> getDSbxxsjyList(DSbxxsjyQueryVO dSbxxsjyQueryVO) {
		return dSbxxsjyDomain.getDSbxxsjyList(dSbxxsjyQueryVO);
	}

	/**
	 * 根据设备编号获取设备信息
	 * @param cfbh设备编号
	 * @return
	 */
	@Override
	public DSbxxsjyDO getDSbxxsjyInfoBysbbh(String sbbh) {
		return dSbxxsjyDomain.getDSbxxsjyInfo(sbbh);
	}

	/**
	 * 分页获取设备信息列表
	 * @param dSbxxsjyVO
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	@Override
	public List<DSbxxsjyVO> getDSbxxsjyPage(DSbxxsjyQueryVO dSbxxsjyQueryVO, Integer pageNum, Integer pageSize) {
		PageHelper.startPage(pageNum, pageSize);
		return dSbxxsjyDomain.getDSbxxsjyList(dSbxxsjyQueryVO);
	}

	/**
	 * 根据机构ID获取设备列表
	 * @param jgId
	 * @return
	 */
	@Override
	public List<DSbxxsjyVO> getDSbxxsjyListByJgId(String jgId) {
		return dSbxxsjyDomain.getDSbxxsjyListByJgId(jgId);
	}

	/**
	 * 根据库点获取设备信息列表
	 * @param kddm
	 * @return
	 */
	@Override
	public List<DSbxxsjyVO> getEquipmentListByKddm(String kddm) {
		return dSbxxsjyDomain.getEquipmentListByKddm(kddm);
	}

	/**
	 * 更新设备信息
	 * @param dSbxxsjyVO
	 * @return
	 */
	@Override
	public int update(DSbxxsjyVO dSbxxsjyVO) {
	    if (dSbxxsjyVO.getKddm() != null) {
            DSbxxsjyDO dSbxxsjyDO = dSbxxsjyDomain.getDSbxxsjyInfo(dSbxxsjyVO.getSbbh());
            if (dSbxxsjyDO == null) {
                return 0;
            }
        }
		return dSbxxsjyDomain.update(dSbxxsjyVO);
	}

	/**
	 * 带状态更新
	 * @param dSbxxsjyVO
	 * @return
	 */
	@Override
	public int equipmentUpdate(DSbxxsjyVO dSbxxsjyVO) {
		if (dSbxxsjyVO.getKddm() != null) {
			DSbxxsjyDO dSbxxsjyDO = dSbxxsjyDomain.getEquipmentInfo(dSbxxsjyVO.getSbbh());
			if (dSbxxsjyDO == null) {
				return 0;
			}
		}
		return dSbxxsjyDomain.update(dSbxxsjyVO);
	}

	/**
	 * 根据设备编号删除设备信息
	 * @param cfbh设备编号
	 * @return
	 */
	@Override
	public int delete(String sbbh) {
		DSbxxsjyDO dSbxxsjyDO = dSbxxsjyDomain.getDSbxxsjyInfo(sbbh);
		if(dSbxxsjyDO == null) {
			return -1;
		}
		DSbxxsjyVO dSbxxsjyVO = new DSbxxsjyVO();
		dSbxxsjyVO.setSbbh(sbbh);
		dSbxxsjyVO.setStatus(0);
		return dSbxxsjyDomain.update(dSbxxsjyVO);
	}

	/**
	 * 根据条件删除设备列表
	 * @param dSbxxsjyClassifyVO
	 * @return
	 */
	@Override
	public int deleteList(DSbxxsjyClassifyVO dSbxxsjyClassifyVO) {
		return dSbxxsjyDomain.deleteList(dSbxxsjyClassifyVO);
	}

	/**
	 * 添加设备信息
	 * @param dAjxxsjyVO
	 * @return
	 */
	@Override
	public int insert(DSbxxsjyVO dAjxxsjyVO) {
		DKdxxsjyDO dKdxxsjyDO = dKdxxsjyDomain.getDKdxxsjyInfoBykddm(dAjxxsjyVO.getKddm());
		/*if(dKdxxsjyDO==null) {
			return -1;
		}*/
		return dSbxxsjyDomain.insert(dAjxxsjyVO);
	}

	/**
	 * 更改备案状态
	 * @param equipmentRecordsVO
	 * @return
	 */
	@Override
	public Integer updateFilingStatus(EquipmentRecordsVO equipmentRecordsVO) {
		return dSbxxsjyDomain.updateFilingStatus(equipmentRecordsVO);
	}

	/**
	 * 备案设备主表数据
	 * @param dSbxxsjyVO
	 * @return
	 */
	@Override
	public int updateFiling(DSbxxsjyVO dSbxxsjyVO) {
		return dSbxxsjyDomain.updateFiling(dSbxxsjyVO);
	}

}
