package com.brilliance.isc.common.oit.bussiness;

import com.brilliance.isc.annotation.OitAno;
import com.brilliance.isc.bo.Oit;
import com.brilliance.isc.bo.Pty;
import com.brilliance.isc.common.cache.pty.PtyCacheService;
import com.brilliance.isc.common.oit.vo.NoticeVo;
import com.brilliance.isc.mda.dao.OitMapper;
import com.brilliance.isc.utils.StringUtils;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
@Service
public class BussinessOit extends AbstractOit {
    @Autowired
    private OitMapper oitMapper;
    @Autowired
    private PtyCacheService ptyCacheService;

    @OitAno(objtype = "pty")
    public void ptyOit(NoticeVo noticeVo) {
        List<Oit> oits = oitMapper.selectByObj(noticeVo.getObjinr(), noticeVo.getObjtyp());
        if (!CollectionUtils.isEmpty(oits)) {
            //取级别最大的一条
            Pty pty=ptyCacheService.getPtyById(noticeVo.getObjinr());
            noticeVo.setExtkey(pty.getExtkey());
            selectHeighLevOit(oits, noticeVo);
        }
    }
    @OitAno(objtype = "cty")
    public void ctyOit(NoticeVo noticeVo) {
        List notices=new ArrayList();
        noticeVo.setColumn("BOPCOD");
        notices.add(noticeVo);
        List<Oit> oits = oitMapper.selectByExtkeyWithBatch(notices);
        if (!CollectionUtils.isEmpty(oits)) {
            //取级别最大的一条
            noticeVo.setExtkey(noticeVo.getExtkey());
            selectHeighLevOit(oits, noticeVo);
        }
    }
    @OitAno(objtype = "nid")
    public void nidOit(NoticeVo noticeVo) {
        List notices=new ArrayList();
        noticeVo.setColumn("ownref");
        notices.add(noticeVo);
        List<Oit> oits = oitMapper.selectByExtkeyWithBatch(notices);
        if (!CollectionUtils.isEmpty(oits)) {
            //取级别最大的一条
            noticeVo.setExtkey(noticeVo.getExtkey());
            selectHeighLevOit(oits, noticeVo);
        }
    }
    @OitAno(objtype = "gid")
    public void gidOit(NoticeVo noticeVo) {
        List notices=new ArrayList();
        noticeVo.setColumn("ownref");
        notices.add(noticeVo);
        List<Oit> oits = oitMapper.selectByExtkeyWithBatch(notices);
        if (!CollectionUtils.isEmpty(oits)) {
            //取级别最大的一条
            noticeVo.setExtkey(noticeVo.getExtkey());
            selectHeighLevOit(oits, noticeVo);
        }
    }
}
