package com.yanzhu.jh.project.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectDeptWroksMapper;
import com.yanzhu.jh.project.domain.SurProjectDeptWroks;
import com.yanzhu.jh.project.service.ISurProjectDeptWroksService;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.transaction.annotation.Transactional;

/**
 * 项目部门在册人员Service业务层处理
 * 
 * @author JiangYuQi
 * @date 2023-08-15
 */
@Service
public class SurProjectDeptWroksServiceImpl implements ISurProjectDeptWroksService 
{
    @Autowired
    private SurProjectDeptWroksMapper surProjectDeptWroksMapper;

    /**
     * 查询项目部门在册人员
     * 
     * @param id 项目部门在册人员主键
     * @return 项目部门在册人员
     */
    @Override
    public SurProjectDeptWroks selectSurProjectDeptWroksById(Long id)
    {
        return surProjectDeptWroksMapper.selectSurProjectDeptWroksById(id);
    }

    /**
     * 查询项目部门在册人员列表
     * 
     * @param surProjectDeptWroks 项目部门在册人员
     * @return 项目部门在册人员
     */
    @Override
    public List<SurProjectDeptWroks> selectSurProjectDeptWroksList(SurProjectDeptWroks surProjectDeptWroks)
    {
        return surProjectDeptWroksMapper.selectSurProjectDeptWroksList(surProjectDeptWroks);
    }

    /**
     * 查询项目部门在册人员列表
     *
     * @param surProjectDeptWroks 项目部门在册人员
     * @return 项目部门在册人员集合
     */
    @Override
    public List<SurProjectDeptWroks> selectSurProjectDeptWroksListv2(SurProjectDeptWroks surProjectDeptWroks)
    {
        return surProjectDeptWroksMapper.selectSurProjectDeptWroksListv2(surProjectDeptWroks);
    }


    /**
     * 查询项目部门在册人员列表
     *
     * @param surProjectDeptWroks 项目部门在册人员
     * @return 项目部门在册人员集合
     */
    public List<SurProjectDeptWroks> selectBgscreenDeptWroksList(SurProjectDeptWroks surProjectDeptWroks) {
        return surProjectDeptWroksMapper.selectBgscreenDeptWroksList(surProjectDeptWroks);
    }

    /**
     * 新增项目部门在册人员
     * 
     * @param surProjectDeptWroks 项目部门在册人员
     * @return 结果
     */
    @Override
    public int insertSurProjectDeptWroks(SurProjectDeptWroks surProjectDeptWroks)
    {
        surProjectDeptWroks.setCreateBy(SecurityUtils.getUsername());
        surProjectDeptWroks.setCreateTime(DateUtils.getNowDate());
        surProjectDeptWroks.setIsDel(0);
        return surProjectDeptWroksMapper.insertSurProjectDeptWroks(surProjectDeptWroks);
    }

    /**
     * 修改项目部门在册人员
     * 
     * @param surProjectDeptWroks 项目部门在册人员
     * @return 结果
     */
    @Override
    @Transactional
    public int updateSurProjectDeptWroks(SurProjectDeptWroks surProjectDeptWroks)
    {
        if(surProjectDeptWroks.getId()!=null){
            surProjectDeptWroks.setUpdateBy(SecurityUtils.getUsername());
            surProjectDeptWroks.setUpdateTime(DateUtils.getNowDate());
            int res =  surProjectDeptWroksMapper.updateProjectDeptWorks2(surProjectDeptWroks);
            return surProjectDeptWroksMapper.updateSurProjectDeptWroks(surProjectDeptWroks);
        }else{
            surProjectDeptWroks.setCreateBy(SecurityUtils.getUsername());
            surProjectDeptWroks.setCreateTime(DateUtils.getNowDate());
            int res = surProjectDeptWroksMapper.updateProjectDeptWorks1(surProjectDeptWroks);
            return surProjectDeptWroksMapper.insertSurProjectDeptWroks(surProjectDeptWroks);
        }
    }

    /**
     * 批量删除项目部门在册人员
     * 
     * @param ids 需要删除的项目部门在册人员主键
     * @return 结果
     */
    @Override
    public int deleteSurProjectDeptWroksByIds(Long[] ids)
    {
        return surProjectDeptWroksMapper.deleteSurProjectDeptWroksByIds(ids);
    }

    /**
     * 删除项目部门在册人员信息
     * 
     * @param id 项目部门在册人员主键
     * @return 结果
     */
    @Override
    public int deleteSurProjectDeptWroksById(Long id)
    {
        return surProjectDeptWroksMapper.deleteSurProjectDeptWroksById(id);
    }
}
