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

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectAttendanceUserMapper;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
import com.ruoyi.common.utils.SecurityUtils;
/**
 * 考勤人员基本属性Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-09-24
 */
@Service
public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanceUserService 
{
    @Autowired
    private SurProjectAttendanceUserMapper surProjectAttendanceUserMapper;

    /**
     * 查询考勤人员基本属性
     * 
     * @param id 考勤人员基本属性主键
     * @return 考勤人员基本属性
     */
    @Override
    public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id)
    {
        return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id);
    }

    /**
     * 查询考勤人员基本属性列表
     * 
     * @param surProjectAttendanceUser 考勤人员基本属性
     * @return 考勤人员基本属性
     */
    @Override
    public List<SurProjectAttendanceUser> selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser)
    {
        return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(surProjectAttendanceUser);
    }

    /**
     * 新增考勤人员基本属性
     * 
     * @param surProjectAttendanceUser 考勤人员基本属性
     * @return 结果
     */
    @Override
    public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
    {
        surProjectAttendanceUser.setCreateBy("task");
        surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate());
        return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser);
    }

    /**
     * 修改考勤人员基本属性
     * 
     * @param surProjectAttendanceUser 考勤人员基本属性
     * @return 结果
     */
    @Override
    public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
    {

        surProjectAttendanceUser.setUpdateBy("task");
        surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate());
        return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser);
    }

    /**
     * 批量删除考勤人员基本属性
     * 
     * @param ids 需要删除的考勤人员基本属性主键
     * @return 结果
     */
    @Override
    public int deleteSurProjectAttendanceUserByIds(Long[] ids)
    {
        return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByIds(ids);
    }

    /**
     * 删除考勤人员基本属性信息
     * 
     * @param id 考勤人员基本属性主键
     * @return 结果
     */
    @Override
    public int deleteSurProjectAttendanceUserById(Long id)
    {
        return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id);
    }

    @Override
    public void add(SurProjectAttendanceUser user) {
        SurProjectAttendanceUser where=new SurProjectAttendanceUser();
        where.setWorkerId(user.getWorkerId());
        where.setCfgid(user.getCfgid());
        List<SurProjectAttendanceUser> list=selectSurProjectAttendanceUserList(where);
        if(list.size()==0){
            insertSurProjectAttendanceUser(user);
        }else{
            user.setId(list.get(0).getId());
            updateSurProjectAttendanceUser(user);
        }
    }

    @Override
    public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where) {
        return surProjectAttendanceUserMapper.queryAttendanceData(where);
    }

    @Override
    public long countTodayAttendance(SurProjectAttendanceUser where) {
        return surProjectAttendanceUserMapper.countTodayAttendance(where);
    }

    @Override
    public List<SurProjectAttendanceUser> todayAttendance(SurProjectAttendanceUser where) {
        if(where.getIndex()<1){
            where.setIndex(1);
        }
        where.setIndex((where.getIndex()-1)* where.getSize());
        return surProjectAttendanceUserMapper.todayAttendance(where);
    }
}
