package com.zehong.system.service.impl;

import java.util.List;

import com.zehong.system.domain.TChangeApplyApproval;
import com.zehong.system.mapper.TChangeApplyApprovalMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zehong.system.mapper.TChangeApplyApproverMapper;
import com.zehong.system.domain.TChangeApplyApprover;
import com.zehong.system.service.ITChangeApplyApproverService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 变更申请审批人Service业务层处理
 * 
 * @author zehong
 * @date 2023-02-14
 */
@Service
public class TChangeApplyApproverServiceImpl implements ITChangeApplyApproverService 
{
    @Autowired
    private TChangeApplyApproverMapper tChangeApplyApproverMapper;

    @Autowired
    private TChangeApplyApprovalMapper tChangeApplyApprovalMapper;

    /**
     * 查询变更申请审批人
     * 
     * @param changeApplyApproverId 变更申请审批人ID
     * @return 变更申请审批人
     */
    @Override
    public TChangeApplyApprover selectTChangeApplyApproverById(Long changeApplyApproverId)
    {
        return tChangeApplyApproverMapper.selectTChangeApplyApproverById(changeApplyApproverId);
    }

    /**
     * 查询变更申请审批人列表
     * 
     * @param tChangeApplyApprover 变更申请审批人
     * @return 变更申请审批人
     */
    @Override
    public List<TChangeApplyApprover> selectTChangeApplyApproverList(TChangeApplyApprover tChangeApplyApprover)
    {
        return tChangeApplyApproverMapper.selectTChangeApplyApproverList(tChangeApplyApprover);
    }

    /**
     * 新增变更申请审批人
     * 
     * @param tChangeApplyApprover 变更申请审批人
     * @return 结果
     */
    @Override
    public int insertTChangeApplyApprover(TChangeApplyApprover tChangeApplyApprover)
    {
        return tChangeApplyApproverMapper.insertTChangeApplyApprover(tChangeApplyApprover);
    }

    /**
     * 修改变更申请审批人
     * 
     * @param tChangeApplyApprover 变更申请审批人
     * @return 结果
     */
    @Override
    public int updateTChangeApplyApprover(TChangeApplyApprover tChangeApplyApprover)
    {
        int a = tChangeApplyApproverMapper.updateTChangeApplyApprover(tChangeApplyApprover);
        List<TChangeApplyApprover> list = tChangeApplyApproverMapper.selectSignList(tChangeApplyApprover.getApprovalPerson());
        if(list.size()==0){
            TChangeApplyApproval approval = tChangeApplyApprovalMapper.selectTChangeApplyApprovalById(tChangeApplyApprover.getChangeApplyId());
            if(approval.getChangeApplyStatus().equals("1")){
                approval.setChangeApplyStatus("2");
                tChangeApplyApprovalMapper.updateTChangeApplyApproval(approval);
            }
        }
        return a;
    }

    /**
     * 批量删除变更申请审批人
     * 
     * @param changeApplyApproverIds 需要删除的变更申请审批人ID
     * @return 结果
     */
    @Override
    public int deleteTChangeApplyApproverByIds(Long[] changeApplyApproverIds)
    {
        return tChangeApplyApproverMapper.deleteTChangeApplyApproverByIds(changeApplyApproverIds);
    }

    /**
     * 删除变更申请审批人信息
     * 
     * @param changeApplyApproverId 变更申请审批人ID
     * @return 结果
     */
    @Override
    public int deleteTChangeApplyApproverById(Long changeApplyApproverId)
    {
        return tChangeApplyApproverMapper.deleteTChangeApplyApproverById(changeApplyApproverId);
    }

    /**
     * 批量新增审批人
     * @param changeApplyApproverList 审批人
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int batchInsertTChangeApplyApprover(List<TChangeApplyApprover> changeApplyApproverList){
        TChangeApplyApproval applyApproval = new TChangeApplyApproval();
        applyApproval.setChangeApplyId(changeApplyApproverList.get(0).getChangeApplyId());
        applyApproval.setChangeApplyStatus("1");
        tChangeApplyApprovalMapper.updateTChangeApplyApproval(applyApproval);
        return tChangeApplyApproverMapper.batchInsertTChangeApplyApprover(changeApplyApproverList);
    }
}