package com.ruoyi.system.service.impl;

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

import com.ruoyi.common.core.domain.entity.SysDictType;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.SysDictTypeMapper;
import com.ruoyi.system.service.ISysDictTypeService;
import com.ruoyi.system.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.UserInfoMapper;
import com.ruoyi.system.domain.UserInfo;

/**
 * 导入人员信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2022-08-11
 */
@Service
public class UserInfoServiceImpl implements IUserInfoService
{
    @Autowired
    private UserInfoMapper userInfoMapper;
    @Autowired
    private SysDictTypeMapper dictTypeMapper;

    /**
     * 查询导入人员信息
     * 
     * @param id 导入人员信息主键
     * @return 导入人员信息
     */
    @Override
    public UserInfo selectUserInfoById(Long id)
    {
        return userInfoMapper.selectUserInfoById(id);
    }

    /**
     * 查询导入人员信息列表
     * 
     * @param userInfo 导入人员信息
     * @return 导入人员信息
     */
    @Override
    public List<UserInfo> selectUserInfoList(UserInfo userInfo)
    {
        return userInfoMapper.selectUserInfoList(userInfo);
    }

    /**
     * 新增导入人员信息
     * 
     * @param userInfo 导入人员信息
     * @return 结果
     */
    @Override
    public int insertUserInfo(UserInfo userInfo)
    {
        userInfo.setCreateTime(DateUtils.getNowDate());
        return userInfoMapper.insertUserInfo(userInfo);
    }

    /**
     * 修改导入人员信息
     * 
     * @param userInfo 导入人员信息
     * @return 结果
     */
    @Override
    public int updateUserInfo(UserInfo userInfo)
    {
        userInfo.setUpdateTime(DateUtils.getNowDate());
        return userInfoMapper.updateUserInfo(userInfo);
    }

    /**
     * 批量删除导入人员信息
     * 
     * @param ids 需要删除的导入人员信息主键
     * @return 结果
     */
    @Override
    public int deleteUserInfoByIds(Long[] ids)
    {
        return userInfoMapper.deleteUserInfoByIds(ids);
    }

    /**
     * 删除导入人员信息信息
     * 
     * @param id 导入人员信息主键
     * @return 结果
     */
    @Override
    public int deleteUserInfoById(Long id)
    {
        return userInfoMapper.deleteUserInfoById(id);
    }

    @Override
    public String importUser(List<UserInfo> userList, String jobStyle, String focusCrowdStyle, String detectionNumber,
                             String detectionScope, String startTime, String endTime) {

        //todo 获取当前上传人员部门id
        SysUser user = SecurityUtils.getLoginUser().getUser();
        String deptId = String.valueOf(user.getDeptId());

        //todo 向医院查询上传名单人员核酸数据（将时间段内所有人员数据查询出来），之后与上传人员名单比较，提取身份证号相同的数据
        List<Map<String,Object>> yyMap = new ArrayList<>();

        for (UserInfo userInfo : userList) {
            for (Map<String, Object> yMap : yyMap) {

            }
        }
        return "操作成功";
    }
}
