//package com.jeeplus.finance.common;
//
//import cn.hutool.core.collection.CollectionUtil;
//import cn.hutool.extra.spring.SpringUtil;
////import com.jeeplus.sys.service.DictTypeService;
//import com.jeeplus.sys.service.OfficeService;
//import com.jeeplus.sys.service.dto.OfficeDTO;
//import com.jeeplus.sys.service.dto.RoleDTO;
//import com.jeeplus.sys.service.dto.UserDTO;
//import com.jeeplus.sys.utils.UserUtils;
//
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//import java.util.stream.Collectors;
//
//public class CommonUtils {
//
//    /**
//     * 判断当前用户是否拥有 “ 财务部门主任 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleCwBmzr() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有财务部门主任角色
//                if ("cw_bmzr".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//    /**
//     * 判断当前用户是否拥有 “ 财务员工 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleCwYg() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有财务员工角色
//                if ("cwyg".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//    /**
//     * 判断当前用户是否拥有 “ 专家组成员 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleZjzcy() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有专家组成员角色
//                if ("zjzcy".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//    /**
//     * 判断当前用户是否拥有 “ 项目员工 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleXmYg() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有项目员工角色
//                if ("xmyg".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//    /**
//     * 判断当前用户是否拥有 “ 会计所长 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleKjsz() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有会计所长角色
//                if ("kjsz".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//    /**
//     * 判断当前用户是否拥有 “ 质控部主任 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleZkbzr() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有质控部主任角色
//                if ("zkbzr".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//
//    /**
//     * 判断当前用户是否拥有 “ 质控部员工 ” 的角色
//     * @return
//     */
//    public static boolean haveRoleZkbyg() {
//        UserDTO userDTO = UserUtils.getCurrentUserDTO();
//        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
//        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
//            roles = userDTO.getRoleDTOList().stream().filter(item -> {
//                // 过滤当前用户是否拥有质控部员工角色
//                if ("zkbyg".equals(item.getEnName())) {
//                    return true;
//                }
//                return false;
//            }).collect(Collectors.toList());
//        }
//        if (CollectionUtil.isNotEmpty(roles)) {
//            return true;
//        }
//        return false;
//    }
//
//    /**
//     * 计算时间差
//     * 注：参数小于或等于当前时间
//     */
//    public static String timeDef(Date time) {
//        Long def = new Date().getTime() - time.getTime();
//        // 计算天数
//        long day = def / (1000 * 60 * 60 * 24);
//        if (day != 0) {
//            return day + "天前";
//        }
//        // 计算小时
//        long house = def / (1000 * 60 * 60);
//        if (house != 0) {
//            return house + "小时前";
//        }
//        // 计算分钟
//        long min = def / (1000 * 60);
//        return min + "分钟前";
//    }
//
//    /**
//     * 获取所有公司中的第一个
//     * @return
//     */
//    public static String getFirstCompanyId() {
//        List<OfficeDTO> allCompany = SpringUtil.getBean(OfficeService.class).getAllCompany();
//        if (CollectionUtil.isNotEmpty(allCompany)) {
//            return allCompany.get(0).getId();
//        }
//        return "";
//    }
//}
