package com.zehong.system.service.impl;

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

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

/**
 * 变更申请审批验收Service业务层处理
 * 
 * @author zehong
 * @date 2023-02-14
 */
@Service
public class TChangeApplyApprovalServiceImpl implements ITChangeApplyApprovalService 
{
    @Autowired
    private TChangeApplyApprovalMapper tChangeApplyApprovalMapper;

    @Autowired
    private TChangeApplyApproverMapper tChangeApplyApproverMapper;

    /**
     * 查询变更申请审批验收
     * 
     * @param changeApplyId 变更申请审批验收ID
     * @return 变更申请审批验收
     */
    @Override
    public TChangeApplyApproval selectTChangeApplyApprovalById(Long changeApplyId)
    {
        return tChangeApplyApprovalMapper.selectTChangeApplyApprovalById(changeApplyId);
    }

    /**
     * 查询变更申请审批验收列表
     * 
     * @param tChangeApplyApproval 变更申请审批验收
     * @return 变更申请审批验收
     */
    @Override
    public List<TChangeApplyApproval> selectTChangeApplyApprovalList(TChangeApplyApproval tChangeApplyApproval)
    {
        return tChangeApplyApprovalMapper.selectTChangeApplyApprovalList(tChangeApplyApproval);
    }

    /**
     * app设备变更列表
     * @param tChangeApplyApproval
     * @return
     */
    @Override
    public List<TChangeApplyApproval> selectTChangeApplyApprovalListApp(TChangeApplyApproval tChangeApplyApproval)
    {
        return tChangeApplyApprovalMapper.selectTChangeApplyApprovalListApp(tChangeApplyApproval);
    }

    /**
     * 新增变更申请审批验收
     * 
     * @param tChangeApplyApproval 变更申请审批验收
     * @return 结果
     */
    @Override
    public int insertTChangeApplyApproval(TChangeApplyApproval tChangeApplyApproval)
    {
        return tChangeApplyApprovalMapper.insertTChangeApplyApproval(tChangeApplyApproval);
    }

    /**
     * 修改变更申请审批验收
     * 
     * @param tChangeApplyApproval 变更申请审批验收
     * @return 结果
     */
    @Override
    public int updateTChangeApplyApproval(TChangeApplyApproval tChangeApplyApproval)
    {
        return tChangeApplyApprovalMapper.updateTChangeApplyApproval(tChangeApplyApproval);
    }

    /**
     * 批量删除变更申请审批验收
     * 
     * @param changeApplyIds 需要删除的变更申请审批验收ID
     * @return 结果
     */
    @Override
    public int deleteTChangeApplyApprovalByIds(Long[] changeApplyIds)
    {
        for(Long changeApplyId : changeApplyIds){
            TChangeApplyApprover applyApprover = new TChangeApplyApprover();
            applyApprover.setChangeApplyId(changeApplyId);
            List<TChangeApplyApprover> applyApproverList = tChangeApplyApproverMapper.selectTChangeApplyApproverList(applyApprover);
            if(null!=applyApproverList && applyApproverList.size() > 0){
                List<Long> changeApplyApproverIds = new ArrayList<>();
                for(TChangeApplyApprover applyApprover1 : applyApproverList){
                    changeApplyApproverIds.add(applyApprover1.getChangeApplyApproverId());
                }
                tChangeApplyApproverMapper.deleteTChangeApplyApproverByIds(changeApplyApproverIds.toArray(new Long[changeApplyApproverIds.size()]));
            }
        }
        return tChangeApplyApprovalMapper.deleteTChangeApplyApprovalByIds(changeApplyIds);
    }

    /**
     * 删除变更申请审批验收信息
     * 
     * @param changeApplyId 变更申请审批验收ID
     * @return 结果
     */
    @Override
    public int deleteTChangeApplyApprovalById(Long changeApplyId)
    {
        return tChangeApplyApprovalMapper.deleteTChangeApplyApprovalById(changeApplyId);
    }
}